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