chiark / gitweb /
Fix a bug where Disobedience wouldn't always notice that a track had
[disorder] / disobedience / popup.h
CommitLineData
6982880f
RK
1/*
2 * This file is part of DisOrder
3 * Copyright (C) 2008 Richard Kettlewell
4 *
e7eb3a27 5 * This program is free software: you can redistribute it and/or modify
6982880f 6 * it under the terms of the GNU General Public License as published by
e7eb3a27 7 * the Free Software Foundation, either version 3 of the License, or
6982880f
RK
8 * (at your option) any later version.
9 *
e7eb3a27
RK
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 *
6982880f 15 * You should have received a copy of the GNU General Public License
e7eb3a27 16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
6982880f 17 */
132a5a4a
RK
18/** @file disobedience/popup.h
19 * @brief Disobedience popup menus
20 */
6982880f
RK
21#ifndef POPUP_H
22#define POPUP_H
23
24/** @brief A popup menu item */
25struct menuitem {
26 /** @brief Menu item name */
27 const char *name;
28
29 /** @brief Called to activate the menu item */
30 void (*activate)(GtkMenuItem *menuitem,
31 gpointer user_data);
32
33 /** @brief Called to determine whether the menu item is usable.
34 *
35 * Returns @c TRUE if it should be sensitive and @c FALSE otherwise.
36 */
37 int (*sensitive)(void *extra);
38
39 /** @brief Signal handler ID */
40 gulong handlerid;
41
42 /** @brief Widget for menu item */
43 GtkWidget *w;
44};
45
46void popup(GtkWidget **menup,
47 GdkEventButton *event,
48 struct menuitem *items,
49 int nitems,
50 void *extra);
51void ensure_selected(GtkTreeView *treeview,
52 GdkEventButton *event);
53
54#endif /* POPUP_H */
55
56/*
57Local Variables:
58c-basic-offset:2
59comment-column:40
60fill-column:79
61indent-tabs-mode:nil
62End:
63*/