Solved Remove a GeDialog Tab Group

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)

Hi @blastframe unfortunately, in Python there is no way, and you are right the correct thing is to flush and regenerate all the layout.
This is for sure not possible in Python, in C++ it may be possible via UpdateDialogHelper.
If you are interested in a C++ solution I can look further.

Cheers,
Maxime.

Hi @blastframe unfortunately, in Python there is no way, and you are right the correct thing is to flush and regenerate all the layout.
This is for sure not possible in Python, in C++ it may be possible via UpdateDialogHelper.
If you are interested in a C++ solution I can look further.

Cheers,
Maxime.

@m_adam I'm good with using Python this way. Thanks Maxime.