view finch/libgnt/gntmenuitem.c @ 17153:8504e859c782

Remove the "GtkTreeView Indent Expanders" boolean preference, because the boolean preferences were handled in a somewhat confusing manner and this preference didn't do what it was put into the plugin to fix anymore. (That is the buddy list no longer uses the treeview expanders so this doesn't save any space in the buddy list window anymore.)
author Etan Reisner <pidgin@unreliablesource.net>
date Sat, 19 May 2007 02:41:10 +0000
parents f00f2e283ffb
children 8410511f4dbb
line wrap: on
line source

#include "gntmenu.h"
#include "gntmenuitem.h"

static GObjectClass *parent_class = NULL;

static void
gnt_menuitem_destroy(GObject *obj)
{
	GntMenuItem *item = GNT_MENU_ITEM(obj);
	g_free(item->text);
	item->text = NULL;
	if (item->submenu)
		gnt_widget_destroy(GNT_WIDGET(item->submenu));
	parent_class->dispose(obj);
}

static void
gnt_menuitem_class_init(GntMenuItemClass *klass)
{
	GObjectClass *obj_class = G_OBJECT_CLASS(klass);
	parent_class = g_type_class_peek_parent(klass);

	obj_class->dispose = gnt_menuitem_destroy;
}

static void
gnt_menuitem_init(GTypeInstance *instance, gpointer class)
{
}

/******************************************************************************
 * GntMenuItem API
 *****************************************************************************/
GType
gnt_menuitem_get_gtype(void)
{
	static GType type = 0;

	if(type == 0)
	{
		static const GTypeInfo info = {
			sizeof(GntMenuItemClass),
			NULL,					/* base_init		*/
			NULL,					/* base_finalize	*/
			(GClassInitFunc)gnt_menuitem_class_init,
			NULL,					/* class_finalize	*/
			NULL,					/* class_data		*/
			sizeof(GntMenuItem),
			0,						/* n_preallocs		*/
			gnt_menuitem_init,			/* instance_init	*/
			NULL					/* value_table		*/
		};

		type = g_type_register_static(G_TYPE_OBJECT,
									  "GntMenuItem",
									  &info, 0);
	}

	return type;
}

GntMenuItem *gnt_menuitem_new(const char *text)
{
	GObject *item = g_object_new(GNT_TYPE_MENU_ITEM, NULL);
	GntMenuItem *menuitem = GNT_MENU_ITEM(item);

	menuitem->text = g_strdup(text);

	return menuitem;
}

void gnt_menuitem_set_callback(GntMenuItem *item, GntMenuItemCallback callback, gpointer data)
{
	item->callback = callback;
	item->callbackdata = data;
}

void gnt_menuitem_set_submenu(GntMenuItem *item, GntMenu *menu)
{
	if (item->submenu)
		gnt_widget_destroy(GNT_WIDGET(item->submenu));
	item->submenu = menu;
}