* 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
*
#ifndef GUICHARACTER_H
#define GUICHARACTER_H
-#include "GuiDialogView.h"
-#include "ControlCharacter.h"
+#include "GuiDialog.h"
#include "ui_CharacterUi.h"
+#include "qt_helpers.h" // for LanguagePair
+#include "Font.h"
-#include <QDialog>
-
-#include <vector>
namespace lyx {
namespace frontend {
-class GuiCharacter;
+enum FontState {
+ ///
+ IGNORE,
+ ///
+ EMPH_TOGGLE,
+ ///
+ UNDERBAR_TOGGLE,
+ ///
+ NOUN_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;
-class GuiCharacterDialog : public QDialog, public Ui::CharacterUi {
+class GuiCharacter : public GuiDialog, public Ui::CharacterUi
+{
Q_OBJECT
+
public:
- GuiCharacterDialog(GuiCharacter * form);
-protected:
- void closeEvent(QCloseEvent * e);
-private:
- GuiCharacter * form_;
+ GuiCharacter(GuiView & lv);
+
protected Q_SLOTS:
void change_adaptor();
-};
-
-class GuiCharacter : public GuiView<GuiCharacterDialog>
-{
-public:
- friend class GuiCharacterDialog;
-
- GuiCharacter(GuiDialog &);
- /// parent controller
- ControlCharacter & controller()
- { return static_cast<ControlCharacter &>(this->getController()); }
- /// parent controller
- ControlCharacter const & controller() const
- { return static_cast<ControlCharacter const &>(this->getController()); }
private:
/// Apply changes
- virtual void apply();
+ void applyView();
/// 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;
+ void updateContents();
+
+ QList<FamilyPair> family;
+ QList<SeriesPair> series;
+ QList<ShapePair> shape;
+ QList<SizePair> size;
+ QList<BarPair> bar;
+ QList<ColorPair> color;
+ QList<LanguagePair> language;
+
+ ///
+ bool initialiseParams(std::string const & data);
+ ///
+ void clearParams() {}
+ ///
+ void dispatchParams();
+ ///
+ bool isBufferDependent() const { return true; }
+ ///
+ FuncCode 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(QString const &);
+
+ ///
+ FontFamily getFamily() const;
+ ///
+ FontSeries getSeries() const;
+ ///
+ FontShape getShape() const;
+ ///
+ FontSize getSize() const;
+ ///
+ FontState getBar() const;
+ ///
+ ColorCode getColor() const;
+ ///
+ QString 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