Parent Directory | Revision Log
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 |