void QMultiLineEdit::end( bool mark ) { moveCursor( MoveLineEnd, mark ); }
void Editable::insertAtCursor(const string &str) { deleteSelection(); _str.insert(_cursor,str); makeDirty(true); moveCursor(str.length()); }
const Cursor& middlePanningCursor() { return moveCursor(); }
void appl::TextViewer::mouseEventTriple() { //m_selectMode = false; moveCursor(m_buffer->getEndLine(m_buffer->cursor())); m_buffer->setSelectionPos(m_buffer->getStartLine(m_buffer->cursor())); }
static int updateMenu( int key, void ** paramPtr ) { int moved = 0; union { struct { unsigned int selectionUp : 1, selectionDown : 1, scrollUp : 1, scrollDown : 1; } f; unsigned int w; } draw = {{0}}; if ( gMenuItems == NULL ) return 0; if( bootArgs->Video.v_display != VGA_TEXT_MODE ) { int res; // set navigation keys for horizontal layout as defaults int previous = 0x4B00; // left arrow int subsequent = 0x4D00; // right arrow int menu = 0x5000; // down arrow if ( gui.layout == VerticalLayout ) { // set navigation keys for vertical layout previous = 0x4800; // up arrow subsequent = 0x5000; // down arrow menu = 0x4B00; // right arrow } if ( key == previous ) { if ( gMenuSelection > gMenuTop ) draw.f.selectionUp = 1; else if ( gMenuTop > 0 ) draw.f.scrollDown = 1; } else if ( key == subsequent ) { if ( gMenuSelection != gMenuBottom) draw.f.selectionDown = 1; else if ( gMenuBottom < ( gMenuItemCount - 1 ) ) draw.f.scrollUp = 1; } else if ( key == menu ) { if ( gui.menu.draw ) updateInfoMenu(key); else drawInfoMenu(); } else if ( gui.menu.draw ) { res = updateInfoMenu(key); if ( res == CLOSE_INFO_MENU ) gui.menu.draw = false; else { shouldboot = ( res != DO_NOT_BOOT ); if ( shouldboot ) gui.menu.draw = false; switch (res) { case BOOT_NORMAL: gVerboseMode = false; gBootMode = kBootModeNormal; shouldAddBootUuid = true; break; case BOOT_VERBOSE: gVerboseMode = true; gBootMode = kBootModeNormal; addBootArg(kVerboseModeFlag); shouldAddBootUuid = true; break; case BOOT_NO_BOOT_UUID: gVerboseMode = true; gBootMode = kBootModeNormal; addBootArg(kVerboseModeFlag); shouldAddBootUuid = false; break; case BOOT_RESERVED: gVerboseMode = false; gBootMode = kBootModeNormal; // addBootArg(kSingleUserModeFlag); shouldAddBootUuid = false; break; } } } } else { switch ( key ) { case 0x4800: // Up Arrow if ( gMenuSelection != gMenuTop ) draw.f.selectionUp = 1; else if ( gMenuTop > 0 ) draw.f.scrollDown = 1; break; case 0x5000: // Down Arrow if ( gMenuSelection != gMenuBottom ) draw.f.selectionDown = 1; else if ( gMenuBottom < (gMenuItemCount - 1) ) draw.f.scrollUp = 1; break; } } if ( draw.w ) { if ( draw.f.scrollUp ) { scollPage(0, gMenuRow, 40, gMenuRow + gMenuHeight - 1, 0x07, 1, 1); gMenuTop++; gMenuBottom++; gMenuStart++; gMenuEnd++; draw.f.selectionDown = 1; } if ( draw.f.scrollDown ) { scollPage(0, gMenuRow, 40, gMenuRow + gMenuHeight - 1, 0x07, 1, -1); gMenuTop--; gMenuBottom--; gMenuStart--; gMenuEnd--; draw.f.selectionUp = 1; } if ( draw.f.selectionUp || draw.f.selectionDown ) { CursorState cursorState; // Set cursor at current position, and clear inverse video. if( bootArgs->Video.v_display == VGA_TEXT_MODE ) { changeCursor( 0, gMenuRow + gMenuSelection - gMenuTop, kCursorTypeHidden, &cursorState ); printMenuItem( &gMenuItems[gMenuSelection], 0 ); } if ( draw.f.selectionUp ) { gMenuSelection--; if(( gMenuSelection - gMenuStart) == -1 ) { gMenuStart--; gMenuEnd--; } } else { gMenuSelection++; if(( gMenuSelection - ( gui.maxdevices - 1) - gMenuStart) > 0 ) { gMenuStart++; gMenuEnd++; } } if( bootArgs->Video.v_display == VGA_TEXT_MODE ) { moveCursor( 0, gMenuRow + gMenuSelection - gMenuTop ); printMenuItem( &gMenuItems[gMenuSelection], 1 ); restoreCursor( &cursorState ); } else drawDeviceList (gMenuStart, gMenuEnd, gMenuSelection); } *paramPtr = gMenuItems[gMenuSelection].param; moved = 1; } return moved; }
void PacketList::goPreviousPacket(void) { setCurrentIndex(moveCursor(MoveUp, Qt::NoModifier)); }
void PacketList::goLastPacket(void) { setCurrentIndex(moveCursor(MoveEnd, Qt::NoModifier)); }
void RoomTableView::moveUp() { setCurrentIndex(moveCursor(QAbstractItemView::MoveUp, Qt::NoModifier)); }
int main() { srand(time(NULL)); const int Number_of_Rects = 5; // initialization Rect userRect(7, 5, 10, 9); // Controlled Square Size Rect * rect = new Rect[Number_of_Rects]; // creates an array of 5 rectangles. // Rect * rect1 = new Rect; // (1, 6, 5, 15) // rect1->setRandomByPointer(rect1); int userInput; for(int i = 0; i < Number_of_Rects; i++) // sets 5 rectanges to a random position { setRandom(rect[i]); } do { // draw for(int i = 0; i < Number_of_Rects; i++) // draw 5 rectangles that are numbered from 0 - 4 { rect[i].draw('0'+i); } //rect1->draw('1'); moveCursor(0, 0); // re-print instructions printf("move with 'w', 'a', 's', and 'd'"); userRect.draw('#'); moveCursor(40, 0); printf("No Collision"); checkCollision(userRect, rect, Number_of_Rects); // collision detection. Prints "+" if player collides with other Rects /*for(int i = 0; i < Number_of_Rects; ++i) // old collision detector { if(userRect.isOverlapping( rect[i] ) ) { userRect.draw('+'); moveCursor(40, 0); printf("Collision"); } else { moveCursor(40, 0); printf("No Collision"); } }*/ // user input userInput = _getch(); // update Vec2 move; switch(userInput) // takes userInput to move controlled rectangle { case 'w': move = Vec2( 0,-1); break; case 'a': move = Vec2(-1, 0); break; case 's': move = Vec2( 0,+1); break; case 'd': move = Vec2(+1, 0); break; } userRect.draw(' '); // un-draw before moving userRect.translate(move); // Draws square at new location }while(userInput != 27); // escape key delete [] rect; return 0; }
void QMultiLineEdit::cursorUp( bool mark ) { moveCursor( MoveUp, mark ); }
void QMultiLineEdit::cursorDown( bool mark ) { moveCursor( MoveDown, mark ); }
void QMultiLineEdit::cursorRight( bool mark, bool ) { moveCursor( MoveForward, mark ); }
void QMultiLineEdit::cursorLeft( bool mark, bool ) { moveCursor( MoveBackward, mark ); }
/*! Moves the cursor one word to the left. If \a mark is TRUE, the text is selected. \sa cursorWordForward() */ void QMultiLineEdit::cursorWordBackward( bool mark ) { moveCursor( MoveWordBackward, mark ); }
void CodeEditor::keyPressEvent(QKeyEvent *e){ switch(e->key()) { case Qt::Key_Backspace: { if (placedDoubleCharacter) { moveCursor(QTextCursor::Right); QPlainTextEdit::keyPressEvent(e); QPlainTextEdit::keyPressEvent(e); } else { QPlainTextEdit::keyPressEvent(e); } } break; case Qt::Key_BraceRight: case Qt::Key_BracketRight: case Qt::Key_ParenRight: case Qt::Key_Greater: { if (!placedDoubleCharacter) { placedDoubleCharacter = false; QPlainTextEdit::keyPressEvent(e); } else { moveCursor(QTextCursor::Right); } } break; case Qt::Key_BraceLeft: //notices on keypress that an open brace has been entered and immediately puts a //closing brace and moves the cursor inside { textCursor().beginEditBlock(); placedDoubleCharacter = true; insertPlainText("{}"); moveCursor(QTextCursor::Left); textCursor().endEditBlock(); } break; case Qt::Key_ParenLeft://notices on keypress that an open paren has been entered and immediately puts a //closing paren and moves the cursor inside { textCursor().beginEditBlock(); placedDoubleCharacter = true; insertPlainText("()"); moveCursor(QTextCursor::Left); textCursor().endEditBlock(); } break; case Qt::Key_BracketLeft://notices on keypress that an open paren has been entered and immediately puts a //closing paren and moves the cursor inside { textCursor().beginEditBlock(); placedDoubleCharacter = true; insertPlainText("[]"); moveCursor(QTextCursor::Left); textCursor().endEditBlock(); } break; case Qt::Key_Less: { textCursor().beginEditBlock(); placedDoubleCharacter = true; insertPlainText("<>"); moveCursor(QTextCursor::Left); textCursor().endEditBlock(); } break; case Qt::Key_Apostrophe://notices on keypress that an apostrophe has been entered and immediately puts a //closing apostrophe and moves the cursor inside { if (!placedDoubleCharacter) { textCursor().beginEditBlock(); placedDoubleCharacter = true; insertPlainText("''"); moveCursor(QTextCursor::Left); textCursor().endEditBlock(); } } break; case Qt::Key_QuoteDbl: { if (!placedDoubleCharacter) { textCursor().beginEditBlock(); placedDoubleCharacter = true; insertPlainText("\"\""); moveCursor(QTextCursor::Left); textCursor().endEditBlock(); } } break; case Qt::Key_Return: { textCursor().beginEditBlock(); QString indent = getLineIndent(); QPlainTextEdit::keyPressEvent(e); insertPlainText(indent); if (placedDoubleCharacter) { insertPlainText("\t"); QPlainTextEdit::keyPressEvent(e); insertPlainText(indent); moveCursor(QTextCursor::Up); moveCursor(QTextCursor::EndOfLine); } placedDoubleCharacter = false; textCursor().endEditBlock(); } break; default: placedDoubleCharacter = false; QPlainTextEdit::keyPressEvent(e); break; } }
void TextEdit::setText(const QString& text) { KTextEdit::setPlainText(text); moveCursor(QTextCursor::End); setEnabled(true); }
void PacketList::goNextPacket(void) { setCurrentIndex(moveCursor(MoveDown, Qt::NoModifier)); }
void TasMouseEventGenerator::doMouseMove(const TasEventTarget& target, QPoint point, Qt::MouseButton button, uint pointerNumber ) { moveCursor(point); QMouseEvent* eventMove = new QMouseEvent(QEvent::MouseMove, target.mapFromGlobal(point), point, button, button, 0); sendMouseEvent(target, eventMove, pointerNumber); }
void PacketList::goFirstPacket(void) { setCurrentIndex(moveCursor(MoveHome, Qt::NoModifier)); }
void j_console::drawTextBox (const std::string& caption, const std::string& message, int x, int y, int width, int height, j_consoleColors border, j_consoleColors fill, j_consoleColors captionTextColor, j_consoleColors textColor, j_messageBox messageBoxType, const std::string& closingMessage) { int messagePosition = 0; int linesWritten = 0; // Draw Box for (int i = 0; i < height; ++i) { for (int ii = 0; ii < width; ++ii) { if (i == 0 || i == (height-1) || ii == 0 || ii == (width-1)) setBGColor (border); else setBGColor (fill); moveCursor (ii+x, i+y); out (" "); } } // Display Caption moveCursor (x,y); setBGColor (border); setFGColor (captionTextColor); out (caption); // Display main message if (height <= 3) { moveCursor (x+1, y+1); out (message); } else { moveCursor (x+(width-2)/2, y+1); setBGColor (fill); setFGColor (textColor); while (message.size () >= messagePosition) { moveCursor (x + 1, y + 1 + linesWritten); out (message.substr (messagePosition, (width-2))); messagePosition += width-2; linesWritten++; } } // Display closing message if (messageBoxType == mboxEnter) { moveCursor (x, y+height-1); setBGColor (border); setFGColor (captionTextColor); out ("Press Enter"); } else if (messageBoxType == mboxYesNo) { moveCursor (x, y+height-1); setBGColor (border); setFGColor (captionTextColor); out ("Yes(y) No(n)"); } else if (messageBoxType = mboxOther) { moveCursor (x, y+height-1); setBGColor (border); setFGColor (captionTextColor); out (closingMessage); } moveCursor (0, 0); }
bool appl::TextViewer::onEventInput(const ewol::event::Input& _event) { if ( _event.getId() != 0 && _event.getStatus() == gale::key::status::down) { keepFocus(); } //tic(); if (m_buffer == nullptr) { return false; } // First call the scrolling widget : if (ewol::widget::WidgetScrolled::onEventInput(_event) == true) { markToRedraw(); return true; } // Second call plugin if (m_pluginManager->onEventInput(*this, _event) == true) { markToRedraw(); return true; } vec2 relativePos = relativePosition(_event.getPos()); // offset for the lineNumber: relativePos -= vec2(m_lastOffsetDisplay, 0); // offset for the scrolling: relativePos += vec2(m_originScrooled.x(), -m_originScrooled.y()); // invert for the buffer event ... relativePos.setY(m_size.y()-relativePos.y()); if (relativePos.x()<0) { relativePos.setX(0); } if ( _event.getId() == 12 && _event.getStatus() == gale::key::status::pressSingle) { APPL_TODO("RAT5 SAVE button ==> TODO implement"); // Rat5 save event //sendMultiCast(ednMsgGuiSave, "current"); return true; } // just forward event == > manage directly in the buffer if (_event.getId() == 1) { // mouse selection : //if (_event.getType() == gale::key::typeMouse) { if (_event.getStatus() == gale::key::status::down) { //if (_event.getSpecialKey().isSetShift() == false) { appl::Buffer::Iterator newPos = getMousePosition(relativePos); m_buffer->setSelectMode(false); moveCursor(newPos); m_buffer->setSelectMode(true); markToRedraw(); return true; //} } else if (_event.getStatus() == gale::key::status::up) { appl::Buffer::Iterator newPos = getMousePosition(relativePos); moveCursor(newPos); m_buffer->setSelectMode(false); // Copy selection : std::string value; m_buffer->copy(value); if (value.size() != 0) { gale::context::clipBoard::set(gale::context::clipBoard::clipboardSelection, value); } markToRedraw(); return true; } //} if (_event.getStatus() == gale::key::status::pressSingle) { if ( _event.getType() == gale::key::type::mouse || _event.getType() == gale::key::type::finger) { appl::Buffer::Iterator newPos = getMousePosition(relativePos); moveCursor(newPos); markToRedraw(); return true; } } else if (_event.getStatus() == gale::key::status::pressDouble) { mouseEventDouble(); // Copy selection : std::string value; m_buffer->copy(value); if (value.size() != 0) { gale::context::clipBoard::set(gale::context::clipBoard::clipboardSelection, value); } markToRedraw(); return true; } else if (_event.getStatus() == gale::key::status::pressTriple) { mouseEventTriple(); // Copy selection : std::string value; m_buffer->copy(value); if (value.size() != 0) { gale::context::clipBoard::set(gale::context::clipBoard::clipboardSelection, value); } markToRedraw(); return true; } else if (_event.getStatus() == gale::key::status::move) { if (m_buffer->getSelectMode() == true) { //int64_t timeStart = ewol::getTime(); appl::Buffer::Iterator newPos = getMousePosition(relativePos); //int64_t timeMedium1 = ewol::getTime(); moveCursor(newPos); //int64_t timeMedium2 = ewol::getTime(); markToRedraw(); /* int64_t timeStop = ewol::getTime(); APPL_DEBUG("Display selection=" << (timeStop-timeStart)/1000.0f << " ms"); APPL_DEBUG(" 1=" << (timeMedium1-timeStart)/1000.0f << " ms"); APPL_DEBUG(" 2=" << (timeMedium2-timeMedium1)/1000.0f << " ms"); */ return true; } } } else if (2 == _event.getId()) { if (gale::key::status::pressSingle == _event.getStatus()) { appl::Buffer::Iterator newPos = getMousePosition(relativePos); moveCursor(newPos); gale::context::clipBoard::request(gale::context::clipBoard::clipboardSelection); markToRedraw(); return true; } } return false; }
void show() { moveCursor(0); LCD.blinkCursor(true); LCD.moveCursor(1, cursorPos); }
void EditorScreen::clearLines() { _lines.clear(); initTopLineIndex(); moveCursor(0, 0); }
void TCommandLine::handleTabCompletion( bool direction ) { if( ( mTabCompletionCount < 0 ) || ( mUserKeptOnTyping ) ) { mTabCompletionTyped = toPlainText(); if( mTabCompletionTyped.size() == 0 ) return; mUserKeptOnTyping = false; mTabCompletionCount = -1; } int amount = mpHost->mpConsole->buffer.size(); if( amount > 500 ) amount = 500; QStringList bufferList = mpHost->mpConsole->buffer.getEndLines( amount ); QString buffer = bufferList.join(" "); buffer.replace(QChar( 0x21af ), "\n"); buffer.replace(QChar('\n'), " " ); QStringList wordList = buffer.split( QRegExp("\\b"), QString::SkipEmptyParts ); if( direction ) { mTabCompletionCount++; } else { mTabCompletionCount--; } if( wordList.size() > 0 ) { if( mTabCompletionTyped.endsWith(" ") ) return; QString lastWord; QRegExp reg = QRegExp("\\b(\\w+)$"); int typePosition = reg.indexIn( mTabCompletionTyped ); if( reg.numCaptures() >= 1 ) lastWord = reg.cap( 1 ); else lastWord = ""; QStringList filterList = wordList.filter( QRegExp( "^"+lastWord+"\\w+",Qt::CaseInsensitive ) ); if( filterList.size() < 1 ) return; int offset = 0; for( ; ; ) { QString tmp = filterList.back(); filterList.removeAll( tmp ); filterList.insert( offset, tmp ); ++offset; if( offset >= filterList.size() ) break; } if( filterList.size() > 0 ) { if( mTabCompletionCount >= filterList.size() ) mTabCompletionCount = filterList.size()-1; if( mTabCompletionCount < 0 ) mTabCompletionCount = 0; QString proposal = filterList[mTabCompletionCount]; QString userWords = mTabCompletionTyped.left( typePosition ); setPlainText( QString( userWords + proposal ).trimmed() ); moveCursor( QTextCursor::End, QTextCursor::MoveAnchor ); mTabCompletionOld = toPlainText(); } } }
static int countdown( const char * msg, int row, int timeout ) { unsigned long time; int ch = 0; int col = strlen(msg) + 1; flushKeyboardBuffer(); if( bootArgs->Video.v_display == VGA_TEXT_MODE ) { moveCursor( 0, row ); printf(msg); } else { position_t p = pos( gui.screen.width / 2 + 1 , ( gui.devicelist.pos.y + 3 ) + ( ( gui.devicelist.height - gui.devicelist.iconspacing ) / 2 ) ); char dummy[80]; getBootVolumeDescription( gBootVolume, dummy, sizeof(dummy) - 1, true ); drawDeviceIcon( gBootVolume, gui.screen.pixmap, p, true ); drawStrCenteredAt( (char *) msg, &font_small, gui.screen.pixmap, gui.countdown.pos ); // make this screen the new background memcpy( gui.backbuffer->pixels, gui.screen.pixmap->pixels, gui.backbuffer->width * gui.backbuffer->height * 4 ); } int multi_buff = 18 * (timeout); int multi = ++multi_buff; int lasttime=0; for ( time = time18(), timeout++; timeout > 0; ) { if( time18() > lasttime) { multi--; lasttime=time18(); } if (ch = readKeyboardStatus()) break; // Count can be interrupted by holding down shift, // control or alt key if ( ( readKeyboardShiftFlags() & 0x0F ) != 0 ) { ch = 1; break; } if ( time18() >= time ) { time += 18; timeout--; if( bootArgs->Video.v_display == VGA_TEXT_MODE ) { moveCursor( col, row ); printf("(%d) ", timeout); } } if( bootArgs->Video.v_display != VGA_TEXT_MODE ) { drawProgressBar( gui.screen.pixmap, 100, gui.progressbar.pos , ( multi * 100 / multi_buff ) ); gui.redraw = true; updateVRAM(); } } flushKeyboardBuffer(); return ch; }
bool TCommandLine::event( QEvent * event ) { if( event->type() == QEvent::KeyPress ) { QKeyEvent *ke = static_cast<QKeyEvent *>( event ); //qDebug()<<"modifier="<<ke->modifiers()<<" key="<<ke->key(); switch( ke->key() ) { case Qt::Key_Space: mTabCompletionCount = -1; mAutoCompletionCount = -1; mTabCompletionTyped = ""; mAutoCompletionTyped = ""; if( mpHost->mAutoClearCommandLineAfterSend ) mHistoryBuffer = -1; else mHistoryBuffer = 0; mLastCompletion = ""; break; case Qt::Key_Backtab: if( ke->modifiers() & Qt::ControlModifier ) { int currentIndex = mudlet::self()->mpTabBar->currentIndex(); int count = mudlet::self()->mpTabBar->count(); if( currentIndex-1 < 0 ) mudlet::self()->mpTabBar->setCurrentIndex(count-1); else mudlet::self()->mpTabBar->setCurrentIndex(currentIndex-1); } else { handleTabCompletion( false ); adjustHeight(); } ke->accept(); return true; break; case Qt::Key_Tab: if( ke->modifiers() & Qt::ControlModifier ) { int currentIndex = mudlet::self()->mpTabBar->currentIndex(); int count = mudlet::self()->mpTabBar->count(); if( currentIndex+1 < count ) mudlet::self()->mpTabBar->setCurrentIndex(currentIndex+1); else mudlet::self()->mpTabBar->setCurrentIndex(0); } else handleTabCompletion( true ); ke->accept(); return true; break; // case Qt::Key_Backtab: // handleTabCompletion( false ); // ke->accept(); // adjustHeight(); // return true; // break; // case Qt::Key_Tab: // handleTabCompletion( true ); // ke->accept(); // return true; // break; case Qt::Key_unknown: qWarning()<<"ERROR: key unknown!"; break; case Qt::Key_Backspace: if( mpHost->mAutoClearCommandLineAfterSend ) mHistoryBuffer = -1; else mHistoryBuffer = 0; if( mTabCompletionTyped.size() >= 1 ) { mTabCompletionTyped.chop(1); mAutoCompletionTyped.chop(1); mTabCompletionCount = -1; mAutoCompletionCount = -1; mLastCompletion = ""; } else { mTabCompletionCount = -1; mAutoCompletionCount = -1; mLastCompletion = ""; } QPlainTextEdit::event(event); adjustHeight(); return true; case Qt::Key_Delete: if( mpHost->mAutoClearCommandLineAfterSend ) mHistoryBuffer = -1; else mHistoryBuffer = 0; if( mTabCompletionTyped.size() >= 1 ) { mTabCompletionTyped.chop(1); mAutoCompletionTyped.chop(1); mTabCompletionCount = -1; mAutoCompletionCount = -1; mLastCompletion = ""; } else { mTabCompletionCount = -1; mAutoCompletionCount = -1; mLastCompletion = ""; mTabCompletionTyped = ""; mAutoCompletionTyped = ""; mUserKeptOnTyping = false; mTabCompletionCount = -1; mAutoCompletionCount = -1; } QPlainTextEdit::event(event); adjustHeight(); return true; break; case Qt::Key_Return: if( ke->modifiers() & Qt::ControlModifier ) { mpConsole->console2->mCursorY = mpConsole->buffer.size();// mpConsole->console2->hide(); mpConsole->buffer.mCursorY = mpConsole->buffer.size(); mpConsole->console->mCursorY = mpConsole->buffer.size();// mpConsole->console->mIsTailMode = true; mpConsole->console->updateScreenView(); mpConsole->console->forceUpdate(); ke->accept(); return true; } else if( ke->modifiers() & Qt::ShiftModifier ) { textCursor().insertBlock(); /*if( ! textCursor().movePosition(QTextCursor::Down, QTextCursor::KeepAnchor) ) { textCursor().insertBlock(); }*/ ke->accept(); return true; } else { enterCommand(ke); mTabCompletionCount = -1; mAutoCompletionCount = -1; mLastCompletion = ""; mTabCompletionTyped = ""; mAutoCompletionTyped = ""; mUserKeptOnTyping = false; mTabCompletionCount = -1; mAutoCompletionCount = -1; if( mpHost->mAutoClearCommandLineAfterSend ) { clear(); mHistoryBuffer = -1; } else mHistoryBuffer = 0; adjustHeight(); ke->accept(); return true; } break; case Qt::Key_Enter: enterCommand(ke); mTabCompletionCount = -1; mAutoCompletionCount = -1; mLastCompletion = ""; mTabCompletionTyped = ""; mAutoCompletionTyped = ""; mUserKeptOnTyping = false; mTabCompletionCount = -1; mAutoCompletionCount = -1; if( mpHost->mAutoClearCommandLineAfterSend ) { clear(); mHistoryBuffer = -1; } else mHistoryBuffer = 0; adjustHeight(); ke->accept(); return true; break; case Qt::Key_Down: if( ke->modifiers() & Qt::ControlModifier ) { moveCursor(QTextCursor::Down, QTextCursor::MoveAnchor); ke->accept(); return true; } else { historyDown(ke); ke->accept(); return true; } break; case Qt::Key_Up: if( ke->modifiers() & Qt::ControlModifier ) { moveCursor(QTextCursor::Up, QTextCursor::MoveAnchor ); ke->accept(); return true; } else { historyUp(ke); ke->accept(); return true; } break; case Qt::Key_Escape: selectAll(); mAutoCompletion = false; mTabCompletion = false; mTabCompletionTyped = ""; mAutoCompletionTyped = ""; mUserKeptOnTyping = false; mTabCompletionCount = -1; mAutoCompletionCount = -1; setPalette( mRegularPalette ); if( mpHost->mAutoClearCommandLineAfterSend ) mHistoryBuffer = -1; else mHistoryBuffer = 0; ke->accept(); return true; break; case Qt::Key_PageUp: mpConsole->scrollUp( mpHost->mScreenHeight ); ke->accept(); return true; break; case Qt::Key_PageDown: mpConsole->scrollDown( mpHost->mScreenHeight ); ke->accept(); return true; break; case Qt::Key_C: if( ke->modifiers() & Qt::ControlModifier ) { if( mpConsole->console->mSelectedRegion != QRegion( 0, 0, 0, 0 ) ) { mpConsole->console->copySelectionToClipboard(); ke->accept(); return true; } } break; default: if( mpKeyUnit->processDataStream( ke->key(), (int)ke->modifiers() ) ) { ke->accept(); return true; } else { QPlainTextEdit::event( event ); adjustHeight(); if( mpHost->mAutoClearCommandLineAfterSend ) mHistoryBuffer = -1; else mHistoryBuffer = 0; if( mTabCompletionOld != toPlainText() )//text() ) { mUserKeptOnTyping = true; mAutoCompletionCount = -1; } else { mUserKeptOnTyping = false; } spellCheck(); return false; } } } return QPlainTextEdit::event( event ); }
const Cursor& Cursor::fromType(Cursor::Type type) { switch (type) { case Cursor::Pointer: return pointerCursor(); case Cursor::Cross: return crossCursor(); case Cursor::Hand: return handCursor(); case Cursor::IBeam: return iBeamCursor(); case Cursor::Wait: return waitCursor(); case Cursor::Help: return helpCursor(); case Cursor::EastResize: return eastResizeCursor(); case Cursor::NorthResize: return northResizeCursor(); case Cursor::NorthEastResize: return northEastResizeCursor(); case Cursor::NorthWestResize: return northWestResizeCursor(); case Cursor::SouthResize: return southResizeCursor(); case Cursor::SouthEastResize: return southEastResizeCursor(); case Cursor::SouthWestResize: return southWestResizeCursor(); case Cursor::WestResize: return westResizeCursor(); case Cursor::NorthSouthResize: return northSouthResizeCursor(); case Cursor::EastWestResize: return eastWestResizeCursor(); case Cursor::NorthEastSouthWestResize: return northEastSouthWestResizeCursor(); case Cursor::NorthWestSouthEastResize: return northWestSouthEastResizeCursor(); case Cursor::ColumnResize: return columnResizeCursor(); case Cursor::RowResize: return rowResizeCursor(); case Cursor::MiddlePanning: return middlePanningCursor(); case Cursor::EastPanning: return eastPanningCursor(); case Cursor::NorthPanning: return northPanningCursor(); case Cursor::NorthEastPanning: return northEastPanningCursor(); case Cursor::NorthWestPanning: return northWestPanningCursor(); case Cursor::SouthPanning: return southPanningCursor(); case Cursor::SouthEastPanning: return southEastPanningCursor(); case Cursor::SouthWestPanning: return southWestPanningCursor(); case Cursor::WestPanning: return westPanningCursor(); case Cursor::Move: return moveCursor(); case Cursor::VerticalText: return verticalTextCursor(); case Cursor::Cell: return cellCursor(); case Cursor::ContextMenu: return contextMenuCursor(); case Cursor::Alias: return aliasCursor(); case Cursor::Progress: return progressCursor(); case Cursor::NoDrop: return noDropCursor(); case Cursor::Copy: return copyCursor(); case Cursor::None: return noneCursor(); case Cursor::NotAllowed: return notAllowedCursor(); case Cursor::ZoomIn: return zoomInCursor(); case Cursor::ZoomOut: return zoomOutCursor(); case Cursor::Grab: return grabCursor(); case Cursor::Grabbing: return grabbingCursor(); case Cursor::Custom: ASSERT_NOT_REACHED(); } return pointerCursor(); }
bool DrasculaEngine::runCurrentChapter() { int n; _rightMouseButton = 0; previousMusic = -1; if (currentChapter != 2) { int soc = 0; for (n = 0; n < 6; n++) { soc = soc + CHARACTER_WIDTH; _frameX[n] = soc; } } for (n = 1; n < ARRAYSIZE(inventoryObjects); n++) inventoryObjects[n] = 0; for (n = 0; n < NUM_FLAGS; n++) flags[n] = 0; if (currentChapter == 2) { flags[16] = 1; flags[17] = 1; flags[27] = 1; } for (n = 1; n < 7; n++) inventoryObjects[n] = n; if (currentChapter == 1) { pickObject(28); if (!_loadedDifferentChapter) animation_1_1(); selectVerb(kVerbNone); loadPic("2aux62.alg", drawSurface2); trackProtagonist = 1; objExit = 104; if (_loadedDifferentChapter) { if (!loadGame(_currentSaveSlot)) { return true; } } else { enterRoom(62); curX = -20; curY = 56; gotoObject(65, 145); } // REMINDER: This is a good place to debug animations } else if (currentChapter == 2) { addObject(kItemPhone); trackProtagonist = 3; objExit = 162; if (!_loadedDifferentChapter) enterRoom(14); else { if (!loadGame(_currentSaveSlot)) { return true; } } } else if (currentChapter == 3) { addObject(kItemPhone); addObject(kItemEarplugs); addObject(kItemSickle); addObject(kItemHandbag); addObject(kItemCross); addObject(kItemReefer); addObject(kItemOneCoin); flags[1] = 1; trackProtagonist = 1; objExit = 99; if (!_loadedDifferentChapter) enterRoom(20); else { if (!loadGame(_currentSaveSlot)) { return true; } } // From here onwards the items have different IDs } else if (currentChapter == 4) { addObject(kItemPhone2); addObject(kItemCross2); addObject(kItemReefer2); addObject(kItemOneCoin2); objExit = 100; if (!_loadedDifferentChapter) { enterRoom(21); trackProtagonist = 0; curX = 235; curY = 164; } else { if (!loadGame(_currentSaveSlot)) { return true; } } } else if (currentChapter == 5) { addObject(28); addObject(7); addObject(9); addObject(11); addObject(13); addObject(14); addObject(15); addObject(17); addObject(20); trackProtagonist = 1; objExit = 100; if (!_loadedDifferentChapter) { enterRoom(45); } else { if (!loadGame(_currentSaveSlot)) { return true; } } } else if (currentChapter == 6) { addObject(28); addObject(9); trackProtagonist = 1; objExit = 104; if (!_loadedDifferentChapter) { enterRoom(58); animation_1_6(); } else { if (!loadGame(_currentSaveSlot)) { return true; } loadPic("auxdr.alg", drawSurface2); } } showCursor(); while (!shouldQuit()) { if (characterMoved == 0) { stepX = STEP_X; stepY = STEP_Y; } if (characterMoved == 0 && walkToObject == 1) { trackProtagonist = trackFinal; walkToObject = 0; } if (currentChapter == 2) { // NOTE: the checks for room number 14 below are a hack used in the original // game, and move the character to a place where his feet are not drawn above // the pianist's head. Originally, walkToObject was not updated properly, which // lead to an incorrect setting of the protagonist's tracking flag (above). This // made the character start walking off screen, as his actual position was // different than the displayed one if (_roomNumber == 3 && (curX == 279) && (curY + curHeight == 101)) { gotoObject(178, 121); gotoObject(169, 135); } else if (_roomNumber == 14 && (curX == 214) && (curY + curHeight == 121)) { walkToObject = 1; gotoObject(190, 130); } else if (_roomNumber == 14 && (curX == 246) && (curY + curHeight == 112)) { walkToObject = 1; gotoObject(190, 130); } } moveCursor(); updateScreen(); if (currentChapter == 2) { if (musicStatus() == 0 && roomMusic != 0) playMusic(roomMusic); } else { if (musicStatus() == 0) playMusic(roomMusic); } delay(25); #ifndef _WIN32_WCE // FIXME // This and the following #ifndefs disable the excess updateEvents() calls *within* the game loop. // Events such as keypresses or mouse clicks are dropped on the ground with no processing // by these calls. They are properly handled by the implicit call through getScan() below. // It is not a good practice to not process events and indeed this created problems with synthesized // events in the wince port. updateEvents(); #endif if (!_menuScreen && takeObject == 1) checkObjects(); #ifdef _WIN32_WCE if (_rightMouseButton) { if (_menuScreen) { #else if (_rightMouseButton == 1 && _menuScreen) { #endif _rightMouseButton = 0; delay(100); if (currentChapter == 2) { loadPic(menuBackground, cursorSurface); loadPic(menuBackground, backSurface); } else { loadPic(99, cursorSurface); loadPic(99, backSurface); } setPalette((byte *)&gamePalette); _menuScreen = false; #ifndef _WIN32_WCE // FIXME: This call here is in hope that it will catch the rightmouseup event so the // next if block won't be executed. This too is not a good coding practice. I've recoded it // with a mutual exclusive if block for the menu. I would commit this properly but I cannot test // for other (see Desktop) ports right now. updateEvents(); #endif #ifdef _WIN32_WCE } else { #else } // Do not show the inventory screen in chapter 5, if the right mouse button is clicked // while the plug (object 16) is held // Fixes bug #2059621 - "DRASCULA: Plug bug" if (_rightMouseButton == 1 && !_menuScreen && !(currentChapter == 5 && pickedObject == 16)) { #endif _rightMouseButton = 0; delay(100); characterMoved = 0; if (trackProtagonist == 2) trackProtagonist = 1; if (currentChapter == 4) { loadPic("icons2.alg", backSurface); loadPic("icons2.alg", cursorSurface); } else if (currentChapter == 5) { loadPic("icons3.alg", backSurface); loadPic("icons3.alg", cursorSurface); } else if (currentChapter == 6) { loadPic("iconsp.alg", backSurface); loadPic("iconsp.alg", cursorSurface); } else { loadPic("icons.alg", backSurface); loadPic("icons.alg", cursorSurface); } _menuScreen = true; #ifndef _WIN32_WCE updateEvents(); #endif selectVerb(kVerbNone); } #ifdef _WIN32_WCE } #endif if (_leftMouseButton == 1 && _menuBar) { delay(100); selectVerbFromBar(); } else if (_leftMouseButton == 1 && takeObject == 0) { delay(100); if (verify1()) return true; } else if (_leftMouseButton == 1 && takeObject == 1) { if (verify2()) return true; } _menuBar = (_mouseY < 24 && !_menuScreen) ? true : false; Common::KeyCode key = getScan(); if (key == Common::KEYCODE_F1 && !_menuScreen) { selectVerb(kVerbLook); } else if (key == Common::KEYCODE_F2 && !_menuScreen) { selectVerb(kVerbPick); } else if (key == Common::KEYCODE_F3 && !_menuScreen) { selectVerb(kVerbOpen); } else if (key == Common::KEYCODE_F4 && !_menuScreen) { selectVerb(kVerbClose); } else if (key == Common::KEYCODE_F5 && !_menuScreen) { selectVerb(kVerbTalk); } else if (key == Common::KEYCODE_F6 && !_menuScreen) { selectVerb(kVerbMove); } else if (key == Common::KEYCODE_F7) { // ScummVM load screen if (!scummVMSaveLoadDialog(false)) return true; } else if (key == Common::KEYCODE_F8) { selectVerb(kVerbNone); } else if (key == Common::KEYCODE_F9) { volumeControls(); } else if (key == Common::KEYCODE_F10) { if (!ConfMan.getBool("originalsaveload")) { // ScummVM save screen scummVMSaveLoadDialog(true); } else { // Original save/load screen if (!saveLoadScreen()) return true; } } else if (key == Common::KEYCODE_v) { _subtitlesDisabled = true; ConfMan.setBool("subtitles", !_subtitlesDisabled); print_abc(_textsys[2], 96, 86); updateScreen(); delay(1410); } else if (key == Common::KEYCODE_t) { _subtitlesDisabled = false; ConfMan.setBool("subtitles", !_subtitlesDisabled); print_abc(_textsys[3], 94, 86); updateScreen(); delay(1460); } else if (key == Common::KEYCODE_ESCAPE) { if (!confirmExit()) return false; } else if (key == Common::KEYCODE_TILDE || key == Common::KEYCODE_BACKQUOTE) { _console->attach(); _console->onFrame(); } else if (currentChapter == 6 && key == Common::KEYCODE_0 && _roomNumber == 61) { loadPic("alcbar.alg", bgSurface, 255); } if (_leftMouseButton != 0 || _rightMouseButton != 0 || key != 0) framesWithoutAction = 0; if (framesWithoutAction == 15000) { screenSaver(); framesWithoutAction = 0; } framesWithoutAction++; } return false; } bool DrasculaEngine::verify1() { int l; if (_menuScreen) removeObject(); else { for (l = 0; l < numRoomObjs; l++) { if (_mouseX >= _objectX1[l] && _mouseY >= _objectY1[l] && _mouseX <= _objectX2[l] && _mouseY <= _objectY2[l] && doBreak == 0) { if (exitRoom(l)) return true; if (doBreak == 1) break; } } if (_mouseX > curX && _mouseY > curY && _mouseX < curX + curWidth && _mouseY < curY + curHeight) doBreak = 1; for (l = 0; l < numRoomObjs; l++) { if (_mouseX > _objectX1[l] && _mouseY > _objectY1[l] && _mouseX < _objectX2[l] && _mouseY < _objectY2[l] && doBreak == 0) { roomX = roomObjX[l]; roomY = roomObjY[l]; trackFinal = trackObj[l]; doBreak = 1; walkToObject = 1; startWalking(); } } if (doBreak == 0) { roomX = CLIP(_mouseX, floorX1, floorX2); roomY = CLIP(_mouseY, floorY1 + feetHeight, floorY2); startWalking(); } doBreak = 0; } return false; }
int main(void){ // initialize init(); while(1) { // input & process if (Stylus.Released) { clearButton(); } if (Pad.Released.L || Pad.Released.R) { pushed_trig = 0; } if (Pad.Released.Left || Pad.Released.Y) { pushed_left = 0; } if (Pad.Released.Right || Pad.Released.A) { pushed_right = 0; } if (Pad.Released.Up || Pad.Released.X) { pushed_up = 0; } if (Pad.Released.Down || Pad.Released.B) { pushed_down = 0; } if (Stylus.Held) { if (!pushed_stylus) { if (result_print == 2) { insertString(inputValue, inputPos, " ", 100); inputValue[inputPos] = getStylusValue(); if (actionStylus2(checkValue(inputValue[inputPos]))) goto LOOP_END; // if (on_graph) { // // } else { // // } } else { insertString(expr, exprPos, " ", 200); expr[exprPos] = getStylusValue(); insertString(p_expr, printStrPos, " ", 340); p_expr[printStrPos] = expr[exprPos]; if (actionStylus(checkValue(expr[exprPos]))) goto LOOP_END; } } pushed_stylus = 1; } if (Pad.Held.L || Pad.Held.R) { if (!pushed_trig) { stylus_page = stylus_page == 1 ? 2 : 1; changeLabel(stylus_page); } pushed_trig = 1; } if (Pad.Held.Left || Pad.Held.Y) { if (!pushed_left) { moveCursor(-1); // left move } pushed_left = 1; } if (Pad.Held.Right || Pad.Held.A) { if (!pushed_right) { moveCursor(1); // right move } pushed_right = 1; } if (Pad.Held.Up || Pad.Held.X) { if (!pushed_up) { overviewPrevExpr(); } pushed_up = 1; } if (Pad.Held.Down || Pad.Held.B) { if (!pushed_down) { overviewNextExpr(); } pushed_down = 1; } // teardown printExpr(); //moveCursor(1); LOOP_END: PA_WaitForVBL(); // process interrupt } return 0; }
void QMultiLineEdit::home( bool mark ) { moveCursor( MoveLineStart, mark ); }