* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
+ * \author Angus Leeming
* \author Edwin Leuven
* \author John Levon
*
* Full author contact details are available in file CREDITS.
*/
-#ifndef QCHARACTER_H_CONTROLLER
-#define QCHARACTER_H_CONTROLLER
+#ifndef GUICHARACTER_H
+#define GUICHARACTER_H
-#include "GuiDialogView.h"
+#include "GuiDialog.h"
#include "ui_CharacterUi.h"
-#include <QDialog>
+#include "Font.h"
-#include "controllers/frontend_helpers.h"
+#include <utility>
-#include <vector>
+#ifdef IGNORE
+#undef IGNORE
+#endif
namespace lyx {
-
-class Font;
-
namespace frontend {
-class GuiCharacter;
-
-class GuiCharacterDialog : public QDialog, public Ui::CharacterUi {
- Q_OBJECT
-public:
- GuiCharacterDialog(GuiCharacter * form);
-protected:
- void closeEvent(QCloseEvent * e);
-private:
- GuiCharacter * form_;
-protected Q_SLOTS:
- void change_adaptor();
+enum FontState {
+ ///
+ IGNORE,
+ ///
+ EMPH_TOGGLE,
+ ///
+ UNDERBAR_TOGGLE,
+ ///
+ NOUN_TOGGLE,
+ ///
+ STRIKEOUT_TOGGLE,
+ ///
+ UULINE_TOGGLE,
+ ///
+ UWAVE_TOGGLE,
+ ///
+ INHERIT
};
+typedef std::pair<QString, FontFamily> FamilyPair;
+typedef std::pair<QString, FontFamily> FamilyPair;
+typedef std::pair<QString, FontSeries> SeriesPair;
+typedef std::pair<QString, FontShape> ShapePair;
+typedef std::pair<QString, FontSize> SizePair;
+typedef std::pair<QString, FontState> BarPair;
+typedef std::pair<QString, ColorCode> ColorPair;
+typedef std::pair<QString, QString> LanguagePair;
-class ControlCharacter;
-
-class GuiCharacter
- : public QController<ControlCharacter, GuiView<GuiCharacterDialog> >
+class GuiCharacter : public GuiDialog, public Ui::CharacterUi
{
+ Q_OBJECT
+
public:
- friend class GuiCharacterDialog;
+ GuiCharacter(GuiView & lv);
+
+protected Q_SLOTS:
+ void change_adaptor();
- GuiCharacter(Dialog &);
private:
- /// Apply changes
- virtual void apply();
- /// update
- virtual void update_contents();
- /// build the dialog
- virtual void build_dialog();
-
- std::vector<FamilyPair> family;
- std::vector<SeriesPair> series;
- std::vector<ShapePair> shape;
- std::vector<SizePair> size;
- std::vector<BarPair> bar;
- std::vector<ColorPair> color;
- std::vector<LanguagePair> language;
+ /// Dialog inherited methods
+ //@{
+ void applyView();
+ void updateContents();
+ bool initialiseParams(std::string const & data);
+ void clearParams() {}
+ void dispatchParams();
+ bool isBufferDependent() const { return true; }
+ FuncCode getLfun() const { return LFUN_TEXTSTYLE_UPDATE; }
+ void saveSession() const;
+ void restoreSession();
+ //@}
+
+ ///
+ void paramsToDialog(Font const & font);
+
+ QList<FamilyPair> family;
+ QList<SeriesPair> series;
+ QList<ShapePair> shape;
+ QList<SizePair> size;
+ QList<BarPair> bar;
+ QList<ColorPair> color;
+ QList<LanguagePair> language;
+
+ ///
+ ///
+ Font font_;
+ ///
+ bool toggleall_;
+ /// If true the language should be reset.
+ /// If false the language of font_ is used.
+ bool reset_lang_;
};
} // namespace frontend
} // namespace lyx
-#endif // QCHARACTER_H
+#endif // GUICHARACTER_H