00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00025 #ifndef __FUNC_LIST_H
00026 #define __FUNC_LIST_H
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030
00031 #include <gtk/gtk.h>
00032
00033 #include "constants.h"
00034
00035
00036
00047 typedef struct __func_list_t {
00048 char *name;
00049 enum {
00050 FUNCTION,
00051 SEPARATOR,
00052 SUBMENU
00053 } type;
00054
00055 union {
00056 void (*func)(GtkMenuItem *, gpointer);
00057 GList *children;
00058 } data;
00059 } func_list_t;
00060
00061
00062
00072 void func_list_add_new_func (GList **list, const char *name, void (*func)(GtkMenuItem *, gpointer));
00073
00074
00075
00085 void func_list_add_new_submenu (GList **, const char *, GList *);
00086
00087
00088
00096 void func_list_add_new_separator (GList **);
00097
00098
00105 void func_list_t_free (func_list_t *);
00106
00107
00108
00110 struct __frame_t;
00123 GtkWidget *func_list_t_setup_submenu (func_list_t *, struct __frame_t *);
00124 #ifdef __cplusplus
00125 }
00126 #endif
00127 #endif