#include <gtk/gtk.h>
Go to the source code of this file.
Data Structures | |
struct | GUIobj_mList |
Defines | |
#define | GUI_set_active(obj, mode) gtk_widget_set_sensitive (obj,mode) |
makes widgets / groups of widgets unselectable (unpickable, inactive): | |
#define | GUI_get_CkBox(wCheckBox) (((GtkCheckMenuItem*)(wCheckBox))->active) |
#define | GUI_set_CkBox(wCheckBox, mode) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(wCheckBox),mode) |
Functions | |
void | GUI_Init (char *) |
int | GUI_WinTit (GtkWidget *window, char *wtit) |
void | GUI_GetWinPos (int *, int *, GtkWidget *) |
void | GUI_GetWidgetPos (int *, int *, GtkWidget *) |
void | GUI_SetWinpos (int, int) |
GtkWidget * | GUI_Window (char *, void *, void *, int) |
GtkWidget * | GUI_Hbox (GtkWidget *, int border) |
GtkWidget * | GUI_Vbox (GtkWidget *, int border) |
int | GUI_VSpace (GtkWidget *parent) |
GtkWidget * | GUI_Toolbox (GtkWidget *) |
GtkWidget * | GUI_Frame (GtkWidget *, char *, int) |
GtkWidget * | GUI_Hsep (GtkWidget *, int) |
GtkWidget * | GUI_Label (GtkWidget *, char *, int) |
GtkWidget * | GUI_Butt (GtkWidget *, char *, void *, void *, int) |
GtkWidget * | GUI_CkButt (GtkWidget *, char *, int, void *, void *, int) |
int | GUI_CkButt_get (GtkWidget *) |
void | GUI_CkButt_set (GtkWidget *ckb1, int mode) |
GtkWidget * | GUI_RadButt (GtkWidget *, char *, void *, void *, int) |
GtkWidget * | GUI_RadButtAdd (GtkWidget *, char *, void *, void *, int) |
void | GUI_RadButtSet (int) |
GtkWidget * | GUI_Entry (GtkWidget *, char *, char *, void *, int) |
GtkWidget * | GUI_EntryL (GtkWidget *, char *, char *, void *, int) |
int | GUI_Entry_set (GtkWidget *entry, char *text) |
char * | GUI_Entry_get (GtkWidget *entry) |
GtkWidget * | GUI_Pix (GtkWidget *, char *, int) |
void | GUI_ButtPix (GtkWidget *, char *, char *, void *, void *) |
GtkWidget * | GUI_MenuBar (GtkWidget *) |
GtkWidget * | GUI_Menu (GtkWidget *, char *, int) |
GtkWidget * | GUI_MenuEntry (GtkWidget *, char *, void *, void *) |
GtkWidget * | GUI_MenuCkBox (GtkWidget *, char *, void *, void *) |
GtkWidget * | GUI_MenuSub (GtkWidget *) |
GtkWidget * | GUI_MenuRadButt (GtkWidget *parent, char *ltxt) |
GtkWidget * | GUI_MenuRadButtAdd (GtkWidget *parent, char *ltxt) |
void | GUI_Tip (char *) |
int | GUI_Popup (char *optLst[], void *funcnam1, void *funcnam2) |
GtkWidget * | GUI_Combo (GtkWidget *, void *, int) |
GtkWidget * | GUI_OptMen (GtkWidget *, char *[], void *, int) |
void | GUI_OptMenActivate (GtkWidget *w1, int ind) |
void | GUI_OptMenChg (GtkWidget *parent, char *[], void *) |
GtkWidget * | GUI_Notebook__ (GtkWidget *parent, void *funcnam) |
GtkWidget * | GUI_Notebook_add (GtkWidget *wnb, char *title) |
GtkWidget * | GUI_Slider__ (GtkWidget *parent, int typ, void *funcnam, double valMin, double valMax, double valStart) |
double | GUI_Slider_get (GtkWidget *wsl1) |
void | GUI_Slider_set (GtkWidget *wsl1, double newVal) |
GtkWidget * | GUI_List (GtkWidget *, void *, void *) |
void | GUI_List_add (GtkWidget *, char *) |
void | GUI_List_remove (GtkWidget *, GtkList *) |
void | GUI_List_clear (GtkWidget *, int, int) |
int | GUI_List_select (GtkWidget *, int) |
int | GUI_List1 (char *, char *, void(*)()) |
int | GUI_List2 (char *, char *, char *, void(*)()) |
int | GUI_List3 (int, char *, char *, char *, char *, void(*)()) |
int | GUI_List3_CBl (void *, void *) |
int | GUI_ListKill (GtkWidget *parent, void *data) |
int | GUI_save__ (char *, char *, char *, char *, void(*)()) |
void | GUI_Dialog (GtkWidget *, char *) |
void | GUI_DialogY (char *, void *) |
void | GUI_DialogYN (char *, void *) |
int | GUI_GetText (char *text, char *label, int, void *) |
int | GUI_GetTextCB (GtkWidget *, void *) |
GtkWidget * | GUI_File_select (char *, void *) |
GtkWidget * | GUI_File_selext (char *, char *, void *, void *) |
int | GUI_File_selGet (char *filnam, void *data) |
int | GUI_ColSel (void *, void *) |
void | GUI_SetActW (GtkWidget *) |
GtkWidget * | GUI_GetActW () |
int | GUI_WinUp (GtkWidget *) |
int | GUI_WinUpCB (GtkWidget *, GdkEventVisibility *, void *) |
int | GUI_CB_WinDel (GtkWidget *, GdkEvent *, void(*)()) |
makes widgets / groups of widgets unselectable (unpickable, inactive):
#define GUI_get_CkBox | ( | wCheckBox | ) | (((GtkCheckMenuItem*)(wCheckBox))->active) |
returns state of GUI_MenuCkBox 0=not checked; 1=checked
#define GUI_set_CkBox | ( | wCheckBox, | |||
mode | ) | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(wCheckBox),mode) |
sets state of GUI_MenuCkBox 0=not checked; 1=checked
void GUI_Init | ( | char * | ) |
int GUI_WinTit | ( | GtkWidget * | window, | |
char * | wtit | |||
) |
void GUI_GetWinPos | ( | int * | , | |
int * | , | |||
GtkWidget * | ||||
) |
ACHTUNG: geht nicht bei MS-Win!!!
void GUI_GetWidgetPos | ( | int * | , | |
int * | , | |||
GtkWidget * | ||||
) |
liefert leider nur die relative Position im Window od Toolbar. GUI_GetWinPos(&x1, &y1, wcGeo_tb); GUI_GetWidgetPos(&x2, &y2, wcGeo_tb); // rel. Posi des Toolbar x1 += x2; y1 += y2; GUI_GetWidgetPos(&x2, &y2, parent); x1 += x2; y1 += y2; GUI_SetWinpos (x1, y1);
void GUI_SetWinpos | ( | int | , | |
int | ||||
) |
position only for auxiliary windows !!
GtkWidget* GUI_Window | ( | char * | , | |
void * | , | |||
void * | , | |||
int | ||||
) |
wtit: WindowTitle. funcnam: wird bei DestroyWindow (mit zugehörigem data) gerufen ! border: wieviel Platz innen (rundum) frei bleiben soll. winID = GUI_Window ("Line", NULL, NULL, 0); winID = GUI_Window ("Liste", UI_Typ_Ltyp, (void*)UI_FuncKill, 0); Die Size; normal unnutz. gtk_widget_set_usize (window, 550, 60); Position setzen: // auf fixe Pos.: gtk_widget_set_uposition (window, 100, 400); // oder auf aktuelle maouspos: gtk_window_set_position (window, GTK_WIN_POS_MOUSE); Windowtitle nachtraeglich nochmal korrigieren: gtk_window_set_title (GTK_WINDOW (winID), "neuer titel"); Achtung: derzeit kann mit "destroy" und delete_event kein data mitgegeben werden, daher muss eigene Funktion gemacht werden. allow_grow und allow_shrink in gtk_window_set_policy.
GtkWidget* GUI_Hbox | ( | GtkWidget * | , | |
int | border | |||
) |
border >= 0: wieviel Platz innen (rundum) frei bleiben soll. border = -1: expand widgets in box; box aber fixed size. Für jedes primäre Window ist eine primäre box notwendig. In Hboxen werden Widgets nebeneinander (Vboxen untereinander) geschlichtet. Wenn mehrere Widgets in einen frame sollen, Box notwendig. Den Level Vertikal mit Ziffern, horiz. mit Buchstaben bezeichen. Also abwechselnd Ziffer - Buchstabe. border: wieviel Platz innen (rundum) frei bleiben soll. GtkWidget *boxneu; boxneu = GUI_Hbox (parentbox, 0);
GtkWidget* GUI_Vbox | ( | GtkWidget * | , | |
int | border | |||
) |
border >= 0: wieviel Platz innen (rundum) frei bleiben soll. border = -1: expand widgets in box
int GUI_VSpace | ( | GtkWidget * | parent | ) |
GtkWidget* GUI_Toolbox | ( | GtkWidget * | ) |
vi /usr/include/gtk/gtkhandlebox.h gtk_handle_box_set_handle_position gtk_handle_box_set_snap_edge
GtkWidget* GUI_Frame | ( | GtkWidget * | , | |
char * | , | |||
int | ||||
) |
GtkWidget* GUI_Hsep | ( | GtkWidget * | , | |
int | ||||
) |
Hor. Trennlinie. Border: Abstand ober- und unterhalb der Trennlinie.
GtkWidget* GUI_Label | ( | GtkWidget * | , | |
char * | , | |||
int | ||||
) |
border: >0: wieviel Platz innen (rundum) frei bleiben soll. <0: absoluter Platzbedarf; - fixed size. more than 1 line: use \n modify label: GUI_Label_mod (w_nam, "modified Text"); Lable nach links ausrichten: ( , xalign, yalign) gtk_misc_set_alignment (GTK_MISC (label), 0.2, 0.5); ?? gtk_misc_set_padding (GTK_MISC (label), 10, 10); gtk_widget_set_usize(button, 250, 40); // geht ned ? // GTK_JUSTIFY_RIGHT od GTK_JUSTIFY_CENTER ?? gtk_box_pack_start_defaults(GTK_BOX(vbox), lbl);
GtkWidget* GUI_Butt | ( | GtkWidget * | , | |
char * | , | |||
void * | , | |||
void * | , | |||
int | ||||
) |
Button. ltext Beschriftung Button funcnam wird beim drücken mit data gerufen = callbackfunktion. border > 0: freier Raum rund um Button. < 0: absolut size of Button GUI_Butt (box0, "TestButton", UI_func1, NULL, 10); int UI_func1 (GtkWidget *parent, void *data) { .. } Dzt braucht man (Linux u MS) keine Parameter anzugeben! Es geht also auch "int UI_func1 () { ..};" Disactivate: gtk_widget_set_sensitive (ckb1, (gint)1); //1=activ, 0=inaktiv. change text: gtk_button_set_label (wButt1, " newText ");
GtkWidget* GUI_CkButt | ( | GtkWidget * | , | |
char * | , | |||
int | , | |||
void * | , | |||
void * | , | |||
int | ||||
) |
Checkbox. state: Vorbelegeung - int, 0=not checked; TRUE od FALSE. --------------------------- Example without callback: int istate; GtkWidget *cb1; // create checkbox cb1 = GUI_CkButt (box0, "ckb 1", TRUE, NULL, NULL, 0); // query state istate = GUI_CkButt_get (cb1) // 0=not sel, 1=selected. --------------------------- Example with callback: w1=GUI_CkButt (box0, "ckb 1", 0, f_ckbutt, NULL, 0); int f_ckbutt (GtkWidget *parent, void *data) { if(GUI_CkButt_get(parent)) goto L_activate; printf("f_ckbutt disactivate\n"); .. L_activate: .. } --------------------------- Optional: activate with: GUI_CkButt_set (ckb1, TRUE); // gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (ckb1), TRUE); // gtk_toggle_button_toggled (ckb1);
int GUI_CkButt_get | ( | GtkWidget * | ) |
returns state of checkbox; 0=not sel, 1=selected.
void GUI_CkButt_set | ( | GtkWidget * | ckb1, | |
int | mode | |||
) |
GtkWidget* GUI_RadButt | ( | GtkWidget * | , | |
char * | , | |||
void * | , | |||
void * | , | |||
int | ||||
) |
Radiobuttons: get state: printf("ckb1 = %d\n", GUI_CkButt_get (widget); // 1=ON;0=OFF activate: GUI_CkButt_set (wb, TRUE|FALSE); //gtk_toggle_button_set_state (GTK_TOGGLE_BUTTON (bA), TRUE); // skip disactivation .. if(GTK_TOGGLE_BUTTON (parent)->active == 0) return 0; // 1=ON;0=OFF oder if(GTK_TOGGLE_BUTTON (ckb1)->active == 0) return 0; // 1=ON;0=OFF
GtkWidget* GUI_RadButtAdd | ( | GtkWidget * | , | |
char * | , | |||
void * | , | |||
void * | , | |||
int | ||||
) |
Radiobuttons. GUI_RadButt (box0, "button1",f_radbutt,(void*)0,0); GUI_RadButtAdd (box0, "button2",f_radbutt,(void*)1,0); GUI_RadButtAdd (box0, "button3",f_radbutt,(void*)2,0); int f_radbutt (GtkWidget *parent, void *data) { if ((GTK_TOGGLE_BUTTON (parent)->active) == 0) { printf("skip pt disactivation\n"); goto Fertig; } .......... } activate: (deaktiviert den momentan aktiven Button): GUI_CkButt_set (w2, TRUE); or GUI_RadButtSet get state: printf("ckb1 = %d\n", GUI_CkButt_get (widget); // 1=ON;0=OFF Ruft funcnam eigentlich 2-mal; einmal deactive voher aktiven Button, dann activate new Buttton.
void GUI_RadButtSet | ( | int | ) |
GtkWidget* GUI_Entry | ( | GtkWidget * | , | |
char * | , | |||
char * | , | |||
void * | , | |||
int | ||||
) |
ltxt: Labeltext; NULL or "" for none etxt: Text im Entryfield; NULL oder "" for none funcnam: callback-function for all Keypress & FocusIn-Events (none: NULL) border < 0: entSiz direkt (in Pixels; 0: via len von etxt entry = GUI_Entry (parent, "0.0", "sum", NULL, 0); Preset: GUI_Entry_set (GtkWidget* entry, char* text); //gtk_entry_set_text ((GtkEntry*) (w_nam), "newText"); Read: char* text = GUI_Entry_get (GtkWidget* entry); //char* gtxt = gtk_entry_get_text ((GtkEntry*) (w_nam)); // DO NOT free! Readonly: gtk_entry_set_editable (entry, FALSE); Callbackroutine: //===================================================================== int Ent1_CB (GtkWidget *parent, GdkEventAny *event) { //===================================================================== #include <gdk/gdkkeysyms.h> // f. GDK_Return char *txt; // if(event->type == GDK_FOCUS_CHANGE) return; if(event->type != GDK_KEY_PRESS) return; switch (((GdkEventKey*)event)->keyval) { case GDK_Return: case GDK_Tab: txt = gtk_entry_get_text ((GtkEntry*) (parent)); // g_free (txt); // damit Absturz !! break; } return FALSE; // do defaultOperations (set focus to this field) // return TRUE; // do no defaultOperations } vi /usr/include/gtk/gtkentry.h
GtkWidget* GUI_EntryL | ( | GtkWidget * | , | |
char * | , | |||
char * | , | |||
void * | , | |||
int | ||||
) |
InputField - Labeltext (Labeltext right of InputField)) see also GUI_Entry (Labeltext left of InputField))
int GUI_Entry_set | ( | GtkWidget * | entry, | |
char * | text | |||
) |
set text in entryField
char* GUI_Entry_get | ( | GtkWidget * | entry | ) |
get text from entryField - gives back a Pointer !
GtkWidget* GUI_Pix | ( | GtkWidget * | , | |
char * | , | |||
int | ||||
) |
Pixmap als Hintergrundbild .xpm oder (zumindest Linux) .jpg.
void GUI_ButtPix | ( | GtkWidget * | , | |
char * | , | |||
char * | , | |||
void * | , | |||
void * | ||||
) |
Button mit Pixmap und Text erzeugen.
GtkWidget* GUI_MenuBar | ( | GtkWidget * | ) |
Zuerst eine vbox, dann den MenuBar. GtkWidget *menu_bar, *menu; box0 = GUI_Vbox (window, 0); menu_bar = GUI_MenuBar (box0); menu = GUI_Menu (menu_bar, "File "); GUI_MenuEntry (menu, "New", MF_Menu, (void*)"new");
GtkWidget* GUI_Menu | ( | GtkWidget * | , | |
char * | , | |||
int | ||||
) |
Generiert ein neues Menu oder Submenu. mode: 0 = normal 'r'= right-justified 's'= Submenu. GtkWidget *menu_bar, *menu, *men_imp; GtkWidget *fil_men; menu_bar = GUI_MenuBar (box0); // create Menubar men_fil = GUI_Menu (menu_bar, "File ", 0); // first Menu on Menubar men_hlp = GUI_Menu (menu_bar, "Help ", 'r'); // Menu rechts fil_men = GUI_GetActW(); // get RootWindow of menu for disactivate // muss sofort nach GUI_Menu sein ! GUI_MenuEntry (men_fil,"New",UI_CB,(void*)"new"); // add entry to Menu men_imp=GUI_Menu(men_fil,"Import", 's'); // Menuentry mit Submenu // disactivate menu: gtk_widget_set_sensitive (fil_men, FALSE);
GtkWidget* GUI_MenuEntry | ( | GtkWidget * | , | |
char * | , | |||
void * | , | |||
void * | ||||
) |
Menupunkt oder MenuSeparator (wenn ltxt == "---") Offen: gtk_menu_item_set_submenu S.87,103 GUI_MenuEntry (menu, "Save as", UI_CB, (void*)"saveAs"); GUI_MenuEntry (menu, "---", NULL, NULL); // Separator
GtkWidget* GUI_MenuCkBox | ( | GtkWidget * | , | |
char * | , | |||
void * | , | |||
void * | ||||
) |
abfragen mit GUI_get_CkBox i1 = ((GtkCheckMenuItem*)parent)->active; // 0=ON; else=Off. setzen mit: GUI_set_CkBox gtk_check_menu_item_set_active (parent, FALSE); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(parent), TRUE);
GtkWidget* GUI_MenuSub | ( | GtkWidget * | ) |
GtkWidget* GUI_MenuRadButt | ( | GtkWidget * | parent, | |
char * | ltxt | |||
) |
GtkWidget* GUI_MenuRadButtAdd | ( | GtkWidget * | parent, | |
char * | ltxt | |||
) |
void GUI_Tip | ( | char * | ) |
Tooltips fuer das zuletzt erzeugte Objekt UI_act_wi. Zeilentrennung besser automatisch; mit \n gibts eine Leerzeile \r tut nix \r\n auch nicht. Zum spaeteren Aendern use GUI_SetActW
int GUI_Popup | ( | char * | optLst[], | |
void * | funcnam1, | |||
void * | funcnam2 | |||
) |
callback funcnam2 if preselect (Cursor over Listentry). Can be NULL. callback funcnam1 if select (mousebutton) ACHTUNG: funcnam1 unused; char *optLst[]={"func 1","func 2","\0"}; GUI_Popup (optLst, NULL, CB_popup); .. int CB_popup (GtkWidget *widget, GdkEventAny *event, gpointer data) { static long isel=-1; if(event->type == GDK_ENTER_NOTIFY) {isel = (int)data; return 0;} if(event->type != GDK_BUTTON_RELEASE) return 0; printf("CB_popup %d\n",isel); .. }
GtkWidget* GUI_Combo | ( | GtkWidget * | , | |
void * | , | |||
int | ||||
) |
ONLY FOR DEMONSTRATION PURPOSES !!! // Auslesen der aktiven Zeile: char *txt; txt = gtk_entry_get_text ((GtkEntry*) (GTK_COMBO (cm1)->entry)); // Listindex scheinbar nicht in der COMBO-struct. // gehen NICHT: // printf(" ind= %d\n",GTK_COMBO (cm1)->list_change_id); //ind = gtk_list_child_position(GTK_LIST(GTK_COMBO(cm1)->list), // GTK_WIDGET(GTK_LIST(GTK_COMBO(cm1)->list)->last_focus_child)); // printf(" ind= %d\n",ind); // printf(" ind= %d\n",GTK_LIST(GTK_COMBO(cm1)->list)->vtimer); vi /usr/include/gtk/gtkcombo.h vi /usr/include/glib-1.2/glib.h //g_list...
GtkWidget* GUI_OptMen | ( | GtkWidget * | , | |
char * | [], | |||
void * | , | |||
int | ||||
) |
OptionMenu ist eine Liste wie ComboBox, aber ohne Eingabemoeglichkeit. funcnam wird mit dem Index der gewaehlten Zeile gerufen Abfrage der aktiven Zeile nicht moeglich; nur via Callback funcnam. parent parentBox optLst a null-terminated list of words; NULL for empty List. funcnam callback-function border if negativ: width of list in pixels pos: fixed pos; 16 bit dx, 16 bit dy. (dx + (dy << 16);) AuxFunctions: GUI_OptMenChg Load/Modify list later .. GUI_OptMenActivate preselect a listEntry Examples: char *optLst[]={"Jaenner","Februar","Maerz",NULL}; GUI_OptMen (box0, optLst, OptMen_CB, 0); //===================================================================== int OptMen_CB (GtkWidget *parent, void *data) { //===================================================================== printf("OptMen_CB sel. Line = |%d|\n",(int)data); return 0; } ---------------------------------------------------------------------- vi /usr/include/gtk/gtkoptionmenu.h gtk_option_menu_new S.469
void GUI_OptMenActivate | ( | GtkWidget * | w1, | |
int | ind | |||
) |
void GUI_OptMenChg | ( | GtkWidget * | parent, | |
char * | [], | |||
void * | ||||
) |
Change the menu of existing OptionMenu. gtk_option_menu_remove_menu ?? Windows: vor dem beladen aktivieren, sonst immer inaktiv !! char *optLst[]={"A1","A2",""}; vi /usr/include/gtk/gtkoptionmenu.h vi /usr/include/gtk/gtkmenu.h vi /usr/include/gtk/gtkmenuitem.h vi /usr/include/gtk/gtkitem.h
GtkWidget* GUI_Notebook__ | ( | GtkWidget * | parent, | |
void * | funcnam | |||
) |
Create a new Notebook. Add Pages with GUI_Notebook_add. Example see tst_gtk6.c. parent should be a window; funcnam is called when noteBook-pages change; first Page has Nr 0. int my_Notebook_CB (int pgNr) {printf("_CB %d\n",pgNr); return;}
GtkWidget* GUI_Notebook_add | ( | GtkWidget * | wnb, | |
char * | title | |||
) |
returns a VBOX in the new Notebook-Page.
GtkWidget* GUI_Slider__ | ( | GtkWidget * | parent, | |
int | typ, | |||
void * | funcnam, | |||
double | valMin, | |||
double | valMax, | |||
double | valStart | |||
) |
Input: typ 0=horizontal, 1=vertical. funcnam callBack-function for moving the slider; NULL = no callback. RetCod: Example without callback: wsl1 = GUI_Slider__ (box1, 0, NULL, 0., 1., 0.5); // query slider-value printf(" sliVal=%f\n",GUI_Slider_get(wsl1)); // change slider-value GUI_Slider_set (wsl1, 0.75); Example with callback: wsl1 = GUI_Slider__ (box1, 0, sl_CB, 0., 1., 0.5); int sl_CB (GtkAdjustment *adj1, void *data) { printf("sl_CB %f\n",gtk_adjustment_get_value(adj1)); }
double GUI_Slider_get | ( | GtkWidget * | wsl1 | ) |
query slider-value
void GUI_Slider_set | ( | GtkWidget * | wsl1, | |
double | newVal | |||
) |
change slider-value
GtkWidget* GUI_List | ( | GtkWidget * | , | |
void * | , | |||
void * | ||||
) |
GUI_Butt(box0,"List", UI_List3, (void*)UI_FuncInit, 10); int UI_List3 (GtkWidget *parent, void *data) { static GtkWidget *winID, *box1; static GtkList *list; long i1, selInd; static char *list_items[] = {"hello ", "world ", "\0"}; i1 = (int)data; switch (i1) { case UI_FuncInit: if (winID) { return 0; } // Create Mainwindow winID = GUI_Window ("Undo", UI_undo, (void*)UI_FuncKill, 0); // damit Zeilenlänge setzen ! gtk_widget_set_usize (winID, 200, 100); box1 = GUI_Vbox (winID, 0); // create Liste list = GUI_List (box1, UI_undo, (void*)0); // Liste befüllen for (i1 = 0; i1<10; i1++) { if (!strcmp(list_items[i1],"\0")) break; GUI_List_add (list, list_items[i1]); } GUI_Butt (box1, "done", UI_undo, (void*)UI_FuncKill, 0); gtk_widget_show (winID); break; case 0: selInd = GUI_List_select (list); printf("list1_sel %d\n",selInd); break; case UI_FuncKill: if (winID) { gtk_widget_destroy (winID); winID = NULL; goto Fertig; } } } Problem: beim Callback (von funcnam) wird data nicht mitgeliefert ! Nachteil: man kann den Text nicht auslesen ! ------------------------------------ add. Features: gtk_list_set_selection_mode(GTK_LIST(wLst),GTK_SELECTION_MULTIPLE);
void GUI_List_add | ( | GtkWidget * | , | |
char * | ||||
) |
/usr/include/gtk/gtkscrolledwindow.h
void GUI_List_remove | ( | GtkWidget * | , | |
GtkList * | ||||
) |
void GUI_List_clear | ( | GtkWidget * | , | |
int | , | |||
int | ||||
) |
alle loeschen: GUI_List_clear (w_list, 0, 9999);
int GUI_List_select | ( | GtkWidget * | , | |
int | ||||
) |
mode = 0: normal, Line bleibt nach Selektion selektiert mode = 1: line wird sofort unselektiert mode = 2: init selection (i1=99999) Retcodes: -1 = deselect Line >0 = line selected
int GUI_List1 | ( | char * | , | |
char * | , | |||
void(*)() | ||||
) |
int GUI_List2 | ( | char * | , | |
char * | , | |||
char * | , | |||
void(*)() | ||||
) |
int GUI_List3 | ( | int | , | |
char * | , | |||
char * | , | |||
char * | , | |||
char * | , | |||
void(*)() | ||||
) |
int GUI_List3_CBl | ( | void * | , | |
void * | ||||
) |
int GUI_ListKill | ( | GtkWidget * | parent, | |
void * | data | |||
) |
int GUI_save__ | ( | char * | , | |
char * | , | |||
char * | , | |||
char * | , | |||
void(*)() | ||||
) |
void GUI_Dialog | ( | GtkWidget * | , | |
char * | ||||
) |
Ein einfaches Textausgabefenster mit einem OK-Button zum Beenden. DOES NOT WAIT Beispiel: GUI_Dialog (NULL, " - Directory does not exist"); GUI_Butt (box2,"DialogWindow",GUI_Dialog,"Hugo, mach was",0);
void GUI_DialogY | ( | char * | , | |
void * | ||||
) |
Textausgabefenster mit OK-Button zum Beenden und Callback. Beispiel: GUI_DialogY (" - Directory does not exist", func1); int func1 (GtkWidget *parent, void *data) { printf("closed ..\n"); }
void GUI_DialogYN | ( | char * | , | |
void * | ||||
) |
Ein Textausgabefenster mit einem OK-Button und einem Cancel-Butten. The callbackfunction is called with int-value UI_FuncOK or UI_FuncCancel. Mehrzeilig mit \n im Text. Beispiel: GUI_DialogYN ("OK to save file xy", f_CB_save); //===================================================================== int f_CB_save (GtkWidget *parent, void *data) { //===================================================================== int idat; printf("f_CB_save %d\n",(int)data); idat = (int)data; switch(idat) { case UI_FuncOK: // save ... break; case UI_FuncCancel: // skip saving ... break; } return 0; }
int GUI_GetText | ( | char * | text, | |
char * | label, | |||
int | , | |||
void * | ||||
) |
int GUI_GetTextCB | ( | GtkWidget * | , | |
void * | ||||
) |
GtkWidget* GUI_File_select | ( | char * | , | |
void * | ||||
) |
Komplett eigenes Fenster zum Selektieren eines Files. Wird nach Fileselekt gelöscht. Der gelieferte Filename ist inclusive Dir. ltxt: damit kann das Dir. eingestellt werden (soll mit "/" enden). GUI_File_select ("", UI_open); //============================================= int UI_open (GtkWidget *parent, void *data) { //=========== char *t1, buf[80]; printf("UI_open %d\n", (int)data); // den filename (incl. Pfad) nach WC_modnam holen. GUI_File_selGet (WC_modnam , parent); return 0; }
GtkWidget* GUI_File_selext | ( | char * | , | |
char * | , | |||
void * | , | |||
void * | ||||
) |
Komplett eigenes Fenster zum Selektieren eines Files. Wird nach Fileselekt geloescht. Der gelieferte Filename ist inclusive Dir. ltxt: damit kann das Dir. voreingestellt werden (soll mit "/" enden). GUI_File_selext ("WinTit","*.dat", UI_openCB,(void*)"open"); //=============================================== int UI_openCB (GtkWidget *parent, void *data) { //============= char *cp1; cp1 = (char*)data; // selekt. Dateinamen einlesen GUI_File_selGet (xa_auxbuf1 , parent); if(!strcmp(cp1, "open")) { ..
int GUI_File_selGet | ( | char * | filnam, | |
void * | data | |||
) |
Den (selektierten) Dateinnamen (samt Pfad!) einlesen) In in data: die WidgetID der FileSelBox.
int GUI_ColSel | ( | void * | , | |
void * | ||||
) |
void GUI_SetActW | ( | GtkWidget * | ) |
GtkWidget* GUI_GetActW | ( | ) |
int GUI_WinUp | ( | GtkWidget * | ) |
window always on top .. - muss vor gtk_widget_show gerufen werden !!!! - this events MUST (additonally) be activated: gtk_widget_set_events (window, GDK_FOCUS_CHANGE_MASK| GDK_VISIBILITY_NOTIFY_MASK); for additional Window: hide & restore the window_always_on_top: GUI_WinDwn (win0); after the new window is gone: GUI_WinUp (win0); // - again DOES NOT WORK FOR THE PARENT-WINDOW: USE WM_raise_wTit
int GUI_WinUpCB | ( | GtkWidget * | , | |
GdkEventVisibility * | , | |||
void * | ||||
) |
this win always up UI_FuncInit muss vor gtk_widget_show gerufen werden !!!! UI_FuncExit = hide window; damit kann anders (zB FileSelection) druebergelegt werden; reset mit gtk_widget_show !! jedoch nur das zuletzt aktivierte Raisen (sonst loop!) GUI_WinUpCB (NULL,NULL,(void*)UI_FuncExit); // NOT always on top
int GUI_CB_WinDel | ( | GtkWidget * | , | |
GdkEvent * | , | |||
void(*)() | ||||
) |