#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <gtk/gtk.h>
#include "../ut/ut_umb.h"
Functions | |
int | GUI_obj_focus (MemObj *mo) |
int | GUI_Win_exist (char *winTit) |
char * | GUI_Win_tit (void *gtkWin) |
void | GUI_Init_style (void *win1) |
void | GUI_Init__ (char *fRC) |
void | GUI_Win_kill (MemObj *mo) |
MemObj | GUI_Win__ (char *wtit, void *funcnam, int hsiz, int vsiz) |
int | GUI_Win_Id () |
int | GUI_Win_exit (void *parent, MemObj mo) |
int | GUI_main_quit () |
int | GUI_WinTit (void *window, char *wtit) |
int | GUI_Win_ev_key (MemObj *o_par, void *fKey) |
int | GUI_Win_key (void *parent, void *event, void *data) |
int | GUI_Win_ev_button (MemObj *o_par, void *fButton) |
int | GUI_Win_button (void *parent, void *ev, void *data) |
int | GUI_Win_go (MemObj *o_par) |
void | GUI_Tip (char *txt) |
int | GUI_is_win_alive (void *win) |
int | GUI_is_alive (int winId) |
int | GUI_Win_up (MemObj *parentWin, MemObj *o_win, int typ) |
int | GUI_update__ () |
int | GUI_idle__ (void *funcnam, void *data) |
int | GUI_packwn (void *parent, void *wi, int hsiz, int vsiz) |
int | GUI_siz_eval (int *ihs, int *ivs, int hsiz, int vsiz) |
int | GUI_siz_set (void *parent, int hSiz, int vSiz) |
MemObj | GUI_Box_h (MemObj *o_par, char *siz) |
MemObj | GUI_Box_v (MemObj *o_par, char *siz) |
MemObj | GUI_Box__ (MemObj *o_par, int typ, char *siz) |
int | GUI_w_pack_d (int *isx, int *isy, int *iex, int *iey, char *siz) |
int | GUI_w_pack2 (int pTyp, void *pObj, void *cObj, char *siz) |
int | GUI_w_pack1 (int pTyp, void *pObj, void *cObj, char *siz) |
int | GUI_w_pack_w (int pTyp, void *pObj, void *cObj, int *isx, int *isy, int *iex, int *iey) |
int | GUI_w_pack_b (int pTyp, void *pObj, void *cObj, int *isx, int *isy, int *iex, int *iey) |
void | GUI_spc__ (MemObj *o_par, int typ, int spc) |
void | GUI_sep__ (MemObj *o_par, int typ, int border) |
int | GUI_set_enable (MemObj *mo, int mode) |
int | GUI_set_show (MemObj *mo, int mode) |
int | GUI_get_keys_mod () |
int | GUI_cursor__ (MemObj *mo, int iCur) |
int | GUI_ck_version (int vMaj, int vMin) |
int | GUI_cursor_set (void *win, int iCur) |
int | GUI_OBJ_TYP (MemObj *mo) |
int | GUI_OBJ_SRC (MemObj *mo) |
void ** | GUI_SETDAT_E (int ie) |
void ** | GUI_SETDAT_ES (int ie, char *is) |
void ** | GUI_SETDAT_EI (int ie, int ii) |
Variables | |
int | UI_fontsizX |
int | UI_fontsizY |
GtkWidget * | UI_MainWin |
GtkWidget * | UI_act_wi |
static int | UI_act_Id |
GtkStyle * | UI_stylTab [3] |
GdkColor | colB = {0x0000, 0x0000, 0x0000, 0xf000} |
GdkColor | colR = {0x0000, 0xc000, 0x1000, 0x1000} |
GdkRGBA | col1 = {0.3, 0.3, 0.9, 1.0} |
===================================================== List_functions_start: GUI_Init__ must be 1. call .. GUI_Win__ create new window GUI_Win_ev_key add callback for the key-events GUI_Win_ev_button add callback for the mouse-button event GUI_Win_go windowSetup finished; display it .. GUI_Win_up window always on top GUI_WinTit set titletext GUI_Win_kill destroy window GUI_Win_exist returns nr of windows with windowTitle <winTit>; GUI_main_quit close application GUI_box_h horizontal container for widgets INLINE GUI_box_v vertical container for widgets INLINE GUI_box__ container for widgets GUI_sep_h horiz. separationline (Ruler) GUI_sep_v vertical separationline (Ruler) GUI_sep__ horiz.|vertical separationline (Ruler) GUI_spc_h horiz. (free) space GUI_spc_v vertical (free) space GUI_spc__ horiz.|vertical (free) space GUI_Tip Tooltip (infotext for widget) GUI_cursor__ set/change cursor; GUI_hide__ hide object GUI_show__ show object GUI_focus__ set focus to widget GUI_set_show show/hide object GUI_set_enable make (groups of) widgets unselectable disable enable GUI_get_keys_mod get state of modifier-keys; GUI_is_alive test if window win (GtkWidget) is active GUI_update__ update all windows GUI_idle__ register a idle-function GUI_SETDAT_E create a GUI_DATA-block (event) GUI_SETDAT_EI create a GUI_DATA-block (event + integer-data) GUI_SETDAT_ES create a GUI_DATA-block (event + string-data) GUI_OBJ_TYP get gui-typ from MemObj GUI_OBJ_SRC get gui-src from MemObj (the gui-widget-nr) GUI_Win_exit INTERNAL callback from destroy window GUI_Win_key INTERNAL callback key_event GUI_Win_button INTERNAL callback button_press_event GUI_packwn INTERNAL pack widget normal GUI_siz_set INTERNAL set widget-size GUI_siz_eval INTERNAL eval widget-size GUI_cursor_set INTERNAL set/change cursor GUI_ck_version INTERNAL check GTK_MAJOR_VERSION,GTK_MINOR_VERSION List_functions_end: =====================================================
int GUI_obj_focus | ( | MemObj * | mo | ) |
int GUI_Win_exist | ( | char * | winTit | ) |
char* GUI_Win_tit | ( | void * | gtkWin | ) |
void GUI_Init_style | ( | void * | win1 | ) |
INTERNAL
void GUI_Init__ | ( | char * | fRC | ) |
GUI_Init__ must be 1. call .. fRC UNUSED (style-info-file) get local memSpc UI_tmpSpc & a new memBlockId <UI_umbId>
void GUI_Win_kill | ( | MemObj * | mo | ) |
GUI_Win_kill destroy window from its MemObj
MemObj GUI_Win__ | ( | char * | wtit, | |
void * | funcnam, | |||
int | hsiz, | |||
int | vsiz | |||
) |
Input: wtit WindowTitle. or NULL = none funcnam callback from DestroyWindow hsiz,vsiz size of window; 0,0=minimum size, but resizable; >0 size in pixels funcnam prototype: int funcnam (MemObj *mo, void **data); // data=table of 1 pointers; GUI_DATA_EVENT =*(int*)data[0]=TYP_EventExit GUI_DATA_I1 =*(int*)data[1]=UI_FuncExit GUI_OBJ_TYP(mo) = TYP_GUI_Win Examples without callback: MemObj win0, box0; win0 = GUI_Win__ ("testWindow", NULL, 300, 100); box0 = GUI_box__ (&win0, 1, 1, 1); lbl1 = GUI_Label__ (&box0, "Label..", -1, 5); GUI_button__ (&box0, " Exit ", f_cb_exit, "but3", 0, 0); GUI_Win_go (win0); Examples with callback: win0 = GUI_Win__ ("testWindow", w_cb_exit, 0, 0); int w_cb_exit (MemObj *mo, void **data) { printf("w_cb_exit %d\n",GUI_DATA_EVENT); // is TYP_EventExit from exit // or TYP_EventPress from button if(GUI_DATA_EVENT == TYP_EventExit) { if(GUI_DATA_I1 == UI_FuncKill) { .. do cleanup .. int win0Id; win0Id = GUI_Win_Id (); if(GUI_is_alive(win0Id)) printf(" testWindow is alive\n");
int GUI_Win_Id | ( | ) |
get id for active window; must be called after GUI_Win__() and before GUI_Win_go(). Use id with GUI_is_alive()
int GUI_Win_exit | ( | void * | parent, | |
MemObj | mo | |||
) |
INTERNAL callback from destroy window.
int GUI_main_quit | ( | ) |
GUI_main_quit close application
int GUI_WinTit | ( | void * | window, | |
char * | wtit | |||
) |
GUI_WinTit set titletext
int GUI_Win_ev_key | ( | MemObj * | o_par, | |
void * | fKey | |||
) |
add callback for the key-events Input: o_par parentWindow fKey callback-function key-events prototyp fKey: int fKey (void *parent, void **data); // data=table of pointers to 4 ints; // data[0]=(int*)=type of event; TYP_EventPress|TYP_EventRelease // data[1]=(int*)=device; TYP_DeviceKeyb // data[2]=(int*)=keyvalue; eg 'a' // data[3]=(int*)=state of modifierkeys; &1=shift; &4=ctrl; &8=alt. printf(" key=%d\n",*(int*)data[2]); Example see GUI_Entry__
int GUI_Win_key | ( | void * | parent, | |
void * | event, | |||
void * | data | |||
) |
INTERNAL key_press_event: GdkEventKey GDK_KEY_PRESS or GDK_KEY_RELEASE
int GUI_Win_ev_button | ( | MemObj * | o_par, | |
void * | fButton | |||
) |
add callback for the mouse-button event Input: o_par parentWindow fButton callback-function mouse-button event prototype: int fButton (void *parent, void **data); // data=table of pointers to 3 ints; // data[0]=(int*)=type of event; TYP_EventPress|TYP_EventRelease // data[1]=(int*)=device; TYP_DeviceMouse // data[2]=(int*)=button; GUI_MouseL|GUI_MouseM|GUI_MouseR - left,mid,right GUI_MouseScUp|GUI_MouseScDown - scroll up/down printf(" button=%d\n",*(int*)data[2]);
int GUI_Win_button | ( | void * | parent, | |
void * | ev, | |||
void * | data | |||
) |
INTERNAL button_press_event: GdkEventButton GDK_BUTTON_PRESS GDK_BUTTON_RELEASE GDK_SCROLL
int GUI_Win_go | ( | MemObj * | o_par | ) |
GUI_Win_go windowSetup finished; display it .. If this window is the first window, this function does not return.
void GUI_Tip | ( | char * | txt | ) |
add infotext (tooltip) to last created widget. \n starts new line.
int GUI_is_win_alive | ( | void * | win | ) |
int GUI_is_alive | ( | int | winId | ) |
test if window mo is active get winId with GUI_Win_Id() on init 0=no, 1=yes
int GUI_Win_up | ( | MemObj * | parentWin, | |
MemObj * | o_win, | |||
int | typ | |||
) |
window always on top ..
Input:
parentWin NULL for top-level-parentwindow
o_win window to be kept on top of parentWin
typ 0=normal, 1=modal (block all other windows)
DOES NOT WORK FOR THE PARENT-WINDOW: USE WM_raise_wTit
int GUI_update__ | ( | ) |
update all windows
int GUI_idle__ | ( | void * | funcnam, | |
void * | data | |||
) |
GUI_Idle register a idle-function Example: GUI_idle__ (AP_Idle_CB, NULL); int AP_Idle_CB (void *data) { .. work .. return 0; // removes idle-Call! return 1; // keep idle-Call; call AP_Idle_CB again. }
int GUI_packwn | ( | void * | parent, | |
void * | wi, | |||
int | hsiz, | |||
int | vsiz | |||
) |
INTERNAL GUI_packwn pack widget normal Input: parent parentBox hsiz 0,0 minimum size (size of caption) 0,1 maximum size (expand inside container) >1 prepare size for <siz> nr of characters <0 absolute size (in pixels)
int GUI_siz_eval | ( | int * | ihs, | |
int * | ivs, | |||
int | hsiz, | |||
int | vsiz | |||
) |
INTERNAL RetCod: 0 = 0,0 minimum size (size of caption) 1 = 0,1 maximum size (expand inside container) 2 = ... absolute size
int GUI_siz_set | ( | void * | parent, | |
int | hSiz, | |||
int | vSiz | |||
) |
INTERNAL set size of widget size in pixels x,y. Input: parent parentBox .Siz 0 = do not modify
MemObj GUI_Box_h | ( | MemObj * | o_par, | |
char * | siz | |||
) |
MemObj GUI_Box_v | ( | MemObj * | o_par, | |
char * | siz | |||
) |
MemObj GUI_Box__ | ( | MemObj * | o_par, | |
int | typ, | |||
char * | siz | |||
) |
GUI_box__ container for widgets
Input:
o_par must be a window or a box
typ 0=horizontal, 1=vertical
int GUI_w_pack_d | ( | int * | isx, | |
int * | isy, | |||
int * | iex, | |||
int * | iey, | |||
char * | siz | |||
) |
Input: siz automaticSize; expand; ae automaticSize; do not expand; a defined size, expandable 5e defined size, do not expand. 5 Output: isx hor.size; 0=automatic; else size in pixels iex hor.expand; 0=expand=yes, 1=do not expand isy vert.size; 0=automatic; else size in pixels iey vert.expand; 0=expand=yes, 1=do not expand
int GUI_w_pack2 | ( | int | pTyp, | |
void * | pObj, | |||
void * | cObj, | |||
char * | siz | |||
) |
int GUI_w_pack1 | ( | int | pTyp, | |
void * | pObj, | |||
void * | cObj, | |||
char * | siz | |||
) |
int GUI_w_pack_w | ( | int | pTyp, | |
void * | pObj, | |||
void * | cObj, | |||
int * | isx, | |||
int * | isy, | |||
int * | iex, | |||
int * | iey | |||
) |
pack widget=box into window|frame|toolbar gtk_box_pack_start does not work with parent = window|frame|toolbar ONLY Gtk2
int GUI_w_pack_b | ( | int | pTyp, | |
void * | pObj, | |||
void * | cObj, | |||
int * | isx, | |||
int * | isy, | |||
int * | iex, | |||
int * | iey | |||
) |
pack widget into box (not if parent is a window|frame|toolbar) ONLY Gtk2
void GUI_spc__ | ( | MemObj * | o_par, | |
int | typ, | |||
int | spc | |||
) |
GUI_spc_h make a horizontal|vertical (free) space Input: o_par parentBox typ 0=horizontal, 1=vertical spc size in pixels
void GUI_sep__ | ( | MemObj * | o_par, | |
int | typ, | |||
int | border | |||
) |
create Vertical. separationline Input: o_par parentBox typ 0=horizontal, 1=vertical border distance left / right of the separationline.
int GUI_set_enable | ( | MemObj * | mo, | |
int | mode | |||
) |
GUI_set_enable makes widgets / groups of widgets unselectable (disactivate) mode 1=TRUE=active; 0=FALSE=unpickable, inactive; 2=query state RetCode for mode=2: state; 0=inactive, 1=active
int GUI_set_show | ( | MemObj * | mo, | |
int | mode | |||
) |
GUI_set_show show/hide object mode 0=hide obj, 1=show obj, 2=query state RetCode for mode=2: state; 0=hidden, 1=visible
int GUI_get_keys_mod | ( | ) |
GUI_get_keys_mod get state of modifier-keys (Mousebuttons, Shift, Ctrl, Alt); int i1 = GUI_get_keys_mod (); if(i1 & 1) printf(" shift is on\n"); if(i1 & 4) printf(" ctrl is on\n"); if(i1 & 8) printf(" alt is on\n"); if(i1 & 256) printf(" mouseButt. 1 is on\n"); if(i1 & 512) printf(" mouseButt. 2 is on\n"); if(i1 & 1024) printf(" mouseButt. 3 is on\n");
int GUI_cursor__ | ( | MemObj * | mo, | |
int | iCur | |||
) |
GUI_cursor__ change cursor; mo window-obj; NULL = mainWindow iCur 0=normal, 1=wait, 2=rotate, 3=hand, 4=size 5=blocked
int GUI_ck_version | ( | int | vMaj, | |
int | vMin | |||
) |
INTERNAL check GTK_MAJOR_VERSION,GTK_MINOR_VERSION
int GUI_cursor_set | ( | void * | win, | |
int | iCur | |||
) |
INTERNAL
int GUI_OBJ_TYP | ( | MemObj * | mo | ) |
returns type of gui-obj
int GUI_OBJ_SRC | ( | MemObj * | mo | ) |
returns gui-widget-nr
void** GUI_SETDAT_E | ( | int | ie | ) |
GUI_SETDAT_E create a GUI_DATA-block Input: ifunc int GUI_DATA_EVENT Usage: cbFunc (NULL, GUI_SETDAT_E(TYP_EventExit)); // call cbFunc (mo, **data) // with data[0] = GUI_DATA_EVENT = (int)TYP_EventExit
void** GUI_SETDAT_ES | ( | int | ie, | |
char * | is | |||
) |
GUI_SETDAT_ES create a GUI_DATA-block Input: ie int event; eg TYP_EventPress is stringpointer Usage: cbFunc (NULL, GUI_SETDAT_ES (TYP_EventPress,"Func1")); // call cbFunc (mo, **data) // with data[0] = GUI_DATA_EVENT = (int)TYP_EventPress // with data[1] = GUI_DATA_S1 = (char*)data[1] = "Func1"
void** GUI_SETDAT_EI | ( | int | ie, | |
int | ii | |||
) |
GUI_SETDAT_EI create a GUI_DATA-block Input: ie int event; eg TYP_EventPress ii int data Usage: cbFunc (NULL, GUI_SETDAT_EI (TYP_EventPress,UI_FuncInit)); // call cbFunc (mo, **data) // with data[0] = GUI_DATA_EVENT = (int)TYP_EventPress // with data[1] = GUI_DATA_I1 = (int)UI_FuncInit
int UI_fontsizX |
int UI_fontsizY |
GtkWidget* UI_MainWin |
GtkWidget* UI_act_wi |
int UI_act_Id [static] |
GtkStyle* UI_stylTab[3] |
GdkColor colB = {0x0000, 0x0000, 0x0000, 0xf000} |
GdkColor colR = {0x0000, 0xc000, 0x1000, 0x1000} |
GdkRGBA col1 = {0.3, 0.3, 0.9, 1.0} |