Home

qtxembed.h

This is the verbatim text of the qtxembed.h include file. It is provided only for illustration; the copyright remains with Trolltech.


#ifndef QTXEMBED_H
#define QTXEMBED_H
#include <qguardedptr.h>
#include <qwidget.h>
#include <X11/Xlib.h>

class QtXEmbedClient : public QWidget
{
    Q_OBJECT
public:
    QtXEmbedClient(QWidget *parent = 0, const char *name = 0);
    ~QtXEmbedClient();

    void embedInto(WId id);
    WId containerWinId() const;

    enum Errors {
	Unknown = 0,
	Internal = 1,
	InvalidWindowID = 2
    };
    
signals:
    void embedded();
    void containerClosed();
    void error(int);
    
protected:
    bool x11Event(XEvent *);
    bool eventFilter(QObject *, QEvent *);
    
    void setEmbedded();
private:
    int focusOriginator;

    WId container;
    QGuardedPtr<QWidget> currentFocus;
};

class QtXEmbedContainer : public QWidget
{
    Q_OBJECT
public:
    QtXEmbedContainer(QWidget *parent = 0, const char *name = 0);
    ~QtXEmbedContainer();
        
    void embed(WId id, bool xEmbedClient = true);
    void discardClient();

    WId clientWinId() const;

    QSize minimumSizeHint() const;
    
    enum Errors {
	Unknown = 0,
	Internal = 1,
	InvalidWindowID = 2
    };

signals:
    void clientIsEmbedded();
    void clientClosed();
    void error(int);
    
protected:
    bool x11Event(XEvent *);
    bool eventFilter(QObject *, QEvent *);
    void paintEvent(QPaintEvent *e);
    void resizeEvent(QResizeEvent *);
    void showEvent(QShowEvent *);
    void hideEvent(QHideEvent *);
    
    bool isEmbedded() const;
    void moveInputToProxy();

    void acceptClient(WId window);
    void rejectClient(WId window);

    void checkGrab();
    
    WId topLevelParentWinId() const;

private:    
    WId client;
    QWidget *focusProxy;
    bool clientIsXEmbed;
    bool xgrab;
    QRect clientOriginalRect;
};

#endif

Copyright © 2003 TrolltechTrademarks
Qt Solutions