qxembed.h

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 };
00230 
00231 
00232 #endif
00233 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys