projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20061230-1-src
[rocksndiamonds.git]
/
src
/
libgame
/
gadgets.h
diff --git
a/src/libgame/gadgets.h
b/src/libgame/gadgets.h
index 5c71680466463186c3c910691ad22b1200e5be9e..43125d66b3ab34b7d06c10a57d252678e5253bfa 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 *);
@@
-145,14
+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 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 */
int cursor_position; /* actual text cursor position */
int number_value; /* integer value, if numeric */
int number_min; /* minimal allowed numeric value */
@@
-162,8
+167,8
@@
struct GadgetTextInput
struct GadgetTextArea
{
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 */
int cursor_position; /* actual text cursor position */
int cursor_x; /* actual x cursor position */
int cursor_y; /* actual y cursor position */
@@
-195,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 */
@@
-203,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 */
@@
-224,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 */
@@
-234,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 *);
@@
-248,6
+266,10
@@
void UnmapGadget(struct GadgetInfo *);
void UnmapAllGadgets();
void RemapAllGadgets();
void UnmapAllGadgets();
void RemapAllGadgets();
+boolean anyTextInputGadgetActive();
+boolean anyTextAreaGadgetActive();
+boolean anySelectboxGadgetActive();
+boolean anyScrollbarGadgetActive();
boolean anyTextGadgetActive();
void ClickOnGadget(struct GadgetInfo *, int);
boolean anyTextGadgetActive();
void ClickOnGadget(struct GadgetInfo *, int);