Changeset 24

Show
Ignore:
Timestamp:
12/02/06 02:26:18 (2 years ago)
Author:
baxissimo
Message:

rearranged the example proggies.
GUI creation now in a separate function.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/luigi/example1.d

    r23 r24  
    6262} 
    6363 
    64  
    65 void main(char[][] argv) 
     64luigui.Overlay create_gui(char[] theme) 
    6665{ 
    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 window 
    82     if (!glfwOpenWindow( 640, 480, 0,0,0,0, 0,0, GLFW_WINDOW )) 
    83         return; 
    84  
    85     // Enable sticky keys 
    86     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 color 
    93     glClearColor( 66/255., 75/255., 121/255., 0 ); 
    94  
    95  
    96     //---------------- CREATE GUI ---------------------- 
    97      
    9866    luigui.Overlay gui; 
    9967    with(luigui) { 
     
    140108            auto b16 =   g.add_widget(new Button("Help")); 
    141109 
    142             /*c15.value_changed.connect(  
    143                 (Widget w, bool onoff) { 
    144                     writefln(onoff?"checked!":"unchecked!");  
    145                     });*/ 
    146110            c15.value_changed ~= (Widget w, bool onoff) { 
    147111                writefln(onoff?"checked!":"unchecked!");  
     
    230194*/ 
    231195    } 
     196    return gui; 
     197} 
     198 
     199void 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+/ 
    232364 
    233365    //---------------- HELPERS ------------------------- 
  • trunk/luigi/example1_gld.d

    r22 r24  
    6767 
    6868 
    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      
     69luigui.Overlay create_gui(char[] theme) 
     70
    10271    luigui.Overlay gui; 
    10372    with(luigui) { 
    10473        Luigi().adapter = GLDAdapter(); 
    105         if (theme == "dxut") { 
     74        if (theme == "dxut" || theme == "dx") { 
    10675            Luigi().theme = new luigi.themes.dxut.DXUTTheme(); 
    10776        } 
    10877        gui = new Overlay; 
    10978     
    110         //gui.arranger = new FlowArranger(Alignment.Left|Alignment.Bottom); 
    111         //gui.arranger = new GridArranger(2,2); 
    112         //BorderArranger layout = new BorderArranger(5,5); 
    11379        gui.arranger = new BorderArranger(Gaps(5)); 
    11480 
     
    144110            auto b16 =   g.add_widget(new Button("Help")); 
    145111 
    146             c15.value_changed.connect( (Widget w, bool onoff) 
    147             {  
     112            c15.value_changed ~= (Widget w, bool onoff) { 
    148113                writefln(onoff?"checked!":"unchecked!");  
    149             })
     114            }
    150115        } 
    151116 
     
    153118            alias southGroup g; // workaround for http://tinyurl.com/u5eal 
    154119            //Button b0 = add_widget(new Button("Hohoho!")); 
    155             auto l0 = g.add_widget(new Label( "FirstName:")); 
    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"))
    159124            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!"); }; 
    161128        } 
    162129 
     
    184151            s01.value_changed.connect2nd(&s02.value); 
    185152        } 
    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 
     157void 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); 
    231191 
    232192    //---------------- HELPERS -------------------------