ignore the generated marshal source.

2002-11-06  Chris Toshok  <toshok@ximian.com>

	* .cvsignore: ignore the generated marshal source.

	* Makefile.am: add marshal stuff.

	* e-util-marshal.list: marshaller list.

	* e-search-bar.[ch]: gobjectify this.

svn path=/trunk/; revision=18627
This commit is contained in:
Chris Toshok
2002-11-07 04:52:05 +00:00
committed by Chris Toshok
parent daf38bc8b0
commit b59fb51176
6 changed files with 182 additions and 132 deletions

View File

@ -5,8 +5,10 @@ Makefile
Makefile.in
*.lo
*.la
e-util-marshal.c
e-util-marshal.h
test-title-bar
test-calendar
test-dateedit
test-dropdown-button
test-multi-config-dialog
test-multi-config-dialog

View File

@ -1,3 +1,13 @@
2002-11-06 Chris Toshok <toshok@ximian.com>
* .cvsignore: ignore the generated marshal source.
* Makefile.am: add marshal stuff.
* e-util-marshal.list: marshaller list.
* e-search-bar.[ch]: gobjectify this.
2002-11-04 Ettore Perazzoli <ettore@ximian.com>
* e-combo-button.c (impl_expose_event): Use

View File

@ -49,7 +49,22 @@ libemiscwidgets_a_SOURCES = \
e-multi-config-dialog.c \
e-search-bar.c \
e-title-bar.c \
e-url-entry.c
e-url-entry.c \
e-util-marshal.c
# GLib marshalling cruft
e-util-marshal.h: e-util-marshal.list
( @GLIB_GENMARSHAL@ --prefix=e_util_marshal e-util-marshal.list --header > e-util-marshal.tmp \
&& mv e-util-marshal.tmp e-util-marshal.h ) \
|| ( rm -f e-util-marshal.tmp && exit 1 )
e-util-marshal.c: e-util-marshal.h
( @GLIB_GENMARSHAL@ --prefix=e_util_marshal e-util-marshal.list --body > e-util-marshal.tmp \
&& mv e-util-marshal.tmp e-util-marshal.c ) \
|| ( rm -f e-util-marshal.tmp && exit 1 )
MARSHAL_GENERATED = e-util-marshal.c e-util-marshal.h
libemiscwidgets_a_LIBADD = $(top_builddir)/e-util/libeutil.la
@ -114,3 +129,7 @@ test_title_bar_LDADD = \
$(GNOME_FULL_LIBS)
BUILT_SOURCES = $(MARSHAL_GENERATED)
CLEANFILES = $(BUILT_SOURCES)
EXTRA_DIST = e-book-marshal.list

View File

