Hello,
I'm trying to remove a GeDialog Tab Group. Is this possible without flushing the Layout and redrawing all of the groups? Thank you
import c4d
from c4d import gui
PLUGIN_ID = 123456
MAIN_GROUP = 10000
GROUP_1 = 10001
GROUP_2 = 10002
GROUP_BTN = 10003
TEXT_1 = 2001
TEXT_2 = 2002
DELETE_GRP_BTN = 2003
class MyDialog(c4d.gui.GeDialog):
def CreateLayout(self):
self.SetTitle("Remove Group")
if self.TabGroupBegin(MAIN_GROUP, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, tabtype=c4d.TAB_TABS):
if self.GroupBegin(GROUP_1, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, 3, 0, "Group 1"):
self.GroupBorderSpace(10,10,10,10)
self.AddStaticText(TEXT_1, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, 0, 0, "Group 1", c4d.BORDER_THIN_IN)
self.GroupEnd()
if self.GroupBegin(GROUP_2, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, 3, 0, "Group 2"):
self.GroupBorderSpace(10,10,10,10)
self.AddStaticText(TEXT_2, c4d.BFH_SCALEFIT | c4d.BFV_SCALEFIT, 0, 0, "Group 2", c4d.BORDER_THIN_IN)
self.GroupEnd()
self.GroupEnd()
if self.GroupBegin(GROUP_BTN, c4d.BFH_SCALEFIT | c4d.BFV_BOTTOM, 0, 0, ""):
self.GroupBorderSpace(10,10,10,10)
self.AddButton(DELETE_GRP_BTN, c4d.BFH_LEFT, initw=0, inith=0, name='DELETE')
self.GroupEnd()
return True
def Command(self, id, msg):
if id == DELETE_GRP_BTN:
self.RemoveElement(GROUP_1)
self.LayoutChanged(MAIN_GROUP)
#self.SetInt32(MAIN_GROUP, GROUP_2)
return True
if __name__=='__main__':
global myDlg
myDlg = MyDialog()
myDlg.Open(dlgtype=c4d.DLG_TYPE_ASYNC, xpos=-2, ypos=-2, \
pluginid=PLUGIN_ID, defaultw=400, defaulth=350)