X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fgadgets.h;h=47de5776bf05761aea91167e1e5acfcac5b70000;hp=7f352a87b5d49b61d4fe8817aaeb8dd864dea6f3;hb=abe44529b439ad39b4d8dbf19cbd67c9b9844279;hpb=e05dda5c8cc6687dcbc59e182a81aed627e262d0 diff --git a/src/libgame/gadgets.h b/src/libgame/gadgets.h index 7f352a87..47de5776 100644 --- a/src/libgame/gadgets.h +++ b/src/libgame/gadgets.h @@ -1,15 +1,13 @@ -/*********************************************************** -* Artsoft Retro-Game Library * -*----------------------------------------------------------* -* (c) 1994-2006 Artsoft Entertainment * -* Holger Schemel * -* Detmolder Strasse 189 * -* 33604 Bielefeld * -* Germany * -* e-mail: info@artsoft.org * -*----------------------------------------------------------* -* gadgets.h * -***********************************************************/ +// ============================================================================ +// Artsoft Retro-Game Library +// ---------------------------------------------------------------------------- +// (c) 1995-2014 by Artsoft Entertainment +// Holger Schemel +// info@artsoft.org +// http://www.artsoft.org/ +// ---------------------------------------------------------------------------- +// gadgets.h +// ============================================================================ #ifndef GADGETS_H #define GADGETS_H @@ -110,6 +108,10 @@ #define GDI_ACTIVE 45 #define GDI_DIRECT_DRAW 46 +/* gadget deactivation hack */ +#define GDI_ACTIVE_POS(a) ((a) < 0 ? POS_OFFSCREEN : (a)) + + typedef void (*gadget_function)(void *); struct GadgetBorder @@ -135,7 +137,7 @@ struct GadgetDecoration struct GadgetEvent { - unsigned long type; /* event type */ + unsigned int type; /* event type */ int button; /* button number for button events */ int x, y; /* gadget position at event time */ boolean off_borders; /* mouse pointer outside gadget? */ @@ -150,14 +152,14 @@ struct GadgetDrawingArea struct GadgetTextButton { - char value[MAX_GADGET_TEXTSIZE]; /* text written on the button */ + char value[MAX_GADGET_TEXTSIZE + 1]; /* text written on the button */ int size; /* maximal size of button text */ }; struct GadgetTextInput { - char value[MAX_GADGET_TEXTSIZE]; /* text string in input field */ - char last_value[MAX_GADGET_TEXTSIZE]; /* last text string in input field */ + char value[MAX_GADGET_TEXTSIZE + 1]; /* text string in input field */ + char last_value[MAX_GADGET_TEXTSIZE + 1];/* last text string in input field */ int cursor_position; /* actual text cursor position */ int number_value; /* integer value, if numeric */ int number_min; /* minimal allowed numeric value */ @@ -167,8 +169,8 @@ struct GadgetTextInput struct GadgetTextArea { - char value[MAX_GADGET_TEXTSIZE]; /* text string in input field */ - char last_value[MAX_GADGET_TEXTSIZE]; /* last text string in input field */ + char value[MAX_GADGET_TEXTSIZE + 1]; /* text string in input field */ + char last_value[MAX_GADGET_TEXTSIZE + 1];/* last text string in input field */ int cursor_position; /* actual text cursor position */ int cursor_x; /* actual x cursor position */ int cursor_y; /* actual y cursor position */ @@ -221,7 +223,7 @@ struct GadgetInfo int id; /* internal gadget identifier */ int custom_id; /* custom gadget identifier */ int custom_type_id; /* custom gadget type identifier */ - char info_text[MAX_INFO_TEXTSIZE]; /* short popup info text */ + char info_text[MAX_INFO_TEXTSIZE + 1];/* short popup info text */ int x, y; /* gadget position */ int width, height; /* gadget size */ unsigned int type; /* type (button, text input, ...) */ @@ -251,6 +253,10 @@ struct GadgetInfo struct GadgetInfo *next; /* next list entry */ }; + +void InitGadgetsSoundCallback(void (*activating_function)(void), + void (*selecting_function)(void)); + struct GadgetInfo *CreateGadget(int, ...); void FreeGadget(struct GadgetInfo *);