mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-27 06:19:42 +03:00
165 lines
4.0 KiB
C
Executable File
165 lines
4.0 KiB
C
Executable File
/*
|
|
* Copyright 2008,2009,2013 Chris Young <chris@unsatisfactorysoftware.co.uk>
|
|
*
|
|
* This file is part of NetSurf, http://www.netsurf-browser.org/
|
|
*
|
|
* NetSurf is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* NetSurf is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef AMIGA_MENU_H
|
|
#define AMIGA_MENU_H
|
|
|
|
#include <exec/types.h>
|
|
#include <intuition/intuition.h>
|
|
#include <libraries/gadtools.h>
|
|
|
|
struct hlcache_handle;
|
|
|
|
/** Maximum number of hotlist items (somewhat arbitrary value) */
|
|
#define AMI_HOTLIST_ITEMS 60
|
|
|
|
/** Maximum number of ARexx menu items (somewhat arbitrary value) */
|
|
#define AMI_MENU_AREXX_ITEMS 20
|
|
|
|
/** enum menu structure, has to be here as we need it below. */
|
|
enum {
|
|
/* Project menu */
|
|
M_PROJECT = 0,
|
|
M_NEWWIN,
|
|
M_NEWTAB,
|
|
M_BAR_P1,
|
|
M_OPEN,
|
|
M_SAVEAS,
|
|
M_SAVESRC,
|
|
M_SAVETXT,
|
|
M_SAVECOMP,
|
|
M_SAVEIFF,
|
|
#ifdef WITH_PDF_EXPORT
|
|
M_SAVEPDF,
|
|
#endif
|
|
M_BAR_P2,
|
|
M_PRINT,
|
|
M_BAR_P3,
|
|
M_CLOSETAB,
|
|
M_CLOSEWIN,
|
|
M_BAR_P4,
|
|
M_ABOUT,
|
|
M_BAR_P5,
|
|
M_QUIT,
|
|
/* Edit menu */
|
|
M_EDIT,
|
|
M_CUT,
|
|
M_COPY,
|
|
M_PASTE,
|
|
M_BAR_E1,
|
|
M_SELALL,
|
|
M_CLEAR,
|
|
M_BAR_E2,
|
|
M_UNDO,
|
|
M_REDO,
|
|
/* Browser menu */
|
|
M_BROWSER,
|
|
M_FIND,
|
|
M_BAR_B1,
|
|
M_HISTLOCL,
|
|
M_HISTGLBL,
|
|
M_BAR_B2,
|
|
M_COOKIES,
|
|
M_BAR_B3,
|
|
M_SCALE,
|
|
M_SCALEDEC,
|
|
M_SCALENRM,
|
|
M_SCALEINC,
|
|
M_IMAGES,
|
|
M_IMGFORE,
|
|
M_IMGBACK,
|
|
M_JS,
|
|
M_BAR_B4,
|
|
M_REDRAW,
|
|
/* Hotlist menu */
|
|
M_HOTLIST,
|
|
M_HLADD,
|
|
M_HLSHOW,
|
|
M_BAR_H1, // 47
|
|
AMI_MENU_HOTLIST, /* Where the hotlist entries start */
|
|
AMI_MENU_HOTLIST_MAX = AMI_MENU_HOTLIST + AMI_HOTLIST_ITEMS,
|
|
/* Settings menu */
|
|
M_PREFS,
|
|
M_PREDIT,
|
|
M_BAR_S1,
|
|
M_SNAPSHOT,
|
|
M_PRSAVE,
|
|
/* ARexx menu */
|
|
M_AREXX,
|
|
M_AREXXEX,
|
|
M_BAR_A1,
|
|
AMI_MENU_AREXX,
|
|
AMI_MENU_AREXX_MAX = AMI_MENU_AREXX + AMI_MENU_AREXX_ITEMS
|
|
};
|
|
|
|
/* We can get away with AMI_MENU_MAX falling short as it is
|
|
* only used for freeing the UTF-8 converted menu labels */
|
|
#define AMI_MENU_MAX AMI_MENU_AREXX
|
|
|
|
/* The Intuition menu numbers of some menus we might need to modify */
|
|
#define AMI_MENU_SAVEAS_TEXT FULLMENUNUM(0,4,1)
|
|
#define AMI_MENU_SAVEAS_COMPLETE FULLMENUNUM(0,4,2)
|
|
#define AMI_MENU_SAVEAS_IFF FULLMENUNUM(0,4,3)
|
|
#define AMI_MENU_SAVEAS_PDF FULLMENUNUM(0,4,4)
|
|
#define AMI_MENU_CLOSETAB FULLMENUNUM(0,8,0)
|
|
#define AMI_MENU_CUT FULLMENUNUM(1,0,0)
|
|
#define AMI_MENU_COPY FULLMENUNUM(1,1,0)
|
|
#define AMI_MENU_PASTE FULLMENUNUM(1,2,0)
|
|
#define AMI_MENU_SELECTALL FULLMENUNUM(1,4,0)
|
|
#define AMI_MENU_CLEAR FULLMENUNUM(1,5,0)
|
|
#define AMI_MENU_UNDO FULLMENUNUM(1,8,0)
|
|
#define AMI_MENU_REDO FULLMENUNUM(1,9,0)
|
|
#define AMI_MENU_FIND FULLMENUNUM(2,0,0)
|
|
#define AMI_MENU_FOREIMG FULLMENUNUM(2,8,0)
|
|
#define AMI_MENU_BACKIMG FULLMENUNUM(2,8,1)
|
|
#define AMI_MENU_JS FULLMENUNUM(2,9,0)
|
|
|
|
struct gui_window;
|
|
struct gui_window_2;
|
|
|
|
void ami_free_menulabs(struct gui_window_2 *gwin);
|
|
struct Menu *ami_menu_create(struct gui_window_2 *gwin);
|
|
void ami_menu_refresh(struct gui_window_2 *gwin);
|
|
void ami_menu_update_checked(struct gui_window_2 *gwin);
|
|
void ami_menu_update_disabled(struct gui_window *g, struct hlcache_handle *c);
|
|
void ami_menu_free_glyphs(void);
|
|
void ami_menu_free(struct gui_window_2 *gwin);
|
|
|
|
/**
|
|
* Sets that an item linked to a toggle menu item has been changed.
|
|
*/
|
|
void ami_menu_set_check_toggled(void);
|
|
|
|
/**
|
|
* Gets if the menu needs updating because an item linked
|
|
* to a toggle menu item has been changed.
|
|
* NB: This also *clears* the state
|
|
*
|
|
* \return true if the menus need refreshing
|
|
*/
|
|
bool ami_menu_get_check_toggled(void);
|
|
|
|
/**
|
|
* Gets if NetSurf has been quit from the menu
|
|
*
|
|
* \return true if NetSurf has been quit
|
|
*/
|
|
bool ami_menu_quit_selected(void);
|
|
#endif
|
|
|