]> err.no Git - mapper/blob - src/hildon-wrappers.c
Map widget:
[mapper] / src / hildon-wrappers.c
1 /*
2  * This file is part of mapper
3  *
4  * Copyright (C) 2007 Kaj-Michael Lang
5  * POI and GPS-Info code originally written by Cezary Jackiewicz.
6  *
7  * Default map data provided by http://www.openstreetmap.org/
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22  */
23
24 /****************************************************************************
25  * Hildon function Wrappers for non-hildon build
26  ****************************************************************************/
27 #include "config.h"
28
29 #include <gtk/gtk.h>
30 #include "ui-common.h"
31
32 #ifndef WITH_HILDONFM
33
34 GtkWidget *
35 hildon_file_chooser_dialog_new(GtkWindow * parent, GtkFileChooserAction action)
36 {
37 GtkWidget *dialog;
38
39 if (action == GTK_FILE_CHOOSER_ACTION_SAVE) {
40         dialog = gtk_file_chooser_dialog_new("Save", parent, action,
41                                              GTK_STOCK_CANCEL,
42                                              GTK_RESPONSE_CANCEL,
43                                              GTK_STOCK_SAVE,
44                                              GTK_RESPONSE_OK, NULL);
45         gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
46 } else {
47         dialog = gtk_file_chooser_dialog_new("Open", parent, action,
48                                              GTK_STOCK_CANCEL,
49                                              GTK_RESPONSE_CANCEL,
50                                              GTK_STOCK_OPEN,
51                                              GTK_RESPONSE_OK, NULL);
52 }
53 return dialog;
54 }
55
56 #endif
57
58 #ifndef WITH_HILDON
59
60 static gint _sb_sid=0;
61
62 static gboolean
63 status_bar_clear(void)
64 {
65 gtk_statusbar_pop(_status_bar, 0);
66 _sb_sid=0;
67 return FALSE;
68 }
69
70 GtkWidget *
71 hildon_note_new_confirmation(GtkWidget *widget, const gchar *text)
72 {
73 return gtk_message_dialog_new(widget,
74                         GTK_DIALOG_DESTROY_WITH_PARENT,
75                         GTK_MESSAGE_ERROR,
76                         GTK_BUTTONS_OK_CANCEL, text);
77 }
78
79 void 
80 hildon_banner_show_information(GtkWidget *w, void *t, gchar *text)
81 {
82 gtk_statusbar_pop(GTK_STATUSBAR(_status_bar), 0);
83 gtk_statusbar_push(GTK_STATUSBAR(_status_bar), 0, text);
84 if (_sb_sid!=0)
85         g_source_remove(_sb_sid);
86 _sb_sid=g_timeout_add(6000, status_bar_clear, NULL);
87 }
88
89 GtkWidget *
90 hildon_banner_show_progress(GtkWidget * widget, GtkProgressBar *bar, const gchar * text)
91 {
92 gtk_widget_show(_progress_item);
93 gtk_progress_bar_set_text(_progress_item, text);
94 hildon_banner_show_information(_status_bar, NULL, text);
95 return NULL;
96 }
97
98 void 
99 hildon_banner_set_fraction(GtkWidget * widget, gdouble fraction)
100 {
101 gtk_progress_bar_set_fraction(_progress_item, fraction);
102 if (fraction<1.0)
103         return;
104 gtk_progress_bar_set_text(_progress_item, "");
105 gtk_progress_bar_set_fraction(_progress_item, 0.0);
106 }
107
108 GtkWidget *
109 hildon_banner_show_animation(GtkWidget *widget, const gchar *animation_name, const gchar *text)
110 {
111 hildon_banner_show_information(_status_bar, NULL, text);
112 gtk_progress_bar_set_text(_progress_item, text);
113 gtk_progress_bar_pulse(_progress_item);
114 return NULL;
115 }
116
117 GtkWidget *
118 hildon_number_editor_new(gint min, gint max)
119 {
120 return gtk_spin_button_new_with_range(min, max, 1);
121 }
122
123 gint 
124 hildon_number_editor_get_value(GtkWidget * w)
125 {
126 return gtk_spin_button_get_value_as_int(GTK_WIDGET(w));
127 }
128
129 void 
130 hildon_number_editor_set_value(GtkWidget * w, gint v)
131 {
132 gtk_spin_button_set_value(w, v);
133 }
134
135 void 
136 hildon_number_editor_set_range(GtkWidget * w, gint min, gint max)
137 {
138 gtk_spin_button_set_range(w, min, max);
139 }
140
141 GtkWidget *
142 hildon_controlbar_new()
143 {
144 return gtk_hscale_new_with_range(1, 10, 1);
145 }
146
147 gint 
148 hildon_controlbar_get_value(GtkWidget * w)
149 {
150 return gtk_range_get_value(w);
151 }
152
153 void
154 hildon_controlbar_set_value(GtkWidget * w, gint v)
155 {
156 gtk_range_set_value(w, (gdouble)v);
157 }
158
159 void
160 hildon_controlbar_set_range(GtkWidget * w, gint min, gint max)
161 {
162 gtk_range_set_range(w, (gdouble)min, (gdouble)max);
163 }
164
165 #else
166
167 void
168 hildon_banner_hide(GtkWidget *w)
169 {
170 gtk_widget_destroy(w);
171 }
172
173 #endif