2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#ifndef DVTEXTEDIT_H
|
|
|
|
#define DVTEXTEDIT_H
|
|
|
|
|
2016-04-15 17:11:23 +12:00
|
|
|
#ifdef _WIN32
|
2016-03-19 06:57:51 +13:00
|
|
|
#pragma warning(disable : 4251)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "tcommon.h"
|
|
|
|
#include "tpixel.h"
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
#include <QString>
|
|
|
|
#include <QTextEdit>
|
|
|
|
|
|
|
|
class QLabel;
|
|
|
|
class QLineEdit;
|
|
|
|
class QToolBar;
|
|
|
|
class QAction;
|
|
|
|
class QActionGroup;
|
|
|
|
class QFontComboBox;
|
|
|
|
class QComboBox;
|
|
|
|
class QImage;
|
|
|
|
|
|
|
|
#undef DVAPI
|
|
|
|
#undef DVVAR
|
|
|
|
#ifdef TOONZQT_EXPORTS
|
|
|
|
#define DVAPI DV_EXPORT_API
|
|
|
|
#define DVVAR DV_EXPORT_VAR
|
|
|
|
#else
|
|
|
|
#define DVAPI DV_IMPORT_API
|
|
|
|
#define DVVAR DV_IMPORT_VAR
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//=============================================================================
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
namespace DVGui {
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
class ColorField;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
class DvMiniToolBar : public QFrame {
|
|
|
|
QPoint m_dragPos;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
DvMiniToolBar(QWidget *parent = 0);
|
|
|
|
~DvMiniToolBar();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
void mousePressEvent(QMouseEvent *);
|
|
|
|
void mouseMoveEvent(QMouseEvent *);
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
class DvTextEditButton : public QWidget {
|
|
|
|
Q_OBJECT
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
DvTextEditButton(QWidget *parent = 0);
|
|
|
|
~DvTextEditButton();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
void paintEvent(QPaintEvent *);
|
|
|
|
void mousePressEvent(QMouseEvent *);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
signals:
|
2016-06-15 18:43:10 +12:00
|
|
|
void clicked();
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
class DVAPI DvTextEdit : public QTextEdit {
|
|
|
|
Q_OBJECT
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
bool m_paintMode;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
bool m_miniToolBarEnabled;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QPoint m_mousePos;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QComboBox *m_sizeComboBox;
|
|
|
|
QFontComboBox *m_fontComboBox;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QActionGroup *m_alignActionGroup;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
QAction *m_boldAction, *m_italicAction, *m_underlineAction,
|
|
|
|
*m_alignLeftAction, *m_alignRightAction, *m_alignCenterAction;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
ColorField *m_colorField;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
DvMiniToolBar *m_miniToolBar;
|
|
|
|
DvTextEditButton *m_button;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
DvTextEdit(QWidget *parent = 0);
|
|
|
|
~DvTextEdit();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setMiniToolBarEnabled(bool value) { m_miniToolBarEnabled = value; }
|
|
|
|
void changeFont(const QFont &f);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected:
|
2016-06-15 18:43:10 +12:00
|
|
|
void createActions();
|
|
|
|
void createMiniToolBar();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void showMiniToolBar(const QPoint &pos);
|
|
|
|
void hideMiniToolBar();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void mousePressEvent(QMouseEvent *);
|
|
|
|
void mouseMoveEvent(QMouseEvent *);
|
|
|
|
void mouseReleaseEvent(QMouseEvent *);
|
|
|
|
void wheelEvent(QWheelEvent *);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void focusInEvent(QFocusEvent *);
|
|
|
|
void focusOutEvent(QFocusEvent *);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void dragMoveEvent(QDragMoveEvent *);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
private:
|
2016-06-15 18:43:10 +12:00
|
|
|
void fontChanged(const QFont &f);
|
|
|
|
void colorChanged(const QColor &c);
|
|
|
|
void alignmentChanged(Qt::Alignment a);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void mergeFormatOnWordOrSelection(const QTextCharFormat &format);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
protected slots:
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void onCurrentCharFormatChanged(const QTextCharFormat &format);
|
|
|
|
void onCursorPositionChanged();
|
|
|
|
void onSelectionChanged();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void onShowMiniToolBarClicked();
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void setTextFamily(const QString &);
|
|
|
|
void setTextColor(const TPixel32 &color, bool isDragging);
|
|
|
|
void setTextBold();
|
|
|
|
void setTextItalic();
|
|
|
|
void setTextUnderline();
|
|
|
|
void setTextSize(const QString &p);
|
|
|
|
void setTextAlign(QAction *);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
signals:
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void focusIn();
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
2016-06-15 18:43:10 +12:00
|
|
|
} // namespace DVGui
|
2016-03-19 06:57:51 +13:00
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
#endif // DVTEXTEDIT_H
|