[seed] ClutterPad: Use GtkBuilder for open/save dialogs.



commit 86644a18a6de71ed1120be29979aff94b8892f8c
Author: Tim Horton <hortont svn gnome org>
Date:   Wed May 13 10:36:39 2009 -0400

    ClutterPad: Use GtkBuilder for open/save dialogs.
---
 examples/clutter-pad/clutter-pad.ui |  112 +++++++++++++++++++++++++++++++++++
 examples/clutter-pad/main.js        |   30 ++++------
 2 files changed, 123 insertions(+), 19 deletions(-)

diff --git a/examples/clutter-pad/clutter-pad.ui b/examples/clutter-pad/clutter-pad.ui
index ffb1312..bf09ad3 100644
--- a/examples/clutter-pad/clutter-pad.ui
+++ b/examples/clutter-pad/clutter-pad.ui
@@ -137,4 +137,116 @@
       <column type="gchararray"/>
     </columns>
   </object>
+  <object class="GtkFileChooserDialog" id="open_file_dialog">
+    <property name="border_width">5</property>
+    <property name="type_hint">normal</property>
+    <property name="action">open</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="open_cancel_button">
+                <property name="label" translatable="yes">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="open_accept_button">
+                <property name="label" translatable="yes">gtk-open</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">open_cancel_button</action-widget>
+      <action-widget response="1">open_accept_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkFileChooserDialog" id="save_file_dialog">
+    <property name="border_width">5</property>
+    <property name="type_hint">normal</property>
+    <property name="action">save</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="save_cancel_button">
+                <property name="label" translatable="yes">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="save_accept_button">
+                <property name="label" translatable="yes">gtk-save</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">save_cancel_button</action-widget>
+      <action-widget response="1">save_accept_button</action-widget>
+    </action-widgets>
+  </object>
 </interface>
diff --git a/examples/clutter-pad/main.js b/examples/clutter-pad/main.js
index 9793f23..8c14ba4 100755
--- a/examples/clutter-pad/main.js
+++ b/examples/clutter-pad/main.js
@@ -37,16 +37,10 @@ function new_file()
 
 function open_file()
 {
-	var file_chooser = new Gtk.FileChooserDialog();
-	var file_filter = new Gtk.FileFilter();
-	
-	file_filter.add_mime_type("text/javascript");
-	file_chooser.set_filter(file_filter);
-	file_chooser.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
-	file_chooser.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT);
-	file_chooser.set_action(Gtk.FileChooserAction.OPEN);
+	file_chooser = ui.get_object("open_file_dialog");
+	file_chooser.set_filter(js_file_filter);
 
-	if(file_chooser.run() == Gtk.ResponseType.ACCEPT)
+	if(file_chooser.run())
 	{
 		load_file(file_chooser.get_filename());
 	}
@@ -58,16 +52,10 @@ function save_file(filename)
 {
 	if(current_filename == "")
 	{
-		var file_chooser = new Gtk.FileChooserDialog();
-		var file_filter = new Gtk.FileFilter();
-		
-		file_filter.add_mime_type("text/javascript");
-		file_chooser.set_filter(file_filter);
-		file_chooser.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
-		file_chooser.add_button(Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT);
-		file_chooser.set_action(Gtk.FileChooserAction.SAVE);
-
-		if(file_chooser.run() == Gtk.ResponseType.ACCEPT)
+		file_chooser = ui.get_object("save_file_dialog");
+		file_chooser.set_filter(js_file_filter);
+
+		if(file_chooser.run())
 		{
 			current_filename = file_chooser.get_filename();
 			window.title = "ClutterPad - " + current_filename;
@@ -146,6 +134,8 @@ function execute_file(button)
 
 var current_filename = "";
 var stage_manager = Clutter.StageManager.get_default();
+var js_file_filter = new Gtk.FileFilter();
+js_file_filter.add_mime_type("text/javascript");
 var source_lang_mgr = new GtkSource.SourceLanguageManager();
 var js_lang = source_lang_mgr.get_language("js");
 var context = new sandbox.Context();
@@ -155,6 +145,8 @@ var ui = new Gtk.Builder();
 ui.add_from_file("clutter-pad.ui");
 
 var window = ui.get_object("window");
+window.signal.hide.connect(Gtk.main_quit);
+
 var clutter = ui.get_object("clutter");
 var stage = clutter.get_stage();
 stage_manager.set_default_stage(stage);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]