void WStackedWidget::setCurrentIndex(int index, const WAnimation& animation, bool autoReverse) { if (!animation.empty() && WApplication::instance()->environment().supportsCss3Animations() && ((isRendered() && javaScriptDefined_) || !canOptimizeUpdates())) { if (canOptimizeUpdates() && index == currentIndex_) return; loadAnimateJS(); WWidget *previous = currentWidget(); doJavaScript("$('#" + id() + "').data('obj').adjustScroll(" + widget(currentIndex_)->jsRef() + ");"); setJavaScriptMember("wtAutoReverse", autoReverse ? "true" : "false"); if (previous) previous->animateHide(animation); widget(index)->animateShow(animation); currentIndex_ = index; } else { currentIndex_ = index; for (int i = 0; i < count(); ++i) if (widget(i)->isHidden() != (currentIndex_ != i)) widget(i)->setHidden(currentIndex_ != i); if (currentIndex_ >= 0 && isRendered() && javaScriptDefined_) doJavaScript("$('#" + id() + "').data('obj').setCurrent(" + widget(currentIndex_)->jsRef() + ");"); } }
void WStackedWidget::setCurrentIndex(int index, const WAnimation& animation, bool autoReverse) { if (!animation.empty() && loadAnimateJS() && (isRendered() || !canOptimizeUpdates())) { if (canOptimizeUpdates() && index == currentIndex_) return; WWidget *previous = currentWidget(); setJavaScriptMember("wtAutoReverse", autoReverse ? "true" : "false"); if (previous) previous->animateHide(animation); widget(index)->animateShow(animation); currentIndex_ = index; } else { currentIndex_ = index; for (int i = 0; i < count(); ++i) if (widget(i)->isHidden() != (currentIndex_ != i)) widget(i)->setHidden(currentIndex_ != i); if (isRendered()) doJavaScript("$('#" + id() + "').data('obj').setCurrent(" + widget(currentIndex_)->jsRef() + ");"); } }
void WDialog::setHidden(bool hidden, const WAnimation& animation) { if (isHidden() != hidden) { if (modal_) { WApplication *app = WApplication::instance(); WContainerWidget *cover = app->dialogCover(); if (!cover) return; // when application is being destroyed if (!hidden) { saveCoverState(app, cover); if (cover->isHidden()) { if (!animation.empty()) { cover->animateShow(WAnimation(WAnimation::Fade, WAnimation::Linear, animation.duration() * 4)); } else cover->show(); } cover->setZIndex(impl_->zIndex() - 1); app->pushExposedConstraint(this); // FIXME: this should only blur if the active element is outside // of the dialog doJavaScript ("try {" """var ae=document.activeElement;" // On IE when a dialog is shown on startup, activeElement is the // body. Bluring the body sends the window to the background if // it is the only tab. // http://redmine.emweb.be/boards/2/topics/6415 """if (ae && ae.blur && ae.nodeName != 'BODY') {" "" "document.activeElement.blur();" "}" "} catch (e) { }"); } else restoreCoverState(app, cover); } } WPopupWidget::setHidden(hidden, animation); }
void WStackedWidget::setTransitionAnimation(const WAnimation& animation, bool autoReverse) { if (WApplication::instance()->environment().supportsCss3Animations()) { if (!animation.empty()) addStyleClass("Wt-animated"); animation_ = animation; autoReverseAnimation_ = autoReverse; loadAnimateJS(); } }
void WDialog::setHidden(bool hidden, const WAnimation& animation) { if (isHidden() != hidden) { if (modal_) { WApplication *app = WApplication::instance(); WContainerWidget *cover = app->dialogCover(); if (!cover) return; // when application is being destroyed if (!hidden) { saveCoverState(app, cover); if (cover->isHidden()) { if (!animation.empty()) { cover->animateShow(WAnimation(WAnimation::Fade, WAnimation::Linear, animation.duration() * 4)); } else cover->show(); } cover->setZIndex(impl_->zIndex() - 1); app->pushExposedConstraint(this); // FIXME: this should only blur if the active element is outside // of the dialog doJavaScript ("try {" """if (document.activeElement && document.activeElement.blur)" "" "document.activeElement.blur();" "} catch (e) { }"); } else restoreCoverState(app, cover); } } WCompositeWidget::setHidden(hidden, animation); }
virtual void setHidden(bool hidden, const WAnimation& animation = WAnimation()) { if (animation.empty()) { /* Comply with bootstrap responsive CSS assumptions */ /* When animations are used, this is actually done in wtAnimatedHidden */ if (hidden) setHeight(0); else setHeight(WLength::Auto); } WContainerWidget::setHidden(hidden, animation); }
void WStackedWidget::setTransitionAnimation(const WAnimation& animation, bool autoReverse) { if (loadAnimateJS()) { if (!animation.empty()) addStyleClass("Wt-animated"); animation_ = animation; autoReverseAnimation_ = autoReverse; setJavaScriptMember("wtAnimateChild", WT_CLASS ".WStackedWidget.animateChild"); setJavaScriptMember("wtAutoReverse", autoReverseAnimation_ ? "true" : "false"); } }
void WPopupMenu::setHidden(bool hidden, const WAnimation& animation) { if (!WApplication::instance()->session()->renderer().preLearning() && (animation.empty() && hidden == isHidden())) return; WCompositeWidget::setHidden(hidden, animation); if (autoHideDelay_ >= 0 && cancel_.isConnected()) doJavaScript("jQuery.data(" + jsRef() + ", 'obj').setHidden(" + (hidden ? "1" : "0") + ");"); if (hidden) renderOutAll(); }
void WStackedWidget::setTransitionAnimation(const WAnimation& animation, bool autoReverse) { if (loadAnimateJS()) { if (!animation.empty()) addStyleClass("Wt-animated"); animation_ = animation; autoReverseAnimation_ = autoReverse; if (isRendered()) { setJavaScriptMember("wtAnimateChild", "$('#" + id() + "').data('obj').animateChild"); setJavaScriptMember("wtAutoReverse", autoReverseAnimation_ ? "true" : "false"); } } }