From 64bc2a7931606f2165ab513f1d8f129c1f0735b0 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Wed, 26 Sep 2018 23:53:49 +0100 Subject: Stop using the same large list of gadget constants everywhere Saves a small amount of memory --- frontends/amiga/search.c | 69 ++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 28 deletions(-) (limited to 'frontends/amiga/search.c') diff --git a/frontends/amiga/search.c b/frontends/amiga/search.c index 99ee5b41e..3392cca76 100755 --- a/frontends/amiga/search.c +++ b/frontends/amiga/search.c @@ -61,6 +61,7 @@ #include "amiga/search.h" #include "amiga/object.h" #include "amiga/theme.h" +#include "amiga/utf8.h" #ifndef NOF_ELEMENTS #define NOF_ELEMENTS(array) (sizeof(array)/sizeof(*(array))) @@ -68,10 +69,22 @@ static bool search_insert; +enum +{ + OID_S_MAIN = 0, + GID_S_MAIN, + GID_S_NEXT, + GID_S_PREV, + GID_S_SEARCHSTRING, + GID_S_SHOWALL, + GID_S_CASE, + GID_S_LAST +}; + struct find_window { struct ami_generic_window w; struct Window *win; - Object *objects[GID_LAST]; + Object *objects[GID_S_LAST]; struct gui_window *gwin; }; @@ -131,7 +144,7 @@ void ami_search_open(struct gui_window *gwin) fwin = calloc(1, sizeof(struct find_window)); - fwin->objects[OID_MAIN] = WindowObj, + fwin->objects[OID_S_MAIN] = WindowObj, WA_ScreenTitle, ami_gui_get_screen_title(), WA_Title,messages_get("FindTextNS"), WA_Activate, TRUE, @@ -145,22 +158,22 @@ void ami_search_open(struct gui_window *gwin) WINDOW_IconifyGadget, FALSE, WINDOW_LockHeight,TRUE, WINDOW_Position, WPOS_CENTERSCREEN, - WINDOW_ParentGroup, fwin->objects[GID_MAIN] = LayoutVObj, - LAYOUT_AddChild, fwin->objects[GID_SEARCHSTRING] = StringObj, - GA_ID,GID_SEARCHSTRING, + WINDOW_ParentGroup, fwin->objects[GID_S_MAIN] = LayoutVObj, + LAYOUT_AddChild, fwin->objects[GID_S_SEARCHSTRING] = StringObj, + GA_ID,GID_S_SEARCHSTRING, GA_TabCycle,TRUE, GA_RelVerify,TRUE, StringEnd, CHILD_WeightedHeight,0, - LAYOUT_AddChild, fwin->objects[GID_CASE] = CheckBoxObj, - GA_ID,GID_CASE, + LAYOUT_AddChild, fwin->objects[GID_S_CASE] = CheckBoxObj, + GA_ID,GID_S_CASE, GA_Text,messages_get("CaseSens"), GA_Selected,FALSE, GA_TabCycle,TRUE, GA_RelVerify,TRUE, CheckBoxEnd, - LAYOUT_AddChild, fwin->objects[GID_SHOWALL] = CheckBoxObj, - GA_ID,GID_SHOWALL, + LAYOUT_AddChild, fwin->objects[GID_S_SHOWALL] = CheckBoxObj, + GA_ID,GID_S_SHOWALL, GA_Text,messages_get("ShowAll"), GA_Selected,FALSE, GA_TabCycle,TRUE, @@ -168,16 +181,16 @@ void ami_search_open(struct gui_window *gwin) CheckBoxEnd, LAYOUT_AddChild, LayoutHObj, - LAYOUT_AddChild, fwin->objects[GID_PREV] = ButtonObj, - GA_ID,GID_PREV, + LAYOUT_AddChild, fwin->objects[GID_S_PREV] = ButtonObj, + GA_ID,GID_S_PREV, GA_RelVerify,TRUE, GA_Text,messages_get("Prev"), GA_TabCycle,TRUE, GA_Disabled,TRUE, ButtonEnd, CHILD_WeightedHeight,0, - LAYOUT_AddChild, fwin->objects[GID_NEXT] = ButtonObj, - GA_ID,GID_NEXT, + LAYOUT_AddChild, fwin->objects[GID_S_NEXT] = ButtonObj, + GA_ID,GID_S_NEXT, GA_RelVerify,TRUE, GA_Text,messages_get("Next"), GA_TabCycle,TRUE, @@ -188,20 +201,20 @@ void ami_search_open(struct gui_window *gwin) EndGroup, EndWindow; - fwin->win = (struct Window *)RA_OpenWindow(fwin->objects[OID_MAIN]); + fwin->win = (struct Window *)RA_OpenWindow(fwin->objects[OID_S_MAIN]); fwin->gwin = gwin; ami_gui_win_list_add(fwin, AMINS_FINDWINDOW, &ami_search_table); gwin->shared->searchwin = fwin; - ActivateLayoutGadget((struct Gadget *)fwin->objects[GID_MAIN], fwin->win, - NULL, (ULONG)fwin->objects[GID_SEARCHSTRING]); + ActivateLayoutGadget((struct Gadget *)fwin->objects[GID_S_MAIN], fwin->win, + NULL, (ULONG)fwin->objects[GID_S_SEARCHSTRING]); } void ami_search_close(void) { browser_window_search_clear(fwin->gwin->bw); fwin->gwin->shared->searchwin = NULL; - DisposeObject(fwin->objects[OID_MAIN]); + DisposeObject(fwin->objects[OID_S_MAIN]); ami_gui_win_list_remove(fwin); fwin = NULL; } @@ -213,29 +226,29 @@ static BOOL ami_search_event(void *w) uint16 code; search_flags_t flags; - while((result = RA_HandleInput(fwin->objects[OID_MAIN],&code)) != WMHI_LASTMSG) + while((result = RA_HandleInput(fwin->objects[OID_S_MAIN],&code)) != WMHI_LASTMSG) { switch(result & WMHI_CLASSMASK) // class { case WMHI_GADGETUP: switch(result & WMHI_GADGETMASK) { - case GID_SEARCHSTRING: + case GID_S_SEARCHSTRING: browser_window_search_clear(fwin->gwin->bw); - RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_PREV], + RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_S_PREV], fwin->win, NULL, GA_Disabled, FALSE, TAG_DONE); - RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_NEXT], + RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_S_NEXT], fwin->win, NULL, GA_Disabled, FALSE, TAG_DONE); /* fall through */ - case GID_NEXT: + case GID_S_NEXT: search_insert = true; flags = SEARCH_FLAG_FORWARDS | ami_search_flags(); @@ -246,7 +259,7 @@ static BOOL ami_search_event(void *w) ActivateWindow(fwin->gwin->shared->win); break; - case GID_PREV: + case GID_S_PREV: search_insert = true; flags = ~SEARCH_FLAG_FORWARDS & ami_search_flags(); @@ -299,7 +312,7 @@ void ami_search_set_hourglass(bool active, void *p) char *ami_search_string(void) { char *text; - GetAttr(STRINGA_TextVal,fwin->objects[GID_SEARCHSTRING],(ULONG *)&text); + GetAttr(STRINGA_TextVal,fwin->objects[GID_S_SEARCHSTRING],(ULONG *)&text); return text; } @@ -325,7 +338,7 @@ void ami_search_add_recent(const char *string, void *p) void ami_search_set_forward_state(bool active, void *p) { - RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_NEXT], + RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_S_NEXT], fwin->win, NULL, GA_Disabled, active ? FALSE : TRUE, TAG_DONE); @@ -339,7 +352,7 @@ void ami_search_set_forward_state(bool active, void *p) void ami_search_set_back_state(bool active, void *p) { - RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_PREV], + RefreshSetGadgetAttrs((struct Gadget *)fwin->objects[GID_S_PREV], fwin->win, NULL, GA_Disabled, active ? FALSE : TRUE, TAG_DONE); } @@ -352,8 +365,8 @@ search_flags_t ami_search_flags(void) { ULONG case_sensitive, showall; search_flags_t flags; - GetAttr(GA_Selected,fwin->objects[GID_CASE],(ULONG *)&case_sensitive); - GetAttr(GA_Selected,fwin->objects[GID_SHOWALL],(ULONG *)&showall); + GetAttr(GA_Selected,fwin->objects[GID_S_CASE],(ULONG *)&case_sensitive); + GetAttr(GA_Selected,fwin->objects[GID_S_SHOWALL],(ULONG *)&showall); flags = 0 | (case_sensitive ? SEARCH_FLAG_CASE_SENSITIVE : 0) | (showall ? SEARCH_FLAG_SHOWALL : 0); return flags; -- cgit v1.2.3