CreateLayout in ObjectPlugin without res file
-
On 06/08/2013 at 07:08, xxxxxxxx wrote:
Hi. Probably silly question, but I cannot figure out how to create layout without res file:
Am I missing something? Thank you.import c4d from c4d import gui, plugins, utils import os, random PLUGIN_ID = 3333333 PLUGIN_NAME = "pluginname" PLUGIN_DESCRIPTION = "Opluginname" class MYPLUGIN(c4d.plugins.ObjectData) : def CreateLayout(self) : self.SetTitle("My Dialog") self.GroupBegin(id=100010, flags=0, cols=1, rows=1) self.AddGroupSpace(4, 4) self.AddGroupBorderSpace(4, 4, 4, 4) self.AddStaticText(id=100011, flags=0, name="Hello World!") self.GroupEnd() return True if __name__ == '__main__': bmp = c4d.bitmaps.BaseBitmap() dir, file = os.path.split(__file__) fn = os.path.join(dir, "res", "Icon.tif") bmp.InitWith(fn) result = plugins.RegisterObjectPlugin( id=PLUGIN_ID, str=PLUGIN_NAME, g=MYPLUGIN, description="", info=c4d.OBJECT_GENERATOR, icon=bmp )
-
On 06/08/2013 at 07:24, xxxxxxxx wrote:
Hi Tomas,
There's no CreateLayout() for data plugins. You can only use .res files description.
Do not confound descriptions and dialogs. CreateLayout() is only defined for dialogs. -
On 06/08/2013 at 07:25, xxxxxxxx wrote:
I see. I thought so:)
Thanks for clearing this out for me. Appreciate that. -
On 06/08/2013 at 08:53, xxxxxxxx wrote:
On the other hand, if I build buy GUI in res file, can I make some elements greyed out, depending on what settings/buttons are pressed by user?
-
On 06/08/2013 at 08:59, xxxxxxxx wrote:
Originally posted by xxxxxxxx
On the other hand, if I build buy GUI in res file, can I make some elements greyed out, depending on what settings/buttons are pressed by user?
Yes, you can override NodeData.GetDEnabling() and depending on the passed id return True to enable or False to disable the description parameter.
Here's how it's implemented in Py-DoubleCircle example:def GetDEnabling(self, node, id, t_data, flags, itemdesc) : data = node.GetDataInstance() if data is None: return inter = data.GetLong(c4d.SPLINEOBJECT_INTERPOLATION) if id[0].id==c4d.SPLINEOBJECT_SUB: return inter==c4d.SPLINEOBJECT_INTERPOLATION_NATURAL or inter==c4d.SPLINEOBJECT_INTERPOLATION_UNIFORM elif id[0].id==c4d.SPLINEOBJECT_ANGLE: return inter==c4d.SPLINEOBJECT_INTERPOLATION_ADAPTIVE or inter==c4d.SPLINEOBJECT_INTERPOLATION_SUBDIV elif id[0].id==c4d.SPLINEOBJECT_MAXIMUMLENGTH: return inter==c4d.SPLINEOBJECT_INTERPOLATION_SUBDIV return True
-
On 06/08/2013 at 09:02, xxxxxxxx wrote:
Oh ok, that makes a lot of sense. Will investigate your code. Thanks for your input.