NetSurf
|
#include "amiga/os3support.h"
#include <string.h>
#include <stdlib.h>
#include <proto/gadtools.h>
#include <proto/graphics.h>
#include <proto/intuition.h>
#include <libraries/gadtools.h>
#include <classes/window.h>
#include <proto/label.h>
#include <images/label.h>
#include <proto/bitmap.h>
#include <images/bitmap.h>
#include <reaction/reaction_macros.h>
#include "utils/log.h"
#include "utils/messages.h"
#include "amiga/gui.h"
#include "amiga/libs.h"
#include "amiga/menu.h"
#include "amiga/utf8.h"
Go to the source code of this file.
Macros | |
#define | NSA_MAX_HOTLIST_MENU_LEN 100 |
Enumerations | |
enum | { NSA_GLYPH_SUBMENU , NSA_GLYPH_AMIGAKEY , NSA_GLYPH_CHECKMARK , NSA_GLYPH_MX , NSA_GLYPH_MAX } |
Functions | |
bool | ami_menu_get_selected (struct Menu *menu, struct IntuiMessage *msg) |
Get the selected state of a menu item. More... | |
void | ami_menu_free_lab_item (struct ami_menu_data **md, int i) |
static void | ami_menu_free_labs (struct ami_menu_data **md, int max) |
void | ami_menu_alloc_item (struct ami_menu_data **md, int num, UBYTE type, const char *restrict label, const char *restrict key, const char *restrict icon, void *restrict func, void *restrict hookdata, UWORD flags) |
static void | ami_menu_load_glyphs (struct DrawInfo *dri) |
void | ami_menu_free_glyphs (void) |
static int | ami_menu_calc_item_width (struct ami_menu_data **md, int j, struct RastPort *rp) |
static struct Menu * | ami_menu_layout_gt (struct ami_menu_data **md, int max) |
struct Menu * | ami_menu_layout (struct ami_menu_data **md, int max) |
void | ami_menu_free_menu (struct ami_menu_data **md, int max, struct Menu *imenu) |
void | ami_menu_refresh (struct Menu *menu, struct ami_menu_data **md, int menu_item, int max, nserror(*cb)(struct ami_menu_data **md)) |
Variables | |
static Object *restrict | menu_glyph [NSA_GLYPH_MAX] |
static int | menu_glyph_width [NSA_GLYPH_MAX] |
static bool | menu_glyphs_loaded = false |
anonymous enum |
void ami_menu_alloc_item | ( | struct ami_menu_data ** | md, |
int | num, | ||
UBYTE | type, | ||
const char *restrict | label, | ||
const char *restrict | key, | ||
const char *restrict | icon, | ||
void *restrict | func, | ||
void *restrict | hookdata, | ||
UWORD | flags | ||
) |
Definition at line 115 of file menu.c.
References ami_locate_resource(), AMI_MENU_AREXX, AMI_MENU_AREXX_MAX, ami_utf8_easy(), ami_menu_data::flags, LIB_IS_AT_LEAST, ami_menu_data::menu_hook, ami_menu_data::menuicon, ami_menu_data::menukey, ami_menu_data::menulab, ami_menu_data::menutype, messages_get(), NSA_SPACE, and type.
Referenced by ami_cookies_menulabs(), ami_history_global_menulabs(), ami_hotlist_menulabs(), ami_init_menulabs(), ami_menu_arexx_scan(), ami_menu_hotlist_add(), and ami_menu_scan().
|
static |
TODO: take account of the size of other imagery too
Definition at line 199 of file menu.c.
References menu_glyph_width, and NSA_GLYPH_AMIGAKEY.
Referenced by ami_menu_layout_gt().
void ami_menu_free_glyphs | ( | void | ) |
Definition at line 182 of file menu.c.
References LIB_IS_AT_LEAST, menu_glyph, menu_glyphs_loaded, and NSA_GLYPH_MAX.
Referenced by gui_quit().
void ami_menu_free_lab_item | ( | struct ami_menu_data ** | md, |
int | i | ||
) |
Definition at line 83 of file menu.c.
References ami_utf8_free(), ami_menu_data::menukey, ami_menu_data::menulab, ami_menu_data::menuobj, ami_menu_data::menutype, and ML_SEPARATOR.
Referenced by ami_menu_free_labs(), and ami_menu_refresh().
|
static |
Definition at line 106 of file menu.c.
References ami_menu_free_lab_item(), and max.
Referenced by ami_menu_free_menu().
void ami_menu_free_menu | ( | struct ami_menu_data ** | md, |
int | max, | ||
struct Menu * | imenu | ||
) |
Definition at line 430 of file menu.c.
References ami_menu_free_labs(), LIB_IS_AT_LEAST, and max.
Referenced by ami_cookies_menu_free(), ami_history_global_menu_free(), and ami_hotlist_menu_free().
bool ami_menu_get_selected | ( | struct Menu * | menu, |
struct IntuiMessage * | msg | ||
) |
Get the selected state of a menu item.
Definition at line 63 of file menu.c.
References IDoMethod, and LIB_IS_AT_LEAST.
Referenced by HOOKF().
struct Menu * ami_menu_layout | ( | struct ami_menu_data ** | md, |
int | max | ||
) |
Definition at line 419 of file menu.c.
References ami_menu_layout_gt(), LIB_IS_AT_LEAST, and max.
Referenced by ami_cookies_menu_create(), ami_gui_menu_create(), ami_history_global_menu_create(), and ami_hotlist_menu_create().
|
static |
Definition at line 293 of file menu.c.
References ami_gui_get_screen(), ami_menu_calc_item_width(), ami_menu_load_glyphs(), BitMapObj, ami_menu_data::flags, LabelObj, LIB_IS_AT_LEAST, max, menu_glyph_width, menu_glyphs_loaded, ami_menu_data::menu_hook, ami_menu_data::menuicon, ami_menu_data::menukey, ami_menu_data::menulab, ami_menu_data::menuobj, ami_menu_data::menutype, NewObject(), NSA_GLYPH_SUBMENU, and scrn.
Referenced by ami_menu_layout().
|
static |
Definition at line 157 of file menu.c.
References LIB_IS_AT_LEAST, menu_glyph, menu_glyph_width, menu_glyphs_loaded, NewObject(), NSA_GLYPH_AMIGAKEY, NSA_GLYPH_MAX, and NSA_GLYPH_SUBMENU.
Referenced by ami_menu_layout_gt().
void ami_menu_refresh | ( | struct Menu * | menu, |
struct ami_menu_data ** | md, | ||
int | menu_item, | ||
int | max, | ||
nserror(*)(struct ami_menu_data **md) | cb | ||
) |
Definition at line 440 of file menu.c.
References ami_menu_free_lab_item(), IDoMethod, LIB_IS_AT_LEAST, and max.
Referenced by ami_gui_menu_refresh_hotlist().
|
static |
Definition at line 59 of file menu.c.
Referenced by ami_menu_free_glyphs(), and ami_menu_load_glyphs().
|
static |
Definition at line 60 of file menu.c.
Referenced by ami_menu_calc_item_width(), ami_menu_layout_gt(), and ami_menu_load_glyphs().
|
static |
Definition at line 61 of file menu.c.
Referenced by ami_menu_free_glyphs(), ami_menu_layout_gt(), and ami_menu_load_glyphs().