qsptextbox.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #ifndef QSPTEXTBOX_H
  2. #define QSPTEXTBOX_H
  3. #include <QWidget>
  4. #include <QTextBrowser>
  5. #include <QString>
  6. #include <QFont>
  7. #include <QColor>
  8. #include <QImage>
  9. #include <QVariant>
  10. #include <QUrl>
  11. #include <QMovie>
  12. #include <QLabel>
  13. #include <QMap>
  14. #include <QKeyEvent>
  15. #include <QMutex>
  16. #include "videolabel.h"
  17. struct animation_gif
  18. {
  19. QMovie *movie;
  20. QLabel *movieLabel;
  21. };
  22. struct animation_video
  23. {
  24. VideoLabel *videoLabel;
  25. };
  26. namespace Ui {
  27. class QspTextBox;
  28. }
  29. class QspTextBox : public QTextBrowser
  30. {
  31. Q_OBJECT
  32. public:
  33. explicit QspTextBox(QWidget *parent = 0);
  34. ~QspTextBox();
  35. // Methods
  36. void RefreshUI(bool isScroll = false);
  37. // Accessors
  38. void SetIsHtml(bool isHtml);
  39. void SetText(const QString& text, bool isScroll = false);
  40. void SetTextFont(const QFont& new_font);
  41. QFont GetTextFont() const { return m_font; }
  42. QString GetText() const { return m_text; }
  43. bool SetLinkColor(const QColor &color);
  44. QColor GetLinkColor() { return m_linkColor; }
  45. void SetGamePath(const QString& path);
  46. QColor GetBackgroundColor();
  47. QColor GetForegroundColor(); //text color
  48. bool SetBackgroundColor(const QColor& color);
  49. bool SetForegroundColor(const QColor& color);
  50. void SetShowPlainText(bool isPlain);
  51. void SetDisableVideo(bool isDisableVideo) { disableVideo = isDisableVideo; }
  52. void keyPressEvent(QKeyEvent *event);
  53. #ifndef _WEBBOX_COMMON
  54. void SetBackgroundImage(const QImage& bmpBg);
  55. void LoadBackImage(const QString& fileName);
  56. void SetHead(const QString &head) {};
  57. #endif
  58. private:
  59. // Internal methods
  60. void wheelEvent(QWheelEvent *e);
  61. #ifndef _WEBBOX_COMMON
  62. void CalcImageSize();
  63. void paintEvent(QPaintEvent *e);
  64. QVariant loadResource(int type, const QUrl &name);
  65. void resizeEvent(QResizeEvent *e);
  66. void clearManualResources();
  67. #endif
  68. // Fields
  69. bool m_isUseHtml;
  70. QString m_outFormat;
  71. QString m_path;
  72. QString m_imagePath;
  73. QFont m_font;
  74. QString m_text;
  75. int m_posX;
  76. int m_posY;
  77. QColor m_linkColor;
  78. QColor m_backColor;
  79. QColor m_fontColor;
  80. bool showPlainText;
  81. bool disableVideo;
  82. #ifndef _WEBBOX_COMMON
  83. QImage m_bmpBg;
  84. QImage m_bmpRealBg;
  85. QMap<QString, animation_gif> animations_gif;
  86. QMap<QString, animation_video> animations_video;
  87. QMutex mutex;
  88. #endif
  89. #ifndef _WEBBOX_COMMON
  90. private slots:
  91. void repaintAnimation();
  92. void resizeAnimations();
  93. #endif
  94. };
  95. #endif // QSPTEXTBOX_H