This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: qt, mtrr


Originator
	Lorenzo Delana (brainstorm@penguinpowered.com)
Organization
	none
Confidential
so, I get this...

g++ -c -I/trash/qt-1.44/include -I/usr/X11R6/include -pipe -O2 -fno-strength-reduce -O2 -fno-strength-reduce -fPIC -save-temps  -o widgets/qmenubar.o widgets/qmenubar.cpp
g++: Warning: -pipe ignored since -save-temps specified
widgets/qmenubar.cpp: In method `int QMenuBar::calculateRects(int = -1)':
widgets/qmenubar.cpp:541: Internal compiler error.
widgets/qmenubar.cpp:541: Please submit a full bug report.
widgets/qmenubar.cpp:541: See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make[1]: *** [widgets/qmenubar.o] Error 1
make[1]: Leaving directory `/trash/qt-1.44/src'
make: *** [src] Error 2

--------
Attach files: qmenubar.cpp, qmenubar.s, qmenubar.ii

Some hardware details of my machine:
- K7 Athlon 500Mhz
- K7V Asus motherboard with VIA Apollo Pro chipset
- 128MB RAM 100Mhz
- Viper 550 AGP
- UDMA(33) enabled for Via chipset

Kernel:
- version 2.2.14 + patches ( kern from SuSE 6.4 )
- no SMP, no MTRR, K6 processor family

^^Attach: .config (kernel configuration list)

Software:
- Debian frozen, potato
ii  g++            2.95.2-13      The GNU C++ compiler.
ii  libg++2.8      2.90.29-2      The GNU C++ extension library - old runtime 
ii  libg++2.8.1.3  2.95.2-13      The GNU C++ extension library - runtime vers
ii  libg++2.8.1.3- 2.95.2-13      The GNU C++ extension library - debugging fi
ii  libg++2.8.1.3- 2.95.2-13      The GNU C++ extension library - development 
ii  libg++2.8.2-gl 2.91.66-4      The GNU C++ extension library - old runtime 
ii  libg++27       2.7.2.1-14.4   The GNU C++ libraries (ELF version).
ii  libg++27-altde 2.7.2.1-14.4   The GNU C++ libraries (ELF version).

brainstorm:/trash/qt-1.44# gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.2/specs
gcc version 2.95.2 20000220 (Debian GNU/Linux)

brainstorm:/trash/qt-1.44# dpkg -l | grep libc
ii  libc5          5.4.46-3       The Linux C library version 5 (run-time libr
ii  libc5-altdev   5.4.46-3       The Linux C library version 5 (alternative d
ii  libc6          2.1.3-10       GNU C Library: Shared libraries and Timezone
ii  libc6-dev      2.1.3-10       GNU C Library: Development Libraries and Hea
ii  libcw          3.11.6-5       The Cool widget library used by cooledit/coo
ii  libgpmg1       1.17.8-18      General Purpose Mouse Library [libc6]
ii  xlib6          3.3.6-10       shared libraries required by libc5 X clients
ii  xpm4.7         3.4k-5         the X PixMap library, compiled with libc5



---


ok,
if y want other info, ask...



PS. you think that this is a true gcc bug...in other words, and Internal Error of gcc ever implies a bug in compiler?, thanks.


bye.
# 1 "widgets/qmenubar.cpp"
 























# 1 "widgets/qmenubar.h" 1
 


























# 1 "widgets/qpopupmenu.h" 1
 


























# 1 "widgets/qtableview.h" 1
 


























# 1 "widgets/qframe.h" 1
 


























# 1 "/trash/qt-1.44/include/qwidget.h" 1
 


























# 1 "/trash/qt-1.44/include/qwindowdefs.h" 1
 



























# 1 "/trash/qt-1.44/include/qobjectdefs.h" 1
 


























# 1 "/trash/qt-1.44/include/qglobal.h" 1
 






























 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

# 83 "/trash/qt-1.44/include/qglobal.h"


# 115 "/trash/qt-1.44/include/qglobal.h"










 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

# 157 "/trash/qt-1.44/include/qglobal.h"


# 187 "/trash/qt-1.44/include/qglobal.h"







 
 
 





 
 
 










 
 
 


















 
 
 
 
 
 



 
 
 

# 267 "/trash/qt-1.44/include/qglobal.h"










 
 
 





# 293 "/trash/qt-1.44/include/qglobal.h"











typedef unsigned char	uchar;
typedef unsigned short	ushort;
typedef unsigned	uint;
typedef unsigned long	ulong;
typedef char	       *pchar;
typedef uchar	       *puchar;
typedef const char     *pcchar;


 
 
 


const bool FALSE = 0;
const bool TRUE = !0;



 
 
 





inline int qRound( double d )
{
    return d > 0.0 ? int(d+0.5) : int(d-0.5);
}


 
 
 


typedef char		INT8;			 
typedef unsigned char	UINT8;			 
typedef short		INT16;			 
typedef unsigned short	UINT16;			 
typedef int		INT32;			 
typedef unsigned int	UINT32;			 


typedef char		Q_INT8;			 
typedef unsigned char	Q_UINT8;		 
typedef short		Q_INT16;		 
typedef unsigned short	Q_UINT16;		 
typedef int		Q_INT32;		 
typedef unsigned int	Q_UINT32;		 


 
 
 

class QDataStream;


 
 
 

  const char *qVersion();
  bool qSysInfo( int *wordSize, bool *bigEndian );


 
 
 












 
 
 
 





# 410 "/trash/qt-1.44/include/qglobal.h"



 
 
 





 
 
 





 
 
 









 
 
 











  void debug( const char *, ... )	 

    __attribute__ ((format (printf, 1, 2)))

;

  void warning( const char *, ... )	 

    __attribute__ ((format (printf, 1, 2)))

;

  void fatal( const char *, ... )	 

    __attribute__ ((format (printf, 1, 2)))

;









  bool chk_pointer( bool c, const char *, int );







enum QtMsgType { QtDebugMsg, QtWarningMsg, QtFatalMsg };

typedef void (*msg_handler)(QtMsgType, const char *);
  msg_handler qInstallMsgHandler( msg_handler );


 
 
 




  void qSuppressObsoleteWarnings( bool = TRUE );



  void qObsolete( const char *obj, const char *oldfunc,
			 const char *newfunc );
  void qObsolete( const char *obj, const char *oldfunc );
  void qObsolete( const char *message );




# 28 "/trash/qt-1.44/include/qobjectdefs.h" 2




 
 





 









 

						 















 

class QObject;
class QMetaObject;
class QSignal;
class QConnection;
class QEvent;


# 86 "/trash/qt-1.44/include/qobjectdefs.h"


class QListM_QConnection;			 



class QDictM_QListM_QConnection;		 



class QListM_QObject;				 


class QDictM_QMetaData;				 






# 29 "/trash/qt-1.44/include/qwindowdefs.h" 2




 

class QApplication;
class QPaintDevice;
class QPaintDeviceMetrics;
class QWidget;
class QWidgetMapper;
class QWindow;
class QDialog;
class QColor;
class QColorGroup;
class QPalette;
class QCursor;
class QPoint;
class QSize;
class QRect;
class QPointArray;
class QPainter;
class QRegion;
class QFont;
class QFontMetrics;
class QFontInfo;
class QPen;
class QBrush;
class QWMatrix;
class QPixmap;
class QBitmap;
class QMovie;
class QImage;
class QImageIO;
class QPicture;
class QPrinter;
class QAccel;
class QTimer;
class QClipboard;


 




class QListM_QWidget;




 

# 93 "/trash/qt-1.44/include/qwindowdefs.h"









 





# 137 "/trash/qt-1.44/include/qwindowdefs.h"



# 154 "/trash/qt-1.44/include/qwindowdefs.h"





typedef unsigned int  WId;
typedef unsigned int  HANDLE;
typedef struct _XDisplay Display;
typedef union  _XEvent XEvent;
typedef struct _XGC *GC;
typedef struct _XRegion *Region;

  Display *qt_xdisplay();
  int	 qt_xscreen();
  WId	 qt_xrootwin();
  GC	 qt_xget_readonly_gc( bool monochrome=FALSE );
  GC	 qt_xget_temp_gc( bool monochrome=FALSE );









 

typedef short QCOORD;				 
const int QCOORD_MIN = -32768;
const int QCOORD_MAX =	32767;

typedef unsigned int QRgb;			 

  char *qAppName();			 


 

typedef void (*CleanUpFunction)();
  void qAddPostRoutine( CleanUpFunction );


  void *qt_find_obj_child( QObject *, const char *, const char * );




 

enum GUIStyle {
    MacStyle,  
    WindowsStyle,
    Win3Style,  
    PMStyle,  
    MotifStyle
};


 

typedef uint WFlags;

const uint WState_Created	= 0x00000001;	 
const uint WState_Disabled	= 0x00000002;
const uint WState_Visible	= 0x00000004;
const uint WState_DoHide	= 0x00000008;
const uint WState_ClickToFocus	= 0x00000010;
const uint WState_TrackMouse	= 0x00000020;
const uint WState_BlockUpdates	= 0x00000040;
const uint WState_PaintEvent	= 0x00000080;

const uint WType_TopLevel	= 0x00000100;	 
const uint WType_Modal		= 0x00000200;
const uint WType_Popup		= 0x00000400;
const uint WType_Desktop	= 0x00000800;

const uint WStyle_Customize	= 0x00001000;	 
const uint WStyle_NormalBorder	= 0x00002000;
const uint WStyle_DialogBorder	= 0x00004000;
const uint WStyle_NoBorder	= 0x00000000;
const uint WStyle_Title		= 0x00008000;
const uint WStyle_SysMenu	= 0x00010000;
const uint WStyle_Minimize	= 0x00020000;
const uint WStyle_Maximize	= 0x00040000;
const uint WStyle_MinMax	= WStyle_Minimize | WStyle_Maximize;
const uint WStyle_Tool		= 0x00080000;
const uint WStyle_Mask		= 0x000ff000;

const uint WCursorSet		= 0x00100000;	 
const uint WDestructiveClose	= 0x00200000;
const uint WPaintDesktop	= 0x00400000;
const uint WPaintUnclipped	= 0x00800000;
const uint WPaintClever		= 0x01000000;
const uint WConfigPending	= 0x02000000;
const uint WResizeNoErase	= 0x04000000;
const uint WRecreated		= 0x08000000;
const uint WExportFontMetrics	= 0x10000000;
const uint WExportFontInfo	= 0x20000000;
const uint WFocusSet		= 0x40000000;	 
const uint WState_TabToFocus	= 0x80000000;


class QFocusData;




 
 

struct QWExtra {
    GUIStyle guistyle;				 
    short    minw, minh;			 
    short    maxw, maxh;			 
    short    incw, inch;			 
    char    *caption;				 
    char    *iconText;				 
    QPixmap *icon;				 




    QPixmap *bg_pix;				 
    QFocusData *focusData;			 

    void * xic;

    char     bg_mode;				 


    uint dnd : 1;				 

    uint sizegrip : 1;				 
    uint propagateFont: 2;
    uint propagatePalette: 2;
};


 

enum RasterOp					 
    { CopyROP, OrROP, XorROP, EraseROP,
      NotCopyROP, NotOrROP, NotXorROP, NotEraseROP, NotROP };


 

const int AlignLeft	= 0x0001;		 
const int AlignRight	= 0x0002;
const int AlignHCenter	= 0x0004;
const int AlignTop	= 0x0008;
const int AlignBottom	= 0x0010;
const int AlignVCenter	= 0x0020;
const int AlignCenter	= AlignVCenter | AlignHCenter;

const int SingleLine	= 0x0040;		 
const int DontClip	= 0x0080;
const int ExpandTabs	= 0x0100;
const int ShowPrefix	= 0x0200;
const int WordBreak	= 0x0400;
const int GrayText	= 0x0800;
const int DontPrint	= 0x1000;		 


 

 

const int ColorMode_Mask         = 0x00000003;
const int AutoColor              = 0x00000000;
const int ColorOnly              = 0x00000003;
const int MonoOnly               = 0x00000002;
 
const int AlphaDither_Mask       = 0x0000000c;
const int ThresholdAlphaDither   = 0x00000000;
const int OrderedAlphaDither     = 0x00000004;
const int DiffuseAlphaDither     = 0x00000008;
 
const int Dither_Mask            = 0x00000030;
const int DiffuseDither          = 0x00000000;
const int OrderedDither          = 0x00000010;
const int ThresholdDither        = 0x00000020;
 
const int DitherMode_Mask        = 0x000000c0;
const int AutoDither             = 0x00000000;
const int PreferDither           = 0x00000040;
const int AvoidDither            = 0x00000080;



# 28 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qobject.h" 1
 



























# 1 "/trash/qt-1.44/include/qstring.h" 1
 



























# 1 "/trash/qt-1.44/include/qarray.h" 1
 


























# 1 "/trash/qt-1.44/include/qgarray.h" 1
 


























# 1 "/trash/qt-1.44/include/qshared.h" 1
 






























struct QShared
{
    QShared()		{ count = 1; }
    void ref()		{ count++; }
    bool deref()	{ return !--count; }
    uint count;
};



# 28 "/trash/qt-1.44/include/qgarray.h" 2




class   QGArray					 
{
friend class QBuffer;
public:
    struct array_data : public QShared {	 
	array_data()	{ data=0; len=0; }
	char *data;				 
	uint  len;
    };
    QGArray();
protected:
    QGArray( int, int );			 
    QGArray( int size );			 
    QGArray( const QGArray &a );		 
    virtual ~QGArray();

    QGArray    &operator=( const QGArray &a ) { return assign( a ); }

    virtual void detach()	{ duplicate(*this); }

    char       *data()	 const	{ return shd->data; }
    uint	nrefs()	 const	{ return shd->count; }
    uint	size()	 const	{ return shd->len; }
    bool	isEqual( const QGArray &a ) const;

    bool	resize( uint newsize );

    bool	fill( const char *d, int len, uint sz );

    QGArray    &assign( const QGArray &a );
    QGArray    &assign( const char *d, uint len );
    QGArray    &duplicate( const QGArray &a );
    QGArray    &duplicate( const char *d, uint len );
    void	store( const char *d, uint len );

    array_data *sharedBlock()	const		{ return shd; }
    void	setSharedBlock( array_data *p ) { shd=(array_data*)p; }

    QGArray    &setRawData( const char *d, uint len );
    void	resetRawData( const char *d, uint len );

    int		find( const char *d, uint index, uint sz ) const;
    int		contains( const char *d, uint sz ) const;

    char       *at( uint index ) const;

    bool	setExpand( uint index, const char *d, uint sz );

protected:
    virtual array_data *newData()		    { return new array_data; }
    virtual void	deleteData( array_data *p ) { delete p; }

private:
    static void msg_index( uint );
    array_data *shd;
};


inline char *QGArray::at( uint index ) const
{

    if ( index >= size() ) {
	msg_index( index );
	index = 0;
    }

    return &shd->data[index];
}



# 28 "/trash/qt-1.44/include/qarray.h" 2






# 1 "/trash/qt-1.44/include/qgeneric.h" 1
 






























 





 
 










 
 



















# 34 "/trash/qt-1.44/include/qarray.h" 2














# 96 "/trash/qt-1.44/include/qarray.h"











template<class type> class   QArrayT : public QGArray
{
protected:
    QArrayT( int, int ) : QGArray( 0, 0 ) {}
public:
    QArrayT()			{}
    QArrayT( int size ) : QGArray(size*sizeof(type)) {}
    QArrayT( const QArrayT<type> &a ) : QGArray(a) {}
   ~QArrayT()			{}
    QArrayT<type> &operator=(const QArrayT<type> &a)
				{ return (QArrayT<type>&)QGArray::assign(a); }
    type *data()    const	{ return (type *)QGArray::data(); }
    uint  nrefs()   const	{ return QGArray::nrefs(); }
    uint  size()    const	{ return QGArray::size()/sizeof(type); }
    bool  isEmpty() const	{ return QGArray::size() == 0; }
    bool  isNull()  const	{ return QGArray::data() == 0; }
    bool  resize( uint size )	{ return QGArray::resize(size*sizeof(type)); }
    bool  truncate( uint pos )	{ return QGArray::resize(pos*sizeof(type)); }
    bool  fill( const type &d, int size=-1 )
	{ return QGArray::fill((char*)&d,size,sizeof(type) ); }
    void  detach()		{ QGArray::detach(); }
    QArrayT<type>   copy() const
	{ QArrayT<type> tmp; return tmp.duplicate(*this); }
    QArrayT<type>& assign( const QArrayT<type>& a )
	{ return (QArrayT<type>&)QGArray::assign(a); }
    QArrayT<type>& assign( const type *a, uint n )
	{ return (QArrayT<type>&)QGArray::assign((char*)a,n*sizeof(type)); }
    QArrayT<type>& duplicate( const QArrayT<type>& a )
	{ return (QArrayT<type>&)QGArray::duplicate(a); }
    QArrayT<type>& duplicate( const type *a, uint n )
	{ return (QArrayT<type>&)QGArray::duplicate((char*)a,n*sizeof(type)); }
    QArrayT<type>& setRawData( const type *a, uint n )
	{ return (QArrayT<type>&)QGArray::setRawData((char*)a,
						     n*sizeof(type)); }
    void resetRawData( const type *a, uint n )
	{ QGArray::resetRawData((char*)a,n*sizeof(type)); }
    int	 find( const type &d, uint i=0 ) const
	{ return QGArray::find((char*)&d,i,sizeof(type)); }
    int	 contains( const type &d ) const
	{ return QGArray::contains((char*)&d,sizeof(type)); }
    type& operator[]( int i ) const
	{ return (type &)(*(type *)QGArray::at(i*sizeof(type))); }
    type& at( uint i ) const
	{ return (type &)(*(type *)QGArray::at(i*sizeof(type))); }
	 operator const type*() const { return (const type *)QGArray::data(); }
    bool operator==( const QArrayT<type> &a ) const { return isEqual(a); }
    bool operator!=( const QArrayT<type> &a ) const { return !isEqual(a); }
};






# 29 "/trash/qt-1.44/include/qstring.h" 2



# 1 "/usr/include/string.h" 1 3
 

















 






# 1 "/usr/include/features.h" 1 3
 




















 



























































 



















 





 



 







 
# 138 "/usr/include/features.h" 3


 









 





 



























# 196 "/usr/include/features.h" 3


































 



 








 




 

# 1 "/usr/include/sys/cdefs.h" 1 3
 




















 




 





 








 




# 71 "/usr/include/sys/cdefs.h" 3


 







 



# 103 "/usr/include/sys/cdefs.h" 3



 








 















 








 








 









 







# 250 "/usr/include/features.h" 2 3


 








 





 

 








# 1 "/usr/include/gnu/stubs.h" 1 3
 






































# 278 "/usr/include/features.h" 2 3




# 26 "/usr/include/string.h" 2 3


extern "C" { 

 


# 1 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 1 3






 


# 19 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3



 


 





 


# 61 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


 

 


































typedef unsigned int size_t;






















 




 

# 271 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


# 283 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


 

 

# 317 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3




 





















# 33 "/usr/include/string.h" 2 3



 
extern void *  memcpy  (void *  __restrict __dest,
			    __const void *  __restrict __src, size_t __n)  throw ()  ;
 

extern void *  memmove  (void *  __dest, __const void *  __src,
			     size_t __n)  throw ()  ;

 



extern void *  memccpy  (void *  __dest, __const void *  __src,
			     int __c, size_t __n)  throw ()  ;



 
extern void *  memset  (void *  __s, int __c, size_t __n)  throw ()  ;

 
extern int memcmp  (__const void *  __s1, __const void *  __s2,
			size_t __n)  throw ()  ;

 
extern void *  memchr  (__const void *  __s, int __c, size_t __n)  throw ()  ;








 
extern char *strcpy  (char *__restrict __dest,
			  __const char *__restrict __src)  throw ()  ;
 
extern char *strncpy  (char *__restrict __dest,
			   __const char *__restrict __src, size_t __n)  throw ()  ;

 
extern char *strcat  (char *__restrict __dest,
			  __const char *__restrict __src)  throw ()  ;
 
extern char *strncat  (char *__restrict __dest,
			   __const char *__restrict __src, size_t __n)  throw ()  ;

 
extern int strcmp  (__const char *__s1, __const char *__s2)  throw ()  ;
 
extern int strncmp  (__const char *__s1, __const char *__s2, size_t __n)  throw ()  ;

 
extern int strcoll  (__const char *__s1, __const char *__s2)  throw ()  ;
 
extern size_t strxfrm  (char *__restrict __dest,
			    __const char *__restrict __src, size_t __n)  throw ()  ;

# 107 "/usr/include/string.h" 3



 
extern char *__strdup  (__const char *__s)  throw ()  ;
extern char *strdup  (__const char *__s)  throw ()  ;


 






# 143 "/usr/include/string.h" 3


 
extern char *strchr  (__const char *__s, int __c)  throw ()  ;
 
extern char *strrchr  (__const char *__s, int __c)  throw ()  ;







 

extern size_t strcspn  (__const char *__s, __const char *__reject)  throw ()  ;
 

extern size_t strspn  (__const char *__s, __const char *__accept)  throw ()  ;
 
extern char *strpbrk  (__const char *__s, __const char *__accept)  throw ()  ;
 
extern char *strstr  (__const char *__haystack, __const char *__needle)  throw ()  ;









 
extern char *strtok  (char *__restrict __s,
			  __const char *__restrict __delim)  throw ()  ;

 

extern char *__strtok_r  (char *__restrict __s,
			      __const char *__restrict __delim,
			      char **__restrict __save_ptr)  throw ()  ;

extern char *strtok_r  (char *__restrict __s,
			    __const char *__restrict __delim,
			    char **__restrict __save_ptr)  throw ()  ;


# 203 "/usr/include/string.h" 3



 
extern size_t strlen  (__const char *__s)  throw ()  ;








 
extern char *strerror  (int __errnum)  throw ()  ;

 

extern char *__strerror_r  (int __errnum, char *__buf, size_t __buflen)  throw ()  ;
extern char *strerror_r  (int __errnum, char *__buf, size_t __buflen)  throw ()  ;


 

extern void __bzero  (void *  __s, size_t __n)  throw ()  ;


 
extern void bcopy  (__const void *  __src, void *  __dest, size_t __n)  throw ()  ;

 
extern void bzero  (void *  __s, size_t __n)  throw ()  ;

 
extern int bcmp  (__const void *  __s1, __const void *  __s2, size_t __n)  throw ()  ;

 
extern char *index  (__const char *__s, int __c)  throw ()  ;

 
extern char *rindex  (__const char *__s, int __c)  throw ()  ;

 

extern int __ffs  (int __i)  throw ()   __attribute__ ((const));
extern int ffs  (int __i)  throw ()   __attribute__ ((const));

 









 
extern int __strcasecmp  (__const char *__s1, __const char *__s2)  throw ()  ;
extern int strcasecmp  (__const char *__s1, __const char *__s2)  throw ()  ;

 
extern int strncasecmp  (__const char *__s1, __const char *__s2,
			     size_t __n)  throw ()  ;


# 277 "/usr/include/string.h" 3



 

extern char *strsep  (char **__restrict __stringp,
			  __const char *__restrict __delim)  throw ()  ;


# 319 "/usr/include/string.h" 3




# 347 "/usr/include/string.h" 3



} 


# 32 "/trash/qt-1.44/include/qstring.h" 2







 



# 54 "/trash/qt-1.44/include/qstring.h"



 



  void *qmemmove( void *dst, const void *src, uint len );





  char *qstrdup( const char * );

  inline uint cstrlen( const char *str )
{ return strlen(str); }

  inline uint qstrlen( const char *str )
{ return str ? strlen(str) : 0; }




  inline char *cstrcpy( char *dst, const char *src )
{ return strcpy(dst,src); }

  inline char *qstrcpy( char *dst, const char *src )
{ return src ? strcpy(dst, src) : 0; }




  char *qstrncpy( char *dst, const char *src, uint len );

  inline int cstrcmp( const char *str1, const char *str2 )
{ return strcmp(str1,str2); }

  inline int qstrcmp( const char *str1, const char *str2 )
{ return (str1 && str2) ? strcmp(str1,str2) : (int)((long)str2 - (long)str1); }




  inline int cstrncmp( const char *str1, const char *str2, uint len )
{ return strncmp(str1,str2,len); }

  inline int qstrncmp( const char *str1, const char *str2, uint len )
{ return (str1 && str2) ? strncmp(str1,str2,len) :
			  (int)((long)str2 - (long)str1); }




  int qstricmp( const char *, const char * );
  int qstrnicmp( const char *, const char *, uint len );







 



  UINT16 qchecksum( const char *s, uint len );


  Q_UINT16 qChecksum( const char *s, uint len );

 
















 



  QDataStream &operator<<( QDataStream &, const QArrayT<char>  & );
  QDataStream &operator>>( QDataStream &, QArrayT<char>  & );


 



class QRegExp;

class   QString : public QArrayT<char> 		 
{
public:
    QString() {}				 
    QString( int size );			 
    QString( const QString &s ) : QArrayT<char> ( s ) {}
    QString( const char *str );			 
    QString( const char *str, uint maxlen );	 

    QString    &operator=( const QString &s );	 
    QString    &operator=( const char *str );	 

    bool	isNull()	const;
    bool	isEmpty()	const;
    uint	length()	const;
    bool	resize( uint newlen );
    bool	truncate( uint pos );
    bool	fill( char c, int len = -1 );

    QString	copy()	const;

    QString    &sprintf( const char *format, ... );

    int		find( char c, int index=0, bool cs=TRUE ) const;
    int		find( const char *str, int index=0, bool cs=TRUE ) const;
    int		find( const QRegExp &, int index=0 ) const;
    int		findRev( char c, int index=-1, bool cs=TRUE) const;
    int		findRev( const char *str, int index=-1, bool cs=TRUE) const;
    int		findRev( const QRegExp &, int index=-1 ) const;
    int		contains( char c, bool cs=TRUE ) const;
    int		contains( const char *str, bool cs=TRUE ) const;
    int		contains( const QRegExp & ) const;

    QString	left( uint len )  const;
    QString	right( uint len ) const;
    QString	mid( uint index, uint len) const;

    QString	leftJustify( uint width, char fill=' ', bool trunc=FALSE)const;
    QString	rightJustify( uint width, char fill=' ',bool trunc=FALSE)const;

    QString	lower() const;
    QString	upper() const;

    QString	stripWhiteSpace()	const;
    QString	simplifyWhiteSpace()	const;

    QString    &insert( uint index, const char * );
    QString    &insert( uint index, char );
    QString    &append( const char * );
    QString    &prepend( const char * );
    QString    &remove( uint index, uint len );
    QString    &replace( uint index, uint len, const char * );
    QString    &replace( const QRegExp &, const char * );

    short	toShort( bool *ok=0 )	const;
    ushort	toUShort( bool *ok=0 )	const;
    int		toInt( bool *ok=0 )	const;
    uint	toUInt( bool *ok=0 )	const;
    long	toLong( bool *ok=0 )	const;
    ulong	toULong( bool *ok=0 )	const;
    float	toFloat( bool *ok=0 )	const;
    double	toDouble( bool *ok=0 )	const;

    QString    &setStr( const char *s );
    QString    &setNum( short );
    QString    &setNum( ushort );
    QString    &setNum( int );
    QString    &setNum( uint );
    QString    &setNum( long );
    QString    &setNum( ulong );
    QString    &setNum( float, char f='g', int prec=6 );
    QString    &setNum( double, char f='g', int prec=6 );

    bool	setExpand( uint index, char c );

		operator const char *() const;
    QString    &operator+=( const char *str );
    QString    &operator+=( char c );
};


 



  QDataStream &operator<<( QDataStream &, const QString & );
  QDataStream &operator>>( QDataStream &, QString & );


 



inline QString &QString::operator=( const QString &s )
{ return (QString&)assign( s ); }

inline QString &QString::operator=( const char *str )
{ return (QString&)duplicate( str, qstrlen (str)+1 ); }

inline bool QString::isNull() const
{ return data() == 0; }

inline bool QString::isEmpty() const
{ return data() == 0 || *data() == '\0'; }

inline uint QString::length() const
{ return qstrlen ( data() ); }

inline bool QString::truncate( uint pos )
{ return resize(pos+1); }

inline QString QString::copy() const
{ return QString( data() ); }

inline QString &QString::prepend( const char *s )
{ return insert(0,s); }

inline QString &QString::append( const char *s )
{ return operator+=(s); }

inline QString &QString::setNum( short n )
{ return setNum((long)n); }

inline QString &QString::setNum( ushort n )
{ return setNum((ulong)n); }

inline QString &QString::setNum( int n )
{ return setNum((long)n); }

inline QString &QString::setNum( uint n )
{ return setNum((ulong)n); }

inline QString &QString::setNum( float n, char f, int prec )
{ return setNum((double)n,f,prec); }

inline QString::operator const char *() const
{ return (const char *)data(); }


 



  inline bool operator==( const QString &s1, const QString &s2 )
{ return qstrcmp (s1.data(),s2.data()) == 0; }

  inline bool operator==( const QString &s1, const char *s2 )
{ return qstrcmp (s1.data(),s2) == 0; }

  inline bool operator==( const char *s1, const QString &s2 )
{ return qstrcmp (s1,s2.data()) == 0; }

  inline bool operator!=( const QString &s1, const QString &s2 )
{ return qstrcmp (s1.data(),s2.data()) != 0; }

  inline bool operator!=( const QString &s1, const char *s2 )
{ return qstrcmp (s1.data(),s2) != 0; }

  inline bool operator!=( const char *s1, const QString &s2 )
{ return qstrcmp (s1,s2.data()) != 0; }

  inline bool operator<( const QString &s1, const char *s2 )
{ return qstrcmp (s1.data(),s2) < 0; }

  inline bool operator<( const char *s1, const QString &s2 )
{ return qstrcmp (s1,s2.data()) < 0; }

  inline bool operator<=( const QString &s1, const char *s2 )
{ return qstrcmp (s1.data(),s2) <= 0; }

  inline bool operator<=( const char *s1, const QString &s2 )
{ return qstrcmp (s1,s2.data()) <= 0; }

  inline bool operator>( const QString &s1, const char *s2 )
{ return qstrcmp (s1.data(),s2) > 0; }

  inline bool operator>( const char *s1, const QString &s2 )
{ return qstrcmp (s1,s2.data()) > 0; }

  inline bool operator>=( const QString &s1, const char *s2 )
{ return qstrcmp (s1.data(),s2) >= 0; }

  inline bool operator>=( const char *s1, const QString &s2 )
{ return qstrcmp (s1,s2.data()) >= 0; }

  inline QString operator+( const QString &s1, const QString &s2 )
{
    QString tmp( s1.data() );
    tmp += s2;
    return tmp;
}

  inline QString operator+( const QString &s1, const char *s2 )
{
    QString tmp( s1.data() );
    tmp += s2;
    return tmp;
}

  inline QString operator+( const char *s1, const QString &s2 )
{
    QString tmp( s1 );
    tmp += s2;
    return tmp;
}

  inline QString operator+( const QString &s1, char c2 )
{
    QString tmp( s1.data() );
    tmp += c2;
    return tmp;
}

  inline QString operator+( char c1, const QString &s2 )
{
    QString tmp;
    tmp += c1;
    tmp += s2;
    return tmp;
}



# 29 "/trash/qt-1.44/include/qobject.h" 2

# 1 "/trash/qt-1.44/include/qevent.h" 1
 



























# 1 "/trash/qt-1.44/include/qrect.h" 1
 


























# 1 "/trash/qt-1.44/include/qsize.h" 1
 


























# 1 "/trash/qt-1.44/include/qpoint.h" 1
 


































class   QPoint
{
public:
    QPoint()	{}
    QPoint( int xpos, int ypos );

    bool   isNull()	const;

    int	   x()		const;
    int	   y()		const;
    void   setX( int x );
    void   setY( int y );

    QCOORD &rx();
    QCOORD &ry();

    QPoint &operator+=( const QPoint &p );
    QPoint &operator-=( const QPoint &p );
    QPoint &operator*=( int c );
    QPoint &operator*=( double c );
    QPoint &operator/=( int c );
    QPoint &operator/=( double c );

    friend inline bool	 operator==( const QPoint &, const QPoint & );
    friend inline bool	 operator!=( const QPoint &, const QPoint & );
    friend inline QPoint operator+( const QPoint &, const QPoint & );
    friend inline QPoint operator-( const QPoint &, const QPoint & );
    friend inline QPoint operator*( const QPoint &, int );
    friend inline QPoint operator*( int, const QPoint & );
    friend inline QPoint operator*( const QPoint &, double );
    friend inline QPoint operator*( double, const QPoint & );
    friend inline QPoint operator-( const QPoint & );

    friend   QPoint operator/( const QPoint &, int );
    friend   QPoint operator/( const QPoint &, double );





    static void warningDivByZero();

private:




    QCOORD xp;
    QCOORD yp;

};


 



  QDataStream &operator<<( QDataStream &, const QPoint & );
  QDataStream &operator>>( QDataStream &, QPoint & );


 



inline QPoint::QPoint( int xpos, int ypos )
{ xp=(QCOORD)xpos; yp=(QCOORD)ypos; }

inline bool QPoint::isNull() const
{ return xp == 0 && yp == 0; }

inline int QPoint::x() const
{ return xp; }

inline int QPoint::y() const
{ return yp; }

inline void QPoint::setX( int x )
{ xp = (QCOORD)x; }

inline void QPoint::setY( int y )
{ yp = (QCOORD)y; }

inline QCOORD &QPoint::rx()
{ return xp; }

inline QCOORD &QPoint::ry()
{ return yp; }

inline QPoint &QPoint::operator+=( const QPoint &p )
{ xp+=p.xp; yp+=p.yp; return *this; }

inline QPoint &QPoint::operator-=( const QPoint &p )
{ xp-=p.xp; yp-=p.yp; return *this; }

inline QPoint &QPoint::operator*=( int c )
{ xp*=(QCOORD)c; yp*=(QCOORD)c; return *this; }

inline QPoint &QPoint::operator*=( double c )
{ xp=(QCOORD)(xp*c); yp=(QCOORD)(yp*c); return *this; }

inline bool operator==( const QPoint &p1, const QPoint &p2 )
{ return p1.xp == p2.xp && p1.yp == p2.yp; }

inline bool operator!=( const QPoint &p1, const QPoint &p2 )
{ return p1.xp != p2.xp || p1.yp != p2.yp; }

inline QPoint operator+( const QPoint &p1, const QPoint &p2 )
{ return QPoint(p1.xp+p2.xp, p1.yp+p2.yp); }

inline QPoint operator-( const QPoint &p1, const QPoint &p2 )
{ return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); }

inline QPoint operator*( const QPoint &p, int c )
{ return QPoint(p.xp*c, p.yp*c); }

inline QPoint operator*( int c, const QPoint &p )
{ return QPoint(p.xp*c, p.yp*c); }

inline QPoint operator*( const QPoint &p, double c )
{ return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); }

