tests/menu.vala
[app.Builder.js] / tests / menu.vala
1 /* -- to compile
2 valac  --pkg gio-2.0  --pkg posix  --pkg gtk+-3.0  \
3     menu.vala  -o /tmp/menutest
4 */
5
6
7 /* -- to test class
8 static int main (string[] args) {
9     Gtk.init (ref args);
10     new Xcls_WindowLeftTree();
11     WindowLeftTree.show_all();
12      Gtk.main ();
13     return 0;
14 }
15 */
16         
17 int main (string[] args) {
18     Gtk.init (ref args);
19     
20         GLib.Log.set_always_fatal(LogLevelFlags.LEVEL_ERROR | LogLevelFlags.LEVEL_CRITICAL); 
21
22
23         var w = new Gtk.Window(  );
24
25         var b = new Gtk.Button.with_label ("Click me (0)");
26
27         var leftmenu = new Gtk.Menu();
28         
29     this.el.button_press_event.connect(   ( ev) => {
30         
31         if (ev.type != Gdk.EventType.BUTTON_PRESS  || ev.button != 3) {
32             return false;
33         }
34
35             
36         //leftmenu.el.set_screen(Gdk.Screen.get_default());
37          
38         leftmenu.popup(null, null, null,  ev.button, ev.time);
39         
40           return true;
41     } );
42         
43         // my vars
44
45         // set gobject values
46         
47         var child_0 = new Xcls_button(); child_0.init(__this);
48         this.el.add (  child_0.el  );
49        __this.LeftTreeMenu = new Xcls_LeftTreeMenu();
50         __this.LeftTreeMenu.init(__this);
51
52         // init method 
53          
54          
55     }
56  
57
58     // skip xvala_id - not pipe 
59     public class Xcls_button : Object 
60     {
61         public Gtk.Button el;
62         private Xcls_WindowLeftTree __this;
63  
64             // ctor 
65         public void init(Xcls_WindowLeftTree _owner)
66         {
67                         
68                         this.el = new Gtk.Button.with_label ("Click me (0)");
69            __this = _owner;
70            __this.button = this;
71
72              
73
74             // listeners 
75             this.el.button_press_event.connect(   ( ev) => {
76                 //console.log("button press?");
77             
78                 
79  
80                   if (ev.type != Gdk.EventType.BUTTON_PRESS  || ev.button != 3) {
81                     //print("click" + ev.type);
82                     return false;
83                 }
84  
85                     
86                 __this.LeftTreeMenu.el.set_screen(Gdk.Screen.get_default());
87                  
88                 __this.LeftTreeMenu.el.popup(null, null, null,  ev.button, ev.time);
89                         
90                                 //   print("click:" + res.path.to_string());
91                   return true;
92             } );
93             
94         }
95
96          
97     }
98
99
100
101         
102     public class Xcls_LeftTreeMenu : Object 
103     {
104         public Gtk.Menu el;
105         private Xcls_WindowLeftTree __this;
106
107
108             // my vars
109
110             // ctor 
111         public void init(Xcls_WindowLeftTree _owner)
112         {
113                         
114                         print("Xcls_LeftTreeMenu:Ctor called\n");
115            __this = _owner;
116                  
117                         
118                         this.el = new Gtk.Menu();
119            __this.LeftTreeMenu = this;
120
121             // my vars
122
123             // set gobject values
124             var child_0 = new Xcls_MenuItem7();
125                         child_0.init(__this);
126                         this.el.append (  child_0.el  );
127                         
128             var child_1 = new Xcls_MenuItem8();
129                         child_1.init(__this);
130             this.el.append (  child_1.el  );
131                         this.el.show_all();
132         }
133
134         
135     }
136     public class Xcls_MenuItem7  
137     {
138         public Gtk.MenuItem el;
139         private Xcls_WindowLeftTree __this;
140
141
142             // my vars
143
144             // ctor 
145         
146                 public void init(Xcls_WindowLeftTree  _owner) {
147          
148            __this = _owner;
149                  
150                         this.el = new Gtk.MenuItem.with_label("Delete Element");
151             // my vars
152
153             // set gobject values
154             //this.el.label = "Delete Element";
155                         
156             // listeners 
157
158                         print("add activate\n");
159             this.el.activate.connect(   ( ) => {
160                 
161                 print("SELECT?");
162                 
163                                 return  ;
164             } );
165         }
166  
167     }
168     public class Xcls_MenuItem8 : Object 
169     {
170         public Gtk.MenuItem el;
171         private Xcls_WindowLeftTree __this;
172
173
174             // my vars
175
176             // ctor 
177         public void init(Xcls_WindowLeftTree _owner)
178         {
179                         
180                         this.el = new Gtk.MenuItem();
181            __this = _owner;
182
183             // my vars
184
185             // set gobject values
186             this.el.label = "Save as Template";
187
188             // listeners 
189             this.el.activate.connect(   () => {
190             
191                 print("connect");  
192                 
193             } );
194         }
195
196          
197     }
198 }