summaryrefslogtreecommitdiff
path: root/amiga/menu.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-01-29 19:18:49 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-01-29 19:18:49 +0000
commit0e3cbbb67bdfb3d3799fa904f8eb5b1357118d3f (patch)
treef3881f41dd2620cad2e662dc4bcf896f36c76355 /amiga/menu.c
parent509053cae7c33f63af72d690ad43d3a39a4c40f9 (diff)
downloadnetsurf-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.c33
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;
}