X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormPreferences.h;h=2dcb6c4190d4c5d4f282470c30c2bc7ef6c0dc1f;hb=2c3af1475e2a408f725b5eea93583ee13e3d09cc;hp=974e2f1a9734978361f367d7a1c97b9dd45b4e8a;hpb=d1e95f33c4cf4d9b03b535f82561943b58cdcd64;p=lyx.git diff --git a/src/frontends/xforms/FormPreferences.h b/src/frontends/xforms/FormPreferences.h index 974e2f1a97..2dcb6c4190 100644 --- a/src/frontends/xforms/FormPreferences.h +++ b/src/frontends/xforms/FormPreferences.h @@ -5,9 +5,9 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * - * This file copyright 1999-2000 + * This file copyright 1999-2001 * Allan Rae *======================================================*/ /* FormPreferences.h @@ -17,21 +17,21 @@ #ifndef FORMPREFERENCES_H #define FORMPREFERENCES_H -#include // for pair -#include "FormBase.h" +#include // pair +#include #ifdef __GNUG_ #pragma interface #endif +#include "FormBaseDeprecated.h" +#include "Color.h" // NamedColor +#include "xforms_helpers.h" // XformColor + class Combox; -class Command; class Dialogs; -class Format; class LyXView; -class NamedColor; class RGBColor; -class XformColor; struct FD_form_colors; struct FD_form_converters; struct FD_form_formats; @@ -39,13 +39,13 @@ struct FD_form_inputs_misc; struct FD_form_interface; struct FD_form_language; struct FD_form_lnf_misc; -struct FD_form_outer_tab; +struct FD_form_inner_tab; struct FD_form_outputs_misc; struct FD_form_paths; struct FD_form_preferences; struct FD_form_printer; struct FD_form_screen_fonts; -struct FD_form_spellchecker; +struct FD_form_spelloptions; /** This class provides an XForms implementation of the FormPreferences Dialog. @@ -56,17 +56,19 @@ public: /// #FormPreferences x(LyXFunc ..., Dialogs ...);# FormPreferences(LyXView *, Dialogs *); /// - ~FormPreferences(); - /// static int FeedbackCB(FL_OBJECT *, int, FL_Coord, FL_Coord, int, void *); private: + /// Pointer to the actual instantiation of the ButtonController. + virtual xformsBC & bc(); /** Redraw the form (on receipt of a Signal indicating, for example, - that the xform colours have been re-mapped). */ + that the xforms colours have been re-mapped). */ virtual void redraw(); /// Update the dialog. virtual void update(); + /// show the spellchecker tab + void showSpellPref(); /// Hide the dialog. virtual void hide(); /// OK (Save) from dialog @@ -77,7 +79,7 @@ private: virtual bool input(FL_OBJECT *, long); /// Build the dialog virtual void build(); - /// Pointer to the actual instantiation of xform's form. + /// Pointer to the actual instantiation of the xforms form. virtual FL_FORM * form() const; /// control which feedback message is output void feedback(FL_OBJECT *); @@ -87,19 +89,19 @@ private: /// The preemptive handler for feedback messages. void Feedback(FL_OBJECT *, int); /// Print a warning message and set warning flag. - void printWarning( string const & ); + void printWarning(string const &); /** Launch a file dialog and modify input if it returns a new file. - For an explanation of the various parameters, see xform_helpers.h. + For an explanation of the various parameters, see xforms_helpers.h. */ - void browse( FL_OBJECT * input, + void browse(FL_OBJECT * input, string const & title, string const & pattern, - std::pair const & dir1, - std::pair const & dir2 ); + std::pair const & dir1= std::make_pair(string(),string()), + std::pair const & dir2 = std::make_pair(string(),string())); - /// Type definitions from the fdesign produced header file. + /// Fdesign generated methods FD_form_preferences * build_preferences(); /// - FD_form_outer_tab * build_outer_tab(); + FD_form_inner_tab * build_inner_tab(); /// FD_form_colors * build_colors(); /// @@ -123,20 +125,20 @@ private: /// FD_form_screen_fonts * build_screen_fonts(); /// - FD_form_spellchecker * build_spellchecker(); + FD_form_spelloptions * build_spelloptions(); /// Real GUI implementation. - FD_form_preferences * dialog_; + boost::scoped_ptr dialog_; /// Converters tabfolder - FD_form_outer_tab * converters_tab_; + boost::scoped_ptr converters_tab_; /// reLyX and other import/input stuff - FD_form_outer_tab * inputs_tab_; + boost::scoped_ptr inputs_tab_; /// HCI configuration - FD_form_outer_tab * look_n_feel_tab_; + boost::scoped_ptr look_n_feel_tab_; /// Outputs tabfolder - FD_form_outer_tab * outputs_tab_; + boost::scoped_ptr outputs_tab_; /// Spellchecker, language stuff, etc - FD_form_outer_tab * usage_tab_; + boost::scoped_ptr lang_opts_tab_; /** Flag whether a warning has been posted to the text window. If so, don't redraw the window when the mouse leaves an object. */ @@ -148,52 +150,56 @@ private: class Colors { public: /// - Colors( FormPreferences & p ) : parent_(p), dialog_(0) {} + enum GuiColors { + GUI_COLOR_CHOICE = FL_FREE_COL1, + GUI_COLOR_HUE_DIAL = FL_FREE_COL2, + GUI_COLOR_CURSOR = FL_FREE_COL3 + }; /// - ~Colors(); + Colors(FormPreferences & p); /// - FD_form_colors const * dialog() { return dialog_; } + FD_form_colors const * dialog(); /// - void apply(); // not const as modifies modifiedXformPrefs. + void apply(); // not const as modifies modifiedXformsPrefs. /// void build(); /// string const feedback(FL_OBJECT const * const) const; /// - bool input(FL_OBJECT const * const); + void input(FL_OBJECT const * const); /// - void update(); + void update() { LoadBrowserLyX(); } + /// Flag whether Xforms colors have changed since last file save - bool modifiedXformPrefs; + bool modifiedXformsPrefs; private: /// - void AdjustVal( int, int, double ) const; + void AdjustVal(int, int, double) const; /// - bool BrowserLyX() const; + void InputBrowserLyX() const; /// - bool BrowserX11() const; + void InputHSV(); /// - bool Database(); + void InputRGB(); /// void LoadBrowserLyX(); /// - bool LoadBrowserX11(string const &) const; + void Modify(); /// - bool Modify() const; + void SwitchColorSpace() const; /// - bool RGB() const; - /// - int SearchEntry(RGBColor const &) const; + string const X11hexname(RGBColor const &) const; /// FormPreferences & parent_; /// - FD_form_colors * dialog_; - /// A vector of RGB colors and associated name. - static std::vector colorDB; - /// A vector of xform RGB colors and associated name. - static std::vector xformColorDB; + boost::scoped_ptr dialog_; + + /// A vector of LyX LColor GUI name and associated RGB color. + std::vector lyxColorDB; + /// A vector of xforms color ID, RGB colors and associated name. + std::vector xformsColorDB; }; /// friend class Colors; @@ -202,11 +208,9 @@ private: class Converters { public: /// - Converters( FormPreferences & p ) : parent_(p), dialog_(0) {} + Converters(FormPreferences & p); /// - ~Converters(); - /// - FD_form_converters const * dialog() { return dialog_; } + FD_form_converters const * dialog(); /// void apply() const; /// @@ -214,7 +218,7 @@ private: /// string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// void update(); /// @@ -228,7 +232,7 @@ private: /// bool Browser(); /// - bool Delete(); + bool erase(); /// bool Input(); /// @@ -239,7 +243,7 @@ private: /// FormPreferences & parent_; /// - FD_form_converters * dialog_; + boost::scoped_ptr dialog_; }; /// friend class Converters; @@ -248,11 +252,9 @@ private: class Formats { public: /// - Formats( FormPreferences & p ) : parent_(p), dialog_(0) {} + Formats(FormPreferences & p); /// - ~Formats(); - /// - FD_form_formats const * dialog() { return dialog_; } + FD_form_formats const * dialog(); /// void apply() const; /// @@ -260,7 +262,7 @@ private: /// string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// void update(); @@ -272,14 +274,14 @@ private: /// void UpdateBrowser(); /// - bool Delete(); + bool erase(); /// bool Input(); /// FormPreferences & parent_; /// - FD_form_formats * dialog_; + boost::scoped_ptr dialog_; }; /// friend class Formats; @@ -288,11 +290,9 @@ private: class InputsMisc { public: /// - InputsMisc( FormPreferences & p ) : parent_(p), dialog_(0) {} + InputsMisc(FormPreferences & p); /// - ~InputsMisc(); - /// - FD_form_inputs_misc const * dialog() { return dialog_; } + FD_form_inputs_misc const * dialog(); /// void apply() const; /// @@ -306,7 +306,7 @@ private: /// FormPreferences & parent_; /// - FD_form_inputs_misc * dialog_; + boost::scoped_ptr dialog_; }; /// friend class InputsMisc; @@ -315,11 +315,9 @@ private: class Interface { public: /// - Interface( FormPreferences & p ) : parent_(p), dialog_(0) {} - /// - ~Interface(); + Interface(FormPreferences & p); /// - FD_form_interface const * dialog() { return dialog_; } + FD_form_interface const * dialog(); /// void apply() const; /// @@ -327,7 +325,7 @@ private: /// string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// void update(); @@ -335,7 +333,7 @@ private: /// FormPreferences & parent_; /// - FD_form_interface * dialog_; + boost::scoped_ptr dialog_; }; /// friend class Interface; @@ -344,12 +342,9 @@ private: class Language { public: /// - Language( FormPreferences & p ) - : parent_(p), dialog_(0), combo_default_lang(0) {} - /// - ~Language(); + Language(FormPreferences & p); /// - FD_form_language const * dialog() { return dialog_; } + FD_form_language const * dialog(); /// void apply(); // not const because calls update() /// @@ -357,7 +352,7 @@ private: /// string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// void update(); /// @@ -367,9 +362,9 @@ private: /// FormPreferences & parent_; /// - FD_form_language * dialog_; + boost::scoped_ptr dialog_; /// - Combox * combo_default_lang; + boost::scoped_ptr combo_default_lang; }; /// friend class Language; @@ -378,11 +373,9 @@ private: class LnFmisc { public: /// - LnFmisc( FormPreferences & p ) : parent_(p), dialog_(0) {} - /// - ~LnFmisc(); + LnFmisc(FormPreferences & p); /// - FD_form_lnf_misc const * dialog() { return dialog_; } + FD_form_lnf_misc const * dialog(); /// void apply() const; /// @@ -396,7 +389,7 @@ private: /// FormPreferences & parent_; /// - FD_form_lnf_misc * dialog_; + boost::scoped_ptr dialog_; }; /// friend class LnFmisc; @@ -405,11 +398,9 @@ private: class OutputsMisc { public: /// - OutputsMisc( FormPreferences & p ) : parent_(p), dialog_(0) {} + OutputsMisc(FormPreferences & p); /// - ~OutputsMisc(); - /// - FD_form_outputs_misc const * dialog() { return dialog_; } + FD_form_outputs_misc const * dialog(); /// void apply() const; /// @@ -423,7 +414,7 @@ private: /// FormPreferences & parent_; /// - FD_form_outputs_misc * dialog_; + boost::scoped_ptr dialog_; }; /// friend class OutputsMisc; @@ -432,11 +423,9 @@ private: class Paths { public: /// - Paths( FormPreferences & p ) : parent_(p), dialog_(0) {} - /// - ~Paths(); + Paths(FormPreferences & p); /// - FD_form_paths const * dialog() { return dialog_; } + FD_form_paths const * dialog(); /// void apply(); /// @@ -452,7 +441,7 @@ private: /// FormPreferences & parent_; /// - FD_form_paths * dialog_; + boost::scoped_ptr dialog_; }; /// friend class Paths; @@ -461,11 +450,9 @@ private: class Printer { public: /// - Printer( FormPreferences & p ) : parent_(p), dialog_(0) {} + Printer(FormPreferences & p); /// - ~Printer(); - /// - FD_form_printer const * dialog() { return dialog_; } + FD_form_printer const * dialog(); /// void apply() const; /// @@ -479,7 +466,7 @@ private: /// FormPreferences & parent_; /// - FD_form_printer * dialog_; + boost::scoped_ptr dialog_; }; /// friend class Printer; @@ -488,11 +475,9 @@ private: class ScreenFonts { public: /// - ScreenFonts( FormPreferences & p ) : parent_(p), dialog_(0) {} - /// - ~ScreenFonts(); + ScreenFonts(FormPreferences & p); /// - FD_form_screen_fonts const * dialog() { return dialog_; } + FD_form_screen_fonts const * dialog(); /// void apply() const; /// @@ -508,20 +493,18 @@ private: /// FormPreferences & parent_; /// - FD_form_screen_fonts * dialog_; + boost::scoped_ptr dialog_; }; /// friend class ScreenFonts; /// - class SpellChecker { + class SpellOptions { public: /// - SpellChecker( FormPreferences & p ) : parent_(p), dialog_(0) {} + SpellOptions(FormPreferences & p); /// - ~SpellChecker(); - /// - FD_form_spellchecker const * dialog() { return dialog_; } + FD_form_spelloptions const * dialog(); /// void apply(); // not const because calls update()! /// @@ -537,10 +520,10 @@ private: /// FormPreferences & parent_; /// - FD_form_spellchecker * dialog_; + boost::scoped_ptr dialog_; }; /// - friend class SpellChecker; + friend class SpellOptions; /** The tab folders. */ @@ -568,7 +551,34 @@ private: /// ScreenFonts screen_fonts_; /// - SpellChecker spellchecker_; + SpellOptions spelloptions_; + + /** A couple of helper structs to enable colors to be sorted by name + and by color */ + /// + struct SortColorsByName { + /// + int operator()(NamedColor const & a, NamedColor const & b) const + { return (a.getname() < b.getname()); } + }; + /// + struct SortColorsByColor { + /// + SortColorsByColor(RGBColor c) : col(c) {} + /// + int operator()(RGBColor const &, RGBColor const &) const; + /// + RGBColor col; + }; + /// The ButtonController + ButtonController bc_; }; + +inline +xformsBC & FormPreferences::bc() +{ + return bc_; +} + #endif