kdeui
qxembed.h
Go to the documentation of this file. 00001 /****************************************************************************
00002 Definition of QXEmbed class
00003
00004 Copyright (C) 1999-2000 Troll Tech AS
00005
00006 This library is free software; you can redistribute it and/or
00007 modify it under the terms of the GNU Library General Public
00008 License as published by the Free Software Foundation; either
00009 version 2 of the License, or (at your option) any later version.
00010
00011 This library is distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00014 Library General Public License for more details.
00015
00016 You should have received a copy of the GNU Library General Public License
00017 along with this library; see the file COPYING.LIB. If not, write to
00018 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019 Boston, MA 02110-1301, USA.
00020 *****************************************************************************/
00021
00022 #ifndef QXEMBED_H
00023 #define QXEMBED_H
00024
00025 #include <qwidget.h>
00026 #include <kdelibs_export.h>
00027
00028 #ifdef Q_WS_X11
00029
00030 class QXEmbedData;
00031
00058 class KDEUI_EXPORT QXEmbed : public QWidget
00059 {
00060 Q_OBJECT
00061
00062 public:
00063
00071 QXEmbed( QWidget *parent=0, const char *name=0, WFlags f = 0 );
00072
00076 ~QXEmbed();
00077
00085 static void initialize();
00086
00087 enum Protocol { XEMBED, XPLAIN };
00088
00103 void setProtocol( Protocol proto );
00104
00111 Protocol protocol();
00112
00125 void embed( WId w );
00126
00133 WId embeddedWinId() const;
00134
00143 static void embedClientIntoWindow( QWidget* client, WId window );
00144
00155 static bool processClientCmdline( QWidget* client, int& argc, char ** argv );
00156
00164 void sendDelete( void );
00165
00175 void setAutoDelete( bool );
00176
00183 bool autoDelete() const;
00184
00185 /* Reimp */
00186 QSize sizeHint() const;
00187 QSize minimumSizeHint() const;
00188 QSizePolicy sizePolicy() const;
00189 bool eventFilter( QObject *, QEvent * );
00190 bool customWhatsThis() const;
00191 void enterWhatsThisMode(); // temporary, fix in Qt (Matthias, Mon Jul 17 15:20:55 CEST 2000 )
00192 virtual void reparent( QWidget * parent, WFlags f, const QPoint & p, bool showIt = false );
00193
00194 signals:
00200 // KDE4 rename to embeddedWindowLost()
00201 void embeddedWindowDestroyed();
00202
00203 protected:
00204 bool event( QEvent * );
00205 void keyPressEvent( QKeyEvent * );
00206 void keyReleaseEvent( QKeyEvent * );
00207 void focusInEvent( QFocusEvent * );
00208 void focusOutEvent( QFocusEvent * );
00209 void resizeEvent(QResizeEvent *);
00210 void showEvent( QShowEvent * );
00211 bool x11Event( XEvent* );
00212
00220 virtual void windowChanged( WId w );
00221
00222 bool focusNextPrevChild( bool next );
00223
00224 private:
00225 WId window;
00226 QXEmbedData* d;
00227 void checkGrab();
00228 void sendSyntheticConfigureNotifyEvent();
00229 void handleEmbed();
00230 };
00231
00232
00233 #endif
00234 #endif