Source: qaction.h


Annotated List
Files
Globals
Hierarchy
Index
#ifndef QACTION_H
#define QACTION_H

#ifndef QT_H
#include "qobject.h"
#include "qiconset.h"
#include "qpixmap.h"
#include "qstring.h"
#include "qstringlist.h"
#include "qwidget.h"
#include "qdialog.h"
#include "qvaluelist.h"
#include "qfontdatabase.h"
#endif // QT_H

class QToolBar;
class QMenuBar;
class QPopupMenu;
class QComboBox;
class QPoint;
class QIconView;
class QIconViewItem;
class QPoint;

class QAction : public QObject
{
    Q_OBJECT
public:
    QAction( const QString& text, int accel = 0, QObject* parent = 0, const char* name = 0 );
    QAction( const QString& text, int accel,
	     const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QAction( const QString& text, const QIconSet& pix, int accel = 0,
	     QObject* parent = 0, const char* name = 0 );
    QAction( const QString& text, const QIconSet& pix, int accel,
	     const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QAction( QObject* parent = 0, const char* name = 0 );
    virtual ~QAction();

    virtual void update();

    virtual int plug( QWidget*, int index = -1 );
    virtual void unplug( QWidget* );

    virtual bool isPlugged() const;

//    QDomElement configuration( QDomDocument& doc, bool properties ) const;

    QWidget* container( int index );
    QWidget* representative( int index );
    int containerCount() const;

    // ##### todo setPixmap
    virtual QPixmap pixmap() const;

    virtual bool hasIconSet() const;
    virtual QString plainText() const;

    virtual QObject* component();
    virtual void setComponent( QObject* );

    virtual void setText( const QString& text );
    virtual QString text() const;

    virtual void setIconSet( const QIconSet& );
    virtual QIconSet iconSet() const;

    virtual void setWhatsThis( const QString& text );
    virtual QString whatsThis() const;

    virtual bool isEnabled() const;
    virtual void setEnabled( bool );

    virtual void setGroup( const QString& );
    virtual QString group() const;

    virtual void setAccel( int );
    virtual int accel() const;

    virtual void setToolTip( const QString& );
    virtual QString toolTip() const;

protected slots:
    virtual void slotDestroyed();
    virtual void slotActivated();

protected:
    QToolBar* toolBar( int index );
    QPopupMenu* popupMenu( int index );
    int menuId( int index );
    void removeContainer( int index );
    int findContainer( QWidget* widget );

    void addContainer( QWidget* parent, int id );
    void addContainer( QWidget* parent, QWidget* representative );

    virtual void setAccel( int id, int accel );
    virtual void setGroup( int id, const QString& grp );
    virtual void setEnabled( int id, bool enable );
    virtual void setToolTip( int id, const QString& tt );
    virtual void setText( int id, const QString& text );
    virtual void setIconSet( int id, const QIconSet& iconset );
    virtual void setWhatsThis( int id, const QString& text );

signals:
    void activated();
    void enabled( bool );

private:
    QObject* m_component;

    QString m_text;
    QString m_whatsThis;
    QString m_groupText;
    QPixmap m_pixmap;
    QIconSet m_iconSet;
    bool m_bIconSet;
    QString m_group;
    int m_accel;
    QString m_toolTip;

    struct Container
    {
	Container() { m_container = 0; m_representative = 0; m_id = 0; }
	Container( const Container& s ) { m_container = s.m_container;
	                                  m_id = s.m_id; m_representative = s.m_representative; }
	QWidget* m_container;
	int m_id;
	QWidget* m_representative;
    };

    QValueList<Container> m_containers;
    bool m_enabled;
};

class QActionSeparator : public QAction
{
    Q_OBJECT
public:
    QActionSeparator( QObject* parent = 0, const char* name = 0 );
    virtual ~QActionSeparator();

    virtual int plug( QWidget*, int index = -1 );
    virtual void unplug( QWidget* );
};

class QActionMenu : public QAction
{
    Q_OBJECT
public:
    QActionMenu( const QString& text, QObject* parent = 0, const char* name = 0 );
    QActionMenu( const QString& text, const QIconSet& icon, QObject* parent = 0, const char* name = 0 );
    QActionMenu( QObject* parent = 0, const char* name = 0 );
    virtual ~QActionMenu();

    virtual int plug( QWidget*, int index = -1 );
    virtual void unplug( QWidget* );

    virtual void insert( QAction*, int index = -1 );
    virtual void remove( QAction* );

    QPopupMenu* popupMenu();
    void popup( const QPoint& global );

//    virtual bool setConfiguration( const QDomElement& element );

private:
    QPopupMenu* m_popup;
};

class QToggleAction : public QAction
{
    Q_OBJECT
public:
    QToggleAction( const QString& text, int accel = 0, QObject* parent = 0, const char* name = 0 );
    QToggleAction( const QString& text, int accel,
		   const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QToggleAction( const QString& text, const QIconSet& pix, int accel = 0,
	     QObject* parent = 0, const char* name = 0 );
    QToggleAction( const QString& text, const QIconSet& pix, int accel,
		   const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QToggleAction( QObject* parent = 0, const char* name = 0 );

    int plug( QWidget*, int index = -1 );

    virtual void setChecked( bool );
    bool isChecked();

    virtual void setExclusiveGroup( const QString& name );
    virtual QString exclusiveGroup() const;

protected:
    virtual void setChecked( int id, bool checked );

protected slots:
    void slotActivated();

signals:
    void toggled( bool );

private:
    bool m_checked;
    bool m_lock;
    QString m_exclusiveGroup;
};

class QSelectAction : public QAction
{
    Q_OBJECT
public:
    QSelectAction( const QString& text, int accel = 0, QObject* parent = 0, const char* name = 0 );
    QSelectAction( const QString& text, int accel,
		   const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QSelectAction( const QString& text, const QIconSet& pix, int accel = 0,
	     QObject* parent = 0, const char* name = 0 );
    QSelectAction( const QString& text, const QIconSet& pix, int accel,
		   const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QSelectAction( QObject* parent = 0, const char* name = 0 );

    void setEditable( bool );
    bool isEditable() const;

    int plug( QWidget*, int index = -1 );

    virtual void setItems( const QStringList& items );
    QStringList items();
    virtual void changeItem( int index, const QString& text );
    QString currentText();
    int currentItem();
    virtual void setCurrentItem( int index );
    virtual void clear();

    QPopupMenu* popupMenu();

protected:
    virtual void setCurrentItem( int id, int index );
    virtual void changeItem( int id, int index, const QString& text );
    virtual void setItems( int id, const QStringList& items );
    virtual void clear( int id );

protected slots:
    virtual void slotActivated( int );

signals:
    void activated( int index );
    void activated( const QString& text );

private:
    bool m_edit;
    bool m_lock;
    QStringList m_list;
    QPopupMenu* m_menu;
    int m_current;
};

class QFontAction : public QSelectAction
{
    Q_OBJECT
public:
    QFontAction( const QString& text, int accel = 0, QObject* parent = 0, const char* name = 0 );
    QFontAction( const QString& text, int accel,
		 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QFontAction( const QString& text, const QIconSet& pix, int accel = 0,
	     QObject* parent = 0, const char* name = 0 );
    QFontAction( const QString& text, const QIconSet& pix, int accel,
		 const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QFontAction( QObject* parent = 0, const char* name = 0 );

private:
    QFontDatabase m_fdb;
};

class QFontSizeAction : public QSelectAction
{
    Q_OBJECT
public:
    QFontSizeAction( const QString& text, int accel = 0, QObject* parent = 0, const char* name = 0 );
    QFontSizeAction( const QString& text, int accel,
		     const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QFontSizeAction( const QString& text, const QIconSet& pix, int accel = 0,
	     QObject* parent = 0, const char* name = 0 );
    QFontSizeAction( const QString& text, const QIconSet& pix, int accel,
		     const QObject* receiver, const char* slot, QObject* parent, const char* name = 0 );
    QFontSizeAction( QObject* parent = 0, const char* name = 0 );

    int plug( QWidget*, int index = -1 );

    void setFontSize( int size );
    int fontSize();

protected slots:
    virtual void slotActivated( int );
    virtual void slotActivated( const QString& );

signals:
    void fontSizeChanged( int );

private:
    void init();

    bool m_lock;
};

class QActionCollection : public QObject
{
    Q_OBJECT
public:
    QActionCollection( QObject* parent = 0, const char* name = 0 );
    QActionCollection( const QActionCollection& copy );
    ~QActionCollection();

    virtual void insert( QAction* );
    virtual void remove( QAction* );
    virtual QAction* take( QAction* );

    virtual QAction* action( int index );
    virtual uint count() const;
    virtual QAction* action( const char* name, const char* classname = 0, QObject* component = 0 );

    virtual QStringList groups() const;
    virtual QValueList<QAction*> actions( const QString& group ) const;
    virtual QValueList<QAction*> actions() const;

    QActionCollection operator+ (const QActionCollection& ) const;
    QActionCollection& operator= (const QActionCollection& );
    QActionCollection& operator+= (const QActionCollection& );

//    bool setConfiguration( const QDomElement& element );
//    QDomElement configuration( QDomDocument& doc, bool properties ) const;

signals:
    void inserted( QAction* );
    void removed( QAction* );

protected:
    void childEvent( QChildEvent* );

private:
    QList<QAction> m_actions;
};

/////// This needs to be ported to the new QIconView, to make it compile
/////// We don't use it currently,anyway.
/*
class QActionWidget : public QWidget
{
  //Q_OBJECT
public:
    QActionWidget( QWidget* parent = 0, const char* name = 0 );
    QActionWidget( QActionCollection*, QWidget* parent = 0, const char* name = 0 );
    ~QActionWidget();

    virtual QAction* currentAction();

    virtual void clearSelection();
    virtual QAction* selectedAction();

    virtual QActionCollection* collection();
    virtual void setCollection( QActionCollection* );

    virtual void addGroup( const QString& group );
    virtual QString currentGroup() const;
    virtual void setCurrentGroup( const QString& grp, bool update = FALSE );

    void updateAction( QAction* );

signals:
    void rightButtonPressed( QAction*, const QPoint& );
    void selectionChanged( QAction* );

    protected slots:
    void slotDropped( QDropEvent* );
    void insertAction( QAction* );
    void removeAction( QAction* );

private slots:
    void rightButtonPressed( QIconViewItem*, const QPoint& );
    void showGroup( const QString& grp );
    void selectionChanged();

private:
    void init();

private:
    QIconView* m_icons;
    QComboBox* m_group;
    QActionCollection* m_collection;
};

class QActionDialog : public QDialog
{
  //Q_OBJECT
public:
    QActionDialog( QActionCollection*, QWidget* parent = 0, const char* name = 0, bool modal = FALSE );
    ~QActionDialog();

    QActionWidget* actionWidget();

private:
    QActionWidget* m_widget;
};
*/

#endif

Generated by: dfaure@faure on Sun Mar 26 14:24:07 2000, using kdoc 2.0a35.