00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef QXEMBED_H
00023 #define QXEMBED_H
00024
00025 #include <qwidget.h>
00026
00027 #ifndef Q_WS_QWS
00028
00029
00030
00031
00032
00033
00034 class QXEmbedData;
00035
00061 class QXEmbed : public QWidget
00062 {
00063 Q_OBJECT
00064
00065 public:
00066
00074 QXEmbed( QWidget *parent=0, const char *name=0, WFlags f = 0 );
00075
00079 ~QXEmbed();
00080
00088 static void initialize();
00089
00090 enum Protocol { XEMBED, XPLAIN };
00091
00106 void setProtocol( Protocol proto );
00107
00114 Protocol protocol();
00115
00129 void embed( WId w );
00130
00137 WId embeddedWinId() const;
00138
00147 static void embedClientIntoWindow( QWidget* client, WId window );
00148
00159 static bool processClientCmdline( QWidget* client, int& argc, char ** argv );
00160
00161
00165 QSize sizeHint() const;
00166
00170 QSize minimumSizeHint() const;
00171
00176 QSizePolicy sizePolicy() const;
00177
00178 bool eventFilter( QObject *, QEvent * );
00179
00180 void setAutoDelete( bool );
00181 bool autoDelete() const;
00182
00183 bool customWhatsThis() const;
00184 void enterWhatsThisMode();
00185
00186 signals:
00192 void embeddedWindowDestroyed();
00193
00194 protected:
00195 bool event( QEvent * );
00196 void keyPressEvent( QKeyEvent * );
00197 void keyReleaseEvent( QKeyEvent * );
00198 void focusInEvent( QFocusEvent * );
00199 void focusOutEvent( QFocusEvent * );
00200 void resizeEvent(QResizeEvent *);
00201 void showEvent( QShowEvent * );
00202 bool x11Event( XEvent* );
00203
00211 virtual void windowChanged( WId w );
00212
00213 bool focusNextPrevChild( bool next );
00214
00215 private:
00216 WId window;
00217 QXEmbedData* d;
00218 void checkGrab();
00219 void sendSyntheticConfigureNotifyEvent();
00220 };
00221
00222
00223 #endif
00224 #endif