144 lines
4.5 KiB
C
144 lines
4.5 KiB
C
|
/** \file
|
||
|
* \brief Menu Resources
|
||
|
*
|
||
|
* See Copyright Notice in "iup.h"
|
||
|
*/
|
||
|
|
||
|
|
||
|
#include <stdlib.h>
|
||
|
#include <stdio.h>
|
||
|
#include <string.h>
|
||
|
#include <memory.h>
|
||
|
#include <stdarg.h>
|
||
|
|
||
|
#include "iup.h"
|
||
|
#include "iupcbs.h"
|
||
|
|
||
|
#include "iup_object.h"
|
||
|
#include "iup_childtree.h"
|
||
|
#include "iup_attrib.h"
|
||
|
#include "iup_dialog.h"
|
||
|
#include "iup_str.h"
|
||
|
#include "iup_label.h"
|
||
|
#include "iup_drv.h"
|
||
|
#include "iup_drvfont.h"
|
||
|
#include "iup_image.h"
|
||
|
#include "iup_menu.h"
|
||
|
|
||
|
#include "iupemscripten_drv.h"
|
||
|
|
||
|
|
||
|
|
||
|
int iupdrvMenuPopup(Ihandle* ih, int x, int y)
|
||
|
{
|
||
|
|
||
|
return IUP_NOERROR;
|
||
|
}
|
||
|
|
||
|
int iupdrvMenuGetMenuBarSize(Ihandle* ih)
|
||
|
{
|
||
|
int ch;
|
||
|
iupdrvFontGetCharSize(ih, NULL, &ch);
|
||
|
#ifdef WIN32
|
||
|
return 3 + ch + 3;
|
||
|
#else
|
||
|
return 4 + ch + 4;
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
|
||
|
static void emscriptenReleaseMenuClass(Iclass* ic)
|
||
|
{
|
||
|
// Not sure if I should tear this down. Typically apps just quit and leave all this stuff.
|
||
|
// [NSApp setMainMenu:nil];
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
void iupdrvMenuInitClass(Iclass* ic)
|
||
|
{
|
||
|
#if 0
|
||
|
id menubar = [[NSMenu new] autorelease];
|
||
|
id appMenuItem = [[NSMenuItem new] autorelease];
|
||
|
[menubar addItem:appMenuItem];
|
||
|
[NSApp setMainMenu:menubar];
|
||
|
id appMenu = [[NSMenu new] autorelease];
|
||
|
id appName = [[NSProcessInfo processInfo] processName];
|
||
|
id quitTitle = [@"Quit " stringByAppendingString:appName];
|
||
|
id quitMenuItem = [[[NSMenuItem alloc] initWithTitle:quitTitle
|
||
|
action:@selector(terminate:) keyEquivalent:@"q"] autorelease];
|
||
|
[appMenu addItem:quitMenuItem];
|
||
|
[appMenuItem setSubmenu:appMenu];
|
||
|
|
||
|
ic->Release = emscriptenReleaseMenuClass;
|
||
|
/* Driver Dependent Class functions */
|
||
|
ic->Map = gtkMenuMapMethod;
|
||
|
ic->UnMap = gtkMenuUnMapMethod;
|
||
|
|
||
|
/* Used by iupdrvMenuGetMenuBarSize */
|
||
|
iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, NULL, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_DEFAULT); /* use inheritance to retrieve standard fonts */
|
||
|
|
||
|
iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, NULL, NULL, IUPAF_DEFAULT);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
void iupdrvItemInitClass(Iclass* ic)
|
||
|
{
|
||
|
#if 0
|
||
|
/* Driver Dependent Class functions */
|
||
|
ic->Map = gtkItemMapMethod;
|
||
|
ic->UnMap = iupdrvBaseUnMapMethod;
|
||
|
|
||
|
/* Common */
|
||
|
iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, iupdrvSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); /* use inheritance to retrieve standard fonts */
|
||
|
|
||
|
/* Visual */
|
||
|
iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
|
||
|
iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
|
||
|
|
||
|
/* IupItem only */
|
||
|
iupClassRegisterAttribute(ic, "VALUE", gtkItemGetValueAttrib, gtkItemSetValueAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
iupClassRegisterAttribute(ic, "TITLE", NULL, gtkItemSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
iupClassRegisterAttribute(ic, "TITLEIMAGE", NULL, gtkItemSetTitleImageAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkItemSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
iupClassRegisterAttribute(ic, "IMPRESS", NULL, gtkItemSetImpressAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
|
||
|
/* IupItem GTK and Motif only */
|
||
|
iupClassRegisterAttribute(ic, "HIDEMARK", NULL, NULL, NULL, NULL, IUPAF_NOT_MAPPED);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void iupdrvSubmenuInitClass(Iclass* ic)
|
||
|
{
|
||
|
#if 0
|
||
|
/* Driver Dependent Class functions */
|
||
|
ic->Map = gtkSubmenuMapMethod;
|
||
|
ic->UnMap = iupdrvBaseUnMapMethod;
|
||
|
|
||
|
/* Common */
|
||
|
iupClassRegisterAttribute(ic, "STANDARDFONT", NULL, iupdrvSetStandardFontAttrib, IUPAF_SAMEASSYSTEM, "DEFAULTFONT", IUPAF_NO_SAVE|IUPAF_NOT_MAPPED); /* use inheritance to retrieve standard fonts */
|
||
|
|
||
|
/* Visual */
|
||
|
iupClassRegisterAttribute(ic, "ACTIVE", iupBaseGetActiveAttrib, iupBaseSetActiveAttrib, IUPAF_SAMEASSYSTEM, "YES", IUPAF_DEFAULT);
|
||
|
iupClassRegisterAttribute(ic, "BGCOLOR", NULL, iupdrvBaseSetBgColorAttrib, IUPAF_SAMEASSYSTEM, "DLGBGCOLOR", IUPAF_DEFAULT);
|
||
|
|
||
|
/* IupSubmenu only */
|
||
|
iupClassRegisterAttribute(ic, "TITLE", NULL, gtkItemSetTitleAttrib, NULL, NULL, IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
iupClassRegisterAttribute(ic, "IMAGE", NULL, gtkSubmenuSetImageAttrib, NULL, NULL, IUPAF_IHANDLENAME|IUPAF_NO_DEFAULTVALUE|IUPAF_NO_INHERIT);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void iupdrvSeparatorInitClass(Iclass* ic)
|
||
|
{
|
||
|
#if 0
|
||
|
/* Driver Dependent Class functions */
|
||
|
ic->Map = gtkSeparatorMapMethod;
|
||
|
ic->UnMap = iupdrvBaseUnMapMethod;
|
||
|
#endif
|
||
|
|
||
|
}
|