|
Modules
ADT Database GTK2 GUI IP PiJAX Public Sql Stdio Subversion System Tools Xosd lua v4l2 wx
Recent Changes
Public.USB 1.0
Public.Parser.XML2 1.50
Public.ZeroMQ 1.1
Public.Template.Mustache 1.0
Public.Protocols.XMPP 1.4
Popular Downloads
Public.Parser.JSON2 1.0
Public.Parser.JSON 0.2
GTK2 2.23
Public.Web.FCGI 1.8
Public.Parser.XML2 1.48
|
Module Information
wx
Viewing contents of wx-0.5/menu.pike
class MenuApp
{
inherit wx.App;
int OnInit()
{
MenuFrame mainMenu=MenuFrame("Main Menu",
([ "Office":([
"WordProcessor":0,
"Spreadsheet":0]),
"Network":0,
"Util":0 ]) );
mainMenu->Show(wx.TRUE);
SetTopWindow(mainMenu);
}
}
class MenuFrame
{
inherit wx.Frame;
array(mixed) itemActions;
void create(string title, mapping(string:mixed) items)
{
::create(0,-1,title);
itemActions = allocate(sizeof(items));
wx.BoxSizer sizer=wx.BoxSizer(wx.VERTICAL);
wx.BoxSizer titleSizer=wx.BoxSizer(wx.HORIZONTAL);
SetSizer(sizer);
sizer->AddSizer(titleSizer);
wx.CheckBox stick=wx.CheckBox(this_object(), -1, "");
titleSizer->Add(stick);
wx.Frame aux=wx.Frame(0,-1,"Aux");
wx.StaticText b=wx.StaticText(aux, -1, title);
b->Reparent(this_object());
titleSizer->Add(b);
string item;
int i=0;
foreach (indices(items), item) {
write(sprintf("%s:%O\n",item,items[item]));
wx.Button b=wx.Button(this_object(), 10000+i, item);
sizer->Add(b);
if (_typeof(([]))<= _typeof(items[item])) {
write("x\n");
itemActions[i]=MenuFrame(item,items[item]);
Connect(10000+i,wx.EVT_COMMAND_BUTTON_CLICKED,this_object()->openSubMenu);
} else
itemActions[i]=items[item];
i++;
}
Fit();
}
void openSubMenu(wx.Event ev)
{
//wx.Point p=ClientToScreen(button->GetPosition());
//p->
itemActions[ev->GetId()-10000]->Show(wx.TRUE);
}
}
void main()
{
wx.implement_app(MenuApp);
}
|
|
|