Dialog Button executes code of 2 buttons [SOLVED]



  • On 19/06/2015 at 05:59, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R16 
    Platform:      Mac OSX  ; 
    Language(s) :     C++  ;

    ---------
    Hi,

    I have a commandData plugin working together with a messageData plugin.
    I have 2 buttons inside my GUI: DLG_BUTTON_1 and DLG_BUTTON_2.
    If you press on them, they both send a GePrint with their value inside ("Pressed button 1/2").

    The problem is, if I press the first button, GePrint prints them both.
    If I press the second button, GePrint only prints the second line.
    Here is my code:

      
    Bool MyDialog::Command(Int32 id, const BaseContainer &msg)  
    {  
      switch (id)  
      {  
          case DLG_BUTTON_1:  
          {  
              BaseDocument *doc = GetActiveDocument();  
              Int32 modelMode1 = doc->GetMode();  
              if (modelMode1 == Mmodel)  
              {  
                  GePrint("Pressed button 1");  
              }  
          }  
      
          case DLG_BUTTON_2:  
          {  
              BaseDocument *doc = GetActiveDocument();  
              Int32 modelMode2 = doc->GetMode();  
              if (modelMode2 == Mmodel)  
              {  
                  GePrint("Pressed button 2");  
              }  
          }  
      }  
      return true  
    }  
    

    Does somebody know why this is happening?
    And if I put code inside the if statement, will that be called 2 times as well?

    Thanks in advance for your help and time!
    Greetings,
    Casimir Smets



  • On 19/06/2015 at 06:13, xxxxxxxx wrote:

    Schoolboy error, you forgot to add the 'break' after each case.

    Steve



  • On 19/06/2015 at 07:03, xxxxxxxx wrote:

    Hi Steve,

    Hahaha, feeling a little bit stupid now! :D
    I'm glad I've got it working now :D

    Thanks for your answer!
    Greetings,
    Casimir Smets


Log in to reply