1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-03 10:07:02 +00:00
cc65/include/geos/gdlgbox.h

111 lines
3.4 KiB
C

/*
GEOS dialog box functions
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GDLGBOX_H
#define _GDLGBOX_H
char __fastcall__ DoDlgBox(const char *dboxstring);
char RstrFrmDialogue(void);
/* These are custom, predefined dialog boxes, I'm sure you'll find them usable
Most of them show 2 lines of text */
char __fastcall__ DlgBoxYesNo(const char *line1, const char *line2);
char __fastcall__ DlgBoxOkCancel(const char *line1, const char *line2);
void __fastcall__ DlgBoxOk(const char *line1, const char *line2);
char __fastcall__ DlgBoxGetString(char *myString, char strLength,
const char *line1, const char *line2);
char __fastcall__ DlgBoxFileSelect(const char *classtxt, char ftype,
char *fname);
/* This is a more general dialog box, works like printf in a window */
char MessageBox(char mode, const char *format, ...);
/* mode argument for MessageBox() */
enum {
MB_EMPTY=0,
MB_OK,
MB_OKCANCEL,
MB_YESNO,
MB_LAST };
/* Now the command string type */
typedef void dlgBoxStr;
/* and command string commands - macros */
#define DB_DEFPOS(pattern) (char)(DEF_DB_POS | (pattern))
#define DB_SETPOS(pattern,top,bot,left,right) \
(char)(SET_DB_POS | (pattern)), (char)(top), (char)(bot), \
(unsigned)(left), (unsigned)(right)
#define DB_ICON(i,x,y) (char)(i), (char)(x), (char)(y)
#define DB_TXTSTR(x,y,text) (char)DBTXTSTR, (char)(x), (char)(y), (text)
#define DB_VARSTR(x,y,ptr) (char)DBVARSTR, (char)(x), (char)(y), (char)(ptr)
#define DB_GETSTR(x,y,ptr,length) (char)DBGETSTRING, (char)(x), (char)(y), (char)(ptr), (char)(length)
#define DB_SYSOPV(ptr) (char)DBSYSOPV, (unsigned)(ptr)
#define DB_GRPHSTR(ptr) (char)DBGRPHSTR, (unsigned)(ptr)
#define DB_GETFILES(x,y) (char)DBGETFILES, (char)(x), (char)(y)
#define DB_OPVEC(ptr) (char)DBOPVEC, (unsigned)(ptr)
#define DB_USRICON(x,y,ptr) (char)DBUSRICON, (char)(x), (char)(y), (unsigned)(ptr)
#define DB_USRROUT(ptr) (char)DB_USR_ROUT, (unsigned)(ptr)
#define DB_END (char)NULL
/*
part of constants below is used internally, but some are useful for macros above
*/
/* icons for DB_ICON */
#define OK 1
#define CANCEL 2
#define YES 3
#define NO 4
#define OPEN 5
#define DISK 6
/* commands - internally used by command macros */
#define DBTXTSTR 11
#define DBVARSTR 12
#define DBGETSTRING 13
#define DBSYSOPV 14
#define DBGRPHSTR 15
#define DBGETFILES 16
#define DBOPVEC 17
#define DBUSRICON 18
#define DB_USR_ROUT 19
/* icons tabulation in standard window */
#define DBI_X_0 1
#define DBI_X_1 9
#define DBI_X_2 17
#define DBI_Y_0 8
#define DBI_Y_1 40
#define DBI_Y_2 72
/* standard window size defaults */
#define SET_DB_POS 0
#define DEF_DB_POS 0x80
#define DEF_DB_TOP 32
#define DEF_DB_BOT 127
#define DEF_DB_LEFT 64
#define DEF_DB_RIGHT 255
/* text tabulation in standard window */
#define TXT_LN_1_Y 16
#define TXT_LN_2_Y 32
#define TXT_LN_3_Y 48
#define TXT_LN_4_Y 64
#define TXT_LN_5_Y 80
#define TXT_LN_X 16
/* system icons size */
#define SYSDBI_HEIGHT 16
#define SYSDBI_WIDTH 6
/* dialogbox string offsets */
#define OFF_DB_FORM 0
#define OFF_DB_TOP 1
#define OFF_DB_BOT 2
#define OFF_DB_LEFT 3
#define OFF_DB_RIGHT 5
#define OFF_DB_1STCMD 7
#endif