sync
authorAlan Knowles <alan@roojs.com>
Fri, 16 Nov 2018 04:29:27 +0000 (12:29 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 16 Nov 2018 04:29:27 +0000 (12:29 +0800)
RepoStatusPopover.bjs [new file with mode: 0644]
RepoStatusPopover.vala [new file with mode: 0644]

diff --git a/RepoStatusPopover.bjs b/RepoStatusPopover.bjs
new file mode 100644 (file)
index 0000000..9a15553
--- /dev/null
@@ -0,0 +1,137 @@
+{
+ "name" : "RepoStatusPopover",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/gitlive/RepoStatusPopover.bjs",
+ "permname" : "",
+ "modOrder" : "",
+ "build_module" : "gitlive",
+ "items" : [
+  {
+   "GitRepo repo" : "",
+   "| void show" : " (Gtk.Widget btn, Gdk.Rectangle rect, GitRepo repo) {\n    _this.repo = repo;\n    // get the active project.\n     var lm = Gtk.SourceLanguageManager.get_default();\n                \n//    ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(\n  //      lm.get_language(\"html\")\n //   );\n  \n    //print (project.fn);\n    //project.runhtml = project.runhtml || '';\n    _this.diff_view.el.get_buffer().set_text(repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(repo.git_status);\n       \n    \t//console.log('show all');\n\tthis.el.set_modal(true);\n\tthis.el.set_relative_to(btn);\n    this.el.set_pointing_to(rect);\n  \n\t//this.el.set_position(Gtk.PositionType.RIGHT);\n\n\t// window + header?\n\t GLib.debug(\"SHOWALL - POPIP\\n\");\n\tthis.el.show_all();\n\tthis.el.set_size_request(800,500);\n//\tthis.diff_view.el.grab_focus();\n\t\n    //this.el.show_all();\n}\n",
+   "xtype" : "Popover",
+   "Gtk.PositionType position" : "Gtk.PositionType.RIGHT",
+   "$ xns" : "Gtk",
+   "bool modal" : true,
+   "uint border_width" : 0,
+   "items" : [
+    {
+     "xtype" : "Box",
+     "* pack" : "add",
+     "$ xns" : "Gtk",
+     "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
+     "border_width" : 5,
+     "$ homogeneous" : false,
+     "items" : [
+      {
+       "* pack" : "pack_start,true,true,0",
+       "xtype" : "Notebook",
+       "$ xns" : "Gtk",
+       "items" : [
+        {
+         "id" : "label_status",
+         "xtype" : "Label",
+         "* pack" : false,
+         "$ xns" : "Gtk",
+         "utf8 label" : "Status"
+        },
+        {
+         "id" : "label_diff",
+         "* pack" : false,
+         "xtype" : "Label",
+         "$ xns" : "Gtk",
+         "utf8 label" : "Diff"
+        },
+        {
+         "* pack" : "append_page,_this.label_status.el",
+         "xtype" : "Box",
+         "gboolean homogeneous" : false,
+         "$ xns" : "Gtk",
+         "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
+         "items" : [
+          {
+           "* pack" : "pack_start,true,true,0",
+           "xtype" : "ScrolledWindow",
+           "$ xns" : "Gtk",
+           "items" : [
+            {
+             "id" : "status_view",
+             "* init" : " \n    var description =   Pango.FontDescription.from_string(\"monospace\");\n    description.set_size(9000);\n    this.el.override_font(description);",
+             "xtype" : "View",
+             "* pack" : "add",
+             "$ xns" : "GtkSource"
+            }
+           ]
+          }
+         ]
+        },
+        {
+         "* pack" : "append_page,_this.label_diff.el",
+         "xtype" : "Box",
+         "gboolean homogeneous" : false,
+         "$ xns" : "Gtk",
+         "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
+         "items" : [
+          {
+           "* pack" : "pack_start,true,true,0",
+           "xtype" : "ScrolledWindow",
+           "$ xns" : "Gtk",
+           "items" : [
+            {
+             "id" : "diff_view",
+             "* init" : " \n    var description =   Pango.FontDescription.from_string(\"monospace\");\n    description.set_size(9000);\n    this.el.override_font(description);",
+             "xtype" : "View",
+             "* pack" : "add",
+             "$ xns" : "GtkSource"
+            }
+           ]
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "* pack" : "pack_end,false,false,0",
+       "xtype" : "Box",
+       "gboolean expand" : false,
+       "$ xns" : "Gtk",
+       "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
+       "$ homogeneous" : true,
+       "gboolean vexpand" : false,
+       "items" : [
+        {
+         "listeners" : {
+          "button_press_event" : "() => {\n        _this.el.hide();\n        return false;\n}"
+         },
+         "label" : "Stash Changes",
+         "* pack" : "add",
+         "xtype" : "Button",
+         "$ xns" : "Gtk"
+        },
+        {
+         "listeners" : {
+          "button_press_event" : "() => {\n         _this.el.hide();\n        return false;\n}"
+         },
+         "label" : "Commit Changes",
+         "* pack" : "add",
+         "xtype" : "Button",
+         "$ xns" : "Gtk"
+        },
+        {
+         "listeners" : {
+          "button_press_event" : "() => {\n       _this.el.hide();\n        return false;\n}"
+         },
+         "label" : "Ignore for now",
+         "xtype" : "Button",
+         "* pack" : "add",
+         "$ xns" : "Gtk"
+        }
+       ]
+      }
+     ]
+    }
+   ]
+  }
+ ]
+}
\ No newline at end of file
diff --git a/RepoStatusPopover.vala b/RepoStatusPopover.vala
new file mode 100644 (file)
index 0000000..0e363fb
--- /dev/null
@@ -0,0 +1,455 @@
+static RepoStatusPopover  _RepoStatusPopover;
+
+public class RepoStatusPopover : Object
+{
+    public Gtk.Popover el;
+    private RepoStatusPopover  _this;
+
+    public static RepoStatusPopover singleton()
+    {
+        if (_RepoStatusPopover == null) {
+            _RepoStatusPopover= new RepoStatusPopover();
+        }
+        return _RepoStatusPopover;
+    }
+    public Xcls_label_status label_status;
+    public Xcls_label_diff label_diff;
+    public Xcls_status_view status_view;
+    public Xcls_diff_view diff_view;
+
+        // my vars (def)
+    public GitRepo repo;
+
+    // ctor
+    public RepoStatusPopover()
+    {
+        _this = this;
+        this.el = new Gtk.Popover( null );
+
+        // my vars (dec)
+
+        // set gobject values
+        this.el.border_width = 0;
+        this.el.modal = true;
+        this.el.position = Gtk.PositionType.RIGHT;
+        var child_0 = new Xcls_Box2( _this );
+        child_0.ref();
+        this.el.add (  child_0.el  );
+    }
+
+    // user defined functions
+    public void show (Gtk.Widget btn, Gdk.Rectangle rect, GitRepo repo) {
+        _this.repo = repo;
+        // get the active project.
+         var lm = Gtk.SourceLanguageManager.get_default();
+                    
+    //    ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(
+      //      lm.get_language("html")
+     //   );
+      
+        //print (project.fn);
+        //project.runhtml = project.runhtml || '';
+        _this.diff_view.el.get_buffer().set_text(repo.git_diff);
+        _this.status_view.el.get_buffer().set_text(repo.git_status);
+           
+               //console.log('show all');
+       this.el.set_modal(true);
+       this.el.set_relative_to(btn);
+        this.el.set_pointing_to(rect);
+      
+       //this.el.set_position(Gtk.PositionType.RIGHT);
+    
+       // window + header?
+        GLib.debug("SHOWALL - POPIP\n");
+       this.el.show_all();
+       this.el.set_size_request(800,500);
+    // this.diff_view.el.grab_focus();
+       
+        //this.el.show_all();
+    }
+    public class Xcls_Box2 : Object
+    {
+        public Gtk.Box el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box2(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.homogeneous = false;
+            this.el.border_width = 5;
+            var child_0 = new Xcls_Notebook3( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , true,true,0 );
+            var child_1 = new Xcls_Box12( _this );
+            child_1.ref();
+            this.el.pack_end (  child_1.el , false,false,0 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Notebook3 : Object
+    {
+        public Gtk.Notebook el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Notebook3(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Notebook();
+
+            // my vars (dec)
+
+            // set gobject values
+            var child_0 = new Xcls_label_status( _this );
+            child_0.ref();
+            var child_1 = new Xcls_label_diff( _this );
+            child_1.ref();
+            var child_2 = new Xcls_Box6( _this );
+            child_2.ref();
+            this.el.append_page (  child_2.el , _this.label_status.el );
+            var child_3 = new Xcls_Box9( _this );
+            child_3.ref();
+            this.el.append_page (  child_3.el , _this.label_diff.el );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_label_status : Object
+    {
+        public Gtk.Label el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_label_status(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.label_status = this;
+            this.el = new Gtk.Label( "Status" );
+
+            // my vars (dec)
+
+            // set gobject values
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_label_diff : Object
+    {
+        public Gtk.Label el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_label_diff(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.label_diff = this;
+            this.el = new Gtk.Label( "Diff" );
+
+            // my vars (dec)
+
+            // set gobject values
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Box6 : Object
+    {
+        public Gtk.Box el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box6(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.homogeneous = false;
+            var child_0 = new Xcls_ScrolledWindow7( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , true,true,0 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_ScrolledWindow7 : Object
+    {
+        public Gtk.ScrolledWindow el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_ScrolledWindow7(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.ScrolledWindow( null, null );
+
+            // my vars (dec)
+
+            // set gobject values
+            var child_0 = new Xcls_status_view( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_status_view : Object
+    {
+        public Gtk.SourceView el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_status_view(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.status_view = this;
+            this.el = new Gtk.SourceView();
+
+            // my vars (dec)
+
+            // init method
+
+            var description =   Pango.FontDescription.from_string("monospace");
+                description.set_size(9000);
+                this.el.override_font(description);
+        }
+
+        // user defined functions
+    }
+
+
+
+    public class Xcls_Box9 : Object
+    {
+        public Gtk.Box el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box9(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.homogeneous = false;
+            var child_0 = new Xcls_ScrolledWindow10( _this );
+            child_0.ref();
+            this.el.pack_start (  child_0.el , true,true,0 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_ScrolledWindow10 : Object
+    {
+        public Gtk.ScrolledWindow el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_ScrolledWindow10(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.ScrolledWindow( null, null );
+
+            // my vars (dec)
+
+            // set gobject values
+            var child_0 = new Xcls_diff_view( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_diff_view : Object
+    {
+        public Gtk.SourceView el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_diff_view(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.diff_view = this;
+            this.el = new Gtk.SourceView();
+
+            // my vars (dec)
+
+            // init method
+
+            var description =   Pango.FontDescription.from_string("monospace");
+                description.set_size(9000);
+                this.el.override_font(description);
+        }
+
+        // user defined functions
+    }
+
+
+
+
+    public class Xcls_Box12 : Object
+    {
+        public Gtk.Box el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box12(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.homogeneous = true;
+            this.el.expand = false;
+            this.el.vexpand = false;
+            var child_0 = new Xcls_Button13( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+            var child_1 = new Xcls_Button14( _this );
+            child_1.ref();
+            this.el.add (  child_1.el  );
+            var child_2 = new Xcls_Button15( _this );
+            child_2.ref();
+            this.el.add (  child_2.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Button13 : Object
+    {
+        public Gtk.Button el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Button13(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Button();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Stash Changes";
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+                    _this.el.hide();
+                    return false;
+            });
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Button14 : Object
+    {
+        public Gtk.Button el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Button14(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Button();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Commit Changes";
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+                     _this.el.hide();
+                    return false;
+            });
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_Button15 : Object
+    {
+        public Gtk.Button el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Button15(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Button();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Ignore for now";
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+                   _this.el.hide();
+                    return false;
+            });
+        }
+
+        // user defined functions
+    }
+
+
+
+}