mirror of
https://github.com/gryf/wmaker.git
synced 2026-01-03 20:34:14 +01:00
added close button to editable menu
This commit is contained in:
@@ -61,6 +61,8 @@ typedef struct W_EditMenu {
|
|||||||
|
|
||||||
WMTextField *tfield;
|
WMTextField *tfield;
|
||||||
|
|
||||||
|
WMButton *closeB;
|
||||||
|
|
||||||
int titleHeight;
|
int titleHeight;
|
||||||
int itemHeight;
|
int itemHeight;
|
||||||
|
|
||||||
@@ -639,10 +641,35 @@ WGetEditMenuLocationForSubmenu(WEditMenu *mPtr, WEditMenu *submenu)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
closeMenuAction(WMWidget *w, void *data)
|
||||||
|
{
|
||||||
|
WEditMenu *menu = (WEditMenu*)data;
|
||||||
|
|
||||||
|
WMAddIdleHandler(WMDestroyWidget, menu->closeB);
|
||||||
|
menu->closeB = NULL;
|
||||||
|
|
||||||
|
WMUnmapWidget(menu);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
WTearOffEditMenu(WEditMenu *menu, WEditMenu *submenu)
|
WTearOffEditMenu(WEditMenu *menu, WEditMenu *submenu)
|
||||||
{
|
{
|
||||||
|
WEditMenuItem *item;
|
||||||
|
|
||||||
submenu->flags.isTornOff = 1;
|
submenu->flags.isTornOff = 1;
|
||||||
|
|
||||||
|
item = (WEditMenuItem*)WMGetFromBag(submenu->items, 0);
|
||||||
|
|
||||||
|
submenu->closeB = WMCreateCommandButton(item);
|
||||||
|
WMResizeWidget(submenu->closeB, 15, 15);
|
||||||
|
WMMoveWidget(submenu->closeB, W_VIEW(submenu)->size.width - 20, 3);
|
||||||
|
WMRealizeWidget(submenu->closeB);
|
||||||
|
WMSetButtonText(submenu->closeB, "X");
|
||||||
|
WMSetButtonAction(submenu->closeB, closeMenuAction, submenu);
|
||||||
|
WMMapWidget(submenu->closeB);
|
||||||
|
|
||||||
if (menu->selectedItem && menu->selectedItem->submenu == submenu)
|
if (menu->selectedItem && menu->selectedItem->submenu == submenu)
|
||||||
deselectItem(menu);
|
deselectItem(menu);
|
||||||
@@ -686,7 +713,7 @@ updateMenuContents(WEditMenu *mPtr)
|
|||||||
i = 1;
|
i = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
newW += iheight + 5;
|
newW += iheight + 10;
|
||||||
newH--;
|
newH--;
|
||||||
|
|
||||||
if (mPtr->minSize.width)
|
if (mPtr->minSize.width)
|
||||||
|
|||||||
Reference in New Issue
Block a user