gtk_base.c File Reference

#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}

Detailed Description

=====================================================
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:
=====================================================

Function Documentation

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


Variable Documentation

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}
Generated on Fri Aug 17 09:22:02 2012 for C-KIT-GUI-GTK 0.10 by  doxygen 1.6.3