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