Qt 4.8
Public Types | Signals | Public Functions | Protected Functions | List of all members
QX11EmbedWidget Class Reference

The QX11EmbedWidget class provides an XEmbed client widget. More...

#include <qx11embed_x11.h>

Inheritance diagram for QX11EmbedWidget:
QWidget QObject QPaintDevice

Public Types

enum  Error { Unknown, Internal, InvalidWindowID }
 
- Public Types inherited from QWidget
enum  RenderFlag { DrawWindowBackground = 0x1, DrawChildren = 0x2, IgnoreMask = 0x4 }
 This enum describes how to render the widget when calling QWidget::render(). More...
 
- Public Types inherited from QPaintDevice
enum  PaintDeviceMetric {
  PdmWidth = 1, PdmHeight, PdmWidthMM, PdmHeightMM,
  PdmNumColors, PdmDepth, PdmDpiX, PdmDpiY,
  PdmPhysicalDpiX, PdmPhysicalDpiY
}
 

Signals

void containerClosed ()
 This signal is emitted by the client widget when the container closes the widget. More...
 
void embedded ()
 This signal is emitted by the widget that has been embedded by an XEmbed container. More...
 
void error (QX11EmbedWidget::Error error)
 This signal is emitted if an error occurred as a result of embedding into or communicating with a container. More...
 
- Signals inherited from QWidget
void customContextMenuRequested (const QPoint &pos)
 This signal is emitted when the widget's contextMenuPolicy is Qt::CustomContextMenu, and the user has requested a context menu on the widget. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 

Public Functions

WId containerWinId () const
 If the widget is embedded, returns the window ID of the container; otherwize returns 0. More...
 
void embedInto (WId id)
 When this function is called, the widget embeds itself into the container whose window ID is id. More...
 
Error error () const
 Returns the type of error that occurred last. More...
 
 QX11EmbedWidget (QWidget *parent=0)
 Constructs a QX11EmbedWidget object with the given parent. More...
 
 ~QX11EmbedWidget ()
 Destructs the QX11EmbedWidget object. More...
 
- Public Functions inherited from QWidget
bool acceptDrops () const
 
QString accessibleDescription () const
 
QString accessibleName () const
 
QList< QAction * > actions () const
 Returns the (possibly empty) list of this widget's actions. More...
 
void activateWindow ()
 Sets the top-level widget containing this widget to be the active window. More...
 
void addAction (QAction *action)
 Appends the action action to this widget's list of actions. More...
 
void addActions (QList< QAction *> actions)
 Appends the actions actions to this widget's list of actions. More...
 
void adjustSize ()
 Adjusts the size of the widget to fit its contents. More...
 
bool autoFillBackground () const
 
QPalette::ColorRole backgroundRole () const
 Returns the background role of the widget. More...
 
QSize baseSize () const
 
QWidgetchildAt (int x, int y) const
 Returns the visible child widget at the position ({x}, {y}) in the widget's coordinate system. More...
 
QWidgetchildAt (const QPoint &p) const
 Returns the visible child widget at point p in the widget's own coordinate system. More...
 
QRect childrenRect () const
 
QRegion childrenRegion () const
 
void clearFocus ()
 Takes keyboard input focus from the widget. More...
 
void clearMask ()
 Removes any mask set by setMask(). More...
 
QMargins contentsMargins () const
 The contentsMargins function returns the widget's contents margins. More...
 
QRect contentsRect () const
 Returns the area inside the widget's margins. More...
 
Qt::ContextMenuPolicy contextMenuPolicy () const
 
void createWinId ()
 
QCursor cursor () const
 
int devType () const
 
WId effectiveWinId () const
 Returns the effective window system identifier of the widget, i. More...
 
void ensurePolished () const
 Ensures that the widget has been polished by QStyle (i.e., has a proper font and palette). More...
 
Qt::FocusPolicy focusPolicy () const
 
QWidgetfocusProxy () const
 Returns the focus proxy, or 0 if there is no focus proxy. More...
 
QWidgetfocusWidget () const
 Returns the last child of this widget that setFocus had been called on. More...
 
const QFontfont () const
 
QFontInfo fontInfo () const
 Returns the font info for the widget's current font. More...
 
QFontMetrics fontMetrics () const
 Returns the font metrics for the widget's current font. More...
 
QPalette::ColorRole foregroundRole () const
 Returns the foreground role. More...
 
QRect frameGeometry () const
 
QSize frameSize () const
 
const QRectgeometry () const
 
void getContentsMargins (int *left, int *top, int *right, int *bottom) const
 Returns the widget's contents margins for left, top, right, and bottom. More...
 
HDC getDC () const
 Returns the window system handle of the widget, for low-level access. More...
 
void grabGesture (Qt::GestureType type, Qt::GestureFlags flags=Qt::GestureFlags())
 Subscribes the widget to a given gesture with specific flags. More...
 
void grabKeyboard ()
 Grabs the keyboard input. More...
 
void grabMouse ()
 Grabs the mouse input. More...
 
void grabMouse (const QCursor &)
 
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context=Qt::WindowShortcut)
 Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context. More...
 
QGraphicsEffectgraphicsEffect () const
 The graphicsEffect function returns a pointer to the widget's graphics effect. More...
 
QGraphicsProxyWidgetgraphicsProxyWidget () const
 Returns the proxy widget for the corresponding embedded widget in a graphics view; otherwise returns 0. More...
 
bool hasFocus () const
 
bool hasMouseTracking () const
 
int height () const
 
virtual int heightForWidth (int) const
 Returns the preferred height for this widget, given the width w. More...
 
QInputContextinputContext ()
 This function returns the QInputContext for this widget. More...
 
Qt::InputMethodHints inputMethodHints () const
 
virtual QVariant inputMethodQuery (Qt::InputMethodQuery) const
 This method is only relevant for input widgets. More...
 
void insertAction (QAction *before, QAction *action)
 Inserts the action action to this widget's list of actions, before the action before. More...
 
void insertActions (QAction *before, QList< QAction *> actions)
 Inserts the actions actions to this widget's list of actions, before the action before. More...
 
WId internalWinId () const
 Returns the window system identifier of the widget, or 0 if the widget is not created yet. More...
 
bool isActiveWindow () const
 
bool isAncestorOf (const QWidget *child) const
 Returns true if this widget is a parent, (or grandparent and so on to any level), of the given child, and both widgets are within the same window; otherwise returns false. More...
 
bool isEnabled () const
 
