Diff of /trunk/src/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 259 by harbaum, Tue Aug 4 06:35:07 2009 UTC revision 266 by harbaum, Wed Aug 12 09:27:27 2009 UTC
# Line 109  cb_menu_project_wizard(GtkMenuItem *item Line 109  cb_menu_project_wizard(GtkMenuItem *item
109    project_wizard(appdata);    project_wizard(appdata);
110  }  }
111    
112    typedef struct {
113      appdata_t *appdata;
114      GtkWidget *dialog;
115    } about_context_t;
116    
117    #ifdef ENABLE_BROWSER_INTERFACE
118    #ifndef USE_HILDON
119    #include <libgnome/gnome-url.h>
120    #else
121    #include <tablet-browser-interface.h>
122    #endif
123    
124    void on_paypal_button_clicked(GtkButton *button, about_context_t *context) {
125      const char *url =
126        "https://www.paypal.com/cgi-bin/webscr"
127        "?cmd=_s-xclick&hosted_button_id=7439286";
128    
129    #ifndef USE_HILDON
130      /* taken from gnome-open, part of libgnome */
131      GError *err = NULL;
132      gnome_url_show(url, &err);
133    #else
134      /* close the dialog on hildon as it doesn't like open dialogs */
135      gtk_dialog_response(GTK_DIALOG(context->dialog), GTK_RESPONSE_ACCEPT);
136    
137      osso_rpc_run_with_defaults(context->appdata->osso_context, "osso_browser",
138                                 OSSO_BROWSER_OPEN_NEW_WINDOW_REQ, NULL,
139                                 DBUS_TYPE_STRING, url,
140                                 DBUS_TYPE_BOOLEAN, FALSE, DBUS_TYPE_INVALID);
141    #endif
142    }
143    #endif
144    
145  static void  static void
146  cb_menu_about(GtkMenuItem *item, gpointer data) {  cb_menu_about(GtkMenuItem *item, gpointer data) {
147    appdata_t *appdata = (appdata_t*)data;    about_context_t context;
148      context.appdata = (appdata_t *)data;
149    
150    const gchar *authors[] = {    const gchar *authors[] = {
151      "Till Harbaum <till@harbaum.org>",      "Till Harbaum <till@harbaum.org>",
# Line 124  cb_menu_about(GtkMenuItem *item, gpointe Line 158  cb_menu_about(GtkMenuItem *item, gpointe
158      "Andrew Zhilin <drew.zhilin@gmail.com>",      "Andrew Zhilin <drew.zhilin@gmail.com>",
159      NULL };      NULL };
160    
161    gtk_show_about_dialog(GTK_WINDOW(appdata->window),    context.dialog = g_object_new(GTK_TYPE_ABOUT_DIALOG,
162                          "name", "OSM2Go",                          "name", "OSM2Go",
163                          "version", VERSION,                          "version", VERSION,
164                          "copyright", _("Copyright 2008-2009"),                          "copyright", _("Copyright 2008-2009"),
# Line 133  cb_menu_about(GtkMenuItem *item, gpointe Line 167  cb_menu_about(GtkMenuItem *item, gpointe
167                          "website", _("http://www.harbaum.org/till/maemo"),                          "website", _("http://www.harbaum.org/till/maemo"),
168                          "comments", _("Mobile OSM Editor"),                          "comments", _("Mobile OSM Editor"),
169                          NULL);                          NULL);
170    
171    #ifdef ENABLE_BROWSER_INTERFACE
172      /* add a way to donate to the project */
173      GtkWidget *alignment = gtk_alignment_new(0.5, 0, 0, 0);
174    
175      GtkWidget *hbox = gtk_hbox_new(FALSE, 8);
176      gtk_box_pack_start(GTK_BOX(hbox),
177                         gtk_label_new(_("Do you ĺike OSM2Go?")),
178                         FALSE, FALSE, 0);
179    
180      GtkWidget *button = gtk_button_new();
181      gtk_button_set_image(GTK_BUTTON(button),
182                           icon_widget_load(&context.appdata->icon, "paypal"));
183      gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
184      g_signal_connect(button, "clicked",
185                       G_CALLBACK(on_paypal_button_clicked), &context);
186      gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
187    
188      gtk_container_add(GTK_CONTAINER(alignment), hbox);
189      gtk_box_pack_start_defaults(GTK_BOX((GTK_DIALOG(context.dialog))->vbox),
190                                  alignment);
191    
192      gtk_widget_show_all(alignment);
193    #endif
194    
195      gtk_dialog_run(GTK_DIALOG(context.dialog));
196      gtk_widget_destroy(context.dialog);
197  }  }
198    
199  void on_window_destroy (GtkWidget *widget, gpointer data);  void on_window_destroy (GtkWidget *widget, gpointer data);

Legend:
Removed from v.259  
changed lines
  Added in v.266