From 1030dc837b10a03a02a85d5504cbeec168ce49e2 Mon Sep 17 00:00:00 2001 From: Bernie Innocenti Date: Mon, 03 May 2010 21:53:47 +0000 Subject: Import XaoS r489 (trunk after version 3.5) --- (limited to 'src/include/ui.h') diff --git a/src/include/ui.h b/src/include/ui.h new file mode 100644 index 0000000..8bdf783 --- /dev/null +++ b/src/include/ui.h @@ -0,0 +1,160 @@ +/* + * XaoS, a fast portable realtime fractal zoomer + * Copyright (C) 1996,1997 by + * + * Jan Hubicka (hubicka@paru.cas.cz) + * Thomas Marsh (tmarsh@austin.ibm.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef UI_H +#define UI_H +/* +#include "xio.h" +#include "zoom.h" +*/ +#include "config.h" +#include "param.h" +#include "xmenu.h" +#ifdef __cplusplus +extern "C" { +#endif + + +#undef BUTTON1 +#undef BUTTON2 +#undef BUTTON3 +#define BUTTON1 256 +#define BUTTON2 512 +#define BUTTON3 1024 +#define UI_C256 1 +#define UI_GRAYSCALE 2 +#define UI_TRUECOLOR16 4 +#define UI_TRUECOLOR24 8 +#define UI_TRUECOLOR 16 +#define UI_PROTECTIMAGES 32 +#define UI_LBITMAP 256 +#define UI_MBITMAP 512 +#define UI_LIBITMAP 1024 +#define UI_MIBITMAP 2048 +#define UI_FIXEDCOLOR 4096 + + +#define NORMALMOUSE 0 +#define WAITMOUSE 1 +#define REPLAYMOUSE 2 +#define VJMOUSE 3 + +#define UIKEY_UP 257 +#define UIKEY_DOWN 258 +#define UIKEY_LEFT 259 +#define UIKEY_RIGHT 260 +#define UIKEY_ESC 261 +#define UIKEY_BACKSPACE 8 +#define UIKEY_TAB '\t' +#define UIKEY_HOME 262 +#define UIKEY_END 263 +#define UIKEY_PGUP 264 +#define UIKEY_PGDOWN 265 + + typedef unsigned char ui_rgb[4]; + typedef ui_rgb *ui_palette; + struct uih_context; + struct gui_driver { + void (*setrootmenu) (struct uih_context * c, CONST char *name); + void (*enabledisable) (struct uih_context * c, CONST char *name); + void (*menu) (struct uih_context * c, CONST char *name); + void (*dialog) (struct uih_context * c, CONST char *name); + void (*help) (struct uih_context * c, CONST char *name); + }; + struct ui_driver { + CONST char *name; + int (*init) (void); /*initializing function. recturns 0 if fail */ + void (*getsize) (int *, int *); /*get current size..in fullscreen versions + i.e svga and dos asks user for it */ + void (*processevents) (int, int *, int *, int *, int *); + /*processevents..calls ui_resize,ui_key + laso returns possitions of mouse.. + waits for event if first parameter is + 1 */ + void (*getmouse) (int *, int *, int *); + /*returns current mouse possitions */ + void (*uninit) (void); + /*called before exit */ + int (*set_color) (int, int, int, int); + void (*set_range) (ui_palette palette, int, int); + /*sets palette color and returns number */ + void (*print) (int, int, CONST char *); /*prints text */ + void (*display) (void); /*displays bitmap */ + int (*alloc_buffers) (char **buffer1, char **buffer2); /*makes buffers */ + void (*free_buffers) (char *buffer1, char *buffer2); /*frees buffers */ + void (*flip_buffers) (void); /*prints text */ + void (*mousetype) (int type); + void (*flush) (void); + int textwidth; + int textheight; /*width of text */ + /*int helpsize; */ + CONST struct params *params; + int flags; + float width, height; + int maxwidth, maxheight; + int imagetype; + int palettestart, paletteend, maxentries; + int rmask, gmask, bmask; + CONST struct gui_driver *gui_driver; + }; + + extern struct uih_context *globaluih; + +#ifdef USE_LOCALEPATH + extern char *localepath; +#endif + + number_t ui_getfloat(CONST char *text); + void ui_resize(void); + void ui_call_resize(void); + void ui_quit(void) NORETURN; + void ui_menu(CONST char *text); + void ui_menuactivate(CONST menuitem * item, dialogparam * d); + int ui_key(int); + void ui_loadstr(CONST char *data); + xio_path ui_getfile(CONST char *basename, CONST char *extension); + void ui_help(CONST char *name); + char *ui_getpos(void); + int MAIN_FUNCTION(int argc, char **argv); + + + +#ifndef RANDOM_PALETTE_SIZE +#define RANDOM_PALETTE_SIZE 1 /*FIXME currently ignored */ +#define FULLSCREEN 2 +#define UPDATE_AFTER_PALETTE 4 +#define UPDATE_AFTER_RESIZE 8 +#define PALETTE_ROTATION 16 +#define ASYNC_PALETTE 32 +#define ROTATE_INSIDE_CALCULATION 64 +#define PALETTE_REDISPLAYS 128 +#define SCREENSIZE 256 +#define PIXELSIZE 512 +#define RESOLUTION 1024 +#endif +#define NOFLUSHDISPLAY 2048 +#define AALIB (4096*2) +#define RESIZE_COMMAND (4096*4) + +#ifdef __cplusplus +} +#endif +#endif /* UI_H */ -- cgit v0.9.1