inline QPoint operator*( double c, const QPoint &p )
{ return QPoint((QCOORD)(p.xp*c), (QCOORD)(p.yp*c)); }

inline QPoint operator-( const QPoint &p )
{ return QPoint(-p.xp, -p.yp); }

 
 
 
 
 

# 212 "/trash/qt-1.44/include/qpoint.h"




# 28 "/trash/qt-1.44/include/qsize.h" 2








class   QSize
{
public:
    QSize()	{ wd = ht = -1; }
    QSize( int w, int h );

    bool   isNull()	const;
    bool   isEmpty()	const;
    bool   isValid()	const;

    int	   width()	const;
    int	   height()	const;
    void   setWidth( int w );
    void   setHeight( int h );
    void   transpose();

    QSize expandedTo( const QSize & ) const;
    QSize boundedTo( const QSize & ) const;

    QCOORD &rwidth();
    QCOORD &rheight();

    QSize &operator+=( const QSize & );
    QSize &operator-=( const QSize & );
    QSize &operator*=( int c );
    QSize &operator*=( float c );
    QSize &operator/=( int c );
    QSize &operator/=( float c );

    friend inline bool	operator==( const QSize &, const QSize & );
    friend inline bool	operator!=( const QSize &, const QSize & );
    friend inline QSize operator+( const QSize &, const QSize & );
    friend inline QSize operator-( const QSize &, const QSize & );
    friend inline QSize operator*( const QSize &, int );
    friend inline QSize operator*( int, const QSize & );
    friend inline QSize operator*( const QSize &, float );
    friend inline QSize operator*( float, const QSize & );

    friend   QSize operator/( const QSize &, int );
    friend   QSize operator/( const QSize &, float );





    static void warningDivByZero();

private:
    QCOORD wd;
    QCOORD ht;
};


 



  QDataStream &operator<<( QDataStream &, const QSize & );
  QDataStream &operator>>( QDataStream &, QSize & );


 



inline QSize::QSize( int w, int h )
{ wd=(QCOORD)w; ht=(QCOORD)h; }

inline bool QSize::isNull() const
{ return wd==0 && ht==0; }

inline bool QSize::isEmpty() const
{ return wd<1 || ht<1; }

inline bool QSize::isValid() const
{ return wd>=0 && ht>=0; }

inline int QSize::width() const
{ return wd; }

inline int QSize::height() const
{ return ht; }

inline void QSize::setWidth( int w )
{ wd=(QCOORD)w; }

inline void QSize::setHeight( int h )
{ ht=(QCOORD)h; }

inline QCOORD &QSize::rwidth()
{ return wd; }

inline QCOORD &QSize::rheight()
{ return ht; }

inline QSize &QSize::operator+=( const QSize &s )
{ wd+=s.wd; ht+=s.ht; return *this; }

inline QSize &QSize::operator-=( const QSize &s )
{ wd-=s.wd; ht-=s.ht; return *this; }

inline QSize &QSize::operator*=( int c )
{ wd*=(QCOORD)c; ht*=(QCOORD)c; return *this; }

inline QSize &QSize::operator*=( float c )
{ wd=(QCOORD)(wd*c); ht=(QCOORD)(ht*c); return *this; }

inline bool operator==( const QSize &s1, const QSize &s2 )
{ return s1.wd == s2.wd && s1.ht == s2.ht; }

inline bool operator!=( const QSize &s1, const QSize &s2 )
{ return s1.wd != s2.wd || s1.ht != s2.ht; }

inline QSize operator+( const QSize & s1, const QSize & s2 )
{ return QSize(s1.wd+s2.wd, s1.ht+s2.ht); }

inline QSize operator-( const QSize &s1, const QSize &s2 )
{ return QSize(s1.wd-s2.wd, s1.ht-s2.ht); }

inline QSize operator*( const QSize &s, int c )
{ return QSize(s.wd*c, s.ht*c); }

inline QSize operator*( int c, const QSize &s )
{  return QSize(s.wd*c, s.ht*c); }

inline QSize operator*( const QSize &s, float c )
{ return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); }

inline QSize operator*( float c, const QSize &s )
{ return QSize((QCOORD)(s.wd*c), (QCOORD)(s.ht*c)); }

# 209 "/trash/qt-1.44/include/qsize.h"


inline QSize QSize::expandedTo( const QSize & otherSize ) const
{
    return QSize( ((  wd ) > (  otherSize.wd  ) ? (  wd ) : (  otherSize.wd  )) , ((  ht ) > (  otherSize.ht  ) ? (  ht ) : (  otherSize.ht  ))  );
}

inline QSize QSize::boundedTo( const QSize & otherSize ) const
{
    return QSize( ((  wd ) < (  otherSize.wd  ) ? (  wd ) : (  otherSize.wd  )) , ((  ht ) < (  otherSize.ht  ) ? (  ht ) : (  otherSize.ht  ))  );
}


# 28 "/trash/qt-1.44/include/qrect.h" 2




class   QRect					 
{
public:
    QRect()	{ x1 = y1 = 0; x2 = y2 = -1; }
    QRect( const QPoint &topleft, const QPoint &bottomright );
    QRect( const QPoint &topleft, const QSize &size );
    QRect( int left, int top, int width, int height );

    bool   isNull()	const;
    bool   isEmpty()	const;
    bool   isValid()	const;
    QRect  normalize()	const;

    int	   left()	const;
    int	   top()	const;
    int	   right()	const;
    int	   bottom()	const;
    int	   x()		const;
    int	   y()		const;
    void   setLeft( int pos );
    void   setTop( int pos );
    void   setRight( int pos );
    void   setBottom( int pos );
    void   setX( int x );
    void   setY( int y );

    QPoint topLeft()	 const;
    QPoint bottomRight() const;
    QPoint topRight()	 const;
    QPoint bottomLeft()	 const;
    QPoint center()	 const;

    void   rect( int *x, int *y, int *w, int *h ) const;
    void   coords( int *x1, int *y1, int *x2, int *y2 ) const;

    void   moveTopLeft( const QPoint &p );
    void   moveBottomRight( const QPoint &p );
    void   moveTopRight( const QPoint &p );
    void   moveBottomLeft( const QPoint &p );
    void   moveCenter( const QPoint &p );
    void   moveBy( int dx, int dy );

    void   setRect( int x, int y, int w, int h );
    void   setCoords( int x1, int y1, int x2, int y2 );

    QSize  size()	const;
    int	   width()	const;
    int	   height()	const;
    void   setWidth( int w );
    void   setHeight( int h );
    void   setSize( const QSize &s );

    bool   contains( const QPoint &p, bool proper=FALSE ) const;
    bool   contains( const QRect &r, bool proper=FALSE ) const;
    QRect  unite( const QRect &r ) const;
    QRect  intersect( const QRect &r ) const;
    bool   intersects( const QRect &r ) const;

    friend   bool operator==( const QRect &, const QRect & );
    friend   bool operator!=( const QRect &, const QRect & );

private:






    QCOORD x1;
    QCOORD y1;
    QCOORD x2;
    QCOORD y2;

};

  bool operator==( const QRect &, const QRect & );
  bool operator!=( const QRect &, const QRect & );


 



  QDataStream &operator<<( QDataStream &, const QRect & );
  QDataStream &operator>>( QDataStream &, QRect & );


 



inline QRect::QRect( int left, int top, int width, int height )
{
    x1 = (QCOORD)left;
    y1 = (QCOORD)top;
    x2 = (QCOORD)(left+width-1);
    y2 = (QCOORD)(top+height-1);
}

inline bool QRect::isNull() const
{ return x2 == x1-1 && y2 == y1-1; }

inline bool QRect::isEmpty() const
{ return x1 > x2 || y1 > y2; }

inline bool QRect::isValid() const
{ return x1 <= x2 && y1 <= y2; }

inline int QRect::left() const
{ return x1; }

inline int QRect::top() const
{ return y1; }

inline int QRect::right() const
{ return x2; }

inline int QRect::bottom() const
{ return y2; }

inline int QRect::x() const
{ return x1; }

inline int QRect::y() const
{ return y1; }

inline void QRect::setLeft( int pos )
{ x1 = (QCOORD)pos; }

inline void QRect::setTop( int pos )
{ y1 = (QCOORD)pos; }

inline void QRect::setRight( int pos )
{ x2 = (QCOORD)pos; }

inline void QRect::setBottom( int pos )
{ y2 = (QCOORD)pos; }

inline void QRect::setX( int x )
{ x1 = (QCOORD)x; }

inline void QRect::setY( int y )
{ y1 = (QCOORD)y; }

inline QPoint QRect::topLeft() const
{ return QPoint(x1, y1); }

inline QPoint QRect::bottomRight() const
{ return QPoint(x2, y2); }

inline QPoint QRect::topRight() const
{ return QPoint(x2, y1); }

inline QPoint QRect::bottomLeft() const
{ return QPoint(x1, y2); }

inline QPoint QRect::center() const
{ return QPoint((x1+x2)/2, (y1+y2)/2); }

inline int QRect::width() const
{ return  x2 - x1 + 1; }

inline int QRect::height() const
{ return  y2 - y1 + 1; }

inline QSize QRect::size() const
{ return QSize(x2-x1+1, y2-y1+1); }



# 29 "/trash/qt-1.44/include/qevent.h" 2










































class   QEvent				 
{
public:
    QEvent( int type )
	: t(type), posted(FALSE) {}
   ~QEvent()			{ if ( posted ) peErrMsg(); }
    int	  type()	const	{ return t; }
protected:
    int	  t;
    bool  posted;
private:
    void  peErrMsg();
};


class   QTimerEvent : public QEvent	 
{
public:
    QTimerEvent( int timerId )
	: QEvent(1 ), id(timerId) {}
    int	  timerId()	const	{ return id; }
protected:
    int	  id;
};




enum ButtonState {				 
    NoButton	    = 0x00,
    LeftButton	    = 0x01,
    RightButton	    = 0x02,
    MidButton	    = 0x04,
    MouseButtonMask = 0x07,
    ShiftButton	    = 0x08,
    ControlButton   = 0x10,
    AltButton	    = 0x20,
    KeyButtonMask   = 0x38
};

class   QMouseEvent : public QEvent	 
{
public:
    QMouseEvent( int type, const QPoint &pos, int button, int state )
	: QEvent(type), p(pos), b(button),s((ushort)state) {}
    QMouseEvent( int type, const QPoint &pos, const QPoint&globalPos, int button, int state )
	: QEvent(type), p(pos), b(button),s((ushort)state) {g = globalPos;}

    const QPoint &pos() const	{ return p; }
    const QPoint &globalPos() const { return g; }
    int	   x()		const	{ return p.x(); }
    int	   y()		const	{ return p.y(); }
    int	   globalX()		const	{ return g.x(); }
    int	   globalY()		const	{ return g.y(); }
    int	   button()	const	{ return b; }
    int	   state()	const	{ return s; }
protected:
    QPoint p;
    static QPoint g;  
    int	   b;
    ushort s;
};




class   QKeyEvent : public QEvent	 
{
public:
    QKeyEvent( int type, int key, int ascii, int state )
	: QEvent(type), k((ushort)key), s((ushort)state), a((uchar)ascii),
	  accpt(TRUE) {}
    int	   key()	const	{ return k; }
    int	   ascii()	const	{ return a; }
    int	   state()	const	{ return s; }
    bool   isAccepted() const	{ return accpt; }
    void   accept()		{ accpt = TRUE; }
    void   ignore()		{ accpt = FALSE; }
protected:
    ushort k, s;
    uchar  a;
    char   accpt;				 
};




class   QFocusEvent : public QEvent	 
{
public:
    QFocusEvent( int type )
	: QEvent(type) {}
    bool   gotFocus()	const { return type() == 8 ; }
    bool   lostFocus()	const { return type() == 9 ; }
};




class   QPaintEvent : public QEvent	 
{
public:
    QPaintEvent( const QRect &paintRect )
	: QEvent(12 ), r(paintRect) {}
    const QRect &rect() const	{ return r; }
protected:
    QRect r;
};




class   QMoveEvent : public QEvent	 
{
public:
    QMoveEvent( const QPoint &pos, const QPoint &oldPos )
	: QEvent(13 ), p(pos), oldp(oldPos) {}
    const QPoint &pos()	  const { return p; }
    const QPoint &oldPos()const { return oldp;}
protected:
    QPoint p, oldp;
};




class   QResizeEvent : public QEvent	 
{
public:
    QResizeEvent( const QSize &size, const QSize &oldSize )
	: QEvent(14 ), s(size), olds(oldSize) {}
    const QSize &size()	  const { return s; }
    const QSize &oldSize()const { return olds;}
protected:
    QSize s, olds;
};




