src/Builder4/MainWindow.vala
[app.Builder.js] / src / Builder4 / MainWindow.vala
index 1298dda..83382ef 100644 (file)
@@ -38,6 +38,8 @@ public class Xcls_MainWindow : Object
     public Xcls_addfilebutton addfilebutton;
     public Xcls_delprojectbutton delprojectbutton;
     public Xcls_statusbar statusbar;
+    public Xcls_search_entry search_entry;
+    public Xcls_search_results search_results;
     public Xcls_statusbar_errors statusbar_errors;
     public Xcls_statusbar_warnings statusbar_warnings;
     public Xcls_statusbar_depricated statusbar_depricated;
@@ -104,6 +106,26 @@ public class Xcls_MainWindow : Object
             Resources.singleton().checkResources();
         
         });
+        this.el.key_release_event.connect( (event) => {
+            
+            if (this.search_entry.el.is_visible()) {
+                       if (event.keyval == Gdk.Key.f && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
+                           print("SAVE: ctrl-f  pressed");
+                               this.search_entry.el.grab_focus();
+                           return false;
+                       }
+                       
+                         if (event.keyval == Gdk.Key.g && (event.state & Gdk.ModifierType.CONTROL_MASK ) > 0 ) {
+                           print("SAVE: ctrl-g  pressed");
+                               this.search_entry.forwardSearch(true);
+                           return false;
+                       }
+               }    
+           // print(event.key.keyval)
+            
+            return false;
+        
+        });
     }
 
     // user defined functions
@@ -2004,19 +2026,20 @@ public class Xcls_MainWindow : Object
             //listeners
             this.el.clicked.connect( () => {
                 // create a new file in project..
-                
+                print("add file selected\n");
                 // what's the currently selected project...
                 var proj = _this.windowstate.left_projects.getSelectedProject();
                 
                 if (proj == null) {
+                       print("no project selected?\n");
                     return  ;
                 }
                 
-                
+                print("creating file?");
                 
                 var f = JsRender.JsRender.factory(proj.xtype,  proj, "");
                 _this.project = proj;
-                
+                    print("showing popup?");
                  _this.windowstate.file_details.show(
                    f, this.el
                 );
@@ -2221,9 +2244,12 @@ public class Xcls_MainWindow : Object
             var child_1 = new Xcls_statusbar( _this );
             child_1.ref();
             this.el.pack_start (  child_1.el , true,true,0 );
-            var child_2 = new Xcls_MenuBar69( _this );
+            var child_2 = new Xcls_search_entry( _this );
             child_2.ref();
-            this.el.pack_end (  child_2.el , false,true,0 );
+            this.el.pack_start (  child_2.el , false,true,0 );
+            var child_3 = new Xcls_MenuBar70( _this );
+            child_3.ref();
+            this.el.pack_end (  child_3.el , false,true,0 );
         }
 
         // user defined functions
@@ -2294,7 +2320,100 @@ public class Xcls_MainWindow : Object
         // user defined functions
     }
 
