]> git.street.me.uk Git - andy/viking.git/blobdiff - src/uibuilder.c
Remove dependencies to gob2
[andy/viking.git] / src / uibuilder.c
index e6dab542212872888d5ce274521e84beef2263fd..a277724d1b730d2e4d0112c5c44a93fd5876f2ec 100644 (file)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <gtk/gtk.h>
+#include <glib/gi18n.h>
 #include "uibuilder.h"
 #include "vikradiogroup.h"
 #include "vikfileentry.h"
@@ -74,7 +79,7 @@ GtkWidget *a_uibuilder_new_widget ( VikLayerParam *param, VikLayerParamData data
           int i;
          int nb_elem = g_list_length(param->widget_data);
           for ( i = 0; i < nb_elem; i++ )
-            if ( (guint32)g_list_nth_data(param->extra_widget_data, i) == data.u )
+            if ( GPOINTER_TO_UINT ( g_list_nth_data(param->extra_widget_data, i) ) == data.u )
             {
               vik_radio_group_set_selected ( VIK_RADIO_GROUP(rv), i );
               break;
@@ -118,6 +123,18 @@ GtkWidget *a_uibuilder_new_widget ( VikLayerParam *param, VikLayerParamData data
         gtk_entry_set_text ( GTK_ENTRY(rv), data.s );
       }
       break;
+    case VIK_LAYER_WIDGET_PASSWORD:
+      if ( param->type == VIK_LAYER_PARAM_STRING )
+      {
+        rv = gtk_entry_new ();
+        gtk_entry_set_visibility ( GTK_ENTRY(rv), FALSE );
+        gtk_entry_set_text ( GTK_ENTRY(rv), data.s );
+#if GTK_CHECK_VERSION(2,12,0)
+       gtk_widget_set_tooltip_text ( GTK_WIDGET(rv),
+                                     _("Take care that this password will be stored clearly in a plain file.") );
+#endif
+      }
+      break;
     case VIK_LAYER_WIDGET_FILEENTRY:
       if ( param->type == VIK_LAYER_PARAM_STRING )
       {
@@ -170,7 +187,7 @@ VikLayerParamData a_uibuilder_widget_get_value ( GtkWidget *widget, VikLayerPara
     case VIK_LAYER_WIDGET_RADIOGROUP_STATIC:
       rv.u = vik_radio_group_get_selected(VIK_RADIO_GROUP(widget));
       if ( param->extra_widget_data )
-        rv.u = (guint32)g_list_nth_data(param->extra_widget_data, rv.u);
+        rv.u = GPOINTER_TO_UINT ( g_list_nth_data(param->extra_widget_data, rv.u) );
       break;
     case VIK_LAYER_WIDGET_SPINBUTTON:
       if ( param->type == VIK_LAYER_PARAM_UINT )
@@ -181,6 +198,7 @@ VikLayerParamData a_uibuilder_widget_get_value ( GtkWidget *widget, VikLayerPara
         rv.d = gtk_spin_button_get_value ( GTK_SPIN_BUTTON(widget) );
       break;
     case VIK_LAYER_WIDGET_ENTRY:
+    case VIK_LAYER_WIDGET_PASSWORD:
       rv.s = gtk_entry_get_text ( GTK_ENTRY(widget) );
       break;
     case VIK_LAYER_WIDGET_FILEENTRY:
@@ -337,9 +355,16 @@ VikLayerParamData *a_uibuilder_run_dialog ( GtkWindow *parent, VikLayerParam *pa
                         VikLayerParamData *params_defaults )
 {
     VikLayerParamData *paramdatas = g_new(VikLayerParamData, params_count);
-    if ( a_uibuilder_properties_factory ( parent, params, params_count, groups, groups_count,
-                                uibuilder_run_setparam, paramdatas, params,
-                                uibuilder_run_getparam, params_defaults ) > 0 ) {
+    if ( a_uibuilder_properties_factory ( parent, 
+                                         params, 
+                                         params_count, 
+                                         groups, 
+                                         groups_count,
+                                         (gpointer) uibuilder_run_setparam, 
+                                         paramdatas, 
+                                         params,
+                                         (gpointer) uibuilder_run_getparam, 
+                                         params_defaults ) > 0 ) {
 
       return paramdatas;
     }