mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-23 12:36:51 +03:00
set menu to window through a function
This commit is contained in:
parent
67af746324
commit
83c3831853
@ -363,6 +363,15 @@ struct Menu *ami_gui_get_menu(struct gui_window *gw)
|
||||
return gw->shared->imenu;
|
||||
}
|
||||
|
||||
void ami_gui2_set_menu(struct gui_window_2 *gwin, struct Menu *menu)
|
||||
{
|
||||
if(menu != NULL) {
|
||||
gwin->imenu = menu;
|
||||
} else {
|
||||
ami_gui_menu_freemenus(gwin->imenu);
|
||||
}
|
||||
}
|
||||
|
||||
STRPTR ami_locale_langs(int *codeset)
|
||||
{
|
||||
struct Locale *locale;
|
||||
|
@ -316,5 +316,10 @@ struct Window *ami_gui_get_window(struct gui_window *gw);
|
||||
*/
|
||||
struct Menu *ami_gui_get_menu(struct gui_window *gw);
|
||||
|
||||
/**
|
||||
* Set imenu to gui_window_2. A value of NULL will free the menu.
|
||||
*/
|
||||
void ami_gui2_set_menu(struct gui_window_2 *gwin, struct Menu *menu);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1035,26 +1035,31 @@ struct Menu *ami_gui_menu_create(struct gui_window_2 *gwin)
|
||||
if(LIB_IS_AT_LEAST((struct Library *)IntuitionBase, 54, 6)) {
|
||||
#ifdef __amigaos4__
|
||||
if(gui_menu != NULL) {
|
||||
gwin->imenu = gui_menu;
|
||||
ami_gui2_set_menu(gwin, gui_menu);
|
||||
gui_menu_count++;
|
||||
return gwin->imenu;
|
||||
return gui_menu;
|
||||
}
|
||||
ami_init_menulabs(gui_menu_data);
|
||||
ami_menu_scan(gui_menu_data);
|
||||
ami_menu_arexx_scan(gui_menu_data);
|
||||
gwin->imenu = ami_menu_layout(gui_menu_data, AMI_MENU_AREXX_MAX);
|
||||
gui_menu = ami_menu_layout(gui_menu_data, AMI_MENU_AREXX_MAX);
|
||||
|
||||
gui_menu = gwin->imenu;
|
||||
ami_gui2_set_menu(gwin, gui_menu);
|
||||
gui_menu_count++;
|
||||
return gui_menu;
|
||||
#endif
|
||||
} else {
|
||||
struct Menu *temp_menu;
|
||||
|
||||
ami_init_menulabs(gwin->menu_data);
|
||||
ami_menu_scan(gwin->menu_data);
|
||||
ami_menu_arexx_scan(gwin->menu_data);
|
||||
gwin->imenu = ami_menu_layout(gwin->menu_data, AMI_MENU_AREXX_MAX);
|
||||
temp_menu = ami_menu_layout(gwin->menu_data, AMI_MENU_AREXX_MAX);
|
||||
ami_gui2_set_menu(gwin, temp_menu);
|
||||
return temp_menu;
|
||||
}
|
||||
|
||||
return gwin->imenu;
|
||||
return NULL; // shouldn't get this far
|
||||
}
|
||||
|
||||
static void ami_free_menulabs(struct ami_menu_data **md)
|
||||
@ -1089,6 +1094,13 @@ static void ami_free_menulabs(struct ami_menu_data **md)
|
||||
}
|
||||
}
|
||||
|
||||
void ami_gui_menu_freemenus(struct Menu *menu)
|
||||
{
|
||||
if(menu != NULL) {
|
||||
FreeMenus(menu);
|
||||
}
|
||||
}
|
||||
|
||||
void ami_gui_menu_free(struct gui_window_2 *gwin)
|
||||
{
|
||||
if(LIB_IS_AT_LEAST((struct Library *)IntuitionBase, 54, 6)) {
|
||||
@ -1106,7 +1118,7 @@ void ami_gui_menu_free(struct gui_window_2 *gwin)
|
||||
#endif
|
||||
} else {
|
||||
ami_free_menulabs(gwin->menu_data);
|
||||
FreeMenus(gwin->imenu);
|
||||
ami_gui2_set_menu(gwin, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -154,5 +154,10 @@ void ami_gui_menu_refresh_hotlist(void);
|
||||
* \return true if NetSurf has been quit
|
||||
*/
|
||||
bool ami_gui_menu_quit_selected(void);
|
||||
|
||||
/**
|
||||
* Frees a menu. Only used on OS3 and old OS4.
|
||||
*/
|
||||
void ami_gui_menu_freemenus(struct Menu *menu);
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user