gtk_lists.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include "../ut/ut_cast.h"
#include "../ut/ut_umem.h"
#include "../ut/ut_os.h"
#include "../gui/gui_types.h"
#include "../gui/gui_base.h"
#include "../gui_gtk/gtk_base.h"
#include "../gui_gtk/gtk_lists.h"

Data Structures

struct  CSV_struct

Functions

int GUI_list2_modCol (MemObj *mo, int iCol, char *txt)
int GUI_list1_dlg_w (char *sels, int sSiz, void *parWin, char *winTit, char *fNam, char *mode, char *titLst[], int hsiz, int vsiz)
int GUI_list1_dlg_exit (void *parent, void *data)
void GUI_list1_dlg_del ()
int GUI_list1_dlg__ (MemObj *o_par, char *winTit, char *fNam, char *mode, char *titLst[], void *funcnam, int hsiz, int vsiz)
MemObj GUI_list1__ (MemObj *o_par, char *fNam, char *mode, char *titLst[], void *funcnam, int hsiz, int vsiz)
MemObj GUI_list2__ (MemObj *o_par, char *fNam, char *mode, char *titLst[], void *funcnam, char *siz)
int GUI_list1_add_f (MemObj *mo, char *fNam, char *mode)
int GUI_list2_add_f (MemObj *mo, char *fNam, char *mode)
int GUI_list1_add_l (MemObj *mo, char *c1, char *c2, char *c3)
int GUI_list1_clear (MemObj *mo)
int GUI_list1_f (void *list_store, char *fnam, char *mode)
int GUI_list2_f (void *list_store, char *fnam, char *mode)
int GUI_list1_cbKey (void *parent, void *event, MemObj mo)
int GUI_list1_cbMouse (void *parent, void *ev, MemObj mo)
int GUI_list1_cbSel (void *selection, MemObj mo)
int GUI_list1_dlg_cbw (Obj_gui2 *go, void **data)
int GUI_list1_h2_cb1 (void *selection, void *data)
int GUI_list1_h2_cb3 (void *parent, void *data)
int GUI_list1_h2__ (char *titP, char *titC, char *lButP, char *txtP, char *fnamP, void *funcP, void *funcC, int hsiz, int vsiz)

Variables

static GtkWidget * UI_list1_win = NULL
static void * UI_List_p1
static void * UI_List_p2
static void * UI_List_p3
static void * UI_List_p4
static void * UI_List_p5
static GtkListStore * UI_ListStore
static int GUI_list1_msbt
static int GUI_list1_evt
static int GUI_list1_stat
static char GUI_list1_s1 [256]
static char GUI_list1_s2 [256]
static char GUI_list1_s3 [256]
static char GUI_list1_s4 [256]
int UI_fontsizX
int UI_fontsizY
GtkWidget * UI_act_wi
GtkWidget * UI_MainWin

Detailed Description


Function Documentation

int GUI_list2_modCol ( MemObj *  mo,
int  iCol,
char *  txt 
)

    modify column # <iCol> of active (selected) Line
    Input:
      iCol        ColNr; 0=first !
      txt         ColText

int GUI_list1_dlg_w ( char *  sels,
int  sSiz,
void *  parWin,
char *  winTit,
char *  fNam,
char *  mode,
char *  titLst[],
int  hsiz,
int  vsiz 
)

    GUI_list1_dlg_w                 list from file in a new window, waiting.
   
    Inputs:
      sSiz        size of sels in characters
      parWin,     parent-window; NULL for primary window
      winTit      window-title
      fNam        filename of list to display; mode=nr of words per line
      mode        "1"  selection returns 1 word;
                  "2" selection returns 2 words;
      titLst      1 or 2 headertitles; NULL = none
      hsiz,vsiz   size of window; >0=size in characters, <0=size in pixels
    Output:
      sels        selected string, 1 or 2 words, separated by \n
      RetCod:   0  OK, data valid
               -1  cancelled by user
   
    TODO:
    add option filter to GUI_List

int GUI_list1_dlg_exit ( void *  parent,
void *  data 
)

    INTERNAL
    list-window exiting; report to user ..

void GUI_list1_dlg_del (  ) 

GUI_list1_dlg_del delete list-window GUI_list1_dlg

int GUI_list1_dlg__ ( MemObj *  o_par,
char *  winTit,
char *  fNam,
char *  mode,
char *  titLst[],
void *  funcnam,
int  hsiz,
int  vsiz 
)

    GUI_list1_dlg__             list from file in a new window, modal, callback.
   
    Inputs:
      o_par       parent-window; NULL for primary window
      winTit      window-title
      fNam        filename of list to display; mode=nr of words per line
      mode        "1"  selection returns 1 word;
                  "2" selection returns 2 words;
      titLst      1 or 2 headertitles; NULL = none
      funcnam     callback-function of selection 
      hsiz,vsiz   size of window; >0=size in characters, <0=size in pixels
   
    funcnam prototype: 
      int funcnam (MemObj *mo, void **data);
       // data=table of 5 pointers;
                   0=TYP_EventPress|TYP_EventExit        GUI_DATA_EVENT
                   1=mousButtonNr(1|2|3)                 GUI_DATA_I1
                   2=colNr(1|2)                          GUI_DATA_I2
                   3=sel.Text col.1;                     GUI_DATA_S3
                   4=sel.Text col.2 (only if colNr=2)    GUI_DATA_S4
      GUI_OBJ_TYP(mo)  = TYP_GUI_List
   
     TYP_EventExit is returned from cancel list; no further data.
   
    Example see GUI_list1__

