home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
qt3_emx.zip
/
include
/
qmenudata.h
< prev
next >
Wrap
C/C++ Source or Header
|
2001-10-11
|
9KB
|
277 lines
/****************************************************************************
** $Id: qt/qmenudata.h 3.0.0 edited Oct 8 04:10 $
**
** Definition of QMenuData class
**
** Created : 941128
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of the widgets module of the Qt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.QPL included in the packaging of this file.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
** licenses may use this file in accordance with the Qt Commercial License
** Agreement provided with the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
** information about Qt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for QPL licensing information.
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef QMENUDATA_H
#define QMENUDATA_H
#ifndef QT_H
#include "qglobal.h"
#include "qiconset.h" // conversion QPixmap->QIconset
#include "qkeysequence.h"
#include "qstring.h"
#include "qsignal.h"
#include "qfont.h"
#endif // QT_H
#ifndef QT_NO_MENUDATA
class QPopupMenu;
class QMenuDataData;
class QObject;
class QCustomMenuItem;
class QMenuItemData;
class Q_EXPORT QMenuItem // internal menu item class
{
friend class QMenuData;
public:
QMenuItem();
~QMenuItem();
int id() const { return ident; }
QIconSet *iconSet() const { return iconset_data; }
QString text() const { return text_data; }
QString whatsThis() const { return whatsthis_data; }
QPixmap *pixmap() const { return pixmap_data; }
QPopupMenu *popup() const { return popup_menu; }
QWidget *widget() const { return widget_item; }
QCustomMenuItem *custom() const;
#ifndef QT_NO_ACCEL
QKeySequence key() const { return accel_key; }
#endif
QSignal *signal() const { return signal_data; }
bool isSeparator() const { return is_separator; }
bool isEnabled() const { return is_enabled; }
bool isChecked() const { return is_checked; }
bool isDirty() const { return is_dirty; }
void setText( const QString &text ) { text_data = text; }
void setDirty( bool dirty ) { is_dirty = dirty; }
void setWhatsThis( const QString &text ) { whatsthis_data = text; }
private:
int ident; // item identifier
QIconSet *iconset_data; // icons
QString text_data; // item text
QString whatsthis_data; // item Whats This help text
QPixmap *pixmap_data; // item pixmap
QPopupMenu *popup_menu; // item popup menu
QWidget *widget_item; // widget menu item
#ifndef QT_NO_ACCEL
QKeySequence accel_key; // accelerator key (state|ascii)
#endif
QSignal *signal_data; // connection
uint is_separator : 1; // separator flag
uint is_enabled : 1; // disabled flag
uint is_checked : 1; // checked flag
uint is_dirty : 1; // dirty (update) flag
QMenuItemData* d;
QMenuItemData* extra();
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QMenuItem( const QMenuItem & );
QMenuItem &operator=( const QMenuItem & );
#endif
};
#include "qptrlist.h"
typedef QPtrList<QMenuItem> QMenuItemList;
typedef QPtrListIterator<QMenuItem> QMenuItemListIt;
class Q_EXPORT QCustomMenuItem : public Qt
{
public:
QCustomMenuItem();
virtual ~QCustomMenuItem();
virtual bool fullSpan() const;
virtual bool isSeparator() const;
virtual void setFont( const QFont& font );
virtual void paint( QPainter* p, const QColorGroup& cg, bool act,
bool enabled, int x, int y, int w, int h ) = 0;
virtual QSize sizeHint() = 0;
};
class Q_EXPORT QMenuData // menu data class
{
friend class QMenuBar;
friend class QPopupMenu;
public:
QMenuData();
virtual ~QMenuData();
uint count() const;
int insertItem( const QString &text,
const QObject *receiver, const char* member,
const QKeySequence& accel = 0, int id = -1, int index = -1 );
int insertItem( const QIconSet& icon,
const QString &text,
const QObject *receiver, const char* member,
const QKeySequence& accel = 0, int id = -1, int index = -1 );
int insertItem( const QPixmap &pixmap,
const QObject *receiver, const char* member,
const QKeySequence& accel = 0, int id = -1, int index = -1 );
int insertItem( const QIconSet& icon,
const QPixmap &pixmap,
const QObject *receiver, const char* member,
const QKeySequence& accel = 0, int id = -1, int index = -1 );
int insertItem( const QString &text, int id=-1, int index=-1 );
int insertItem( const QIconSet& icon,
const QString &text, int id=-1, int index=-1 );
int insertItem( const QString &text, QPopupMenu *popup,
int id=-1, int index=-1 );
int insertItem( const QIconSet& icon,
const QString &text, QPopupMenu *popup,
int id=-1, int index=-1 );
int insertItem( const QPixmap &pixmap, int id=-1, int index=-1 );
int insertItem( const QIconSet& icon,
const QPixmap &pixmap, int id=-1, int index=-1 );
int insertItem( const QPixmap &pixmap, QPopupMenu *popup,
int id=-1, int index=-1 );
int insertItem( const QIconSet& icon,
const QPixmap &pixmap, QPopupMenu *popup,
int id=-1, int index=-1 );
int insertItem( QWidget* widget, int id=-1, int index=-1 );
int insertItem( const QIconSet& icon, QCustomMenuItem* custom, int id=-1, int index=-1 );
int insertItem( QCustomMenuItem* custom, int id=-1, int index=-1 );
int insertSeparator( int index=-1 );
void removeItem( int id ) { removeItemAt(indexOf(id)); }
void removeItemAt( int index );
void clear();
#ifndef QT_NO_ACCEL
QKeySequence accel( int id ) const;
void setAccel( const QKeySequence& key, int id );
#endif
QIconSet *iconSet( int id ) const;
QString text( int id ) const;
QPixmap *pixmap( int id ) const;
void setWhatsThis( int id, const QString& );
QString whatsThis( int id ) const;
void changeItem( int id, const QString &text );
void changeItem( int id, const QPixmap &pixmap );
void changeItem( int id, const QIconSet &icon, const QString &text );
void changeItem( int id, const QIconSet &icon, const QPixmap &pixmap );
void changeItem( const QString &text, int id ) { changeItem( id, text); } // obsolete
void changeItem( const QPixmap &pixmap, int id ) { changeItem( id, pixmap ); } // obsolete
void changeItem( const QIconSet &icon, const QString &text, int id ) { // obsolete
changeItem( id, icon, text );
}
bool isItemActive( int id ) const;
bool isItemEnabled( int id ) const;
void setItemEnabled( int id, bool enable );
bool isItemChecked( int id ) const;
void setItemChecked( int id, bool check );
virtual void updateItem( int id );
int indexOf( int id ) const;
int idAt( int index ) const;
virtual void setId( int index, int id );
bool connectItem( int id,
const QObject *receiver, const char* member );
bool disconnectItem( int id,
const QObject *receiver, const char* member );
bool setItemParameter( int id, int param );
int itemParameter( int id ) const;
QMenuItem *findItem( int id ) const;
QMenuItem *findItem( int id, QMenuData ** parent ) const;
QMenuItem * findPopup( QPopupMenu *, int *index = 0 );
virtual void activateItemAt( int index );
protected:
int actItem;
QMenuItemList *mitems;
QMenuData *parentMenu;
uint isPopupMenu : 1;
uint isMenuBar : 1;
uint badSize : 1;
uint mouseBtDn : 1;
uint avoid_circularity : 1;
uint actItemDown : 1;
virtual void menuContentsChanged();
virtual void menuStateChanged();
virtual void menuInsPopup( QPopupMenu * );
virtual void menuDelPopup( QPopupMenu * );
private:
int insertAny( const QString *, const QPixmap *, QPopupMenu *,
const QIconSet*, int, int, QWidget* = 0, QCustomMenuItem* = 0);
void removePopup( QPopupMenu * );
void changeItemIconSet( int id, const QIconSet &icon );
QMenuDataData *d;
private: // Disabled copy constructor and operator=
#if defined(Q_DISABLE_COPY)
QMenuData( const QMenuData & );
QMenuData &operator=( const QMenuData & );
#endif
};
#endif // QT_NO_MENUDATA
#endif // QMENUDATA_H