-    public class Xcls_MenuBar69 : Object
+    public class Xcls_search_entry : Object
+    {
+        public Gtk.SearchEntry el;
+        private Xcls_MainWindow  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_search_entry(Xcls_MainWindow _owner )
+        {
+            _this = _owner;
+            _this.search_entry = this;
+            this.el = new Gtk.SearchEntry();
+
+            // my vars (dec)
+
+            // set gobject values
+
+            // init method
+
+            var description =   Pango.FontDescription.from_string("monospace");
+               description.set_size(8000);
+                this.el.override_font(description);
+
+            //listeners
+            this.el.key_press_event.connect( (event) => {
+                
+               if (event.keyval == Gdk.Key.Return) {
+                       this.forwardSearch(false);
+                   return true;
+            
+               }    
+               // print(event.key.keyval)
+                
+                return false;
+            
+            });
+            this.el.changed.connect( () => {
+               if (this.el.text == "") {
+                       return;
+               }
+               var res = 0;
+               switch(_this.windowstate.state) {
+                       case WindowState.State.CODEONLY:
+                       case WindowState.State.CODE:
+                               // search the code being edited..
+                               res = _this.windowstate.code_editor.search(this.el.text);
+                               
+                               break;
+                       case WindowState.State.PREVIEW:
+                               if (_this.windowstate.file.xtype == "Gtk") {
+                                        res = _this.windowstate.window_gladeview.search(this.el.text);
+                               } else { 
+                                        res = _this.windowstate.window_rooview.search(this.el.text);                   
+                               }
+                       
+                       
+                               break;
+               }
+               if (res > 0) {
+                       _this.search_results.el.label = "%d Matches".printf(res);
+               } else {
+                       _this.search_results.el.label = "No Matches";
+               }
+                       
+               
+               
+            });
+        }
+
+        // user defined functions
+        public void forwardSearch (bool change_focus) {
+               switch(_this.windowstate.state) {
+                       case WindowState.State.CODEONLY:
+                       case WindowState.State.CODE:
+                               // search the code being edited..
+                               _this.windowstate.code_editor.forwardSearch(change_focus);
+                               
+                               break;
+                       case WindowState.State.PREVIEW:
+                               if (_this.windowstate.file.xtype == "Gtk") {
+                                       _this.windowstate.window_gladeview.forwardSearch(change_focus);
+                               } else { 
+                                        _this.windowstate.window_rooview.forwardSearch(change_focus);
+                               }
+                       
+                               break;
+               }
+               
+        }
+    }
+
+    public class Xcls_MenuBar70 : Object
     {
         public Gtk.MenuBar el;
         private Xcls_MainWindow  _this;
@@ -2303,7 +2422,7 @@ public class Xcls_MainWindow : Object
             // my vars (def)
 
         // ctor
-        public Xcls_MenuBar69(Xcls_MainWindow _owner )
+        public Xcls_MenuBar70(Xcls_MainWindow _owner )
         {
             _this = _owner;
             this.el = new Gtk.MenuBar();
@@ -2311,26 +2430,96 @@ public class Xcls_MainWindow : Object
             // my vars (dec)
 
             // set gobject values
-            var child_0 = new Xcls_MenuItem70( _this );
+            var child_0 = new Xcls_search_results( _this );
             child_0.ref();
             this.el.add (  child_0.el  );
-            var child_1 = new Xcls_statusbar_errors( _this );
+            var child_1 = new Xcls_MenuItem73( _this );
             child_1.ref();
             this.el.add (  child_1.el  );
-            var child_2 = new Xcls_statusbar_warnings( _this );
+            var child_2 = new Xcls_statusbar_errors( _this );
             child_2.ref();
             this.el.add (  child_2.el  );
-            var child_3 = new Xcls_statusbar_depricated( _this );
+            var child_3 = new Xcls_statusbar_warnings( _this );
             child_3.ref();
             this.el.add (  child_3.el  );
-            var child_4 = new Xcls_statusbar_run( _this );
+            var child_4 = new Xcls_statusbar_depricated( _this );
             child_4.ref();
             this.el.add (  child_4.el  );
+            var child_5 = new Xcls_statusbar_run( _this );
+            child_5.ref();
+            this.el.add (  child_5.el  );
         }
 
         // user defined functions
     }
-    public class Xcls_MenuItem70 : Object
+    public class Xcls_search_results : Object
+    {
+        public Gtk.ImageMenuItem el;
+        private Xcls_MainWindow  _this;
+
+
+            // my vars (def)
+        public Xcls_ValaCompileErrors popup;
+
+        // ctor
+        public Xcls_search_results(Xcls_MainWindow _owner )
+        {
+            _this = _owner;
+            _this.search_results = this;
+            this.el = new Gtk.ImageMenuItem();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.always_show_image = true;
+            this.el.label = "Matches";
+            var child_0 = new Xcls_Image72( _this );
+            child_0.ref();
+            this.el.set_image (  child_0.el  );
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+            /*
+                if (this.popup == null) {
+                    this.popup = new Xcls_ValaCompileErrors();
+                    this.popup.window = _this;
+                }
+               
+                
+                this.popup.show(this.notices, this.el);
+                */
+                return true;
+            });
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Image72 : Object
+    {
+        public Gtk.Image el;
+        private Xcls_MainWindow  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Image72(Xcls_MainWindow _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Image();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.icon_name = "system-search";
+            this.el.sensitive = false;
+        }
+
+        // user defined functions
+    }
+
+
+    public class Xcls_MenuItem73 : Object
     {
         public Gtk.MenuItem el;
         private Xcls_MainWindow  _this;
@@ -2339,7 +2528,7 @@ public class Xcls_MainWindow : Object
             // my vars (def)
 
         // ctor
-        public Xcls_MenuItem70(Xcls_MainWindow _owner )
+        public Xcls_MenuItem73(Xcls_MainWindow _owner )
         {
             _this = _owner;
             this.el = new Gtk.MenuItem();
@@ -2376,7 +2565,7 @@ public class Xcls_MainWindow : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.label = "Errors";
-            var child_0 = new Xcls_Image72( _this );
+            var child_0 = new Xcls_Image75( _this );
             child_0.ref();
             this.el.set_image (  child_0.el  );
 
@@ -2401,7 +2590,7 @@ public class Xcls_MainWindow : Object
         
         }
     }
