void TabOrderEditor::paintEvent(QPaintEvent *e) { QPainter p(this); p.setClipRegion(e->region()); int cur = m_current_index - 1; if (m_beginning == false && cur < 0) cur = m_tab_order_list.size() - 1; for (int i = 0; i < m_tab_order_list.size(); ++i) { QWidget *widget = m_tab_order_list.at(i); if (!isWidgetVisible(widget)) continue; const QRect r = indicatorRect(i); QColor c = Qt::darkGreen; if (i == cur) c = Qt::red; else if (i > cur) c = Qt::blue; p.setPen(c); c.setAlpha(BG_ALPHA); p.setBrush(c); p.drawRect(fixRect(r)); p.setPen(Qt::white); p.drawText(r, QString::number(i + 1), QTextOption(Qt::AlignCenter)); } }
void UIStateHelper::updateData(UIStateHelperData *data) { QMap<QWidget*, UIStates>::iterator it; for (it = data->mWidgets.begin(); it != data->mWidgets.end(); ++it) { QWidget *widget = it.key(); UIStates states = it.value(); if (states & (UISTATE_LOADING_VISIBLE | UISTATE_LOADING_INVISIBLE | UISTATE_ACTIVE_VISIBLE | UISTATE_ACTIVE_INVISIBLE)) { bool visible = isWidgetVisible(widget); widget->setVisible(visible); if (!visible) { /* Reset progressbar */ QProgressBar *progressBar = dynamic_cast<QProgressBar*>(widget); if (progressBar) { progressBar->setValue(0); } } } if (states & (UISTATE_LOADING_ENABLED | UISTATE_LOADING_DISABLED | UISTATE_ACTIVE_ENABLED | UISTATE_ACTIVE_DISABLED)) { widget->setEnabled(isWidgetEnabled(widget)); } } }
bool Container::handleEvent(const sf::Event& event) { bool didAbsorb = false; if(isWidgetVisible() && isEnabled()) { //Check our own container too checkBinds(event); scrollBar->handleEvent(event); //Take into account the view offset for mouse events sf::Event tempEvent = event; //Create a temporary event as the normal one is const so that we can modify it if(event.type == sf::Event::MouseButtonPressed || event.type == sf::Event::MouseButtonReleased) tempEvent.mouseButton.y += scrollBar->getYOffset(); else if(event.type == sf::Event::MouseMoved) tempEvent.mouseMove.y += scrollBar->getYOffset(); //Give event call to each of the widgets, the widgets will decide on the rest internally for(auto iter = widgets.rbegin(); iter != widgets.rend() && didAbsorb == false; iter++) { if((*iter)->isEnabled()) { //If the widget returns true, or didAbsorb is already true, then didAborb will become/stay true if((*iter)->handleEvent(tempEvent)) didAbsorb = true; } } } return didAbsorb; }
void UIStateHelper::updateData(UIStateHelperData *data) { QMap<QWidget*, UIStates>::iterator it; for (it = data->mWidgets.begin(); it != data->mWidgets.end(); ++it) { QWidget *widget = it.key(); UIStates states = it.value(); if (states & (UISTATE_LOADING_VISIBLE | UISTATE_LOADING_INVISIBLE | UISTATE_ACTIVE_VISIBLE | UISTATE_ACTIVE_INVISIBLE)) { widget->setVisible(isWidgetVisible(widget)); } if (states & (UISTATE_LOADING_ENABLED | UISTATE_LOADING_DISABLED | UISTATE_ACTIVE_ENABLED | UISTATE_ACTIVE_DISABLED)) { widget->setEnabled(isWidgetEnabled(widget)); } } }