MemObj GUI_list1__ ( MemObj *  o_par,
char *  fNam,
char *  mode,
char *  titLst[],
void *  funcnam,
int  hsiz,
int  vsiz 
)

    list from file; 1 or 2 columns; callback.
    Values may not have blanks.
    File with 2 columns: value1 - a single blank - value2
    Input:
      o_par       parentBox
      fNam        filename of list to display; mode=nr of words per line
      mode        "1"  selection returns 1 word;
                  "2" selection returns 2 words;
      titLst      1 or 2 headertitles; NULL = none
      funcnam     callback - returns the selected line (as list of words)
      hsiz,vsiz   size of window; >0=size in characters, <0=size in pixels
   
    funcnam prototype:
    int funcnam (void *parent, void **data);
       // data=table of 5 pointers;
                   0=TYP_EventPress|TYP_EventEnter       GUI_DATA_EVENT
                   1=mouseButtonNr or keyCode            GUI_DATA_I1
                   2=colNr(1|2)                          GUI_DATA_I2
                   3=sel.Text col.1                      GUI_DATA_S3
                   4=sel.Text col.2 (only if colNr=2)    GUI_DATA_S4
      GUI_OBJ_TYP(mo)  = TYP_GUI_List
   
    Cursorkeys (up,down), page-keys (up,down) provide a usercall of type
      TYP_EventEnter; GUI_DATA_I1 gives the keyCode (eg GUI_KeyCurUp)
    MousButtonClicks provide a usercall of type TYP_EventPress;
      GUI_DATA_I1 gives the mouseButtonNr (GUI_MouseL|GUI_MouseM|GUI_MouseR)
    DoubleClick provides 3 userCalls of type TYP_EventPress; first and second
      with GUI_MouseL, the third call with GUI_Mouse2L.
    The Enter-key provides a usercall of type TYP_EventPress;
       GUI_DATA_I1 = GUI_Mouse2L
   
    Example:
    GUI_list1__ (Box, "list2.dat", "2", NULL, cb_list_sel, 0, 10);
      printf(" mouseButtNr=%d selColNr=%d\n",GUI_DATA_I1,GUI_DATA_I2);
      printf(" txt sel |%s|%s|\n",GUI_DATA_S3,GUI_DATA_S4);
    }
   
    Example with titles:
    char           *tiTab[] = {"ID","Value"};
    GUI_list1__ (Box, "list2.dat", "2", tiTab, cbl, 0, 1);

MemObj GUI_list2__ ( MemObj *  o_par,
char *  fNam,
char *  mode,
char *  titLst[],
void *  funcnam,
char *  siz 
)

    list from file; 2 or 3 columns; callback.
    Values may have blanks ..
    Fileformat: csv ..
    Input:
      o_par       parentBox 
      fNam        filename of list to display; mode=nr of vals; NULL = none.
      mode        "2"  selection returns 2 words;
                  "3" selection returns 3 words;
      titLst      2 or 3 headertitles or NULL = no headers
      funcnam     callback - returns the selected line (as list of words)
      hsiz,vsiz   size of window; >0=size in characters, <0=size in pixels
    
    funcnam prototype:
    int funcnam (void *parent, void **data);
       // data=table of 5 pointers;
                   0=TYP_EventPress|TYP_EventEnter       GUI_DATA_EVENT
                   1=mouseButtonNr or keyCode            GUI_DATA_I1
                   2=colNr(1|2)                          GUI_DATA_I2
                   3=sel.Text col.1                      GUI_DATA_S3
                   4=sel.Text col.2 (only if colNr=2)    GUI_DATA_S4
                   5=sel.Text col.2 (only if colNr=3)    GUI_DATA_S5
      GUI_OBJ_TYP(mo)  = TYP_GUI_List
   
    Cursorkeys (up,down), page-keys (up,down) provide a usercall of type
      TYP_EventEnter; GUI_DATA_I1 gives the keyCode (eg GUI_KeyCurUp)
    MousButtonClicks or the Enter-key provide a usercall of type TYP_EventPress;
      GUI_DATA_I1 gives the mouseButtonNr (1|2|3) or DoubleClick (4) or
      ReturnKey (13).
    DoubleClick provides 3 userCalls of type TYP_EventPress; first and second
      with mouseButton 1, the third call with mouseButton=4.
   
    Example:
    GUI_list2__ (Box, "list3.csv", "3", NULL, cb_list_sel, 0, 10);
    ..
    int cb_list_sel (MemObj *mo, void **data) {
      printf(" mouseButtNr=%d selColNr=%d\n",GUI_DATA_I1,GUI_DATA_I2);
      printf(" txt sel |%s|%s|%s|\n",GUI_DATA_S3,GUI_DATA_S4,GUI_DATA_S5);
    }
   
    Example with titles:
    char           *tiTab[] = {"ID","Value","Info"};
    GUI_list2__ (Box, "list2.dat", "3", tiTab, cbl, 0, 10);