class   QCloseEvent : public QEvent	 
{
public:
    QCloseEvent()
	: QEvent(19 ), accpt(FALSE) {}
    bool   isAccepted() const	{ return accpt; }
    void   accept()		{ accpt = TRUE; }
    void   ignore()		{ accpt = FALSE; }
protected:
    bool   accpt;
};




class   QShowEvent : public QEvent	 
{
public:
    QShowEvent(bool spontaneous)
	: QEvent(17 ), spont(spontaneous) {}
    bool spontaneous() const { return spont; }
protected:
    bool spont;
};




class   QHideEvent : public QEvent	 
{
public:
    QHideEvent(bool spontaneous)
	: QEvent(18 ), spont(spontaneous) {}
    bool spontaneous() const { return spont; }
protected:
    bool spont;
};




 
 
 

class   QDragMoveEvent : public QEvent
{
public:
    QDragMoveEvent( const QPoint& pos )
	: QEvent(61 ), p(pos), accpt(FALSE), d(0),
	  rect( p,QSize( 1, 1 ) ) {}
    const QPoint& pos() const   { return p; }
    bool   isAccepted() const   { return accpt; }
    void   accept()		{ accpt = TRUE; }
    void   ignore()		{ accpt = FALSE; }
    void   accept( const QRect & r) { accpt = TRUE; rect = r; }
    void   ignore( const QRect & r) { accpt =FALSE; rect = r; }
    QRect  answerRect() const { return rect; }
    const char * format( int n = 0 );
    bool provides( const char * );
    QArrayT<char>  data( const char * );
protected:
    QDragMoveEvent( const QPoint& pos, int type )
	: QEvent(type), p(pos), accpt(FALSE), d(0),
	  rect( p,QSize( 1, 1 ) ) {}
    QPoint p;
    bool   accpt;
    void * d;
    QRect rect;
};

class   QDragEnterEvent : public QDragMoveEvent
{
public:
    QDragEnterEvent( const QPoint& pos ) :
	QDragMoveEvent(pos, 60 ) { }
};


class   QDragResponseEvent : public QEvent
{
public:
    QDragResponseEvent( bool accepted )
	: QEvent(64 ), a(accepted) {}
    bool   dragAccepted() const	{ return a; }
protected:
    bool a;
};


class   QDragLeaveEvent : public QEvent
{
public:
    QDragLeaveEvent()
	: QEvent(62 ) {}
};


class   QDropEvent : public QEvent
{
public:
    QDropEvent( const QPoint& pos )
	: QEvent(63 ), p(pos), accpt(FALSE) {}
    const QPoint &pos() const	{ return p; }
    bool   isAccepted() const	{ return accpt; }
    void   accept()		{ accpt = TRUE; }
    void   ignore()		{ accpt = FALSE; }
    QArrayT<char>  data( const char * );
protected:
    QPoint p;
    bool   accpt;
};


class   QChildEvent : public QEvent
{
public:
    QChildEvent( int type, QWidget *child )
	: QEvent(type), c(child) {}
    QWidget *child() const	{ return c; }
    bool inserted() const { return t == 70 ; }
    bool removed() const { return t == 71 ; }
protected:
    QWidget *c;
};


class   QCustomEvent : public QEvent	 
{
public:
    QCustomEvent( int type, void *data )
	: QEvent(type), d(data) {}
    void       *data()	const	{ return d; }
private:
    void       *d;
};






# 30 "/trash/qt-1.44/include/qobject.h" 2




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

    virtual bool event( QEvent * );
    virtual bool eventFilter( QObject *, QEvent * );

    const char * tr( const char * ) const;

    virtual QMetaObject *metaObject() const { return metaObj; }
    virtual const char	*className()  const;

    bool	isA( const char * )	 const;
    bool	inherits( const char * ) const;

    const char *name()		  const { return objname; }
    const char *name( const char * defaultName ) const { return objname
							     ? objname
							     : defaultName; }

    void	setName( const char *name );
    bool	isWidgetType()	  const { return isWidget; }
    bool	highPriority()	  const { return hiPriority; }

    bool	signalsBlocked()  const { return blockSig; }
    void	blockSignals( bool b );

    int		startTimer( int interval );
    void	killTimer( int id );
    void	killTimers();

    const QListM_QObject  *children() const { return childObjects; }
    QListM_QObject 	      *queryList( const char *inheritsClass = 0,
				  const char *objName = 0,
				  bool regexpMatch = TRUE,
				  bool recursiveSearch = TRUE );

    void	insertChild( QObject * );
    void	removeChild( QObject * );

    void	installEventFilter( const QObject * );
    void	removeEventFilter( const QObject * );

    static bool connect( const QObject *sender, const char *signal,
			 const QObject *receiver, const char *member );
    bool	connect( const QObject *sender, const char *signal,
			 const char *member ) const;
    static bool disconnect( const QObject *sender, const char *signal,
			    const QObject *receiver, const char *member );
    bool	disconnect( const char *signal=0,
			    const QObject *receiver=0, const char *member=0 );
    bool	disconnect( const QObject *receiver, const char *member=0 );

    void	dumpObjectTree();
    void	dumpObjectInfo();

protected :
    void	destroyed();

public:
    QObject	*parent() const { return parentObj; }

protected:
    bool	activate_filters( QEvent * );
    QListM_QConnection  *receivers( const char *signal ) const;
    void	activate_signal( const char *signal );
    void	activate_signal( const char *signal, short );
    void	activate_signal( const char *signal, int );
    void	activate_signal( const char *signal, long );
    void	activate_signal( const char *signal, const char * );
    const QObject *sender();

    virtual void initMetaObject();

    virtual void timerEvent( QTimerEvent * );

    virtual void connectNotify( const char *signal );
   virtual void disconnectNotify( const char *signal );
    virtual bool checkConnectArgs( const char *signal, const QObject *receiver,
				   const char *member );

    static  void badSuperclassWarning( const char *className,
				       const char *superclassName );

    uint	isSignal   : 1;
    uint	isWidget   : 1;
    uint	hiPriority : 1;
    uint	pendTimer  : 1;
    uint	pendEvent  : 1;
    uint	blockSig   : 1;

private  :
    void	cleanupEventFilter();

private:
    QMetaObject *queryMetaObject() const;
    static QMetaObject *metaObj;
    char	*objname;
    QObject	*parentObj;
    QListM_QObject  *childObjects;
    QDictM_QListM_QConnection  *connections;
    QListM_QObject  *senderObjects;
    QListM_QObject  *eventFilters;
    QObject	*sigSender;

    friend class QApplication;
    friend class QWidget;
    friend class QSignal;
    friend class QSenderObject;

private:	 

    QObject( const QObject & );
    QObject &operator=( const QObject & );

};


inline bool QObject::connect( const QObject *sender, const char *signal,
			      const char *member ) const
{
    return connect( sender, signal, this, member );
}

inline bool QObject::disconnect( const char *signal,
				 const QObject *receiver, const char *member )
{
    return disconnect( this, signal, receiver, member );
}

inline bool QObject::disconnect( const QObject *receiver, const char *member )
{
    return disconnect( this, 0, receiver, member );
}

inline const QObject *QObject::sender()
{
    return sigSender;
}


class   QSenderObject : public QObject		 
{
public:
    void setSender( QObject *s ) { sigSender=s; }
};



# 29 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qpaintdevice.h" 1
 































 










 





 

union QPDevCmdParam;


class   QPaintDevice				 
{
public:
    virtual ~QPaintDevice();

    int	     devType()	      const;
    bool     isExtDev()	      const;
    bool     paintingActive() const;

     
     
     
    HANDLE   handle()  const;




    Display *x11Display() const;		 


    static Display *x__Display();
    static int	    x11Screen();
    static int	    x11Depth();
    static int	    x11Cells();
    static HANDLE   x11Colormap();
    static bool	    x11DefaultColormap();
    static void	   *x11Visual();
    static bool	    x11DefaultVisual();


protected:
    QPaintDevice( uint devflags );






    static Display *dpy;			 
    HANDLE   hd;				 


    virtual bool cmd( int, QPainter *, QPDevCmdParam * );
    virtual int	 metric( int ) const;
    virtual int	 fontMet( QFont *, int, const char * = 0, int = 0 ) const;
    virtual int	 fontInf( QFont *, int ) const;

    uint     devFlags;				 

    friend class QColor;
    friend class QPainter;
    friend class QPaintDeviceMetrics;
    friend   void bitBlt( QPaintDevice *, int, int,
				 const QPaintDevice *,
				 int, int, int, int, RasterOp, bool );


private:
    static Display *x_display;
    static int	    x_screen;
    static int	    x_depth;
    static int	    x_cells;
    static HANDLE   x_colormap;
    static bool	    x_defcmap;
    static void	   *x_visual;
    static bool     x_defvisual;


private:	 

    QPaintDevice( const QPaintDevice & );
    QPaintDevice &operator=( const QPaintDevice & );

};


 
void bitBlt( QPaintDevice *dst, int dx, int dy,
	     const QPaintDevice *src, int sx=0, int sy=0, int sw=-1, int sh=-1,
	     RasterOp = CopyROP, bool ignoreMask=FALSE );

 
void bitBlt( QPaintDevice *dst, int dx, int dy,
	     const QImage *src, int sx=0, int sy=0, int sw=-1, int sh=-1,
	     int conversion_flags=0 );


 



inline int QPaintDevice::devType() const
{ return devFlags & 0x0f ; }

inline bool QPaintDevice::isExtDev() const
{ return (devFlags & 0x10 ) != 0; }

inline bool QPaintDevice::paintingActive() const
{ return (devFlags & 0x20 ) != 0; }






inline HANDLE	QPaintDevice::handle()	const { return hd; }



inline Display *QPaintDevice::x11Display() const { return dpy; }






inline Display *QPaintDevice::x__Display()	   { return x_display; }
inline int	QPaintDevice::x11Screen()	   { return x_screen; }
inline int	QPaintDevice::x11Depth()	   { return x_depth; }
inline int	QPaintDevice::x11Cells()	   { return x_cells; }
inline HANDLE	QPaintDevice::x11Colormap()	   { return x_colormap; }
inline bool    	QPaintDevice::x11DefaultColormap() { return x_defcmap; }
inline void    *QPaintDevice::x11Visual()	   { return x_visual; }
inline bool    	QPaintDevice::x11DefaultVisual()   { return x_defvisual; }



 
inline void bitBlt( QPaintDevice *dst, const QPoint &dp,
		    const QPaintDevice *src, const QRect &sr =QRect(0,0,-1,-1),
		    RasterOp rop=CopyROP, bool ignoreMask=FALSE )
{
    bitBlt( dst, dp.x(), dp.y(), src, sr.x(), sr.y(), sr.width(), sr.height(),
	    rop, ignoreMask );
}



# 30 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qpalette.h" 1
 



























# 1 "/trash/qt-1.44/include/qcolor.h" 1
 






























const QRgb  RGB_DIRTY	= 0x80000000;		 
const QRgb  RGB_INVALID = 0x40000000;		 
const QRgb  RGB_DIRECT	= 0x20000000;		 
const QRgb  RGB_MASK	= 0x00ffffff;		 


  inline int qRed( QRgb rgb )		 
{ return (int)(rgb & 0xff); }

  inline int qGreen( QRgb rgb )		 
{ return (int)((rgb >> 8) & 0xff); }

  inline int qBlue( QRgb rgb )		 
{ return (int)((rgb >> 16) & 0xff); }

  inline QRgb qRgb( int r, int g, int b ) 
{ return (uint)(r & 0xff) |((uint)(g & 0xff) << 8) |((uint)(b & 0xff) << 16); }

  inline int qGray( int r, int g, int b ) 
{ return (r*11+g*16+b*5)/32; }

  inline int qGray( QRgb rgb )		 
{ return qGray( qRed(rgb), qGreen(rgb), qBlue(rgb) ); }


class   QColor
{
public:
    enum Spec { Rgb, Hsv };

    QColor();
    QColor( int r, int g, int b );
    QColor( int x, int y, int z, Spec );
    QColor( QRgb rgb, uint pixel=0xffffffff);
    QColor( const char *name );
    QColor( const QColor & );
    QColor &operator=( const QColor & );

    bool   isValid() const;
    bool   isDirty() const;

    void   setNamedColor( const char *name );

    void   rgb( int *r, int *g, int *b ) const;
    QRgb   rgb()    const;
    void   setRgb( int r, int g, int b );
    void   setRgb( QRgb rgb );

    int	   red()    const;
    int	   green()  const;
    int	   blue()   const;

    void   hsv( int *h, int *s, int *v ) const;
    void   setHsv( int h, int s, int v );

    QColor light( int f = 150 ) const;
    QColor dark( int f = 200 )	const;

    bool   operator==( const QColor &c ) const;
    bool   operator!=( const QColor &c ) const;

    static bool lazyAlloc();
    static void setLazyAlloc( bool );
    uint   alloc();
    uint   pixel()  const;

    static int  maxColors();
    static int  numBitPlanes();

    static int  enterAllocContext();
    static void leaveAllocContext();
    static int  currentAllocContext();
    static void destroyAllocContext( int );






    static void initialize();
    static void cleanup();

private:
    void   setSystemNamedColor( const char *name );
    static void initGlobalColors();
    static bool color_init;
    static bool globals_init;
    static bool lalloc;



    uint   pix;
    QRgb   rgbVal;
};


inline QColor::QColor()
{ rgbVal = RGB_INVALID; pix = 0; }

inline QColor::QColor( int r, int g, int b )
{ setRgb( r, g, b ); }

inline bool QColor::isValid() const
{ return (rgbVal & RGB_INVALID) == 0; }

inline bool QColor::isDirty() const
{ return (rgbVal & RGB_DIRTY) != 0; }

inline QRgb QColor::rgb() const
{ return rgbVal & RGB_MASK; }

inline int QColor::red() const
{ return qRed(rgbVal); }

inline int QColor::green() const
{ return qGreen(rgbVal); }

inline int QColor::blue() const
{ return qBlue(rgbVal); }

inline uint QColor::pixel() const
{ return (rgbVal & RGB_DIRTY) == 0 ? pix : ((QColor*)this)->alloc(); }

inline bool QColor::lazyAlloc()
{ return lalloc; }


inline bool QColor::operator==( const QColor &c ) const
{
    return (((rgbVal | c.rgbVal) & RGB_DIRECT) == 0 &&
	    (rgbVal & 0x00ffffff) == (c.rgbVal & 0x00ffffff)) ||
	   ((rgbVal & c.rgbVal & RGB_DIRECT) != 0 &&
	    (rgbVal & 0x00ffffff) == (c.rgbVal & 0x00ffffff) && pix == c.pix);
}

inline bool QColor::operator!=( const QColor &c ) const
{
    return !operator==(c);
}


 



extern   const QColor color0;
extern   const QColor color1;
extern   const QColor black;
extern   const QColor white;
extern   const QColor darkGray;
extern   const QColor gray;
extern   const QColor lightGray;
extern   const QColor red;
extern   const QColor green;
extern   const QColor blue;
extern   const QColor cyan;
extern   const QColor magenta;
extern   const QColor yellow;
extern   const QColor darkRed;
extern   const QColor darkGreen;
extern   const QColor darkBlue;
extern   const QColor darkCyan;
extern   const QColor darkMagenta;
extern   const QColor darkYellow;


 



  QDataStream &operator<<( QDataStream &, const QColor & );
  QDataStream &operator>>( QDataStream &, QColor & );



# 29 "/trash/qt-1.44/include/qpalette.h" 2





class   QColorGroup				 
{
public:
    QColorGroup();				 
    QColorGroup( const QColor &foreground, const QColor &background,
		 const QColor &light, const QColor &dark, const QColor &mid,
		 const QColor &text, const QColor &base);
   ~QColorGroup();

    const QColor &foreground()	const	{ return fg_col; }
    const QColor &background()	const	{ return bg_col; }
    const QColor &light()	const	{ return light_col; }
          QColor midlight()	const	{ return bg_col.light( 115 ); }
    const QColor &dark()	const	{ return dark_col; }
    const QColor &mid()		const	{ return mid_col; }
    const QColor &text()	const	{ return text_col; }
    const QColor &base()	const	{ return base_col; }

    bool	operator==( const QColorGroup &g ) const;
    bool	operator!=( const QColorGroup &g ) const
					{ return !(operator==(g)); }
private:
    QColor fg_col;
    QColor bg_col;
    QColor light_col;
    QColor dark_col;
    QColor mid_col;
    QColor text_col;
    QColor base_col;
};


class   QPalette					 
{
public:
    QPalette();
    QPalette( const QColor &background );
    QPalette( const QColorGroup &normal, const QColorGroup &disabled,
	      const QColorGroup &active );
    QPalette( const QPalette & );
   ~QPalette();
    QPalette &operator=( const QPalette & );

    QPalette	copy() const;

    const QColorGroup &normal()	  const { return data->normal; }
    const QColorGroup &disabled() const { return data->disabled; }
    const QColorGroup &active()	  const { return data->active; }

    void	setNormal( const QColorGroup & );
    void	setDisabled( const QColorGroup & );
    void	setActive( const QColorGroup & );

    bool	operator==( const QPalette &p ) const;
    bool	operator!=( const QPalette &p ) const
					{ return !(operator==(p)); }
    bool	isCopyOf( const QPalette & );

    int		serialNumber() const	{ return data->ser_no; }

private:
    void	detach();

    struct QPalData : public QShared {
	QColorGroup normal;
	QColorGroup disabled;
	QColorGroup active;
	int	    ser_no;
    } *data;
};


 



  QDataStream &operator<<( QDataStream &, const QColorGroup & );
  QDataStream &operator>>( QDataStream &, QColorGroup & );

  QDataStream &operator<<( QDataStream &, const QPalette & );
  QDataStream &operator>>( QDataStream &, QPalette & );



# 31 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qcursor.h" 1
 































struct QCursorData;				 


class   QCursor					 
{
public:
    QCursor();					 
    QCursor( int shape );
    QCursor( const QBitmap &bitmap, const QBitmap &mask,
	     int hotX=-1, int hotY=-1 );
    QCursor( const QCursor & );
   ~QCursor();
    QCursor &operator=( const QCursor & );

    int		  shape()   const;
    void	  setShape( int );

    const QBitmap *bitmap() const;
    const QBitmap *mask()   const;
    QPoint	  hotSpot() const;

    HANDLE	  handle()  const;

    static QPoint pos();
    static void	  setPos( int x, int y );
    static void	  setPos( const QPoint & );

    static void	  initialize();
    static void	  cleanup();

private:
    void	  update() const;
    QCursorData	 *data;
};


inline void QCursor::setPos( const QPoint &p )
{
    setPos( p.x(), p.y() );
}


 



enum QCursorShape {
    ArrowCursor, UpArrowCursor, CrossCursor, WaitCursor, IbeamCursor,
    SizeVerCursor, SizeHorCursor, SizeBDiagCursor, SizeFDiagCursor,
    SizeAllCursor, BlankCursor, LastCursor=BlankCursor, BitmapCursor=24 };


 



extern   const QCursor arrowCursor;	 
extern   const QCursor upArrowCursor;	 
extern   const QCursor crossCursor;	 
extern   const QCursor waitCursor;	 
extern   const QCursor ibeamCursor;	 
extern   const QCursor sizeVerCursor;	 
extern   const QCursor sizeHorCursor;	 
extern   const QCursor sizeBDiagCursor;	 
extern   const QCursor sizeFDiagCursor;	 
extern   const QCursor sizeAllCursor;	 
extern   const QCursor blankCursor;	 


 



  QDataStream &operator<<( QDataStream &, const QCursor & );
  QDataStream &operator>>( QDataStream &, QCursor & );



# 32 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qfont.h" 1
 































class  QStrList;
struct QFontDef;
struct QFontData;
class  QFontInternal;


class   QFont					 
{
public:
    enum StyleHint { Helvetica, Times, Courier, OldEnglish,  System, AnyStyle,
		     SansSerif	= Helvetica,
		     Serif	= Times,
		     TypeWriter = Courier,
		     Decorative = OldEnglish};
    enum Weight	   { Light = 25, Normal = 50, DemiBold = 63,
		     Bold  = 75, Black	= 87 };
    enum CharSet   { Latin1, ISO_8859_1 = Latin1, AnyCharSet,
		     Latin2, ISO_8859_2 = Latin2,
		     Latin3, ISO_8859_3 = Latin3,
		     Latin4, ISO_8859_4 = Latin4,
		     Latin5, ISO_8859_5 = Latin5,
		     Latin6, ISO_8859_6 = Latin6,
		     Latin7, ISO_8859_7 = Latin7,
		     Latin8, ISO_8859_8 = Latin8,
		     Latin9, ISO_8859_9 = Latin9,
		     KOI8R };

    QFont();					 
    QFont( const char *family, int pointSize = 12,
	   int weight = Normal, bool italic = FALSE );
    QFont( const char *family, int pointSize,
	   int weight, bool italic, CharSet charSet );
    QFont( const QFont & );
    virtual ~QFont();
    QFont      &operator=( const QFont & );

    const char *family()	const;
    void	setFamily( const char * );
    int		pointSize()	const;
    void	setPointSize( int );
    int		weight()	const;
    void	setWeight( int );
    bool	bold()		const;
    void	setBold( bool );
    bool	italic()	const;
    void	setItalic( bool );
    bool	underline()	const;
    void	setUnderline( bool );
    bool	strikeOut()	const;
    void	setStrikeOut( bool );
    bool	fixedPitch()	const;
    void	setFixedPitch( bool );
    StyleHint	styleHint()	const;
    void	setStyleHint( StyleHint );
    CharSet	charSet()	const;
    void	setCharSet( CharSet );
    bool	rawMode()	const;
    void	setRawMode( bool );

    bool	exactMatch()	const;

    bool	operator==( const QFont & ) const;
    bool	operator!=( const QFont & ) const;
    bool	isCopyOf( const QFont & ) const;

    HANDLE	handle( HANDLE=0 ) const;

    const char* rawName() const;

    QString	key() const;

    static const QFont &defaultFont();
    static void setDefaultFont( const QFont & );

    static const char  *substitute( const char *familyName );
    static void insertSubstitution( const char *, const char * );
    static void removeSubstitution( const char * );
    static void listSubstitutions( QStrList * );

    static void initialize();
    static void cleanup();
    static void cacheStatistics();

protected:
    bool	dirty()			const;

    QString	defaultFamily()		const;
    QString	lastResortFamily()	const;
    QString	lastResortFont()	const;
    int		deciPointSize()		const;

private:
    QFont( QFontData * );
    QFont( bool );
    void	init();
    void	detach();
    void	initFontInfo()	    const;
    void	load( HANDLE=0 )    const;





    friend class QFontMetrics;
    friend class QFontInfo;
    friend class QPainter;
    friend   QDataStream &operator<<( QDataStream &, const QFont & );
    friend   QDataStream &operator>>( QDataStream &, QFont & );

    QFontData	 *d;				 
    static QFont *defFont;
};


inline bool QFont::bold() const
{ return weight() > Normal; }

inline void QFont::setBold( bool enable )
{ setWeight( enable ? Bold : Normal ); }


 



  QDataStream &operator<<( QDataStream &, const QFont & );
  QDataStream &operator>>( QDataStream &, QFont & );



# 33 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qfontmetrics.h" 1
 































class   QFontMetrics
{
public:
    QFontMetrics( const QFont & );
    QFontMetrics( const QFontMetrics & );
   ~QFontMetrics();

    QFontMetrics &operator=( const QFontMetrics & );

    int		ascent()	const;
    int		descent()	const;
    int		height()	const;
    int		leading()	const;
    int		lineSpacing()	const;
    int		minLeftBearing() const;
    int		minRightBearing() const;
    int		maxWidth()	const;

    bool	inFont(char)	const;

