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));
    }
}
Exemple #2
0
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));
		}
	}
}
Exemple #3
0
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));
		}
	}
}