| 
							- // generated by Fast Light User Interface Designer (fluid) version 1.0300
 - 
 - #include "preferences.h"
 - #include <stdlib.h>
 - #include <FL/filename.H>
 - #include <FL/fl_ask.H>
 - void readPrefs(); 
 - void writePrefs(); 
 - 
 - static void closeWindowCB( Fl_Widget*, void* ) {
 -   Fl::delete_widget(myWindow);
 - }
 - 
 - static void saveAndCloseWindowCB( Fl_Widget*, void* ) {
 -   writePrefs();
 -   Fl::delete_widget(myWindow);
 - }
 - 
 - Fl_Double_Window *myWindow=(Fl_Double_Window *)0;
 - 
 - Fl_Input *wAlarm=(Fl_Input *)0;
 - 
 - Fl_Choice *wAmPm=(Fl_Choice *)0;
 - 
 - Fl_Menu_Item menu_wAmPm[] = {
 -  {"a.m.", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"p.m.", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {0,0,0,0,0,0,0,0,0}
 - };
 - 
 - Fl_Choice *wWear=(Fl_Choice *)0;
 - 
 - Fl_Menu_Item menu_wWear[] = {
 -  {"shoes", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"sandals", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"flip flops", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"bare foot", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {0,0,0,0,0,0,0,0,0}
 - };
 - 
 - Fl_Round_Button *wLeft=(Fl_Round_Button *)0;
 - 
 - Fl_Round_Button *wRight=(Fl_Round_Button *)0;
 - 
 - Fl_Check_Button *wShower=(Fl_Check_Button *)0;
 - 
 - Fl_Check_Button *wShave=(Fl_Check_Button *)0;
 - 
 - Fl_Check_Button *wBrush=(Fl_Check_Button *)0;
 - 
 - Fl_Choice *wDrink=(Fl_Choice *)0;
 - 
 - Fl_Menu_Item menu_wDrink[] = {
 -  {"coffee", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"tea", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"juice", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {0,0,0,0,0,0,0,0,0}
 - };
 - 
 - Fl_Check_Button *wMilk=(Fl_Check_Button *)0;
 - 
 - Fl_Choice *wBread=(Fl_Choice *)0;
 - 
 - Fl_Menu_Item menu_wBread[] = {
 -  {"wheat", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"white", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"rye", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {"sour doh", 0,  0, 0, 0, FL_NORMAL_LABEL, 0, 14, 0},
 -  {0,0,0,0,0,0,0,0,0}
 - };
 - 
 - Fl_Check_Button *wButter=(Fl_Check_Button *)0;
 - 
 - Fl_Int_Input *wEggs=(Fl_Int_Input *)0;
 - 
 - Fl_Value_Slider *wMinutes=(Fl_Value_Slider *)0;
 - 
 - Fl_Input *wPaper=(Fl_Input *)0;
 - 
 - int main(int argc, char **argv) {
 -   { myWindow = new Fl_Double_Window(298, 311, "My Preferences");
 -     myWindow->callback((Fl_Callback*)closeWindowCB);
 -     { Fl_Button* o = new Fl_Button(210, 275, 75, 25, "Cancel");
 -       o->callback((Fl_Callback*)closeWindowCB);
 -     } // Fl_Button* o
 -     { Fl_Button* o = new Fl_Button(125, 275, 75, 25, "OK");
 -       o->callback((Fl_Callback*)saveAndCloseWindowCB);
 -     } // Fl_Button* o
 -     { Fl_Group* o = new Fl_Group(20, 30, 115, 225, "Get Up:");
 -       o->box(FL_ENGRAVED_FRAME);
 -       o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -       { wAlarm = new Fl_Input(25, 55, 45, 20, "Alarm at:");
 -         wAlarm->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -       } // Fl_Input* wAlarm
 -       { wAmPm = new Fl_Choice(75, 55, 55, 20);
 -         wAmPm->down_box(FL_BORDER_BOX);
 -         wAmPm->menu(menu_wAmPm);
 -       } // Fl_Choice* wAmPm
 -       { wWear = new Fl_Choice(25, 100, 105, 20, "Wear:");
 -         wWear->down_box(FL_BORDER_BOX);
 -         wWear->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -         wWear->menu(menu_wWear);
 -       } // Fl_Choice* wWear
 -       { Fl_Group* o = new Fl_Group(35, 120, 98, 60);
 -         { wLeft = new Fl_Round_Button(35, 120, 95, 25, "left side");
 -           wLeft->type(102);
 -           wLeft->down_box(FL_ROUND_DOWN_BOX);
 -         } // Fl_Round_Button* wLeft
 -         { wRight = new Fl_Round_Button(35, 140, 95, 25, "right side");
 -           wRight->type(102);
 -           wRight->down_box(FL_ROUND_DOWN_BOX);
 -         } // Fl_Round_Button* wRight
 -         { new Fl_Box(38, 160, 95, 20, "of the bed");
 -         } // Fl_Box* o
 -         o->end();
 -       } // Fl_Group* o
 -       { wShower = new Fl_Check_Button(25, 180, 105, 25, "shower");
 -         wShower->down_box(FL_DOWN_BOX);
 -       } // Fl_Check_Button* wShower
 -       { wShave = new Fl_Check_Button(25, 200, 105, 25, "shave");
 -         wShave->down_box(FL_DOWN_BOX);
 -       } // Fl_Check_Button* wShave
 -       { wBrush = new Fl_Check_Button(25, 220, 105, 25, "brush teeth");
 -         wBrush->down_box(FL_DOWN_BOX);
 -       } // Fl_Check_Button* wBrush
 -       o->end();
 -     } // Fl_Group* o
 -     { Fl_Group* o = new Fl_Group(160, 30, 115, 225, "Breakfast::");
 -       o->box(FL_ENGRAVED_FRAME);
 -       o->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -       { wDrink = new Fl_Choice(165, 50, 105, 20, "Drink:");
 -         wDrink->down_box(FL_BORDER_BOX);
 -         wDrink->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -         wDrink->menu(menu_wDrink);
 -       } // Fl_Choice* wDrink
 -       { wMilk = new Fl_Check_Button(170, 70, 100, 25, "with milk");
 -         wMilk->down_box(FL_DOWN_BOX);
 -       } // Fl_Check_Button* wMilk
 -       { wBread = new Fl_Choice(165, 110, 105, 20, "Bread:");
 -         wBread->down_box(FL_BORDER_BOX);
 -         wBread->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -         wBread->menu(menu_wBread);
 -       } // Fl_Choice* wBread
 -       { wButter = new Fl_Check_Button(170, 130, 100, 25, "with butter");
 -         wButter->down_box(FL_DOWN_BOX);
 -       } // Fl_Check_Button* wButter
 -       { wEggs = new Fl_Int_Input(165, 163, 30, 20, "eggs");
 -         wEggs->type(2);
 -         wEggs->align(Fl_Align(FL_ALIGN_RIGHT));
 -       } // Fl_Int_Input* wEggs
 -       { wMinutes = new Fl_Value_Slider(175, 185, 70, 20, "min.");
 -         wMinutes->type(1);
 -         wMinutes->minimum(2);
 -         wMinutes->maximum(6);
 -         wMinutes->value(3.1);
 -         wMinutes->align(Fl_Align(FL_ALIGN_RIGHT));
 -       } // Fl_Value_Slider* wMinutes
 -       { wPaper = new Fl_Input(165, 225, 105, 20, "Newspaper:");
 -         wPaper->align(Fl_Align(FL_ALIGN_TOP_LEFT));
 -       } // Fl_Input* wPaper
 -       o->end();
 -     } // Fl_Group* o
 -     myWindow->end();
 -   } // Fl_Double_Window* myWindow
 -   readPrefs();
 -   myWindow->show(argc, argv);
 -   return Fl::run();
 - }
 - 
 - void readPrefs() {
 -   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 );
 -     **/
 - }
 - 
 - void writePrefs() {
 -   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*)&bed, 256 );
 - }
 
 
  |