projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20131216-1-src
[rocksndiamonds.git]
/
src
/
libgame
/
gadgets.h
diff --git
a/src/libgame/gadgets.h
b/src/libgame/gadgets.h
index 160bd611a375311d5372208270f92499be2f21a3..7b8ce7f52853527b3bdc338511bce666bea9c77f 100644
(file)
--- a/
src/libgame/gadgets.h
+++ b/
src/libgame/gadgets.h
@@
-1,7
+1,7
@@
/***********************************************************
* Artsoft Retro-Game Library *
*----------------------------------------------------------*
/***********************************************************
* Artsoft Retro-Game Library *
*----------------------------------------------------------*
-* (c) 1994-200
2
Artsoft Entertainment *
+* (c) 1994-200
6
Artsoft Entertainment *
* Holger Schemel *
* Detmolder Strasse 189 *
* 33604 Bielefeld *
* Holger Schemel *
* Detmolder Strasse 189 *
* 33604 Bielefeld *
@@
-17,7
+17,8
@@
#include "system.h"
#include "system.h"
-#define GADGET_FRAME_DELAY 150 /* delay between gadget actions */
+#define GADGET_FRAME_DELAY_FIRST 250 /* delay after first click */
+#define GADGET_FRAME_DELAY 100 /* delay for pressed butten */
/* gadget types */
#define GD_TYPE_NORMAL_BUTTON (1 << 0)
/* gadget types */
#define GD_TYPE_NORMAL_BUTTON (1 << 0)
@@
-101,9
+102,13
@@
#define GDI_SCROLLBAR_ITEMS_MAX 37
#define GDI_SCROLLBAR_ITEMS_VISIBLE 38
#define GDI_SCROLLBAR_ITEM_POSITION 39
#define GDI_SCROLLBAR_ITEMS_MAX 37
#define GDI_SCROLLBAR_ITEMS_VISIBLE 38
#define GDI_SCROLLBAR_ITEM_POSITION 39
-#define GDI_INFO_TEXT 40
-#define GDI_ACTIVE 41
-#define GDI_DIRECT_DRAW 42
+#define GDI_WHEEL_AREA_X 40
+#define GDI_WHEEL_AREA_Y 41
+#define GDI_WHEEL_AREA_WIDTH 42
+#define GDI_WHEEL_AREA_HEIGHT 43
+#define GDI_INFO_TEXT 44
+#define GDI_ACTIVE 45
+#define GDI_DIRECT_DRAW 46
typedef void (*gadget_function)(void *);
typedef void (*gadget_function)(void *);
@@
-130,7
+135,7
@@
struct GadgetDecoration
struct GadgetEvent
{
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? */
int button; /* button number for button events */
int x, y; /* gadget position at event time */
boolean off_borders; /* mouse pointer outside gadget? */
@@
-145,13
+150,14
@@
struct GadgetDrawingArea
struct GadgetTextButton
{
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
{
int size; /* maximal size of button text */
};
struct GadgetTextInput
{
- char value[MAX_GADGET_TEXTSIZE]; /* 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 */
int cursor_position; /* actual text cursor position */
int number_value; /* integer value, if numeric */
int number_min; /* minimal allowed numeric value */
@@
-161,7
+167,8
@@
struct GadgetTextInput
struct GadgetTextArea
{
struct GadgetTextArea
{
- char value[MAX_GADGET_TEXTSIZE]; /* 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 */
int cursor_position; /* actual text cursor position */
int cursor_x; /* actual x cursor position */
int cursor_y; /* actual y cursor position */
@@
-193,7
+200,9
@@
struct GadgetScrollbar
int items_max; /* number of items to access */
int items_visible; /* number of visible items */
int item_position; /* actual item position */
int items_max; /* number of items to access */
int items_visible; /* number of visible items */
int item_position; /* actual item position */
+ int size_min; /* minimal scrollbar size */
int size_max; /* this is either width or height */
int size_max; /* this is either width or height */
+ int size_max_cmp; /* needed for minimal scrollbar size */
int size; /* scrollbar size on screen */
int position; /* scrollbar position on screen */
int position_max; /* bottom/right scrollbar position */
int size; /* scrollbar size on screen */
int position; /* scrollbar position on screen */
int position_max; /* bottom/right scrollbar position */
@@
-201,16
+210,22
@@
struct GadgetScrollbar
int correction; /* scrollbar position correction */
};
int correction; /* scrollbar position correction */
};
+struct GadgetWheelArea
+{
+ int x, y; /* active area for wheel (start) */
+ int width, height; /* active area for wheel (size) */
+};
+
struct GadgetInfo
{
int id; /* internal gadget identifier */
int custom_id; /* custom gadget identifier */
int custom_type_id; /* custom gadget type identifier */
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 */
int x, y; /* gadget position */
int width, height; /* gadget size */
- unsigned
long type;
/* type (button, text input, ...) */
- unsigned
long state;
/* state (pressed, released, ...) */
+ unsigned
int type;
/* type (button, text input, ...) */
+ unsigned
int state;
/* state (pressed, released, ...) */
boolean checked; /* check/radio button state */
int radio_nr; /* number of radio button series */
boolean mapped; /* gadget is mapped on the screen */
boolean checked; /* check/radio button state */
int radio_nr; /* number of radio button series */
boolean mapped; /* gadget is mapped on the screen */
@@
-222,7
+237,7
@@
struct GadgetInfo
struct GadgetDesign design[2]; /* 0: normal; 1: pressed */
struct GadgetDesign alt_design[2]; /* alternative design */
struct GadgetDecoration deco; /* decoration on top of gadget */
struct GadgetDesign design[2]; /* 0: normal; 1: pressed */
struct GadgetDesign alt_design[2]; /* alternative design */
struct GadgetDecoration deco; /* decoration on top of gadget */
- unsigned
long event_mask;
/* possible events for this gadget */
+ unsigned
int event_mask;
/* possible events for this gadget */
struct GadgetEvent event; /* actual gadget event */
gadget_function callback_info; /* function for pop-up info text */
gadget_function callback_action; /* function for gadget action */
struct GadgetEvent event; /* actual gadget event */
gadget_function callback_info; /* function for pop-up info text */
gadget_function callback_action; /* function for gadget action */
@@
-232,9
+247,14
@@
struct GadgetInfo
struct GadgetTextArea textarea; /* fields for text area gadget */
struct GadgetSelectbox selectbox; /* fields for selectbox gadget */
struct GadgetScrollbar scrollbar; /* fields for scrollbar gadget */
struct GadgetTextArea textarea; /* fields for text area gadget */
struct GadgetSelectbox selectbox; /* fields for selectbox gadget */
struct GadgetScrollbar scrollbar; /* fields for scrollbar gadget */
+ struct GadgetWheelArea wheelarea; /* fields for scroll wheel area */
struct GadgetInfo *next; /* next list entry */
};
struct GadgetInfo *next; /* next list entry */
};
+
+void InitGadgetsSoundCallback(void (*activating_function)(void),
+ void (*selecting_function)(void));
+
struct GadgetInfo *CreateGadget(int, ...);
void FreeGadget(struct GadgetInfo *);
struct GadgetInfo *CreateGadget(int, ...);
void FreeGadget(struct GadgetInfo *);
@@
-246,10
+266,15
@@
void UnmapGadget(struct GadgetInfo *);
void UnmapAllGadgets();
void RemapAllGadgets();
void UnmapAllGadgets();
void RemapAllGadgets();
+boolean anyTextInputGadgetActive();
+boolean anyTextAreaGadgetActive();
+boolean anySelectboxGadgetActive();
+boolean anyScrollbarGadgetActive();
boolean anyTextGadgetActive();
boolean anyTextGadgetActive();
+
void ClickOnGadget(struct GadgetInfo *, int);
void ClickOnGadget(struct GadgetInfo *, int);
-
void
HandleGadgets(int, int, int);
-
void
HandleGadgetsKeyInput(Key);
+
boolean
HandleGadgets(int, int, int);
+
boolean
HandleGadgetsKeyInput(Key);
#endif /* GADGETS_H */
#endif /* GADGETS_H */