break;
}
}
- gtk_combo_box_set_active ( GTK_COMBO_BOX ( rv ), data.u );
+ else
+ gtk_combo_box_set_active ( GTK_COMBO_BOX ( rv ), data.u );
+ }
+ else if ( param->type == VIK_LAYER_PARAM_STRING && param->widget_data )
+ {
+ gchar **pstr = param->widget_data;
+ rv = GTK_WIDGET ( gtk_combo_box_entry_new_text () );
+ if ( data.s )
+ gtk_combo_box_append_text ( GTK_COMBO_BOX ( rv ), data.s );
+ while ( *pstr )
+ gtk_combo_box_append_text ( GTK_COMBO_BOX ( rv ), *(pstr++) );
+ if ( data.s )
+ gtk_combo_box_set_active ( GTK_COMBO_BOX ( rv ), 0 );
}
break;
#endif
if ( param->extra_widget_data ) /* map of alternate uint values for options */
{
int i;
- int nb_elem = g_list_length(param->widget_data);
+ int nb_elem = g_list_length(param->widget_data);
for ( i = 0; i < nb_elem; i++ )
if ( GPOINTER_TO_UINT ( g_list_nth_data(param->extra_widget_data, i) ) == data.u )
{
break;
case VIK_LAYER_WIDGET_COMBOBOX:
#ifndef GTK_2_2
- rv.i = gtk_combo_box_get_active ( GTK_COMBO_BOX(widget) );
- if ( rv.i == -1 ) rv.i = 0;
- rv.u = rv.i;
- if ( param->extra_widget_data )
- rv.u = ((guint *)param->extra_widget_data)[rv.u];
+ if ( param->type == VIK_LAYER_PARAM_UINT )
+ {
+ rv.i = gtk_combo_box_get_active ( GTK_COMBO_BOX(widget) );
+ if ( rv.i == -1 ) rv.i = 0;
+ rv.u = rv.i;
+ if ( param->extra_widget_data )
+ rv.u = ((guint *)param->extra_widget_data)[rv.u];
+ }
+ if ( param->type == VIK_LAYER_PARAM_STRING)
+ {
+ rv.s = gtk_combo_box_get_active_text ( GTK_COMBO_BOX(widget) );
+ g_debug("%s: %s", __FUNCTION__, rv.s);
+ }
break;
#endif
case VIK_LAYER_WIDGET_RADIOGROUP: