home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn User 4
/
AUCD4.iso
/
acornuser
/
1997
/
dec1997
/
regulars
/
C
/
!Skeleton
/
h
/
AUlib
Wrap
Text File
|
1997-10-06
|
5KB
|
158 lines
/* AULib.h - a header file for the Acorn User WIMP C library */
/* Modified 6/10/97 by SJPM */
#ifndef AULIB_H
#define AULIB_H
/* #Include the appropriate files - swis.h and kernel.h hold the information
* we need to call SWI functions from within C */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "swis.h"
#include "kernel.h"
/* A few #defines to set up some constants */
#define IBAR_ONRIGHT -1
#define IBAR_ONLEFT -2
#define IBAR_PRIOR_APP 0
/* #Defines for icon flags */
#define ICON_ISTEXT 1u << 0
#define ICON_ISSPRITE 1u << 1
#define ICON_HASBORDER 1u << 2
#define ICON_HCENTRE 1u << 3
#define ICON_VCENTRE 1u << 4
#define ICON_ISFILLED 1u << 5
#define ICON_CLICKNOTIFIESONCE 3u << 12
/* These are for a StyleGuide-compliant square iconbar icon - without text */
#define IBAR_BBOX_MINX 0
#define IBAR_BBOX_MINY 0
#define IBAR_BBOX_MAXX 68
#define IBAR_BBOX_MAXY 68
/* These are for a StyleGuide-compliant square iconbar icon - with text */
#define IBART_BBOX_MINX 0
#define IBART_BBOX_MINY 20
#define IBART_BBOX_MAXX 68
#define IBART_BBOX_MAXY 84
/* #Defines for menu creation */
#define MENU_TITLEFORE 7u
#define MENU_TITLEBACK 2u << 8
#define MENU_WORKFORE 7u << 16
#define MENU_WORKBACK 0u << 24 /* these define colours */
#define MENU_TICK 1u << 0
#define MENU_DOTTED 1u << 1
#define MENU_LASTITEM 1u << 7
#define MENU_SHADED 1u << 22
#define MENUITEM_FORE 7u << 24
#define MENUITEM_BACK 0u << 28
#define MENU_WIDTH 172 /* could be more intelligent, but it's a start */
#define MENU_HEIGHT 44 /* by order of the Style Guide */
#define MENU_VERTGAP 0
/* Message types */
#define MESSAGE_QUIT 0
#define MESSAGE_DATASAVE 1
#define MESSAGE_DATASAVEACK 2
#define MESSAGE_DATALOAD 3
#define MESSAGE_DATALOADACK 4
#define MESSAGE_PALETTECHANGE 9
#define MESSAGE_MODECHANGE 0x400c1
/* Sizes for block definitions */
#define ICON_BLOCK_SIZE 40
/* Other miscellaneous definitions */
#define SAVEDRAG_TYPE 5
/* Colour definitions (RGB values) */
#define COLOUR_WHITE 0xffffff00
#define COLOUR_BLACK 0x00000000
#define COLOUR_RED 0x0000ff00
#define COLOUR_GREEN 0x00ff0000
#define COLOUR_BLUE 0xff000000
#define COLOUR_PURPLE 0xff00ff00
#define COLOUR_CYAN 0xffff0000
#define COLOUR_YELLOW 0x00ffff00
/* Structure definitions */
typedef struct window_data {
int win_handle;
unsigned char *buffer;
unsigned char *workspace;
char *win_name;
} window_data;
typedef struct pointer_data {
long int mouse_x;
long int mouse_y;
long int button_state;
long int win_handle;
long int icon_handle;
} pointer_data;
typedef struct menu_element {
long int flags;
long int submenu;
long int menu_iconflags;
char menu_text[12];
struct menu_element *next_menuelem;
} menu_element;
typedef struct menu_data {
char title[12];
int size;
long int colours;
long int width;
long int height;
long int vert_gap;
unsigned char* datablock;
menu_element *next_menuelem;
} menu_data;
/* Prototyping */
extern int au_initialise(int, char *, long int[]);
extern void au_closedown(int);
extern int au_create_iconbar_icon(int, unsigned long int, unsigned long int, char *);
extern void au_wordtobyte(unsigned long int, unsigned char[], int);
extern unsigned long int au_bytetoword(unsigned char[], int);
extern void au_opentemplate(char *);
extern void au_closetemplate(void);
extern int au_loadtemplate(char *, window_data *, int);
extern int au_report_error(int, char *, int, char *);
extern void au_openwin_from_templatedata(window_data *, long int);
extern int au_wimp_poll(int, unsigned char *);
extern void au_icon_text_change(char *, unsigned long int, unsigned long int);
extern char *au_get_ptr_to_icontext(unsigned long int, unsigned long int);
extern void au_buildmenu(char *, menu_data *);
extern void au_addtomenu(char *, long int, long int, long int, menu_data *);
extern void au_createmenu(menu_data *);
extern void au_openmenu(menu_data *, int, int);
extern void au_icon_get_text(char *, unsigned long int, unsigned long int);
extern void au_losecaret(void);
extern void au_dragbox(unsigned long int, unsigned long int);
extern void au_geticoninfo(unsigned long int, unsigned long int, unsigned char *);
extern void au_getpointerinfo(pointer_data *);
extern void au_datasave(pointer_data, int, int, char*);
extern int au_findfont(char*, int, int);
extern void au_selectfont(int);
extern void au_setfontcolours(int, int);
extern void au_fontpaint(char*, int, int);
extern void au_losefont(int);
extern void au_convertwindow_to_screen(unsigned char*, int*, int*);
#endif