diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-01-29 19:18:49 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-01-29 19:18:49 +0000 |
commit | 0e3cbbb67bdfb3d3799fa904f8eb5b1357118d3f (patch) | |
tree | f3881f41dd2620cad2e662dc4bcf896f36c76355 /amiga/menu.c | |
parent | 509053cae7c33f63af72d690ad43d3a39a4c40f9 (diff) | |
download | netsurf-0e3cbbb67bdfb3d3799fa904f8eb5b1357118d3f.tar.gz netsurf-0e3cbbb67bdfb3d3799fa904f8eb5b1357118d3f.tar.bz2 |
Don't schedule our own redraw after a reformat, as this is performed anyway.
Attempt to get menus working on OS3 build.
Diffstat (limited to 'amiga/menu.c')
-rw-r--r-- | amiga/menu.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/amiga/menu.c b/amiga/menu.c index efc769938..712c6716b 100644 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -325,14 +325,28 @@ static void ami_init_menulabs(struct gui_window_2 *gwin) void ami_menu_refresh(struct gui_window_2 *gwin) { SetAttrs(gwin->objects[OID_MAIN], +#ifdef __amigaos4__ WINDOW_NewMenu, NULL, +#else + WINDOW_MenuStrip, NULL, +#endif TAG_DONE); +#ifndef __amigaos4__ + ami_menu_free_os3(gwin->menu_os3); +#endif ami_free_menulabs(gwin); ami_create_menu(gwin); +#ifndef __amigaos4__ + gwin->menu_os3 = ami_menu_create_os3(gwin->menu); +#endif SetAttrs(gwin->objects[OID_MAIN], +#ifdef __amigaos4__ WINDOW_NewMenu, gwin->menu, +#else + WINDOW_MenuStrip, gwin->menu_os3, +#endif TAG_DONE); } @@ -527,6 +541,22 @@ static struct gui_window_2 *ami_menu_layout(struct gui_window_2 *gwin) return gwin; } +#ifndef __amigaos4__ +void ami_menu_free_os3(struct gui_window_2 *gwin) +{ + FreeMenus(gwin->menu_os3); + FreeVisualInfo(gwin->vi); +} + +struct Menu *ami_menu_create_os3(struct gui_window_2 *gwin, struct NewMenu *newmenu) +{ + gwin->vi = GetVisualInfo(scrn, TAG_DONE); + gwin->menu_os3 = CreateMenus(newmenu, TAG_DONE); + LayoutMenus(menu, vi, TAG_DONE); + return gwin->menu_os3; +} +#endif + struct NewMenu *ami_create_menu(struct gui_window_2 *gwin) { gwin->menu = ami_misc_allocvec_clear(sizeof(struct NewMenu) * (AMI_MENU_AREXX_MAX + 1), 0); @@ -621,7 +651,8 @@ static bool ami_menu_hotlist_add(void *userdata, int level, int item, const char type = NM_SUB; break; default: - /* entries not at level 1 or 2 are not able to be added */ + /* entries not at level 1 or 2 are not able to be added + * \todo apparently this is possible with 4.1FE, need SDK! */ return false; break; } |