* 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 "controllers/frontend_helpers.h"
+#include "qt_helpers.h" // for LanguagePair
+#include "Font.h"
#include <vector>
-namespace lyx {
-class Font;
+namespace lyx {
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,
+ ///
+ INHERIT
};
+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;
-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();
+ void applyView();
/// update
- virtual void update_contents();
- /// build the dialog
- virtual void build_dialog();
+ void updateContents();
std::vector<FamilyPair> family;
std::vector<SeriesPair> series;
std::vector<BarPair> bar;
std::vector<ColorPair> color;
std::vector<LanguagePair> language;
+
+ ///
+ bool initialiseParams(std::string const & data);
+ ///
+ void clearParams() {}
+ ///
+ void dispatchParams();
+ ///
+ bool isBufferDependent() const { return true; }
+ ///
+ kb_action getLfun() const { return LFUN_FONT_FREE_UPDATE; }
+
+ ///
+ void setFamily(FontFamily);
+ ///
+ void setSeries(FontSeries);
+ ///
+ void setShape(FontShape);
+ ///
+ void setSize(FontSize);
+ ///
+ void setBar(FontState);
+ ///
+ void setColor(ColorCode);
+ ///
+ void setLanguage(std::string const &);
+
+ ///
+ FontFamily getFamily() const;
+ ///
+ FontSeries getSeries() const;
+ ///
+ FontShape getShape() const;
+ ///
+ FontSize getSize() const;
+ ///
+ FontState getBar() const;
+ ///
+ ColorCode getColor() const;
+ ///
+ std::string getLanguage() const;
+
+private:
+ ///
+ 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