Clones.bjs
[gitlive] / Clones.vala
1 static Clones  _Clones;
2
3 public class Clones : Object
4 {
5     public Gtk.Dialog el;
6     private Clones  _this;
7
8     public static Clones singleton()
9     {
10         if (_Clones == null) {
11             _Clones= new Clones();
12         }
13         return _Clones;
14     }
15     public Xcls_spinner spinner;
16     public Xcls_toolbar toolbar;
17     public Xcls_scrolled scrolled;
18     public Xcls_reposView reposView;
19     public Xcls_reposStore reposStore;
20     public Xcls_tv_autocommit tv_autocommit;
21     public Xcls_cr_autocommit cr_autocommit;
22     public Xcls_tv_autopush tv_autopush;
23     public Xcls_cr_autopush cr_autopush;
24     public Xcls_tv_autobranch tv_autobranch;
25     public Xcls_cr_autobranch cr_autobranch;
26     public Xcls_tv_repo tv_repo;
27     public Xcls_cr_repo cr_repo;
28     public Xcls_tv_active_ticket tv_active_ticket;
29     public Xcls_cr_active_ticket cr_active_ticket;
30     public Xcls_tv_current_branch tv_current_branch;
31     public Xcls_cr_current_branch cr_current_branch;
32     public Xcls_tv_last_updated tv_last_updated;
33     public Xcls_cr_last_updated cr_last_updated;
34     public Xcls_tv_all_branches tv_all_branches;
35     public Xcls_cr_all_branches cr_all_branches;
36
37         // my vars (def)
38
39     // ctor
40     public Clones()
41     {
42         _this = this;
43         this.el = new Gtk.Dialog();
44
45         // my vars (dec)
46
47         // set gobject values
48         this.el.title = "Manage Clones";
49         this.el.border_width = 3;
50         this.el.default_height = 500;
51         this.el.default_width = 1024;
52         this.el.deletable = true;
53         this.el.modal = true;
54         var child_0 = new Xcls_Box2( _this );
55         child_0.ref();
56         this.el.get_content_area().add (  child_0.el  );
57
58         //listeners
59         this.el.delete_event.connect( (self, event) => {
60             this.el.hide();
61             return true; 
62             //test  
63         });
64         this.el.response.connect( (self, response_id) =>  { 
65          
66                 this.el.hide();
67           
68         });
69     }
70
71     // user defined functions
72     public void loadAndShow () {
73         
74         _this.el.show_all();
75         
76         _this.toolbar.el.hide();
77         _this.scrolled.el.hide();
78         _this.spinner.el.show();
79         _this.spinner.el.start();       
80         
81         GitRepo.updateAll("show_clones");
82         
83         
84         
85     }
86     public void show ()    {
87     
88         GLib.debug("show clones?");
89         this.el.set_deletable(true);
90         this.el.set_gravity(Gdk.Gravity.NORTH);
91         this.el.move((Gdk.Screen.width() / 2 ) -400 ,0);
92         
93         this.el.set_default_size(
94                         int.min(1024,Gdk.Screen.width()),
95                         int.max(500,Gdk.Screen.height() - 300)
96         );
97          
98         this.el.show_all();
99         _this.reposStore.load();
100         this.el.set_keep_above(true);
101             GLib.debug("show clones = run?");
102         this.el.run();
103         // load clones..
104     //     this.get('/reposStore').load();
105         
106         //this.get('/ok_button').el.set_sensitive(false);
107         
108         // block until we return.
109     //    var run_ret = this.el.run();
110     //    if (run_ret < 1 ) {
111     //        return  "DONE";
112     //    }
113     //    print("RUN RETURN : " + run_ret);
114     //    return "DONE";
115         //print(JSON.stringify(this.get('bug').getValue()));
116        // return this.get('bug').getValue();
117         //this.success = c.success;
118     }
119     public class Xcls_Box2 : Object
120     {
121         public Gtk.Box el;
122         private Clones  _this;
123
124
125             // my vars (def)
126
127         // ctor
128         public Xcls_Box2(Clones _owner )
129         {
130             _this = _owner;
131             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
132
133             // my vars (dec)
134
135             // set gobject values
136             var child_0 = new Xcls_spinner( _this );
137             child_0.ref();
138             this.el.pack_start (  child_0.el , false,false,0 );
139             var child_1 = new Xcls_toolbar( _this );
140             child_1.ref();
141             this.el.pack_start (  child_1.el , false,false,0 );
142             var child_2 = new Xcls_scrolled( _this );
143             child_2.ref();
144             this.el.pack_end (  child_2.el , true,true,0 );
145         }
146
147         // user defined functions
148     }
149     public class Xcls_spinner : Object
150     {
151         public Gtk.Spinner el;
152         private Clones  _this;
153
154
155             // my vars (def)
156
157         // ctor
158         public Xcls_spinner(Clones _owner )
159         {
160             _this = _owner;
161             _this.spinner = this;
162             this.el = new Gtk.Spinner();
163
164             // my vars (dec)
165
166             // set gobject values
167         }
168
169         // user defined functions
170     }
171
172     public class Xcls_toolbar : Object
173     {
174         public Gtk.Box el;
175         private Clones  _this;
176
177
178             // my vars (def)
179
180         // ctor
181         public Xcls_toolbar(Clones _owner )
182         {
183             _this = _owner;
184             _this.toolbar = this;
185             this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
186
187             // my vars (dec)
188
189             // set gobject values
190             this.el.homogeneous = true;
191             var child_0 = new Xcls_Button5( _this );
192             child_0.ref();
193             this.el.add (  child_0.el  );
194         }
195
196         // user defined functions
197     }
198     public class Xcls_Button5 : Object
199     {
200         public Gtk.Button el;
201         private Clones  _this;
202
203
204             // my vars (def)
205
206         // ctor
207         public Xcls_Button5(Clones _owner )
208         {
209             _this = _owner;
210             this.el = new Gtk.Button();
211
212             // my vars (dec)
213
214             // set gobject values
215             this.el.label = "Add Repository";
216
217             // init method
218
219             {
220                this.el.get_style_context().add_class("suggested-action");
221             }
222
223             //listeners
224             this.el.clicked.connect( () => {
225                         Clone.singleton().show(this.el);
226                 
227                 
228                 
229             });
230         }
231
232         // user defined functions
233     }
234
235
236     public class Xcls_scrolled : Object
237     {
238         public Gtk.ScrolledWindow el;
239         private Clones  _this;
240
241
242             // my vars (def)
243
244         // ctor
245         public Xcls_scrolled(Clones _owner )
246         {
247             _this = _owner;
248             _this.scrolled = this;
249             this.el = new Gtk.ScrolledWindow( null, null );
250
251             // my vars (dec)
252
253             // set gobject values
254             this.el.expand = true;
255             this.el.hexpand = true;
256             this.el.shadow_type = Gtk.ShadowType.IN;
257             var child_0 = new Xcls_reposView( _this );
258             child_0.ref();
259             this.el.add (  child_0.el  );
260
261             // init method
262
263             {
264               
265                this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
266             }
267         }
268
269         // user defined functions
270     }
271     public class Xcls_reposView : Object
272     {
273         public Gtk.TreeView el;
274         private Clones  _this;
275
276
277             // my vars (def)
278
279         // ctor
280         public Xcls_reposView(Clones _owner )
281         {
282             _this = _owner;
283             _this.reposView = this;
284             this.el = new Gtk.TreeView();
285
286             // my vars (dec)
287
288             // set gobject values
289             this.el.search_column = 0;
290             this.el.activate_on_single_click = true;
291             this.el.enable_grid_lines = Gtk.TreeViewGridLines.HORIZONTAL;
292             var child_0 = new Xcls_reposStore( _this );
293             child_0.ref();
294             this.el.set_model (  child_0.el  );
295             var child_1 = new Xcls_tv_autocommit( _this );
296             child_1.ref();
297             this.el.append_column (  child_1.el  );
298             var child_2 = new Xcls_tv_autopush( _this );
299             child_2.ref();
300             this.el.append_column (  child_2.el  );
301             var child_3 = new Xcls_tv_autobranch( _this );
302             child_3.ref();
303             this.el.append_column (  child_3.el  );
304             var child_4 = new Xcls_tv_repo( _this );
305             child_4.ref();
306             this.el.append_column (  child_4.el  );
307             var child_5 = new Xcls_tv_active_ticket( _this );
308             child_5.ref();
309             this.el.append_column (  child_5.el  );
310             var child_6 = new Xcls_tv_current_branch( _this );
311             child_6.ref();
312             this.el.append_column (  child_6.el  );
313             var child_7 = new Xcls_tv_last_updated( _this );
314             child_7.ref();
315             this.el.append_column (  child_7.el  );
316             var child_8 = new Xcls_tv_all_branches( _this );
317             child_8.ref();
318             this.el.append_column (  child_8.el  );
319
320             // init method
321
322             {
323                 var selection = this.el.get_selection();
324                 selection.set_mode( Gtk.SelectionMode.SINGLE);
325             
326             
327                 var description = new Pango.FontDescription();
328                 description.set_size(10000);
329                 this.el.override_font(description);
330              
331             }
332
333             //listeners
334             this.el.row_activated.connect( (path, col)  =>  {
335             
336                 if (col.title != "Current Branch") {
337                         return;
338                 }
339                 
340                 //
341                 
342                 Gtk.TreeIter iter;
343                 _this.reposStore.el.get_iter(out iter, path);
344                 GLib.Value val;
345                 _this.reposStore.el.get_value(iter, 6, out val);
346                 var git_working_dir = (string)val;
347                 
348                 var repo = GitRepo.singleton().get(git_working_dir);
349                 
350                 Gdk.Rectangle rect;
351                 _this.reposView.el.get_cell_area(path, col, out rect);
352                 RepoStatusPopover.singleton().show(this.el, rect, repo);
353                 
354                  
355                 
356             });
357             this.el.cursor_changed.connect( ()  => {
358               // SEE SELECTION.CHANGED
359               /*
360               
361               return;
362               
363                 if (this.el.get_selection().count_selected_rows() < 1) {
364                     //nothing? - clea it?
365                     return;
366                 }
367                     var ret = {};         
368                 var model = this.get('/changedFilesStore');
369             
370                  var s = this.el.get_selection();
371                  var files = [];
372                 s.selected_foreach(function(model,p,iter) {
373                 
374                    files.push( model.get_value(iter, 0).value.get_string());
375                  
376                 });
377                 this.get('/patchview').showDiff(files); 
378                 //var value = ''+ ret.model.get_value(ret.iter, 1).value.get_string();
379                  //print("OUT?" + value);// id..
380                 // load the list in the right grid..
381                  
382                 return true;
383             */
384             });
385         }
386
387         // user defined functions
388     }
389     public class Xcls_reposStore : Object
390     {
391         public Gtk.ListStore el;
392         private Clones  _this;
393
394
395             // my vars (def)
396
397         // ctor
398         public Xcls_reposStore(Clones _owner )
399         {
400             _this = _owner;
401             _this.reposStore = this;
402             this.el = new Gtk.ListStore( 10,      typeof(string),  // 0 repo
403      typeof(string),  // 1 current branch
404      typeof(string),  // 2 all branch
405      typeof(string),  // 3 updated
406      typeof(bool),   // 4 auto commit
407      typeof(bool),   // 5 auto push
408      typeof(string),   // 6 repopath
409       typeof(string),   // 7 color highlighting?
410        typeof(bool),   // 8 auto branch,
411       typeof(string)   // 9 active Ticket
412        );
413
414             // my vars (dec)
415
416             // set gobject values
417         }
418
419         // user defined functions
420         public void load ()
421         {
422             //this.insert(citer,iter,0);
423             print("getting list");
424             var tr = GitRepo.list();
425             
426             this.el.clear();
427             
428             // fixme .. sort by last updated ...
429             
430             
431             for(var i =0 ; i < tr.length; i++) {
432                     var repo = tr.index(i);
433                     // this is done before we display stuff...
434                     //repo.loadBranches();
435                     //repo.loadStatus();
436                     
437                     Gtk.TreeIter iter;
438                     this.el.append(out iter);
439              
440                 //print(JSON.stringify(ret,null,4));
441                  //tr[i].getBranches();
442                  //tr[i].getStatus();
443                  //var hi;
444                  //try {
445                      //tr[i].debug=1;
446                  //     hi = tr[i].history('/', 1, 'branch', tr[i].currentBranch.name );
447         //             print(JSON.stringify(hi,null,4));
448                 // } catch(e) { print(e);}
449                   
450                 this.el.set_value(iter, 0,   repo.name );
451                 this.el.set_value( iter, 1, repo.currentBranch.name   );
452                 this.el.set_value( iter, 2,  repo.branchesToString()   );
453         //        this.el.set_value(ret.iter, 2, '' + repo.branches.map(
454         //                        function(e) { return e.name; 
455         //                    }).join(', ') 
456          //        );
457         //        this.el.set_value(iter, 3, '' +  (!hi  ? '??' : hi[0].changed_raw));        
458                 this.el.set_value(iter, 4, repo.is_autocommit() );                
459                 this.el.set_value(iter, 5, repo.is_autopush() );                        
460                 this.el.set_value(iter, 6,  repo.git_working_dir );  
461                 // highlight color.
462                 var cb = repo.currentBranch;
463                 //print(JSON.stringify(cb,null,4));
464                 var col = "#ffffff";
465                 
466                 if (cb.lastrev != cb.remoterev) {
467                     col =  "#f2dede";
468                     this.el.set_value( iter, 1, repo.currentBranch.name +"\n" +
469                         (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote")
470                     
471                        );
472                 }
473                 if (repo.has_local_changes) {
474                     col =  "#d9edf7";
475                     this.el.set_value( iter, 1, repo.currentBranch.name +"\nHas uncommitted changes"   );
476                 }
477                 if  ((cb.lastrev != cb.remoterev) && (repo.has_local_changes)) {
478                     col =  "#fcf8e3";
479                     this.el.set_value( iter, 1, repo.currentBranch.name +"\n" + 
480                     (repo.ahead_or_behind == "B" ? "Local is BEHIND remote" : "Local is AHEAD of remote") +
481                     "\nHas uncommitted changes"   );            
482                 }
483                 
484                 this.el.set_value(iter, 7, col  );      
485                 var ticket = repo.activeTicket;
486                 
487                 this.el.set_value(iter, 8, repo.is_auto_branch()  );      
488                 this.el.set_value(iter, 9, ticket == null ? "" : ticket.id  );      
489                 
490                 
491             }     
492             this.el.set_sort_column_id (0, Gtk.SortType.ASCENDING);
493         }
494     }
495
496     public class Xcls_tv_autocommit : Object
497     {
498         public Gtk.TreeViewColumn el;
499         private Clones  _this;
500
501
502             // my vars (def)
503
504         // ctor
505         public Xcls_tv_autocommit(Clones _owner )
506         {
507             _this = _owner;
508             _this.tv_autocommit = this;
509             this.el = new Gtk.TreeViewColumn();
510
511             // my vars (dec)
512
513             // set gobject values
514             this.el.title = "Auto Commit";
515             this.el.min_width = 50;
516             var child_0 = new Xcls_cr_autocommit( _this );
517             child_0.ref();
518             this.el.pack_start (  child_0.el , false );
519
520             // init method
521
522             //    this.items[0].el.set_activatable(true);
523              this.el.add_attribute(_this.cr_autocommit.el , "active", 4 );
524         }
525
526         // user defined functions
527     }
528     public class Xcls_cr_autocommit : Object
529     {
530         public Gtk.CellRendererToggle el;
531         private Clones  _this;
532
533
534             // my vars (def)
535
536         // ctor
537         public Xcls_cr_autocommit(Clones _owner )
538         {
539             _this = _owner;
540             _this.cr_autocommit = this;
541             this.el = new Gtk.CellRendererToggle();
542
543             // my vars (dec)
544
545             // set gobject values
546             this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
547
548             //listeners
549             this.el.toggled.connect( (self, path)  => {
550               
551                 Gtk.TreeIter iter;
552                 _this.reposStore.el.get_iter_from_string(out iter, path);
553                 
554                 GLib.Value val;
555                 GLib.Value rval;
556                 _this.reposStore.el.get_value(iter, 4, out val);
557                 _this.reposStore.el.get_value(iter, 6, out rval);
558                 
559                 var repopath = (string)rval;
560                 var bval = (bool)val;
561                 _this.reposStore.el.set_value(iter, 4, !bval);
562                 GLib.debug("got repopath? %s", repopath);
563                 
564                 var repo = GitRepo.get(repopath);
565                 repo.set_autocommit(!bval);
566                 
567                 
568                 
569               
570             });
571         }
572
573         // user defined functions
574     }
575
576
577     public class Xcls_tv_autopush : Object
578     {
579         public Gtk.TreeViewColumn el;
580         private Clones  _this;
581
582
583             // my vars (def)
584
585         // ctor
586         public Xcls_tv_autopush(Clones _owner )
587         {
588             _this = _owner;
589             _this.tv_autopush = this;
590             this.el = new Gtk.TreeViewColumn();
591
592             // my vars (dec)
593
594             // set gobject values
595             this.el.title = "Auto Push";
596             this.el.min_width = 50;
597             var child_0 = new Xcls_cr_autopush( _this );
598             child_0.ref();
599             this.el.pack_start (  child_0.el , false );
600
601             // init method
602
603             this.el.add_attribute(_this.cr_autopush.el , "active", 5 );
604             //      this.items[0].el.set_activatable(true);
605         }
606
607         // user defined functions
608     }
609     public class Xcls_cr_autopush : Object
610     {
611         public Gtk.CellRendererToggle el;
612         private Clones  _this;
613
614
615             // my vars (def)
616
617         // ctor
618         public Xcls_cr_autopush(Clones _owner )
619         {
620             _this = _owner;
621             _this.cr_autopush = this;
622             this.el = new Gtk.CellRendererToggle();
623
624             // my vars (dec)
625
626             // set gobject values
627             this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
628
629             //listeners
630             this.el.toggled.connect( (self, path)  => {
631               
632                 Gtk.TreeIter iter;
633                 _this.reposStore.el.get_iter_from_string(out iter, path);
634                 
635                 GLib.Value val;
636                 GLib.Value rval;
637                 _this.reposStore.el.get_value(iter, 5, out val);
638                 _this.reposStore.el.get_value(iter, 6, out rval);
639                 
640                 var repopath = (string)rval;
641                 var bval = (bool)val;
642                 _this.reposStore.el.set_value(iter, 5, !bval);
643                 var repo = GitRepo.get(repopath);
644                 repo.set_autopush(!bval);
645                 
646                 
647                 
648               
649             });
650         }
651
652         // user defined functions
653     }
654
655
656     public class Xcls_tv_autobranch : Object
657     {
658         public Gtk.TreeViewColumn el;
659         private Clones  _this;
660
661
662             // my vars (def)
663
664         // ctor
665         public Xcls_tv_autobranch(Clones _owner )
666         {
667             _this = _owner;
668             _this.tv_autobranch = this;
669             this.el = new Gtk.TreeViewColumn();
670
671             // my vars (dec)
672
673             // set gobject values
674             this.el.title = "Auto Branch";
675             this.el.min_width = 50;
676             var child_0 = new Xcls_cr_autobranch( _this );
677             child_0.ref();
678             this.el.pack_start (  child_0.el , false );
679
680             // init method
681
682             this.el.add_attribute(_this.cr_autobranch.el , "active", 8 );
683             //      this.items[0].el.set_activatable(true);
684         }
685
686         // user defined functions
687     }
688     public class Xcls_cr_autobranch : Object
689     {
690         public Gtk.CellRendererToggle el;
691         private Clones  _this;
692
693
694             // my vars (def)
695
696         // ctor
697         public Xcls_cr_autobranch(Clones _owner )
698         {
699             _this = _owner;
700             _this.cr_autobranch = this;
701             this.el = new Gtk.CellRendererToggle();
702
703             // my vars (dec)
704
705             // set gobject values
706             this.el.mode = Gtk.CellRendererMode.ACTIVATABLE;
707
708             //listeners
709             this.el.toggled.connect( (self, path)  => {
710               
711                 Gtk.TreeIter iter;
712                 _this.reposStore.el.get_iter_from_string(out iter, path);
713                 
714                 GLib.Value val;
715                 GLib.Value rval;
716                 _this.reposStore.el.get_value(iter, 8, out val);
717                 _this.reposStore.el.get_value(iter, 6, out rval);
718                 
719                 var repopath = (string)rval;
720                 var bval = (bool)val;
721                 _this.reposStore.el.set_value(iter, 8, !bval);
722                 var repo = GitRepo.get(repopath);
723                 repo.set_auto_branch(!bval);
724                 
725                 
726                 
727               
728             });
729         }
730
731         // user defined functions
732     }
733
734
735     public class Xcls_tv_repo : Object
736     {
737         public Gtk.TreeViewColumn el;
738         private Clones  _this;
739
740
741             // my vars (def)
742
743         // ctor
744         public Xcls_tv_repo(Clones _owner )
745         {
746             _this = _owner;
747             _this.tv_repo = this;
748             this.el = new Gtk.TreeViewColumn();
749
750             // my vars (dec)
751
752             // set gobject values
753             this.el.sort_column_id = 0;
754             this.el.title = "Repo";
755             this.el.min_width = 200;
756             this.el.sort_order = Gtk.SortType.ASCENDING;
757             this.el.resizable = true;
758             var child_0 = new Xcls_cr_repo( _this );
759             child_0.ref();
760             this.el.pack_start (  child_0.el , false );
761
762             // init method
763
764             this.el.add_attribute(_this.cr_repo.el , "markup", 0 );
765         }
766
767         // user defined functions
768     }
769     public class Xcls_cr_repo : Object
770     {
771         public Gtk.CellRendererText el;
772         private Clones  _this;
773
774
775             // my vars (def)
776
777         // ctor
778         public Xcls_cr_repo(Clones _owner )
779         {
780             _this = _owner;
781             _this.cr_repo = this;
782             this.el = new Gtk.CellRendererText();
783
784             // my vars (dec)
785
786             // set gobject values
787         }
788
789         // user defined functions
790     }
791
792
793     public class Xcls_tv_active_ticket : Object
794     {
795         public Gtk.TreeViewColumn el;
796         private Clones  _this;
797
798
799             // my vars (def)
800
801         // ctor
802         public Xcls_tv_active_ticket(Clones _owner )
803         {
804             _this = _owner;
805             _this.tv_active_ticket = this;
806             this.el = new Gtk.TreeViewColumn();
807
808             // my vars (dec)
809
810             // set gobject values
811             this.el.title = "Active Ticket";
812             this.el.min_width = 50;
813             var child_0 = new Xcls_cr_active_ticket( _this );
814             child_0.ref();
815             this.el.pack_start (  child_0.el , false );
816
817             // init method
818
819             this.el.add_attribute(_this.cr_active_ticket.el , "markup", 9 );
820         }
821
822         // user defined functions
823     }
824     public class Xcls_cr_active_ticket : Object
825     {
826         public Gtk.CellRendererText el;
827         private Clones  _this;
828
829
830             // my vars (def)
831
832         // ctor
833         public Xcls_cr_active_ticket(Clones _owner )
834         {
835             _this = _owner;
836             _this.cr_active_ticket = this;
837             this.el = new Gtk.CellRendererText();
838
839             // my vars (dec)
840
841             // set gobject values
842         }
843
844         // user defined functions
845     }
846
847
848     public class Xcls_tv_current_branch : Object
849     {
850         public Gtk.TreeViewColumn el;
851         private Clones  _this;
852
853
854             // my vars (def)
855
856         // ctor
857         public Xcls_tv_current_branch(Clones _owner )
858         {
859             _this = _owner;
860             _this.tv_current_branch = this;
861             this.el = new Gtk.TreeViewColumn();
862
863             // my vars (dec)
864
865             // set gobject values
866             this.el.title = "Current Branch";
867             this.el.min_width = 50;
868             var child_0 = new Xcls_cr_current_branch( _this );
869             child_0.ref();
870             this.el.pack_start (  child_0.el , false );
871
872             // init method
873
874             this.el.add_attribute(_this.cr_current_branch.el , "markup", 1 );
875                  this.el.add_attribute(_this.cr_current_branch.el, "cell-background", 7 );
876         }
877
878         // user defined functions
879     }
880     public class Xcls_cr_current_branch : Object
881     {
882         public Gtk.CellRendererText el;
883         private Clones  _this;
884
885
886             // my vars (def)
887
888         // ctor
889         public Xcls_cr_current_branch(Clones _owner )
890         {
891             _this = _owner;
892             _this.cr_current_branch = this;
893             this.el = new Gtk.CellRendererText();
894
895             // my vars (dec)
896
897             // set gobject values
898         }
899
900         // user defined functions
901     }
902
903
904     public class Xcls_tv_last_updated : Object
905     {
906         public Gtk.TreeViewColumn el;
907         private Clones  _this;
908
909
910             // my vars (def)
911
912         // ctor
913         public Xcls_tv_last_updated(Clones _owner )
914         {
915             _this = _owner;
916             _this.tv_last_updated = this;
917             this.el = new Gtk.TreeViewColumn();
918
919             // my vars (dec)
920
921             // set gobject values
922             this.el.title = "Last updated";
923             this.el.min_width = 50;
924             var child_0 = new Xcls_cr_last_updated( _this );
925             child_0.ref();
926             this.el.pack_start (  child_0.el , false );
927
928             // init method
929
930             this.el.add_attribute(_this.cr_last_updated.el , "markup", 3 );
931         }
932
933         // user defined functions
934     }
935     public class Xcls_cr_last_updated : Object
936     {
937         public Gtk.CellRendererText el;
938         private Clones  _this;
939
940
941             // my vars (def)
942
943         // ctor
944         public Xcls_cr_last_updated(Clones _owner )
945         {
946             _this = _owner;
947             _this.cr_last_updated = this;
948             this.el = new Gtk.CellRendererText();
949
950             // my vars (dec)
951
952             // set gobject values
953         }
954
955         // user defined functions
956     }
957
958
959     public class Xcls_tv_all_branches : Object
960     {
961         public Gtk.TreeViewColumn el;
962         private Clones  _this;
963
964
965             // my vars (def)
966
967         // ctor
968         public Xcls_tv_all_branches(Clones _owner )
969         {
970             _this = _owner;
971             _this.tv_all_branches = this;
972             this.el = new Gtk.TreeViewColumn();
973
974             // my vars (dec)
975
976             // set gobject values
977             this.el.title = "All Branches";
978             this.el.min_width = 50;
979             this.el.resizable = false;
980             var child_0 = new Xcls_cr_all_branches( _this );
981             child_0.ref();
982             this.el.pack_start (  child_0.el , false );
983
984             // init method
985
986             this.el.add_attribute(_this.cr_all_branches.el , "markup", 2 );
987         }
988
989         // user defined functions
990     }
991     public class Xcls_cr_all_branches : Object
992     {
993         public Gtk.CellRendererText el;
994         private Clones  _this;
995
996
997             // my vars (def)
998
999         // ctor
1000         public Xcls_cr_all_branches(Clones _owner )
1001         {
1002             _this = _owner;
1003             _this.cr_all_branches = this;
1004             this.el = new Gtk.CellRendererText();
1005
1006             // my vars (dec)
1007
1008             // set gobject values
1009         }
1010
1011         // user defined functions
1012     }
1013
1014
1015
1016
1017
1018 }