gtk_menu.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>
#include "../ut/ut_cast.h"
#include "../ut/ut_umem.h"
#include "../gui/gui_types.h"
#include "../gui/gui_base.h"
#include "../gui_gtk/gtk_button.h"

Functions

MemObj GUI_menu_radiobutt__ (MemObj *o_par, char *ltxt, int ii, void *funcnam, void *data, int siz)
int GUI_menu_radiobutt_get (MemObj *mo)
void GUI_menu_radiobutt_set (MemObj *mo)
int GUI_menu_checkbox_get (MemObj *mo)
int GUI_menu_checkbox_set (MemObj *mo, int mode)
MemObj GUI_menu_checkbox__ (MemObj *o_par, char *ltxt, int state, void *funcnam, void *data)
MemObj GUI_menu__ (MemObj *o_par, char *ltxt, int mode)
MemObj GUI_menu_entry (MemObj *o_par, char *ltxt, void *funcnam, void *data)

Variables

GtkWidget * UI_act_wi
static GSList * UI_menGrp

Detailed Description

=====================================================
List_functions_start:

GUI_menu__             create menu or submenu
GUI_menu_entry         create menu-item in menu

GUI_menu_radiobutt__
GUI_menu_radiobutt_get
GUI_menu_radiobutt_set

GUI_menu_checkbox__
GUI_menu_checkbox_get
GUI_menu_checkbox_set

List_functions_end:
=====================================================

GUI_MenuSub UNUSED

Function Documentation

