Example #1
0
static void
main_window_edit_cb (GtkAction *action,
		     EmpathyMainWindow *window)
{
	GtkWidget *submenu;

	/* FIXME: It should use the UIManager to merge the contact/group submenu */
	submenu = empathy_contact_list_view_get_contact_menu (window->list_view);
	if (submenu) {
		GtkMenuItem *item;
		GtkWidget   *label;

		item = GTK_MENU_ITEM (window->edit_context);
		label = gtk_bin_get_child (GTK_BIN (item));
		gtk_label_set_text (GTK_LABEL (label), _("Contact"));

		gtk_widget_show (window->edit_context);
		gtk_widget_show (window->edit_context_separator);

		gtk_menu_item_set_submenu (item, submenu);

		return;
	}

	submenu = empathy_contact_list_view_get_group_menu (window->list_view);
	if (submenu) {
		GtkMenuItem *item;
		GtkWidget   *label;

		item = GTK_MENU_ITEM (window->edit_context);
		label = gtk_bin_get_child (GTK_BIN (item));
		gtk_label_set_text (GTK_LABEL (label), _("Group"));

		gtk_widget_show (window->edit_context);
		gtk_widget_show (window->edit_context_separator);

		gtk_menu_item_set_submenu (item, submenu);

		return;
	}

	gtk_widget_hide (window->edit_context);
	gtk_widget_hide (window->edit_context_separator);

	return;
}
static gboolean
contact_list_view_popup_menu_idle_cb (gpointer user_data)
{
	MenuPopupData *data = user_data;
	GtkWidget     *menu;

	menu = empathy_contact_list_view_get_contact_menu (data->view);
	if (!menu) {
		menu = empathy_contact_list_view_get_group_menu (data->view);
	}

	if (menu) {
		gtk_widget_show (menu);
		gtk_menu_popup (GTK_MENU (menu),
				NULL, NULL, NULL, NULL,
				data->button, data->time);
	}

	g_slice_free (MenuPopupData, data);

	return FALSE;
}