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