    int		leftBearing(char) const;
    int		rightBearing(char) const;
    int		width( const char *, int len = -1 ) const;
    int		width( char ) const;
    QRect	boundingRect( const char *, int len = -1 ) const;
    QRect	boundingRect( char ) const;
    QRect	boundingRect( int x, int y, int w, int h, int flags,
			      const char *str, int len=-1, int tabstops=0,
			      int *tabarray=0, char **intern=0 ) const;
    QSize	size( int flags,
		      const char *str, int len=-1, int tabstops=0,
		      int *tabarray=0, char **intern=0 ) const;

    int		underlinePos()	const;
    int		strikeOutPos()	const;
    int		lineWidth()	const;


    const QFont &font() const;


private:
    QFontMetrics( const QWidget * );
    QFontMetrics( const QPainter * );
    static void reset( const QWidget * );
    static void reset( const QPainter * );
    const QFontDef *spec() const;




    void *fontStruct() const;
    int printerAdjusted(int) const;


    enum Type { FontInternal, Widget, Painter };
    union {
	int   flags;
	void *dummy;
    } t;
    union {
	QFontInternal *f;
	QWidget	      *w;
	QPainter      *p;
    } u;

    int	    type()	     const { return t.flags & 0xff; }
    bool    underlineFlag()  const { return (t.flags & 0x100) != 0; }
    bool    strikeOutFlag()  const { return (t.flags & 0x200) != 0; }
    void    setUnderlineFlag()	   { t.flags |= 0x100; }
    void    setStrikeOutFlag()	   { t.flags |= 0x200; }

    friend class QWidget;
    friend class QPainter;
};



# 34 "/trash/qt-1.44/include/qwidget.h" 2

# 1 "/trash/qt-1.44/include/qfontinfo.h" 1
 






























class   QFontInfo
{
public:
    QFontInfo( const QFont & );
    QFontInfo( const QFontInfo & );
   ~QFontInfo();

    QFontInfo	       &operator=( const QFontInfo & );

    const char	       *family()	const;
    int			pointSize()	const;
    bool		italic()	const;
    int			weight()	const;
    bool		bold()		const;
    bool		underline()	const;
    bool		strikeOut()	const;
    bool		fixedPitch()	const;
    QFont::StyleHint	styleHint()	const;
    QFont::CharSet	charSet()	const;
    bool		rawMode()	const;

    bool		exactMatch()	const;


    const QFont &font() const;


private:
    QFontInfo( const QWidget * );
    QFontInfo( const QPainter * );
    static void reset( const QWidget * );
    static void reset( const QPainter * );
    const QFontDef *spec() const;

    enum Type { FontInternal, Widget, Painter };
    union {
	int   flags;
	void *dummy;
    } t;
    union {
	QFontInternal *f;
	QWidget	      *w;
	QPainter      *p;
    } u;

    int	    type()	     const { return t.flags & 0xff; }
    bool    underlineFlag()  const { return (t.flags & 0x100) != 0; }
    bool    strikeOutFlag()  const { return (t.flags & 0x200) != 0; }
    bool    exactMatchFlag() const { return (t.flags & 0x400) != 0; }
    void    setUnderlineFlag()	   { t.flags |= 0x100; }
    void    setStrikeOutFlag()	   { t.flags |= 0x200; }
    void    setExactMatchFlag()	   { t.flags |= 0x400; }

    friend class QWidget;
    friend class QPainter;
};


inline bool QFontInfo::bold() const
{ return weight() > QFont::Normal; }



# 35 "/trash/qt-1.44/include/qwidget.h" 2




class   QWidget : public QObject, public QPaintDevice
{
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    QWidget( QWidget *parent=0, const char *name=0, WFlags f=0 );
   ~QWidget();

    WId		 winId() const;

   

    GUIStyle	 style() const;
    virtual void setStyle( GUIStyle );

   

    bool	 isTopLevel()	const;
    bool	 isModal()	const;
    bool	 isPopup()	const;
    bool	 isDesktop()	const;

    bool	 isEnabled()	const;
    bool	 isEnabledTo(QWidget*) const;
    bool	 isEnabledToTLW() const;
public  :
    virtual void setEnabled( bool );

   

public:
    const QRect &frameGeometry() const;
    const QRect &geometry()	const;
    int		 x()		const;
    int		 y()		const;
    QPoint	 pos()		const;
    QSize	 size()		const;
    int		 width()	const;
    int		 height()	const;
    QRect	 rect()		const;
    QRect	 childrenRect() const;

    QSize	 minimumSize()	const;
    QSize	 maximumSize()	const;
    void	 setMinimumSize( const QSize & );
    void	 setMinimumSize( int minw, int minh );
    void	 setMaximumSize( const QSize & );
    void	 setMaximumSize( int maxw, int maxh );
    void	 setMinimumWidth( int minw );
    void	 setMinimumHeight( int minh );
    void	 setMaximumWidth( int maxw );
    void	 setMaximumHeight( int maxh );
    void	 setMask(QBitmap);
    void	 setMask(const QRegion&);
    void	 clearMask();

    QSize	 sizeIncrement() const;
    void	 setSizeIncrement( const QSize & );
    void	 setSizeIncrement( int w, int h );

    void	 setFixedSize( const QSize & );
    void	 setFixedSize( int w, int h );
    void	 setFixedWidth( int w );
    void	 setFixedHeight( int h );

   

    QPoint	 mapToGlobal( const QPoint & )	 const;
    QPoint	 mapFromGlobal( const QPoint & ) const;
    QPoint	 mapToParent( const QPoint & )	 const;
    QPoint	 mapFromParent( const QPoint & ) const;

    QWidget	*topLevelWidget()   const;

   

    enum BackgroundMode { FixedColor, FixedPixmap, NoBackground,
			  PaletteForeground, PaletteBackground, PaletteLight,
			  PaletteMidlight, PaletteDark, PaletteMid,
			  PaletteText, PaletteBase };

    BackgroundMode backgroundMode() const;
    void	   setBackgroundMode( BackgroundMode );

    const QColor  &backgroundColor() const;
    const QColor  &foregroundColor() const;
    virtual void  setBackgroundColor( const QColor & );

    const QPixmap *backgroundPixmap() const;
    virtual void   setBackgroundPixmap( const QPixmap & );

    const QColorGroup &colorGroup() const;
    const QPalette    &palette()    const;
    virtual void       setPalette( const QPalette & );

    const QFont &font()		const;
    virtual void setFont( const QFont & );
    QFontMetrics fontMetrics()	const;
    QFontInfo	 fontInfo()	const;

    enum PropagationMode { NoChildren, AllChildren,
			   SameFont, SamePalette = SameFont };

    PropagationMode fontPropagation() const;
    void	 setFontPropagation( PropagationMode );

    PropagationMode palettePropagation() const;
    void	 setPalettePropagation( PropagationMode );

    const QCursor &cursor() const;
    virtual void setCursor( const QCursor & );

    const char	*caption()	const;
    const QPixmap *icon()	const;
    const char	*iconText()	const;
    bool	 hasMouseTracking() const;

public  :
    void	 setCaption( const char * );
    void	 setIcon( const QPixmap & );
    void	 setIconText( const char * );
    void	 setMouseTracking( bool enable );

   

public:
    enum FocusPolicy
    { NoFocus = 0, TabFocus = 0x1, ClickFocus = 0x2, StrongFocus = 0x3 };

    bool	 isActiveWindow() const;
    void	 setActiveWindow();
    bool	 isFocusEnabled() const;
    FocusPolicy	 focusPolicy() const;
    void	 setFocusPolicy( FocusPolicy );
    bool	 hasFocus() const;
    void	 setFocus();
    void	 clearFocus();
    static void  setTabOrder( QWidget *, QWidget * );
    void	 setFocusProxy( QWidget * );
    QWidget *	 focusProxy() const;

   

    void	 grabMouse();
    void	 grabMouse( const QCursor & );
    void	 releaseMouse();
    void	 grabKeyboard();
    void	 releaseKeyboard();
    static QWidget *mouseGrabber();
    static QWidget *keyboardGrabber();

   

    bool	 isUpdatesEnabled() const;
public  :
    void	 setUpdatesEnabled( bool enable );
    void	 update();
    void	 update( int x, int y, int w, int h);
    void	 update( const QRect& );
    void	 repaint( bool erase=TRUE );
    void	 repaint( int x, int y, int w, int h, bool erase=TRUE );
    void	 repaint( const QRect &, bool erase=TRUE );

   

    virtual void show();
    virtual void hide();
    void	 iconify();

public:
    virtual bool close( bool forceKill=FALSE );
    bool	 isVisible()	const;
    bool	 isVisibleTo(QWidget*) const;
    bool	 isVisibleToTLW() const;

public  :
    void	 raise();
    void	 lower();
    virtual void move( int x, int y );
    void	 move( const QPoint & );
    virtual void resize( int w, int h );
    void	 resize( const QSize & );
    virtual void setGeometry( int x, int y, int w, int h );
    void	 setGeometry( const QRect & );

public:
    virtual QSize sizeHint() const;
    virtual void  adjustSize();

    void	 recreate( QWidget *parent, WFlags, const QPoint &,
			   bool showIt=FALSE );

    void	 erase();
    void	 erase( int x, int y, int w, int h );
    void	 erase( const QRect & );
    void	 scroll( int dx, int dy );

    void	 drawText( int x, int y, const char * );
    void	 drawText( const QPoint &, const char * );

   

    QWidget     *focusWidget() const;

   

    void	 setAcceptDrops( bool on );
    bool	 acceptDrops() const;
				
public:
    QWidget	*parentWidget() const;
    bool	 testWFlags( WFlags n ) const;
    static QWidget	 *find( WId );
    static QWidgetMapper *wmapper();

   

protected:
    bool	 event( QEvent * );
    virtual void mousePressEvent( QMouseEvent * );
    virtual void mouseReleaseEvent( QMouseEvent * );
    virtual void mouseDoubleClickEvent( QMouseEvent * );
    virtual void mouseMoveEvent( QMouseEvent * );
    virtual void keyPressEvent( QKeyEvent * );
    virtual void keyReleaseEvent( QKeyEvent * );
    virtual void focusInEvent( QFocusEvent * );
    virtual void focusOutEvent( QFocusEvent * );
    virtual void enterEvent( QEvent * );
    virtual void leaveEvent( QEvent * );
    virtual void paintEvent( QPaintEvent * );
    virtual void moveEvent( QMoveEvent * );
    virtual void resizeEvent( QResizeEvent * );
    virtual void closeEvent( QCloseEvent * );








    virtual bool x11Event( XEvent * );		 


   

protected:
    virtual void styleChange( GUIStyle );
    virtual void enabledChange( bool );
    virtual void backgroundColorChange( const QColor & );
    virtual void backgroundPixmapChange( const QPixmap & );
    virtual void paletteChange( const QPalette & );
    virtual void fontChange( const QFont & );


    bool	 acceptFocus()	const;
    void	 setAcceptFocus( bool );

    int		 metric( int )	const;

    void	 create( WId );
    void	 create( WId, bool initializeWindow, bool destroyOldWindow );
    void	 destroy( bool destroyWindow, bool destroySubWindows );
    WFlags	 getWFlags()	const;
    void	 setWFlags( WFlags );
    void	 clearWFlags( WFlags n );
    void	 setFRect( const QRect & );
    void	 setCRect( const QRect & );

    virtual bool focusNextPrevChild( bool next );

    QWExtra	*extraData();







    QFocusData  *focusData();

    void	 setSizeGrip( bool );

private  :
    void	 focusProxyDestroyed();

private:
    void	 setWinId( WId );
    bool	 create();
    bool	 destroy();
    void	 showWindow();
    void	 hideWindow();
    void	 createExtra();
    void	 createSysExtra();
    void	 deleteExtra();
    void	 deleteSysExtra();
    void	 internalMove( int, int );
    void	 internalResize( int, int );
    void	 internalSetGeometry( int, int, int, int );
    void	 deferMove( const QPoint & );
    void	 deferResize( const QSize & );
    void	 cancelMove();
    void	 cancelResize();
    void	 sendDeferredEvents();
    void 	 reparentFocusWidgets( QWidget *parent );
    QFocusData  *focusData( bool create );
    void	 setBackgroundColorFromMode();
    void	 setBackgroundColorDirect( const QColor & );
    void	 setBackgroundModeDirect( BackgroundMode );
    void	 setBackgroundEmpty();

    WId		 winid;
    WFlags	 flags;
    QRect	 frect;
    QRect	 crect;
    QColor	 bg_col;
    QPalette	 pal;
    QFont	 fnt;
    QCursor	 curs;
    QWExtra	*extra;
    QWidget	*focusChild;  
    static void	 createMapper();
    static void	 destroyMapper();
    static QListM_QWidget    *wList();
    static QListM_QWidget    *tlwList();
    static QWidgetMapper *mapper;
    friend class QApplication;
    friend class QPainter;
    friend class QFontMetrics;
    friend class QFontInfo;
    friend class QETWidget;

private:	 

    QWidget( const QWidget & );
    QWidget &operator=( const QWidget & );

};


inline bool QWidget::testWFlags( WFlags f ) const
{ return (flags & f) != 0; }

inline WId QWidget::winId() const
{ return winid; }

inline bool QWidget::isTopLevel() const
{ return testWFlags(WType_TopLevel); }

inline bool QWidget::isModal() const
{ return testWFlags(WType_Modal); }

inline bool QWidget::isPopup() const
{ return testWFlags(WType_Popup); }

inline bool QWidget::isDesktop() const
{ return testWFlags(WType_Desktop); }

inline bool QWidget::isEnabled() const
{ return !testWFlags(WState_Disabled); }

inline const QRect &QWidget::frameGeometry() const
{ return frect; }

inline const QRect &QWidget::geometry() const
{ return crect; }

inline int QWidget::x() const
{ return frect.x(); }

inline int QWidget::y() const
{ return frect.y(); }

inline QPoint QWidget::pos() const
{ return frect.topLeft(); }

inline QSize QWidget::size() const
{ return crect.size(); }

inline int QWidget::width() const
{ return crect.width(); }

inline int QWidget::height() const
{ return crect.height(); }

inline QRect QWidget::rect() const
{ return QRect(0,0,crect.width(),crect.height()); }

inline void QWidget::setSizeIncrement( const QSize &s )
{ setSizeIncrement(s.width(),s.height()); }

inline void QWidget::setMinimumSize( const QSize &s )
{ setMinimumSize(s.width(),s.height()); }

inline void QWidget::setMaximumSize( const QSize &s )
{ setMaximumSize(s.width(),s.height()); }

inline const QColor &QWidget::backgroundColor() const
{ return bg_col; }

inline const QPalette &QWidget::palette() const
{ return pal; }

inline const QFont &QWidget::font() const
{ return fnt; }

inline QFontMetrics QWidget::fontMetrics() const
{ return QFontMetrics(this); }

inline QFontInfo QWidget::fontInfo() const
{ return QFontInfo(this); }

inline bool QWidget::hasMouseTracking() const
{ return testWFlags(WState_TrackMouse); }

inline bool  QWidget::isFocusEnabled() const
{ return testWFlags(WState_TabToFocus|WState_ClickToFocus); }

inline QWidget::FocusPolicy QWidget::focusPolicy() const
{ return (FocusPolicy)((testWFlags(WState_TabToFocus) ? (int)TabFocus : 0) +
		       (testWFlags(WState_ClickToFocus)?(int)ClickFocus:0)); }

inline bool QWidget::isUpdatesEnabled() const
{ return !testWFlags(WState_BlockUpdates); }

inline void QWidget::update( const QRect &r )
{ update( r.x(), r.y(), r.width(), r.height() ); }

inline void QWidget::repaint( bool erase )
{ repaint( 0, 0, crect.width(), crect.height(), erase ); }

inline void QWidget::repaint( const QRect &r, bool erase )
{ repaint( r.x(), r.y(), r.width(), r.height(), erase ); }

inline void QWidget::erase()
{ erase( 0, 0, crect.width(), crect.height() ); }

inline void QWidget::erase( const QRect &r )
{ erase( r.x(), r.y(), r.width(), r.height() ); }

inline bool QWidget::isVisible() const
{ return testWFlags(WState_Visible); }

inline void QWidget::move( const QPoint &p )
{ move( p.x(), p.y() ); }

inline void QWidget::resize( const QSize &s )
{ resize( s.width(), s.height()); }

inline void QWidget::setGeometry( const QRect &r )
{ setGeometry( r.left(), r.top(), r.width(), r.height() ); }

inline void QWidget::drawText( const QPoint &p, const char *s )
{ drawText( p.x(), p.y(), s ); }

inline QWidget *QWidget::parentWidget() const
{ return (QWidget *)QObject::parent(); }

inline QWidgetMapper *QWidget::wmapper()
{ return mapper; }

inline bool QWidget::acceptFocus() const
{ return testWFlags(WState_ClickToFocus|WState_TabToFocus); }

inline WFlags QWidget::getWFlags() const
{ return flags; }

inline void QWidget::setWFlags( WFlags f )
{ flags |= f; }

inline void QWidget::clearWFlags( WFlags f )
{ flags &= ~f; }



# 28 "widgets/qframe.h" 2




class   QFrame : public QWidget			 
{
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    QFrame( QWidget *parent=0, const char *name=0, WFlags f=0,
	    bool allowLines=TRUE );

    enum { NoFrame  = 0,			 
	   Box	    = 0x0001,			 
	   Panel    = 0x0002,			 
	   WinPanel = 0x0003,			 
	   HLine    = 0x0004,			 
	   VLine    = 0x0005,			 
	   MShape   = 0x000f,
	   Plain    = 0x0010,			 
	   Raised   = 0x0020,			 
	   Sunken   = 0x0030,			 
	   MShadow  = 0x00f0 };

    int		frameStyle()	const;
    int		frameShape()	const;
    int		frameShadow()	const;
    void	setFrameStyle( int );

    bool	lineShapesOk()	const;

    int		lineWidth()	const;
    void	setLineWidth( int );

    int		margin()	const;
    void	setMargin( int );

    int		midLineWidth()	const;
    void	setMidLineWidth( int );

    int		frameWidth()	const;
    QRect	frameRect()	const;
    QRect	contentsRect()	const;

    QSize	sizeHint() const;

protected:
    void	setFrameRect( const QRect & );
    void	paintEvent( QPaintEvent * );
    void	resizeEvent( QResizeEvent * );
    virtual void drawFrame( QPainter * );
    virtual void drawContents( QPainter * );
    virtual void frameChanged();

private:
    void	updateFrameWidth();
    QRect	frect;
    int		fstyle;
    short	lwidth;
    short	mwidth;
    short	fwidth;
    short	lineok;

private:	 

    QFrame( const QFrame & );
    QFrame &operator=( const QFrame & );

};


inline int QFrame::frameStyle() const
{ return fstyle; }

inline int QFrame::frameShape() const
{ return fstyle & MShape; }

inline int QFrame::frameShadow() const
{ return fstyle & MShadow; }

inline bool QFrame::lineShapesOk() const
{ return lineok; }				 

inline int QFrame::lineWidth() const
{ return lwidth; }

inline int QFrame::midLineWidth() const
{ return mwidth & 0x00ff; }

inline int QFrame::margin() const
{ return ((int)mwidth) >> 8; }

inline int QFrame::frameWidth() const
{ return fwidth; }



# 28 "widgets/qtableview.h" 2



class QScrollBar;
class CornerSquare;


class   QTableView : public QFrame
{
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    void	setBackgroundColor( const QColor & );
    void	setPalette( const QPalette & );
    void	show();

    void	repaint( bool erase=TRUE );
    void	repaint( int x, int y, int w, int h, bool erase=TRUE );
    void	repaint( const QRect &, bool erase=TRUE );

protected:
    QTableView( QWidget *parent=0, const char *name=0, WFlags f=0 );
   ~QTableView();

    int		numRows()	const;
    void	setNumRows( int );
    int		numCols()	const;
    void	setNumCols( int );

    int		topCell()	const;
    void	setTopCell( int row );
    int		leftCell()	const;
    void	setLeftCell( int col );
    void	setTopLeftCell( int row, int col );

    int		xOffset()	const;
    void	setXOffset( int );
    int		yOffset()	const;
    void	setYOffset( int );
    void	setOffset( int x, int y, bool updateScrBars = TRUE );

    virtual int cellWidth( int col );
    virtual int cellHeight( int row );
    int		cellWidth()	const;
    int		cellHeight()	const;
    void	setCellWidth( int );
    void	setCellHeight( int );

    virtual int totalWidth();
    virtual int totalHeight();

    uint	tableFlags()	const;
    bool	testTableFlags( uint f ) const;
    void	setTableFlags( uint f );
    void	clearTableFlags( uint f = ~0 );

    bool	autoUpdate()	 const;
    void	setAutoUpdate( bool );

    void	updateCell( int row, int column, bool erase=TRUE );

    QRect	cellUpdateRect() const;
    QRect	viewRect()	 const;

    int		lastRowVisible() const;
    int		lastColVisible() const;

    bool	rowIsVisible( int row ) const;
    bool	colIsVisible( int col ) const;

    const QScrollBar *verticalScrollBar() const;
    const QScrollBar *horizontalScrollBar() const;

private  :
    void	horSbValue( int );
    void	horSbSliding( int );
    void	horSbSlidingDone();
    void	verSbValue( int );
    void	verSbSliding( int );
    void	verSbSlidingDone();

protected:
    virtual void paintCell( QPainter *, int row, int col ) = 0;
    virtual void setupPainter( QPainter * );

    void	paintEvent( QPaintEvent * );
    void	resizeEvent( QResizeEvent * );

    int		findRow( int yPos ) const;
    int		findCol( int xPos ) const;

    bool	rowYPos( int row, int *yPos ) const;
    bool	colXPos( int col, int *xPos ) const;

    int		maxXOffset();
    int		maxYOffset();
    int		maxColOffset();
    int		maxRowOffset();

    int		minViewX()	const;
    int		minViewY()	const;
    int		maxViewX()	const;
    int		maxViewY()	const;
    int		viewWidth()	const;
    int		viewHeight()	const;

    void	scroll( int xPixels, int yPixels );
    void	updateScrollBars();
    void	updateTableSize();

private:
    void	coverCornerSquare( bool );
    void	snapToGrid( bool horizontal, bool vertical );
    void	setHorScrollBar( bool on, bool update = TRUE );
    void	setVerScrollBar( bool on, bool update = TRUE );
    void	updateView();
    int		findRawRow( int yPos, int *cellMaxY, int *cellMinY = 0,
			    bool goOutsideView = FALSE ) const;
    int		findRawCol( int xPos, int *cellMaxX, int *cellMinX = 0,
			    bool goOutsideView = FALSE ) const;
    int		maxColsVisible() const;

    void	updateScrollBars( uint );
    void	updateFrameSize();

    void	doAutoScrollBars();
    void	showOrHideScrollBars();

    int		nRows;
    int		nCols;
    int		xOffs, yOffs;
    int		xCellOffs, yCellOffs;
    short	xCellDelta, yCellDelta;
    short	cellH, cellW;

    uint	obsoleteUpd		: 1;
    uint	eraseInPaint		: 1;
    uint	verSliding		: 1;
    uint	verSnappingOff		: 1;
    uint	horSliding		: 1;
    uint	horSnappingOff		: 1;
    uint	coveringCornerSquare	: 1;
    uint	sbDirty			: 8;
    uint	inSbUpdate		: 1;

    uint	tFlags;
    QRect	cellUpdateR;

    QScrollBar *vScrollBar;
    QScrollBar *hScrollBar;
    CornerSquare *cornerSquare;

private:	 

    QTableView( const QTableView & );
    QTableView &operator=( const QTableView & );

};


const uint Tbl_vScrollBar	= 0x00000001;
const uint Tbl_hScrollBar	= 0x00000002;
const uint Tbl_autoVScrollBar	= 0x00000004;
const uint Tbl_autoHScrollBar	= 0x00000008;
const uint Tbl_autoScrollBars	= 0x0000000C;

const uint Tbl_clipCellPainting = 0x00000100;
const uint Tbl_cutCellsV	= 0x00000200;
const uint Tbl_cutCellsH	= 0x00000400;
const uint Tbl_cutCells		= 0x00000600;

