0 Replies Latest reply on May 22, 2018 11:11 AM by John Franklin Rickard

    How to create a FlyoutGroup with correct FlyoutType = Favorite?

    John Franklin Rickard

      Hello community, im new to the solidworks api and do not have a lot of knowledge with commandManager/Group/Tab interfaces, which I am trying to expand (in C#).


      Here the setup of the project:

      We have an SwAddin class connected with solidworks. I Create a FlyoutGroup, set the FlyoutGroup to Favorite. Then I add to the CommandTab my FlyoutGroup via AddCommands(...). This looks similar to this(omitting not relevant function parameters).

      FlyoutGroup group = commandManager.CreateFlyoutGroup2(...);
      // This next line i have to do via an extension method cause i cannot access .FlyoutType. My Visual Studio says it is a protected Variable?!?
      group.FlyoutType = (int)swCommandFlyoutStyle_e.swCommandFlyoutStyle_Favorite;
      // later on in the code...
      var commandIds = new int[] { group.CmdID };
      var displayStyles = new int[] { (int)swCommandTabButtonTextDisplay_e.swCommandTabButton_TextBelow 
      | (int)swCommandTabButtonFlyoutStyle_e.swCommandTabButton_ActionFlyout };
      tabBox = commandTab.AddCommandTabBox();
      success = tabBox.AddCommands(commandIds, displayStyles);
      //... and so onswComma




      The problem i have is that the flyoutgroup correctly displays the first subgroup (as a button with the correct logo and a flyout arrow below), but when i click onto the Button of the FlyoutGroup(not the arrow) the callback function is not called. If i press the arrow below the FlyoutGroup FIRST, it activates something internal and THEN i can click the FlyoutGroup Button and it performs the first SubGroup action.

      So my Question: Why does the Flygroup main Button(above the arrow) not call the Callback function when i start my Addin application. Do Flyoutgroups usually get constructed in another way, am i doing something wrong?


      PS.: Another question maybe helping me with the problem: When i set a normal added button of the command Group via the displaystyles to the same as shown above (with ActionFlyout) It looks exactly like the Button i want to have (and of course calls the correct function from the beginning of the program). But is there a way to somehow get a FlyoutGroup ONTO an existing button? Or can i somehow adjust the FlyoutGroup below the normal Button which I just declared ActionFlyout, even if it is not one?


      Help would be really appreciated!