void WSlider::render(WFlags<RenderFlag> flags) { /* * In theory we are a bit late here to decide what we want to become: * somebody could already have asked the domElementType() */ if (flags.test(RenderFlag::Full)) { bool useNative = nativeControl(); if (!useNative) { if (!paintedSlider_) { manageWidget (paintedSlider_, std::unique_ptr<PaintedSlider>(new PaintedSlider(this))); paintedSlider_->sliderResized(width(), height()); } } else { manageWidget(paintedSlider_, std::unique_ptr<PaintedSlider>()); } setLayoutSizeAware(!useNative); setFormObject(useNative); } WFormWidget::render(flags); }
PaintedSlider::PaintedSlider(WSlider *slider) : WPaintedWidget(), slider_(slider), sliderReleased_(this, "released") { setStyleClass("Wt-slider-bg"); slider_->addStyleClass (std::string("Wt-slider-") + (slider_->orientation() == Orientation::Horizontal ? "h" : "v")); if (slider_->positionScheme() == PositionScheme::Static) { slider_->setPositionScheme(PositionScheme::Relative); slider_->setOffsets(0, Side::Left | Side::Top); } manageWidget(fill_, std::unique_ptr<WInteractWidget>(new WContainerWidget())); manageWidget(handle_, slider_->createHandle()); fill_->setPositionScheme(PositionScheme::Absolute); fill_->setStyleClass("fill"); handle_->setPositionScheme(PositionScheme::Absolute); handle_->setStyleClass("handle"); connectSlots(); }
void AcceleratorManagerPrivate::manage(QWidget *widget) { if (!widget) { // kDebug(240) << "null pointer given to manage"; return; } if (AcceleratorManagerPrivate::ignored_widgets.contains(widget)) { return; } if (qobject_cast<QMenu*>(widget)) { // create a popup accel manager that can deal with dynamic menus PopupAccelManager::manage(static_cast<QMenu*>(widget)); return; } Item *root = new Item; manageWidget(widget, root); QString used; calculateAccelerators(root, used); delete root; }
void AcceleratorManagerPrivate::traverseChildren(QWidget *widget, Item *item) { QList<QWidget*> childList = widget->findChildren<QWidget*>(); for ( QWidget *w: childList ) { // Ignore unless we have the direct parent if(qobject_cast<QWidget *>(w->parent()) != widget) continue; if ( !w->isVisibleTo( widget ) || (w->isTopLevel() && qobject_cast<QMenu*>(w) == nullptr) ) continue; if ( AcceleratorManagerPrivate::ignored_widgets.contains( w ) ) continue; manageWidget(w, item); } }
WSlider::~WSlider() { manageWidget(paintedSlider_, std::unique_ptr<PaintedSlider>()); }
PaintedSlider::~PaintedSlider() { manageWidget(fill_, std::unique_ptr<WInteractWidget>()); manageWidget(handle_, std::unique_ptr<WInteractWidget>()); }