MemObj GUI_menu_radiobutt__ ( MemObj *  o_par,
char *  ltxt,
int  ii,
void *  funcnam,
void *  data,
int  siz 
)

    Radiobuttons.
    The callbackfunctions provides signal "activated" and "disactivated"
   
    Input:
      o_par      parentBox
      ii         0=start new radioButtonChain; 1=add button to existing chain
      ltxt       caption
      funcnam    callback-function or NULL; returns data of selected RB
      data       this data will be provided by the callback-function
      siz        0   minimum size (size of caption)
                 1   maximum size (expand inside container)
                 >1  prepare size for <siz> nr of characters
                 <0  absolute size (in pixels)
   
    funcnam prototyp:
    int funcnam (void *parent, void **data);
      // data=table of 2 pointers;
      GUI_DATA_EVENT =*(int*)data[0]=TYP_EventPress|TYP_EventRelease
      GUI_DATA_I1=*(int*)data[2] or GUI_DATA_S1=(char*)data[2]  user-data
   
    Example:
      GUI_menu_radiobutt__ (&box0, "button1", 0, cb_rb1, (void*)"rb1", 0);
      GUI_menu_radiobutt__ (&box0, "button2", 1, cb_rb1, (void*)"rb2", 0);
      GUI_menu_radiobutt__ (&box0, "button3", 1, cb_rb1, (void*)"rb3", 0);
   
      int cb_rb1 (void *parent, void **data) {
        // skip disactivation
        if(GUI_DATA_EVENT == TYP_EventRelease) return 0;
        printf(" being activated: |%s|\n",GUI_DATA_S1;
      }
   
    activate:     GUI_RadButtSet
    check state:  GUI_RadButtGet

int GUI_menu_radiobutt_get ( MemObj *  mo  ) 

test a menu-radiobutton if it is active. 1=active, 0=not active.

void GUI_menu_radiobutt_set ( MemObj *  mo  ) 

set a menu-radiobutton to state = active.

int GUI_menu_checkbox_get ( MemObj *  mo  ) 

returns state of menu-checkbox; 0=not sel, 1=selected.

int GUI_menu_checkbox_set ( MemObj *  mo,
int  mode 
)

    activate/disactivate menu-Checkbox, Radiobutton.
    Input:
      mode    1 = TRUE  = ON
              0 = FALSE = OFF

MemObj GUI_menu_checkbox__ ( MemObj *  o_par,
char *  ltxt,
int  state,
void *  funcnam,
void *  data 
)

    Checkbox.
      o_par      parentBox
      ltext      caption (button-text)
      state:     0=FALSE: not checked; 1=TRUE: checked.
      funcnam    callbackfunktion for the press-button-event
      data       get this data from the callbackfunktion; NULL for none
      siz        0   minimum size (size of caption)
                 1   maximum size (expand inside container)
                 >1  prepare size for <siz> nr of characters
                 <0  absolute size (in pixels)
   
    funcnam prototyp:
      see GUI_button__ ()
   
    ---------------------------
    Example without callback:
   
      int istate;
      MemObj  cb1;
      cb1 = GUI_menu_checkbox__ (&men1, "ckb 1", 0, NULL, NULL);
      // query state
      istate = GUI_menu_checkbox_get (&cb1)        // 0=not sel, 1=selected.
   
   
    ---------------------------
    Example with callback:
   
     GUI_menu_checkbox__ (&men1, "ckb 1", 0, mywin3, (void*)"cb1");
   
     int mywin3, (MemObj *parent, void **data) {
   
       if(GUI_DATA_EVENT == TYP_EventPress) {
         if(!strcmp(GUI_DATA_S1, "cb1")) {
           ..
   
    ---------------------------
    Optional:
   
    activate with:
      GUI_menu_checkbox_set (&cb1, TRUE);

MemObj GUI_menu__ ( MemObj *  o_par,
char *  ltxt,
int  mode 
)

    GUI_Menu__             create menu or submenu
   
    Input:
      o_par        parentbox or parent-menushell
      ltxt         menu-title, NULL for creating the menu-bar
      mode         0=normal; 'r'=right-justified; 's'=Submenu.
                   1 (ltxt=NULL only) expand inside parent-container
   
    Example:
    MemObj  menu_bar, men_fil, mns, men_hlp, wm2, wml;
    menu_bar = GUI_menu__ (&box1, NULL, 0);               // create Menubar
    men_fil = GUI_menu__ (&menu_bar, "File ", 0);         // first Menu on Menubar
    men_hlp = GUI_Menu__ (&menu_bar, "Help ", 'r');       // Menu rechts
    GUI_menu_entry (men_fil, "New", UI_CB, (void*)"new"); // add entry to Menu
   
    mns = GUI_menu__ (&men_fil, "Save as ", 0);           // add submenu
    GUI_menu_entry (&mns, "dxf", UI_CB, (void*)"saveDxf");
   
    GUI_menu_entry  (&men_fil, "---", NULL, NULL);        // menu-separatorline
   
    GUI_menu_checkbox__ (&men_fil, "wmcb1", 0, UI_CB, (void*)"wmcb1");
   
    wm2 = GUI_menu__ (&menu_bar, "Lang ", 'r');
          GUI_menu_radiobutt__ (&wm2, "de", 0, mywin3, "l-de", 0);
    wml = GUI_menu_radiobutt__ (&wm2, "en", 1, mywin3, "l-en", 0);
    GUI_menu_radiobutt_set (&wml);               // preset en
   
    int UI_CB (MemObj *mo, void **data) {
      printf("UI_CB %d\n",GUI_DATA_EVENT);
      if(GUI_DATA_EVENT == TYP_EventPress) {
        if(GUI_OBJ_TYP (mo) == TYP_GUI_MenuItem) {
          if(!strcmp(GUI_DATA_S1, "new")) {
          ..

MemObj GUI_menu_entry ( MemObj *  o_par,
char *  ltxt,
void *  funcnam,
void *  data 
)

    create menuItem or MenuSeparator (if ltxt == "---")
   
    Input:
      o_par       parentBox
      ltxt        item-text
      funcnam     callback from selection
      data        get this data from the callbackfunktion; NULL for none
   
    funcnam prototype:
      int funcnam (void *parent, void **data);
      // data=table of 2 pointers;
      GUI_DATA_EVENT =*(int*)data[0]=TYP_EventPress
      GUI_DATA_I1=*(int*)data[2] or GUI_DATA_S1=(char*)data[2]  user-data
   
      RetCod:  gio_typ = TYP_GUI_OptMen
   
    Example: see GUI_menu__


Variable Documentation

GtkWidget* UI_act_wi
GSList* UI_menGrp [static]
Generated on Fri Aug 17 09:22:02 2012 for C-KIT-GUI-GTK 0.10 by  doxygen 1.6.3