X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fgadgets.c;h=4cf008fc01eaaec6044f85d3de57e00bfd4cad36;hp=c793ce13c599ecc2adb7050d98fcf9f7165d9796;hb=115ce6f2da1914d68b0fe0e5f9082973190dacdd;hpb=d0a7080670f9a2fa96138cf1c06708016a42d615 diff --git a/src/libgame/gadgets.c b/src/libgame/gadgets.c index c793ce13..4cf008fc 100644 --- a/src/libgame/gadgets.c +++ b/src/libgame/gadgets.c @@ -60,7 +60,7 @@ static struct GadgetInfo *getGadgetInfoFromGadgetID(int id) return gi; } -static int getNewGadgetID() +static int getNewGadgetID(void) { int id = next_free_gadget_id++; @@ -1432,37 +1432,37 @@ static void MultiMapGadgets(int mode) } } -void UnmapAllGadgets() +void UnmapAllGadgets(void) { MultiMapGadgets(MULTIMAP_ALL | MULTIMAP_UNMAP); } -void RemapAllGadgets() +void RemapAllGadgets(void) { MultiMapGadgets(MULTIMAP_ALL | MULTIMAP_REMAP); } -boolean anyTextInputGadgetActive() +boolean anyTextInputGadgetActive(void) { return (last_gi && (last_gi->type & GD_TYPE_TEXT_INPUT) && last_gi->mapped); } -boolean anyTextAreaGadgetActive() +boolean anyTextAreaGadgetActive(void) { return (last_gi && (last_gi->type & GD_TYPE_TEXT_AREA) && last_gi->mapped); } -boolean anySelectboxGadgetActive() +boolean anySelectboxGadgetActive(void) { return (last_gi && (last_gi->type & GD_TYPE_SELECTBOX) && last_gi->mapped); } -boolean anyScrollbarGadgetActive() +boolean anyScrollbarGadgetActive(void) { return (last_gi && (last_gi->type & GD_TYPE_SCROLLBAR) && last_gi->mapped); } -boolean anyTextGadgetActive() +boolean anyTextGadgetActive(void) { return (anyTextInputGadgetActive() || anyTextAreaGadgetActive() || @@ -2274,15 +2274,42 @@ boolean HandleGadgetsKeyInput(Key key) return TRUE; } -void DumpGadgetIdentifiers() +void DumpGadgetIdentifiers(void) { struct GadgetInfo *gi; - printf("Gadgets on current screen (any prefix 'gfx.' can be omitted):\n"); + Print("Gadgets on current screen:\n"); for (gi = gadget_list_first_entry; gi != NULL; gi = gi->next) + { if (gi->mapped && gi->image_id != -1) - printf("- '%s'\n", getTokenFromImageID(gi->image_id)); + { + char *token = getTokenFromImageID(gi->image_id); + char *prefix = "gfx."; + + if (strPrefix(token, prefix)) + token = &token[strlen(prefix)]; + + Print("- '%s'\n", token); + } + } + + Print("Done.\n"); +} + +boolean DoGadgetAction(int image_id) +{ + struct GadgetInfo *gi; + + for (gi = gadget_list_first_entry; gi != NULL; gi = gi->next) + { + if (gi->mapped && gi->image_id == image_id) + { + gi->callback_action(gi); + + return TRUE; + } + } - printf("Done.\n"); + return FALSE; }