diff options
Diffstat (limited to 'kdeui/qxembed.h')
-rw-r--r-- | kdeui/qxembed.h | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/kdeui/qxembed.h b/kdeui/qxembed.h deleted file mode 100644 index c9dcac05d..000000000 --- a/kdeui/qxembed.h +++ /dev/null @@ -1,244 +0,0 @@ -/**************************************************************************** - Definition of QXEmbed class - - Copyright (C) 1999-2000 Troll Tech AS - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*****************************************************************************/ - -#ifndef QXEMBED_H -#define QXEMBED_H - -#include <tqwidget.h> -#include <kdelibs_export.h> - -#ifdef Q_MOC_RUN -#define Q_WS_X11 -#endif // Q_MOC_RUN - -#ifdef Q_WS_X11 - -class QXEmbedData; - -/** - * A QXEmbed widget serves as an embedder that can manage one single embedded - * X-window. These so-called client windows can be arbitrary Qt or non Qt - * applications. - * - * There are two different ways of using QXEmbed, - * from the client side or from the embedder's side. - * - * Embedding from the client's side requires that the client knows the - * window identifier of the respective embedder widget. Use either - * embedClientIntoWindow() or the high-level wrapper processClientCmdline(). - * This is only possible when the client is a Qt application. - * - * When using it from the embedder's side, you must know the window - * identifier of the window that should be embedded. Simply call embed() - * with this identifier as parameter. If the client is a Qt application, - * make sure it has called QXEmbed::initialize(). Otherwise you should - * probably call setProtocol(XPLAIN) before embed(). - * - * Reimplement the change handler windowChanged() to catch embedding or - * the destruction of embedded windows. In the latter case, the - * embedder also emits a signal embeddedWindowDestroyed() for - * convenience. - * - * @short The QXEmbed widget is a graphical socket that can embed an external X-Window. -*/ -class KDEUI_EXPORT QXEmbed : public TQWidget -{ - Q_OBJECT - TQ_OBJECT - -public: - - /** - * - * Constructs a xembed widget. - * - * The parent, name and f arguments are passed to the QFrame - * constructor. - */ - QXEmbed( TQWidget *parent=0, const char *name=0, WFlags f = 0 ); - - /** - * Destructor. Cleans up the focus if necessary. - */ - ~QXEmbed(); - - /** - * Embedded applications should call this function to make sure - * they support the XEMBED protocol. It is called automatically - * when you use embedClientIntoWindow() or - * processClientCmdline(). Clients might have to call it - * manually when you use embed(). - */ - static void initialize(); - - enum Protocol { XEMBED, XPLAIN }; - - /** - * Sets the protocol used for embedding windows. - * This function must be called before embedding a window. - * Protocol XEMBED provides maximal functionality (focus, tabs, etc) - * but requires explicit cooperation from the embedded window. - * Protocol XPLAIN provides maximal compatibility with - * embedded applications that do not support the XEMBED protocol. - * The default is XEMBED. - * - * Non KDE applications should be embedded with protocol XPLAIN. - * This does not happen automatically yet. - * You must call setProtocol() explicitly. - */ - - void setProtocol( Protocol proto ); - - /** - * Returns the protocol used for embedding the current window. - * - * @return the protocol used by QXEmbed. - */ - - Protocol protocol(); - - /** - * Embeds the window with the identifier w into this xembed widget. - * - * This function is useful if the embedder knows about the client window - * that should be embedded. Often it is vice versa: the client knows - * about its target embedder. In that case, it is not necessary to call - * embed(). Instead, the client will call the static function - * embedClientIntoWindow(). - * - * @param w the identifier of the window to embed - * @see embeddedWinId() - */ - void embed( WId w ); - - /** - * Returns the window identifier of the embedded window, or 0 if no - * window is embedded yet. - * - * @return the id of the embedded window (0 if no window is embedded) - */ - WId embeddedWinId() const; - - /** - * A function for clients that embed themselves. The widget - * client will be embedded in the window window. The application has - * to ensure that window is the handle of the window identifier of - * an QXEmbed widget. - * - * @short #processClientCmdline() - */ - static void embedClientIntoWindow( TQWidget* client, WId window ); - - /** - * A utility function for clients that embed theirselves. The widget - * client will be embedded in the window that is passed as - * -embed command line argument. - * - * The function returns true on success or false if no such command line - * parameter is specified. - * - * @see embedClientIntoWindow() - */ - static bool processClientCmdline( TQWidget* client, int& argc, char ** argv ); - - /** - * Sends a WM_DELETE_WINDOW message to the embedded window. This is what - * typically happens when you click on the close button of a window - * manager decoration. This should cause the embedded application to - * cleanly close the window. Signal embeddedWindowDestroyed() can be used - * to monitor the status of the embedded window. - */ - void sendDelete( void ); - - /** - * Selects what shoud be done with the embedded window when the embedding - * window is destroyed. When the argument is true, the embedded window is - * kept alive, is hidden, and receives a WM_DELETE_WINDOW message using - * sendDelete(). This is the default. Otherwise, the destruction of the - * QXEmbed object simply destroys the embedded window. - * - * @see sendDelete() - */ - void setAutoDelete( bool ); - - /** - * Returns the value of flag indicating what shoud be done with the - * embedded window when the embedding window is destroyed. - * - * @see setAutoDelete() - */ - bool autoDelete() const; - - /* Reimp */ - TQSize tqsizeHint() const; - TQSize tqminimumSizeHint() const; - TQSizePolicy sizePolicy() const; - bool eventFilter( TQObject *, TQEvent * ); - bool customWhatsThis() const; - void enterWhatsThisMode(); // temporary, fix in Qt (Matthias, Mon Jul 17 15:20:55 CEST 2000 ) - virtual void reparent( TQWidget * parent, WFlags f, const TQPoint & p, bool showIt = false ); - - /** - * @internal - */ - void updateEmbeddedFocus( bool hasfocus ); - -signals: - /** - * This signal is emitted when the embedded window has been lost (destroyed or reparented away) - * - * @see embeddedWinId() - */ - // KDE4 rename to embeddedWindowLost() - void embeddedWindowDestroyed(); - -protected: - bool event( TQEvent * ); - void keyPressEvent( TQKeyEvent * ); - void keyReleaseEvent( TQKeyEvent * ); - void focusInEvent( TQFocusEvent * ); - void focusOutEvent( TQFocusEvent * ); - void resizeEvent(TQResizeEvent *); - void showEvent( TQShowEvent * ); - bool x11Event( XEvent* ); - - /** - * A change handler that indicates that the embedded window has been - * changed. The window handle can also be retrieved with - * embeddedWinId(). - * - * @param w the handle of the window that changed - */ - virtual void windowChanged( WId w ); - - bool focusNextPrevChild( bool next ); - -private: - WId window; - QXEmbedData* d; - void checkGrab(); - void sendSyntheticConfigureNotifyEvent(); - void handleEmbed(); -}; - - -#endif -#endif |