sync
[gitlive] / StatusIcon.vala
index 63feced..cd3fac3 100644 (file)
 
 
 using Gtk;
-
+/*
 
 static int main (string[] args) {
     // A reference to our file
     Gtk.init (ref args);
-    new StatusIcon();
+    new StatusIconA();
  
     Gtk.main ();
     return 0;
      
 
 }
+ */
 
 
-public StatusIconA statusicon;
+//public StatusIconA statusicon;
  
-class StatusIconA : StatusIcon {
+public class StatusIconA : StatusIcon {
 
-    bool paused = false;
+    public bool paused = false;
+    public static StatusIconA statusicon;
      
     public StatusIconA() {
         
         statusicon = this;
         
-        
          //title : 'gitlive',
         this.stock = Gtk.Stock.REFRESH;
         this.tooltip_text = "GitLive";
-        this.title = "gitlive";
+        this.title = "vgitlive";
         
-        this.set_name("gitlive");
-       
+        this.set_name("vgitlive");
+        this.set_visible(true);      
         
         var menu = new MenuA();
                  
          
-        this.popup_menu.connect( (button,event_time) =>{
+        this.activate.connect( () =>{
             
             //print(Array.prototype.slice.call(arguments).join(','));
             
             //var menu = this.get('menu');
             
-            this.menu.show_all();
+            menu.show_all();
             
             if (this.paused) {
                 menu.resume.show();
@@ -70,13 +70,13 @@ class StatusIconA : StatusIcon {
                 menu.resume.hide();
                 menu.pause.show();
             }
-             
+              
             //Gtk.get_current_event_device ()
             menu.popup(
                     
                         null, null,
-                        null, button,
-                        event_time, null
+                        this.position_menu, 0,
+                         Gtk.get_current_event_time()
             );
                         
             
@@ -105,6 +105,14 @@ class StatusIconA : StatusIcon {
             this.append(this.pause);
             this.resume = new ImageMenuItemB();
             this.append(this.resume);
+            this.append(new ImageMenuItemC());
+            this.append(new ImageMenuItemD());
+            this.append(new ImageMenuItemE());
+            this.append(new ImageMenuItemF());
+            this.append(new ImageMenuItemG());
+            
+            
+            
         }
         
         
@@ -112,15 +120,20 @@ class StatusIconA : StatusIcon {
             
             public ImageMenuItemA()
             {
-                this.set_from_stock( Gtk.Stock.MEDIA_PAUSE );
+                //this.set_from_stock( Gtk.Stock.MEDIA_PAUSE );
+                
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.MEDIA_PAUSE,Gtk.IconSize.MENU );
+                this.set_image (image);
+                
                 this.label= "Pause Commits";
                 this.always_show_image = true;
                 this.accel_group = null;
                 
                 this.activate.connect( () => {
                     statusicon.paused = true;
-                    
-                    //GitMonitor.GitMonitor.stop();
+                    GitMonitor.gitmonitor.stop();
+
                    // this.el.label  = status ? 'Resume' : 'Pause';
                     statusicon.set_from_stock( Gtk.Stock.MEDIA_PAUSE );
                     
@@ -131,17 +144,20 @@ class StatusIconA : StatusIcon {
             
             
         }
-         class ImageMenuItemB : ImageMenuItem {
+        class ImageMenuItemB : ImageMenuItem {
             
             public ImageMenuItemB()
             {
-                this.set_from_stock( Gtk.Stock.MEDIA_PLAY );
+                
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.MEDIA_PLAY,Gtk.IconSize.MENU );
+               this.set_image (image);
                 this.label= "Start Commits";
                 this.always_show_image = true;
                 this.accel_group = null;
                 
                 this.activate.connect( () => {
-                    //GitMonitor.GitMonitor.start();
+                    GitMonitor.gitmonitor.start();
                     statusicon.paused = false;
                     
                     //
@@ -150,32 +166,26 @@ class StatusIconA : StatusIcon {
                     
                     
                 });
-                //    id : 'pause',
             }
             
             
         }
-    }
-}
-    
-    /*
+        
+        class ImageMenuItemC : ImageMenuItem {
+            
+            public ImageMenuItemC()
+            {
                 
-                {
-                    init : function() {
-                        this.el = XObject.isSeed ?
-                            new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_FULLSCREEN)
-                            : new Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_FULLSCREEN, null);
-                      
-                        XObject.prototype.init.call(this);
-                    },
-                    label: 'Pull (Refresh) All',
-                    always_show_image : true,
-                    accel_group : null,
-                    //label: 'Pause',
-                    pack:  'append',
-                    listeners : {
-                        activate : function () {
-                            imports.GitMonitor.GitMonitor.stop();
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.FULLSCREEN,Gtk.IconSize.MENU );
+               this.set_image (image);
+                this.label= "Pull (Refresh) All";
+                this.always_show_image = true;
+                this.accel_group = null;
+                
+                this.activate.connect( () => {
+                    /*
+                   imports.GitMonitor.GitMonitor.stop();
                            
                             
                             var tr = imports.Scm.Repo.Repo.list();
@@ -216,106 +226,109 @@ class StatusIconA : StatusIcon {
                              
                           
                             imports.GitMonitor.GitMonitor.start();
-                        }   
-                    }
-                },
-                {
-                    init : function() {
-                        this.el = XObject.isSeed ?
-                            new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_SAVE)
-                            : new Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_SAVE, null);
-                         
-                        XObject.prototype.init.call(this);
-                    },
-                    label: 'Update Timesheet',
-                    always_show_image : true,
-                    accel_group : null,
                     
-                    //label: 'Pause',
-                    pack:  'append',
-                    listeners : {
-                        activate : function () {
-                            var ret = imports.FixBug.FixBug.show();
-                            
-                        }
-                    }
-                },
-                
+                    */
+                });
+            }
+            
+            
+        }
+        
+        
+        class ImageMenuItemD : ImageMenuItem {
+            
+            public ImageMenuItemD()
+            {
                 
-                {
-                    init : function() {
-                        this.el = XObject.isSeed ?
-                            new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_FULLSCREEN)
-                            : new Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_FULLSCREEN, null);
-                         XObject.prototype.init.call(this);
-                    },
-                    label: 'Manage Clones',
-                    always_show_image : true,
-                    accel_group : null,
-                    
-                    //label: 'Pause',
-                    pack:  'append',
-                    listeners : {
-                        activate : function () {
-                             var ret = imports.Clones.Clones.show();
-                            
-                        }
-                    }
-                },
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.SAVE,Gtk.IconSize.MENU );
+               this.set_image (image);
+                this.label= "Update Timesheet";
+                this.always_show_image = true;
+                this.accel_group = null;
                 
+                this.activate.connect( () => {
+                 //var ret = imports.FixBug.FixBug.show();
+                });
+            }
+            
+            
+        }
+        
+        class ImageMenuItemE : ImageMenuItem {
+            
+            public ImageMenuItemE()
+            {
                 
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.FULLSCREEN,Gtk.IconSize.MENU );
+                this.set_image (image);
+                this.label= "Manage Clones";
+                this.always_show_image = true;
+                this.accel_group = null;
                 
+                this.activate.connect( () => {
+                 //var ret = imports.Clones.Clones.show();
+                });
+            }
             
-                {
-                    init : function() {
-                        this.el = XObject.isSeed ?
-                            new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_ABOUT)
-                            : new Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_ABOUT, null);
-                   
-                        XObject.prototype.init.call(this);
-                    },
-                    label: 'About GitLive',
-                    pack:  'append',
-                    listeners : {
-                        activate : function () {
-                            var msg = new Gtk.AboutDialog({
-                                program_name : "Git Live",
-                                version: '0.3',
-                                website: 'http://www.roojs.org/index.php/projects/gitlive.html',
-                                website_label: 'RooJS Consulting',
-                                license : 'LGPL'
-                            });
-                            msg.set_authors([ "Alan Knowles <alan@roojs.com>" ]);
-                            msg.run();
-                            msg.destroy();
-                        }
-                    }
-                },
+            
+        }
+        
+        class ImageMenuItemF : ImageMenuItem {
+            
+            public ImageMenuItemF()
+            {
                 
-                {
-                    init : function() {
-                        
-                        this.el = XObject.isSeed ?
-                            new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_QUIT)
-                            : new Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_QUIT, null);
-                     
-                        XObject.prototype.init.call(this);
-                    },
-                    label: 'Quit',
-                    pack:  'append',
-                    listeners : {
-                        activate : function () {
-                            Seed.quit();
-                        }
-                    }
-                }
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.ABOUT,Gtk.IconSize.MENU );
+                this.set_image (image);
+                this.label= "About Gitlive";
+                this.always_show_image = true;
+                this.accel_group = null;
                 
+                this.activate.connect( () => {
+                 //var ret = imports.Clones.Clones.show();
+                 
+                    var msg = new Gtk.AboutDialog();
+                    msg.program_name = "Git Live";
+                    msg.version= "0.3";
+                    msg.website= "http://www.roojs.org/index.php/projects/gitlive.html";
+                    msg.website_label= "Roo J Solutions Ltd.";
+                    msg.license = "LGPL";
+                    msg.authors = { "Alan Knowles <alan@roojs.com>" };
+                    msg.run();
+                    msg.destroy();
+                });
+            }
+            
+            
+        }
+        
+         class ImageMenuItemG : ImageMenuItem {
+            
+            public ImageMenuItemG()
+            {
                 
-            ]
+                var  image = new Gtk.Image();
+                image.set_from_stock(Gtk.Stock.QUIT,Gtk.IconSize.MENU );
+               this.set_image (image);
+                this.label= "Quit";
+                this.always_show_image = true;
+                this.accel_group = null;
+                
+                this.activate.connect( () => {
+                    // confirm?
+                    Gtk.main_quit();
+                 //var ret = imports.Clones.Clones.show();
+                 });
+            }
+            
+            
         }
-    ]
-    
-});
-*/
-
-
+        
+    }
+}
+      
+                
+