]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/dialog.cpp
* reactivated WXY_Print function to generate screenshots from the xy window
[xonotic/netradiant.git] / radiant / dialog.cpp
index 4f71d41b2bfb65fc8c49670c26c365415b0c7648..e3324c6763bee9712cbec1e301b9c332693013e9 100644 (file)
@@ -130,13 +130,13 @@ void Dialog::UpdateData (bool retrieve)
   DLG_DATA *data;
   GSList *lst;
   char buf[32];
-  
+
   if (retrieve)
     {
     for (lst = m_pDataList; lst != NULL; lst = g_slist_next (lst))
       {
       data = (DLG_DATA*)lst->data;
-      
+
       switch (data->type)
         {
         case DLG_CHECK_BOOL:
@@ -181,14 +181,14 @@ void Dialog::UpdateData (bool retrieve)
           char *label;
           const char *entry;
           int i;
-          
+
           *(int*)data->buffer = -1;
           entry = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (data->object)->entry));
-          
+
           for (i = 0; lst != NULL; lst = g_list_next (lst))
             {
             gtk_label_get (GTK_LABEL (GTK_BIN (lst->data)->child), &label);
-            
+
             if (strcmp (label, entry) == 0)
               {
               *(int*)data->buffer = i;
@@ -196,7 +196,13 @@ void Dialog::UpdateData (bool retrieve)
               }
             i++;
             }
-          }    break;
+          }
+                 break;
+               case DLG_COMBO_BOX_INT: {
+                       *(int*)data->buffer = gtk_combo_box_get_active( GTK_COMBO_BOX( data->object ) );
+               }
+                       break;
+
         }
       }
     }
@@ -241,20 +247,26 @@ void Dialog::UpdateData (bool retrieve)
         case DLG_ADJ_INT:
           gtk_adjustment_set_value (GTK_ADJUSTMENT (data->object), (*(int*)data->buffer));
           break;
-        case DLG_COMBO_INT:
-          {
+        case DLG_COMBO_INT: {
           GList *lst = GTK_LIST (GTK_COMBO (data->object)->list)->children;
-          char *entry = "";
-          
+          char *entry = NULL;
+
           if (*(int*)data->buffer != -1)
             {
             lst = g_list_nth (lst, *(int*)data->buffer);
             if (lst != NULL)
               gtk_label_get (GTK_LABEL (GTK_BIN (lst->data)->child), &entry);
             }
-          
-          gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (data->object)->entry), entry);
-          }    break;
+               if (entry)
+                       gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (data->object)->entry), entry);
+               else
+                       gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (data->object)->entry), "");
+          }
+                 break;
+               case DLG_COMBO_BOX_INT: {
+                       gtk_combo_box_set_active( GTK_COMBO_BOX( data->object ), *(int*)data->buffer );
+               }
+                       break;
         }
       }
     }