Contents of /trunk/src/list.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 315 - (show annotations)
Wed Dec 16 20:07:58 2009 UTC (14 years, 5 months ago) by harbaum
File MIME type: text/plain
File size: 3167 byte(s)
Various fremantleization
1 /*
2 * Copyright (C) 2008 Till Harbaum <till@harbaum.org>.
3 *
4 * This file is part of OSM2Go.
5 *
6 * OSM2Go is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * OSM2Go is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with OSM2Go. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef LIST_H
21 #define LIST_H
22
23 typedef enum {
24 LIST_BUTTON_NEW = 0,
25 LIST_BUTTON_EDIT,
26 LIST_BUTTON_REMOVE,
27 LIST_BUTTON_USER0,
28 LIST_BUTTON_USER1,
29 LIST_BUTTON_USER2
30 } list_button_t;
31
32 #define LIST_BTN_NEW (1<<0) // use "new" instead of "add" button
33 #define LIST_BTN_WIDE (1<<1) // use "wide" button layout on maemo5
34
35 /* list item flags */
36 #define LIST_FLAG_EXPAND (1<<0) /* column expands with dialog size */
37 #define LIST_FLAG_ELLIPSIZE (1<<1) /* column expands and text is ellipsized */
38 #define LIST_FLAG_CAN_HIGHLIGHT (1<<2) /* column can be highlighted */
39 #define LIST_FLAG_STOCK_ICON (1<<3) /* column contains stock icons */
40 #define LIST_FLAG_TOGGLE (1<<4) /* column contains a toggle item */
41
42 #ifdef USE_HILDON
43
44 /* on hildon a list may be system default (LIST_HILDON_WITHOUT_HEADERS), */
45 /* forced to have headers (LIST_HILDON_WITH_HEADERS) or only be forced */
46 /* on MAEMO5 (LIST_HILDON_WITH_HEADERS_ON_MAEMO5) */
47
48 #define LIST_HILDON_WITH_HEADERS TRUE
49 #define LIST_HILDON_WITHOUT_HEADERS FALSE
50
51 #if MAEMO_VERSION_MAJOR <= 4
52 #define LIST_HILDON_WITH_HEADERS_ON_MAEMO5 FALSE
53 #else
54 #define LIST_HILDON_WITH_HEADERS_ON_MAEMO5 TRUE
55 #endif
56
57 GtkWidget *list_new(gboolean show_headers);
58 #else
59 #define LIST_HILDON_WITH_HEADERS
60 #define LIST_HILDON_WITHOUT_HEADERS
61 #define LIST_HILDON_WITH_HEADERS_ON_MAEMO5
62 GtkWidget *list_new(void);
63 #endif
64
65 GtkWidget *list_get_view(GtkWidget *list);
66 void list_set_user_buttons(GtkWidget *list, ...);
67 void list_set_columns(GtkWidget *list, ...);
68 void list_button_connect(GtkWidget *list, list_button_t id,
69 GCallback cb, gpointer data);
70 void list_set_custom_user_button(GtkWidget *list, list_button_t id,
71 GtkWidget *widget);
72 GtkTreeSelection *list_get_selection(GtkWidget *list);
73 void list_button_enable(GtkWidget *list, list_button_t id, gboolean enable);
74 void list_set_store(GtkWidget *list, GtkListStore *store);
75 void list_set_selection_function(GtkWidget *list, GtkTreeSelectionFunc func,
76 gpointer data);
77 void list_set_static_buttons(GtkWidget *list, int flags,
78 GCallback cb_new, GCallback cb_edit, GCallback cb_remove,
79 gpointer data);
80 GtkTreeModel *list_get_model(GtkWidget *list);
81 void list_pre_inplace_edit_tweak (GtkTreeModel *model);
82 void list_focus_on(GtkWidget *list, GtkTreeIter *iter, gboolean highlight);
83 gboolean list_get_selected(GtkWidget *list, GtkTreeModel **model,
84 GtkTreeIter *iter);
85
86 #endif // LIST_H