fb2dock.hpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifndef FB2DOCK_H
  2. #define FB2DOCK_H
  3. #include <QAction>
  4. #include <QIcon>
  5. #include <QStackedWidget>
  6. #include <QToolBar>
  7. #include <QIODevice>
  8. #include "fb2enum.h"
  9. class FbTextEdit;
  10. class FbHeadEdit;
  11. class FbCodeEdit;
  12. class FbMainDock;
  13. class FbModeAction : public QAction
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit FbModeAction(FbMainDock *parent, Fb::Mode mode, const QString &text);
  18. private slots:
  19. void switchMode();
  20. private:
  21. FbMainDock * m_dock;
  22. Fb::Mode m_mode;
  23. };
  24. class FbMainDock : public QStackedWidget
  25. {
  26. Q_OBJECT
  27. public:
  28. explicit FbMainDock(QWidget *parent = 0);
  29. FbTextEdit * text() { return m_text; }
  30. FbHeadEdit * head() { return m_head; }
  31. FbCodeEdit * code() { return m_code; }
  32. bool load(const QString &filename);
  33. bool save(QIODevice *device, const QString &codec = QString());
  34. Fb::Mode mode() const { return m_mode; }
  35. void setMode(Fb::Mode mode);
  36. void setTool(QToolBar *tool) { m_tool = tool; }
  37. bool isModified() const;
  38. signals:
  39. public slots:
  40. private:
  41. QFrame *textFrame;
  42. FbTextEdit *m_text;
  43. FbHeadEdit *m_head;
  44. FbCodeEdit *m_code;
  45. QToolBar *m_tool;
  46. bool isSwitched;
  47. Fb::Mode m_mode;
  48. };
  49. #endif // FB2DOCK_H