int GUI_list1_add_f ( MemObj *  mo,
char *  fNam,
char *  mode 
)

    add lines from file to list
      fNam        filename of list to display; mode=nr of words per line
      mode        "1"  selection returns 1 word;
                  "2" selection returns 2 words;

int GUI_list2_add_f ( MemObj *  mo,
char *  fNam,
char *  mode 
)

    add lines from file to list
      fNam        filename of list to display; mode=nr of words per line
      mode        "1"  selection returns 1 word;
                  "2" selection returns 2 words;

int GUI_list1_add_l ( MemObj *  mo,
char *  c1,
char *  c2,
char *  c3 
)

    add line to list (1,2 or 3 columns)
    Also for GUI_list2.

int GUI_list1_clear ( MemObj *  mo  ) 
int GUI_list1_f ( void *  list_store,
char *  fnam,
char *  mode 
)

GUI_list1_f INTERNAL populate list 1 or 2 columns from file (sep = blank)

int GUI_list2_f ( void *  list_store,
char *  fnam,
char *  mode 
)

GUI_list2_f INTERNAL populate list 2 or 3 columns from csv-file

int GUI_list1_cbKey ( void *  parent,
void *  event,
MemObj  mo 
)

    INTERNAL        

int GUI_list1_cbMouse ( void *  parent,
void *  ev,
MemObj  mo 
)

    INTERNAL

int GUI_list1_cbSel ( void *  selection,
MemObj  mo 
)

    GUI_list1_cbSel      INTERNAL  callback list selection (list1 & list2)
   
    sig changed: from mouse-select, key-blank, key-PageDwn !
    isel always 0
    calls user with 0=TYP_EventPress|TYP_EventEnter       GUI_DATA_EVENT
                    1=mousButtonNr(1|2|3)Return(13)       GUI_DATA_I1
                    2=columnNr(1|2|3)                     GUI_DATA_I2
                    3=sel.Text column.1;                  GUI_DATA_S3
                    4=sel.Text col.2 (only if colNr=2)    GUI_DATA_S4
                    5=sel.Text col.3 (only if colNr=3)    GUI_DATA_S5

int GUI_list1_dlg_cbw ( Obj_gui2 *  go,
void **  data 
)

    INTERNAL
    callback from GUI_list1_dlg_w < GUI_list1__ < GUI_list1_cbSel

int GUI_list1_h2_cb1 ( void *  selection,
void *  data 
)

    GUI_list1_cbSel      INTERNAL  callback list selection
   
    sig changed: from mouse-select, key-blank, key-PageDwn !
    isel always 0
    calls user with 0=TYP_EventPress;                     GUI_DATA_EVENT
                    2=mousButtonNr(1|2|3)                 GUI_DATA_I1
                    3=colNr(1|2)                          GUI_DATA_I2
                    4=sel.Text col.1;a                    GUI_DATA_S3
                    5=sel.Text col.2 (only if colNr=2)    GUI_DATA_S4

int GUI_list1_h2_cb3 ( void *  parent,
void *  data 
)

INTERNAL; parent-button pressed; display parentList fnamP

int GUI_list1_h2__ ( char *  titP,
char *  titC,
char *  lButP,
char *  txtP,
char *  fnamP,
void *  funcP,
void *  funcC,
int  hsiz,
int  vsiz 
)

    make hierarchical SelectList. Select childObject or 
      select "Parents" with "<<--" -Button.
      selecting parents-button changes childList -> parentList
      selecting parentObject gets new childList by calling funcP
      selecting childObject exits (provides parentText and childText by funcC)
    
    Input:
      titP     titletext for selection of parent
      titC     titletext for selection of child
      lButP    caption parents-button
      txtP     active parent
      fnamP    Name of file for parents
      funcP    user has selected a parent; create childlist from selected parent.
      funcC    user has selected a child; exit and report selection -> user.
    Output:
      RetCod:
             1 - destroy HList;
             0 - keep HList.
            -2   file fnamP does not exist
    
     funcP (char *fnamC, char *parentTxt) {}
    
     funcC (char *parentTxt, char *childtxt) {}


Variable Documentation

GtkWidget* UI_list1_win = NULL [static]
void* UI_List_p1 [static]
void * UI_List_p2 [static]
void * UI_List_p3 [static]
void * UI_List_p4 [static]
void * UI_List_p5 [static]
GtkListStore* UI_ListStore [static]
int GUI_list1_msbt [static]
int GUI_list1_evt [static]
int GUI_list1_stat [static]
char GUI_list1_s1[256] [static]
char GUI_list1_s2[256] [static]
char GUI_list1_s3[256] [static]
char GUI_list1_s4[256] [static]
GtkWidget* UI_act_wi
GtkWidget* UI_MainWin
Generated on Fri Aug 17 09:22:02 2012 for C-KIT-GUI-GTK 0.10 by  doxygen 1.6.3