ButtonWithMenu::ButtonWithMenu(QWidget* parent) : ToolButton(parent) , m_menu(new QMenu(this)) { setCursor(Qt::ArrowCursor); setFocusPolicy(Qt::NoFocus); connect(this, SIGNAL(aboutToShowMenu()), this, SLOT(generateMenu())); connect(m_menu, &QMenu::aboutToShow, this, std::bind(&ButtonWithMenu::setDown, this, true)); connect(m_menu, &QMenu::aboutToHide, this, std::bind(&ButtonWithMenu::setDown, this, false)); }
ButtonWithMenu::ButtonWithMenu(QWidget* parent) : ToolButton(parent) , m_menu(new QMenu(this)) { setPopupMode(QToolButton::InstantPopup); setCursor(Qt::ArrowCursor); setFocusPolicy(Qt::ClickFocus); setMenu(m_menu); connect(m_menu, SIGNAL(aboutToShow()), this, SLOT(generateMenu())); }
mainWindow::mainWindow( QWidget *parent ): QMainWindow( parent ) { sbar_ = statusBar(); createActions(); createToolBar(); generateMenu(); QString windowTitle = "Moth Hamster Wheel Data Parser "; windowTitle += HAMSTER_VERSION; setWindowTitle(windowTitle); }
int main(int argc, char** argv) { // Loads and set jobs time in each machine readFile(); generateMenu(); return (EXIT_SUCCESS); }
void GameConversations::update(bool flag) { // Only need to proceed if there is an active conversation if (!active()) return; ConversationVar &var0 = _runningConv->_cnd._vars[0]; switch (_currentMode) { case CONVMODE_0: assert(var0.isNumeric()); if (var0._val < 0) { if (_vm->_game->_scene._frameStartTime >= _startFrameNumber) { removeActiveWindow(); if (_heroTrigger) { _vm->_game->_scene._action._activeAction._verbId = _verbId; _vm->_game->_trigger = _heroTrigger; _vm->_game->_triggerMode = _heroTriggerMode; _heroTrigger = 0; } _currentMode = CONVMODE_STOP; } } else { bool isActive = nextNode(); _currentNode = var0._val; if (isActive) { _verbId = _runningConv->_data._nodes[_currentNode]._index; _vm->_game->_scene._action._activeAction._verbId = _verbId; _vm->_game->_scene._action._inProgress = true; _vm->_game->_scene._action._savedFields._commandError = false; _currentMode = CONVMODE_1; } else { _currentMode = generateMenu(); } } break; case CONVMODE_1: if (flag) _currentMode = CONVMODE_3; break; case CONVMODE_2: if (flag) { _vm->_game->_player._stepEnabled = false; _verbId = _vm->_game->_scene._action._activeAction._verbId; if (!(_runningConv->_cnd._entryFlags[_verbId] & ENTRYFLAG_2)) flagEntry(CMD_HIDE, _verbId); removeActiveWindow(); _vm->_game->_scene._userInterface.emptyConversationList(); _vm->_game->_scene._userInterface.setup(kInputConversation); _personSpeaking = 0; executeEntry(_verbId); ConvDialog &dialog = _runningConv->_data._dialogs[_verbId]; if (dialog._speechIndex) { _runningConv->_cnd._messageList3.clear(); _runningConv->_cnd._messageList3.push_back(dialog._speechIndex); } generateText(dialog._textLineIndex, _runningConv->_cnd._messageList3); _currentMode = CONVMODE_0; if (_heroTrigger) { _vm->_game->_scene._action._activeAction._verbId = _verbId; _vm->_game->_trigger = _heroTrigger; _vm->_game->_triggerMode = _heroTriggerMode; _heroTrigger = 0; } } break; case CONVMODE_3: if (_vm->_game->_scene._frameStartTime >= _startFrameNumber) { removeActiveWindow(); _personSpeaking = 0; executeEntry(_verbId); generateMessage(_runningConv->_cnd._messageList1, _runningConv->_cnd._messageList3); if (_heroTrigger && _popupVisible) { _vm->_game->_scene._action._activeAction._verbId = _verbId; _vm->_game->_trigger = _heroTrigger; _vm->_game->_triggerMode = _heroTriggerMode; _heroTrigger = 0; } _currentMode = CONVMODE_4; } break; case CONVMODE_4: if (_vm->_game->_scene._frameStartTime >= _startFrameNumber) { removeActiveWindow(); _personSpeaking = _speakerVal; generateMessage(_runningConv->_cnd._messageList2, _runningConv->_cnd._messageList4); if (_interlocutorTrigger && _popupVisible) { _vm->_game->_scene._action._activeAction._verbId = _verbId; _vm->_game->_trigger = _interlocutorTrigger; _vm->_game->_triggerMode = _interlocutorTriggerMode; _interlocutorTrigger = 0; } } break; case CONVMODE_STOP: stop(); break; default: break; } warning("TODO: GameConversations::update"); }
int SELECTION_TOOL::Main( TOOL_EVENT& aEvent ) { // Main loop: keep receiving events while( OPT_TOOL_EVENT evt = Wait() ) { // Should selected items be added to the current selection or // become the new selection (discarding previously selected items) m_additive = evt->Modifier( MD_SHIFT ); // single click? Select single object if( evt->IsClick( BUT_LEFT ) ) { if( evt->Modifier( MD_CTRL ) && !m_editModules ) { highlightNet( evt->Position() ); } else { if( !m_additive ) clearSelection(); selectSingle( evt->Position() ); } } // right click? if there is any object - show the context menu else if( evt->IsClick( BUT_RIGHT ) ) { if( m_selection.Empty() ) selectSingle( evt->Position() ); generateMenu(); } // double click? Display the properties window else if( evt->IsDblClick( BUT_LEFT ) ) { if( m_selection.Empty() ) selectSingle( evt->Position() ); m_toolMgr->RunAction( COMMON_ACTIONS::properties ); } // drag with LMB? Select multiple objects (or at least draw a selection box) or drag them else if( evt->IsDrag( BUT_LEFT ) ) { if( m_additive ) { selectMultiple(); } else if( m_selection.Empty() ) { // There is nothing selected, so try to select something if( !selectSingle( getView()->ToWorld( getViewControls()->GetMousePosition() ), false ) ) { // If nothings has been selected or user wants to select more // draw the selection box selectMultiple(); } else { m_toolMgr->InvokeTool( "pcbnew.InteractiveEdit" ); } } else { // Check if dragging has started within any of selected items bounding box if( selectionContains( evt->Position() ) ) { // Yes -> run the move tool and wait till it finishes m_toolMgr->InvokeTool( "pcbnew.InteractiveEdit" ); } else { // No -> clear the selection list clearSelection(); } } } else if( evt->IsAction( &COMMON_ACTIONS::selectionSingle ) ) { // GetMousePosition() is used, as it is independent of snapping settings selectSingle( getView()->ToWorld( getViewControls()->GetMousePosition() ) ); } else if( evt->IsCancel() || evt->Action() == TA_UNDO_REDO || evt->IsAction( &COMMON_ACTIONS::selectionClear ) ) { clearSelection(); } } // This tool is supposed to be active forever assert( false ); return 0; }