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