void TreeWalker::acceptWidget(DomWidget *widget) { for (int i=0; i<widget->elementAction().size(); ++i) acceptAction(widget->elementAction().at(i)); for (int i=0; i<widget->elementActionGroup().size(); ++i) acceptActionGroup(widget->elementActionGroup().at(i)); for (int i=0; i<widget->elementAddAction().size(); ++i) acceptActionRef(widget->elementAddAction().at(i)); for (int i=0; i<widget->elementProperty().size(); ++i) acceptProperty(widget->elementProperty().at(i)); // recurse down DomWidgets childWidgets; for (int i=0; i<widget->elementWidget().size(); ++i) { DomWidget *child = widget->elementWidget().at(i); childWidgets += child; acceptWidget(child); } if (!widget->elementLayout().isEmpty()) acceptLayout(widget->elementLayout().at(0)); const DomScripts scripts(widget->elementScript()); acceptWidgetScripts(scripts, widget, childWidgets); }
//_______________________________________________________ bool ShadowHelper::registerWidget(QWidget* widget, bool force) { // make sure widget is not already registered if (_widgets.contains(widget)) { return false; } // check if widget qualifies if (!(force || acceptWidget(widget))) { return false; } // store in map and add destroy signal connection Utils::addEventFilter(widget, this); _widgets.insert(widget, 0); /* need to install shadow directly when widget "created" state is already set since WinID changed is never called when this is the case */ if (installX11Shadows(widget)) { _widgets.insert(widget, widget->internalWinId()); } connect(widget, SIGNAL(destroyed(QObject*)), SLOT(objectDeleted(QObject*))); return true; }
QT_BEGIN_NAMESPACE void TreeWalker::acceptUI(DomUI *ui) { acceptWidget(ui->elementWidget()); if (const DomButtonGroups *domButtonGroups = ui->elementButtonGroups()) acceptButtonGroups(domButtonGroups); acceptTabStops(ui->elementTabStops()); if (ui->elementImages()) acceptImages(ui->elementImages()); }
bool ShadowHelper::registerWidget(QWidget *widget, bool force) { QtcQWidgetProps props(widget); // make sure widget is not already registered if (props->shadowRegistered) return false; // check if widget qualifies if (!(force || acceptWidget(widget))) return false; props->shadowRegistered = true; // WinIdChange Event, should not happen though widget->installEventFilter(this); installX11Shadows(widget); return true; }
void TreeWalker::acceptLayoutItem(DomLayoutItem *layoutItem) { switch (layoutItem->kind()) { case DomLayoutItem::Widget: acceptWidget(layoutItem->elementWidget()); return; case DomLayoutItem::Layout: acceptLayout(layoutItem->elementLayout()); return; case DomLayoutItem::Spacer: acceptSpacer(layoutItem->elementSpacer()); return; case DomLayoutItem::Unknown: break; } Q_ASSERT( 0 ); }
//______________________________________________ bool ShadowHelper::registerWidget( GtkWidget* widget ) { // check widget if( !( widget && GTK_IS_WINDOW( widget ) ) ) return false; // make sure that widget is not already registered if( _widgets.find( widget ) != _widgets.end() ) return false; // check if window is accepted if( !acceptWidget( widget ) ) return false; // try install shadows installX11Shadows( widget ); // register in map and returns success WidgetData data; data._destroyId.connect( G_OBJECT( widget ), "destroy", G_CALLBACK( destroyNotifyEvent ), this ); _widgets.insert( std::make_pair( widget, data ) ); return true; }