THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 17/03/2010 at 06:20, xxxxxxxx wrote:
Yes, this is possible. Non-modal dialogs are created with the GeDialog class.
Here is an example of a simple test dialog plugin.
// be sure to use a unique ID obtained from www.plugincafe.com
var PLUGINID = 1000158;
// be sure to use a unique ID obtained from www.plugincafe.com
enum
{
GADGET_BUTTON = 5000,
_dummy
}
// definition of my dialog class
class MyDialog : GeDialog
{
public:
MyDialog();
CreateLayout();
Command(id,msg);
}
MyDialog::MyDialog()
{
super(PLUGINID);
}
MyDialog::CreateLayout()
{
SetTitle("My Dialog");
AddGroupBeginV(0,BFH_SCALEFIT,1,"",0);
{
AddGroupBorderSpace(4,4,4,4);
AddStaticText(0,BFH_FIT,0,0,"just some random text",0);
AddButton(GADGET_BUTTON,BFH_FIT,0,0,"click me");
}
AddGroupEnd();
return TRUE;
}
MyDialog::Command(id,msg)
{
switch (id)
{
case GADGET_BUTTON:
//button clicked, do something
break;
}
}
class MyMenuPlugin : MenuPlugin
{
public:
MyMenuPlugin();
GetID();
GetName();
GetHelp();
Execute(doc);
RestoreLayout(secret);
}
MyMenuPlugin::MyMenuPlugin()
{
super();
}
MyMenuPlugin::GetID()
{
return PLUGINID;
}
MyMenuPlugin::GetName()
{
return "Modal Dialog";
}
MyMenuPlugin::GetHelp()
{
return "Demonstrates a modal dialog";
}
var d;
MyMenuPlugin::Execute(doc)
{
d->Open(TRUE,-1,-1);
}
MyMenuPlugin::RestoreLayout(secret)
{
if (!d) d = new(MyDialog);
d->RestoreLayout(secret);
}
main()
{
d = new(MyDialog);
Register(MyMenuPlugin);
}
cheers,
Matthias