const uint Tbl_scrollLastHCell	= 0x00000800;
const uint Tbl_scrollLastVCell	= 0x00001000;
const uint Tbl_scrollLastCell	= 0x00001800;

const uint Tbl_smoothHScrolling = 0x00002000;
const uint Tbl_smoothVScrolling = 0x00004000;
const uint Tbl_smoothScrolling	= 0x00006000;

const uint Tbl_snapToHGrid	= 0x00008000;
const uint Tbl_snapToVGrid	= 0x00010000;
const uint Tbl_snapToGrid	= 0x00018000;


inline int QTableView::numRows() const
{ return nRows; }

inline int QTableView::numCols() const
{ return nCols; }

inline int QTableView::topCell() const
{ return yCellOffs; }

inline int QTableView::leftCell() const
{ return xCellOffs; }

inline int QTableView::xOffset() const
{ return xOffs; }

inline int QTableView::yOffset() const
{ return yOffs; }

inline int QTableView::cellHeight() const
{ return cellH; }

inline int QTableView::cellWidth() const
{ return cellW; }

inline uint QTableView::tableFlags() const
{ return tFlags; }

inline bool QTableView::testTableFlags( uint f ) const
{ return (tFlags & f) != 0; }

inline QRect QTableView::cellUpdateRect() const
{ return cellUpdateR; }

inline bool QTableView::autoUpdate() const
{ return isUpdatesEnabled(); }

inline void QTableView::repaint( bool erase )
{ repaint( 0, 0, width(), height(), erase ); }

inline void QTableView::repaint( const QRect &r, bool erase )
{ repaint( r.x(), r.y(), r.width(), r.height(), erase ); }

inline void QTableView::updateScrollBars()
{ updateScrollBars( 0 ); }



# 28 "widgets/qpopupmenu.h" 2

# 1 "widgets/qmenudata.h" 1
 






























class QPopupMenu;




# 1 "/trash/qt-1.44/include/qpixmap.h" 1
 
































class   QPixmap : public QPaintDevice		 
{
friend class QPaintDevice;
friend class QPainter;
public:
    enum ColorMode { Auto, Color, Mono };

    QPixmap();
    QPixmap( int w, int h,  int depth=-1 );
    QPixmap( const QSize &, int depth=-1 );
    QPixmap( const char *fileName, const char *format=0, ColorMode mode=Auto );
    QPixmap( const char *fileName, const char *format, int conversion_flags );
    QPixmap( const char *xpm[] );
    QPixmap( const QPixmap & );
   ~QPixmap();

    QPixmap    &operator=( const QPixmap & );
    QPixmap    &operator=( const QImage	 & );

    bool	isNull()	const;

    int		width()		const { return data->w; }
    int		height()	const { return data->h; }
    QSize	size()		const { return QSize(data->w,data->h); }
    QRect	rect()		const { return QRect(0,0,data->w,data->h); }
    int		depth()		const { return data->d; }
    static int	defaultDepth();

    void	fill( const QColor &fillColor=white );
    void	fill( const QWidget *, int xofs, int yofs );
    void	fill( const QWidget *, const QPoint &ofs );
    void	resize( int width, int height );
    void	resize( const QSize & );

    const QBitmap *mask() const;
    void	setMask( const QBitmap & );
    bool	selfMask() const;
    QBitmap	createHeuristicMask( bool clipTight = TRUE ) const;

    static  QPixmap  grabWindow( WId, int x=0, int y=0, int w=-1, int h=-1 );

    QPixmap	    xForm( const QWMatrix & ) const;
    static QWMatrix trueMatrix( const QWMatrix &, int w, int h );

    QImage	convertToImage() const;
    bool	convertFromImage( const QImage &, ColorMode mode=Auto );
    bool	convertFromImage( const QImage &, int conversion_flags );

    static const char *imageFormat( const char *fileName );
    bool	load( const char *fileName, const char *format=0,
		      ColorMode mode=Auto );
    bool	load( const char *fileName, const char *format,
		      int conversion_flags );
    bool	loadFromData( const uchar *buf, uint len,
			      const char *format=0,
			      ColorMode mode=Auto );
    bool	loadFromData( const uchar *buf, uint len,
			      const char *format,
			      int conversion_flags );
    bool	loadFromData( QArrayT<char>  data,
			      const char *format=0,
			      int conversion_flags=0 );
    bool	save( const char *fileName, const char *format ) const;





    int		serialNumber()	const;

    enum Optimization { NoOptim, NormalOptim, BestOptim };

    Optimization	optimization() const;
    void		setOptimization( Optimization );
    static Optimization defaultOptimization();
    static void		setDefaultOptimization( Optimization );


    bool	isOptimized() const;
    void	optimize( bool );
    static bool isGloballyOptimized();
    static void optimizeGlobally( bool );


    virtual void detach();

    bool	isQBitmap() const;






protected:
    QPixmap( int w, int h, const uchar *data, bool isXbitmap );
    int		metric( int ) const;

    struct QPixmapData : public QShared {	 
	QCOORD	w, h;
	short	d;
	uint	unused	 : 1;
	uint	optim	 : 1;
	uint	uninit	 : 1;
	uint	bitmap	 : 1;
	uint	selfmask : 1;
	int	ser_no;
	QBitmap *mask;








	void   *ximage;
	void   *maskgc;

	Optimization opt;
    } *data;

private:
    void	init( int, int, int );
    void	deref();
    QPixmap	copy() const;
    static bool optimAll;
    static Optimization defOpt;
    friend   void bitBlt( QPaintDevice *, int, int,
				 const QPaintDevice *,
				 int, int, int, int, RasterOp, bool );
    friend   void bitBlt( QPaintDevice *, int, int,
				 const QImage* src,
				 int, int, int, int, int conversion_flags );
};


inline bool QPixmap::isNull() const
{

    return hd == 0;



}

inline void QPixmap::fill( const QWidget *w, const QPoint &ofs )
{
    fill( w, ofs.x(), ofs.y() );
}

inline void QPixmap::resize( const QSize &s )
{
    resize( s.width(), s.height() );
}

inline const QBitmap *QPixmap::mask() const
{
    return data->mask;
}

inline bool QPixmap::selfMask() const
{
    return data->selfmask;
}








inline int QPixmap::serialNumber() const
{
    return data->ser_no;
}

inline QPixmap::Optimization QPixmap::optimization() const
{
    return data->opt;
}

inline bool QPixmap::isOptimized() const
{
    return data->optim;
}

inline bool QPixmap::isQBitmap() const
{
    return data->bitmap;
}


 



  QDataStream &operator<<( QDataStream &, const QPixmap & );
  QDataStream &operator>>( QDataStream &, QPixmap & );



# 37 "widgets/qmenudata.h" 2

# 1 "/trash/qt-1.44/include/qsignal.h" 1
 






























class   QSignal : private QObject			 
{
public:
    QSignal( QObject *parent=0, const char *name=0 );

    const char *name() const		{ return QObject::name(); }
    void    setName( const char *name ) { QObject::setName(name); }

    bool    connect( const QObject *receiver, const char *member );
    bool    disconnect( const QObject *receiver, const char *member=0 );

    bool    isBlocked()	 const		{ return QObject::signalsBlocked(); }
    void    block( bool b )		{ QObject::blockSignals( b ); }

    void    activate()			{ activate_signal("x()"); }

private:
    void    dummy();
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj;  

private:	 

    QSignal( const QSignal & );
    QSignal &operator=( const QSignal & );

};



# 38 "widgets/qmenudata.h" 2


class   QMenuItem					 
{
friend class QMenuData;
public:
    QMenuItem();
   ~QMenuItem();

    int		id()		const	{ return ident; }
    const char *text()		const	{ return text_data; }
    QPixmap    *pixmap()	const	{ return pixmap_data; }
    QPopupMenu *popup()		const	{ return popup_menu; }
    int		key()		const	{ return accel_key; }
    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 char *text ) { text_data = text; }
    void	setDirty( bool d )	    { is_dirty = d; }

private:
    int		ident;				 
    QString	text_data;			 
    QPixmap    *pixmap_data;			 
    QPopupMenu *popup_menu;			 
    int		accel_key;			 
    QSignal    *signal_data;			 
    uint	is_separator : 1;		 
    uint	is_enabled   : 1;		 
    uint	is_checked   : 1;		 
    uint	is_dirty     : 1;		 

private:	 

    QMenuItem( const QMenuItem & );
    QMenuItem &operator=( const QMenuItem & );

};

# 1 "/trash/qt-1.44/include/qlist.h" 1
 


























# 1 "/trash/qt-1.44/include/qglist.h" 1
 


























# 1 "/trash/qt-1.44/include/qcollection.h" 1
 






























typedef void *GCI;				 
typedef int (*GCF)(GCI,void*);			 

class QGVector;
class QGList;
class QGDict;


class   QCollection			 
{
public:
    bool autoDelete()	const	       { return del_item; }
    void setAutoDelete( bool enable )  { del_item = enable; }

    virtual uint  count() const = 0;
    virtual void  clear() = 0;			 

protected:
    QCollection() { del_item = FALSE; }		 
    QCollection(const QCollection &) { del_item = FALSE; }
    virtual ~QCollection() {}

    bool del_item;				 

    virtual GCI	     newItem( GCI );		 
    virtual void     deleteItem( GCI );		 
};



# 28 "/trash/qt-1.44/include/qglist.h" 2




 



class   QLNode
{
friend class QGList;
friend class QGListIterator;
public:
    GCI	    getData()	{ return data; }
private:
    GCI	    data;
    QLNode *prev;
    QLNode *next;
    QLNode( GCI d )	{ data = d; }
};


 



class   QGList : public QCollection	 
{
friend class QGListIterator;
friend class QGVector;				 
public:
    uint  count() const;			 

    QDataStream &read( QDataStream & );		 
    QDataStream &write( QDataStream & ) const;	 

protected:
    QGList();					 
    QGList( const QGList & );			 
   ~QGList();

    QGList &operator=( const QGList & );	 

    void  inSort( GCI );			 
    void  append( GCI );			 
    bool  insertAt( uint index, GCI );		 
    void  relinkNode( QLNode * );		 
    bool  removeNode( QLNode * );		 
    bool  remove( GCI = 0 );			 
    bool  removeRef( GCI = 0 );			 
    bool  removeFirst();			 
    bool  removeLast();				 
    bool  removeAt( uint index );		 
    GCI	  takeNode( QLNode * );			 
    GCI	  take();				 
    GCI	  takeAt( uint index );			 
    GCI	  takeFirst();				 
    GCI	  takeLast();				 

    void  clear();				 

    int	  findRef( GCI, bool = TRUE );		 
    int	  find( GCI, bool = TRUE );		 

    uint  containsRef( GCI )	const;		 
    uint  contains( GCI )	const;		 

    GCI	  at( uint index );			 
    int	  at() const;				 
    QLNode *currentNode() const;		 

    GCI	  get() const;				 

    GCI	  cfirst() const;			 
    GCI	  clast()  const;			 
    GCI	  first();				 
    GCI	  last();				 
    GCI	  next();				 
    GCI	  prev();				 

    void  toVector( QGVector * ) const;		 

    virtual int compareItems( GCI, GCI );

    virtual QDataStream &read( QDataStream &, GCI & );
    virtual QDataStream &write( QDataStream &, GCI ) const;

private:
    void  prepend( GCI );			 

    QLNode *firstNode;				 
    QLNode *lastNode;				 
    QLNode *curNode;				 
    int	    curIndex;				 
    uint    numNodes;				 
    QGList *iterators;				 

    QLNode *locate( uint );			 
    QLNode *unlink();				 
};


inline uint QGList::count() const
{
    return numNodes;
}

inline bool QGList::removeFirst()
{
    first();
    return remove();
}

inline bool QGList::removeLast()
{
    last();
    return remove();
}

inline int QGList::at() const
{
    return curIndex;
}

inline GCI QGList::at( uint index )
{
    QLNode *n = locate( index );
    return n ? n->data : 0;
}

inline QLNode *QGList::currentNode() const
{
    return curNode;
}

inline GCI QGList::get() const
{
    return curNode ? curNode->data : 0;
}

inline GCI QGList::cfirst() const
{
    return firstNode ? firstNode->data : 0;
}

inline GCI QGList::clast() const
{
    return lastNode ? lastNode->data : 0;
}


 



  QDataStream &operator>>( QDataStream &, QGList & );
  QDataStream &operator<<( QDataStream &, const QGList & );


 



class   QGListIterator			 
{
friend class QGList;
protected:
    QGListIterator( const QGList & );
    QGListIterator( const QGListIterator & );
    QGListIterator &operator=( const QGListIterator & );
   ~QGListIterator();

    bool  atFirst() const;			 
    bool  atLast()  const;			 
    GCI	  toFirst();				 
    GCI	  toLast();				 

    GCI	  get() const;				 
    GCI	  operator()();				 
    GCI	  operator++();				 
    GCI	  operator+=(uint);			 
    GCI	  operator--();				 
    GCI	  operator-=(uint);			 

protected:
    QGList *list;				 

private:
    QLNode  *curNode;				 
};


inline bool QGListIterator::atFirst() const
{
    return curNode == list->firstNode;
}

inline bool QGListIterator::atLast() const
{
    return curNode == list->lastNode;
}

inline GCI QGListIterator::get() const
{
    return curNode ? curNode->data : 0;
}



# 28 "/trash/qt-1.44/include/qlist.h" 2




















# 93 "/trash/qt-1.44/include/qlist.h"









# 123 "/trash/qt-1.44/include/qlist.h"











template<class type> class   QListT : public QGList
{
public:
    QListT()				{}
    QListT( const QListT<type> &l ) : QGList(l) {}
   ~QListT()				{ clear(); }
    QListT<type> &operator=(const QListT<type> &l)
			{ return (QListT<type>&)QGList::operator=(l); }
    uint  count()   const		{ return QGList::count(); }
    bool  isEmpty() const		{ return QGList::count() == 0; }
    bool  insert( uint i, const type *d){ return QGList::insertAt(i,(GCI)d); }
    void  inSort( const type *d )	{ QGList::inSort((GCI)d); }
    void  append( const type *d )	{ QGList::append((GCI)d); }
    bool  remove( uint i )		{ return QGList::removeAt(i); }
    bool  remove()			{ return QGList::remove((GCI)0); }
    bool  remove( const type *d )	{ return QGList::remove((GCI)d); }
    bool  removeRef( const type *d )	{ return QGList::removeRef((GCI)d); }
    void  removeNode( QLNode *n )	{ QGList::removeNode(n); }
    bool  removeFirst()			{ return QGList::removeFirst(); }
    bool  removeLast()			{ return QGList::removeLast(); }
    type *take( uint i )		{ return (type *)QGList::takeAt(i); }
    type *take()			{ return (type *)QGList::take(); }
    type *takeNode( QLNode *n )		{ return (type *)QGList::takeNode(n); }
    void  clear()			{ QGList::clear(); }
    int	  find( const type *d )		{ return QGList::find((GCI)d); }
    int	  findNext( const type *d )	{ return QGList::find((GCI)d,FALSE); }
    int	  findRef( const type *d )	{ return QGList::findRef((GCI)d); }
    int	  findNextRef( const type *d ){ return QGList::findRef((GCI)d,FALSE);}
    uint  contains( const type *d ) const { return QGList::contains((GCI)d); }
    uint  containsRef( const type *d ) const
					{ return QGList::containsRef((GCI)d); }
    type *at( uint i )			{ return (type *)QGList::at(i); }
    int	  at() const			{ return QGList::at(); }
    type *current()  const		{ return (type *)QGList::get(); }
    QLNode *currentNode()  const	{ return QGList::currentNode(); }
    type *getFirst() const		{ return (type *)QGList::cfirst(); }
    type *getLast()  const		{ return (type *)QGList::clast(); }
    type *first()			{ return (type *)QGList::first(); }
    type *last()			{ return (type *)QGList::last(); }
    type *next()			{ return (type *)QGList::next(); }
    type *prev()			{ return (type *)QGList::prev(); }
    void  toVector( QGVector *vec )const{ QGList::toVector(vec); }
private:
    void  deleteItem( GCI d ) { if ( del_item ) delete (type *)d; }
};







template<class type> class   QListIteratorT : public QGListIterator
{
public:
    QListIteratorT(const QListT<type> &l) :QGListIterator((QGList &)l) {}
   ~QListIteratorT()	      {}
    uint  count()   const     { return list->count(); }
    bool  isEmpty() const     { return list->count() == 0; }
    bool  atFirst() const     { return QGListIterator::atFirst(); }
    bool  atLast()  const     { return QGListIterator::atLast(); }
    type *toFirst()	      { return (type *)QGListIterator::toFirst(); }
    type *toLast()	      { return (type *)QGListIterator::toLast(); }
    operator type *() const   { return (type *)QGListIterator::get(); }
    type *current()   const   { return (type *)QGListIterator::get(); }
    type *operator()()	      { return (type *)QGListIterator::operator()();}
    type *operator++()	      { return (type *)QGListIterator::operator++(); }
    type *operator+=(uint j)  { return (type *)QGListIterator::operator+=(j);}
    type *operator--()	      { return (type *)QGListIterator::operator--(); }
    type *operator-=(uint j)  { return (type *)QGListIterator::operator-=(j);}
    QListIteratorT<type>& operator=(const QListIteratorT<type>&it)
			      { QGListIterator::operator=(it); return *this; }
};






# 80 "widgets/qmenudata.h" 2

typedef    class     QListM_QMenuItem         : public QGList	{	public:	  QListM_QMenuItem        ()			{}	  QListM_QMenuItem        ( const   QListM_QMenuItem         &l ) : QGList(l) {}	~  QListM_QMenuItem        ()			{ clear(); }	  QListM_QMenuItem         &operator=(const   QListM_QMenuItem         &l)	{ return (  QListM_QMenuItem        &)QGList::operator=(l); }	uint  count()   const		{ return QGList::count(); }	bool  isEmpty() const		{ return QGList::count() == 0; } bool  insert( uint i, const   QMenuItem   *d){ return QGList::insertAt(i,(GCI)d); } void  inSort( const   QMenuItem   *d )	{ QGList::inSort((GCI)d); }	void  append( const   QMenuItem   *d )	{ QGList::append((GCI)d); }	bool  remove( uint i )		{ return QGList::removeAt(i); }	bool  remove()			{ return QGList::remove((GCI)0); } bool  remove( const   QMenuItem   *d )	{ return QGList::remove((GCI)d); } bool  removeRef( const   QMenuItem   *d )	{ return QGList::removeRef((GCI)d); } void  removeNode( QLNode *n )	{ QGL!
ist::removeNode(n); }	bool  removeFirst()			{ return QGList::removeFirst(); } bool  removeLast()			{ return QGList::removeLast(); }   QMenuItem   *take( uint i )		{ return (  QMenuItem   *)QGList::takeAt(i); }   QMenuItem   *take()			{ return (  QMenuItem   *)QGList::take(); }   QMenuItem   *takeNode( QLNode *n )		{ return (  QMenuItem   *)QGList::takeNode(n);} void  clear()			{ QGList::clear(); }	int	  find( const   QMenuItem   *d )		{ return QGList::find((GCI)d); } int	  findNext( const   QMenuItem   *d )	{ return QGList::find((GCI)d,FALSE);} int	  findRef( const   QMenuItem   *d )	{ return QGList::findRef((GCI)d); } int	  findNextRef( const   QMenuItem   *d ){ return QGList::findRef((GCI)d,FALSE);} uint  contains( const   QMenuItem   *d ) const { return QGList::contains((GCI)d); } uint  containsRef( const   QMenuItem   *d ) const	{ return QGList::containsRef((GCI)d);}   QMenuItem   *at( uint i )			{ return (  QMenuItem   *)QGList::at(i); } int	  at() const			{ return QGList!
::at(); }	  QMenuItem   *current()  const		{ return (  QMen!
uItem   *)QGList::get(); } QLNode *currentNode()  const	{ return QGList::currentNode(); }   QMenuItem   *getFirst() const		{ return (  QMenuItem   *)QGList::cfirst(); }   QMenuItem   *getLast()  const		{ return (  QMenuItem   *)QGList::clast(); }   QMenuItem   *first()			{ return (  QMenuItem   *)QGList::first(); }   QMenuItem   *last()			{ return (  QMenuItem   *)QGList::last(); }   QMenuItem   *next()			{ return (  QMenuItem   *)QGList::next(); }   QMenuItem   *prev()			{ return (  QMenuItem   *)QGList::prev(); } void  toVector( QGVector *vec )const{ QGList::toVector(vec); }	private:	void  deleteItem( GCI d ) { if ( del_item ) delete (  QMenuItem   *)d; }	}  	    QMenuItemList;
typedef    class     QListIteratorM_QMenuItem         : public QGListIterator	{	public:	  QListIteratorM_QMenuItem        (const   QListM_QMenuItem         &l) :QGListIterator((QGList &)l){} ~  QListIteratorM_QMenuItem        ()    {}	uint  count()   const     { return list->count(); }	bool  isEmpty() const     { return list->count() == 0; }	bool  atFirst() const     { return QGListIterator::atFirst(); }	bool  atLast()  const     { return QGListIterator::atLast(); }	  QMenuItem   *toFirst()	      { return (  QMenuItem   *)QGListIterator::toFirst(); }   QMenuItem   *toLast()	      { return (  QMenuItem   *)QGListIterator::toLast(); } operator   QMenuItem   *() const   { return (  QMenuItem   *)QGListIterator::get(); }	  QMenuItem   *current()   const   { return (  QMenuItem   *)QGListIterator::get(); }	  QMenuItem   *operator()()	      { return (  QMenuItem   *)QGListIterator::operator()();}   QMenuItem   *operator++()	      { return (  QMenuItem   *)QGListIterator::operator++(!
); }   QMenuItem   *operator+=(uint j)  { return (  QMenuItem   *)QGListIterator::operator+=(j);}   QMenuItem   *operator--()	      { return (  QMenuItem   *)QGListIterator::operator--(); }   QMenuItem   *operator-=(uint j)  { return (  QMenuItem   *)QGListIterator::operator-=(j);}   QListIteratorM_QMenuItem        & operator=(const   QListIteratorM_QMenuItem        &it) { QGListIterator::operator=(it); return *this; }}   QMenuItemListIt;










class   QMenuData					 
{
friend class QMenuBar;
friend class QPopupMenu;
public:
    QMenuData();
    virtual ~QMenuData();

    uint	count() const;

    int		insertItem( const char *text,
			    const QObject *receiver, const char *member,
			    int accel=0 );
    int		insertItem( const QPixmap &pixmap,
			    const QObject *receiver, const char *member,
			    int accel=0 );
    int		insertItem( const QPixmap &pixmap, const char *text,
			    const QObject *receiver, const char *member,
			    int accel=0 );

    int		insertItem( const char *text,
			    const QObject *receiver, const char *member,
			    int accel, int id, int index = -1 );
    int		insertItem( const QPixmap &pixmap,
			    const QObject *receiver, const char *member,
			    int accel, int id, int index = -1 );
    int		insertItem( const QPixmap &pixmap, const char *text,
			    const QObject *receiver, const char *member,
			    int accel, int id, int index = -1 );

    int		insertItem( const char *text, int id=-1, int index=-1 );
    int		insertItem( const char *text, QPopupMenu *popup,
			    int id=-1, int index=-1 );
    int		insertItem( 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 QPixmap &pixmap, const char *text,
			    int id=-1, int index=-1 );
    int		insertItem( const QPixmap &pixmap, const char *text,
			    QPopupMenu *popup,
			    int id=-1, int index=-1 );

    void	insertSeparator( int index=-1 );

    void	removeItem( int id )		{ removeItemAt(indexOf(id)); }
    void	removeItemAt( int index );
    void	clear();

    int		accel( int id )		const;
    void	setAccel( int key, int id );

