diff options
| author | Manolo Gouy <Manolo> | 2014-09-30 09:07:35 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2014-09-30 09:07:35 +0000 |
| commit | 77b160e19d7b36dcf79ffca5d5f413970951064c (patch) | |
| tree | 16860fd5bb65d054a11b13b4bd22491e519a3283 | |
| parent | 529aaf08f746d02ac87d780b3e70de05168e8d1b (diff) | |
Added control of the Fl::OPTION_FNFC_USES_GTK option in the "Edit/Global FLTK Settings" menu item of fluid.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10345 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | fluid/alignment_panel.cxx | 58 | ||||
| -rw-r--r-- | fluid/alignment_panel.h | 1 |
2 files changed, 55 insertions, 4 deletions
diff --git a/fluid/alignment_panel.cxx b/fluid/alignment_panel.cxx index b9d8cffbd..e74c38dc9 100644 --- a/fluid/alignment_panel.cxx +++ b/fluid/alignment_panel.cxx @@ -510,6 +510,7 @@ static void refreshUI() { wArrowFocus->value(opt[Fl::OPTION_ARROW_FOCUS][mode]); wShowTooltips->value(opt[Fl::OPTION_SHOW_TOOLTIPS][mode]); wDNDText->value(opt[Fl::OPTION_DND_TEXT][mode]); + wGTKText->value(opt[Fl::OPTION_FNFC_USES_GTK][mode]); } /** @@ -524,6 +525,7 @@ static void readPrefs() { opt_prefs.get("VisibleFocus", opt[Fl::OPTION_VISIBLE_FOCUS][1], 2); opt_prefs.get("DNDText", opt[Fl::OPTION_DND_TEXT][1], 2); opt_prefs.get("ShowTooltips", opt[Fl::OPTION_SHOW_TOOLTIPS][1], 2); + opt_prefs.get("FNFCUsesGTK", opt[Fl::OPTION_FNFC_USES_GTK][1], 2); } { Fl_Preferences prefs(Fl_Preferences::USER, "fltk.org", "fltk"); @@ -532,6 +534,7 @@ static void readPrefs() { opt_prefs.get("VisibleFocus", opt[Fl::OPTION_VISIBLE_FOCUS][0], 2); opt_prefs.get("DNDText", opt[Fl::OPTION_DND_TEXT][0], 2); opt_prefs.get("ShowTooltips", opt[Fl::OPTION_SHOW_TOOLTIPS][0], 2); + opt_prefs.get("FNFCUsesGTK", opt[Fl::OPTION_FNFC_USES_GTK][0], 2); } refreshUI(); } @@ -552,6 +555,8 @@ static void writePrefs() { else opt_prefs.set("DNDText", opt[Fl::OPTION_DND_TEXT][1]); if (opt[Fl::OPTION_SHOW_TOOLTIPS][1]==2) opt_prefs.deleteEntry("ShowTooltips"); else opt_prefs.set("ShowTooltips", opt[Fl::OPTION_SHOW_TOOLTIPS][1]); + if (opt[Fl::OPTION_FNFC_USES_GTK][1]==2) opt_prefs.deleteEntry("FNFCUsesGTK"); + else opt_prefs.set("FNFCUsesGTK", opt[Fl::OPTION_FNFC_USES_GTK][1]); } { Fl_Preferences prefs(Fl_Preferences::USER, "fltk.org", "fltk"); @@ -564,6 +569,8 @@ static void writePrefs() { else opt_prefs.set("DNDText", opt[Fl::OPTION_DND_TEXT][0]); if (opt[Fl::OPTION_SHOW_TOOLTIPS][0]==2) opt_prefs.deleteEntry("ShowTooltips"); else opt_prefs.set("ShowTooltips", opt[Fl::OPTION_SHOW_TOOLTIPS][0]); + if (opt[Fl::OPTION_FNFC_USES_GTK][0]==2) opt_prefs.deleteEntry("FNFCUsesGTK"); + else opt_prefs.set("FNFCUsesGTK", opt[Fl::OPTION_FNFC_USES_GTK][0]); } } @@ -640,6 +647,22 @@ Fl_Menu_Item menu_wDNDText[] = { {0,0,0,0,0,0,0,0,0} }; + +Fl_Choice *wGTKText=(Fl_Choice *)0; + +static void cb_wGTKText(Fl_Choice*, void*) { + int mode = wUserOrSystem->value(); + opt[Fl::OPTION_FNFC_USES_GTK][mode] = wGTKText->value(); +} + +Fl_Menu_Item menu_wGTKText[] = { + {"off", 0, 0, (void*)(0), 0, FL_NORMAL_LABEL, 0, 14, 0}, + {"on", 0, 0, (void*)(1), 128, FL_NORMAL_LABEL, 0, 14, 0}, + {"default", 0, 0, (void*)(2), 0, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0} +}; + + Fl_Choice *wUserOrSystem=(Fl_Choice *)0; static void cb_wUserOrSystem(Fl_Choice*, void*) { @@ -662,7 +685,14 @@ global_settings_window->hide(); } Fl_Double_Window* make_global_settings_window() { - { global_settings_window = new Fl_Double_Window(403, 317, "FLTK Preferences"); +#if !(defined(WIN32) || defined(__APPLE__)) + bool show_gtk = true; +#else + bool show_gtk = false; +#endif + { int h = 317; + if (show_gtk) h += 75; + global_settings_window = new Fl_Double_Window(403, h, "FLTK Preferences"); global_settings_window->color(FL_LIGHT1); { Fl_Group* o = new Fl_Group(10, 10, 380, 100, "Keyboard Focus Options"); o->box(FL_GTK_DOWN_BOX); @@ -717,7 +747,26 @@ dropping text from other applications still works.\n\nDefault is on."); } // Fl_Choice* wDNDText o->end(); } // Fl_Group* o - { wUserOrSystem = new Fl_Choice(14, 275, 141, 25); + + int bottom_pos = 275; + { Fl_Group* o = new Fl_Group(10, 268, 380, 66, "Native File Chooser Options"); + o->box(FL_GTK_DOWN_BOX); + o->labelfont(2); + o->align(Fl_Align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE)); + { wGTKText = new Fl_Choice(245, 300, 100, 25, "Native File Chooser uses GTK:"); + wGTKText->tooltip("OPTION_FNFC_USES_GTK\n\nIf 'Native File Chooser uses GTK' is enabled, the Fl_Native_File_Chooser class \ +calls the GTK open/save file dialogs when they are available on the platfom. If disabled, the Fl_Native_File_Chooser class \ +always uses FLTK's own file dialog (i.e., Fl_File_Chooser) even if GTK is available.\n\nDefault is on."); + wGTKText->down_box(FL_BORDER_BOX); + wGTKText->callback((Fl_Callback*)cb_wGTKText); + wGTKText->menu(menu_wGTKText); + } // Fl_Choice* wGTKText + o->end(); + if (show_gtk) bottom_pos += 75; + else o->hide(); + } + + { wUserOrSystem = new Fl_Choice(14, bottom_pos, 141, 25); wUserOrSystem->tooltip("Change settings for the current user, or default values for all users of this\ computer. Individual users can override system options, if they set their opt\ ions to specific values (not \'default\')."); @@ -725,10 +774,11 @@ ions to specific values (not \'default\')."); wUserOrSystem->callback((Fl_Callback*)cb_wUserOrSystem); wUserOrSystem->menu(menu_wUserOrSystem); } // Fl_Choice* wUserOrSystem - { Fl_Button* o = new Fl_Button(230, 275, 75, 25, "Cancel"); + { Fl_Button* o = new Fl_Button(230, bottom_pos, 75, 25, "Cancel"); o->callback((Fl_Callback*)cb_Cancel1); + o->take_focus(); } // Fl_Button* o - { Fl_Button* o = new Fl_Button(315, 275, 75, 25, "OK"); + { Fl_Button* o = new Fl_Button(315, bottom_pos, 75, 25, "OK"); o->callback((Fl_Callback*)cb_OK); } // Fl_Button* o global_settings_window->end(); diff --git a/fluid/alignment_panel.h b/fluid/alignment_panel.h index e5e20f9a2..5ad6bfa63 100644 --- a/fluid/alignment_panel.h +++ b/fluid/alignment_panel.h @@ -104,6 +104,7 @@ extern Fl_Choice *wVisibleFocus; extern Fl_Choice *wArrowFocus; extern Fl_Choice *wShowTooltips; extern Fl_Choice *wDNDText; +extern Fl_Choice *wGTKText; extern Fl_Choice *wUserOrSystem; Fl_Double_Window* make_global_settings_window(); extern Fl_Menu_Item menu_wVisibleFocus[]; |