@ -44,6 +44,7 @@
#include <string.h>
#include "e-search-bar.h"
#include "e-util-marshal.h"
enum {
@ -60,10 +61,10 @@ static GtkHBoxClass *parent_class = NULL;
/* The arguments we take */
enum {
ARG_0,
ARG_ITEM_ID,
ARG_SUBITEM_ID,
ARG_TEXT,
PROP_0,
PROP_ITEM_ID,
PROP_SUBITEM_ID,
PROP_TEXT,
};
@ -150,19 +151,18 @@ free_menu_items (ESearchBar *esb)
static void
emit_query_changed (ESearchBar *esb)
{
gtk_signal_emit (GTK_OBJECT (esb),
esb_signals [QUERY_CHANGED]);
g_signal_emit (esb, esb_signals [QUERY_CHANGED], 0);
}
static void
emit_search_activated (ESearchBar *esb)
{
if (esb->pending_activate) {
gtk_idle_remove (esb->pending_activate);
g_source_remove (esb->pending_activate);
esb->pending_activate = 0;
}
gtk_signal_emit (GTK_OBJECT (esb), esb_signals [SEARCH_ACTIVATED]);
g_signal_emit (esb, esb_signals [SEARCH_ACTIVATED], 0);
set_find_now_sensitive (esb, FALSE);
}
@ -170,9 +170,9 @@ emit_search_activated (ESearchBar *esb)
static void
emit_menu_activated (ESearchBar *esb, int item)
{
gtk_signal_emit (GTK_OBJECT (esb),
esb_signals [MENU_ACTIVATED],
item);
g_signal_emit (esb,
esb_signals [MENU_ACTIVATED], 0,
item);
}
@ -258,8 +258,8 @@ subitem_activated_cb (GtkWidget *widget, ESearchBar *esb)
{
gint id, subid;
id = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (widget), "EsbItemId"));
subid = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (widget), "EsbSubitemId"));
id = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "EsbItemId"));
subid = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "EsbSubitemId"));
esb->item_id = id;
esb->subitem_id = subid;
@ -311,11 +311,11 @@ activate_by_subitems (ESearchBar *esb, gint item_id, ESearchBarSubitem *subitems
if (esb->entry == NULL) {
esb->entry = gtk_entry_new();
gtk_widget_set_usize (esb->entry, 4, -1);
gtk_object_ref (GTK_OBJECT (esb->entry));
gtk_signal_connect (GTK_OBJECT (esb->entry), "changed",
GTK_SIGNAL_FUNC (entry_changed_cb), esb);
gtk_signal_connect (GTK_OBJECT (esb->entry), "activate",
GTK_SIGNAL_FUNC (entry_activated_cb), esb);
g_object_ref (esb->entry);
g_signal_connect (esb->entry, "changed",
G_CALLBACK (entry_changed_cb), esb);
g_signal_connect (esb->entry, "activate",
G_CALLBACK (entry_activated_cb), esb);
gtk_container_add (GTK_CONTAINER (esb->entry_box), esb->entry);
gtk_widget_show(esb->entry);
@ -349,7 +349,7 @@ activate_by_subitems (ESearchBar *esb, gint item_id, ESearchBarSubitem *subitems
if (esb->suboption == NULL) {
esb->suboption = gtk_option_menu_new ();
gtk_object_ref (GTK_OBJECT (esb->suboption));
g_object_ref (esb->suboption);
gtk_container_add (GTK_CONTAINER (esb->entry_box), esb->suboption);
gtk_widget_show (esb->suboption);
@ -384,15 +384,15 @@ activate_by_subitems (ESearchBar *esb, gint item_id, ESearchBarSubitem *subitems
gtk_widget_set_sensitive (menu_item, FALSE);
}
gtk_object_set_data (GTK_OBJECT (menu_item), "EsbItemId",
GINT_TO_POINTER (item_id));
gtk_object_set_data (GTK_OBJECT (menu_item), "EsbSubitemId",
GINT_TO_POINTER (subitems[i].id));
g_object_set_data (G_OBJECT (menu_item), "EsbItemId",
GINT_TO_POINTER (item_id));
g_object_set_data (G_OBJECT (menu_item), "EsbSubitemId",
GINT_TO_POINTER (subitems[i].id));
gtk_signal_connect (GTK_OBJECT (menu_item),
"activate",
GTK_SIGNAL_FUNC (subitem_activated_cb),
esb);
g_signal_connect (menu_item,
"activate",
G_CALLBACK (subitem_activated_cb),
esb);
gtk_widget_show (menu_item);
gtk_menu_append (GTK_MENU (menu), menu_item);
@ -412,9 +412,9 @@ option_activated_cb (GtkWidget *widget,
{
int id;
id = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (widget), "EsbChoiceId"));
id = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "EsbChoiceId"));
activate_by_subitems (esb, id, gtk_object_get_data (GTK_OBJECT (widget), "EsbChoiceSubitems"));
activate_by_subitems (esb, id, g_object_get_data (G_OBJECT (widget), "EsbChoiceSubitems"));
esb->item_id = id;
emit_query_changed (esb);
@ -597,7 +597,7 @@ option_item_destroy_cb (GtkObject *object, gpointer data)
g_assert (subitems != NULL);
free_subitems (subitems);
gtk_object_set_data (object, "EsbChoiceSubitems", NULL);
g_object_set_data (G_OBJECT (object), "EsbChoiceSubitems", NULL);
}
static void
@ -638,21 +638,21 @@ set_option (ESearchBar *esb, ESearchBarItem *items)
gtk_menu_append (GTK_MENU (menu), item);
gtk_object_set_data (GTK_OBJECT (item), "EsbChoiceId", GINT_TO_POINTER(items[i].id));
g_object_set_data (G_OBJECT (item), "EsbChoiceId", GINT_TO_POINTER(items[i].id));
if (items[i].subitems != NULL) {
subitems = copy_subitems (items[i].subitems);
gtk_object_set_data (GTK_OBJECT (item), "EsbChoiceSubitems", subitems);
gtk_signal_connect (GTK_OBJECT (item), "destroy",
GTK_SIGNAL_FUNC (option_item_destroy_cb), subitems);
g_object_set_data (G_OBJECT (item), "EsbChoiceSubitems", subitems);
g_signal_connect (item, "destroy",
G_CALLBACK (option_item_destroy_cb), subitems);
}
if (i == 0)
activate_by_subitems (esb, items[i].id, subitems);
gtk_signal_connect (GTK_OBJECT (item), "activate",
GTK_SIGNAL_FUNC (option_activated_cb),
esb);
g_signal_connect (item, "activate",
G_CALLBACK (option_activated_cb),
esb);
}
gtk_widget_show_all (menu);
@ -666,7 +666,7 @@ set_option (ESearchBar *esb, ESearchBarItem *items)
static GtkWidget *
add_button (ESearchBar *esb,
const char *text,
GtkSignalFunc callback)
GCallback callback)
{
GtkWidget *label;
GtkWidget *holder;
@ -686,7 +686,7 @@ add_button (ESearchBar *esb,
holder = put_in_spacer_widget (button);
gtk_widget_show (holder);
gtk_signal_connect (GTK_OBJECT (button), "clicked", callback, esb);
g_signal_connect (G_OBJECT (button), "clicked", callback, esb);
gtk_box_pack_end (GTK_BOX (esb), holder, FALSE, FALSE, 1);
@ -702,7 +702,7 @@ find_id (GtkWidget *menu, int idin, const char *type, GtkWidget **widget)
if (widget)
*widget = NULL;
while (l) {
id = GPOINTER_TO_INT (gtk_object_get_data (l->data, type));
id = GPOINTER_TO_INT (g_object_get_data (l->data, type));
if (id == idin) {
row = i;
if (widget)
@ -719,54 +719,55 @@ find_id (GtkWidget *menu, int idin, const char *type, GtkWidget **widget)
/* GtkObject methods. */
static void
impl_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)
impl_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
ESearchBar *esb = E_SEARCH_BAR (object);
switch (arg_id) {
case ARG_ITEM_ID:
GTK_VALUE_ENUM (*arg) = e_search_bar_get_item_id (esb);
switch (prop_id) {
case PROP_ITEM_ID:
g_value_set_int (value, e_search_bar_get_item_id (esb));
break;
case ARG_SUBITEM_ID:
GTK_VALUE_ENUM (*arg) = e_search_bar_get_subitem_id (esb);
case PROP_SUBITEM_ID:
g_value_set_int (value, e_search_bar_get_subitem_id (esb));
break;
case ARG_TEXT:
GTK_VALUE_STRING (*arg) = e_search_bar_get_text (esb);
case PROP_TEXT:
g_value_set_string (value, e_search_bar_get_text (esb));
break;
default:
arg->type = GTK_TYPE_INVALID;
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
impl_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
impl_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
ESearchBar *esb = E_SEARCH_BAR(object);
switch (arg_id) {
case ARG_ITEM_ID:
e_search_bar_set_item_id (esb, GTK_VALUE_ENUM (*arg));
switch (prop_id) {
case PROP_ITEM_ID:
e_search_bar_set_item_id (esb, g_value_get_int (value));
break;
case ARG_SUBITEM_ID:
e_search_bar_set_subitem_id (esb, GTK_VALUE_ENUM (*arg));
case PROP_SUBITEM_ID:
e_search_bar_set_subitem_id (esb, g_value_get_int (value));
break;
case ARG_TEXT:
e_search_bar_set_text (esb, GTK_VALUE_STRING (*arg));
case PROP_TEXT:
e_search_bar_set_text (esb, g_value_get_string (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
impl_destroy (GtkObject *object)
impl_dispose (GObject *object)
{
ESearchBar *esb = E_SEARCH_BAR (object);
@ -781,68 +782,85 @@ impl_destroy (GtkObject *object)
esb->ui_component = NULL;
}
if (esb->entry)
gtk_object_unref (GTK_OBJECT (esb->entry));
g_object_unref (esb->entry);
if (esb->suboption)
gtk_object_unref (GTK_OBJECT (esb->suboption));
g_object_unref (esb->suboption);
if (esb->pending_activate) {
gtk_idle_remove (esb->pending_activate);
g_source_remove (esb->pending_activate);
esb->pending_activate = 0;
}
free_menu_items (esb);
if (GTK_OBJECT_CLASS (parent_class)->destroy)
GTK_OBJECT_CLASS (parent_class)->destroy (object);
if (G_OBJECT_CLASS (parent_class)->dispose)
G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
class_init (ESearchBarClass *klass)
{
GtkObjectClass *object_class;
GObjectClass *object_class;
object_class = GTK_OBJECT_CLASS (klass);
object_class = G_OBJECT_CLASS (klass);
parent_class = gtk_type_class (gtk_hbox_get_type ());
parent_class = g_type_class_ref (gtk_hbox_get_type ());
object_class->set_arg = impl_set_arg;
object_class->get_arg = impl_get_arg;
object_class->destroy = impl_destroy;
object_class->set_property = impl_set_property;
object_class->get_property = impl_get_property;
object_class->dispose = impl_dispose;
klass->set_menu = set_menu;
klass->set_option = set_option;
gtk_object_add_arg_type ("ESearchBar::item_id", GTK_TYPE_ENUM,
GTK_ARG_READWRITE, ARG_ITEM_ID);
gtk_object_add_arg_type ("ESearchBar::subitem_id", GTK_TYPE_ENUM,
GTK_ARG_READWRITE, ARG_SUBITEM_ID);
gtk_object_add_arg_type ("ESearchBar::text", GTK_TYPE_STRING,
GTK_ARG_READWRITE, ARG_TEXT);
g_object_class_install_property (object_class, PROP_ITEM_ID,
g_param_spec_int ("item_id",
_("Item ID"),
/*_( */"XXX blurb" /*)*/,
0, 0, 0,
G_PARAM_READWRITE | G_PARAM_LAX_VALIDATION));
g_object_class_install_property (object_class, PROP_SUBITEM_ID,
g_param_spec_int ("subitem_id",
_("Subitem ID"),
/*_( */"XXX blurb" /*)*/,
0, 0, 0,
G_PARAM_READWRITE | G_PARAM_LAX_VALIDATION));
g_object_class_install_property (object_class, PROP_TEXT,
g_param_spec_string ("text",
_("Text"),
/*_( */"XXX blurb" /*)*/,
NULL,
G_PARAM_READWRITE));
esb_signals [QUERY_CHANGED] =
gtk_signal_new ("query_changed",
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ESearchBarClass, query_changed),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
g_signal_new ("query_changed",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ESearchBarClass, query_changed),
NULL, NULL,
e_util_marshal_NONE__NONE,
G_TYPE_NONE, 0);
esb_signals [MENU_ACTIVATED] =
gtk_signal_new ("menu_activated",
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ESearchBarClass, menu_activated),
gtk_marshal_NONE__INT,
GTK_TYPE_NONE, 1, GTK_TYPE_INT);
g_signal_new ("menu_activated",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ESearchBarClass, menu_activated),
NULL, NULL,
e_util_marshal_NONE__INT,
G_TYPE_NONE, 1, G_TYPE_INT);
esb_signals [SEARCH_ACTIVATED] =
gtk_signal_new ("search_activated",
GTK_RUN_LAST,
GTK_CLASS_TYPE (object_class),
GTK_SIGNAL_OFFSET (ESearchBarClass, search_activated),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
g_signal_new ("search_activated",
G_OBJECT_CLASS_TYPE (object_class),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ESearchBarClass, search_activated),
NULL, NULL,
e_util_marshal_NONE__NONE,
G_TYPE_NONE, 0);
}
static void
@ -891,9 +909,9 @@ e_search_bar_construct (ESearchBar *search_bar,
gtk_box_set_spacing (GTK_BOX (search_bar), 1);
search_bar->clear_button = add_button (search_bar, _("Clear"),
GTK_SIGNAL_FUNC (clear_button_clicked_cb));
G_CALLBACK (clear_button_clicked_cb));
search_bar->activate_button = add_button (search_bar, _("Find Now"),
GTK_SIGNAL_FUNC (activate_button_clicked_cb));
G_CALLBACK (activate_button_clicked_cb));
e_search_bar_set_menu (search_bar, menu_items);
@ -914,7 +932,7 @@ e_search_bar_construct (ESearchBar *search_bar,
if (search_bar->subitem_id >= 0) {
gtk_widget_set_sensitive (search_bar->activate_button, FALSE);
search_bar->pending_activate = gtk_idle_add (idle_activate_hack, search_bar);
search_bar->pending_activate = g_idle_add (idle_activate_hack, search_bar);
}
}
@ -969,19 +987,22 @@ e_search_bar_set_suboption (ESearchBar *search_bar, int option_id, ESearchBarSub
g_return_if_fail (row != -1);
g_assert (item != NULL);
old_subitems = gtk_object_get_data (GTK_OBJECT (item), "EsbChoiceSubitems");
old_subitems = g_object_get_data (G_OBJECT (item), "EsbChoiceSubitems");
if (old_subitems) {
/* This was connected in set_option() */
gtk_signal_disconnect_by_data (GTK_OBJECT (item), old_subitems);
g_signal_handlers_disconnect_matched (item,
G_SIGNAL_MATCH_DATA,
0, 0, NULL, NULL,
old_subitems);
free_subitems (old_subitems);
gtk_object_set_data (GTK_OBJECT (item), "EsbChoiceSubitems", NULL);
g_object_set_data (G_OBJECT (item), "EsbChoiceSubitems", NULL);
}
if (subitems) {
new_subitems = copy_subitems (subitems);
gtk_object_set_data (GTK_OBJECT (item), "EsbChoiceSubitems", new_subitems);
gtk_signal_connect (GTK_OBJECT (item), "destroy",
GTK_SIGNAL_FUNC (option_item_destroy_cb), new_subitems);
g_object_set_data (G_OBJECT (item), "EsbChoiceSubitems", new_subitems);
g_signal_connect (item, "destroy",
G_CALLBACK (option_item_destroy_cb), new_subitems);
} else
new_subitems = NULL;
@ -1040,26 +1061,27 @@ e_search_bar_set_menu_sensitive (ESearchBar *search_bar, int id, gboolean state)
g_free (path);
}
GtkType
GType
e_search_bar_get_type (void)
{
static GtkType type = 0;
static GType type = 0;
if (!type) {
static const GtkTypeInfo info = {
"ESearchBar",
sizeof (ESearchBar),
static const GTypeInfo info = {
sizeof (ESearchBarClass),
(GtkClassInitFunc) class_init,
(GtkObjectInitFunc) init,
/* reserved_1 */ NULL,
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (ESearchBar),
0, /* n_preallocs */
(GInstanceInitFunc) init,
};
type = gtk_type_unique (gtk_hbox_get_type (), &info);
type = g_type_register_static (gtk_hbox_get_type (), "ESearchBar", &info, 0);
}
return type;
}
@ -1159,7 +1181,7 @@ e_search_bar_set_ids (ESearchBar *search_bar, int item_id, int subitem_id)
g_return_if_fail (item_row != -1);
g_assert (item_widget != NULL);
subitems = gtk_object_get_data (GTK_OBJECT (item_widget), "EsbChoiceSubitems");
subitems = g_object_get_data (G_OBJECT (item_widget), "EsbChoiceSubitems");
g_return_if_fail (subitems != NULL);
search_bar->item_id = item_id;

View File

@ -24,10 +24,7 @@
#include <bonobo/bonobo-ui-component.h>
#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */
G_BEGIN_DECLS
/* ESearchBar - A card displaying information about a contact.
*
@ -41,10 +38,10 @@ extern "C" {
*/
#define E_SEARCH_BAR_TYPE (e_search_bar_get_type ())
#define E_SEARCH_BAR(obj) (GTK_CHECK_CAST ((obj), E_SEARCH_BAR_TYPE, ESearchBar))
#define E_SEARCH_BAR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_SEARCH_BAR_TYPE, ESearchBarClass))
#define E_IS_SEARCH_BAR(obj) (GTK_CHECK_TYPE ((obj), E_SEARCH_BAR_TYPE))
#define E_IS_SEARCH_BAR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_SEARCH_BAR_TYPE))
#define E_SEARCH_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_SEARCH_BAR_TYPE, ESearchBar))
#define E_SEARCH_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_SEARCH_BAR_TYPE, ESearchBarClass))
#define E_IS_SEARCH_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_SEARCH_BAR_TYPE))
#define E_IS_SEARCH_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_SEARCH_BAR_TYPE))
typedef struct {
char *text;
@ -107,7 +104,7 @@ enum {
};
GtkType e_search_bar_get_type (void);
GType e_search_bar_get_type (void);
void e_search_bar_construct (ESearchBar *search_bar,
ESearchBarItem *menu_items,
ESearchBarItem *option_items);
@ -148,9 +145,7 @@ void e_search_bar_set_text (ESearchBar *search_bar,
const char *text);
char *e_search_bar_get_text (ESearchBar *search_bar);
#ifdef __cplusplus
}
#endif /* __cplusplus */
G_END_DECLS
#endif /* __E_SEARCH_BAR_H__ */

View File

@ -0,0 +1,2 @@
NONE:NONE
NONE:INT