    const char *text( int id )		const;
    QPixmap    *pixmap( int id )	const;
    void	changeItem( const char *text, int id );
    void	changeItem( const QPixmap &pixmap, int id );
    void	changeItem( const QPixmap &pixmap, const char *text, int id );

    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;
    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 );

    QMenuItem  *findItem( int id )	const;
    QMenuItem  *findItem( int id, QMenuData ** parent )	const;

protected:
    int		   actItem;
    QMenuItemList *mitems;
    QMenuData	  *parentMenu;
    uint	   isPopupMenu	: 1;
    uint	   isMenuBar	: 1;
    uint	   badSize	: 1;
    uint	   mouseBtDn	: 1;
    uint	   mseparator	: 1;
    uint	   windowsaltactive : 1;
    virtual void   menuContentsChanged();
    virtual void   menuStateChanged();
    virtual void   menuInsPopup( QPopupMenu * );
    virtual void   menuDelPopup( QPopupMenu * );

    QMenuItem * findPopup( QPopupMenu *, int *index = 0 );

private:
    int		insertAny( const char *, const QPixmap *, QPopupMenu *,
			   int, int );
    void	removePopup( QPopupMenu * );
    void	setAllDirty( bool );

private:	 

    QMenuData( const QMenuData & );
    QMenuData &operator=( const QMenuData & );

};



# 29 "widgets/qpopupmenu.h" 2




class   QPopupMenu : public QTableView, public QMenuData
{
friend class QMenuData;
friend class QMenuBar;
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    QPopupMenu( QWidget *parent=0, const char *name=0 );
   ~QPopupMenu();

    void	popup( const QPoint & pos, int indexAtPoint = 0 ); 
    void	updateItem( int id );

    void	setCheckable( bool );
    bool	isCheckable() const;

    void	setFont( const QFont & );	 
    void	show();				 
    void	hide();				 

    int		exec();
    int 	exec( const QPoint & pos, int indexAtPoint = 0 ); 

    void	setActiveItem( int );

    int idAt( int index ) const { return QMenuData::idAt( index ); }
    int idAt( const QPoint& pos ) const;

protected :
    void	activated( int itemId );
    void	highlighted( int itemId );
    void	activatedRedirect( int itemId ); 
    void	highlightedRedirect( int itemId );
    void	aboutToShow();

protected:
    int		cellHeight( int );
    int		cellWidth( int );
    void	paintCell( QPainter *, int, int );

    void	paintEvent( QPaintEvent * );
    void	mousePressEvent( QMouseEvent * );
    void	mouseReleaseEvent( QMouseEvent * );
    void	mouseMoveEvent( QMouseEvent * );
    void	keyPressEvent( QKeyEvent * );
    void	timerEvent( QTimerEvent * );

private  :
    void	subActivated( int itemId );
    void	subHighlighted( int itemId );
    void	accelActivated( int itemId );
    void	accelDestroyed();
    void	modalActivation( int );

    void	subMenuTimer();

private:
    void	menuContentsChanged();
    void	menuStateChanged();
    void	menuInsPopup( QPopupMenu * );
    void	menuDelPopup( QPopupMenu * );
    void	frameChanged();

    void	paintAll();
    void	actSig( int );
    void	hilitSig( int );
    void	setFirstItemActive();
    void	hideAllPopups();
    void	hidePopups();
    bool	tryMenuBar( QMouseEvent * );
    void	byeMenuBar();

    int		itemAtPos( const QPoint & );
    int		itemPos( int index );
    void	updateSize();
    void	updateRow( int row );
    void	updateAccel( QWidget * );
    void	enableAccel( bool );

    void	setTabMark( int );
    int		tabMark();
    void	setCheckableFlag( bool );

    QMenuItem  *selfItem;
    QAccel     *autoaccel;
    bool	accelDisabled;
    int		popupActive;
    int		tabCheck;

private:	 

    QPopupMenu( const QPopupMenu & );
    QPopupMenu &operator=( const QPopupMenu & );

};



# 28 "widgets/qmenubar.h" 2




class   QMenuBar : public QFrame, public QMenuData
{
friend class QPopupMenu;
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    QMenuBar( QWidget *parent=0, const char *name=0 );
   ~QMenuBar();

    void	updateItem( int id );

    void	show();				 
    void	hide();				 

    bool	eventFilter( QObject *, QEvent * );

    int		heightForWidth(int) const;

    enum	Separator { Never=0, InWindowsStyle=1 };
    Separator 	separator() const;
    void	setSeparator( Separator when );

protected :
    void	activated( int itemId );
    void	highlighted( int itemId );

protected:
    void	drawContents( QPainter * );
    void	fontChange( const QFont & );
    void	mousePressEvent( QMouseEvent * );
    void	mouseReleaseEvent( QMouseEvent * );
    void	mouseMoveEvent( QMouseEvent * );
    void	keyPressEvent( QKeyEvent * );
    void	resizeEvent( QResizeEvent * );
    void	leaveEvent( QEvent * );
    void	menuContentsChanged();
    void	menuStateChanged();

private  :
    void	subActivated( int itemId );
    void	subHighlighted( int itemId );
    void	accelActivated( int itemId );
    void	accelDestroyed();

private:
    void	menuInsPopup( QPopupMenu * );
    void	menuDelPopup( QPopupMenu * );
    void	frameChanged();

    bool	tryMouseEvent( QPopupMenu *, QMouseEvent * );
    void	tryKeyEvent( QPopupMenu *, QKeyEvent * );
    void	goodbye();
    void	openActPopup();
    void	hidePopups();

    void	setActItem( int, bool );
    void	setWindowsAltMode( bool, int = 0 );

    int		calculateRects( int max_width = -1 );
    int		itemAtPos( const QPoint & );
    QRect	itemRect( int item );

    void	setupAccelerators();
    QAccel     *autoaccel;
    QRect      *irects;

private:	 

    QMenuBar( const QMenuBar & );
    QMenuBar &operator=( const QMenuBar & );

};



# 25 "widgets/qmenubar.cpp" 2

# 1 "/trash/qt-1.44/include/qaccel.h" 1
 



























# 1 "/trash/qt-1.44/include/qkeycode.h" 1
 






























const uint SHIFT	= 0x00002000;		 
const uint CTRL		= 0x00004000;
const uint ALT		= 0x00008000;
const uint ASCII_ACCEL	= 0x10000000;


















































































































































 





































































































# 29 "/trash/qt-1.44/include/qaccel.h" 2




class QAccelList;				 


class   QAccel : public QObject			 
{
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    QAccel( QWidget *parent, const char *name=0 );
   ~QAccel();

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

    uint	count() const;

    int		insertItem( int key, int id=-1 );
    void	removeItem( int id );
    void	clear();

    int		key( int id );
    int		findKey( int key ) const;

    bool	isItemEnabled( int id )	 const;
    void	setItemEnabled( int id, bool enable );

    bool	connectItem( int id,
			     const QObject *receiver, const char *member );
    bool	disconnectItem( int id,
				const QObject *receiver, const char *member );

    void	repairEventFilter();

protected :
    void	activated( int id );

protected:
    bool	eventFilter( QObject *, QEvent * );

private  :
    void	tlwDestroyed();

private:
    QAccelList *aitems;
    bool	enabled;
    QWidget    *tlw;

private:	 

    QAccel( const QAccel & );
    QAccel &operator=( const QAccel & );

};


inline bool QAccel::isEnabled() const
{
    return enabled;
}



# 26 "widgets/qmenubar.cpp" 2

# 1 "/trash/qt-1.44/include/qpainter.h" 1
 































# 1 "/trash/qt-1.44/include/qregion.h" 1
 
































class   QRegion
{
public:
    enum RegionType { Rectangle, Ellipse };

    QRegion();
    QRegion( int x, int y, int w, int h, RegionType = Rectangle );
    QRegion( const QRect &, RegionType = Rectangle );
    QRegion( const QPointArray &, bool winding=FALSE );
    QRegion( const QRegion & );
    QRegion( const QBitmap & );
   ~QRegion();
    QRegion &operator=( const QRegion & );

    bool    isNull()   const;
    bool    isEmpty()  const;

    bool    contains( const QPoint &p ) const;
    bool    contains( const QRect &r )	const;

    void    translate( int dx, int dy );

    QRegion unite( const QRegion & )	const;
    QRegion intersect( const QRegion &) const;
    QRegion subtract( const QRegion & ) const;

 
 
 
 
 
 
 
 
 
 
 
 
 

    QRegion xor( const QRegion & )	const;

    QRegion eor( const QRegion & )	const;

    QRect   boundingRect() const;
    QArrayT <QRect> rects() const;

    bool    operator==( const QRegion & )  const;
    bool    operator!=( const QRegion &r ) const
			{ return !(operator==(r)); }






    Region  handle() const { return data->rgn; }


    friend   QDataStream &operator<<( QDataStream &, const QRegion & );
    friend   QDataStream &operator>>( QDataStream &, QRegion & );

private:
    QRegion( bool );
    QRegion copy() const;
    void    detach();



    void    cmd( int id, void *, const QRegion * = 0, const QRegion * = 0 );
    void    exec( const QArrayT<char>  & );
    struct QRegionData : public QShared {





	Region rgn;

	bool   is_null;
    } *data;



};














 



  QDataStream &operator<<( QDataStream &, const QRegion & );
  QDataStream &operator>>( QDataStream &, QRegion & );



# 33 "/trash/qt-1.44/include/qpainter.h" 2

# 1 "/trash/qt-1.44/include/qpen.h" 1
 































enum PenStyle { NoPen, SolidLine, DashLine,	 
		DotLine, DashDotLine, DashDotDotLine };


class   QPen
{
friend class QPainter;
public:
    QPen();
    QPen( PenStyle );
    QPen( const QColor &color, uint width=0, PenStyle style=SolidLine );
    QPen( const QPen & );
   ~QPen();
    QPen &operator=( const QPen & );

    PenStyle	style() const		{ return data->style; }
    void	setStyle( PenStyle );
    uint	width() const		{ return data->width; }
    void	setWidth( uint );
    const QColor &color() const		{ return data->color; }
    void	setColor( const QColor & );

    bool	operator==( const QPen &p ) const;
    bool	operator!=( const QPen &p ) const
					{ return !(operator==(p)); }

private:
    QPen	copy()	const;
    void	detach();
    void	init( const QColor &, uint, PenStyle );
    struct QPenData : public QShared {		 
	PenStyle  style;
	uint	  width;
	QColor	  color;
    } *data;
};


 



  QDataStream &operator<<( QDataStream &, const QPen & );
  QDataStream &operator>>( QDataStream &, QPen & );



# 34 "/trash/qt-1.44/include/qpainter.h" 2

# 1 "/trash/qt-1.44/include/qbrush.h" 1
 































enum BrushStyle					 
      { NoBrush, SolidPattern,
	Dense1Pattern, Dense2Pattern, Dense3Pattern, Dense4Pattern,
	Dense5Pattern, Dense6Pattern, Dense7Pattern,
	HorPattern, VerPattern, CrossPattern,
	BDiagPattern, FDiagPattern, DiagCrossPattern, CustomPattern=24 };


class   QBrush
{
friend class QPainter;
public:
    QBrush();
    QBrush( BrushStyle );
    QBrush( const QColor &, BrushStyle=SolidPattern );
    QBrush( const QColor &, const QPixmap & );
    QBrush( const QBrush & );
   ~QBrush();
    QBrush &operator=( const QBrush & );

    BrushStyle	style()	 const		{ return data->style; }
    void	setStyle( BrushStyle );
    const QColor &color()const		{ return data->color; }
    void	setColor( const QColor & );
    QPixmap    *pixmap() const		{ return data->pixmap; }
    void	setPixmap( const QPixmap & );

    bool	operator==( const QBrush &p ) const;
    bool	operator!=( const QBrush &b ) const
					{ return !(operator==(b)); }

private:
    QBrush	copy()	const;
    void	detach();
    void	init( const QColor &, BrushStyle );
    struct QBrushData : public QShared {	 
	BrushStyle style;
	QColor	  color;
	QPixmap	 *pixmap;
    } *data;
};


 



  QDataStream &operator<<( QDataStream &, const QBrush & );
  QDataStream &operator>>( QDataStream &, QBrush & );



# 35 "/trash/qt-1.44/include/qpainter.h" 2

# 1 "/trash/qt-1.44/include/qpointarray.h" 1
 































 






typedef short Qpnta_t;


struct QPointData {				 
    QPointData() {}
    QPointData( int xp, int yp )  { x=(Qpnta_t)xp; y=(Qpnta_t)yp; }
    QPointData( const QPoint &p ) { x=(Qpnta_t)p.x(); y=(Qpnta_t)p.y(); }




    Qpnta_t x;
    Qpnta_t y;

};


 



class QPointArray;

class   QPointVal
{
public:
    QPointVal( QPointData *ptr ) : p(ptr) {}
    bool operator==( const QPointVal &point ) const;
    bool operator!=( const QPointVal &point ) const;
    QPointVal &operator=( const QPointVal &point );
    QPointVal &operator=( const QPoint &point );
    QPointVal &operator+=( const QPoint &point );
    QPointVal &operator-=( const QPoint &point );
	       operator QPoint() const	{ return QPoint(p->x,p->y); }
    int	       x() const		{ return (int)p->x; }
    int	       y() const		{ return (int)p->y; }
private:
    QPointData *p;
};


 



   class     QArrayM_QPointData         : public QGArray	{	protected:	  QArrayM_QPointData        ( int, int ) : QGArray( 0, 0 ) {}	public:	  QArrayM_QPointData        ()		{}	  QArrayM_QPointData        ( int size ) : QGArray(size*sizeof(  QPointData  )) {}	  QArrayM_QPointData        ( const   QArrayM_QPointData         &a ) : QGArray(a) {}	~  QArrayM_QPointData        ()		{}	  QArrayM_QPointData        & operator=(const   QArrayM_QPointData         &a)	{ return (  QArrayM_QPointData        &)QGArray::assign(a); }   QPointData   *data()    const	{ return (  QPointData   *)QGArray::data(); }	uint  nrefs()   const	{ return QGArray::nrefs(); }	uint  size()    const	{ return QGArray::size()/sizeof(  QPointData  ); } bool  isEmpty() const	{ return QGArray::size() == 0; }	bool  isNull()  const	{ return QGArray::data() == 0; }	bool  resize( uint size )	{ return QGArray::resize(size*sizeof(  QPointData  )); } bool  truncate( uint pos )	{ return QGArray::resize(pos*sizeof(  QPointData!
  )); } bool  fill( const   QPointData   &d, int size=-1 )	{ return QGArray::fill((char*)&d,size,sizeof(  QPointData  ) ); }	void  detach()		{ QGArray::detach(); }	  QArrayM_QPointData           copy() const	{   QArrayM_QPointData         tmp; return tmp.duplicate(*this); }	  QArrayM_QPointData        & assign( const   QArrayM_QPointData        & a )	{ return (  QArrayM_QPointData        &)QGArray::assign(a); }	  QArrayM_QPointData        & assign( const   QPointData   *a, uint n )	{ return (  QArrayM_QPointData        &)QGArray::assign((char*)a,n*sizeof(  QPointData  ));}   QArrayM_QPointData        & duplicate( const   QArrayM_QPointData        & a )	{ return (  QArrayM_QPointData        &)QGArray::duplicate(a); }	  QArrayM_QPointData        & duplicate( const   QPointData   *a, uint n )	{ return (  QArrayM_QPointData        &)QGArray::duplicate((char*)a,n*sizeof(  QPointData  ));}   QArrayM_QPointData        & setRawData( const   QPointData   *a, uint n )	{ return (  QArray!
M_QPointData        &)QGArray::setRawData((char*)a,	n*sizeo!
f(  QPointData  )); }	void resetRawData( const   QPointData   *a, uint n )	{ QGArray::resetRawData((char*)a,n*sizeof(  QPointData  )); }	int	 find( const   QPointData   &d, uint i=0 ) const	{ return QGArray::find((char*)&d,i,sizeof(  QPointData  )); }	int	 contains( const   QPointData   &d ) const	{ return QGArray::contains((char*)&d,sizeof(  QPointData  )); }	  QPointData  & operator[]( int i ) const	{ return (  QPointData   &)(*(  QPointData   *)QGArray::at(i*sizeof(  QPointData  ))); }	  QPointData  & at( uint i ) const	{ return (  QPointData   &)(*(  QPointData   *)QGArray::at(i*sizeof(  QPointData  ))); }	operator const   QPointData  *() const { return (const   QPointData   *)QGArray::data();} bool operator==( const   QArrayM_QPointData         &a ) const { return isEqual(a); } bool operator!=( const   QArrayM_QPointData         &a ) const { return !isEqual(a); } }  ;

class   QPointArray : public   QArrayM_QPointData      
{
public:
    QPointArray() {}
    QPointArray( int size ) :   QArrayM_QPointData      ( size ) {}
    QPointArray( const QPointArray &a ) :   QArrayM_QPointData      ( a ) {}
    QPointArray( const QRect &r, bool closed=FALSE );
    QPointArray( int nPoints, const QCOORD *points );

    QPointArray	 &operator=( const QPointArray &a )
	{ return (QPointArray&)assign( a ); }

    bool    fill( const QPoint &p, int size = -1 );

    QPointArray copy() const
	{ QPointArray tmp; return *((QPointArray*)&tmp.duplicate(*this)); }

    void    translate( int dx, int dy );

    void    point( uint i, int *x, int *y ) const;
    QPoint  point( uint i ) const;
    void    setPoint( uint i, int x, int y );
    void    setPoint( uint i, const QPoint &p );
    bool    setPoints( int nPoints, const QCOORD *points );
    bool    setPoints( int nPoints, int firstx, int firsty, ... );
    bool    putPoints( int index, int nPoints, const QCOORD *points );
    bool    putPoints( int index, int nPoints, int firstx, int firsty, ... );

    QPoint  at( uint i ) const;
    QPointVal operator[]( int i )
		{ return QPointVal( data()+i ); }
    QPointVal operator[]( uint i )
		{ return QPointVal( data()+i ); }
    QPoint operator[]( int i ) const
		{ return (QPoint)QPointVal( data()+i ); }
    QPoint operator[]( uint i ) const
		{ return (QPoint)QPointVal( data()+i ); }

    QRect   boundingRect() const;

    void    makeArc( int x, int y, int w, int h, int a1, int a2 );
    void    makeEllipse( int x, int y, int w, int h );

    QPointArray quadBezier() const;
};


 



  QDataStream &operator<<( QDataStream &, const QPointArray & );
  QDataStream &operator>>( QDataStream &, QPointArray & );


 



inline void QPointArray::setPoint( uint i, const QPoint &p )
{
    setPoint( i, p.x(), p.y() );
}

inline bool QPointVal::operator==( const QPointVal &pointval ) const
{
    return p->x == pointval.p->x && p->y == pointval.p->y;
}

inline bool QPointVal::operator!=( const QPointVal &pointval ) const
{
    return p->x != pointval.p->x && p->y != pointval.p->y;
}

inline QPointVal &QPointVal::operator=( const QPointVal &pointval )
{
    p->x = pointval.p->x;
    p->y = pointval.p->y;
    return *this;
}

inline QPointVal &QPointVal::operator=( const QPoint &point )
{
    p->x = (Qpnta_t)point.x();
    p->y = (Qpnta_t)point.y();
    return *this;
}

inline QPointVal &QPointVal::operator+=( const QPoint &point )
{
    p->x += (Qpnta_t)point.x();
    p->y += (Qpnta_t)point.y();
    return *this;
}

inline QPointVal &QPointVal::operator-=( const QPoint &point )
{
    p->x -= (Qpnta_t)point.x();
    p->y -= (Qpnta_t)point.y();
    return *this;
}



# 36 "/trash/qt-1.44/include/qpainter.h" 2

# 1 "/trash/qt-1.44/include/qwmatrix.h" 1
 
































class   QWMatrix					 
{
public:
    QWMatrix();
    QWMatrix( float m11, float m12, float m21, float m22,
	      float dx,	 float dy );

    void	setMatrix( float m11, float m12, float m21, float m22,
			   float dx,  float dy );

    float	m11() const { return _m11; }
    float	m12() const { return _m12; }
    float	m21() const { return _m21; }
    float	m22() const { return _m22; }
    float	dx()  const { return _dx; }
    float	dy()  const { return _dy; }

    void	map( int x, int y, int *tx, int *ty )	      const;
    void	map( float x, float y, float *tx, float *ty ) const;
    QPoint	map( const QPoint & )	const;
    QRect	map( const QRect & )	const;
    QPointArray map( const QPointArray & ) const;

    void	reset();

    QWMatrix   &translate( float dx, float dy );
    QWMatrix   &scale( float sx, float sy );
    QWMatrix   &shear( float sh, float sv );
    QWMatrix   &rotate( float a );

    QWMatrix	invert( bool * = 0 ) const;

    bool	operator==( const QWMatrix & ) const;
    bool	operator!=( const QWMatrix & ) const;
    QWMatrix   &operator*=( const QWMatrix & );

private:
    QWMatrix   &bmul( const QWMatrix & );
    float	_m11, _m12;
    float	_m21, _m22;
    float	_dx,  _dy;
};


  QWMatrix operator*( const QWMatrix &, const QWMatrix & );


 



  QDataStream &operator<<( QDataStream &, const QWMatrix & );
  QDataStream &operator>>( QDataStream &, QWMatrix & );



# 37 "/trash/qt-1.44/include/qpainter.h" 2




enum BGMode					 
    { TransparentMode, OpaqueMode };

enum PaintUnit					 
    { PixelUnit, LoMetricUnit, HiMetricUnit, LoEnglishUnit, HiEnglishUnit,
      TwipsUnit };







class   QPainter					 
{
public:
    QPainter();
    QPainter( const QPaintDevice * );
    QPainter( const QPaintDevice *, const QWidget * );
   ~QPainter();

    bool	begin( const QPaintDevice * );
    bool	begin( const QPaintDevice *, const QWidget * );
    bool	end();
    QPaintDevice *device() const;

    static void redirect( QPaintDevice *pdev, QPaintDevice *replacement );

    bool	isActive() const;

    void	flush();
    void	save();
    void	restore();

   

    QFontMetrics fontMetrics()	const;
    QFontInfo	 fontInfo()	const;

    const QFont &font()		const;
    void	setFont( const QFont & );
    const QPen &pen()		const;
    void	setPen( const QPen & );
    void	setPen( PenStyle );
    void	setPen( const QColor & );
    const QBrush &brush()	const;
    void	setBrush( const QBrush & );
    void	setBrush( BrushStyle );
    void	setBrush( const QColor & );

   

    const QColor &backgroundColor() const;
    void	setBackgroundColor( const QColor & );
    BGMode	backgroundMode() const;
    void	setBackgroundMode( BGMode );
    RasterOp	rasterOp()	const;
    void	setRasterOp( RasterOp );
    const QPoint &brushOrigin() const;
    void	setBrushOrigin( int x, int y );
    void	setBrushOrigin( const QPoint & );

   

 
 

    void	setViewXForm( bool );		 
    bool	hasViewXForm() const;
    QRect	window()       const;		 
    void	setWindow( const QRect & );	 
    void	setWindow( int x, int y, int w, int h );
    QRect	viewport()   const;		 
    void	setViewport( const QRect & );	 
    void	setViewport( int x, int y, int w, int h );

    void	setWorldXForm( bool );		 
    bool	hasWorldXForm() const;
    const QWMatrix &worldMatrix() const;	 
    void	setWorldMatrix( const QWMatrix &, bool combine=FALSE );

    void	translate( float dx, float dy );
    void	scale( float sx, float sy );
    void	shear( float sh, float sv );
    void	rotate( float a );
    void	resetXForm();

    QPoint	xForm( const QPoint & ) const;	 
    QRect	xForm( const QRect & )	const;
    QPointArray xForm( const QPointArray & ) const;
    QPointArray xForm( const QPointArray &, int index, int npoints ) const;
    QPoint	xFormDev( const QPoint & ) const;  
    QRect	xFormDev( const QRect & )  const;
    QPointArray xFormDev( const QPointArray & ) const;
    QPointArray xFormDev( const QPointArray &, int index, int npoints ) const;

   

