diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2006-04-04 12:24:36 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2006-04-04 12:24:36 +0000 |
| commit | 570e3f850bd19b4a0e975c3593ee6d8460f1b9a5 (patch) | |
| tree | def9e9e95566aaeb24c5e69c00c5377b7c7a929d | |
| parent | fe9b1fce285bc5e1ba5579f04fe9531ff87be19b (diff) | |
Fixed previous commit.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4898 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | test/preferences.fl | 319 |
1 files changed, 308 insertions, 11 deletions
diff --git a/test/preferences.fl b/test/preferences.fl index 3a36610d6..c8c4698a6 100644 --- a/test/preferences.fl +++ b/test/preferences.fl @@ -2,26 +2,323 @@ version 1.0107 header_name {.h} code_name {.cxx} -class UI {open +decl {\#include <FL/Fl_Preferences.H>} {public +} + +decl {\#include <stdio.h>} {public +} + +decl {\#include <stdlib.h>} {} + +decl {\#include <FL/filename.H>} {} + +decl {\#include <FL/fl_ask.H>} {} + +decl {void readPrefs();} {public +} + +decl {void writePrefs();} {public +} + +Function {closeWindowCB( Fl_Widget*, void* )} {open private return_type void +} { + code {delete myWindow;} {} +} + +Function {saveAndCloseWindowCB( Fl_Widget*, void* )} {open private return_type void } { - Function {UI()} {open + code {writePrefs(); + delete myWindow;} {} +} + +Function {} {open return_type int +} { + Fl_Window myWindow { + label {My Preferences} + callback closeWindowCB open + xywh {394 64 298 311} type Double visible } { - Fl_Window window {open - xywh {464 147 195 176} type Double size_range {195 176 195 0} visible + Fl_Button {} { + label Cancel + callback closeWindowCB + xywh {210 275 75 25} + } + Fl_Button {} { + label OK + callback saveAndCloseWindowCB + xywh {125 275 75 25} + } + Fl_Group {} { + label {Get Up:} open + xywh {20 30 115 225} box ENGRAVED_FRAME align 5 } { - Fl_Light_Button {} { - label button - xywh {25 25 68 20} + Fl_Input wAlarm { + label {Alarm at:} + xywh {25 55 45 20} align 5 + } + Fl_Choice wAmPm {open + xywh {75 55 55 20} down_box BORDER_BOX + } { + MenuItem {} { + label {a.m.} + xywh {0 0 100 20} + } + MenuItem {} { + label {p.m.} + xywh {0 0 100 20} + } + } + Fl_Choice wWear { + label {Wear:} open selected + xywh {25 100 105 20} down_box BORDER_BOX align 5 + } { + MenuItem {} { + label shoes + xywh {0 0 100 20} + } + MenuItem {} { + label sandals + xywh {0 0 100 20} + } + MenuItem {} { + label {flip flops} + xywh {0 0 100 20} + } + MenuItem {} { + label {bare foot} + xywh {0 0 100 20} + } + } + Fl_Group {} {open + xywh {35 120 98 60} + } { + Fl_Round_Button wLeft { + label {left side} + xywh {35 120 95 25} type Radio down_box ROUND_DOWN_BOX + } + Fl_Round_Button wRight { + label {right side} + xywh {35 140 95 25} type Radio down_box ROUND_DOWN_BOX + } + Fl_Box {} { + label {of the bed} + xywh {38 160 95 20} + } + } + Fl_Check_Button wShower { + label shower + xywh {25 180 105 25} down_box DOWN_BOX + } + Fl_Check_Button wShave { + label shave + xywh {25 200 105 25} down_box DOWN_BOX + } + Fl_Check_Button wBrush { + label {brush teeth} + xywh {25 220 105 25} down_box DOWN_BOX + } + } + Fl_Group {} { + label {Breakfast::} open + xywh {160 30 115 225} box ENGRAVED_FRAME align 5 + } { + Fl_Choice wDrink { + label {Drink:} open + xywh {165 50 105 20} down_box BORDER_BOX align 5 + } { + MenuItem {} { + label coffee + xywh {10 10 100 20} + } + MenuItem {} { + label tea + xywh {10 10 100 20} + } + MenuItem {} { + label juice + xywh {10 10 100 20} + } + } + Fl_Check_Button wMilk { + label {with milk} + xywh {170 70 100 25} down_box DOWN_BOX + } + Fl_Choice wBread { + label {Bread:} open + xywh {165 110 105 20} down_box BORDER_BOX align 5 + } { + MenuItem {} { + label wheat + xywh {0 0 100 20} + } + MenuItem {} { + label white + xywh {0 0 100 20} + } + MenuItem {} { + label rye + xywh {0 0 100 20} + } + MenuItem {} { + label {sour doh} + xywh {0 0 100 20} + } + } + Fl_Check_Button wButter { + label {with butter} + xywh {170 130 100 25} down_box DOWN_BOX + } + Fl_Input wEggs { + label eggs + xywh {165 163 30 20} type Int align 8 + } + Fl_Value_Slider wMinutes { + label {min.} + xywh {175 185 70 20} type Horizontal align 8 minimum 2 maximum 6 value 3.1 + } + Fl_Input wPaper { + label {Newspaper:} + xywh {165 225 105 20} align 5 } } } + code {readPrefs();} {} } -Function {main()} {open return_type int +Function {readPrefs()} {open return_type void } { - code {UI ui; -ui.window->show(); -return (Fl::run());} {selected + code {int boolValue; +int intValue; +char buffer[80]; +double doubleValue; + +Fl_Preferences app( Fl_Preferences::USER, "fltk.org", "test/preferences" ); + + char path[ FL_PATH_MAX ]; + app.getUserdataPath( path, sizeof(path) ); + + Fl_Preferences bed( app, "Bed" ); + bed.get( "alarm", buffer, "8:00", 79 ); + wAlarm->value( buffer ); + + bed.get( "ampm", intValue, 0 ); + wAmPm->value( intValue ); + + bed.get( "wear", intValue, 1 ); + wWear->value( intValue ); + + int side; + bed.get( "side", side, 2 ); + if ( side == 1 ) wLeft->value( 1 ); + if ( side == 2 ) wRight->value( 1 ); + + int tasks; + bed.get( "taskFlags", tasks, 0x05 ); + if ( tasks & 0x01 ) wShower->value( 1 ); + if ( tasks & 0x02 ) wShave->value( 1 ); + if ( tasks & 0x04 ) wBrush->value( 1 ); + + Fl_Preferences eat( app, "Breakfast" ); + + eat.get( "drink", intValue, 1 ); + wDrink->value( intValue ); + + eat.get( "wMilk", boolValue, 0 ); + wMilk->value( boolValue ); + + eat.get( "bread", intValue, 0 ); + wBread->value( intValue ); + + eat.get( "wButter", boolValue, 1 ); + wButter->value( boolValue ); + + eat.get( "nEggs", intValue, 2 ); + sprintf( buffer, "%d", intValue ); + wEggs->value( buffer ); + + eat.get( "minutes", doubleValue, 3.2 ); + wMinutes->value( doubleValue ); + + char *flexBuffer; + eat.get( "newspaper", flexBuffer, "NY Tymes" ); + wPaper->value( flexBuffer ); + if ( flexBuffer ) free( flexBuffer ); + + eat.get( "foo", buffer, "bar", 80 ); + + /** sample code only: + Fl_Preferences prev( app, "PreviousStarts" ); + { + int i, n; + prev.get( "n", n, 0 ); + for ( i=0; i<n; i++ ) + prev.get( Fl_Preferences::Name( i ), flexBuffer, "" ); } + + unsigned int hex; + eat.get( "binFoo", (void*)&hex, 0, 0, sizeof( unsigned int ) ); + void *data; + eat.get( "binFoo2", data, 0, 0 ); + **/} {} } +Function {writePrefs()} {open return_type void +} { + code {Fl_Preferences app( Fl_Preferences::USER, "fltk.org", "test/preferences" ); + + Fl_Preferences bed( app, "Bed" ); + + bed.set( "alarm", wAlarm->value() ); + bed.set( "ampm", wAmPm->value() ); + + bed.set( "wear", wWear->value() ); + + int side = 0; + if ( wLeft->value() ) side = 1; + if ( wRight->value() ) side = 2; + bed.set( "side", side ); + + int tasks = 0; + if ( wShower->value() ) tasks |= 0x01; + if ( wShave->value() ) tasks |= 0x02; + if ( wBrush->value() ) tasks |= 0x04; + bed.set( "taskFlags", tasks ); + + Fl_Preferences eat( app, "Breakfast" ); + + eat.set( "drink", wDrink->value() ); + eat.set( "wMilk", wMilk->value() ); + eat.set( "bread", wBread->value() ); + eat.set( "wButter", wButter->value() ); + + eat.set( "nEggs", wEggs->value() ); + eat.set( "minutes", wMinutes->value() ); + + eat.set( "newspaper", wPaper->value() ); + + eat.set( "foo", "bar\\nfly\\rBackslash: \\\\ and bell: \\007 and delete: \\177\\n" ); + + eat.set( Fl_Preferences::Name( 3 ), "Test3" ); + + /* sample: create a sub-sub-group */ + Fl_Preferences eatMore( eat, "More" ); + + eatMore.set( "more", "stuff" ); + + /* all the following searches should return 1 */ + int sum = 0; + sum += app.groupExists( "Breakfast" ); /* find 'eat' relative to 'app' */ + sum += app.groupExists( "Breakfast/More" ); /* find 'eat.eatMore' relative to 'app' */ + sum += app.groupExists( "./Breakfast/More" ); /* find 'eat.eatMore' relative to Preferences */ + sum += eat.groupExists( "More" ); /* find 'eatMore' relative to 'eat' */ + sum += eat.groupExists( "./Breakfast/More" ); /* find 'eat.eatMore' relative to Preferences */ + sum += eat.groupExists( "." ); /* find myself ('eat') */ + sum += eat.groupExists( "./" ); /* find the topmost group ('app') */ + if ( sum != 7 ) + fl_message( "Assertion failed:\\nNot all group entries were found!" ); + + /* sample code only: */ + unsigned int hex = 0x2387efcd; + eat.set( "binFoo", (void*)&hex, sizeof( unsigned int ) ); + eat.set( "binFoo2", (void*)&writePrefs, 256 );} {} +} |