bool isEnabledTo (QWidget *) const
 Returns true if this widget would become enabled if ancestor is enabled; otherwise returns false. More...
 
bool isEnabledToTLW () const
 This function is deprecated. More...
 
bool isFullScreen () const
 
bool isHidden () const
 Returns true if the widget is hidden, otherwise returns false. More...
 
bool isLeftToRight () const
 
bool isMaximized () const
 
bool isMinimized () const
 
bool isModal () const
 
bool isRightToLeft () const
 
bool isTopLevel () const
 Use isWindow() instead. More...
 
bool isVisible () const
 
bool isVisibleTo (QWidget *) const
 Returns true if this widget would become visible if ancestor is shown; otherwise returns false. More...
 
bool isWindow () const
 Returns true if the widget is an independent window, otherwise returns false. More...
 
bool isWindowModified () const
 
QLayoutlayout () const
 Returns the layout manager that is installed on this widget, or 0 if no layout manager is installed. More...
 
Qt::LayoutDirection layoutDirection () const
 
QLocale locale () const
 
Qt::HANDLE macCGHandle () const
 Returns the CoreGraphics handle of the widget. More...
 
Qt::HANDLE macQDHandle () const
 Returns the QuickDraw handle of the widget. More...
 
QPoint mapFrom (QWidget *, const QPoint &) const
 Translates the widget coordinate pos from the coordinate system of parent to this widget's coordinate system. More...
 
QPoint mapFromGlobal (const QPoint &) const
 Translates the global screen coordinate pos to widget coordinates. More...
 
QPoint mapFromParent (const QPoint &) const
 Translates the parent widget coordinate pos to widget coordinates. More...
 
QPoint mapTo (QWidget *, const QPoint &) const
 Translates the widget coordinate pos to the coordinate system of parent. More...
 
QPoint mapToGlobal (const QPoint &) const
 Translates the widget coordinate pos to global screen coordinates. More...
 
QPoint mapToParent (const QPoint &) const
 Translates the widget coordinate pos to a coordinate in the parent widget. More...
 
QRegion mask () const
 Returns the mask currently set on a widget. More...
 
int maximumHeight () const
 
QSize maximumSize () const
 
int maximumWidth () const
 
int minimumHeight () const
 
QSize minimumSize () const
 
virtual QSize minimumSizeHint () const
 
int minimumWidth () const
 
void move (int x, int y)
 This corresponds to move(QPoint(x, y)). More...
 
void move (const QPoint &)
 
QWidgetnativeParentWidget () const
 Returns the native parent for this widget, i. More...
 
QWidgetnextInFocusChain () const
 Returns the next widget in this widget's focus chain. More...
 
QRect normalGeometry () const
 
void overrideWindowFlags (Qt::WindowFlags type)
 Sets the window flags for the widget to flags, without telling the window system. More...
 
void overrideWindowState (Qt::WindowStates state)
 
QPaintEnginepaintEngine () const
 Returns the widget's paint engine. More...
 
const QPalettepalette () const
 
QWidgetparentWidget () const
 Returns the parent of this widget, or 0 if it does not have any parent widget. More...
 
QPoint pos () const
 
QWidgetpreviousInFocusChain () const
 The previousInFocusChain function returns the previous widget in this widget's focus chain. More...
 
 QWidget (QWidget *parent=0, Qt::WindowFlags f=0)
 Constructs a widget which is a child of parent, with widget flags set to f. More...
 
QRect rect () const
 
void releaseDC (HDC) const
 Releases the HDC hdc acquired by a previous call to getDC(). More...
 
void releaseKeyboard ()
 Releases the keyboard grab. More...
 
void releaseMouse ()
 Releases the mouse grab. More...
 
void releaseShortcut (int id)
 Removes the shortcut with the given id from Qt's shortcut system. More...
 
void removeAction (QAction *action)
 Removes the action action from this widget's list of actions. More...
 
