Changeset 24
- Timestamp:
- 12/02/06 02:26:18 (2 years ago)
- Files:
-
- trunk/luigi/example1.d (modified) (3 diffs)
- trunk/luigi/example1_gld.d (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/luigi/example1.d
r23 r24 62 62 } 63 63 64 65 void main(char[][] argv) 64 luigui.Overlay create_gui(char[] theme) 66 65 { 67 bool dosync = true;68 char[] theme = "dxut";69 70 //---------------- PARSE ARGS -----------------------71 for( int i=1; i<argv.length; i++ ) {72 auto a = argv[i];73 if (a == "-nosync") dosync = false;74 else if (a == "-help") { usage(argv[0]); return; }75 else if (a == "-theme") {76 theme = argv[++i];77 }78 }79 80 //---------------- SETUP -----------------------81 // Open OpenGL window82 if (!glfwOpenWindow( 640, 480, 0,0,0,0, 0,0, GLFW_WINDOW ))83 return;84 85 // Enable sticky keys86 glfwEnable( GLFW_STICKY_KEYS );87 glfwEnable( GLFW_KEY_REPEAT );88 89 // Disable vertical sync if requested (on cards that support it)90 if (!dosync) glfwSwapInterval( 0 );91 92 // Set the background color93 glClearColor( 66/255., 75/255., 121/255., 0 );94 95 96 //---------------- CREATE GUI ----------------------97 98 66 luigui.Overlay gui; 99 67 with(luigui) { … … 140 108 auto b16 = g.add_widget(new Button("Help")); 141 109 142 /*c15.value_changed.connect(143 (Widget w, bool onoff) {144 writefln(onoff?"checked!":"unchecked!");145 });*/146 110 c15.value_changed ~= (Widget w, bool onoff) { 147 111 writefln(onoff?"checked!":"unchecked!"); … … 230 194 */ 231 195 } 196 return gui; 197 } 198 199 void main(char[][] argv) 200 { 201 bool dosync = true; 202 char[] theme = "dxut"; 203 204 //---------------- PARSE ARGS ----------------------- 205 for( int i=1; i<argv.length; i++ ) { 206 auto a = argv[i]; 207 if (a == "-nosync") dosync = false; 208 else if (a == "-help") { usage(argv[0]); return; } 209 else if (a == "-theme") { 210 theme = argv[++i]; 211 } 212 } 213 214 //---------------- SETUP ----------------------- 215 // Open OpenGL window 216 if (!glfwOpenWindow( 640, 480, 0,0,0,0, 0,0, GLFW_WINDOW )) 217 return; 218 219 // Enable sticky keys 220 glfwEnable( GLFW_STICKY_KEYS ); 221 glfwEnable( GLFW_KEY_REPEAT ); 222 223 // Disable vertical sync if requested (on cards that support it) 224 if (!dosync) glfwSwapInterval( 0 ); 225 226 // Set the background color 227 glClearColor( 66/255., 75/255., 121/255., 0 ); 228 229 230 //---------------- CREATE GUI ---------------------- 231 luigui.Overlay gui = create_gui(theme); 232 /+ 233 luigui.Overlay gui; 234 with(luigui) { 235 Luigi().adapter = GLFWAdapter(); 236 if (theme == "dxut" || theme == "dx") { 237 Luigi().theme = new luigi.themes.dxut.DXUTTheme(); 238 } 239 gui = new Overlay; 240 241 //gui.arranger = new FlowArranger(Alignment.Left|Alignment.Bottom); 242 //gui.arranger = new GridArranger(2,2); 243 //BorderArranger layout = new BorderArranger(5,5); 244 gui.arranger = new BorderArranger(Gaps(5)); 245 246 alias BorderArranger.Region Region; 247 alias Alignment A; 248 249 auto eastGroup = gui.add_arranged(new GridPanel(1,0, Gaps(2)), Region.East); 250 auto westGroup = gui.add_arranged(new GridPanel(2,0, Gaps(2)), Region.West); 251 auto northGroup = gui.add_arranged(new FlowPanel, Region.North); 252 auto southGroup = gui.add_arranged(new FlowPanel, Region.South); 253 254 with(eastGroup) { 255 alias eastGroup g; // workaround for http://tinyurl.com/u5eal 256 auto b0 = g.add_widget(new Button("Luigi")); 257 g.add_widget(new Button("Is")); 258 g.add_widget(new Button("My")); 259 g.add_widget(new Button("Pal")); 260 auto b1 = g.add_widget(new Button("Hide West")); 261 262 b0.disable(); 263 b1.clicked.connect( &westGroup.toggle_shown ); 264 } 265 266 with (northGroup) { 267 alias northGroup g; // workaround for http://tinyurl.com/u5eal 268 auto b10 = g.add_widget(new Button("File")); 269 auto b11 = g.add_widget(new Button("Edit")); 270 auto b12 = g.add_widget(new Button("View")); 271 auto b13 = g.add_widget(new Button("Favorites")); 272 auto b14 = g.add_widget(new Button("Tools")); 273 auto b15 = g.add_widget(new Button("Options")); 274 auto c15 = g.add_widget(new Checkbox("Check it out!")); 275 auto b16 = g.add_widget(new Button("Help")); 276 277 c15.value_changed ~= (Widget w, bool onoff) { 278 writefln(onoff?"checked!":"unchecked!"); 279 }; 280 } 281 282 with(southGroup) { 283 alias southGroup g; // workaround for http://tinyurl.com/u5eal 284 //Button b0 = add_widget(new Button("Hohoho!")); 285 auto l0 = g.add_widget(new Label( "First Name:")); 286 auto t0 = g.add_widget(new TextField("Hello")); 287 auto l1 = g.add_widget(new Label( "Last Name:")); 288 auto t1 = g.add_widget(new TextField("Rumpelstiltskin")); 289 auto b4 = g.add_widget(new Button("Click me!")); 290 auto l2 = g.add_widget(new Label("Disabled label")); 291 l2.disable; 292 b4.clicked ~= (Widget w){ writefln("Ouch! Not so hard!"); }; 293 } 294 295 with (westGroup) { 296 alias westGroup g; // workaround for http://tinyurl.com/u5eal 297 auto b20 = g.add_arranged(new Button("Tool0")); 298 auto b21 = g.add_arranged(new Button("Tool1")); 299 auto b22 = g.add_arranged(new Button("Tool2")); 300 auto b23 = g.add_arranged(new Button("Tool3")); 301 auto b24 = g.add_arranged(new Button("LongNameTool4")); 302 auto b25 = g.add_arranged(new Button("Tool5")); 303 auto b26 = g.add_arranged(new Button("Tool6")); 304 auto b27 = g.add_arranged(new Button("Tool7")); 305 auto b28 = g.add_arranged(new Button("Tool8")); 306 auto b29 = g.add_arranged(new Button("Tool9")); 307 auto s01 = g.add_arranged(new Slider("Thingy")); 308 auto s02 = g.add_arranged(new Slider("Thingy")); 309 s02.vertical = true; 310 s01.precision = 0.1; 311 s02.precision = 0.1; 312 313 s01.value_changed.connect2nd( (double d){ writefln("Slider now %s",d); } ); 314 s02.value_changed.connect2nd( (double d){ writefln("Slider now %s",d); } ); 315 s02.value_changed.connect2nd(&s01.value); 316 s01.value_changed.connect2nd(&s02.value); 317 } 318 319 /* 320 // This is my ideal version, but it requires more smarts from D IFTI 321 322 Button b3 = gui.add_widget(new Button("Mate!")).arranged(Region.East); 323 Button b4 = gui.add_widget(new Button("Click me!")).arranged(Region.South); 324 325 b4.clicked.connect( (Widget w){ writefln("Ouch! Not so hard!"); } ); 326 b3.disable(); 327 328 Panel northGroup = gui.add_widget(new FlowPanel).arranged(Region.North); 329 330 with (northGroup) { 331 auto b10 = add_widget(new Button("File")); 332 auto b11 = add_widget(new Button("Edit")); 333 auto b12 = add_widget(new Button("View")); 334 auto b13 = add_widget(new Button("Favorites")); 335 auto b14 = add_widget(new Button("Tools")); 336 auto b15 = add_widget(new Button("Options")); 337 auto c15 = add_widget(new Checkbox("Check it out!")); 338 auto b16 = add_widget(new Button("Help")); 339 340 c15.value_changed.connect( (Widget w, bool onoff) 341 { 342 writefln(onoff?"checked!":"unchecked!"); 343 }); 344 } 345 Panel westGroup = gui.add_widget(new GridPanel(2,0, Gaps(2))).arrangement(Region.West); 346 347 with (westGroup) { 348 auto b20 = add_widget(new Button("Tool0")).arranged(); 349 auto b21 = add_widget(new Button("Tool1")).arranged(); 350 auto b22 = add_widget(new Button("Tool2")).arranged(); 351 auto b23 = add_widget(new Button("Tool3")).arranged(); 352 auto b24 = add_widget(new Button("LongNameTool4")).arranged(); 353 auto b25 = add_widget(new Button("Tool5")).arranged(); 354 auto b26 = add_widget(new Button("Tool6")).arranged(); 355 auto b27 = add_widget(new Button("Tool7")).arranged(); 356 auto b28 = add_widget(new Button("Tool8")).arranged(); 357 auto b29 = add_widget(new Button("Tool9")).arranged(); 358 } 359 360 //b1.rect.set(10,10,50,30); 361 */ 362 } 363 +/ 232 364 233 365 //---------------- HELPERS ------------------------- trunk/luigi/example1_gld.d
r22 r24 67 67 68 68 69 void main(char[][] argv) 70 { 71 bool dosync = true; 72 char[] theme = "dxut"; 73 74 //---------------- PARSE ARGS ----------------------- 75 for( int i=1; i<argv.length; i++ ) { 76 auto a = argv[i]; 77 if (a == "-nosync") dosync = false; 78 else if (a == "-help") { usage(argv[0]); return; } 79 else if (a == "-theme") { 80 theme = argv[++i]; 81 } 82 } 83 84 //---------------- SETUP ----------------------- 85 // Open OpenGL window 86 if (!gldOpenWindow( 640, 480, 0,0,0,0, 0,0, GLD_WINDOW )) 87 return; 88 89 // Enable sticky keys 90 gldEnable( GLD_STICKY_KEYS ); 91 gldEnable( GLD_KEY_REPEAT ); 92 93 // Disable vertical sync if requested (on cards that support it) 94 if (!dosync) gldSwapInterval( 0 ); 95 96 // Set the background color 97 glClearColor( 66/255., 75/255., 121/255., 0 ); 98 99 100 //---------------- CREATE GUI ---------------------- 101 69 luigui.Overlay create_gui(char[] theme) 70 { 102 71 luigui.Overlay gui; 103 72 with(luigui) { 104 73 Luigi().adapter = GLDAdapter(); 105 if (theme == "dxut" ) {74 if (theme == "dxut" || theme == "dx") { 106 75 Luigi().theme = new luigi.themes.dxut.DXUTTheme(); 107 76 } 108 77 gui = new Overlay; 109 78 110 //gui.arranger = new FlowArranger(Alignment.Left|Alignment.Bottom);111 //gui.arranger = new GridArranger(2,2);112 //BorderArranger layout = new BorderArranger(5,5);113 79 gui.arranger = new BorderArranger(Gaps(5)); 114 80 … … 144 110 auto b16 = g.add_widget(new Button("Help")); 145 111 146 c15.value_changed.connect( (Widget w, bool onoff) 147 { 112 c15.value_changed ~= (Widget w, bool onoff) { 148 113 writefln(onoff?"checked!":"unchecked!"); 149 } );114 }; 150 115 } 151 116 … … 153 118 alias southGroup g; // workaround for http://tinyurl.com/u5eal 154 119 //Button b0 = add_widget(new Button("Hohoho!")); 155 auto l0 = g.add_widget(new Label( "First Name:"));156 auto t0 = g.add_widget(new TextField );157 auto t1 = g.add_widget(new TextField("Last name:"));158 t1.text = "Rumplestilskin";120 auto l0 = g.add_widget(new Label( "First Name:")); 121 auto t0 = g.add_widget(new TextField("Hello")); 122 auto l1 = g.add_widget(new Label( "Last Name:")); 123 auto t1 = g.add_widget(new TextField("Rumpelstiltskin")); 159 124 auto b4 = g.add_widget(new Button("Click me!")); 160 b4.clicked.connect((Widget w){ writefln("Ouch! Not so hard!"); } ); 125 auto l2 = g.add_widget(new Label("Disabled label")); 126 l2.disable; 127 b4.clicked ~= (Widget w){ writefln("Ouch! Not so hard!"); }; 161 128 } 162 129 … … 184 151 s01.value_changed.connect2nd(&s02.value); 185 152 } 186 187 /* 188 // This is my ideal version, but it requires more smarts from D IFTI 189 190 Button b3 = gui.add_widget(new Button("Mate!")).arranged(Region.East); 191 Button b4 = gui.add_widget(new Button("Click me!")).arranged(Region.South); 192 193 b4.clicked.connect( (Widget w){ writefln("Ouch! Not so hard!"); } ); 194 b3.disable(); 195 196 Panel northGroup = gui.add_widget(new FlowPanel).arranged(Region.North); 197 198 with (northGroup) { 199 auto b10 = add_widget(new Button("File")); 200 auto b11 = add_widget(new Button("Edit")); 201 auto b12 = add_widget(new Button("View")); 202 auto b13 = add_widget(new Button("Favorites")); 203 auto b14 = add_widget(new Button("Tools")); 204 auto b15 = add_widget(new Button("Options")); 205 auto c15 = add_widget(new Checkbox("Check it out!")); 206 auto b16 = add_widget(new Button("Help")); 207 208 c15.value_changed.connect( (Widget w, bool onoff) 209 { 210 writefln(onoff?"checked!":"unchecked!"); 211 }); 212 } 213 Panel westGroup = gui.add_widget(new GridPanel(2,0, Gaps(2))).arrangement(Region.West); 214 215 with (westGroup) { 216 auto b20 = add_widget(new Button("Tool0")).arranged(); 217 auto b21 = add_widget(new Button("Tool1")).arranged(); 218 auto b22 = add_widget(new Button("Tool2")).arranged(); 219 auto b23 = add_widget(new Button("Tool3")).arranged(); 220 auto b24 = add_widget(new Button("LongNameTool4")).arranged(); 221 auto b25 = add_widget(new Button("Tool5")).arranged(); 222 auto b26 = add_widget(new Button("Tool6")).arranged(); 223 auto b27 = add_widget(new Button("Tool7")).arranged(); 224 auto b28 = add_widget(new Button("Tool8")).arranged(); 225 auto b29 = add_widget(new Button("Tool9")).arranged(); 226 } 227 228 //b1.rect.set(10,10,50,30); 229 */ 230 } 153 } 154 return gui; 155 } 156 157 void main(char[][] argv) 158 { 159 bool dosync = true; 160 char[] theme = "dxut"; 161 162 //---------------- PARSE ARGS ----------------------- 163 for( int i=1; i<argv.length; i++ ) { 164 auto a = argv[i]; 165 if (a == "-nosync") dosync = false; 166 else if (a == "-help") { usage(argv[0]); return; } 167 else if (a == "-theme") { 168 theme = argv[++i]; 169 } 170 } 171 172 //---------------- SETUP ----------------------- 173 // Open OpenGL window 174 if (!gldOpenWindow( 640, 480, 0,0,0,0, 0,0, GLD_WINDOW )) 175 return; 176 177 // Enable sticky keys 178 gldEnable( GLD_STICKY_KEYS ); 179 gldEnable( GLD_KEY_REPEAT ); 180 181 // Disable vertical sync if requested (on cards that support it) 182 if (!dosync) gldSwapInterval( 0 ); 183 184 // Set the background color 185 glClearColor( 66/255., 75/255., 121/255., 0 ); 186 187 188 //---------------- CREATE GUI ---------------------- 189 190 luigui.Overlay gui = create_gui(theme); 231 191 232 192 //---------------- HELPERS -------------------------
