00001 #ifndef EDITOR_H_ 00002 #define EDITOR_H_ 00003 00004 #include <QBoxLayout> 00005 #include <QToolButton> 00006 #include <QFontComboBox> 00007 #include <QSpinBox> 00008 #include <QTextEdit> 00009 #include <QWidget> 00010 #include <QLabel> 00011 #include <QTextCodec> 00012 00013 #define ENABLE_ASSEMBLY 1 00014 #define DISABLE_ASSEMBLY 0 00015 00016 class editor : public QWidget 00017 { 00018 Q_OBJECT 00019 00020 public: 00021 editor(int mode, QWidget *parent=0); 00022 ~editor(void); 00023 00024 // Кнопки форматирования текста 00025 QToolButton *bold; 00026 QToolButton *italic; 00027 QToolButton *underline; 00028 QToolButton *numericlist; 00029 QToolButton *dotlist; 00030 QToolButton *indentplus; 00031 QToolButton *indentminus; 00032 QFontComboBox *fontselect; 00033 QSpinBox *fontsize; 00034 QToolButton *showhtml; 00035 QLabel *infoarea; 00036 00037 // Область редактирования текста 00038 QTextEdit *textarea; 00039 00040 // Горизонтальная линейка, содержащая кнопки форматирования 00041 QHBoxLayout *textformat_buttons_layout; 00042 00043 // Вертикальная группировалка линейки кнопок и области редактирования 00044 QVBoxLayout *buttons_and_edit_layout; 00045 00046 void set_textarea(QString text); 00047 void set_textarea_editable(bool editable); 00048 00049 QString get_textarea(void); 00050 00051 private slots: 00052 00053 // Действия в области редактирования 00054 void on_bold_clicked(void); 00055 void on_italic_clicked(void); 00056 void on_underline_clicked(void); 00057 void on_numericlist_clicked(void); 00058 void on_dotlist_clicked(void); 00059 void on_indentplus_clicked(void); 00060 void on_indentminus_clicked(void); 00061 void on_showhtml_clicked(void); 00062 00063 private: 00064 void setup_signals(void); 00065 void setup_buttons(void); 00066 void setup_editor_area(void); 00067 void assembly_buttons(void); 00068 void assembly(void); 00069 void format_to_list(QTextListFormat::Style setformat); 00070 00071 }; 00072 00073 #endif /* EDITOR_H_ */