00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef __KOCONTEXTHELPACTION_H__
00021
#define __KOCONTEXTHELPACTION_H__
00022
00023
#include <qwidget.h>
00024
#include <qbitmap.h>
00025
#include <qdockwindow.h>
00026
00027
#include <kaction.h>
00028
00029
class QPixmap;
00030
class QLabel;
00031
class QSimpleRichText;
00032
00033
class KoVerticalLabel :
public QWidget
00034 {
00035 Q_OBJECT
00036
00037
public:
00038 KoVerticalLabel(
QWidget* parent = 0,
const char* name = 0 );
00039 ~KoVerticalLabel();
00040
00041
public slots:
00042
void setText(
const QString& text );
00043
00044
protected:
00045
void paintEvent(
QPaintEvent* );
00046
00047
private:
00048
QString m_text;
00049 };
00050
00051
class KoHelpNavButton :
public QWidget
00052 {
00053 Q_OBJECT
00054
00055
public:
00056
enum NavDirection {
00057 Up,
00058 Down
00059 };
00060
00061 KoHelpNavButton( NavDirection d,
QWidget* parent );
00062
00063 signals:
00064
void pressed();
00065
void released();
00066
00067
protected:
00068
void paintEvent(
QPaintEvent* );
00069
void enterEvent(
QEvent* );
00070
void leaveEvent(
QEvent* );
00071
00072
private:
00073
QBitmap m_bitmap;
00074
bool m_pressed;
00075 };
00076
00077
class KoTinyButton :
public QWidget
00078 {
00079 Q_OBJECT
00080
00081
public:
00082
enum Action {
00083 Close,
00084 Sticky
00085 };
00086
00087 KoTinyButton( Action a,
QWidget* parent );
00088
00089 signals:
00090
void clicked();
00091
void toggled(
bool );
00092
00093
protected:
00094
void paintEvent(
QPaintEvent* );
00095
void mousePressEvent(
QMouseEvent* );
00096
void mouseReleaseEvent(
QMouseEvent* );
00097
00098
private:
00099
QBitmap m_bitmap;
00100
bool m_pressed;
00101 Action m_action;
00102
bool m_toggled;
00103 };
00104
00105
class KoHelpView :
public QWidget
00106 {
00107 Q_OBJECT
00108
00109
public:
00110 KoHelpView(
QWidget* parent );
00111 ~KoHelpView();
00112
00113
void setText(
const QString& text );
00114
bool eventFilter(
QObject* watched,
QEvent* e );
00115
00116 signals:
00117
void linkClicked(
const QString& link );
00118
00119
protected:
00120
virtual void mousePressEvent(
QMouseEvent* e );
00121
virtual void mouseReleaseEvent(
QMouseEvent* e );
00122
virtual void mouseMoveEvent(
QMouseEvent* e );
00123
virtual void paintEvent(
QPaintEvent* e );
00124
00125
private:
00126
QSimpleRichText* currentText;
00127
QString currentAnchor;
00128 };
00129
00130
class KoHelpWidget :
public QWidget
00131 {
00132 Q_OBJECT
00133
00134
public:
00135 KoHelpWidget(
QString help,
QWidget* parent );
00136
00137
void setText(
QString text );
00138
void timerEvent(
QTimerEvent* );
00139
void updateButtons();
00140
00141 signals:
00142
void linkClicked(
const QString& link );
00143
00144
public slots:
00145
void scrollUp();
00146
void scrollDown();
00147
void startScrollingUp();
00148
void startScrollingDown();
00149
void stopScrolling();
00150
00151
protected:
00152
void resizeEvent(
QResizeEvent* );
00153
00154
private:
00155
int m_ypos;
00156
bool m_scrollDown;
00157
QWidget* m_helpViewport;
00158 KoHelpView* m_helpView;
00159 KoHelpNavButton* m_upButton;
00160 KoHelpNavButton* m_downButton;
00161 };
00162
00166 class KoContextHelpPopup :
public QWidget
00167 {
00168 Q_OBJECT
00169
00170
public:
00171
KoContextHelpPopup(
QWidget* parent = 0 );
00172 ~
KoContextHelpPopup();
00173
00174
public slots:
00175
void setContextHelp(
const QString& title,
const QString& text,
const QPixmap* icon = 0 );
00176
void setSticky(
bool sticky ) { m_isSticky = sticky; }
00177
00178
protected:
00179
virtual void mousePressEvent(
QMouseEvent* );
00180
virtual void mouseMoveEvent(
QMouseEvent* );
00181
virtual void resizeEvent(
QResizeEvent* );
00182
virtual void paintEvent(
QPaintEvent* );
00183
virtual void windowActivationChange(
bool );
00184
virtual void keyPressEvent (
QKeyEvent* );
00185
virtual void keyReleaseEvent (
QKeyEvent* );
00186
00187 signals:
00188
void wantsToBeClosed();
00192
void linkClicked(
const QString& link );
00193
00194
private:
00195 KoHelpWidget* m_helpViewer;
00196 KoVerticalLabel* m_helpTitle;
00197
QLabel* m_helpIcon;
00198 KoTinyButton* m_close;
00199 KoTinyButton* m_sticky;
00200
00201
QPoint m_mousePos;
00202
bool m_isSticky;
00203 };
00204
00211 class KoContextHelpAction :
public KToggleAction
00212 {
00213 Q_OBJECT
00214
00215
public:
00216
KoContextHelpAction( KActionCollection* parent,
QWidget* parent = 0 );
00217
virtual ~
KoContextHelpAction();
00218
00219
public slots:
00220
void updateHelp(
const QString& title,
const QString& text,
const QPixmap* icon = 0 );
00221
void closePopup();
00222
00223 signals:
00227
void linkClicked(
const QString& link );
00228
00229
private:
00230
KoContextHelpPopup* m_popup;
00231 };
00232
00233
class KoContextHelpWidget :
public QWidget
00234 {
00235 Q_OBJECT
00236
00237
public:
00238 KoContextHelpWidget(
QWidget* parent = 0,
const char* name = 0 );
00239 ~KoContextHelpWidget();
00240
00241
public slots:
00242
void setContextHelp(
const QString& title,
const QString& text,
const QPixmap* icon = 0 );
00243
00244 signals:
00248
void linkClicked(
const QString& link );
00249
00250
private:
00251 KoHelpWidget* m_helpViewer;
00252 KoVerticalLabel* m_helpTitle;
00253
QLabel* m_helpIcon;
00254 };
00255
00256
class KoContextHelpDocker :
public QDockWindow
00257 {
00258 Q_OBJECT
00259
00260
public:
00261 KoContextHelpDocker(
QWidget* parent = 0,
const char* name = 0 );
00262 ~KoContextHelpDocker();
00263
00264
public slots:
00265
void setContextHelp(
const QString& title,
const QString& text,
const QPixmap* icon = 0 );
00266
00267 signals:
00271
void linkClicked(
const QString& link );
00272
00273
private:
00274 KoHelpWidget* m_helpViewer;
00275 KoVerticalLabel* m_helpTitle;
00276
QLabel* m_helpIcon;
00277 };
00278
00279
#endif