Files
evolution/calendar/gui/popup-menu.c
Damon Chaplin 10ee8953e2 added guint ref_count to iCalObject struct, and ical_object_ref/unref()
2000-05-06  Damon Chaplin  <damon@helixcode.com>

        * cal-util/calobj.[hc]: added guint ref_count to iCalObject struct,
        and ical_object_ref/unref() functions. I've updated all the gui/
        stuff to use ref_counts but I haven't touched the pcs/ stuff. Maybe
        just using ical_object_destroy() is OK there.

        * gui/gncal-todo.c:
        * gui/calendar-commands.c:
        * gui/eventedit.c:
        * gui/e-week-view.c:
        * gui/e-day-view.c: use refcounting for iCalObjects.

        * gui/e-day-view-main-item.c:
        * gui/e-day-view-top-item.c:
        * gui/e-day-view.c: try not to ever draw outside the event, even when
        the event is very small.

2000-05-05  Damon Chaplin  <damon@helixcode.com>

        * gui/e-day-view.c: don't allow recurring events to be resized or
        dragged, and don't show the resize/drag cursors. Actually it may be
        better to let the user do the resize/drag and then ask them what they
        want to do - change the single occurrence or the entire series.

        * gui/e-day-view-time-item.c (e_day_view_time_item_show_popup_menu):
        use e_auto_kill_popup_menu_on_hide() to destroy the popup menu.

        * gui/popup-menu.c: include e-gui-utils.h

svn path=/trunk/; revision=2823
2000-05-06 10:43:14 +00:00

42 lines
985 B
C

/* Popup menu utilities for gncal
*
* Copyright (C) 1998 The Free Software Foundation
*
* Author: Federico Mena <quartic@gimp.org>
*/
#include <config.h>
#include <gnome.h>
#include "popup-menu.h"
#include "../../e-util/e-gui-utils.h"
void
popup_menu (struct menu_item *items, int nitems, GdkEventButton *event)
{
GtkWidget *menu;
GtkWidget *item;
int i;
menu = gtk_menu_new ();
/* Make sure the menu is destroyed when it disappears. */
e_auto_kill_popup_menu_on_hide (GTK_MENU (menu));
for (i = 0; i < nitems; i++) {
if (items[i].text) {
item = gtk_menu_item_new_with_label (_(items[i].text));
gtk_signal_connect (GTK_OBJECT (item), "activate",
items[i].callback,
items[i].data);
gtk_widget_set_sensitive (item, items[i].sensitive);
} else
item = gtk_menu_item_new ();
gtk_widget_show (item);
gtk_menu_append (GTK_MENU (menu), item);
}
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time);
}