#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 |
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) {}
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] |
int UI_fontsizX |
int UI_fontsizY |
GtkWidget* UI_act_wi |
GtkWidget* UI_MainWin |