add: browserDelegate.data = panel;
context: createPanel(_Panel *p){    _Panel *panel = (_Panel*)p;            panel->frame = WMCreateFrame(panel->win);    WMResizeWidget(panel->frame, FRAME_WIDTH, FRAME_HEIGHT);    WMMoveWidget(panel->frame, FRAME_LEFT, FRAME_TOP);    panel->cmd1P = WMCreatePopUpButton(panel->frame);    WMSetPopUpButtonAction(panel->cmd1P, performCommand, panel);    WMResizeWidget(panel->cmd1P, 144, 20);    WMMoveWidget(panel->cmd1P, 15, 15);    WMSetPopUpButtonPullsDown(panel->cmd1P, True);    WMSetPopUpButtonText(panel->cmd1P, _("Commands"));    WMAddPopUpButtonItem(panel->cmd1P, _("Add Command"));    WMAddPopUpButtonItem(panel->cmd1P, _("Add Submenu"));    WMAddPopUpButtonItem(panel->cmd1P, _("Add External Menu"));    WMAddPopUpButtonItem(panel->cmd1P, _("Add Workspace Menu"));    WMAddPopUpButtonItem(panel->cmd1P, _("Remove Item"));    WMAddPopUpButtonItem(panel->cmd1P, _("Cut Item"));    WMAddPopUpButtonItem(panel->cmd1P, _("Copy Item"));    WMAddPopUpButtonItem(panel->cmd1P, _("Paste Item"));        panel->cmd2P = WMCreatePopUpButton(panel->frame);    WMSetPopUpButtonAction(panel->cmd2P, performCommand, panel);    WMResizeWidget(panel->cmd2P, 144, 20);    WMMoveWidget(panel->cmd2P, 164, 15);    WMSetPopUpButtonPullsDown(panel->cmd2P, True);    WMSetPopUpButtonText(panel->cmd2P, _("Commands"));    WMAddPopUpButtonItem(panel->cmd2P, _("Add Command"));    WMAddPopUpButtonItem(panel->cmd2P, _("Add Submenu"));    WMAddPopUpButtonItem(panel->cmd2P, _("Add External Menu"));    WMAddPopUpButtonItem(panel->cmd2P, _("Add Workspace Menu"));    WMAddPopUpButtonItem(panel->cmd2P, _("Remove Item"));    WMAddPopUpButtonItem(panel->cmd2P, _("Cut Item"));    WMAddPopUpButtonItem(panel->cmd2P, _("Copy Item"));    WMAddPopUpButtonItem(panel->cmd2P, _("Paste Item"));        panel->tit1T = WMCreateTextField(panel->frame);    WMResizeWidget(panel->tit1T, 144, 20);    WMMoveWidget(panel->tit1T, 15, 40);    WMAddNotificationObserver(changedTitle, panel, WMTextDidChangeNotification,			      panel->tit1T);        panel->tit2T = WMCreateTextField(panel->frame);    WMResizeWidget(panel->tit2T, 144, 20);    WMMoveWidget(panel->tit2T, 164, 40);    WMAddNotificationObserver(changedTitle, panel, WMTextDidChangeNotification,			      panel->tit2T);    panel->browser = WMCreateBrowser(panel->frame);    WMSetBrowserTitled(panel->browser, False);    WMResizeWidget(panel->browser, 295, 160);    WMMoveWidget(panel->browser, 15, 65);    WMSetBrowserDelegate(panel->browser, &browserDelegate);    WMHangData(panel->browser, panel);    WMSetBrowserPathSeparator(panel->browser, "\r");    WMSetBrowserAction(panel->browser, browserClick, panel);    /**/    panel->labF = WMCreateFrame(panel->frame);    WMResizeWidget(panel->labF, 190, 50);    WMMoveWidget(panel->labF, 320, 10);    WMSetFrameTitle(panel->labF, _("Label"));    panel->labT = WMCreateTextField(panel->labF);    WMResizeWidget(panel->labT, 170, 20);    WMMoveWidget(panel->labT, 10, 20);    WMAddNotificationObserver(changedItem, panel, WMTextDidChangeNotification,			      panel->labT);        WMMapSubwidgets(panel->labF);	    panel->cmdF = WMCreateFrame(panel->frame);    WMResizeWidget(panel->cmdF, 190, 50);    WMMoveWidget(panel->cmdF, 320, 65);    WMSetFrameTitle(panel->cmdF, _("Command"));    panel->cmdP = WMCreatePopUpButton(panel->cmdF);    WMResizeWidget(panel->cmdP, 170, 20);    WMMoveWidget(panel->cmdP, 10, 20);    WMAddPopUpButtonItem(panel->cmdP, _("Run Program"));    WMAddPopUpButtonItem(panel->cmdP, _("Execute Shell Command"));    WMAddPopUpButtonItem(panel->cmdP, _("Arrange Icons"));    WMAddPopUpButtonItem(panel->cmdP, _("Hide Others"));    WMAddPopUpButtonItem(panel->cmdP, _("Show All Windows"));    WMAddPopUpButtonItem(panel->cmdP, _("Exit WindowMaker"));    WMAddPopUpButtonItem(panel->cmdP, _("Exit X Session"));    WMAddPopUpButtonItem(panel->cmdP, _("Start Window Manager"));    WMAddPopUpButtonItem(panel->cmdP, _("Restart WindowMaker"));    WMAddPopUpButtonItem(panel->cmdP, _("Save Session"));    WMAddPopUpButtonItem(panel->cmdP, _("Clear Session"));    WMAddPopUpButtonItem(panel->cmdP, _("Refresh Screen"));    WMAddPopUpButtonItem(panel->cmdP, _("Info Panel"));    WMAddPopUpButtonItem(panel->cmdP, _("Legal Panel"));    WMSetPopUpButtonAction(panel->cmdP, changedCommand, panel);        WMMapSubwidgets(panel->cmdF);        panel->infoL = WMCreateLabel(panel->frame);    WMResizeWidget(panel->infoL, 190, 50);    WMMoveWidget(panel->infoL, 320, 65);    WMSetLabelText(panel->infoL, _("Open workspace menu"));    WMSetLabelRelief(panel->infoL, WRGroove);    WMSetLabelTextAlignment(panel->infoL, WACenter);    panel->noconfirmB = WMCreateSwitchButton(panel->frame);    WMResizeWidget(panel->noconfirmB, 190, 50);    WMMoveWidget(panel->noconfirmB, 320, 120);    WMSetButtonText(panel->noconfirmB, _("No confirmation panel"));    WMSetButtonAction(panel->noconfirmB, confirmClicked, panel);    panel->pathF = WMCreateFrame(panel->frame);    WMResizeWidget(panel->pathF, 190, 50);    WMMoveWidget(panel->pathF, 320, 65);    WMSetFrameTitle(panel->pathF, _("Menu Path/Directory List"));        panel->pathT = WMCreateTextField(panel->pathF);    WMResizeWidget(panel->pathT, 170, 20);    WMMoveWidget(panel->pathT, 10, 20);    WMAddNotificationObserver(changedItem, panel, WMTextDidChangeNotification,			      panel->pathT);    WMMapSubwidgets(panel->pathF);    panel->proF = WMCreateFrame(panel->frame);    WMResizeWidget(panel->proF, 190, 50);    WMMoveWidget(panel->proF, 320, 120);    WMSetFrameTitle(panel->proF, _("Program to Run"));        panel->proT = WMCreateTextField(panel->proF);    WMResizeWidget(panel->proT, 170, 20);    WMMoveWidget(panel->proT, 10, 20);    WMAddNotificationObserver(changedItem, panel, WMTextDidChangeNotification,			      panel->proT);    WMMapSubwidgets(panel->proF);    panel->shoF = WMCreateFrame(panel->frame);    WMResizeWidget(panel->shoF, 190, 50);    WMMoveWidget(panel->shoF, 320, 175);    WMSetFrameTitle(panel->shoF, _("Shortcut"));        panel->shoT = WMCreateTextField(panel->shoF);    WMResizeWidget(panel->shoT, 95, 20);    WMMoveWidget(panel->shoT, 10, 20);    WMAddNotificationObserver(changedItem, panel, WMTextDidChangeNotification,			      panel->shoT);        panel->shoB = WMCreateCommandButton(panel->shoF);    WMResizeWidget(panel->shoB, 70, 24);    WMMoveWidget(panel->shoB, 110, 18);    WMSetButtonText(panel->shoB, _("Capture"));    WMSetButtonAction(panel->shoB, captureClick, panel);    WMMapSubwidgets(panel->shoF);        panel->guruB = WMCreateCommandButton(panel->frame);    WMResizeWidget(panel->guruB, 180, 24);    WMMoveWidget(panel->guruB, 325, 190);    WMSetButtonText(panel->guruB, _("Ask help to the Guru"));    WMSetButtonAction(panel->guruB, openGuru, panel);    WMRealizeWidget(panel->frame);    WMMapSubwidgets(panel->frame);    showData(panel);}