further additions to fit the gimp's code. additions to the dumping code to
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org> * gtk/gtkitemfactory.h: * gtk/gtkitemfactory.c: further additions to fit the gimp's code. additions to the dumping code to feature GtkPatternSpec. even found a bug to fix in the original code ;)
This commit is contained in:
parent
e47f60d702
commit
50a9ba1f26
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -3,9 +3,15 @@
|
||||
* gdk/gdk.h (gdk_color_copy, gdk_color_free): New prototypes.
|
||||
* gdk/gdk.c (gdk_color_copy, gdk_color_free): New functions.
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
Sun Jun 7 10:53:02 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.h:
|
||||
* gtk/gtkitemfactory.c: further additions to fit the gimp's code.
|
||||
additions to the dumping code to feature GtkPatternSpec.
|
||||
even found a bug to fix in the original code ;)
|
||||
|
||||
Sun Jun 7 09:36:04 1998 Tim Janik <timj@gtk.org>
|
||||
|
||||
* gtk/gtkitemfactory.c: support different types of callbacks, to
|
||||
maintain existing code.
|
||||
|
||||
|
@ -28,15 +28,16 @@
|
||||
#include "gtk/gtkradiomenuitem.h"
|
||||
#include "gtk/gtkcheckmenuitem.h"
|
||||
#include "gtk/gtkaccellabel.h"
|
||||
#include "gdk/gdkprivate.h" /* for gdk_progname */
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
|
||||
/* --- defines --- */
|
||||
#define PARENT_DELIMITER ('/')
|
||||
#define ITEM_FACTORY_STRING ((gchar*) item_factory_string)
|
||||
#define ITEM_BLOCK_SIZE (128)
|
||||
|
||||
@ -44,6 +45,7 @@
|
||||
/* --- structures --- */
|
||||
typedef struct _GtkIFCBData GtkIFCBData;
|
||||
typedef struct _GtkIFActionLink GtkIFActionLink;
|
||||
typedef struct _GtkIFDumpData GtkIFDumpData;
|
||||
struct _GtkIFCBData
|
||||
{
|
||||
GtkItemFactoryCallback func;
|
||||
@ -56,6 +58,13 @@ struct _GtkIFActionLink
|
||||
GtkWidget *widget;
|
||||
guint callback_action;
|
||||
};
|
||||
struct _GtkIFDumpData
|
||||
{
|
||||
GtkPrintFunc print_func;
|
||||
gpointer func_data;
|
||||
guint modified_only : 1;
|
||||
GtkPatternSpec *pspec;
|
||||
};
|
||||
|
||||
|
||||
/* --- prototypes --- */
|
||||
@ -227,7 +236,7 @@ gtk_item_factory_new (GtkType container_type,
|
||||
|
||||
g_return_val_if_fail (path != NULL, NULL);
|
||||
|
||||
ifactory = gtk_type_new (gtk_item_factory_get_type ());
|
||||
ifactory = gtk_type_new (GTK_TYPE_ITEM_FACTORY);
|
||||
gtk_item_factory_construct (ifactory, container_type, path, accel_group);
|
||||
|
||||
return ifactory;
|
||||
@ -405,6 +414,7 @@ gtk_item_factory_add_item (GtkItemFactory *ifactory,
|
||||
gchar *fpath;
|
||||
|
||||
g_return_if_fail (widget != NULL);
|
||||
g_return_if_fail (item_type != NULL);
|
||||
|
||||
class = GTK_ITEM_FACTORY_CLASS (GTK_OBJECT (ifactory)->klass);
|
||||
|
||||
@ -579,6 +589,39 @@ gtk_item_factory_construct (GtkItemFactory *ifactory,
|
||||
ifactory->widget);
|
||||
}
|
||||
|
||||
GtkItemFactory*
|
||||
gtk_item_factory_from_path (const gchar *path)
|
||||
{
|
||||
GtkItemFactoryClass *class;
|
||||
GtkItemFactoryItem *item;
|
||||
gchar *fname;
|
||||
guint i;
|
||||
|
||||
g_return_val_if_fail (path != NULL, NULL);
|
||||
g_return_val_if_fail (path[0] == '<', NULL);
|
||||
|
||||
class = gtk_type_class (GTK_TYPE_ITEM_FACTORY);
|
||||
|
||||
i = 0;
|
||||
while (path[i] && path[i] != '>')
|
||||
i++;
|
||||
if (path[i] != '>')
|
||||
{
|
||||
g_warning ("gtk_item_factory_from_path(): invalid factory path \"%s\"",
|
||||
path);
|
||||
return NULL;
|
||||
}
|
||||
fname = g_new (gchar, i + 2);
|
||||
g_memmove (fname, path, i + 1);
|
||||
fname[i + 1] = 0;
|
||||
|
||||
item = g_hash_table_lookup (class->item_ht, fname);
|
||||
if (item && item->widgets)
|
||||
return gtk_item_factory_from_widget (item->widgets->data);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_item_factory_destroy (GtkObject *object)
|
||||
{
|
||||
@ -647,22 +690,13 @@ gtk_item_factory_path_from_widget (GtkWidget *widget)
|
||||
return gtk_object_get_data_by_id (GTK_OBJECT (widget), key_id_item_factory_path);
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkPrintFunc print_func;
|
||||
gpointer func_data;
|
||||
guint modified_only : 1;
|
||||
guint path_length;
|
||||
const gchar *path;
|
||||
} DumpLimiterData;
|
||||
|
||||
static void
|
||||
gtk_item_factory_foreach (gpointer hash_key,
|
||||
gpointer value,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkItemFactoryItem *item;
|
||||
DumpLimiterData *data;
|
||||
GtkIFDumpData *data;
|
||||
gchar *string;
|
||||
gchar *name;
|
||||
gchar comment_prefix[2] = "\000\000";
|
||||
@ -670,8 +704,7 @@ gtk_item_factory_foreach (gpointer hash_key,
|
||||
item = value;
|
||||
data = user_data;
|
||||
|
||||
if ((data->path && strncmp (item->path, data->path, data->path_length)) ||
|
||||
(data->modified_only && !item->modified))
|
||||
if (data->pspec && !gtk_pattern_match_string (data->pspec, item->path))
|
||||
return;
|
||||
|
||||
comment_prefix[0] = gtk_item_factory_class->cpair_comment_single[0];
|
||||
@ -692,12 +725,12 @@ gtk_item_factory_foreach (gpointer hash_key,
|
||||
}
|
||||
|
||||
void
|
||||
gtk_item_factory_dump_rc (const gchar *ifactory_path,
|
||||
gboolean modified_only,
|
||||
GtkPrintFunc print_func,
|
||||
gpointer func_data)
|
||||
gtk_item_factory_dump_items (GtkPatternSpec *path_pspec,
|
||||
gboolean modified_only,
|
||||
GtkPrintFunc print_func,
|
||||
gpointer func_data)
|
||||
{
|
||||
DumpLimiterData data;
|
||||
GtkIFDumpData data;
|
||||
|
||||
g_return_if_fail (print_func != NULL);
|
||||
|
||||
@ -707,12 +740,52 @@ gtk_item_factory_dump_rc (const gchar *ifactory_path,
|
||||
data.print_func = print_func;
|
||||
data.func_data = func_data;
|
||||
data.modified_only = (modified_only != FALSE);
|
||||
data.path_length = ifactory_path ? strlen (ifactory_path) : 0;
|
||||
data.path = ifactory_path;
|
||||
data.pspec = path_pspec;
|
||||
|
||||
g_hash_table_foreach (gtk_item_factory_class->item_ht, gtk_item_factory_foreach, &data);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_item_factory_print_func (gpointer FILE_pointer,
|
||||
gchar *string)
|
||||
{
|
||||
FILE *f_out = FILE_pointer;
|
||||
|
||||
g_return_if_fail (FILE_pointer != NULL);
|
||||
g_return_if_fail (string != NULL);
|
||||
|
||||
fputs (string, f_out);
|
||||
fputc ('\n', f_out);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_item_factory_dump_rc (const gchar *file_name,
|
||||
GtkPatternSpec *path_pspec,
|
||||
gboolean modified_only)
|
||||
{
|
||||
FILE *f_out;
|
||||
|
||||
g_return_if_fail (file_name != NULL);
|
||||
|
||||
f_out = fopen (file_name, "w");
|
||||
if (!f_out)
|
||||
return;
|
||||
|
||||
fputs ("; ", f_out);
|
||||
if (gdk_progname)
|
||||
fputs (gdk_progname, f_out);
|
||||
fputs (" GtkItemFactory rc-file -*- scheme -*-\n", f_out);
|
||||
fputs ("; this file is an automated menu-path dump\n", f_out);
|
||||
fputs (";\n", f_out);
|
||||
|
||||
gtk_item_factory_dump_items (path_pspec,
|
||||
modified_only,
|
||||
gtk_item_factory_print_func,
|
||||
f_out);
|
||||
|
||||
fclose (f_out);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_item_factory_create_items (GtkItemFactory *ifactory,
|
||||
guint n_entries,
|
||||
@ -750,7 +823,6 @@ gtk_item_factory_get_widget (GtkItemFactory *ifactory,
|
||||
{
|
||||
GtkItemFactoryClass *class;
|
||||
GtkItemFactoryItem *item;
|
||||
gchar *fpath;
|
||||
|
||||
g_return_val_if_fail (ifactory != NULL, NULL);
|
||||
g_return_val_if_fail (GTK_IS_ITEM_FACTORY (ifactory), NULL);
|
||||
@ -758,9 +830,16 @@ gtk_item_factory_get_widget (GtkItemFactory *ifactory,
|
||||
|
||||
class = GTK_ITEM_FACTORY_CLASS (GTK_OBJECT (ifactory)->klass);
|
||||
|
||||
fpath = g_strconcat (ifactory->path, path, NULL);
|
||||
item = g_hash_table_lookup (class->item_ht, fpath);
|
||||
g_free (fpath);
|
||||
if (path[0] == '<')
|
||||
item = g_hash_table_lookup (class->item_ht, (gpointer) path);
|
||||
else
|
||||
{
|
||||
gchar *fpath;
|
||||
|
||||
fpath = g_strconcat (ifactory->path, path, NULL);
|
||||
item = g_hash_table_lookup (class->item_ht, fpath);
|
||||
g_free (fpath);
|
||||
}
|
||||
|
||||
if (item)
|
||||
{
|
||||
@ -811,19 +890,26 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory,
|
||||
gchar *p;
|
||||
guint type_id;
|
||||
GtkType type;
|
||||
gchar *item_type_path;
|
||||
|
||||
g_return_if_fail (ifactory != NULL);
|
||||
g_return_if_fail (GTK_IS_ITEM_FACTORY (ifactory));
|
||||
g_return_if_fail (entry != NULL);
|
||||
g_return_if_fail (entry->path != NULL);
|
||||
g_return_if_fail (entry->path[0] == PARENT_DELIMITER);
|
||||
g_return_if_fail (entry->path[0] == '/');
|
||||
g_return_if_fail (callback_type >= 1 && callback_type <= 2);
|
||||
|
||||
if (!entry->item_type ||
|
||||
entry->item_type == 0)
|
||||
type_id = key_id_type_item;
|
||||
entry->item_type[0] == 0)
|
||||
{
|
||||
item_type_path = (gpointer) key_type_item;
|
||||
type_id = key_id_type_item;
|
||||
}
|
||||
else
|
||||
type_id = gtk_object_data_try_key (entry->item_type);
|
||||
{
|
||||
item_type_path = entry->item_type;
|
||||
type_id = gtk_object_data_try_key (item_type_path);
|
||||
}
|
||||
|
||||
radio_group = NULL;
|
||||
if (type_id == key_id_type_item)
|
||||
@ -846,7 +932,7 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory,
|
||||
{
|
||||
GtkWidget *radio_link;
|
||||
|
||||
radio_link = gtk_item_factory_get_widget (ifactory, entry->item_type);
|
||||
radio_link = gtk_item_factory_get_widget (ifactory, item_type_path);
|
||||
if (radio_link && GTK_IS_RADIO_MENU_ITEM (radio_link))
|
||||
{
|
||||
type = gtk_radio_menu_item_get_type ();
|
||||
@ -856,13 +942,13 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory,
|
||||
{
|
||||
g_warning ("GtkItemFactory: entry path `%s' has invalid type `%s'",
|
||||
entry->path,
|
||||
entry->item_type);
|
||||
item_type_path);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
parent_path = g_strdup (entry->path);
|
||||
p = strrchr (parent_path, PARENT_DELIMITER);
|
||||
p = strrchr (parent_path, '/');
|
||||
if (!p)
|
||||
{
|
||||
g_warning ("GtkItemFactory: invalid entry path `%s'", entry->path);
|
||||
@ -889,7 +975,7 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory,
|
||||
|
||||
g_return_if_fail (parent != NULL);
|
||||
|
||||
p = strrchr (entry->path, PARENT_DELIMITER);
|
||||
p = strrchr (entry->path, '/');
|
||||
p++;
|
||||
|
||||
widget = gtk_widget_new (type,
|
||||
@ -934,27 +1020,81 @@ gtk_item_factory_create_item (GtkItemFactory *ifactory,
|
||||
entry->path, entry->accelerator,
|
||||
entry->callback, entry->callback_action, callback_data,
|
||||
callback_type,
|
||||
entry->item_type,
|
||||
item_type_path,
|
||||
widget);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_item_factory_path_delete (const gchar *ifactory_path,
|
||||
const gchar *path)
|
||||
gtk_item_factory_create_menu_entries (guint n_entries,
|
||||
GtkMenuEntry *entries)
|
||||
{
|
||||
static GtkPatternSpec pspec = { 42, 0 };
|
||||
guint i;
|
||||
|
||||
if (!n_entries)
|
||||
return;
|
||||
g_return_if_fail (entries != NULL);
|
||||
|
||||
if (pspec.pattern_length == 0)
|
||||
gtk_pattern_spec_init (&pspec, "*<separator>*");
|
||||
|
||||
for (i = 0; i < n_entries; i++)
|
||||
{
|
||||
GtkItemFactory *ifactory;
|
||||
GtkItemFactoryEntry entry;
|
||||
gchar *path;
|
||||
|
||||
path = entries[i].path;
|
||||
ifactory = gtk_item_factory_from_path (path);
|
||||
if (!ifactory)
|
||||
{
|
||||
g_warning ("gtk_item_factory_create_menu_entries(): "
|
||||
"entry[%u] refers to unknown item factory: \"%s\"",
|
||||
i, entries[i].path);
|
||||
continue;
|
||||
}
|
||||
|
||||
while (*path != '>')
|
||||
path++;
|
||||
path++;
|
||||
|
||||
entry.path = path;
|
||||
entry.accelerator = entries[i].accelerator;
|
||||
entry.callback = entries[i].callback;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = (gtk_pattern_match_string (&pspec, path) ?
|
||||
(gpointer) key_type_separator_item :
|
||||
NULL);
|
||||
|
||||
gtk_item_factory_create_item (ifactory, &entry, entries[i].callback_data, 2);
|
||||
entries[i].widget = gtk_item_factory_get_widget (ifactory, entries[i].path);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gtk_item_factories_path_delete (const gchar *ifactory_path,
|
||||
const gchar *path)
|
||||
{
|
||||
GtkItemFactoryClass *class;
|
||||
GtkItemFactoryItem *item;
|
||||
gchar *fpath;
|
||||
|
||||
g_return_if_fail (ifactory_path != NULL);
|
||||
g_return_if_fail (path != NULL);
|
||||
|
||||
class = gtk_type_class (GTK_TYPE_ITEM_FACTORY);
|
||||
|
||||
fpath = g_strconcat (ifactory_path, path, NULL);
|
||||
item = g_hash_table_lookup (class->item_ht, fpath);
|
||||
g_free (fpath);
|
||||
if (path[0] == '<')
|
||||
item = g_hash_table_lookup (class->item_ht, (gpointer) path);
|
||||
else
|
||||
{
|
||||
gchar *fpath;
|
||||
|
||||
g_return_if_fail (ifactory_path != NULL);
|
||||
|
||||
fpath = g_strconcat (ifactory_path, path, NULL);
|
||||
item = g_hash_table_lookup (class->item_ht, fpath);
|
||||
g_free (fpath);
|
||||
}
|
||||
|
||||
if (item)
|
||||
{
|
||||
GSList *widget_list;
|
||||
|
@ -24,6 +24,9 @@
|
||||
|
||||
|
||||
#include <gtk/gtkwidget.h>
|
||||
#include <gtk/gtkmenufactory.h> /* for GtkMenuEntry */
|
||||
#include <gtk/gtkbindings.h> /* for GtkPatternSpec */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -136,13 +139,19 @@ GtkWidget* gtk_item_factory_get_widget (GtkItemFactory *ifactory,
|
||||
GtkWidget* gtk_item_factory_get_widget_by_action (GtkItemFactory *ifactory,
|
||||
guint action);
|
||||
|
||||
/* If `ifactory_path' is passed as `NULL', this function will iterate over
|
||||
* all hash entries.
|
||||
/* If `path_pspec' is passed as `NULL', this function will iterate over
|
||||
* all hash entries. otherwise only those entries will be dumped for which
|
||||
* the pattern matches, e.g. "<Image>*...".
|
||||
*/
|
||||
void gtk_item_factory_dump_rc (const gchar *ifactory_path,
|
||||
void gtk_item_factory_dump_items (GtkPatternSpec *path_pspec,
|
||||
gboolean modified_only,
|
||||
GtkPrintFunc print_func,
|
||||
gpointer func_data);
|
||||
void gtk_item_factory_dump_rc (const gchar *file_name,
|
||||
GtkPatternSpec *path_pspec,
|
||||
gboolean modified_only);
|
||||
void gtk_item_factory_print_func (gpointer FILE_pointer,
|
||||
gchar *string);
|
||||
void gtk_item_factory_create_item (GtkItemFactory *ifactory,
|
||||
GtkItemFactoryEntry *entry,
|
||||
gpointer callback_data,
|
||||
@ -156,8 +165,6 @@ void gtk_item_factory_create_items_ac(GtkItemFactory *ifactory,
|
||||
GtkItemFactoryEntry *entries,
|
||||
gpointer callback_data,
|
||||
guint callback_type);
|
||||
void gtk_item_factory_path_delete (const gchar *ifactory_path,
|
||||
const gchar *path);
|
||||
void gtk_item_factory_delete_item (GtkItemFactory *ifactory,
|
||||
const gchar *path);
|
||||
void gtk_item_factory_delete_entry (GtkItemFactory *ifactory,
|
||||
@ -179,8 +186,15 @@ void gtk_item_factory_popup_with_data(GtkItemFactory *ifactory,
|
||||
guint32 time);
|
||||
gpointer gtk_item_factory_popup_data (GtkItemFactory *ifactory);
|
||||
gpointer gtk_item_factory_popup_data_from_widget (GtkWidget *widget);
|
||||
|
||||
|
||||
|
||||
/* Compatibility functions for ol GtkMenuFactory code
|
||||
*/
|
||||
GtkItemFactory* gtk_item_factory_from_path (const gchar *path);
|
||||
void gtk_item_factory_create_menu_entries (guint n_entries,
|
||||
GtkMenuEntry *entries);
|
||||
void gtk_item_factories_path_delete (const gchar *ifactory_path,
|
||||
const gchar *path);
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -38,10 +38,10 @@ static gint gtk_menu_bar_expose (GtkWidget *widget,
|
||||
GdkEventExpose *event);
|
||||
|
||||
|
||||
guint
|
||||
GtkType
|
||||
gtk_menu_bar_get_type (void)
|
||||
{
|
||||
static guint menu_bar_type = 0;
|
||||
static GtkType menu_bar_type = 0;
|
||||
|
||||
if (!menu_bar_type)
|
||||
{
|
||||
|
@ -26,12 +26,14 @@
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#pragma }
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
#define GTK_MENU_BAR(obj) GTK_CHECK_CAST (obj, gtk_menu_bar_get_type (), GtkMenuBar)
|
||||
#define GTK_MENU_BAR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_menu_bar_get_type (), GtkMenuBarClass)
|
||||
#define GTK_IS_MENU_BAR(obj) GTK_CHECK_TYPE (obj, gtk_menu_bar_get_type ())
|
||||
#define GTK_TYPE_MENU_BAR (gtk_menu_bar_get_type ())
|
||||
#define GTK_MENU_BAR(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_MENU_BAR, GtkMenuBar))
|
||||
#define GTK_MENU_BAR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_BAR, GtkMenuBarClass))
|
||||
#define GTK_IS_MENU_BAR(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_MENU_BAR))
|
||||
#define GTK_IS_MENU_BAR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_BAR))
|
||||
|
||||
|
||||
typedef struct _GtkMenuBar GtkMenuBar;
|
||||
@ -48,7 +50,7 @@ struct _GtkMenuBarClass
|
||||
};
|
||||
|
||||
|
||||
guint gtk_menu_bar_get_type (void);
|
||||
GtkType gtk_menu_bar_get_type (void);
|
||||
GtkWidget* gtk_menu_bar_new (void);
|
||||
void gtk_menu_bar_append (GtkMenuBar *menu_bar,
|
||||
GtkWidget *child);
|
||||
|
Loading…
Reference in New Issue
Block a user