X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fxforms%2FFormPreferences.h;h=8adb810ddcdcc2f94fdaa53351dacd3898d51c56;hb=e5706b107da902bc6a28cba0de3ccd6f75d9fee7;hp=ec6b8ee7fff71349876ea5cdc89c16a17d8d5035;hpb=83acbbd5237373926c629855379e1df9a04209b2;p=lyx.git diff --git a/src/frontends/xforms/FormPreferences.h b/src/frontends/xforms/FormPreferences.h index ec6b8ee7ff..8adb810ddc 100644 --- a/src/frontends/xforms/FormPreferences.h +++ b/src/frontends/xforms/FormPreferences.h @@ -1,71 +1,67 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. +/** + * \file FormPreferences.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * This file copyright 1999-2001 - * Allan Rae - *======================================================*/ -/* FormPreferences.h - * FormPreferences Interface Class + * \author Allan Rae + * \author Angus Leeming + * + * Full author contact details are available in file CREDITS. */ #ifndef FORMPREFERENCES_H #define FORMPREFERENCES_H -#include // pair -#include +#include "FormDialogView.h" + +#include "lyx_forms.h" -#ifdef __GNUG_ -#pragma interface -#endif +#include -#include "FormBaseDeprecated.h" -#include "Color.h" // NamedColor -#include "xforms_helpers.h" // XformColor +class Converters; +class Formats; +class Movers; -class Combox; class Dialogs; +class LyXRC; class LyXView; -class RGBColor; -struct FD_form_colors; -struct FD_form_converters; -struct FD_form_formats; -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_outputs_misc; -struct FD_form_paths; -struct FD_form_preferences; -struct FD_form_printer; -struct FD_form_screen_fonts; -struct FD_form_spellchecker; +namespace lyx { +namespace frontend { + +class ControlPrefs; +struct FD_preferences; +struct FD_preferences_colors; +struct FD_preferences_converters; +struct FD_preferences_copiers; +struct FD_preferences_formats; +struct FD_preferences_inputs_misc; +struct FD_preferences_interface; +struct FD_preferences_language; +struct FD_preferences_lnf_misc; +struct FD_preferences_identity; +struct FD_preferences_inner_tab; +struct FD_preferences_outputs_misc; +struct FD_preferences_paths; +struct FD_preferences_printer; +struct FD_preferences_screen_fonts; +struct FD_preferences_spelloptions; + +class FormColorpicker; +class NamedColor; +class RGBColor; +class XformsColor; /** This class provides an XForms implementation of the FormPreferences Dialog. - The preferences dialog allows users to set/save their preferences. + * The preferences dialog allows users to set/save their preferences. */ -class FormPreferences : public FormBaseBI { +class FormPreferences + : public FormController > { public: - /// #FormPreferences x(LyXFunc ..., Dialogs ...);# - FormPreferences(LyXView *, Dialogs *); - /// - static int FeedbackCB(FL_OBJECT *, int, - FL_Coord, FL_Coord, int, void *); + FormPreferences(Dialog &); private: - /// Pointer to the actual instantiation of the ButtonController. - virtual xformsBC & bc(); - /// Connect signals etc. Set form's max size. - virtual void connect(); - /// Disconnect signals. Also perform any necessary housekeeping. - virtual void disconnect(); /** Redraw the form (on receipt of a Signal indicating, for example, that the xforms colours have been re-mapped). */ virtual void redraw(); @@ -73,79 +69,26 @@ private: virtual void update(); /// Hide the dialog. virtual void hide(); - /// OK (Save) from dialog - virtual void ok(); /// Apply from dialog virtual void apply(); /// Filter the inputs -- return true if entries are valid - virtual bool input(FL_OBJECT *, long); + virtual ButtonPolicy::SMInput input(FL_OBJECT *, long); /// Build the dialog virtual void build(); - /// Pointer to the actual instantiation of the xforms form. - virtual FL_FORM * form() const; /// control which feedback message is output - void feedback(FL_OBJECT *); - - /// Set the preemptive handler for each FL_OBJECT. - static void setPreHandler(FL_OBJECT *); - /// The preemptive handler for feedback messages. - void Feedback(FL_OBJECT *, int); - /// Print a warning message and set warning flag. - 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 xforms_helpers.h. - */ - void browse( FL_OBJECT * input, - string const & title, string const & pattern, - std::pair const & dir1, - std::pair const & dir2 ); - - /// Fdesign generated methods - FD_form_preferences * build_preferences(); - /// - FD_form_outer_tab * build_outer_tab(); - /// - FD_form_colors * build_colors(); - /// - FD_form_converters * build_converters(); - /// - FD_form_formats * build_formats(); - /// - FD_form_inputs_misc * build_inputs_misc(); - /// - FD_form_interface * build_interface(); - /// - FD_form_language * build_language(); - /// - FD_form_lnf_misc * build_lnf_misc(); - /// - FD_form_outputs_misc * build_outputs_misc(); - /// - FD_form_paths * build_paths(); - /// - FD_form_printer * build_printer(); - /// - FD_form_screen_fonts * build_screen_fonts(); - /// - FD_form_spellchecker * build_spellchecker(); + std::string const getFeedback(FL_OBJECT *); - /// Real GUI implementation. - boost::scoped_ptr dialog_; /// Converters tabfolder - boost::scoped_ptr converters_tab_; + boost::scoped_ptr converters_tab_; /// reLyX and other import/input stuff - boost::scoped_ptr inputs_tab_; + boost::scoped_ptr inputs_tab_; /// HCI configuration - boost::scoped_ptr look_n_feel_tab_; + boost::scoped_ptr look_n_feel_tab_; /// Outputs tabfolder - boost::scoped_ptr outputs_tab_; + boost::scoped_ptr outputs_tab_; /// Spellchecker, language stuff, etc - boost::scoped_ptr lang_opts_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. */ - bool warningPosted; - /** Each tab folder is encapsulated in its own class. */ @@ -153,50 +96,43 @@ private: public: /// enum GuiColors { - GUI_COLOR_CHOICE = FL_FREE_COL1, - GUI_COLOR_HUE_DIAL = FL_FREE_COL2, - GUI_COLOR_CURSOR = FL_FREE_COL3 + GUI_COLOR_CHOICE = FL_FREE_COL15, + GUI_COLOR_CURSOR = FL_FREE_COL16 }; /// - Colors( FormPreferences & p ); + Colors(FormPreferences & p); /// - FD_form_colors const * dialog(); + FD_preferences_colors const * dialog(); /// void apply(); // not const as modifies modifiedXformsPrefs. /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// void input(FL_OBJECT const * const); /// void update() { LoadBrowserLyX(); } - + /// Flag whether Xforms colors have changed since last file save bool modifiedXformsPrefs; private: /// - void AdjustVal( int, int, double ) const; + void AdjustVal(int, int, double) const; /// void InputBrowserLyX() const; /// - void InputHSV(); - /// - void InputRGB(); - /// void LoadBrowserLyX(); /// void Modify(); - /// - void SwitchColorSpace() const; - /// - string const X11hexname(RGBColor const &) const; /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; + /// + boost::scoped_ptr picker_; /// A vector of LyX LColor GUI name and associated RGB color. std::vector lyxColorDB; @@ -210,23 +146,21 @@ private: class Converters { public: /// - Converters( FormPreferences & p ); - /// - FD_form_converters const * dialog(); + Converters(FormPreferences & p); /// - void apply() const; + FD_preferences_converters const * dialog(); /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// void update(); /// void UpdateBrowser(); /// - void UpdateChoices() const; + void UpdateChoices(); private: /// @@ -234,37 +168,74 @@ private: /// bool Browser(); /// - bool Delete(); + bool erase(); /// bool Input(); /// - string const GetFrom() const; + std::string const GetFrom(); + /// + std::string const GetTo(); /// - string const GetTo() const; + ::Converters & converters(); + ::Formats & formats(); /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class Converters; /// - class Formats { + class Copiers { public: /// - Formats( FormPreferences & p ); + Copiers(FormPreferences & p); + /// + FD_preferences_copiers const * dialog(); + /// + void build(); + /// + std::string const feedback(FL_OBJECT const * const) const; + /// + bool input(FL_OBJECT const * const); + /// + void update(); + + private: + /// + bool Add(); + /// + bool Browser(); + /// + bool Erase(); + /// + bool Input(); + /// + ::Movers & movers(); + + /// + FormPreferences & parent_; + /// + boost::scoped_ptr dialog_; + }; + /// + friend class Copiers; + + /// + class Formats { + public: /// - FD_form_formats const * dialog(); + Formats(FormPreferences & p); /// - void apply() const; + FD_preferences_formats const * dialog(); /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// void update(); @@ -276,14 +247,17 @@ private: /// void UpdateBrowser(); /// - bool Delete(); + bool erase(); /// bool Input(); + // + ::Converters & converters(); + ::Formats & formats(); /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class Formats; @@ -292,50 +266,50 @@ private: class InputsMisc { public: /// - InputsMisc( FormPreferences & p ); + InputsMisc(FormPreferences & p); /// - FD_form_inputs_misc const * dialog(); + FD_preferences_inputs_misc const * dialog(); /// - void apply() const; + void apply(LyXRC & rc) const; /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class InputsMisc; - + /// class Interface { public: /// - Interface( FormPreferences & p ); + Interface(FormPreferences & p); /// - FD_form_interface const * dialog(); + FD_preferences_interface const * dialog(); /// - void apply() const; + void apply(LyXRC & rc) const; /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - bool input( FL_OBJECT const * const ); + bool input(FL_OBJECT const * const); /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class Interface; @@ -344,79 +318,100 @@ private: class Language { public: /// - Language( FormPreferences & p ); + Language(FormPreferences & p); /// - FD_form_language const * dialog(); + FD_preferences_language const * dialog(); /// - void apply(); // not const because calls update() + void apply(LyXRC & rc); // not const because calls update() /// void build(); /// - string const feedback(FL_OBJECT const * const) const; - /// - bool input( FL_OBJECT const * const ); + std::string const feedback(FL_OBJECT const * const) const; /// - void update(); + bool input(FL_OBJECT const * const); /// - static void ComboCB(int, void *, Combox *); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; /// - boost::scoped_ptr combo_default_lang; + std::vector lang_; }; /// friend class Language; - + /// class LnFmisc { public: /// - LnFmisc( FormPreferences & p ); + LnFmisc(FormPreferences & p); /// - FD_form_lnf_misc const * dialog(); + FD_preferences_lnf_misc const * dialog(); /// - void apply() const; + void apply(LyXRC & rc) const; /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class LnFmisc; + class Identity { + public: + /// + Identity(FormPreferences & p); + /// + FD_preferences_identity const * dialog(); + /// + void apply(LyXRC & rc) const; + /// + void build(); + /// + std::string const feedback(FL_OBJECT const * const) const; + /// + void update(LyXRC const & rc); + + private: + /// + FormPreferences & parent_; + /// + boost::scoped_ptr dialog_; + }; + friend class Identity; + /// class OutputsMisc { public: /// - OutputsMisc( FormPreferences & p ); + OutputsMisc(FormPreferences & p); /// - FD_form_outputs_misc const * dialog(); + FD_preferences_outputs_misc const * dialog(); /// - void apply() const; + void apply(LyXRC & rc) const; /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class OutputsMisc; @@ -425,25 +420,25 @@ private: class Paths { public: /// - Paths( FormPreferences & p ); + Paths(FormPreferences & p); /// - FD_form_paths const * dialog(); + FD_preferences_paths const * dialog(); /// - void apply(); + void apply(LyXRC & rc); /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// bool input(FL_OBJECT const * const); /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class Paths; @@ -452,23 +447,23 @@ private: class Printer { public: /// - Printer( FormPreferences & p ); + Printer(FormPreferences & p); /// - FD_form_printer const * dialog(); + FD_preferences_printer const * dialog(); /// - void apply() const; + void apply(LyXRC & rc) const; /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class Printer; @@ -477,68 +472,72 @@ private: class ScreenFonts { public: /// - ScreenFonts( FormPreferences & p ); + ScreenFonts(FormPreferences & p); /// - FD_form_screen_fonts const * dialog(); + FD_preferences_screen_fonts const * dialog(); /// - void apply() const; + void apply(LyXRC & rc) const; /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// bool input(); /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// friend class ScreenFonts; /// - class SpellChecker { + class SpellOptions { public: /// - SpellChecker( FormPreferences & p ); + SpellOptions(FormPreferences & p); /// - FD_form_spellchecker const * dialog(); + FD_preferences_spelloptions const * dialog(); /// - void apply(); // not const because calls update()! + void apply(LyXRC & rc); // not const because calls update()! /// void build(); /// - string const feedback(FL_OBJECT const * const) const; + std::string const feedback(FL_OBJECT const * const) const; /// bool input(FL_OBJECT const * const); /// - void update(); + void update(LyXRC const & rc); private: /// FormPreferences & parent_; /// - boost::scoped_ptr dialog_; + boost::scoped_ptr dialog_; }; /// - friend class SpellChecker; + friend class SpellOptions; /** The tab folders. */ - + /// Colors colors_; /// Converters converters_; /// - InputsMisc inputs_misc_; + Copiers copiers_; /// Formats formats_; /// + Identity identity_; + /// + InputsMisc inputs_misc_; + /// Interface interface_; /// Language language_; @@ -553,34 +552,10 @@ private: /// ScreenFonts screen_fonts_; /// - SpellChecker spellchecker_; - - /** 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_; + SpellOptions spelloptions_; }; +} // namespace frontend +} // namespace lyx -inline -xformsBC & FormPreferences::bc() -{ - return bc_; -} - -#endif +#endif // FORMPREFERENCES_H