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