    void	setClipping( bool );		 
    bool	hasClipping() const;
    const QRegion &clipRegion() const;
    void	setClipRect( const QRect & );	 
    void	setClipRect( int x, int y, int w, int h );
    void	setClipRegion( const QRegion &); 

   

    void	drawPoint( int x, int y );
    void	drawPoint( const QPoint & );
    void	drawPoints( const QPointArray& a,
			    int index=0, int npoints=-1 );
    void	moveTo( int x, int y );
    void	moveTo( const QPoint & );
    void	lineTo( int x, int y );
    void	lineTo( const QPoint & );
    void	drawLine( int x1, int y1, int x2, int y2 );
    void	drawLine( const QPoint &, const QPoint & );
    void	drawRect( int x, int y, int w, int h );
    void	drawRect( const QRect & );
    void	drawWinFocusRect( int x, int y, int w, int h );
    void	drawWinFocusRect( int x, int y, int w, int h,
				  const QColor &bgColor );
    void	drawWinFocusRect( const QRect & );
    void	drawWinFocusRect( const QRect &,
				  const QColor &bgColor );
    void	drawRoundRect( int x, int y, int w, int h, int, int );
    void	drawRoundRect( const QRect &, int, int );
    void	drawEllipse( int x, int y, int w, int h );
    void	drawEllipse( const QRect & );
    void	drawArc( int x, int y, int w, int h, int a, int alen );
    void	drawArc( const QRect &, int a, int alen );
    void	drawPie( int x, int y, int w, int h, int a, int alen );
    void	drawPie( const QRect &, int a, int alen );
    void	drawChord( int x, int y, int w, int h, int a, int alen );
    void	drawChord( const QRect &, int a, int alen );
    void	drawLineSegments( const QPointArray &,
				  int index=0, int nlines=-1 );
    void	drawPolyline( const QPointArray &,
			      int index=0, int npoints=-1 );
    void	drawPolygon( const QPointArray &, bool winding=FALSE,
			     int index=0, int npoints=-1 );
    void	drawQuadBezier( const QPointArray &, int index=0 );
    void	drawPixmap( int x, int y, const QPixmap &,
			    int sx=0, int sy=0, int sw=-1, int sh=-1 );
    void	drawPixmap( const QPoint &, const QPixmap &,
			    const QRect &sr );
    void	drawPixmap( const QPoint &, const QPixmap & );
    void	drawImage( int x, int y, const QImage &,
			   int sx=0, int sy=0, int sw=-1, int sh=-1 );
    void	drawImage( const QPoint &, const QImage &,
			   const QRect &sr );
    void	drawImage( const QPoint &, const QImage & );
    void	drawTiledPixmap( int x, int y, int w, int h, const QPixmap &,
				 int sx=0, int sy=0 );
    void	drawTiledPixmap( const QRect &, const QPixmap &,
				 const QPoint & );
    void	drawTiledPixmap( const QRect &, const QPixmap & );
    void	drawPicture( const QPicture & );

    void	fillRect( int x, int y, int w, int h, const QBrush & );
    void	fillRect( const QRect &, const QBrush & );
    void	eraseRect( int x, int y, int w, int h );
    void	eraseRect( const QRect & );

   

    void	drawText( int x, int y, const char *str, int len = -1 );
    void	drawText( const QPoint &, const char *str, int len = -1 );
    void	drawText( int x, int y, int w, int h, int flags,
			  const char *str, int len = -1, QRect *br=0,
			  char **internal=0 );
    void	drawText( const QRect &, int flags,
			  const char *str, int len = -1, QRect *br=0,
			  char **internal=0 );

   

    QRect	boundingRect( int x, int y, int w, int h, int flags,
			      const char *str, int len = -1, char **intern=0 );
    QRect	boundingRect( const QRect &, int flags,
			      const char *str, int len = -1, char **intern=0 );

    int		tabStops() const;
    void	setTabStops( int );
    int	       *tabArray() const;
    void	setTabArray( int * );

    HANDLE	handle() const;

    static void initialize();
    static void cleanup();

private:
    void	init();
    void	updateFont();
    void	updatePen();
    void	updateBrush();
    void	updateXForm();
    void	updateInvXForm();
    void	map( int, int, int *rx, int *ry ) const;
    void	map( int, int, int, int, int *, int *, int *, int * ) const;
    void	mapInv( int, int, int *, int * ) const;
    void	mapInv( int, int, int, int, int *, int *, int *, int * ) const;
    void	drawPolyInternal( const QPointArray &, bool close=TRUE );
    void	drawWinFocusRect( int x, int y, int w, int h, bool xorPaint,
				  const QColor &penColor );

    enum { IsActive=0x01, ExtDev=0x02, IsStartingUp=0x04, NoCache=0x08,
	   VxF=0x10, WxF=0x20, ClipOn=0x40, SafePolygon=0x80, MonoDev=0x100,
	   DirtyFont=0x200, DirtyPen=0x400, DirtyBrush=0x800,
	   RGBColor=0x1000, FontMet=0x2000, FontInf=0x4000, CtorBegin=0x8000 };
    ushort	flags;
    bool	testf( ushort b ) const { return (flags&b)!=0; }
    void	setf( ushort b )	{ flags |= b; }
    void	setf( ushort b, bool v );
    void	clearf( ushort b )	{ flags &= (ushort)(~b); }
    void	fix_neg_rect( int *x, int *y, int *w, int *h );

    QPaintDevice *pdev;
    QColor	bg_col;
    uchar	bg_mode;
    uchar	rop;
    uchar	pu;
    QPoint	bro;
    QFont	cfont;
    QPen	cpen;
    QBrush	cbrush;
    QRegion	crgn;
    int		tabstops;
    int	       *tabarray;
    int		tabarraylen;
    QCOORD	wx, wy, ww, wh;
    QCOORD	vx, vy, vw, vh;
    QWMatrix	wxmat;
    int		wm11, wm12, wm21, wm22, wdx, wdy;
    int		im11, im12, im21, im22, idx, idy;
    int		txop;
    bool	txinv;
    void       *penRef;				 
    void       *brushRef;			 
    void       *ps_stack;
    void	killPStack();

protected:
# 301 "/trash/qt-1.44/include/qpainter.h"

    Display    *dpy;				 
    WId		hd;				 
    GC		gc;				 
    GC		gc_brush;			 
    QPoint	curPt;				 

    friend class QFontMetrics;
    friend class QFontInfo;
    friend void qt_format_text( const QFontMetrics& fm, int x, int y, int w, int h,
		     int tf, const char *str, int len, QRect *brect,
		     int tabstops, int* tabarray, int tabarraylen,
		     char **internal, QPainter* painter );

private:	 

    QPainter( const QPainter & );
    QPainter &operator=( const QPainter & );

};


 



inline QPaintDevice *QPainter::device() const
{
    return pdev;
}

inline bool QPainter::isActive() const
{
    return testf(IsActive);
}

inline QFontMetrics QPainter::fontMetrics() const
{
    return QFontMetrics(this);
}

inline QFontInfo QPainter::fontInfo() const
{
    return QFontInfo(this);
}

inline const QFont &QPainter::font() const
{
    return cfont;
}

inline const QPen &QPainter::pen() const
{
    return cpen;
}

inline const QBrush &QPainter::brush() const
{
    return cbrush;
}

 






inline const QColor &QPainter::backgroundColor() const
{
    return bg_col;
}

inline BGMode QPainter::backgroundMode() const
{
    return (BGMode)bg_mode;
}

inline RasterOp QPainter::rasterOp() const
{
    return (RasterOp)rop;
}

inline const QPoint &QPainter::brushOrigin() const
{
    return bro;
}

inline bool QPainter::hasViewXForm() const
{
    return testf(VxF);
}

inline bool QPainter::hasWorldXForm() const
{
    return testf(WxF);
}

inline bool QPainter::hasClipping() const
{
    return testf(ClipOn);
}

inline const QRegion &QPainter::clipRegion() const
{
    return crgn;
}

inline int QPainter::tabStops() const
{
    return tabstops;
}

inline int *QPainter::tabArray() const
{
    return tabarray;
}

inline HANDLE QPainter::handle() const
{





    return hd;

}


inline void QPainter::setBrushOrigin( const QPoint &p )
{
    setBrushOrigin( p.x(), p.y() );
}

inline void QPainter::setWindow( const QRect &r )
{
    setWindow( r.x(), r.y(), r.width(), r.height() );
}

inline void QPainter::setViewport( const QRect &r )
{
    setViewport( r.x(), r.y(), r.width(), r.height() );
}

inline void QPainter::setClipRect( int x, int y, int w, int h )
{
    setClipRect( QRect(x,y,w,h) );
}

inline void QPainter::drawPoint( const QPoint &p )
{
    drawPoint( p.x(), p.y() );
}

inline void QPainter::moveTo( const QPoint &p )
{
    moveTo( p.x(), p.y() );
}

inline void QPainter::lineTo( const QPoint &p )
{
    lineTo( p.x(), p.y() );
}

inline void QPainter::drawLine( const QPoint &p1, const QPoint &p2 )
{
    drawLine( p1.x(), p1.y(), p2.x(), p2.y() );
}

inline void QPainter::drawRect( const QRect &r )
{
    drawRect( r.x(), r.y(), r.width(), r.height() );
}

inline void QPainter::drawWinFocusRect( const QRect &r )
{
    drawWinFocusRect( r.x(), r.y(), r.width(), r.height() );
}

inline void QPainter::drawWinFocusRect( const QRect &r,const QColor &penColor )
{
    drawWinFocusRect( r.x(), r.y(), r.width(), r.height(), penColor );
}

inline void QPainter::drawRoundRect( const QRect &r, int xRnd, int yRnd )
{
    drawRoundRect( r.x(), r.y(), r.width(), r.height(), xRnd, yRnd );
}

inline void QPainter::drawEllipse( const QRect &r )
{
    drawEllipse( r.x(), r.y(), r.width(), r.height() );
}

inline void QPainter::drawArc( const QRect &r, int a, int alen )
{
    drawArc( r.x(), r.y(), r.width(), r.height(), a, alen );
}

inline void QPainter::drawPie( const QRect &r, int a, int alen )
{
    drawPie( r.x(), r.y(), r.width(), r.height(), a, alen );
}

inline void QPainter::drawChord( const QRect &r, int a, int alen )
{
    drawChord( r.x(), r.y(), r.width(), r.height(), a, alen );
}

inline void QPainter::drawPixmap( const QPoint &p, const QPixmap &pm,
				  const QRect &sr )
{
    drawPixmap( p.x(), p.y(), pm, sr.x(), sr.y(), sr.width(), sr.height() );
}

inline void QPainter::drawImage( const QPoint &p, const QImage &pm,
				 const QRect &sr )
{
    drawImage( p.x(), p.y(), pm, sr.x(), sr.y(), sr.width(), sr.height() );
}

inline void QPainter::drawTiledPixmap( const QRect &r, const QPixmap &pm,
				       const QPoint &sp )
{
    drawTiledPixmap( r.x(), r.y(), r.width(), r.height(), pm, sp.x(), sp.y() );
}

inline void QPainter::drawTiledPixmap( const QRect &r, const QPixmap &pm )
{
    drawTiledPixmap( r.x(), r.y(), r.width(), r.height(), pm, 0, 0 );
}

inline void QPainter::fillRect( const QRect &r, const QBrush &brush )
{
    fillRect( r.x(), r.y(), r.width(), r.height(), brush );
}

inline void QPainter::eraseRect( int x, int y, int w, int h )
{
    fillRect( x, y, w, h, backgroundColor() );
}

inline void QPainter::eraseRect( const QRect &r )
{
    fillRect( r.x(), r.y(), r.width(), r.height(), backgroundColor() );
}

inline void QPainter::drawText( const QPoint &p, const char *s, int len )
{
    drawText( p.x(), p.y(), s, len );
}

inline void QPainter::drawText( const QRect &r, int tf,
				const char *str, int len, QRect *br, char **i )
{
    drawText( r.x(), r.y(), r.width(), r.height(), tf, str, len, br, i );
}

inline QRect QPainter::boundingRect( const QRect &r, int tf,
				     const char *str, int len, char **i )
{
    return boundingRect( r.x(), r.y(), r.width(), r.height(), tf, str, len,
			 i );
}



# 27 "widgets/qmenubar.cpp" 2

# 1 "/trash/qt-1.44/include/qdrawutil.h" 1
 































 
 
 

 
void qDrawShadeLine( QPainter *p, int x1, int y1, int x2, int y2,
		     const QColorGroup &g, bool sunken = TRUE,
		     int lineWidth = 1, int midLineWidth = 0 );

 
void qDrawShadeLine( QPainter *p, const QPoint &p1, const QPoint &p2,
		     const QColorGroup &g, bool sunken = TRUE,
		     int lineWidth = 1, int midLineWidth = 0 );

 
void qDrawShadeRect( QPainter *p, int x, int y, int w, int h,
		     const QColorGroup &, bool sunken=FALSE,
		     int lineWidth = 1, int midLineWidth = 0,
		     const QBrush *fill = 0 );

 
void qDrawShadeRect( QPainter *p, const QRect &r,
		     const QColorGroup &, bool sunken=FALSE,
		     int lineWidth = 1, int midLineWidth = 0,
		     const QBrush *fill = 0 );

 
void qDrawShadePanel( QPainter *p, int x, int y, int w, int h,
		      const QColorGroup &, bool sunken=FALSE,
		      int lineWidth = 1, const QBrush *fill = 0 );

 
void qDrawShadePanel( QPainter *p, const QRect &r,
		      const QColorGroup &, bool sunken=FALSE,
		      int lineWidth = 1, const QBrush *fill = 0 );

 
void qDrawWinButton( QPainter *p, int x, int y, int w, int h,
		     const QColorGroup &g, bool sunken = FALSE,
		     const QBrush *fill = 0 );

 
void qDrawWinButton( QPainter *p, const QRect &r,
		     const QColorGroup &g, bool sunken = FALSE,
		     const QBrush *fill = 0 );

 
void qDrawWinPanel( QPainter *p, int x, int y, int w, int h,
		    const QColorGroup &, bool sunken=FALSE,
		    const QBrush *fill = 0 );

 
void qDrawWinPanel( QPainter *p, const QRect &r,
		    const QColorGroup &, bool sunken=FALSE,
		    const QBrush *fill = 0 );

 
void qDrawPlainRect( QPainter *p, int x, int y, int w, int h, const QColor &,
		     int lineWidth = 1, const QBrush *fill = 0 );

 
void qDrawPlainRect( QPainter *p, const QRect &r, const QColor &,
		     int lineWidth = 1, const QBrush *fill = 0 );


 
 
 

 
QRect qItemRect( QPainter *p, GUIStyle gs, int x, int y, int w, int h,
		int flags, bool enabled,
		const QPixmap *pixmap, const char *text, int len=-1 );

 
void qDrawItem( QPainter *p, GUIStyle gs, int x, int y, int w, int h,
		int flags, const QColorGroup &g, bool enabled,
		const QPixmap *pixmap, const char *text, int len=-1 );

enum ArrowType
    { UpArrow, DownArrow, LeftArrow, RightArrow };

 
void qDrawArrow( QPainter *p, ArrowType type, GUIStyle style, bool down,
		 int x, int y, int w, int h,
		 const QColorGroup &g, bool enabled );


# 28 "widgets/qmenubar.cpp" 2

# 1 "/trash/qt-1.44/include/qapplication.h" 1
 




































extern   QApplication *qApp;		 

class   QApplication : public QObject
{
    public:	QMetaObject *metaObject() const { return metaObj; }	const char  *className()  const;	protected:	void	 initMetaObject();	private:	static QMetaObject *metaObj; 
public:
    QApplication( int &argc, char **argv );

    QApplication( Display* dpy );

    virtual ~QApplication();

    int		    argc()	const;
    char	  **argv()	const;

    static GUIStyle style();
    static void	    setStyle( GUIStyle );


    enum ColorMode { NormalColors, CustomColors };
    static ColorMode colorMode();
    static void      setColorMode( QApplication::ColorMode );


    enum ColorSpec { NormalColor=0, CustomColor=1, PrivateColor=4,
		     ManyColor=4, TrueColor=4 };
    static int	     colorSpec();
    static void      setColorSpec( int );

    static QCursor  *overrideCursor();
    static void	     setOverrideCursor( const QCursor &, bool replace=FALSE );
    static void	     restoreOverrideCursor();

    static bool	     hasGlobalMouseTracking();
    static void	     setGlobalMouseTracking( bool enable );

    static QPalette *palette();
    static void	     setPalette( const QPalette &,bool updateAllWidgets=FALSE);

    static QFont    *font();
    static void	     setFont( const QFont &, bool updateAllWidgets=FALSE );
    static QFontMetrics fontMetrics();

    QWidget	    *mainWidget()  const;
    void	     setMainWidget( QWidget * );

    static QListM_QWidget  *allWidgets();
    static QListM_QWidget  *topLevelWidgets();
    static QWidget  *desktop();
    static QWidget  *activePopupWidget();
    static QWidget  *activeModalWidget();
    static QClipboard *clipboard();
    QWidget	    *focusWidget() const;

    static QWidget  *widgetAt( int x, int y, bool child=FALSE );
    static QWidget  *widgetAt( const QPoint &, bool child=FALSE );

    int		     exec();
    void	     processEvents();
    void	     processEvents( int maxtime );
    void	     processOneEvent();
    int		     enter_loop();
    void	     exit_loop();
    static void	     exit( int retcode=0 );

    static bool	     sendEvent( QObject *receiver, QEvent *event )
	{ return qApp->notify( receiver, event ); }
    static void	     postEvent( QObject *receiver, QEvent *event );
    static void	     sendPostedEvents( QObject *receiver, int event_type );

    virtual bool     notify( QObject *, QEvent * );

    static bool	     startingUp();
    static bool	     closingDown();

    static void	     flushX();
    static void	     syncX();

    static void	     beep();

    static void      setWinStyleHighlightColor( const QColor & );
    static const QColor&   winStyleHighlightColor();

    static void	    setDoubleClickInterval( int );
    static int      doubleClickInterval();












    virtual bool     x11EventFilter( XEvent * );
    int              x11ProcessEvent( XEvent* );






protected :
    void	     lastWindowClosed();

public  :
    void	     quit();

private:
    bool	     processNextEvent( bool );
    void	     initialize( int, char ** );

    int		     app_argc;
    char	   **app_argv;
    bool	     quit_now;
    int		     quit_code;
    static GUIStyle  app_style;
    static int	     app_cspec;
    static QPalette *app_pal;
    static QFont    *app_font;
    static QCursor  *app_cursor;
    static int	     app_tracking;
    static bool	     is_app_running;
    static bool	     is_app_closing;
    static int	     loop_level;
    static QWidget  *main_widget;
    static QWidget  *focus_widget;

    friend class QWidget;
    friend class QETWidget;

private:	 

    QApplication( const QApplication & );
    QApplication &operator=( const QApplication & );

};


inline int QApplication::argc() const
{
    return app_argc;
}

inline char **QApplication::argv() const
{
    return app_argv;
}

inline GUIStyle QApplication::style()
{
    return app_style;
}

inline QCursor *QApplication::overrideCursor()
{
    return app_cursor;
}

inline bool QApplication::hasGlobalMouseTracking()
{
    return app_tracking > 0;
}

inline QFont *QApplication::font()
{
    return app_font;
}

inline QWidget *QApplication::mainWidget() const
{
    return main_widget;
}

inline QWidget *QApplication::focusWidget() const
{
    return focus_widget;
}

inline QWidget *QApplication::widgetAt( const QPoint &p, bool child )
{
    return widgetAt( p.x(), p.y(), child );
}


# 241 "/trash/qt-1.44/include/qapplication.h"




# 29 "widgets/qmenubar.cpp" 2

# 1 "/usr/include/ctype.h" 1 3
 

















 







# 1 "/usr/include/bits/types.h" 1 3
 

















 









# 1 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 1 3






 


# 19 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3



 


 





 


# 61 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


 

 


# 188 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3





 




 

# 271 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


# 283 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3


 

 

# 317 "/usr/lib/gcc-lib/i386-linux/2.95.2/include/stddef.h" 3




 





















# 29 "/usr/include/bits/types.h" 2 3


 
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;

__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 48 "/usr/include/bits/types.h" 3

typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;

typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;		 
typedef __u_int __uid_t;		 
typedef __u_int __gid_t;		 
typedef __u_long __ino_t;		 
typedef __u_int __mode_t;		 
typedef __u_int __nlink_t; 		 
typedef long int __off_t;		 
typedef __quad_t __loff_t;		 
typedef int __pid_t;			 
typedef int __ssize_t;			 
typedef __u_long __rlim_t;		 
typedef __u_quad_t __rlim64_t;		 
typedef __u_int __id_t;			 

typedef struct
  {
    int __val[2];
  } __fsid_t;				 

 
typedef int __daddr_t;			 
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;		 

typedef long int __clock_t;

 
typedef unsigned long int __fd_mask;

 


 




 
typedef struct
  {
     





    __fd_mask __fds_bits[1024  / (8 * sizeof (__fd_mask)) ];


  } __fd_set;


typedef int __key_t;

 
typedef unsigned short int __ipc_pid_t;


 

 
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;

 
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;

 
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;

 
typedef __u_long __ino64_t;

 
typedef __loff_t __off64_t;

 
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;

 
typedef int __intptr_t;


 





# 27 "/usr/include/ctype.h" 2 3


extern "C" { 


 







# 1 "/usr/include/endian.h" 1 3
 






















 









 
# 1 "/usr/include/bits/endian.h" 1 3
 






# 35 "/usr/include/endian.h" 2 3


 













# 40 "/usr/include/ctype.h" 2 3







enum
{
  _ISupper = (( 0 ) < 8 ? ((1 << ( 0 )) << 8) : ((1 << ( 0 )) >> 8)) ,	 
  _ISlower = (( 1 ) < 8 ? ((1 << ( 1 )) << 8) : ((1 << ( 1 )) >> 8)) ,	 
  _ISalpha = (( 2 ) < 8 ? ((1 << ( 2 )) << 8) : ((1 << ( 2 )) >> 8)) ,	 
  _ISdigit = (( 3 ) < 8 ? ((1 << ( 3 )) << 8) : ((1 << ( 3 )) >> 8)) ,	 
  _ISxdigit = (( 4 ) < 8 ? ((1 << ( 4 )) << 8) : ((1 << ( 4 )) >> 8)) ,	 
  _ISspace = (( 5 ) < 8 ? ((1 << ( 5 )) << 8) : ((1 << ( 5 )) >> 8)) ,	 
  _ISprint = (( 6 ) < 8 ? ((1 << ( 6 )) << 8) : ((1 << ( 6 )) >> 8)) ,	 
  _ISgraph = (( 7 ) < 8 ? ((1 << ( 7 )) << 8) : ((1 << ( 7 )) >> 8)) ,	 
  _ISblank = (( 8 ) < 8 ? ((1 << ( 8 )) << 8) : ((1 << ( 8 )) >> 8)) ,	 
  _IScntrl = (( 9 ) < 8 ? ((1 << ( 9 )) << 8) : ((1 << ( 9 )) >> 8)) ,	 
  _ISpunct = (( 10 ) < 8 ? ((1 << ( 10 )) << 8) : ((1 << ( 10 )) >> 8)) ,	 
  _ISalnum = (( 11 ) < 8 ? ((1 << ( 11 )) << 8) : ((1 << ( 11 )) >> 8)) 	 
};


 










extern __const unsigned short int *__ctype_b;	 
extern __const __int32_t *__ctype_tolower;  
extern __const __int32_t *__ctype_toupper;  









 



extern int  isalnum   (int)  throw ()   ;
extern int  isalpha   (int)  throw ()   ;
extern int  iscntrl   (int)  throw ()   ;
extern int  isdigit   (int)  throw ()   ;
extern int  islower   (int)  throw ()   ;
extern int  isgraph   (int)  throw ()   ;
extern int  isprint   (int)  throw ()   ;
extern int  ispunct   (int)  throw ()   ;
extern int  isspace   (int)  throw ()   ;
extern int  isupper   (int)  throw ()   ;
extern int  isxdigit   (int)  throw ()   ;






 
extern int tolower  (int __c)  throw ()  ;

 
extern int toupper  (int __c)  throw ()  ;




 

extern int isascii  (int __c)  throw ()  ;

 

extern int toascii  (int __c)  throw ()  ;




 

extern int  _toupper   (int)  throw ()   ;
extern int  _tolower   (int)  throw ()   ;





















extern __inline int
tolower (int __c) throw () 
{
  return __c >= -128 && __c < 256 ? __ctype_tolower[__c] : __c;
}

extern __inline int
toupper (int __c) throw () 
{
  return __c >= -128 && __c < 256 ? __ctype_toupper[__c] : __c;
}


# 186 "/usr/include/ctype.h" 3













# 273 "/usr/include/ctype.h" 3


} 