void render (QPaintDevice *target, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 Renders the sourceRegion of this widget into the target using renderFlags to determine how to render. More...
 
void render (QPainter *painter, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 Renders the widget into the painter's QPainter::device(). More...
 
void repaint (int x, int y, int w, int h)
 This version repaints a rectangle (x, y, w, h) inside the widget. More...
 
void repaint (const QRect &)
 This version repaints a rectangle rect inside the widget. More...
 
void repaint (const QRegion &)
 This version repaints a region rgn inside the widget. More...
 
void resize (int w, int h)
 This corresponds to resize(QSize(w, h)). More...
 
void resize (const QSize &)
 
bool restoreGeometry (const QByteArray &geometry)
 Restores the geometry and state top-level widgets stored in the byte array geometry. More...
 
QByteArray saveGeometry () const
 Saves the current geometry and state for top-level widgets. More...
 
void scroll (int dx, int dy)
 Scrolls the widget including its children dx pixels to the right and dy downward. More...
 
void scroll (int dx, int dy, const QRect &)
 This version only scrolls r and does not move the children of the widget. More...
 
void setAcceptDrops (bool on)
 
void setAccessibleDescription (const QString &description)
 
void setAccessibleName (const QString &name)
 
void setAttribute (Qt::WidgetAttribute, bool on=true)
 Sets the attribute attribute on this widget if on is true; otherwise clears the attribute. More...
 
void setAutoFillBackground (bool enabled)
 
void setBackgroundRole (QPalette::ColorRole)
 Sets the background role of the widget to role. More...
 
void setBaseSize (const QSize &)
 
void setBaseSize (int basew, int baseh)
 This corresponds to setBaseSize(QSize(basew, baseh)). More...
 
void setContentsMargins (int left, int top, int right, int bottom)
 Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom. More...
 
void setContentsMargins (const QMargins &margins)
 The setContentsMargins function sets the margins around the widget's contents. More...
 
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
 
void setCursor (const QCursor &)
 
void setFixedHeight (int h)
 Sets both the minimum and maximum heights of the widget to h without changing the widths. More...
 
void setFixedSize (const QSize &)
 Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking. More...
 
void setFixedSize (int w, int h)
 Sets the width of the widget to w and the height to h. More...
 
void setFixedWidth (int w)
 Sets both the minimum and maximum width of the widget to w without changing the heights. More...
 
void setFocus (Qt::FocusReason reason)
 Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. More...
 
void setFocusPolicy (Qt::FocusPolicy policy)
 
void setFocusProxy (QWidget *)
 Sets the widget's focus proxy to widget w. More...
 
void setFont (const QFont &)
 Use the single-argument overload instead. More...
 
void setForegroundRole (QPalette::ColorRole)
 Sets the foreground role of the widget to role. More...
 
void setGeometry (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setGeometry(QRect(x, y, w, h)). More...
 
void setGeometry (const QRect &)
 
void setGraphicsEffect (QGraphicsEffect *effect)
 The setGraphicsEffect function is for setting the widget's graphics effect. More...
 
void setInputContext (QInputContext *)
 This function sets the input context context on this widget. More...
 
void setInputMethodHints (Qt::InputMethodHints hints)
 
void setLayout (QLayout *)
 Sets the layout manager for this widget to layout. More...
 
void setLayoutDirection (Qt::LayoutDirection direction)
 
void setLocale (const QLocale &locale)
 
void setMask (const QBitmap &)
 Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. More...
 
void setMask (const QRegion &)
 Causes only the parts of the widget which overlap region to be visible. More...
 
void setMaximumHeight (int maxh)
 
void setMaximumSize (const QSize &)
 
void setMaximumSize (int maxw, int maxh)
 This function corresponds to setMaximumSize(QSize(maxw, maxh)). More...
 
void setMaximumWidth (int maxw)
 
void setMinimumHeight (int minh)
 
void setMinimumSize (const QSize &)
 
void setMinimumSize (int minw, int minh)
 This function corresponds to setMinimumSize(QSize(minw, minh)). More...
 
void setMinimumWidth (int minw)
 
void setMouseTracking (bool enable)
 
void setPalette (const QPalette &)
 Use the single-argument overload instead. More...
 
void setParent (QWidget *parent)
 Sets the parent of the widget to parent, and resets the window flags. More...
 
void setParent (QWidget *parent, Qt::WindowFlags f)
 This function also takes widget flags, f as an argument. More...
 
void setShortcutAutoRepeat (int id, bool enable=true)
 If enable is true, auto repeat of the shortcut with the given id is enabled; otherwise it is disabled. More...
 
void setShortcutEnabled (int id, bool enable=true)
 If enable is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled. More...
 
void setSizeIncrement (const QSize &)
 
void setSizeIncrement (int w, int h)
 Sets the x (width) size increment to w and the y (height) size increment to h. More...
 
void setSizePolicy (QSizePolicy)
 
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
 Sets the size policy of the widget to horizontal and vertical, with standard stretch and no height-for-width. More...
 
void setStatusTip (const QString &)
 
void setStyle (QStyle *)
 Sets the widget's GUI style to style. More...
 
void setToolTip (const QString &)
 
void setUpdatesEnabled (bool enable)
 
void setupUi (QWidget *widget)
 Sets up the user interface for the specified widget. More...
 
void setWhatsThis (const QString &)
 
void setWindowFilePath (const QString &filePath)
 
void setWindowFlags (Qt::WindowFlags type)
 
void setWindowIcon (const QIcon &icon)
 
void setWindowIconText (const QString &)
 
void setWindowModality (Qt::WindowModality windowModality)
 
void setWindowOpacity (qreal level)
 
void setWindowRole (const QString &)
 Sets the window's role to role. More...
 
void setWindowState (Qt::WindowStates state)
 Sets the window state to windowState. More...
 
void setWindowSurface (QWindowSurface *surface)
 Sets the window surface to be the surface specified. More...
 
QSize size () const
 
virtual QSize sizeHint () const
 
QSize sizeIncrement () const
 
QSizePolicy sizePolicy () const
 
void stackUnder (QWidget *)
 Places the widget under w in the parent widget's stack. More...
 
QString statusTip () const
 
QStylestyle () const
 
QString styleSheet () const
 
bool testAttribute (Qt::WidgetAttribute) const
 Returns true if attribute attribute is set on this widget; otherwise returns false. More...
 
QString toolTip () const
 
QWidgettopLevelWidget () const
 
bool underMouse () const
 Returns true if the widget is under the mouse cursor; otherwise returns false. More...
 
void ungrabGesture (Qt::GestureType type)
 Unsubscribes the widget from a given gesture type. More...
 
void unsetCursor ()
 
void unsetLayoutDirection ()
 
void unsetLocale ()
 
void update (int x, int y, int w, int h)
 This version updates a rectangle (x, y, w, h) inside the widget. More...
 
void update (const QRect &)
 This version updates a rectangle rect inside the widget. More...
 
void update (const QRegion &)
 This version repaints a region rgn inside the widget. More...
 
void updateGeometry ()
 Notifies the layout system that this widget has changed and may need to change geometry. More...
 
bool updatesEnabled () const
 
QRegion visibleRegion () const
 Returns the unobscured region where paint events can occur. More...
 
QString whatsThis () const
 
int width () const
 
QWidgetwindow () const
 Returns the window for this widget, i.e. More...
 
QString windowFilePath () const
 
Qt::WindowFlags windowFlags () const
 Window flags are a combination of a type (e. More...
 
QIcon windowIcon () const
 
QString windowIconText () const
 
Qt::WindowModality windowModality () const
 
qreal windowOpacity () const
 
QString windowRole () const
 Returns the window's role, or an empty string. More...
 
Qt::WindowStates windowState () const
 Returns the current window state. More...
 
QWindowSurfacewindowSurface () const
 Returns the QWindowSurface this widget will be drawn into. More...
 
QString windowTitle () const
 
Qt::WindowType windowType () const
 Returns the window type of this widget. More...
 
WId winId () const
 Returns the window system identifier of the widget. More...
 
int x () const
 
const QX11Infox11Info () const
 Returns information about the configuration of the X display used to display the widget. More...
 
Qt::HANDLE x11PictureHandle () const
 Returns the X11 Picture handle of the widget for XRender support. More...
 
int y () const
 
 ~QWidget ()
 Destroys the widget. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 
- Public Functions inherited from QPaintDevice
int colorCount () const
 
int depth () const
 
int height () const
 
int heightMM () const
 
int logicalDpiX () const
 
int logicalDpiY () const
 
QT_DEPRECATED int numColors () const
 
bool paintingActive () const
 
int physicalDpiX () const
 
int physicalDpiY () const
 
int width () const
 
int widthMM () const
 
virtual ~QPaintDevice ()
 

Protected Functions

bool event (QEvent *)
 Reimplemented Function More...
 
bool eventFilter (QObject *, QEvent *)
 Handles WindowActivate and FocusIn events for the client. More...
 
void resizeEvent (QResizeEvent *)
 Reimplemented Function More...
 
bool x11Event (XEvent *)
 Handles some notification events and client messages. More...
 
- Protected Functions inherited from QWidget
virtual void actionEvent (QActionEvent *)
 This event handler is called with the given event whenever the widget's actions are changed. More...
 
virtual void changeEvent (QEvent *)
 This event handler can be reimplemented to handle state changes. More...
 
virtual void closeEvent (QCloseEvent *)
 This event handler is called with the given event when Qt receives a window close request for a top-level widget from the window system. More...
 
virtual void contextMenuEvent (QContextMenuEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive widget context menu events. More...
 
void create (WId=0, bool initializeWindow=true, bool destroyOldWindow=true)
 Creates a new widget window if window is 0, otherwise sets the widget's window to window. More...
 
void destroy (bool destroyWindow=true, bool destroySubWindows=true)
 Frees up window system resources. More...
 
virtual void dragEnterEvent (QDragEnterEvent *)
 This event handler is called when a drag is in progress and the mouse enters this widget. More...
 
virtual void dragLeaveEvent (QDragLeaveEvent *)
 This event handler is called when a drag is in progress and the mouse leaves this widget. More...
 
virtual void dragMoveEvent (QDragMoveEvent *)
 This event handler is called if a drag is in progress, and when any of the following conditions occur: the cursor enters this widget, the cursor moves within this widget, or a modifier key is pressed on the keyboard while this widget has the focus. More...
 
virtual void dropEvent (QDropEvent *)
 This event handler is called when the drag is dropped on this widget. More...
 
virtual void enabledChange (bool)
 
virtual void enterEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive widget enter events which are passed in the event parameter. More...
 
virtual void focusInEvent (QFocusEvent *)
 This event handler can be reimplemented in a subclass to receive keyboard focus events (focus received) for the widget. More...
 
bool focusNextChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for Tab, and returns true if it can find a new widget, or false if it can't. More...
 
virtual bool focusNextPrevChild (bool next)
 Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it can't. More...
 
virtual void focusOutEvent (QFocusEvent *)
 This event handler can be reimplemented in a subclass to receive keyboard focus events (focus lost) for the widget. More...
 
bool focusPreviousChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for Shift+Tab, and returns true if it can find a new widget, or false if it can't. More...
 
virtual void fontChange (const QFont &)
 
virtual void hideEvent (QHideEvent *)
 This event handler can be reimplemented in a subclass to receive widget hide events. More...
 
virtual void inputMethodEvent (QInputMethodEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive Input Method composition events. More...
 
virtual void keyPressEvent (QKeyEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive key press events for the widget. More...
 
virtual void keyReleaseEvent (QKeyEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive key release events for the widget. More...
 
virtual void languageChange ()
 
virtual void leaveEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive widget leave events which are passed in the event parameter. More...
 
virtual bool macEvent (EventHandlerCallRef, EventRef)
 This special event handler can be reimplemented in a subclass to receive native Macintosh events. More...
 
int metric (PaintDeviceMetric) const
 Internal implementation of the virtual QPaintDevice::metric() function. More...
 
virtual void mouseDoubleClickEvent (QMouseEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse double click events for the widget. More...
 
virtual void mouseMoveEvent (QMouseEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse move events for the widget. More...
 
virtual void mousePressEvent (QMouseEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse press events for the widget. More...
 
virtual void mouseReleaseEvent (QMouseEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse release events for the widget. More...
 
virtual void moveEvent (QMoveEvent *)
 This event handler can be reimplemented in a subclass to receive widget move events which are passed in the event parameter. More...
 
virtual void paintEvent (QPaintEvent *)
 This event handler can be reimplemented in a subclass to receive paint events passed in event. More...
 
virtual void paletteChange (const QPalette &)
 
 QWidget (QWidgetPrivate &d, QWidget *parent, Qt::WindowFlags f)
 
virtual bool qwsEvent (QWSEvent *)
 This special event handler can be reimplemented in a subclass to receive native Qt for Embedded Linux events which are passed in the event parameter. More...
 
void resetInputContext ()
 This function can be called on the widget that currently has focus to reset the input method operating on it. More...
 
virtual void showEvent (QShowEvent *)
 This event handler can be reimplemented in a subclass to receive widget show events which are passed in the event parameter. More...
 
virtual void styleChange (QStyle &)
 
virtual void tabletEvent (QTabletEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive tablet events for the widget. More...
 
virtual void wheelEvent (QWheelEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive wheel events for the widget. More...
 
virtual void windowActivationChange (bool)
 
virtual bool winEvent (MSG *message, long *result)
 This special event handler can be reimplemented in a subclass to receive native Windows events which are passed in the message parameter. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Functions inherited from QPaintDevice
 QPaintDevice ()
 

Additional Inherited Members

- Public Slots inherited from QWidget
bool close ()
 Closes this widget. More...
 
void hide ()
 Hides the widget. More...
 
void lower ()
 Lowers the widget to the bottom of the parent widget's stack. More...
 
void raise ()
 Raises this widget to the top of the parent widget's stack. More...
 
void repaint ()
 Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden. More...
 
void setDisabled (bool)
 Disables widget input events if disable is true; otherwise enables input events. More...
 
void setEnabled (bool)
 
void setFocus ()
 Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. More...
 
void setHidden (bool hidden)
 Convenience function, equivalent to setVisible(!hidden). More...
 
QT_MOC_COMPAT void setShown (bool shown)
 Use setVisible(shown) instead. More...
 
void setStyleSheet (const QString &styleSheet)
 
virtual void setVisible (bool visible)
 
void setWindowModified (bool)
 
void setWindowTitle (const QString &)
 
void show ()
 Shows the widget and its child widgets. More...
 
void showFullScreen ()
 Shows the widget in full-screen mode. More...
 
void showMaximized ()
 Shows the widget maximized. More...
 
void showMinimized ()
 Shows the widget minimized, as an icon. More...
 
void showNormal ()
 Restores the widget after it has been maximized or minimized. More...
 
void update ()
 Updates the widget unless updates are disabled or the widget is hidden. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Static Public Functions inherited from QWidget
static QWidgetfind (WId)
 Returns a pointer to the widget with window identifer/handle id. More...
 
static QWidgetkeyboardGrabber ()
 Returns the widget that is currently grabbing the keyboard input. More...
 
static QWidgetmouseGrabber ()
 Returns the widget that is currently grabbing the mouse input. More...
 
static void setTabOrder (QWidget *, QWidget *)
 Puts the second widget after the first widget in the focus order. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Functions inherited from QPaintDevice
static QWSDisplayqwsDisplay ()
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Slots inherited from QWidget
void updateMicroFocus ()
 Updates the widget's micro focus. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Protected Variables inherited from QPaintDevice
ushort painters
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QX11EmbedWidget class provides an XEmbed client widget.

XEmbed is an X11 protocol that supports the embedding of a widget from one application into another application.

An XEmbed client widget is a window that is embedded into a container. A container is the graphical location that embeds (or swallows) an external application.

QX11EmbedWidget is a widget used for writing XEmbed applets or plugins. When it has been embedded and the container receives tab focus, focus is passed on to the widget. When the widget reaches the end of its focus chain, focus is passed back to the container. Window activation, accelerator support, modality and drag and drop (XDND) are also handled.

The widget and container can both initiate the embedding. If the widget is the initiator, the X11 window ID of the container that it wants to embed itself into must be passed to embedInto().

If the container initiates the embedding, the window ID of the embedded widget must be known. The container calls embed(), passing the window ID.

This example shows an application that embeds a QX11EmbedWidget subclass into the window whose ID is passed as a command-line argument:

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
if (app.arguments().count() != 2) {
qFatal("Error - expected window id as argument");
return 1;
}
QString windowId(app.arguments()[1]);
EmbedWidget window;
window.embedInto(windowId.toULong());
window.show();
return app.exec();
}

The problem of obtaining the window IDs is often solved by the container invoking the application that provides the widget as a separate process (as a panel invokes a docked applet), passing its window ID to the new process as a command-line argument. The new process can then call embedInto() with the container's window ID, as shown in the example code above. Similarly, the new process can report its window ID to the container through IPC, in which case the container can embed the widget.

When the widget has been embedded, it emits the signal embedded(). If it is closed by the container, the widget emits containerClosed(). If an error occurs when embedding, error() is emitted.

There are XEmbed widgets available for KDE and GTK+. The GTK+ equivalent of QX11EmbedWidget is GtkPlug. The corresponding KDE 3 widget is called QXEmbed.

See also
QX11EmbedContainer, {XEmbed Specification}

Definition at line 54 of file qx11embed_x11.h.

Enumerations

◆ Error

  • Unknown An unrecognized error occurred.
  • InvalidWindowID The X11 window ID of the container was invalid. This error is usually triggered by passing an invalid window ID to embedInto().
  • Internal
Enumerator
Unknown 
Internal 
InvalidWindowID 

Definition at line 64 of file qx11embed_x11.h.

Constructors and Destructors

◆ QX11EmbedWidget()

QX11EmbedWidget::QX11EmbedWidget ( QWidget parent = 0)

Constructs a QX11EmbedWidget object with the given parent.

Definition at line 497 of file qx11embed_x11.cpp.

498  : QWidget(*new QX11EmbedWidgetPrivate, parent, 0)
499 {
500  XSetErrorHandler(x11ErrorHandler);
501 
504  createWinId();
505  XSelectInput(x11Info().display(), internalWinId(),
506  KeyPressMask | KeyReleaseMask | ButtonPressMask
507  | ButtonReleaseMask
508  | KeymapStateMask | ButtonMotionMask | PointerMotionMask
509  | FocusChangeMask
510  | ExposureMask | StructureNotifyMask
511  | SubstructureNotifyMask | PropertyChangeMask);
512 
513  long data[] = {XEMBED_VERSION, XEMBED_MAPPED};
514  XChangeProperty(x11Info().display(), internalWinId(), ATOM(_XEMBED_INFO),
515  ATOM(_XEMBED_INFO), 32, PropModeReplace,
516  (unsigned char*) data, 2);
517 
521 
522 #ifdef QX11EMBED_DEBUG
523  qDebug() << "QX11EmbedWidget::QX11EmbedWidget: constructed client"
524  << (void *)this << "with winId" << winId();
525 #endif
526 }
const QX11Info & x11Info() const
Returns information about the configuration of the X display used to display the widget.
static unsigned int XEMBED_VERSION
#define ATOM(x)
Definition: qt_x11_p.h:723
Q_CORE_EXPORT void qDebug(const char *,...)
Q_GUI_EXPORT EGLDisplay display()
Definition: qegl.cpp:589
QWidget(QWidget *parent=0, Qt::WindowFlags f=0)
Constructs a widget which is a child of parent, with widget flags set to f.
Definition: qwidget.cpp:1189
QWidgetData * data
Definition: qwidget.h:815
static int x11ErrorHandler(Display *, XErrorEvent *)
static QCoreApplication * instance()
Returns a pointer to the application&#39;s QCoreApplication (or QApplication) instance.
void installEventFilter(QObject *)
Installs an event filter filterObj on this object.
Definition: qobject.cpp:2070
WId internalWinId() const
Returns the window system identifier of the widget, or 0 if the widget is not created yet...
Definition: qwidget.h:244
void setAttribute(Qt::WidgetAttribute, bool on=true)
Sets the attribute attribute on this widget if on is true; otherwise clears the attribute.
Definition: qwidget.cpp:11087
void createWinId()
Definition: qwidget.cpp:2626
WId winId() const
Returns the window system identifier of the widget.
Definition: qwidget.cpp:2557
void setSizePolicy(QSizePolicy)
Definition: qwidget.cpp:10198
void setFocusPolicy(Qt::FocusPolicy policy)
Definition: qwidget.cpp:7631

◆ ~QX11EmbedWidget()

QX11EmbedWidget::~QX11EmbedWidget ( )

Destructs the QX11EmbedWidget object.

If the widget is embedded when deleted, it is hidden and then detached from its container, so that the container is free to embed a new widget.

Definition at line 533 of file qx11embed_x11.cpp.

534 {
536  if (d->container) {
537 #ifdef QX11EMBED_DEBUG
538  qDebug() << "QX11EmbedWidget::~QX11EmbedWidget: unmapping"
539  << (void *)this << "with winId" << winId()
540  << "from container with winId" << d->container;
541 #endif
542  XUnmapWindow(x11Info().display(), internalWinId());
543  XReparentWindow(x11Info().display(), internalWinId(), x11Info().appRootWindow(x11Info().screen()), 0, 0);
544  }
545 
546 #ifdef QX11EMBED_DEBUG
547  qDebug() << "QX11EmbedWidget::~QX11EmbedWidget: destructed client"
548  << (void *)this << "with winId" << winId();
549 #endif
550 }
double d
Definition: qnumeric_p.h:62
const QX11Info & x11Info() const
Returns information about the configuration of the X display used to display the widget.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qDebug(const char *,...)
Q_GUI_EXPORT EGLDisplay display()
Definition: qegl.cpp:589
The QX11EmbedWidget class provides an XEmbed client widget.
Definition: qx11embed_x11.h:54
WId internalWinId() const
Returns the window system identifier of the widget, or 0 if the widget is not created yet...
Definition: qwidget.h:244
WId winId() const
Returns the window system identifier of the widget.
Definition: qwidget.cpp:2557

Functions

◆ containerClosed

void QX11EmbedWidget::containerClosed ( )
signal

This signal is emitted by the client widget when the container closes the widget.

This can happen if the container itself closes, or if the widget is rejected.

The container can reject a widget for any reason, but the most common cause of a rejection is when an attempt is made to embed a widget into a container that already has an embedded widget.

Referenced by x11Event().

◆ containerWinId()

WId QX11EmbedWidget::containerWinId ( ) const

If the widget is embedded, returns the window ID of the container; otherwize returns 0.

Definition at line 1045 of file qx11embed_x11.cpp.

Referenced by QX11EmbedWidgetPrivate::checkActivateWindow().

1046 {
1047  Q_D(const QX11EmbedWidget);
1048  return d->container;
1049 }
double d
Definition: qnumeric_p.h:62
#define Q_D(Class)
Definition: qglobal.h:2482
The QX11EmbedWidget class provides an XEmbed client widget.
Definition: qx11embed_x11.h:54

◆ embedded

void QX11EmbedWidget::embedded ( )
signal

This signal is emitted by the widget that has been embedded by an XEmbed container.

Referenced by x11Event().

◆ embedInto()

void QX11EmbedWidget::embedInto ( WId  id)

When this function is called, the widget embeds itself into the container whose window ID is id.

If id is not the window ID of a container this function will behave unpredictably.

Definition at line 570 of file qx11embed_x11.cpp.

571 {
573 #ifdef QX11EMBED_DEBUG
574  qDebug() << "QX11EmbedWidget::embedInto: embedding client"
575  << (void *)this << "with winId" << winId() << "into container"
576  << id;
577 #endif
578 
579  d->container = id;
580  switch (XReparentWindow(x11Info().display(), internalWinId(), d->container, 0, 0)) {
581  case BadWindow:
582  d->emitError(InvalidWindowID);
583  break;
584  case BadMatch:
585  d->emitError(Internal);
586  break;
587  case Success:
588  default:
589  break;
590  }
591  QTLWExtra* x = d->extra ? d->extra->topextra : 0;
592  if (x)
593  x->frameStrut.setCoords(0, 0, 0, 0);
594  d->data.fstrut_dirty = false;
595 }
double d
Definition: qnumeric_p.h:62
QRect frameStrut
Definition: qwidget_p.h:180
const QX11Info & x11Info() const
Returns information about the configuration of the X display used to display the widget.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qDebug(const char *,...)
Q_GUI_EXPORT EGLDisplay display()
Definition: qegl.cpp:589
void setCoords(int x1, int y1, int x2, int y2)
Sets the coordinates of the rectangle&#39;s top-left corner to (x1, y1), and the coordinates of its botto...
Definition: qrect.h:416
The QX11EmbedWidget class provides an XEmbed client widget.
Definition: qx11embed_x11.h:54
int x() const
WId internalWinId() const
Returns the window system identifier of the widget, or 0 if the widget is not created yet...
Definition: qwidget.h:244
WId winId() const
Returns the window system identifier of the widget.
Definition: qwidget.cpp:2557

◆ error() [1/2]

QX11EmbedWidget::Error QX11EmbedWidget::error ( ) const

Returns the type of error that occurred last.

This is the same error code that is emitted by the error() signal.

See also
Error

Definition at line 558 of file qx11embed_x11.cpp.

Referenced by QX11EmbedContainerPrivate::emitError().

559 {
560  return d_func()->lastError;
561 }

◆ error [2/2]

void QX11EmbedWidget::error ( QX11EmbedWidget::Error  error)
signal

This signal is emitted if an error occurred as a result of embedding into or communicating with a container.

The specified error describes the problem that occurred.

See also
QX11EmbedWidget::Error

◆ event()

bool QX11EmbedWidget::event ( QEvent event)
protectedvirtual

Reimplemented Function

Reimplemented from QWidget.

Definition at line 1017 of file qx11embed_x11.cpp.

1018 {
1019  if (event->type() == QEvent::ParentChange) {
1020  XSelectInput(x11Info().display(), internalWinId(),
1021  KeyPressMask | KeyReleaseMask | ButtonPressMask
1022  | ButtonReleaseMask
1023  | KeymapStateMask | ButtonMotionMask | PointerMotionMask
1024  | FocusChangeMask
1025  | ExposureMask | StructureNotifyMask
1026  | SubstructureNotifyMask | PropertyChangeMask);
1027  }
1028  return QWidget::event(event);
1029 }
const QX11Info & x11Info() const
Returns information about the configuration of the X display used to display the widget.
Q_GUI_EXPORT EGLDisplay display()
Definition: qegl.cpp:589
WId internalWinId() const
Returns the window system identifier of the widget, or 0 if the widget is not created yet...
Definition: qwidget.h:244
bool event(QEvent *)
This is the main event handler; it handles event event.
Definition: qwidget.cpp:8636
Type type() const
Returns the event type.
Definition: qcoreevent.h:303

◆ eventFilter()

bool QX11EmbedWidget::eventFilter ( QObject o,
QEvent event 
)
protectedvirtual

Handles WindowActivate and FocusIn events for the client.

Warning
This function is not part of the public interface.

Reimplemented from QObject.

Definition at line 719 of file qx11embed_x11.cpp.

720 {
722  switch (event->type()) {
723  case QEvent::FocusIn:
724  switch (((QFocusEvent *)event)->reason()) {
726  // If the user clicks into one of the client widget's
727  // children and we didn't have focus already, we request
728  // focus from our container.
729  if (d->xEmbedWidget(o) == this) {
730  if (d->currentFocus.isNull())
732 
733  d->currentFocus = qobject_cast<QWidget *>(o);
734  }
735  break;
736  case Qt::TabFocusReason:
737  // If the xembed client receives a focus event because of
738  // a Tab, then we are at the end of our focus chain and we
739  // ask the container to move to its next focus widget.
740  if (o == this) {
741  d->clearFocus();
743  return true;
744  } else {
745  // We're listening on events from qApp, so in order
746  // for us to know who to set focus on if we receive an
747  // activation event, we note the widget that got the
748  // focusin last.
749  if (d->xEmbedWidget(o) == this)
750  d->currentFocus = qobject_cast<QWidget *>(o);
751  }
752  break;
754  // If the window receives a focus event because of
755  // a Backtab, then we are at the start of our focus chain
756  // and we ask the container to move to its previous focus
757  // widget.
758  if (o == this) {
759  // See comment for Tab.
760  // If we receive a XEMBED_FOCUS_IN
761  // XEMBED_FOCUS_CURRENT, we will set focus in
762  // currentFocus. To avoid that in this case, we reset
763  // currentFocus.
764  d->clearFocus();
766  return true;
767  } else {
768  if (d->xEmbedWidget(o) == this)
769  d->currentFocus = qobject_cast<QWidget *>(o);
770  }
771  break;
773  if (isActiveWindow()) {
774  if (!d->currentFocus.isNull()) {
775  if (!d->currentFocus->hasFocus())
776  d->currentFocus->setFocus(Qt::OtherFocusReason);
777  } else {
778  d->clearFocus();
779  return true;
780  }
781  }
782 
783  break;
787  // If focus is received to any child widget because of any
788  // other reason, remember the widget so that we can give
789  // it focus again if we're activated.
790  if (d->xEmbedWidget(o) == this) {
791  d->currentFocus = qobject_cast<QWidget *>(o);
792  }
793  break;
794  default:
795  break;
796  }
797  break;
799  // If we get a mouse button press event inside a embedded widget
800  // make sure this is the active window in qapp.
801  d->checkActivateWindow(o);
802  break;
803  default:
804  break;
805  }
806 
807  return QWidget::eventFilter(o, event);
808 }
double d
Definition: qnumeric_p.h:62
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
const QX11Info & x11Info() const
Returns information about the configuration of the X display used to display the widget.
bool isActiveWindow() const
T * qobject_cast(QObject *object)
Definition: qobject.h:375
#define Q_D(Class)
Definition: qglobal.h:2482
Q_GUI_EXPORT EGLDisplay display()
Definition: qegl.cpp:589
static void sendXEmbedMessage(WId window, Display *display, long message, long detail=0, long data1=0, long data2=0)
virtual bool eventFilter(QObject *, QEvent *)
Filters events if this object has been installed as an event filter for the watched object...
Definition: qobject.cpp:1375
The QX11EmbedWidget class provides an XEmbed client widget.
Definition: qx11embed_x11.h:54
Type type() const
Returns the event type.
Definition: qcoreevent.h:303
The QFocusEvent class contains event parameters for widget focus events.
Definition: qevent.h:275
static Display * display()
Returns the default display for the application.

◆ resizeEvent()

void QX11EmbedWidget::resizeEvent ( QResizeEvent event)
protectedvirtual

Reimplemented Function

Reimplemented from QWidget.

Definition at line 1034 of file qx11embed_x11.cpp.

1035 {
1036  if (layout())
1037  layout()->update();
1038  QWidget::resizeEvent(event);
1039 }
virtual void resizeEvent(QResizeEvent *)
This event handler can be reimplemented in a subclass to receive widget resize events which are passe...
Definition: qwidget.cpp:9587
void update()
Updates the layout for parentWidget().
Definition: qlayout.cpp:1225
QLayout * layout() const
Returns the layout manager that is installed on this widget, or 0 if no layout manager is installed...
Definition: qwidget.cpp:10073

◆ x11Event()

bool QX11EmbedWidget::x11Event ( XEvent event)
protectedvirtual

Handles some notification events and client messages.

Warning
This function is not part of the public interface.

Client side XEmbed message receiving is also handled here.

Reimplemented from QWidget.

Definition at line 818 of file qx11embed_x11.cpp.

819 {
821  switch (event->type) {
822  case DestroyNotify:
823 #ifdef QX11EMBED_DEBUG
824  qDebug() << "QX11EmbedWidget::x11Event: client"
825  << (void *)this << "with winId" << winId()
826  << "received a DestroyNotify";
827 #endif
828  // If the container window is destroyed, we signal this to the user.
829  d->container = 0;
831  break;
832  case ReparentNotify:
833 #ifdef QX11EMBED_DEBUG
834  qDebug() << "QX11EmbedWidget::x11Event: client"
835  << (void *)this << "with winId" << winId()
836  << "received a ReparentNotify to"
837  << ((event->xreparent.parent == x11Info().appRootWindow(x11Info().screen()))
838  ? QString::fromLatin1("root") : QString::number(event->xreparent.parent));
839 #endif
840  // If the container shuts down, we will be reparented to the
841  // root window. We must also consider the case that we may be
842  // reparented from one container to another.
843  if (event->xreparent.parent == x11Info().appRootWindow(x11Info().screen())) {
844  if (((QHackWidget *)this)->topData()->embedded) {
845  d->container = 0;
847  }
848  return true;
849  } else {
850  d->container = event->xreparent.parent;
851  }
852  break;
853  case UnmapNotify:
854  // Mapping and unmapping are handled by changes to the
855  // _XEMBED_INFO property. Any default map/unmap requests are
856  // ignored.
857  return true;
858  case PropertyNotify:
859  // The container sends us map/unmap messages through the
860  // _XEMBED_INFO property. We adhere to the XEMBED_MAPPED bit in
861  // data2.
862  if (event->xproperty.atom == ATOM(_XEMBED_INFO)) {
863  Atom actual_type_return;
864  int actual_format_return;
865  unsigned long nitems_return;
866  unsigned long bytes_after_return;
867  unsigned char *prop_return = 0;
868  if (XGetWindowProperty(x11Info().display(), internalWinId(), ATOM(_XEMBED_INFO), 0, 2,
869  false, ATOM(_XEMBED_INFO), &actual_type_return,
870  &actual_format_return, &nitems_return,
871  &bytes_after_return, &prop_return) == Success) {
872  if (nitems_return > 1) {
873  if (((long * )prop_return)[1] & XEMBED_MAPPED) {
874  XMapWindow(x11Info().display(), internalWinId());
875  } else {
876  XUnmapWindow(x11Info().display(), internalWinId());
877  }
878  }
879  if (prop_return)
880  XFree(prop_return);
881  }
882  }
883 
884  break;
885  case ClientMessage:
886  // XEMBED messages have message_type _XEMBED
887  if (event->xclient.message_type == ATOM(_XEMBED)) {
888  // Discard XEMBED messages not to ourselves. (### dead code?)
889  if (event->xclient.window != internalWinId())
890  break;
891 
892  // Update qt_x_time if necessary
893  Time msgtime = (Time) event->xclient.data.l[0];
894  if (msgtime > X11->time)
895  X11->time = msgtime;
896 
897  switch (event->xclient.data.l[1]) {
898  case XEMBED_WINDOW_ACTIVATE: {
899  // When we receive an XEMBED_WINDOW_ACTIVATE, we simply send
900  // ourselves a WindowActivate event. Real activation happens
901  // when receive XEMBED_FOCUS_IN.
902  if (!isActiveWindow()) {
904  QApplication::sendEvent(this, &ev);
905  }
906  }
907  break;
909  // When we receive an XEMBED_WINDOW_DEACTIVATE, we simply send
910  // ourselves a WindowDeactivate event. Real activation happens
911  // when receive XEMBED_FOCUS_IN.
912  if (isActiveWindow()) {
913  if (!qApp->activePopupWidget())
915  } else {
917  QApplication::sendEvent(this, &ev);
918  }
919  }
920  break;
921  case XEMBED_EMBEDDED_NOTIFY: {
922 #ifdef QX11EMBED_DEBUG
923  qDebug() << "QX11EmbedWidget::x11Event: client"
924  << (void *)this << "with winId" << winId()
925  << "received an XEMBED EMBEDDED NOTIFY message";
926 #endif
927  // In this message's l[2] we have the max version
928  // supported by both the client and the
929  // container. QX11EmbedWidget does not use this field.
930 
931  // We have been embedded, so we set our
932  // client's embedded flag.
933  d->setEmbedded();
934  emit embedded();
935  }
936  break;
937  case XEMBED_FOCUS_IN:
938  // don't set the focus if a modal dialog is open
939  if (qApp->activeModalWidget())
940  break;
941 
942  // in case we embed more than one topLevel window inside the same
943  // host window.
944  if (window() != qApp->activeWindow())
945  qApp->setActiveWindow(this);
946 
947  switch (event->xclient.data.l[2]) {
949  // The container sends us this message if it wants
950  // us to focus on the widget that last had focus.
951  // This is the reply when XEMBED_REQUEST_FOCUS is
952  // sent to the container.
953  if (!d->currentFocus.isNull()) {
954  if (!d->currentFocus->hasFocus())
955  d->currentFocus->setFocus(Qt::OtherFocusReason);
956  } else {
957  // No widget currently has focus. We set focus
958  // on the first widget next to the
959  // client widget. Since the setFocus will not work
960  // if the window is disabled, set the currentFocus
961  // directly so that it's set on window activate.
962  d->currentFocus = d->getFocusWidget(QX11EmbedWidgetPrivate::FirstFocusWidget);
963  d->currentFocus->setFocus(Qt::OtherFocusReason);
964  }
965  break;
966  case XEMBED_FOCUS_FIRST:
967  // The container sends this message when it wants
968  // us to focus on the first widget in our focus
969  // chain (typically because of a tab).
970  d->currentFocus = d->getFocusWidget(QX11EmbedWidgetPrivate::FirstFocusWidget);
971  d->currentFocus->setFocus(Qt::TabFocusReason);
972  break;
973  case XEMBED_FOCUS_LAST:
974  // The container sends this message when it wants
975  // us to focus on the last widget in our focus
976  // chain (typically because of a backtab).
977  d->currentFocus = d->getFocusWidget(QX11EmbedWidgetPrivate::LastFocusWidget);
978  d->currentFocus->setFocus(Qt::BacktabFocusReason);
979  break;
980  default:
981  // Ignore any other XEMBED_FOCUS_IN details.
982  break;
983  }
984  break;
985  case XEMBED_FOCUS_OUT:
986  // The container sends us this message when it wants us
987  // to lose focus and forget about the widget that last
988  // had focus. Typically sent by the container when it
989  // loses focus because of mouse or tab activity. We do
990  // then not want to set focus on anything if we're
991  // activated.
992  if (isActiveWindow())
993  d->clearFocus();
994 
995  break;
996  default:
997  // Ignore any other XEMBED messages.
998  break;
999  };
1000  } else {
1001  // Non-XEMBED client messages are not interesting.
1002  }
1003 
1004  break;
1005  default:
1006  // Ignore all other x11 events.
1007  break;
1008  }
1009 
1010  // Allow default handling.
1011  return QWidget::x11Event(event);
1012 }
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: qstring.cpp:6448
double d
Definition: qnumeric_p.h:62
void containerClosed()
This signal is emitted by the client widget when the container closes the widget. ...
static Qt::HANDLE appRootWindow(int screen=-1)
Returns a handle for the applications root window on the given screen.
const QX11Info & x11Info() const
Returns information about the configuration of the X display used to display the widget.
bool isActiveWindow() const
#define X11
Definition: qt_x11_p.h:724
#define Q_D(Class)
Definition: qglobal.h:2482
#define ATOM(x)
Definition: qt_x11_p.h:723
Q_CORE_EXPORT void qDebug(const char *,...)
Q_GUI_EXPORT EGLDisplay display()
Definition: qegl.cpp:589
#define qApp
#define emit
Definition: qobjectdefs.h:76
virtual bool x11Event(XEvent *)
This special event handler can be reimplemented in a subclass to receive native X11 events passed in ...
Definition: qwidget.cpp:9969
static bool sendEvent(QObject *receiver, QEvent *event)
Sends event event directly to receiver receiver, using the notify() function.
static void setActiveWindow(QWidget *act)
Sets the active window to the active widget in response to a system event.
The QX11EmbedWidget class provides an XEmbed client widget.
Definition: qx11embed_x11.h:54
bool event(QEvent *)
Reimplemented Function
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
if(void) toggleToolbarShown
WId internalWinId() const
Returns the window system identifier of the widget, or 0 if the widget is not created yet...
Definition: qwidget.h:244
QWidget * window() const
Returns the window for this widget, i.e.
Definition: qwidget.cpp:4492
WId winId() const
Returns the window system identifier of the widget.
Definition: qwidget.cpp:2557
void embedded()
This signal is emitted by the widget that has been embedded by an XEmbed container.
The QEvent class is the base class of all event classes.
Definition: qcoreevent.h:56

The documentation for this class was generated from the following files: