[Gd-chatter] r11393 - branches/opendylan-melange/gtk-duim

hannes at gwydiondylan.org hannes at gwydiondylan.org
Thu Jun 7 19:46:30 CEST 2007


Author: hannes
Date: Thu Jun  7 19:46:28 2007
New Revision: 11393

Modified:
   branches/opendylan-melange/gtk-duim/gtk-dialogs.dylan
Log:
Job: fd

add buttons to open and save dialog


Modified: branches/opendylan-melange/gtk-duim/gtk-dialogs.dylan
==============================================================================
--- branches/opendylan-melange/gtk-duim/gtk-dialogs.dylan	(original)
+++ branches/opendylan-melange/gtk-duim/gtk-dialogs.dylan	Thu Jun  7 19:46:28 2007
@@ -344,25 +344,28 @@
   ignore(if-exists);
   let _port     = port(owner);
   let parent-widget = mirror-widget(sheet-mirror(owner));
-  let mtitle = title | if (direction == #"output") "Save File" else "Open File" end;
-  let action = if (direction == #"output")
-                 $GTK-FILE-CHOOSER-ACTION-SAVE
-               else
-                 $GTK-FILE-CHOOSER-ACTION-OPEN
-               end;
-  let dialog = gtk-file-chooser-dialog-new (mtitle,
-                                            parent-widget,
-                                            action,
-                                            null-pointer(<gchar*>));
-  if (default)
-    gtk-file-chooser-set-filename(dialog, default)
-  end;
-  let filename =
-    if (gtk-dialog-run (dialog) == $GTK-RESPONSE-ACCEPT)
-      gtk-file-chooser-get-filename(dialog); // FIXME: leaks the filename C string
+  let (mtitle, action, second-name)
+    = if (direction == #"output")
+        values("Save File", $GTK-FILE-CHOOSER-ACTION-SAVE, $GTK-STOCK-SAVE)
+      else
+        values("Open File", $GTK-FILE-CHOOSER-ACTION-OPEN, $GTK-STOCK-OPEN);
+      end;
+  with-gdk-lock
+    let dialog
+      = gtk-file-chooser-dialog-new (title | mtitle, parent-widget, action,
+                                     null-pointer(<gchar*>));
+    gtk-dialog-add-button(dialog, $GTK-STOCK-CANCEL, $GTK-RESPONSE-CANCEL);
+    gtk-dialog-add-button(dialog, second-name, $GTK-RESPONSE-ACCEPT);
+    if (default)
+      gtk-file-chooser-set-filename(dialog, default)
     end;
-  gtk-widget-destroy(dialog);
-  values(filename, #f)
+    let filename =
+      if (gtk-dialog-run (dialog) == $GTK-RESPONSE-ACCEPT)
+        gtk-file-chooser-get-filename(dialog); // FIXME: leaks the filename C string
+      end;
+    gtk-widget-destroy(dialog);
+    values(filename, #f)
+  end;
 end method do-choose-file;
 
 



More information about the chatter mailing list