void WPanel::setCollapsible(bool on) { if (on && !collapseIcon_) { std::string resources = WApplication::relativeResourcesUrl(); setTitleBar(true); collapseIcon_ = new WIconPair(resources + "collapse.gif", resources + "expand.gif"); collapseIcon_->setFloatSide(Left); WApplication *app = WApplication::instance(); app->theme()->apply(this, collapseIcon_, PanelCollapseButtonRole); titleBarWidget()->insertWidget(0, collapseIcon_); collapseIcon_->icon1Clicked().connect(this, &WPanel::doCollapse); collapseIcon_->icon1Clicked().connect(this, &WPanel::onCollapse); collapseIcon_->icon1Clicked().preventPropagation(); collapseIcon_->icon2Clicked().connect(this, &WPanel::doExpand); collapseIcon_->icon2Clicked().connect(this, &WPanel::onExpand); collapseIcon_->icon2Clicked().preventPropagation(); collapseIcon_->setState(isCollapsed() ? 1 : 0); titleBarWidget()->clicked().connect(this, &WPanel::toggleCollapse); } else if (!on && collapseIcon_) { delete collapseIcon_; collapseIcon_ = 0; } }
void CUiWidget_win::setupUi(QLayout *globalLayout, CActionManager *actionManager) { QWidget *bar = NULL; bar = new CTitleBar(this); connect(this, SIGNAL(docTitleChanged(QString)), bar, SLOT(onDocTitleChanged(QString))); setTitleBar(bar); m_centralWidget->setLayout(globalLayout); }
void WPanel::setTitle(const WString& title) { setTitleBar(true); if (!title_) { title_ = new WText(); WApplication *app = WApplication::instance(); app->theme()->apply(this, title_, PanelTitleRole); titleBarWidget()->insertWidget(titleBarWidget()->count(), title_); } title_->setText(title); }
MainWindow::MainWindow(QWidget *parent) : CFramelessWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); #ifdef Q_OS_WIN //feel free to change this number to see how it works setResizeableAreaWidth(8); //set titlebar widget, wo we can drag MainWindow by it setTitleBar(ui->widgetTitlebar); //labelTitleText is a child widget of widgetTitlebar //add labelTitleText to ignore list, so we can drag MainWindow by it too addIgnoreWidget(ui->labelTitleText); //further more, btnMin/btnMax... are child widgets of widgetTitlebar too //but we DO NOT want to drag MainWindow by them #endif ui->labelMargins->setText(currentMargins()); }