# 30 "widgets/qmenubar.cpp" 2


 


















 













 














 

static const int motifBarFrame		= 2;	 
static const int motifBarHMargin	= 2;	 
static const int motifBarVMargin	= 1;	 
static const int motifItemFrame		= 2;	 
static const int motifItemHMargin	= 5;	 
static const int motifItemVMargin	= 4;	 

 


















 




 



QMenuBar::QMenuBar( QWidget *parent, const char *name )
    : QFrame( parent, name, 0, FALSE )
{
    isMenuBar = TRUE;
    autoaccel = 0;
    irects    = 0;
    mseparator = 0;
    windowsaltactive = 0;
    if ( parent ) {
	 
	parent->installEventFilter( this );

	 
	QWidget *tlw = topLevelWidget();
	if ( tlw != parent )
	    tlw->installEventFilter( this );
    }

    QFontMetrics fm = fontMetrics();
    int gs = style();
    int h;
    if ( gs == WindowsStyle ) {
	h = 2 + fm.height() + motifItemVMargin + 2*motifBarFrame;
    } else {
	h =  motifBarFrame + motifBarVMargin + fm.height()
	    + motifItemVMargin + 2*motifBarFrame + 2*motifItemFrame;
    }

    move( 0, 0 );
    resize( width(), h );

    switch ( gs ) {
	case WindowsStyle:
	    setFrameStyle( QFrame::NoFrame );
	    setMouseTracking( TRUE );
	    break;
	case MotifStyle:
	    setFrameStyle( QFrame::Panel | QFrame::Raised );
	    setLineWidth( motifBarFrame );
	    break;
	default:
	    break;
    }
}

 



QMenuBar::~QMenuBar()
{
    delete autoaccel;
    if ( irects )		 
	delete [] irects;
}

 



void QMenuBar::updateItem( int )
{
  
}


 







void QMenuBar::menuContentsChanged()
{
    setupAccelerators();
    badSize = TRUE;				 
    if ( isVisible() ) {
	calculateRects();
	repaint();
    }
}

 







void QMenuBar::menuStateChanged()
{
    repaint();
}


void QMenuBar::menuInsPopup( QPopupMenu *popup )
{
    popup->parentMenu = this;			 
    connect( popup, "2""activatedRedirect(int)" ,
	     "1""subActivated(int)"  );
    connect( popup, "2""highlightedRedirect(int)" ,
	     "1""subHighlighted(int)"  );
}

void QMenuBar::menuDelPopup( QPopupMenu *popup )
{
    popup->parentMenu = 0;
    popup->disconnect( "2""activatedRedirect(int)" , this,
		       "1""subActivated(int)"  );
    popup->disconnect( "2""highlightedRedirect(int)" , this,
		       "1""subHighlighted(int)"  );
}

void QMenuBar::frameChanged()
{
    menuContentsChanged();
}


 










bool QMenuBar::eventFilter( QObject *object, QEvent *event )
{
    if ( object == parent() && event->type() == 14  ) {
	QResizeEvent *e = (QResizeEvent *)event;
	setGeometry( 0, y(), e->size().width(), height() );
	return FALSE;
    }

    if ( style() != WindowsStyle ||
	 !isVisibleToTLW() ||
	 !object->isWidgetType() ||
	 !( event->type() == 30  ||
	    event->type() == 6  ||
	    event->type() == 7  ) )
	return FALSE;

     
    if ( event->type() == 30  ) {
	QWidget * f = ((QWidget *)object)->focusWidget();
	QKeyEvent * ke = (QKeyEvent *) event;
	if ( f ) {  
	    if ( ke->key() == 0x1023  || ke->key() == 0x1022  ) {
		if ( windowsaltactive || actItem >= 0 ) {
		    setWindowsAltMode( FALSE, -1 );
		} else {
		    windowsaltactive = 1;
		    if ( f != object )
			f->installEventFilter( this );
		}
	    } else if ( (ke->key() == 0x1021  || ke->key() == 0x1020 ) &&
			(windowsaltactive || actItem >= 0) ) {
		setWindowsAltMode( FALSE, -1 );
	    }
	}
	 
	if ( qApp && qApp->focusWidget() == this ) {
	    return TRUE;
	}
    }

     
    if ( ((QWidget*)object)->focusWidget() == object ||
	 (object->parent() == 0 && ((QWidget*)object)->focusWidget() == 0) ) {
	if ( windowsaltactive &&
	     event->type() == 7  &&
	     (((QKeyEvent *)event)->key() == 0x1023  ||
	      ((QKeyEvent *)event)->key() == 0x1022 ) ) {
	    actItem = 0;
	    setFocus();
	    if ( object->parent() )
		object->removeEventFilter( this );
	    QWidget * tlw = ((QWidget *)object)->topLevelWidget();
	    if ( tlw ) {
		 
		 
		 
		tlw->removeEventFilter( this );
		tlw->installEventFilter( this );
	    }
	    return TRUE;
	} else if ( (event->type() == 6  ||
		     event->type() == 7 ) &&
		    !(((QKeyEvent *)event)->key() == 0x1023  ||
		      ((QKeyEvent *)event)->key() == 0x1022 ) ) {
	    if ( object->parent() )
		object->removeEventFilter( this );
	    setWindowsAltMode( FALSE, -1 );
	}
    }

     
    if ( windowsaltactive &&
	 event->type() == 9  &&
	 qApp && qApp->focusWidget() != this ) {
	setWindowsAltMode( FALSE, -1 );
	if ( object->parent() )
	    object->removeEventFilter( this );
    }

    return FALSE;				 
}



 




void QMenuBar::subActivated( int id )
{
      activated( id );
}

 




void QMenuBar::subHighlighted( int id )
{
      highlighted( id );
}

 




void QMenuBar::accelActivated( int id )
{
    if ( !isEnabled() )				 
	return;
    QMenuItem *mi = findItem( id );
    if ( mi && mi->isEnabled() ) {
	setActItem( indexOf( id ), FALSE );
	QPopupMenu *popup = mi->popup();
	if ( popup ) {
	      highlighted( mi->id() );
	    if ( popup->isVisible() ) {		 
		popup->hidePopups();
		popup->repaint( FALSE );
	    } else {				 
		hidePopups();
		openActPopup();
		popup->setFirstItemActive();
	    }
	} else {				 
	    setWindowsAltMode( FALSE, -1 );
	    if ( mi->signal() )			 
		mi->signal()->activate();
	      activated( mi->id() );
	}
    }
}


 





void QMenuBar::accelDestroyed()
{
    autoaccel = 0;				 
}


bool QMenuBar::tryMouseEvent( QPopupMenu *popup, QMouseEvent *e )
{
    QPoint pos = mapFromGlobal( popup->mapToGlobal( e->pos() ) );
    if ( !rect().contains( pos ) )		 
	return FALSE;
    int item = itemAtPos( pos );
    if ( item == -1 && (e->type() == 2  ||
			e->type() == 3 ) ) {
	hidePopups();
	goodbye();
	return FALSE;
    }
    QMouseEvent ee( e->type(), pos, e->button(), e->state() );
    event( &ee );
    return TRUE;
}


void QMenuBar::tryKeyEvent( QPopupMenu *, QKeyEvent *e )
{
    event( e );
}


void QMenuBar::goodbye()
{
    setWindowsAltMode( FALSE, -1 );
    mouseBtDn = FALSE;
}


void QMenuBar::openActPopup()
{
    if ( actItem < 0 )
	return;
    setWindowsAltMode( FALSE, actItem );
    QPopupMenu *popup = mitems->at(actItem)->popup();
    if ( !popup || !popup->isEnabled() )
	return;

    QRect  r = itemRect( actItem );
    QPoint pos = r.bottomLeft() + QPoint(0,1);
    if ( popup->badSize )
	popup->updateSize();
    pos = mapToGlobal(pos);
    int sh = QApplication::desktop()->height();
    int ph = popup->height();
    if ( pos.y() + ph > sh ) {
	pos = mapToGlobal( r.topLeft() );
	pos.ry() -= (QCOORD)ph;
    }
    
    if (popup->parentMenu != this ){
	 
	if (popup->parentMenu)
	    popup->parentMenu->menuDelPopup(popup);
	menuInsPopup(popup);
    }

    popup->popup( pos );
}

 




void QMenuBar::hidePopups()
{
    QMenuItemListIt it(*mitems);
    register QMenuItem *mi;
    while ( (mi=it.current()) ) {
	++it;
	if ( mi->popup() )
	    mi->popup()->hide();
    }
}


 




void QMenuBar::show()
{
    setupAccelerators();
    if ( parentWidget() )
	resize( parentWidget()->width(), height() );
    calculateRects();
    QWidget::show();
    raise();
}

 



void QMenuBar::hide()
{
    QWidget::hide();
    setWindowsAltMode( FALSE, -1 );
    hidePopups();
}


 




void QMenuBar::fontChange( const QFont & )
{
    badSize = TRUE;
    repaint();
}


 



 






int QMenuBar::calculateRects( int max_width )
{
    bool update = ( max_width < 0 );

    if ( update ) {
	if ( !badSize )				 
	    return 0;
	if ( irects )		 
	    delete [] irects;
	if ( mitems->isEmpty() ) {
	    irects = 0;
	    return 0;
	}
	irects = new QRect[ mitems->count() ];	 
	(chk_pointer((  irects  )==0,"widgets/qmenubar.cpp",542)) ;
	max_width = width();
    }
    QFontMetrics fm = fontMetrics();
    int max_height = 0;
    int nlitems = 0;				 
    int gs = style();
    int x = motifBarFrame + motifBarHMargin;
    int y = motifBarFrame + motifBarVMargin;
    int i = 0;
    int separator = -1;
    if ( gs == WindowsStyle )	 
	x = y = 2;
    while ( i < (int)mitems->count() ) {	 
	QMenuItem *mi = mitems->at(i);
	int w=0, h=0;
	if ( mi->pixmap() ) {			 
	    w = mi->pixmap()->width();
	    h = mi->pixmap()->height();
	} else if ( mi->text() ) {		 
	    w = fm.width(mi->text()) + 2*motifItemHMargin;
	    h = fm.height() + motifItemVMargin;
	} else if ( mi->isSeparator() ) {	 
	    separator = i;
	}
	if ( !mi->isSeparator() ) {
	    if ( gs == MotifStyle && !mi->isSeparator() ) {
		w += 2*motifItemFrame;
		h += 2*motifItemFrame;
	    }
	    if ( x + w + motifBarFrame - max_width > 0 && nlitems > 0 ) {
		nlitems = 0;
		x = motifBarFrame + motifBarHMargin;
		y += h + motifBarHMargin;
		separator = -1;
	    }
	    if ( y + h + 2*motifBarFrame > max_height )
		max_height = y + h + 2*motifBarFrame;
	}
	if ( update )
	    irects[i].setRect( x, y, w, h );
	x += w;
	nlitems++;
	i++;
    }
    if ( update ) {
	if ( separator >= 0 && style() == MotifStyle ) {
	    int moveBy = max_width - x;
	    while( --i > separator ) {
		irects[i].moveBy( moveBy, 0 );
	    }
	}
	if ( max_height != height() )
	    resize( max_width, max_height );
	badSize = FALSE;
    }
    return max_height;
}

 






int QMenuBar::heightForWidth(int max_width) const
{
     
    if ( max_width < 0 ) max_width = 0;
    return ((QMenuBar*)this)->calculateRects( max_width );
}

 




QRect QMenuBar::itemRect( int index )
{
    calculateRects();
    return irects ? irects[index] : QRect(0,0,0,0);
}

 





int QMenuBar::itemAtPos( const QPoint &pos )
{
    calculateRects();
    if ( !irects )
	return -1;
    int i = 0;
    while ( i < (int)mitems->count() ) {
	if ( irects[i].contains( pos ) ) {
	    QMenuItem *mi = mitems->at(i);
	    return mi->isSeparator() ? -1 : i;
	}
	++i;
    }
    return -1;					 
}


 



 









void QMenuBar::setSeparator( Separator when )
{
    mseparator = when;
}

 


QMenuBar::Separator QMenuBar::separator() const
{
    return mseparator ? InWindowsStyle : Never;
}

 




 



void QMenuBar::drawContents( QPainter *p )
{
    QColorGroup g;
    GUIStyle gs = style();
    bool e;

    for ( int i=0; i<(int)mitems->count(); i++ ) {
	QMenuItem *mi = mitems->at( i );
	if ( mi->text() || mi->pixmap() ) {
	    QRect r = irects[i];
	    e = mi->isEnabled();
	    if ( e )
		g = palette().normal();
	    else
		g = palette().disabled();
		
	    if ( gs == WindowsStyle ) {
		p->fillRect( r, palette().normal().background() );
		if ( i == actItem ) {
		    QBrush b( palette().normal().background() );
		    bool sunken = !windowsaltactive ||
				  (mi->popup() && mi->popup()->isVisible());
		    qDrawShadeRect( p,
				    r.left(), r.top(), r.width(), r.height(),
				    g, sunken, 1, 0, &b );
		    if ( sunken )
			r.setRect( r.left()+2, r.top()+2,
				   r.width()-2, r.height()-2 );
		}
	    } else {  
		if ( i == actItem )  
		    qDrawShadePanel( p, r, palette().normal(), FALSE,
				     motifItemFrame );
		else  
		    qDrawPlainRect( p, r, palette().normal().background(),
				    motifItemFrame );
	    }

	    qDrawItem( p, gs, r.left(), r.top(), r.width(), r.height(),
		       AlignCenter|ShowPrefix|DontClip|SingleLine,
		       g, e, mi->pixmap(), mi->text() );

	}
    }
    if ( mseparator == InWindowsStyle && gs == WindowsStyle ) {
	p->setPen( g.light() );
	p->drawLine( 0, height()-1, width()-1, height()-1 );
	p->setPen( g.dark() );
	p->drawLine( 0, height()-2, width()-1, height()-2 );
    }
}


 



void QMenuBar::mousePressEvent( QMouseEvent *e )
{
    if ( e->button() != LeftButton &&  e->button() != RightButton )
	return;
    mouseBtDn = TRUE;				 
    int item = itemAtPos( e->pos() );
    if ( item == -1 ) {
	setWindowsAltMode( FALSE, -1 );
	return;
    }

    register QMenuItem *mi = mitems->at(item);
    if ( item != actItem )			 
	  highlighted( mi->id() );

    QPopupMenu *popup = mi->popup();
    if ( popup && mi->isEnabled() ) {
	setWindowsAltMode( FALSE, item );
	if ( popup->isVisible() ) {	 
	    popup->hidePopups();
	    popup->repaint( FALSE );
	} else {				 
	    hidePopups();
	    openActPopup();
	}
    } else {
	setWindowsAltMode( FALSE, item );
	hidePopups();
    }
}


 



void QMenuBar::mouseReleaseEvent( QMouseEvent *e )
{
    if ( e->button() != LeftButton &&  e->button() != RightButton )
	return;
    mouseBtDn = FALSE;				 
    int item = itemAtPos( e->pos() );
    if ( item >= 0 && !mitems->at(item)->isEnabled() ||
	 actItem >= 0 && !mitems->at(actItem)->isEnabled() ) {
	setWindowsAltMode( FALSE, -1 );
	hidePopups();
	return;
    }
    if ( actItem == -1 || item != actItem )	 
	return;
    setActItem( item, FALSE );
    if ( actItem >= 0 ) {			 
	QMenuItem  *mi = mitems->at(actItem);
	QPopupMenu *popup = mi->popup();
	if ( popup ) {
	    if (!hasMouseTracking() )
		popup->setFirstItemActive();
	} else {				 
	    setWindowsAltMode( FALSE, -1 );
	    if ( mi->signal() )			 
		mi->signal()->activate();
	      activated( mi->id() );
	}
    }
}


 



void QMenuBar::mouseMoveEvent( QMouseEvent *e )
{
    if ( style() == WindowsStyle && !mouseBtDn ) {
	int item = itemAtPos( e->pos() );
	QMenuItem *mi = actItem < 0 ? 0 : mitems->at(actItem);
	if ( item != actItem &&
	     (!mi || !mi->popup() || !mi->popup()->isVisible()) ) {
	    if ( item >= 0 ) {
		setWindowsAltMode( TRUE, item );
		mi = mitems->at( item );
		  highlighted( mi->id() );
	    } else if (actItem >= 0 && irects ) {
		QRect r( irects[actItem].left(), irects[actItem].top()-4,
			 irects[actItem].width(),irects[actItem].height()+8 );
		if ( !r.contains(e->pos()) )
		    setWindowsAltMode( FALSE, -1 );
	    } else {
		setWindowsAltMode( FALSE, -1 );
	    }
	    return;
	}
    }

    if ( actItem < 0 && !mouseBtDn )
	return;

    int item = itemAtPos( e->pos() );
    if ( item == -1 )
	return;
    register QMenuItem *mi = mitems->at(item);
    if ( item != actItem ) {			 
	setActItem( item, FALSE );
	hidePopups();
	  highlighted( mi->id() );
	if ( mi->popup() && mi->isEnabled() )
	    openActPopup();
    }
}


 


void QMenuBar::leaveEvent( QEvent * e )
{
    if ( windowsaltactive && actItem >= 0 ) {
	QMenuItem *mi = mitems->at( actItem );
	if ( mi && (!mi->popup() || !mi->popup()->isVisible()) )
	    setWindowsAltMode( FALSE, -1 );
    }
    QFrame::leaveEvent( e );
}


 



void QMenuBar::keyPressEvent( QKeyEvent *e )
{
    if ( actItem < 0 )
	return;

    QMenuItem  *mi = 0;
    QPopupMenu *popup;
    int d = 0;

    switch ( e->key() ) {
    case 0x1012 :
	d = -1;
	break;

    case 0x1014 :
	d = 1;
	break;

    case 0x1013 :
    case 0x1015 :
	if ( style() == WindowsStyle ) {
	    mi = mitems->at( actItem );
	    popup = mi->popup();
	    if ( popup && mi->isEnabled() ) {
		windowsaltactive = 0;
		hidePopups();
		popup->setFirstItemActive();
		openActPopup();
		repaint( FALSE );
	    }
	}
	break;

    case 0x1000 :
	setWindowsAltMode( FALSE, -1 );
	break;
    }

    if ( d ) {					 
	register int i = actItem;
	int c = mitems->count();
	int n = c;
	while ( n-- ) {
	    i = i + d;
	    if ( i == c )
		i = 0;
	    else if ( i < 0 )
		i = c - 1;
	    mi = mitems->at( i );
	     
	     
	    if (   mi->isEnabled()  
		 && !mi->isSeparator() )
		break;
	}
	if ( i != actItem ) {
	    setActItem( i, FALSE );
	    if ( !windowsaltactive ) {
		hidePopups();
		popup = mi->popup();
		if ( popup && mi->isEnabled() ) {
		    popup->setFirstItemActive();
		    openActPopup();
		} else {
		      highlighted( mi->id() );
		}
	    }
	}
    } else if ( !e->state() && e->key() >= 0x30  && e->key() <= 0x5a  ) {
	char c = '0' + e->key() - 0x30 ;

	QMenuItemListIt it(*mitems);
	register QMenuItem *m;
	int indx = 0;
	while ( (m=it.current()) ) {
	    ++it;
	    QString s = m->text();
	    if ( !s.isEmpty() ) {
		int i = s.find( '&' );
		if ( i >= 0 && (__ctype_b[(int) ( ( s[i+1] ) )] & (unsigned short int)   _ISalnum )   ) {
		    int k = s[i+1];
		    if ( toupper(k) == c ) {
			mi = m;
			break;
		    }
		}
	    }
	    indx++;
	}
	if ( mi ) {
	    setWindowsAltMode( FALSE, indx );
	    hidePopups();
	    popup = mi->popup();
	    if ( popup && mi->isEnabled() ) {
		popup->setFirstItemActive();
		openActPopup();
	    } else {
		  highlighted( mi->id() );
	    }
	}
    }
}


 



void QMenuBar::resizeEvent( QResizeEvent * )
{
    badSize = TRUE;
    calculateRects();
}


 





void QMenuBar::setActItem( int i, bool clear )
{
    if ( i == actItem )
	return;

    if ( i < 0 || actItem < 0 ) {
	 
	int n = ((  actItem ) > (  i  ) ? (  actItem ) : (  i  )) ;
	actItem = i;
	if ( irects )
	    repaint( irects[n], clear );
    } else if ( (( i-actItem ) >= 0  ? ( i-actItem ) : -( i-actItem ))  == 1 ) {
	 
	int o = actItem;
	actItem = i;
	if ( irects )
	    repaint( irects[i].unite( irects[o] ), clear );
    } else {
	 
	int o = actItem;
	actItem = i;
	if ( irects ) {
	    repaint( irects[o], clear );
	    repaint( irects[i], clear );
	}
    }
}


 







void QMenuBar::setWindowsAltMode( bool enable, int index )
{
    if ( enable ) {
	if ( !windowsaltactive ) {
	    windowsaltactive = 1;
	    if ( style() == WindowsStyle )
		setFocus();
	}
	if ( index == actItem )  
	    actItem = -1;
	setActItem( index, FALSE );
    } else {
	if ( windowsaltactive ) {
	    if ( style() == WindowsStyle && focusWidget() )
		focusWidget()->setFocus();
	    windowsaltactive = 0;
	}
	if ( index == actItem )  
	    actItem = -1;
	setActItem( index, FALSE );
    }
}


 

void QMenuBar::setupAccelerators()
{
    delete autoaccel;

    QMenuItemListIt it(*mitems);
    register QMenuItem *mi;
    while ( (mi=it.current()) ) {
	++it;
	QString s = mi->text();
	if ( !s.isEmpty() ) {
	    int i = s.find( '&' );
	    if ( i >= 0 && (__ctype_b[(int) ( ( s[i+1] ) )] & (unsigned short int)   _ISalnum )   ) {
		int k = s[i+1];
		if ( (__ctype_b[(int) ( ( k ) )] & (unsigned short int)   _ISalpha )   )
		    k = toupper(k) - 'A' + 0x41 ;
		if ( !autoaccel ) {
		    autoaccel = new QAccel( this );
		    (chk_pointer((  autoaccel  )==0,"widgets/qmenubar.cpp",1072)) ;
		    connect( autoaccel, "2""activated(int)" ,
			     "1""accelActivated(int)"  );
		    connect( autoaccel, "2""destroyed()" ,
			     "1""accelDestroyed()"  );
		}
		autoaccel->insertItem( ALT+k, mi->id() );
	    }
	}
	if ( mi->popup() ) {
	    mi->popup()->updateAccel( this );
	    if ( !mi->popup()->isEnabled() )
		mi->popup()->enableAccel( FALSE );
	}
    }
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]