typedef enum {
GNOME_APP_UI_ENDOFINFO, /* No more items, use it at the end of
an array */
GNOME_APP_UI_ITEM, /* Normal item, or radio item if it is
inside a radioitems group */
GNOME_APP_UI_TOGGLEITEM, /* Toggle (check box) item */
GNOME_APP_UI_RADIOITEMS, /* Radio item group */
GNOME_APP_UI_SUBTREE, /* Item that defines a
subtree/submenu */
GNOME_APP_UI_SEPARATOR, /* Separator line (menus) or blank
space (toolbars) */
GNOME_APP_UI_HELP, /* Create a list of help topics,
used in the Help menu */
GNOME_APP_UI_BUILDER_DATA, /* Specifies the builder data for the
following entries, see code for
further info */
GNOME_APP_UI_ITEM_CONFIGURABLE, /* A configurable menu item. */
/* one should be careful when using
* gnome_app_create_*_[custom|interp|with_data]() functions with
* GnomeUIInfo arrays containing GNOME_APP_UI_BUILDER_DATA items since
* their GnomeUIBuilderData structures completely override the ones
* generated or supplied by the above functions. */
GNOME_APP_UI_SUBTREE_STOCK /* Item that defines a
subtree/submenu, same as GNOME_APP_UI_SUBTREE,
but the texts should be looked up in the
gnome-libs catalog
*/
} GnomeUIInfoType; |
typedef enum {
/* 0 */
GNOME_APP_CONFIGURABLE_ITEM_NEW,
GNOME_APP_CONFIGURABLE_ITEM_OPEN,
GNOME_APP_CONFIGURABLE_ITEM_SAVE,
GNOME_APP_CONFIGURABLE_ITEM_SAVE_AS,
GNOME_APP_CONFIGURABLE_ITEM_REVERT,
GNOME_APP_CONFIGURABLE_ITEM_PRINT,
GNOME_APP_CONFIGURABLE_ITEM_PRINT_SETUP,
GNOME_APP_CONFIGURABLE_ITEM_CLOSE,
GNOME_APP_CONFIGURABLE_ITEM_EXIT,
GNOME_APP_CONFIGURABLE_ITEM_CUT,
/* 10 */
GNOME_APP_CONFIGURABLE_ITEM_COPY,
GNOME_APP_CONFIGURABLE_ITEM_PASTE,
GNOME_APP_CONFIGURABLE_ITEM_CLEAR,
GNOME_APP_CONFIGURABLE_ITEM_UNDO,
GNOME_APP_CONFIGURABLE_ITEM_REDO,
GNOME_APP_CONFIGURABLE_ITEM_FIND,
GNOME_APP_CONFIGURABLE_ITEM_FIND_AGAIN,
GNOME_APP_CONFIGURABLE_ITEM_REPLACE,
GNOME_APP_CONFIGURABLE_ITEM_PROPERTIES,
GNOME_APP_CONFIGURABLE_ITEM_PREFERENCES,
/* 20 */
GNOME_APP_CONFIGURABLE_ITEM_ABOUT,
GNOME_APP_CONFIGURABLE_ITEM_SELECT_ALL,
GNOME_APP_CONFIGURABLE_ITEM_NEW_WINDOW,
GNOME_APP_CONFIGURABLE_ITEM_CLOSE_WINDOW,
GNOME_APP_CONFIGURABLE_ITEM_NEW_GAME,
GNOME_APP_CONFIGURABLE_ITEM_PAUSE_GAME,
GNOME_APP_CONFIGURABLE_ITEM_RESTART_GAME,
GNOME_APP_CONFIGURABLE_ITEM_UNDO_MOVE,
GNOME_APP_CONFIGURABLE_ITEM_REDO_MOVE,
GNOME_APP_CONFIGURABLE_ITEM_HINT,
/* 30 */
GNOME_APP_CONFIGURABLE_ITEM_SCORES,
GNOME_APP_CONFIGURABLE_ITEM_END_GAME
} GnomeUIInfoConfigurableTypes; |
typedef enum {
GNOME_APP_PIXMAP_NONE, /* No pixmap specified */
GNOME_APP_PIXMAP_STOCK, /* Use a stock pixmap (GnomeStock) */
GNOME_APP_PIXMAP_DATA, /* Use a pixmap from inline xpm data */
GNOME_APP_PIXMAP_FILENAME /* Use a pixmap from the specified
filename */
} GnomeUIPixmapType; |
typedef struct {
GnomeUIInfoType type; /* Type of item */
gchar *label; /* String to use in the label */
gchar *hint; /* For toolbar items, the tooltip. For
menu items, the status bar message */
gpointer moreinfo; /* For an item, toggleitem, or
radioitem, this is a pointer to the
function to call when the item is
activated. For a subtree, a pointer
to another array of GnomeUIInfo
structures. For a radioitem lead
entry, a pointer to an array of
GnomeUIInfo structures for the radio
item group. For a help item,
specifies the help node to load
(i.e. the application's identifier)
or NULL for the main program's name.
For builder data, points to the
GnomeUIBuilderData structure for
the following items */
gpointer user_data; /* Data pointer to pass to callbacks */
gpointer unused_data; /* Reserved for future expansion,
should be NULL */
GnomeUIPixmapType pixmap_type; /* Type of pixmap for the item */
gpointer pixmap_info; /* Pointer to the pixmap information:
*
* For GNOME_APP_PIXMAP_STOCK, a
* pointer to the stock icon name.
*
* For GNOME_APP_PIXMAP_DATA, a
* pointer to the inline xpm data.
*
* For GNOME_APP_PIXMAP_FILENAME, a
* pointer to the filename string.
*/
guint accelerator_key; /* Accelerator key, or 0 for none */
GdkModifierType ac_mods; /* Mask of modifier keys for the
accelerator */
GtkWidget *widget; /* Filled in by gnome_app_create*, you
can use this to tweak the widgets
once they have been created */
} GnomeUIInfo; |
#define GNOMEUIINFO_ITEM(label, tooltip, callback, xpm_data) |
| label : | |
| tooltip : | |
| callback : | |
| xpm_data : |
#define GNOMEUIINFO_ITEM_STOCK(label, tooltip, callback, stock_id) |
| label : | |
| tooltip : | |
| callback : | |
| stock_id : |
#define GNOMEUIINFO_ITEM_NONE(label, tooltip, callback) |
| label : | |
| tooltip : | |
| callback : |
#define GNOMEUIINFO_ITEM_DATA(label, tooltip, callback, user_data, xpm_data) |
| label : | |
| tooltip : | |
| callback : | |
| user_data : | |
| xpm_data : |
#define GNOMEUIINFO_TOGGLEITEM(label, tooltip, callback, xpm_data) |
| label : | |
| tooltip : | |
| callback : | |
| xpm_data : |
#define GNOMEUIINFO_TOGGLEITEM_DATA(label, tooltip, callback, user_data, xpm_data) |
| label : | |
| tooltip : | |
| callback : | |
| user_data : | |
| xpm_data : |
#define GNOMEUIINFO_SUBTREE_STOCK(label, tree, stock_id) |
| label : | |
| tree : | |
| stock_id : |
#define GNOMEUIINFO_RADIOITEM(label, tooltip, callback, xpm_data) |
| label : | |
| tooltip : | |
| callback : | |
| xpm_data : |
#define GNOMEUIINFO_RADIOITEM_DATA(label, tooltip, callback, user_data, xpm_data) |
| label : | |
| tooltip : | |
| callback : | |
| user_data : | |
| xpm_data : |
#define GNOMEUIINFO_MENU_NEW_ITEM(label, tip, cb, data) |
| label : | |
| tip : | |
| cb : | |
| data : |
struct GnomeUIBuilderData {
GnomeUISignalConnectFunc connect_func; /* Function that connects to the item's signals */
gpointer data; /* User data pointer */
gboolean is_interp; /* Should use gtk_signal_connect_interp or normal gtk_signal_connect? */
GtkCallbackMarshal relay_func; /* Marshaller function for language bindings */
GtkDestroyNotify destroy_func; /* Destroy notification function for language bindings */
}; |
void (*GnomeUISignalConnectFunc) (GnomeUIInfo *uiinfo, |
| uiinfo : | |
| signal_name : | |
| uibdata : |
void gnome_app_fill_menu ( |
Fills the specified menu shell with items created from the specified info, inserting them from the item no. pos on. If the specified accelgroup is not NULL, then the menu's hotkeys are put into that accelgroup. If accel_group is non-NULL and insert_shortcuts is TRUE, then the shortcut keys (MOD1 + underlined letters) in the items' labels will be put into the accel group as well.
| menu_shell : | |
| uiinfo : | |
| accel_group : | |
| insert_shortcuts : | |
| pos : |
void gnome_app_fill_menu_custom ( |
Fills the specified menu shell with items created from the specified info, inserting them from item no. pos on and using the specified builder data -- this is intended for language bindings. If the specified accelgroup is not NULL, then the menu's hotkeys are put into that accelgroup. If accel_group is non-NULL and insert_shortcuts is TRUE, then the shortcut keys (MOD1 + underlined letters) in the items' labels will be put into the accel group as well (this is useful for toplevel menu bars in which you want MOD1-F to activate the "_File" menu, for example).
| menu_shell : | |
| uiinfo : | |
| uibdata : | |
| accel_group : | |
| insert_shortcuts : | |
| pos : |
void gnome_app_ui_configure_configurable
(GnomeUIInfo *uiinfo); |
Configure all user-configurable elements in the given UI info structure. This includes loading and setting previously-set options from GNOME config files.
| uiinfo : | Pointer to GNOME UI menu/toolbar info |
void gnome_app_create_menus (GnomeApp *app, GnomeUIInfo *uiinfo); |
Constructs a menu bar and attaches it to the specified application window.
| app : | Pointer to GNOME app object. |
| uiinfo : |
void gnome_app_create_menus_interp (GnomeApp *app, GnomeUIInfo *uiinfo, |
| app : | Pointer to GNOME app object. |
| uiinfo : | |
| relay_func : | |
| data : | |
| destroy_func : |
void gnome_app_create_menus_with_data
(GnomeApp *app,
GnomeUIInfo *uiinfo,
|
| app : | Pointer to GNOME app object. |
| uiinfo : | |
| user_data : |
void gnome_app_create_menus_custom (GnomeApp *app, GnomeUIInfo *uiinfo, GnomeUIBuilderData *uibdata); |
| app : | Pointer to GNOME app object. |
| uiinfo : | |
| uibdata : |
void gnome_app_fill_toolbar ( |
| toolbar : | |
| uiinfo : | |
| accel_group : |
void gnome_app_fill_toolbar_custom ( |
| toolbar : | |
| uiinfo : | |
| uibdata : | |
| accel_group : |
void gnome_app_create_toolbar (GnomeApp *app, GnomeUIInfo *uiinfo); |
Constructs a toolbar and attaches it to the specified application window.
| app : | Pointer to GNOME app object. |
| uiinfo : |
void gnome_app_create_toolbar_interp (GnomeApp *app, GnomeUIInfo *uiinfo, |
Constructs a toolbar and attaches it to the specified application window -- this version is intended for language bindings.
| app : | Pointer to GNOME app object. |
| uiinfo : | |
| relay_func : | |
| data : | |
| destroy_func : |
void gnome_app_create_toolbar_with_data
(GnomeApp *app,
GnomeUIInfo *uiinfo,
|
Constructs a toolbar, sets all the user data pointers to user_data, and attaches it to app.
| app : | Pointer to GNOME app object. |
| uiinfo : | |
| user_data : |
void gnome_app_create_toolbar_custom (GnomeApp *app, GnomeUIInfo *uiinfo, GnomeUIBuilderData *uibdata); |
Constructs a toolbar and attaches it to the app window, using uibdata builder data -- intended for language bindings.
| app : | Pointer to GNOME app object. |
| uiinfo : | |
| uibdata : |
|
finds menu item described by path starting in the GtkMenuShell top and returns its parent GtkMenuShell and the position after this item in pos: gtk_menu_shell_insert(p, w, pos) would then insert widget w in GtkMenuShell p right after the menu item described by path.
| parent : | Root menu shell widget containing menu items to be searched |
| path : | Specifies the target menu item by menu path |
| pos : | (output) returned item position |
| Returns : |
void gnome_app_remove_menus (GnomeApp *app, |
removes num items from the existing app's menu structure beginning with item described by path
| app : | Pointer to GNOME app object. |
| path : | |
| items : |
void gnome_app_remove_menu_range (GnomeApp *app, |
Same as the gnome_app_remove_menus, except it removes the specified number of items from the existing app's menu structure begining with item described by path, plus the number specified by start - very useful for adding and removing Recent document items in the File menu.
| app : | Pointer to GNOME app object. |
| path : | |
| start : | |
| items : |
void gnome_app_insert_menus_custom (GnomeApp *app, |
inserts menus described by uiinfo in existing app's menu structure right after the item described by path.
| app : | Pointer to GNOME app object. |
| path : | |
| menuinfo : | |
| uibdata : |
void gnome_app_insert_menus (GnomeApp *app, |
| app : | Pointer to GNOME app object. |
| path : | |
| menuinfo : |
void gnome_app_insert_menus_with_data
(GnomeApp *app,
|
| app : | Pointer to GNOME app object. |
| path : | |
| menuinfo : | |
| data : |
void gnome_app_insert_menus_interp (GnomeApp *app, |
| app : | Pointer to GNOME app object. |
| path : | |
| menuinfo : | |
| relay_func : | |
| data : | |
| destroy_func : |
void gnome_app_install_appbar_menu_hints
(GnomeAppBar *appbar,
GnomeUIInfo *uiinfo); |
Install menu hints for the given GNOME app bar object.
| appbar : | Pointer to GNOME app bar object. |
| uiinfo : | GNOME UI info for menu |
void gnome_app_install_statusbar_menu_hints
( |
Install menu hints for the given status bar.
| bar : | Pointer to Gtk+ status bar object |
| uiinfo : | Gnome UI info for the menu to be changed |
void gnome_app_install_menu_hints (GnomeApp *app, GnomeUIInfo *uinfo); |
Set menu hints for the GNOME app object's attached status bar.
| app : | Pointer to GNOME app object |
| uinfo : |