dialog_modal¶
Creates a basic Modal Dialog.
dialog_modal.py¶
"""Creates a basic Modal Dialog.
Topics:
* c4d.gui.GeDialog
* GeDialog.CreateLayout()
* GeDialog.Command()
Note:
- Due to the lifetime of the variable, GeDialog must be created as Modal in a script.
"""
__author__ = "Maxime Adam"
__copyright__ = "Copyright (C) 2026 MAXON Computer GmbH"
__license__ = "Apache-2.0 License"
__version__ = "R13"
import c4d
class ExampleDialog(c4d.gui.GeDialog):
def CreateLayout(self):
"""
This Method is called automatically when Cinema 4D Create the Layout (display) of the Dialog.
"""
# Defines the title of the Dialog
self.SetTitle("This is an example Dialog")
# Creates a Ok and Cancel Button
self.AddDlgGroup(c4d.DLG_OK | c4d.DLG_CANCEL)
return True
def Command(self, messageId, bc):
"""
This Method is called automatically when the user clicks on a gadget and/or changes its value this function will be called.
It is also called when a string menu item is selected.
:param messageId: The ID of the gadget that triggered the event.
:param bc: The original message container
:return: False if there was an error, otherwise True.
"""
# User click on Ok button
if messageId == c4d.DLG_OK:
print("User Click on Ok")
return True
# User click on Cancel button
elif messageId == c4d.DLG_CANCEL:
print("User Click on Cancel")
# Close the Dialog
self.Close()
return True
return True
def main():
# Creates a new instance of the GeDialog
dlg = ExampleDialog()
# Opens the GeDialog, since it's open it as Modal, it block Cinema 4D
dlg.Open(c4d.DLG_TYPE_MODAL_RESIZEABLE, defaultw=300, defaulth=50)
if __name__ == "__main__":
main()