-    public class Xcls_Image72 : Object
+    public class Xcls_Image75 : Object
     {
         public Gtk.Image el;
         private Xcls_MainWindow  _this;
@@ -2410,7 +2599,7 @@ public class Xcls_MainWindow : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Image72(Xcls_MainWindow _owner )
+        public Xcls_Image75(Xcls_MainWindow _owner )
         {
             _this = _owner;
             this.el = new Gtk.Image();
@@ -2448,7 +2637,7 @@ public class Xcls_MainWindow : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.label = "Warnings";
-            var child_0 = new Xcls_Image74( _this );
+            var child_0 = new Xcls_Image77( _this );
             child_0.ref();
             this.el.set_image (  child_0.el  );
 
@@ -2472,7 +2661,7 @@ public class Xcls_MainWindow : Object
         
         }
     }
-    public class Xcls_Image74 : Object
+    public class Xcls_Image77 : Object
     {
         public Gtk.Image el;
         private Xcls_MainWindow  _this;
@@ -2481,7 +2670,7 @@ public class Xcls_MainWindow : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Image74(Xcls_MainWindow _owner )
+        public Xcls_Image77(Xcls_MainWindow _owner )
         {
             _this = _owner;
             this.el = new Gtk.Image();
@@ -2519,7 +2708,7 @@ public class Xcls_MainWindow : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.label = "Depricated";
-            var child_0 = new Xcls_Image76( _this );
+            var child_0 = new Xcls_Image79( _this );
             child_0.ref();
             this.el.set_image (  child_0.el  );
 
@@ -2544,7 +2733,7 @@ public class Xcls_MainWindow : Object
         
         }
     }
-    public class Xcls_Image76 : Object
+    public class Xcls_Image79 : Object
     {
         public Gtk.Image el;
         private Xcls_MainWindow  _this;
@@ -2553,7 +2742,7 @@ public class Xcls_MainWindow : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Image76(Xcls_MainWindow _owner )
+        public Xcls_Image79(Xcls_MainWindow _owner )
         {
             _this = _owner;
             this.el = new Gtk.Image();
@@ -2589,20 +2778,26 @@ public class Xcls_MainWindow : Object
             // set gobject values
             this.el.always_show_image = true;
             this.el.label = "Run";
-            var child_0 = new Xcls_Image78( _this );
+            var child_0 = new Xcls_Image81( _this );
             child_0.ref();
             this.el.set_image (  child_0.el  );
 
             //listeners
             this.el.button_press_event.connect( () => {
-               _this.window.windowstate.valasource.spawnExecute(_this.file);
-                return true;
+               if (_this.windowstate.file == null) {
+                       return true;
+               }
+               _this.windowstate.valasource.spawnExecute(_this.windowstate.file);
+               
+               _this.windowstate.compile_results.show(this.el,true);
+               
+               return true;
             });
         }
 
         // user defined functions
     }
-    public class Xcls_Image78 : Object
+    public class Xcls_Image81 : Object
     {
         public Gtk.Image el;
         private Xcls_MainWindow  _this;
@@ -2611,7 +2806,7 @@ public class Xcls_MainWindow : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Image78(Xcls_MainWindow _owner )
+        public Xcls_Image81(Xcls_MainWindow _owner )
         {
             _this = _owner;
             this.el = new Gtk.Image();