void TWindow::handleEvent(TEvent &event) {
   TRect  limits;
   TPoint min, max;

   TGroup::handleEvent(event);
   if (event.what== evCommand)
      switch (event.message.command) {
         case  cmResize:
            if ((flags & (wfMove | wfGrow)) != 0) {
               limits = owner->getExtent();
               sizeLimits(min, max);
               dragView(event, dragMode | (flags & (wfMove | wfGrow)),
                        limits, min, max);
               clearEvent(event);
            }
            break;
         case  cmClose:
            if ((flags & wfClose) != 0 &&
               (event.message.infoPtr == 0 || event.message.infoPtr == this))
            {
               clearEvent(event);
               if ((state & sfModal) == 0)
                  close();
               else {
                  event.what = evCommand;
                  event.message.command = cmCancel;
                  putEvent(event);
                  clearEvent(event);
               }
            }
            break;
         case  cmZoom:
            if ((flags & wfZoom) != 0 &&
               (event.message.infoPtr == 0 || event.message.infoPtr == this))
            {
               zoom();
               clearEvent(event);
            }
            break;
      }
   else if (event.what == evKeyDown)
      switch (event.keyDown.keyCode) {
         case  kbTab:
            focusNext(False);
            clearEvent(event);
            break;
         case  kbShiftTab:
            focusNext(True);
            clearEvent(event);
            break;
      }
   else if (event.what == evBroadcast &&
            event.message.command == cmSelectWindowNum &&
            event.message.infoInt == number &&
            (options & ofSelectable) != 0
           ) {
      select();
      clearEvent(event);
   }
}
Beispiel #2
0
void LayerPanel::action(const gcn::ActionEvent& ae)
{
    gcn::Widget *src = ae.getSource();

    if(src == cbVisible)
    {
        _engine->GetLayerMgr()->GetLayer(_engine->GetDrawPanel()->GetActiveLayerId())->visible = cbVisible->isSelected();
        UpdateSelection();
    }
    else if(src == tfName)
    {
        _engine->GetLayerMgr()->GetLayer(_engine->GetDrawPanel()->GetActiveLayerId())->name = tfName->getText();
        focusNext(); // move focus away, else almost impossible to escape from textfield widget
        UpdateSelection();
    }
    else if(src == btnAllVisible)
    {
        for(uint32 i = 0; i < LAYER_MAX; i++)
            _engine->GetLayerMgr()->GetLayer(i)->visible = true;
        UpdateSelection();
    }
    else if(src == btnNoneVisible)
    {
        for(uint32 i = 0; i < LAYER_MAX; i++)
            _engine->GetLayerMgr()->GetLayer(i)->visible = false;
        UpdateSelection();
    }

}
BOOL LLUICtrl::focusNextItem(BOOL text_fields_only)
{
	// this assumes that this method is called on the focus root.
	LLCtrlQuery query = getTabOrderQuery();
	if(text_fields_only || LLUI::sConfigGroup->getBOOL("TabToTextFieldsOnly"))
	{
		query.addPreFilter(LLUICtrl::LLTextInputFilter::getInstance());
	}
	viewList_t result = query(this);
	return focusNext(result);
}
Beispiel #4
0
BOOL LLUICtrl::focusNextItem(BOOL text_fields_only)
{
	// this assumes that this method is called on the focus root.
	LLCtrlQuery query = getTabOrderQuery();
	static LLUICachedControl<bool> tab_to_text_fields_only ("TabToTextFieldsOnly", false);
	if(text_fields_only || tab_to_text_fields_only)
	{
		query.addPreFilter(LLUICtrl::LLTextInputFilter::getInstance());
	}
	child_list_t result = query(this);
	return focusNext(result);
}
Beispiel #5
0
void TerminalSplitter::focusLast()
{
    if (is_shutting_down) return;

    if (terminalCount(true) == 1)
    {
        QWidget* w = static_cast<QWidget*>(child(0, QCString("TEWidget"), true));
        if (w) w->setFocus();
    }
    else
    {
        focusPrevious();
        focusNext();
    }
}
Beispiel #6
0
void UI::onJoystickMotion (bool horizontal, int v)
{
	if (_restart)
		return;

	UIStack stack = _stack;
	for (UIStackReverseIter i = stack.rbegin(); i != stack.rend(); ++i) {
		UIWindow* window = *i;
		if (window->onJoystickMotion(horizontal, v))
			return;
		if (window->isModal() || window->isFullscreen())
			break;
	}

	if (Config.getBindingsSpace() != BINDINGS_UI)
		return;

	if (_time - _lastJoystickMoveTime < 350 || horizontal) {
		_lastJoystickMovementValue = v;
		return;
	}

	// skip focus change if we go back to initial position
	if (v > 0 && v < _lastJoystickMovementValue) {
		_lastJoystickMovementValue = v;
		return;
	} else if (v < 0 && v > _lastJoystickMovementValue) {
		_lastJoystickMovementValue = v;
		return;
	}

	// now check whether our value is bigger than our movement delta
	const int delta = 2000;
	if (v < -delta) {
		focusPrev();
	} else if (v > delta) {
		focusNext();
	}

	_lastJoystickMoveTime = _time;
	_lastJoystickMovementValue = v;
}
Beispiel #7
0
void InsertDialog::setupUI(QDialog* dialog)
{
	setWindowTitle(tr("Zadejte informace o dávce"));
	resize(225,150);
	QLabel* L1 = new QLabel(tr("Zadejte číslo dávky"));
	L1->setAlignment(Qt::AlignCenter);

	LEbatchNo = new BatchNumberLineEdit();

	QLabel* L2 = new QLabel(tr("Pojišťovna:"));
	L2->setAlignment(Qt::AlignCenter);

	LEinCo = new InsuranceCompanyLineEdit();

	QHBoxLayout *mid = new QHBoxLayout;
	mid->addStretch();
	mid->addWidget(LEbatchNo);
	mid->addStretch();

	QHBoxLayout *mid2 = new QHBoxLayout;
	mid2->addStretch();
	mid2->addWidget(LEinCo);
	mid2->addStretch();

	QVBoxLayout *main = new QVBoxLayout(dialog);
	main->addWidget(L1);
	main->addLayout(mid);
	main->addWidget(L2);
	main->addLayout(mid2);
	main->addStretch();
	
	LEbatchNo->setNeighbours(0, LEinCo);
	LEinCo->setNeighbours(LEbatchNo, 0);

	QShortcut* shortcut = new QShortcut(QKeySequence(tr("Esc", "Close")), this);
	connect(shortcut, SIGNAL(activated()), this, SLOT(reject()));
	
	connect(LEbatchNo, SIGNAL(sendData(QString)), LEbatchNo, SLOT(focusNext())); 
	connect(LEinCo, SIGNAL(sendData(QString)), this, SLOT(checkInsuranceCompany(QString)));
	setAttribute ( Qt::WA_DeleteOnClose,true );
}
Beispiel #8
0
int eWidget::eventHandler(const eWidgetEvent &evt)
{
	switch (evt.type)
	{
	case eWidgetEvent::childChangedHelpText:
		/* emit */ focusChanged(focus);  // faked focusChanged Signal to the Statusbar
		break;
	case eWidgetEvent::evtAction:
		if (evt.action == shortcut && isVisible())
			(shortcutFocusWidget?shortcutFocusWidget:this)->
				event(eWidgetEvent(eWidgetEvent::evtShortcut));
		else if (evt.action == &i_focusActions->up)
			focusNext(focusDirPrev);
		else if (evt.action == &i_focusActions->down)
			focusNext(focusDirNext);
		else if (evt.action == &i_focusActions->left)
			focusNext(focusDirPrev);
		else if (evt.action == &i_focusActions->right)
			focusNext(focusDirNext);
		else if (evt.action == &i_cursorActions->help)
		{
			int wasvisible=state&stateShow;
			if (wasvisible)
				hide();
			/* emit */ showHelp( &actionHelpList, helpID );
			if (wasvisible)
				show();
		} else
			return 0;
		return 1;
	case eWidgetEvent::evtKey:
	{
		eActionPrioritySet prio;

		findAction(prio, *evt.key, this);

		if (focus && (focus != this))
			focus->findAction(prio, *evt.key, focus);

		for (actionMapList::iterator i = globalActions.begin(); i != globalActions.end(); ++i)
		{
			const std::set<eString> &styles=eActionMapList::getInstance()->getCurrentStyles();
			for (std::set<eString>::const_iterator si(styles.begin()); si != styles.end(); ++si)
				(*i)->findAction(prio, *evt.key, 0, *si);
		}

		for (eActionPrioritySet::iterator i(prio.begin()); i != prio.end(); ++i)
		{
			if (i->first)
			{
				if (((eWidget*)i->first)->event(eWidgetEvent(eWidgetEvent::evtAction, i->second)))
					break;
			} else
			{
				(const_cast<eAction*>(i->second))->handler();	// only useful for global actions
				break;
			}
		}

		if (focus)
		{
			/* Action not found, try to use old Keyhandle */
			int c = evt.key->producer->getKeyCompatibleCode(*evt.key);
			if (c != -1)
			{
				if (evt.key->flags & eRCKey::flagBreak)
					focus->keyUp(c);
				else
					focus->keyDown(c);
			}
		}
		return 1;
		break;
	}
	case eWidgetEvent::gotFocus:
		gotFocus();
		break;
	case eWidgetEvent::lostFocus:
		lostFocus();
		break;
	case eWidgetEvent::changedSize:
	case eWidgetEvent::changedFont:
	case eWidgetEvent::changedPosition:
	case eWidgetEvent::changedPixmap:
		invalidate();
		break;
	case eWidgetEvent::evtShortcut:
			setFocus(this);
		break;
	case eWidgetEvent::wantClose:
/*		if (in_loop==0)
			eFatal("attempt to close non-execing widget");*/
		if (in_loop==1)	// nur wenn das ne echte loop ist
		{
			in_loop=-1;
			eApp->exit_loop();
		}
		result=evt.parameter;
		break;
	default:
		break;
	}
	return 0;
}
Beispiel #9
0
void eZapNetworkSetup::fieldSelected(int *number)
{
	focusNext(eWidget::focusDirNext);
}
Beispiel #10
0
 void GuiContext::update(sf::RenderWindow &window) {
     sf::Vector2f mPos{ sf::Mouse::getPosition(window) };
     bool mDown = sf::Mouse::isButtonPressed(sf::Mouse::Button::Left);
     for(auto element : elements) {
         // cursor on element
         if(mPos.x > element->getPosition().x && mPos.x < element->getSize().x + element->getPosition().x && mPos.y > element->getPosition().y && mPos.y < element->getSize().y + element->getPosition().y){
             element->hovered_ = true;
             // mouse down
             if(mDown) {
                 element->mouseDown_ = true;
                 // this also sets the focus
                 for (auto focusElement : elements) {
                     focusElement->focussed_ = false;
                 }
                 element->focussed_ = true;
             }
             else {
                 // check if mouse was down before
                 if(element->mouseDown_) {
                     if(element->onClick_ != nullptr){
                         element->onClick_(*element, element->stateObj_);
                     }
                     // this also drags the focus to this element
                     for (auto focusElement : elements) {
                         focusElement->focussed_ = false;
                     }
                     element->focussed_ = true;
                 }
                 element->mouseDown_ = false;
             }
             
         }
         else {
             element->hovered_ = false;
             element->mouseDown_ = false;
         }
         element->update();
     }
     
     // return key
     if( sf::Keyboard::isKeyPressed(sf::Keyboard::Return) ) {
         if(!keyReturn_) {
             for(auto element : elements) {
                 if(element->focussed_ && element->onClick_ != nullptr){
                     element->onClick_(*element, element->stateObj_);
                 }
             }
             keyReturn_ = true;
         }
     }
     else {
         keyReturn_ = false;
     }
     
     // down key
     if( sf::Keyboard::isKeyPressed(sf::Keyboard::Down) ) {
         if(!keyDown_) {
             focusNext();
             keyDown_ = true;
         }
     }
     else {
         keyDown_ = false;
     }
     
     // up key
     if( sf::Keyboard::isKeyPressed(sf::Keyboard::Up) ) {
         if(!keyUp_) {
             focusPrev();
             keyUp_ = true;
         }
     }
     else {
         keyUp_ = false;
     }
 }
Beispiel #11
0
void ePicViewerSettings::fieldSelected(int *number)
{
	focusNext(eWidget::focusDirNext);
}