You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/lib/kofficeui/KoContextCelp.h

289 lines
6.4 KiB

/* This file is part of the KDE project
Copyright (C) 2002, Benoit Vautrin <benoit.vautrin@free.fr>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __KOCONTEXTHELPACTION_H__
#define __KOCONTEXTHELPACTION_H__
#include <tqwidget.h>
#include <tqbitmap.h>
#include <tqdockwindow.h>
#include <tdeaction.h>
#include <koffice_export.h>
class TQPixmap;
class TQLabel;
class TQSimpleRichText;
class KoVerticalLabel : public TQWidget
{
Q_OBJECT
public:
KoVerticalLabel( TQWidget* parent = 0, const char* name = 0 );
~KoVerticalLabel();
public slots:
void setText( const TQString& text );
protected:
void paintEvent( TQPaintEvent* );
private:
TQString m_text;
}; // KoVerticalLabel
class KoHelpNavButton : public TQWidget
{
Q_OBJECT
public:
enum NavDirection {
Up,
Down
};
KoHelpNavButton( NavDirection d, TQWidget* parent );
signals:
void pressed();
void released();
protected:
void paintEvent( TQPaintEvent* );
void enterEvent( TQEvent* );
void leaveEvent( TQEvent* );
private:
TQBitmap m_bitmap;
bool m_pressed;
}; // KoHelpNavButton
class KoTinyButton : public TQWidget
{
Q_OBJECT
public:
enum Action {
Close,
Sticky
};
KoTinyButton( Action a, TQWidget* parent );
signals:
void clicked();
void toggled( bool );
protected:
void paintEvent( TQPaintEvent* );
void mousePressEvent( TQMouseEvent* );
void mouseReleaseEvent( TQMouseEvent* );
private:
TQBitmap m_bitmap;
bool m_pressed;
Action m_action;
bool m_toggled;
}; // KoTinyButton
class KoHelpView : public TQWidget
{
Q_OBJECT
public:
KoHelpView( TQWidget* parent );
~KoHelpView();
void setText( const TQString& text );
bool eventFilter( TQObject* watched, TQEvent* e );
signals:
void linkClicked( const TQString& link );
protected:
virtual void mousePressEvent( TQMouseEvent* e );
virtual void mouseReleaseEvent( TQMouseEvent* e );
virtual void mouseMoveEvent( TQMouseEvent* e );
virtual void paintEvent( TQPaintEvent* e );
private:
TQSimpleRichText* currentText;
TQString currentAnchor;
}; // KoHelpView
class KoHelpWidget : public TQWidget
{
Q_OBJECT
public:
KoHelpWidget( TQString help, TQWidget* parent );
void setText( TQString text );
void timerEvent( TQTimerEvent* );
void updateButtons();
signals:
void linkClicked( const TQString& link );
public slots:
void scrollUp();
void scrollDown();
void startScrollingUp();
void startScrollingDown();
void stopScrolling();
protected:
void resizeEvent( TQResizeEvent* );
private:
int m_ypos;
bool m_scrollDown;
TQWidget* m_helpViewport;
KoHelpView* m_helpView;
KoHelpNavButton* m_upButton;
KoHelpNavButton* m_downButton;
}; // KoHelpWidget
/**
* KoContextHelpPopup is the popup displayed by ContextHelpAction.
*/
class KoContextHelpPopup : public TQWidget
{
Q_OBJECT
public:
KoContextHelpPopup( TQWidget* parent = 0 );
~KoContextHelpPopup();
public slots:
void setContextHelp( const TQString& title, const TQString& text, const TQPixmap* icon = 0 );
void setSticky( bool sticky ) { m_isSticky = sticky; }
protected:
virtual void mousePressEvent( TQMouseEvent* );
virtual void mouseMoveEvent( TQMouseEvent* );
virtual void resizeEvent( TQResizeEvent* );
virtual void paintEvent( TQPaintEvent* );
virtual void windowActivationChange( bool );
virtual void keyPressEvent ( TQKeyEvent* );
virtual void keyReleaseEvent ( TQKeyEvent* );
signals:
void wantsToBeClosed();
/**
* Connect to this signal to receive the href value of the links clicked.
*/
void linkClicked( const TQString& link );
private:
KoHelpWidget* m_helpViewer;
KoVerticalLabel* m_helpTitle;
TQLabel* m_helpIcon;
KoTinyButton* m_close;
KoTinyButton* m_sticky;
TQPoint m_mousePos;
bool m_isSticky;
}; // KoContextHelpPopup
/**
* KoContextHelpAction provides a easy to use context help system.
*
* This action displays on demand a context help in a popup.
* The context help is set by the updateHelp slot.
*/
class KOFFICEUI_EXPORT KoContextHelpAction : public TDEToggleAction
{
Q_OBJECT
public:
KoContextHelpAction( TDEActionCollection* parentCollection, TQWidget* parent = 0 );
virtual ~KoContextHelpAction();
public slots:
void updateHelp( const TQString& title, const TQString& text, const TQPixmap* icon = 0 );
void closePopup();
signals:
/**
* Connect to this signal to receive the href value of the links clicked.
*/
void linkClicked( const TQString& link );
private:
KoContextHelpPopup* m_popup;
}; // KoContextHelpAction
class KoContextHelpWidget : public TQWidget
{
Q_OBJECT
public:
KoContextHelpWidget( TQWidget* parent = 0, const char* name = 0 );
~KoContextHelpWidget();
public slots:
void setContextHelp( const TQString& title, const TQString& text, const TQPixmap* icon = 0 );
signals:
/**
* Connect to this signal to receive the href value of the links clicked.
*/
void linkClicked( const TQString& link );
private:
KoHelpWidget* m_helpViewer;
KoVerticalLabel* m_helpTitle;
TQLabel* m_helpIcon;
}; // KoContextHelpWidget
class KoContextHelpDocker : public TQDockWindow
{
Q_OBJECT
public:
KoContextHelpDocker( TQWidget* parent = 0, const char* name = 0 );
~KoContextHelpDocker();
public slots:
void setContextHelp( const TQString& title, const TQString& text, const TQPixmap* icon = 0 );
signals:
/**
* Connect to this signal to receive the href value of the links clicked.
*/
void linkClicked( const TQString& link );
private:
KoHelpWidget* m_helpViewer;
KoVerticalLabel* m_helpTitle;
TQLabel* m_helpIcon;
}; // KoContextHelpDocker
#endif /* __KOCONTEXTHELPACTION_H__ */