Python menu Check



  • On 24/03/2014 at 12:23, xxxxxxxx wrote:

    I am adding menu items to a python created window using:

    self.MenuSubBegin("Set")
    		self.MenuAddString(10017,"Local&c&")
    		self.MenuSubEnd()
    		
    

    Trying to toggle the check mark on the menu I am using:

    self.MenuInitString(10017,True,False)
    

    Where in the documentation, False is where the check status goes. So false should be unchecked and true should be checked. I can not get the check to do anything.

    Am I setting this up wrong?



  • On 24/03/2014 at 12:34, xxxxxxxx wrote:

    I can confirm your problem. Looks like a bug, I'll forward this to the devs. You'll need to
    flush the menu and re-build it.

    Best,
    -Niklas



  • On 24/03/2014 at 12:35, xxxxxxxx wrote:

    Thanks!



  • On 25/03/2014 at 00:49, xxxxxxxx wrote:

    The &c& always checks the entry. You have to rename or build a new menu. To check the menu remove the &c& and check it only with self.MenuInitString. If you need a check when the dialog opens use this function also in CreateLayout with checked=True. Hope this helps.

    Cheers, s_rath



  • On 25/03/2014 at 01:11, xxxxxxxx wrote:

    Thanks for the info, Sebastian. That explains why my tests didn't work, either.

    import c4d
      
    class Dialog(c4d.gui.GeDialog) :
      
        def CreateLayout(self) :
            self.MenuSubBegin("File")
            self.MenuAddString(1000, "Open ...")
            self.MenuAddString(1001, "Save ...")
            self.MenuAddString(1002, "Close")
            self.MenuInitString(1001, False, False)
            self.MenuInitString(1002, False, False)
            self.MenuSubEnd()
            self.MenuFinished()
            
            return True
      
        def Command(self, id, msg) :
            if id == 1000:
                self.MenuInitString(1001, True, False)
                self.MenuInitString(1002, True, False)
                self.MenuFinished()
            elif id == 1002:
                self.MenuInitString(1001, False, False)
                self.MenuInitString(1002, False, False)
                self.MenuFinished()
            return True
      
    dlg = Dialog()
    dlg.Open(c4d.DLG_TYPE_ASYNC)
    

    Best,
    -Niklas



  • On 25/03/2014 at 08:49, xxxxxxxx wrote:

    Thanks for the help guys!


Log in to reply