Added a hide_mask argument to the two popup menu functions.
2000-08-09 Christopher James Lahey <clahey@helixcode.com> * e-popup-menu.c, e-popup-menu.h: Added a hide_mask argument to the two popup menu functions. svn path=/trunk/; revision=4625
This commit is contained in:
committed by
Chris Lahey
parent
0efeeb2a5d
commit
e367caf042
@ -1,3 +1,8 @@
|
||||
2000-08-09 Christopher James Lahey <clahey@helixcode.com>
|
||||
|
||||
* e-popup-menu.c, e-popup-menu.h: Added a hide_mask argument to
|
||||
the two popup menu functions.
|
||||
|
||||
2000-08-07 Christopher James Lahey <clahey@helixcode.com>
|
||||
|
||||
* e-gui-utils.c, e-gui-utils.c: Added
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
/*
|
||||
* e-popup-menu.c: popup menu display
|
||||
*
|
||||
nnn *
|
||||
* Author:
|
||||
* Miguel de Icaza (miguel@kernel.org)
|
||||
* Jody Goldberg (jgoldberg@home.com)
|
||||
@ -46,7 +47,7 @@ make_item (GtkMenu *menu, const char *name, const char *pixname)
|
||||
|
||||
if (pixname){
|
||||
GtkWidget *pixmap = gnome_stock_pixmap_widget (item, pixname);
|
||||
|
||||
|
||||
gtk_widget_show (pixmap);
|
||||
gtk_pixmap_menu_item_set_pixmap (
|
||||
GTK_PIXMAP_MENU_ITEM (item), pixmap);
|
||||
@ -56,43 +57,56 @@ make_item (GtkMenu *menu, const char *name, const char *pixname)
|
||||
}
|
||||
|
||||
GtkMenu *
|
||||
e_popup_menu_create (EPopupMenu *menu_list, int disable_mask, void *closure)
|
||||
e_popup_menu_create (EPopupMenu *menu_list, int disable_mask, int hide_mask, void *closure)
|
||||
{
|
||||
GtkMenu *menu = GTK_MENU (gtk_menu_new ());
|
||||
int i;
|
||||
|
||||
for (i = 0; menu_list [i].name; i++){
|
||||
gboolean last_item_separator = TRUE;
|
||||
gint last_non_separator = -1;
|
||||
|
||||
for (i = 0; menu_list[i].name; i++) {
|
||||
if (strcmp("", menu_list[i].name) && !(menu_list [i].disable_mask & hide_mask)) {
|
||||
last_non_seperator = i;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < last_non_separator; i++) {
|
||||
GtkWidget *item;
|
||||
|
||||
item = make_item (menu, menu_list [i].name,
|
||||
menu_list [i].pixname);
|
||||
gboolean separator;
|
||||
|
||||
if (menu_list [i].fn)
|
||||
gtk_signal_connect (
|
||||
GTK_OBJECT (item), "activate",
|
||||
GTK_SIGNAL_FUNC (menu_list [i].fn),
|
||||
closure);
|
||||
separator = !strcmp("", menu_list[i].name);
|
||||
|
||||
if (menu_list [i].disable_mask & disable_mask)
|
||||
gtk_widget_set_sensitive (item, FALSE);
|
||||
|
||||
gtk_widget_show (item);
|
||||
gtk_menu_append (menu, item);
|
||||
if ((!(separator && last_separator)) && !(menu_list [i].disable_mask & hide_mask)) {
|
||||
|
||||
item = make_item (menu, menu_list [i].name,
|
||||
menu_list [i].pixname);
|
||||
|
||||
if (menu_list [i].fn)
|
||||
gtk_signal_connect (
|
||||
GTK_OBJECT (item), "activate",
|
||||
GTK_SIGNAL_FUNC (menu_list [i].fn),
|
||||
closure);
|
||||
|
||||
if (menu_list [i].disable_mask & disable_mask)
|
||||
gtk_widget_set_sensitive (item, FALSE);
|
||||
|
||||
gtk_widget_show (item);
|
||||
gtk_menu_append (menu, item);
|
||||
}
|
||||
}
|
||||
|
||||
return menu;
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
e_popup_menu_run (EPopupMenu *menu_list, GdkEventButton *event, int disable_mask, void *closure)
|
||||
e_popup_menu_run (EPopupMenu *menu_list, GdkEventButton *event, int disable_mask, int hide_mask, void *closure)
|
||||
{
|
||||
GtkMenu *menu;
|
||||
|
||||
g_return_if_fail (menu_list != NULL);
|
||||
g_return_if_fail (event != NULL);
|
||||
|
||||
menu = e_popup_menu_create (menu_list, disable_mask, closure);
|
||||
menu = e_popup_menu_create (menu_list, disable_mask, hide_mask, closure);
|
||||
|
||||
e_popup_menu (menu, event);
|
||||
}
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
#ifndef E_POPUP_MENU_H
|
||||
#define E_POPUP_MENU_H
|
||||
|
||||
@ -12,11 +13,13 @@ typedef struct {
|
||||
|
||||
GtkMenu *e_popup_menu_create (EPopupMenu *menu_list,
|
||||
int disable_mask,
|
||||
int hide_mask,
|
||||
void *closure);
|
||||
|
||||
void e_popup_menu_run (EPopupMenu *menu_list,
|
||||
GdkEventButton *event,
|
||||
int disable_mask,
|
||||
int hide_mask,
|
||||
void *closure);
|
||||
|
||||
#endif /* E_POPUP_MENU_H */
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
/*
|
||||
* e-popup-menu.c: popup menu display
|
||||
*
|
||||
nnn *
|
||||
* Author:
|
||||
* Miguel de Icaza (miguel@kernel.org)
|
||||
* Jody Goldberg (jgoldberg@home.com)
|
||||
@ -46,7 +47,7 @@ make_item (GtkMenu *menu, const char *name, const char *pixname)
|
||||
|
||||
if (pixname){
|
||||
GtkWidget *pixmap = gnome_stock_pixmap_widget (item, pixname);
|
||||
|
||||
|
||||
gtk_widget_show (pixmap);
|
||||
gtk_pixmap_menu_item_set_pixmap (
|
||||
GTK_PIXMAP_MENU_ITEM (item), pixmap);
|
||||
@ -56,43 +57,56 @@ make_item (GtkMenu *menu, const char *name, const char *pixname)
|
||||
}
|
||||
|
||||
GtkMenu *
|
||||
e_popup_menu_create (EPopupMenu *menu_list, int disable_mask, void *closure)
|
||||
e_popup_menu_create (EPopupMenu *menu_list, int disable_mask, int hide_mask, void *closure)
|
||||
{
|
||||
GtkMenu *menu = GTK_MENU (gtk_menu_new ());
|
||||
int i;
|
||||
|
||||
for (i = 0; menu_list [i].name; i++){
|
||||
gboolean last_item_separator = TRUE;
|
||||
gint last_non_separator = -1;
|
||||
|
||||
for (i = 0; menu_list[i].name; i++) {
|
||||
if (strcmp("", menu_list[i].name) && !(menu_list [i].disable_mask & hide_mask)) {
|
||||
last_non_seperator = i;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < last_non_separator; i++) {
|
||||
GtkWidget *item;
|
||||
|
||||
item = make_item (menu, menu_list [i].name,
|
||||
menu_list [i].pixname);
|
||||
gboolean separator;
|
||||
|
||||
if (menu_list [i].fn)
|
||||
gtk_signal_connect (
|
||||
GTK_OBJECT (item), "activate",
|
||||
GTK_SIGNAL_FUNC (menu_list [i].fn),
|
||||
closure);
|
||||
separator = !strcmp("", menu_list[i].name);
|
||||
|
||||
if (menu_list [i].disable_mask & disable_mask)
|
||||
gtk_widget_set_sensitive (item, FALSE);
|
||||
|
||||
gtk_widget_show (item);
|
||||
gtk_menu_append (menu, item);
|
||||
if ((!(separator && last_separator)) && !(menu_list [i].disable_mask & hide_mask)) {
|
||||
|
||||
item = make_item (menu, menu_list [i].name,
|
||||
menu_list [i].pixname);
|
||||
|
||||
if (menu_list [i].fn)
|
||||
gtk_signal_connect (
|
||||
GTK_OBJECT (item), "activate",
|
||||
GTK_SIGNAL_FUNC (menu_list [i].fn),
|
||||
closure);
|
||||
|
||||
if (menu_list [i].disable_mask & disable_mask)
|
||||
gtk_widget_set_sensitive (item, FALSE);
|
||||
|
||||
gtk_widget_show (item);
|
||||
gtk_menu_append (menu, item);
|
||||
}
|
||||
}
|
||||
|
||||
return menu;
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
e_popup_menu_run (EPopupMenu *menu_list, GdkEventButton *event, int disable_mask, void *closure)
|
||||
e_popup_menu_run (EPopupMenu *menu_list, GdkEventButton *event, int disable_mask, int hide_mask, void *closure)
|
||||
{
|
||||
GtkMenu *menu;
|
||||
|
||||
g_return_if_fail (menu_list != NULL);
|
||||
g_return_if_fail (event != NULL);
|
||||
|
||||
menu = e_popup_menu_create (menu_list, disable_mask, closure);
|
||||
menu = e_popup_menu_create (menu_list, disable_mask, hide_mask, closure);
|
||||
|
||||
e_popup_menu (menu, event);
|
||||
}
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
#ifndef E_POPUP_MENU_H
|
||||
#define E_POPUP_MENU_H
|
||||
|
||||
@ -12,11 +13,13 @@ typedef struct {
|
||||
|
||||
GtkMenu *e_popup_menu_create (EPopupMenu *menu_list,
|
||||
int disable_mask,
|
||||
int hide_mask,
|
||||
void *closure);
|
||||
|
||||
void e_popup_menu_run (EPopupMenu *menu_list,
|
||||
GdkEventButton *event,
|
||||
int disable_mask,
|
||||
int hide_mask,
|
||||
void *closure);
|
||||
|
||||
#endif /* E_POPUP_MENU_H */
|
||||
|
||||
Reference in New Issue
Block a user