本文整理汇总了C++中GTK_MENU函数的典型用法代码示例。如果您正苦于以下问题:C++ GTK_MENU函数的具体用法?C++ GTK_MENU怎么用?C++ GTK_MENU使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GTK_MENU函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_button_release
static gboolean on_button_release(G_GNUC_UNUSED GtkWidget * widget, GdkEventButton * event,
G_GNUC_UNUSED gpointer user_data)
{
if (event->button == 3)
{
GtkTreeSelection *treesel;
GtkTreeModel *model;
GtkTreeIter iter;
treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(s_file_view));
if (!gtk_tree_selection_get_selected(treesel, &model, &iter))
return FALSE;
gtk_widget_set_sensitive(s_popup_menu.expand, gtk_tree_model_iter_has_child(model, &iter));
gtk_widget_set_sensitive(s_popup_menu.remove_external_dir, topmost_selected(model, &iter, FALSE));
gtk_menu_popup(GTK_MENU(s_popup_menu.widget), NULL, NULL, NULL, NULL,
event->button, event->time);
return TRUE;
}
return FALSE;
}
示例2: clip_GTK_MENUGETACTIVE
/* Keep track of the last menu item selected. (For the purposes
* of the option menu */
int
clip_GTK_MENUGETACTIVE(ClipMachine * ClipMachineMemory)
{
C_widget *cmnu = _fetch_cw_arg(ClipMachineMemory);
GtkWidget *item;
C_widget *citem;
CHECKCWID(cmnu, GTK_IS_MENU);
item = gtk_menu_get_active(GTK_MENU(cmnu->widget));
citem = _list_get_cwidget(ClipMachineMemory, item);
if (!citem)
citem = _register_widget(ClipMachineMemory, item, NULL);
if (citem)
{
ClipVar *ret = RETPTR(ClipMachineMemory);
_clip_mclone(ClipMachineMemory, ret, &citem->obj);
}
return 0;
err:
return 1;
}
示例3: panel_menu_button_set_menu_path
void
panel_menu_button_set_menu_path (PanelMenuButton *button,
const char *menu_uri)
{
const char *menu_path;
char *scheme;
g_return_if_fail (PANEL_IS_MENU_BUTTON (button));
scheme = NULL;
menu_path = split_menu_uri (menu_uri, &scheme);
if (!scheme)
return;
button->priv->path_root = panel_menu_scheme_to_path_root (scheme);
g_free (scheme);
if (!button->priv->menu_path && (!menu_path || !menu_path [0]))
return;
if (button->priv->menu_path && menu_path &&
!strcmp (button->priv->menu_path, menu_path))
return;
g_free (button->priv->menu_path);
button->priv->menu_path = NULL;
button->priv->menu_path = g_strdup (menu_path);
if (button->priv->menu)
gtk_menu_detach (GTK_MENU (button->priv->menu));
button->priv->menu = NULL;
panel_menu_button_set_icon (button);
}
示例4: hildon_window_set_menu
void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
{
wxFrameBase::AttachMenuBar(menuBar);
if (m_frameMenuBar)
{
#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
hildon_window_set_menu(HILDON_WINDOW(m_widget),
GTK_MENU(m_frameMenuBar->m_menubar));
#else // !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
m_frameMenuBar->SetParent(this);
// menubar goes into top of vbox (m_mainWidget)
gtk_box_pack_start(
GTK_BOX(m_mainWidget), menuBar->m_widget, false, false, 0);
gtk_box_reorder_child(GTK_BOX(m_mainWidget), menuBar->m_widget, 0);
// disconnect wxWindowGTK "size_request" handler,
// it interferes with sizing of detached GtkHandleBox
gulong handler_id = g_signal_handler_find(
menuBar->m_widget,
GSignalMatchType(G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA),
g_signal_lookup("size_request", GTK_TYPE_WIDGET),
0, NULL, NULL, menuBar);
if (handler_id != 0)
g_signal_handler_disconnect(menuBar->m_widget, handler_id);
// reset size request to allow native sizing to work
gtk_widget_set_size_request(menuBar->m_widget, -1, -1);
gtk_widget_show( m_frameMenuBar->m_widget );
#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2/!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
}
// make sure next size_allocate causes a wxSizeEvent
m_oldClientWidth = 0;
}
示例5: glade_popup_simple_pop
void
glade_popup_simple_pop (GladeProject *project, GdkEventButton *event)
{
GtkWidget *popup_menu;
gint button;
gint event_time;
popup_menu = glade_popup_create_menu (NULL, NULL, project, FALSE);
if (!popup_menu)
return;
if (event)
{
button = event->button;
event_time = event->time;
}
else
{
button = 0;
event_time = gtk_get_current_event_time ();
}
gtk_menu_popup (GTK_MENU (popup_menu), NULL, NULL,
NULL, NULL, button, event_time);
}
示例6: on_trayicon_menu
void on_trayicon_menu (GtkStatusIcon *status_icon,
guint button,
guint activate_time,
gpointer user_data)
{
GromitData *data = (GromitData *) user_data;
if(data->debug)
g_printerr("DEBUG: trayicon menu popup\n");
/* create the menu */
GtkWidget *menu = gtk_menu_new ();
/* Create the menu items */
//TODO option menu
GtkWidget* sep_item = gtk_separator_menu_item_new();
GtkWidget* quit_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
/* Add them to the menu */
gtk_menu_shell_append (GTK_MENU_SHELL (menu), sep_item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), quit_item);
/* Attach the callback functions to the respective activate signal */
g_signal_connect(G_OBJECT (quit_item), "activate",
G_CALLBACK (gtk_main_quit),
NULL);
/* We do need to show menu items */
gtk_widget_show (sep_item);
gtk_widget_show (quit_item);
/* show menu */
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL,
0, gtk_get_current_event_time());
}
示例7: select_verse_button_press_callback
static gboolean select_verse_button_press_callback(GtkWidget *widget,
GdkEventButton *event,
EDITOR *editor)
{
GtkWidget *menu;
menu =
main_versekey_drop_down_verse_menu(editor->navbar, NB_EDITOR,
NULL, editor);
if (!menu)
return 0;
g_signal_connect(menu, "deactivate",
G_CALLBACK(menu_deactivate_callback), widget);
if ((event->type == GDK_BUTTON_PRESS) && event->button == 1) {
gtk_widget_grab_focus(widget);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
TRUE);
gtk_menu_popup(GTK_MENU(menu), NULL, NULL,
menu_position_under, widget, event->button,
event->time);
return TRUE;
}
return FALSE;
}
示例8: gtk_menu_new
static GtkWidget *bmark_popup_menu(Tbfwin * bfwin, gboolean show_bmark_specific, gboolean show_file_specific) {
GtkWidget *menu, *menu_item;
menu = gtk_menu_new();
if (show_bmark_specific) {
menu_item = gtk_menu_item_new_with_label(_("Goto bookmark"));
g_signal_connect(GTK_OBJECT(menu_item), "activate", G_CALLBACK(bmark_popup_menu_goto_lcb),
bfwin);
gtk_menu_append(GTK_MENU(menu), menu_item);
menu_item = gtk_separator_menu_item_new();
gtk_menu_append(GTK_MENU(menu), menu_item);
menu_item = gtk_menu_item_new_with_label(_("Edit"));
g_signal_connect(GTK_OBJECT(menu_item), "activate", G_CALLBACK(bmark_popup_menu_rename_lcb),
bfwin);
gtk_menu_append(GTK_MENU(menu), menu_item);
menu_item = gtk_menu_item_new_with_label(_("Delete"));
g_signal_connect(GTK_OBJECT(menu_item), "activate", G_CALLBACK(bmark_popup_menu_del_lcb),
bfwin);
gtk_menu_append(GTK_MENU(menu), menu_item);
}
if (show_file_specific) {
menu_item = gtk_menu_item_new_with_label(_("Delete all in document"));
g_signal_connect(GTK_OBJECT(menu_item), "activate", G_CALLBACK(bmark_popup_menu_deldoc_lcb),
bfwin);
gtk_menu_append(GTK_MENU(menu), menu_item);
}
menu_item = gtk_menu_item_new_with_label(_("Delete all"));
g_signal_connect(GTK_OBJECT(menu_item), "activate", G_CALLBACK(bmark_popup_menu_delall_lcb),
bfwin);
gtk_menu_append(GTK_MENU(menu), menu_item);
gtk_widget_show_all(menu);
g_signal_connect_after(G_OBJECT(menu), "destroy", G_CALLBACK(destroy_disposable_menu_cb), menu);
return menu;
}
示例9: ptt_menu_show
void ptt_menu_show(GtkWidget *button) {
ptt_menu_clear();
ptt_menu_update();
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, 0);
}
示例10: _on_click_item
static gboolean _on_click_item (GtkWidget *pWidget, GdkEventButton* pButton, CDQuickBrowserItem *pItem)
{
g_return_val_if_fail (pItem != NULL, FALSE);
GldiModuleInstance *myApplet = pItem->pApplet;
CD_APPLET_ENTER;
if (pButton->button == 3) // right click
{
gchar *cUri = g_filename_to_uri (pItem->cPath, NULL, NULL);
g_return_val_if_fail (cUri != NULL, FALSE);
GtkWidget *pMenu = gldi_menu_new (NULL);
GList *pApps = cairo_dock_fm_list_apps_for_file (cUri);
if (pApps != NULL)
{
GtkWidget *pSubMenu = CD_APPLET_ADD_SUB_MENU_WITH_IMAGE (D_("Open with"), pMenu, GLDI_ICON_NAME_OPEN);
cd_quick_browser_free_apps_list (myApplet);
GList *a;
gchar **pAppInfo;
gchar *cIconPath;
for (a = pApps; a != NULL; a = a->next)
{
pAppInfo = a->data;
if (pAppInfo[2] != NULL)
cIconPath = cairo_dock_search_icon_s_path (pAppInfo[2], cairo_dock_search_icon_size (GTK_ICON_SIZE_MENU));
else
cIconPath = NULL;
gpointer *data = g_new (gpointer, 2);
data[0] = pItem;
data[1] = pAppInfo[1];
myData.pAppList = g_list_prepend (myData.pAppList, data); // to save the exec command
CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (pAppInfo[0], cIconPath, _cd_launch_with, pSubMenu, data);
g_free (cIconPath);
g_free (pAppInfo[0]);
g_free (pAppInfo[2]);
g_free (pAppInfo);
}
g_list_free (pApps);
}
CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Open parent folder"), GLDI_ICON_NAME_DIRECTORY, _cd_open_parent, pMenu, pItem);
CD_APPLET_ADD_IN_MENU_WITH_STOCK_AND_DATA (D_("Copy the location"), GLDI_ICON_NAME_COPY, _cd_copy_location, pMenu, pItem);
gtk_widget_show_all (pMenu);
gtk_menu_popup (GTK_MENU (pMenu),
NULL,
NULL,
NULL, // popup on mouse.
NULL,
1,
gtk_get_current_event_time ());
g_free (cUri);
CD_APPLET_LEAVE (TRUE); // do not remove quick_browser menu now
}
CD_APPLET_LEAVE (FALSE);
}
示例11: mDefaultFontName
nsSystemFontsGTK2::nsSystemFontsGTK2()
: mDefaultFontName(NS_LITERAL_STRING("sans-serif"))
, mButtonFontName(NS_LITERAL_STRING("sans-serif"))
, mFieldFontName(NS_LITERAL_STRING("sans-serif"))
, mMenuFontName(NS_LITERAL_STRING("sans-serif"))
{
InitPangoLib();
/*
* Much of the widget creation code here is similar to the code in
* nsLookAndFeel::InitColors().
*/
// mDefaultFont
GtkWidget *label = gtk_label_new("M");
GtkWidget *parent = gtk_fixed_new();
GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);
gtk_container_add(GTK_CONTAINER(parent), label);
gtk_container_add(GTK_CONTAINER(window), parent);
gtk_widget_ensure_style(label);
GetSystemFontInfo(label, &mDefaultFontName, &mDefaultFontStyle);
gtk_widget_destroy(window); // no unref, windows are different
// mFieldFont
GtkWidget *entry = gtk_entry_new();
parent = gtk_fixed_new();
window = gtk_window_new(GTK_WINDOW_POPUP);
gtk_container_add(GTK_CONTAINER(parent), entry);
gtk_container_add(GTK_CONTAINER(window), parent);
gtk_widget_ensure_style(entry);
GetSystemFontInfo(entry, &mFieldFontName, &mFieldFontStyle);
gtk_widget_destroy(window); // no unref, windows are different
// mMenuFont
GtkWidget *accel_label = gtk_accel_label_new("M");
GtkWidget *menuitem = gtk_menu_item_new();
GtkWidget *menu = gtk_menu_new();
g_object_ref_sink(GTK_OBJECT(menu));
gtk_container_add(GTK_CONTAINER(menuitem), accel_label);
gtk_menu_shell_append((GtkMenuShell *)GTK_MENU(menu), menuitem);
gtk_widget_ensure_style(accel_label);
GetSystemFontInfo(accel_label, &mMenuFontName, &mMenuFontStyle);
g_object_unref(menu);
// mButtonFont
parent = gtk_fixed_new();
GtkWidget *button = gtk_button_new();
label = gtk_label_new("M");
window = gtk_window_new(GTK_WINDOW_POPUP);
gtk_container_add(GTK_CONTAINER(button), label);
gtk_container_add(GTK_CONTAINER(parent), button);
gtk_container_add(GTK_CONTAINER(window), parent);
gtk_widget_ensure_style(label);
GetSystemFontInfo(label, &mButtonFontName, &mButtonFontStyle);
gtk_widget_destroy(window); // no unref, windows are different
}
示例12: create_range_controls
void create_range_controls( void )
{
GtkWidget *window;
GtkWidget *box1, *box2, *box3;
GtkWidget *button;
GtkWidget *scrollbar;
GtkWidget *separator;
GtkWidget *opt, *menu, *item;
GtkWidget *label;
GtkWidget *scale;
GtkObject *adj1, *adj2;
/* Standard window-creating stuff */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC(gtk_main_quit),
NULL);
gtk_window_set_title (GTK_WINDOW (window), "range controls");
box1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), box1);
gtk_widget_show (box1);
box2 = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
gtk_widget_show (box2);
/* value, lower, upper, step_increment, page_increment, page_size */
/* Note that the page_size value only makes a difference for
* scrollbar widgets, and the highest value you'll get is actually
* (upper - page_size). */
adj1 = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
vscale = gtk_vscale_new (GTK_ADJUSTMENT (adj1));
scale_set_default_values (GTK_SCALE (vscale));
gtk_box_pack_start (GTK_BOX (box2), vscale, TRUE, TRUE, 0);
gtk_widget_show (vscale);
box3 = gtk_vbox_new (FALSE, 10);
gtk_box_pack_start (GTK_BOX (box2), box3, TRUE, TRUE, 0);
gtk_widget_show (box3);
/* Reuse the same adjustment */
hscale = gtk_hscale_new (GTK_ADJUSTMENT (adj1));
gtk_widget_set_usize (GTK_WIDGET (hscale), 200, 30);
scale_set_default_values (GTK_SCALE (hscale));
gtk_box_pack_start (GTK_BOX (box3), hscale, TRUE, TRUE, 0);
gtk_widget_show (hscale);
/* Reuse the same adjustment again */
scrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (adj1));
/* Notice how this causes the scales to always be updated
* continuously when the scrollbar is moved */
gtk_range_set_update_policy (GTK_RANGE (scrollbar),
GTK_UPDATE_CONTINUOUS);
gtk_box_pack_start (GTK_BOX (box3), scrollbar, TRUE, TRUE, 0);
gtk_widget_show (scrollbar);
box2 = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
gtk_widget_show (box2);
/* A checkbutton to control whether the value is displayed or not */
button = gtk_check_button_new_with_label("Display value on scale widgets");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
gtk_signal_connect (GTK_OBJECT (button), "toggled",
GTK_SIGNAL_FUNC(cb_draw_value), NULL);
gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
gtk_widget_show (button);
box2 = gtk_hbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
/* An option menu to change the position of the value */
label = gtk_label_new ("Scale Value Position:");
gtk_box_pack_start (GTK_BOX (box2), label, FALSE, FALSE, 0);
gtk_widget_show (label);
opt = gtk_option_menu_new();
menu = gtk_menu_new();
item = make_menu_item ("Top",
GTK_SIGNAL_FUNC(cb_pos_menu_select),
GINT_TO_POINTER (GTK_POS_TOP));
gtk_menu_append (GTK_MENU (menu), item);
item = make_menu_item ("Bottom", GTK_SIGNAL_FUNC (cb_pos_menu_select),
GINT_TO_POINTER (GTK_POS_BOTTOM));
gtk_menu_append (GTK_MENU (menu), item);
item = make_menu_item ("Left", GTK_SIGNAL_FUNC (cb_pos_menu_select),
GINT_TO_POINTER (GTK_POS_LEFT));
gtk_menu_append (GTK_MENU (menu), item);
item = make_menu_item ("Right", GTK_SIGNAL_FUNC (cb_pos_menu_select),
GINT_TO_POINTER (GTK_POS_RIGHT));
gtk_menu_append (GTK_MENU (menu), item);
//.........这里部分代码省略.........
示例13: tray_icon_on_menu
void tray_icon_on_menu(GtkStatusIcon *status_icon, guint button,
guint activate_time, gpointer user_data)
{
gtk_menu_popup(GTK_MENU(menu), NULL, NULL, gtk_status_icon_position_menu, status_icon, button, activate_time);
}
示例14: ASSERT
void PopupMenu::show(const IntRect& rect, FrameView* view, int index)
{
ASSERT(client());
if (!m_popup) {
m_popup = GTK_MENU(gtk_menu_new());
#if GLIB_CHECK_VERSION(2,10,0)
g_object_ref_sink(G_OBJECT(m_popup));
#else
g_object_ref(G_OBJECT(m_popup));
gtk_object_sink(GTK_OBJECT(m_popup));
#endif
g_signal_connect(m_popup, "unmap", G_CALLBACK(menuUnmapped), this);
} else
gtk_container_foreach(GTK_CONTAINER(m_popup), reinterpret_cast<GtkCallback>(menuRemoveItem), this);
int x, y;
gdk_window_get_origin(GTK_WIDGET(view->containingWindow())->window, &x, &y);
m_menuPosition = view->contentsToWindow(rect.location());
m_menuPosition = IntPoint(m_menuPosition.x() + x, m_menuPosition.y() + y + rect.height());
m_indexMap.clear();
const int size = client()->listSize();
for (int i = 0; i < size; ++i) {
GtkWidget* item;
if (client()->itemIsSeparator(i))
item = gtk_separator_menu_item_new();
else
item = gtk_menu_item_new_with_label(client()->itemText(i).utf8().data());
m_indexMap.add(item, i);
g_signal_connect(item, "activate", G_CALLBACK(menuItemActivated), this);
// FIXME: Apply the RenderStyle from client()->itemStyle(i)
gtk_widget_set_sensitive(item, client()->itemIsEnabled(i));
gtk_menu_shell_append(GTK_MENU_SHELL(m_popup), item);
gtk_widget_show(item);
}
gtk_menu_set_active(m_popup, index);
// The size calls are directly copied from gtkcombobox.c which is LGPL
GtkRequisition requisition;
gtk_widget_set_size_request(GTK_WIDGET(m_popup), -1, -1);
gtk_widget_size_request(GTK_WIDGET(m_popup), &requisition);
gtk_widget_set_size_request(GTK_WIDGET(m_popup), MAX(rect.width(), requisition.width), -1);
GList* children = GTK_MENU_SHELL(m_popup)->children;
if (size)
for (int i = 0; i < size; i++) {
if (i > index)
break;
GtkWidget* item = reinterpret_cast<GtkWidget*>(children->data);
GtkRequisition itemRequisition;
gtk_widget_get_child_requisition(item, &itemRequisition);
m_menuPosition.setY(m_menuPosition.y() - itemRequisition.height);
children = g_list_next(children);
}
else
// Center vertically the empty popup in the combo box area
m_menuPosition.setY(m_menuPosition.y() - rect.height() / 2);
gtk_menu_popup(m_popup, NULL, NULL, reinterpret_cast<GtkMenuPositionFunc>(menuPositionFunction), this, 0, gtk_get_current_event_time());
}
示例15: update_menu_state
//.........这里部分代码省略.........
screen_width = wnck_screen_get_width (screen);
screen_height = wnck_screen_get_height (screen);
if (window_x >= screen_width)
gtk_widget_show (priv->left_item);
else
gtk_widget_hide (priv->left_item);
if (window_x < viewport_width - screen_width)
gtk_widget_show (priv->right_item);
else
gtk_widget_hide (priv->right_item);
if (window_y >= screen_height)
gtk_widget_show (priv->up_item);
else
gtk_widget_hide (priv->up_item);
if (window_y < viewport_height - screen_height)
gtk_widget_show (priv->down_item);
else
gtk_widget_hide (priv->down_item);
}
else if (!viewport_mode && workspace && !wnck_window_is_pinned (priv->window))
{
if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_LEFT))
gtk_widget_show (priv->left_item);
else
gtk_widget_hide (priv->left_item);
if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_RIGHT))
gtk_widget_show (priv->right_item);
else
gtk_widget_hide (priv->right_item);
if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_UP))
gtk_widget_show (priv->up_item);
else
gtk_widget_hide (priv->up_item);
if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_DOWN))
gtk_widget_show (priv->down_item);
else
gtk_widget_hide (priv->down_item);
}
else
{
gtk_widget_hide (priv->left_item);
gtk_widget_hide (priv->right_item);
gtk_widget_hide (priv->up_item);
gtk_widget_hide (priv->down_item);
}
if (viewport_mode)
{
int viewport_width, viewport_height;
int screen_width, screen_height;
viewport_width = wnck_workspace_get_width (workspace);
viewport_height = wnck_workspace_get_height (workspace);
screen_width = wnck_screen_get_width (screen);
screen_height = wnck_screen_get_height (screen);
gtk_widget_show (priv->workspace_separator);
gtk_widget_show (priv->pin_item);
gtk_widget_show (priv->unpin_item);
if (viewport_width >= 2 * screen_width ||
viewport_height >= 2 * screen_height)
{
gtk_widget_show (priv->workspace_item);
refill_submenu_viewport (menu);
}
else
{
gtk_widget_hide (priv->workspace_item);
gtk_menu_popdown (GTK_MENU (gtk_menu_item_get_submenu (GTK_MENU_ITEM (priv->workspace_item))));
}
}
else if (wnck_screen_get_workspace_count (screen) > 1)
{
gtk_widget_show (priv->workspace_separator);
gtk_widget_show (priv->pin_item);
gtk_widget_show (priv->unpin_item);
gtk_widget_show (priv->workspace_item);
refill_submenu_workspace (menu);
}
else
{
gtk_widget_hide (priv->workspace_separator);
gtk_widget_hide (priv->pin_item);
gtk_widget_hide (priv->unpin_item);
gtk_widget_hide (priv->workspace_item);
gtk_menu_popdown (GTK_MENU (gtk_menu_item_get_submenu (GTK_MENU_ITEM (priv->workspace_item))));
}
gtk_menu_reposition (GTK_MENU (menu));
return FALSE;
}