home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
d
/
desklib
/
!DeskLib
/
h
/
Wimp
< prev
next >
Wrap
Text File
|
1996-10-16
|
18KB
|
780 lines
#ifndef __Desk_Wimp_h
#define __Desk_Wimp_h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __Desk_Core_h
#include "Desk.Core.h"
#endif
#define Desk_wimp_MAXNAME 12
typedef struct
{
int x, y;
} Desk_wimp_point;
typedef Desk_wimp_point Desk_wimp_coord;
typedef struct
{
Desk_wimp_point min;
Desk_wimp_point max;
} Desk_wimp_rect;
typedef Desk_wimp_rect Desk_wimp_box;
typedef int Desk_window_handle;
typedef int Desk_icon_handle;
typedef int Desk_task_handle;
#define Desk_colour_WHITE 0
#define Desk_colour_GREY0 0
#define Desk_colour_GREY1 1
#define Desk_colour_GREY2 2
#define Desk_colour_GREY3 3
#define Desk_colour_GREY4 4
#define Desk_colour_GREY5 5
#define Desk_colour_GREY6 6
#define Desk_colour_GREY7 7
#define Desk_colour_BLACK 7
#define Desk_colour_DARK_BLUE 8
#define Desk_colour_YELLOW 9
#define Desk_colour_GREEN 10
#define Desk_colour_RED 11
#define Desk_colour_CREAM 12
#define Desk_colour_ARMY_GREEN 13
#define Desk_colour_ORANGE 14
#define Desk_colour_LIGHT_BLUE 15
#define Desk_colour_TRANSPARENT 255
typedef union
{
int value;
struct
{
unsigned int wimpcolour : 4;
unsigned int gcolaction : 3;
unsigned int foreback : 1;
unsigned int padding : 24;
} data;
} Desk_wimp_colour;
typedef union
{
int value;
struct
{
char gcol;
char red;
char green;
char blue;
} data;
} Desk_palette_entry;
typedef struct
{
Desk_palette_entry colour[16];
Desk_palette_entry border;
Desk_palette_entry mouse1;
Desk_palette_entry mouse2;
Desk_palette_entry mouse3;
} Desk_palette_block;
#define Desk_iconbtype_NEVER 0
#define Desk_iconbtype_ALWAYS 1
#define Desk_iconbtype_AUTOREPEAT 2
#define Desk_iconbtype_CLICK 3
#define Desk_iconbtype_RELEASE 4
#define Desk_iconbtype_DOUBLECLICK 5
#define Desk_iconbtype_CLICKDRAG 6
#define Desk_iconbtype_RELEASEDRAG 7
#define Desk_iconbtype_DOUBLEDRAG 8
#define Desk_iconbtype_MENU 9
#define Desk_iconbtype_DOUBLECLICKDRAG 10
#define Desk_iconbtype_RADIO 11
#define Desk_iconbtype_RESERVED1 12
#define Desk_iconbtype_RESERVED2 13
#define Desk_iconbtype_WRITECLICKDRAG 14
#define Desk_iconbtype_WRITABLE 15
#define Desk_iconbar_RIGHT -1
#define Desk_iconbar_LEFT -2
#define Desk_window_ICONBAR -2
#define Desk_icon_TEXT 0x00000001
#define Desk_icon_SPRITE 0x00000002
#define Desk_icon_BORDER 0x00000004
#define Desk_icon_HCENTRE 0x00000008
#define Desk_icon_VCENTRE 0x00000010
#define Desk_icon_FILLED 0x00000020
#define Desk_icon_FONT 0x00000040
#define Desk_icon_NEEDSHELP 0x00000080
#define Desk_icon_INDIRECTED 0x00000100
#define Desk_icon_RJUSTIFY 0x00000200
#define Desk_icon_ALLOWADJUST 0x00000400
#define Desk_icon_HALVESPRITE 0x00000800
#define Desk_icon_BUTTONTYPE 0x00001000
#define Desk_icon_SELECTED 0x00200000
#define Desk_icon_SHADED 0x00400000
#define Desk_icon_DELETED 0x00800000
#define Desk_icon_FORECOLOUR 0x01000000
#define Desk_icon_BACKCOLOUR 0x10000000
#define Desk_iconvalid_ALLOW 'A'
#define Desk_iconvalid_BORDERTYPE 'R'
#define Desk_iconvalid_DISPLAY 'D'
#define Desk_iconvalid_FONTCOLOURS 'F'
#define Desk_iconvalid_LINESPACE 'L'
#define Desk_iconvalid_SPRITENAME 'S'
#define Desk_iconborder_PLINTH 0
#define Desk_iconborder_SURROUND 1
#define Desk_iconborder_OKBUTTON 2
#define Desk_iconborder_INDENT 3
typedef union
{
unsigned int value;
struct
{
unsigned int garbage1 : 6;
unsigned int font : 1;
unsigned int garbage2 : 17;
unsigned int handle : 8;
} font;
struct
{
unsigned int text : 1;
unsigned int sprite : 1;
unsigned int border : 1;
unsigned int hcentre : 1;
unsigned int vcentre : 1;
unsigned int filled : 1;
unsigned int font : 1;
unsigned int needshelp : 1;
unsigned int indirected : 1;
unsigned int rightjustify : 1;
unsigned int allowadjust : 1;
unsigned int halfsize : 1;
unsigned int buttontype : 4;
unsigned int esg : 5;
unsigned int selected : 1;
unsigned int shaded : 1;
unsigned int deleted : 1;
unsigned int foreground : 4;
unsigned int background : 4;
} data;
} Desk_icon_flags;
typedef struct
{
char *buffer;
char *validstring;
unsigned int bufflen;
} Desk_icon_indtext;
typedef struct
{
const char *name;
void *spritearea;
unsigned int nameisname;
} Desk_icon_indsprite;
typedef union
{
char text[Desk_wimp_MAXNAME];
Desk_icon_indtext indirecttext;
char spritename[Desk_wimp_MAXNAME];
Desk_icon_indsprite indirectsprite;
} Desk_icon_data;
typedef struct
{
Desk_wimp_box workarearect;
Desk_icon_flags flags;
Desk_icon_data data;
} Desk_icon_block;
typedef struct
{
Desk_window_handle window;
Desk_icon_block icondata;
} Desk_icon_createblock;
typedef union
{
struct
{
unsigned int hastitle : 1;
unsigned int moveable : 1;
unsigned int hasvscroll : 1;
unsigned int hashscroll : 1;
unsigned int autoredraw : 1;
unsigned int pane : 1;
unsigned int nobounds : 1;
unsigned int nobackclose : 1;
unsigned int scrollrq : 1;
unsigned int scrollrqdebounced : 1;
unsigned int realcolours : 1;
unsigned int backwindow : 1;
unsigned int hotkeys : 1;
unsigned int keeponscreen : 1;
unsigned int ignoreright : 1;
unsigned int ignorebottom : 1;
unsigned int open : 1;
unsigned int top : 1;
unsigned int fullsize : 1;
unsigned int istoggling : 1;
unsigned int focus : 1;
unsigned int forceonce : 1;
unsigned int dummy22 : 1;
unsigned int dummy23 : 1;
unsigned int backicon : 1;
unsigned int closeicon : 1;
unsigned int titlebar : 1;
unsigned int toggleicon : 1;
unsigned int vscroll : 1;
unsigned int adjusticon : 1;
unsigned int hscroll : 1;
unsigned int newflags : 1;
} data;
int value;
} Desk_window_flags;
typedef struct
{
int x : 16;
int y : 16;
} Desk_window_minsize;
typedef enum
{
Desk_windowcol_TITLEFORE = 0,
Desk_windowcol_TITLEBACK,
Desk_windowcol_WORKFORE,
Desk_windowcol_WORKBACK,
Desk_windowcol_SCROLLBACK,
Desk_windowcol_SCROLLFORE,
Desk_windowcol_TITLEHILITE
} Desk_window_colourindices;
typedef struct
{
Desk_wimp_box screenrect;
Desk_wimp_point scroll;
Desk_window_handle behind;
Desk_window_flags flags;
char colours[8];
Desk_wimp_box workarearect;
Desk_icon_flags titleflags;
Desk_icon_flags workflags;
void *spritearea;
Desk_window_minsize minsize;
Desk_icon_data title;
unsigned int numicons;
} Desk_window_block;
typedef struct
{
Desk_window_handle window;
Desk_wimp_box screenrect;
Desk_wimp_point scroll;
Desk_window_handle behind;
} Desk_window_openblock;
typedef struct
{
Desk_window_openblock openblock;
Desk_window_flags flags;
} Desk_window_state;
typedef struct
{
Desk_window_handle window;
Desk_window_block block;
} Desk_window_info;
typedef struct
{
Desk_window_handle window;
Desk_wimp_box rect;
Desk_wimp_point scroll;
Desk_wimp_box cliprect;
} Desk_window_redrawblock;
typedef struct
{
Desk_window_handle window;
Desk_wimp_box screenrect;
} Desk_window_outline;
#define Desk_button_ADJUST 0x00000001
#define Desk_button_MENU 0x00000002
#define Desk_button_SELECT 0x00000004
#define Desk_button_DRAGADJUST 0x00000010
#define Desk_button_DRAGSELECT 0x00000040
#define Desk_button_CLICKADJUST 0x00000100
#define Desk_button_CLICKSELECT 0x00000400
#define Desk_button2_CLICKADJUST 0x00000001
#define Desk_button2_CLICKSELECT 0x00000004
#define Desk_button2_DRAGADJUST 0x00000010
#define Desk_button2_DRAGSELECT 0x00000040
#define Desk_button2_ADJUST 0x00000100
#define Desk_button2_MENU 0x00000200
#define Desk_button2_SELECT 0x00000400
typedef union
{
unsigned int value;
struct
{
unsigned int adjust : 1;
unsigned int menu : 1;
unsigned int select : 1;
unsigned int dummy3 : 1;
unsigned int dragadjust : 1;
unsigned int dummy5 : 1;
unsigned int dragselect : 1;
unsigned int dummy7 : 1;
unsigned int clickadjust : 1;
unsigned int dummy9 : 1;
unsigned int clickselect : 1;
} data;
struct
{
unsigned int clickadjust : 1;
unsigned int dummy1 : 1;
unsigned int clickselect : 1;
unsigned int dummy3 : 1;
unsigned int dragadjust : 1;
unsigned int dummy5 : 1;
unsigned int dragselect : 1;
unsigned int dummy7 : 1;
unsigned int adjust : 1;
unsigned int menu : 1;
unsigned int select : 1;
}
data2;
} Desk_button_state;
typedef struct
{
Desk_wimp_point pos;
Desk_button_state button;
Desk_window_handle window;
Desk_icon_handle icon;
} Desk_mouse_block;
typedef struct
{
int shapenumber;
char *shapedata;
unsigned int width;
unsigned int height;
Desk_wimp_point active;
} Desk_pointer_shapeblock;
typedef enum
{
Desk_drag_MOVEWINDOW = 1,
Desk_drag_RESIZEW