chiark / gitweb /
Switch to GPL v3
[disorder] / disobedience / popup.h
... / ...
CommitLineData
1/*
2 * This file is part of DisOrder
3 * Copyright (C) 2008 Richard Kettlewell
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18#ifndef POPUP_H
19#define POPUP_H
20
21/** @brief A popup menu item */
22struct menuitem {
23 /** @brief Menu item name */
24 const char *name;
25
26 /** @brief Called to activate the menu item */
27 void (*activate)(GtkMenuItem *menuitem,
28 gpointer user_data);
29
30 /** @brief Called to determine whether the menu item is usable.
31 *
32 * Returns @c TRUE if it should be sensitive and @c FALSE otherwise.
33 */
34 int (*sensitive)(void *extra);
35
36 /** @brief Signal handler ID */
37 gulong handlerid;
38
39 /** @brief Widget for menu item */
40 GtkWidget *w;
41};
42
43void popup(GtkWidget **menup,
44 GdkEventButton *event,
45 struct menuitem *items,
46 int nitems,
47 void *extra);
48void ensure_selected(GtkTreeView *treeview,
49 GdkEventButton *event);
50
51#endif /* POPUP_H */
52
53/*
54Local Variables:
55c-basic-offset:2
56comment-column:40
57fill-column:79
58indent-tabs-mode:nil
59End:
60*/