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