bool IE_Imp_XML::pasteFromBuffer(PD_DocumentRange * pDocRange, const unsigned char * pData, UT_uint32 lenData, const char * /*szEncoding*/) { UT_DEBUGMSG(("IE_Imp_XML::pasteFromBuffer\n")); UT_return_val_if_fail(pDocRange && pDocRange->m_pDoc,false); setClipboard(pDocRange->m_pos1); UT_XML default_xml; UT_XML * parser = &default_xml; if (m_pParser) parser = m_pParser; parser->setListener (this); if (m_pReader) parser->setReader (m_pReader); UT_Error err = parser->parse ((const char*)pData, lenData); if ((err != UT_OK) && (err != UT_IE_SKIPINVALID)) m_error = UT_IE_BOGUSDOCUMENT; if (m_error != UT_OK) { UT_DEBUGMSG(("Problem reading document\n")); return false; } return true; }
int manager::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QObject::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: { QString _r = autoCalc((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; } break; case 1: { QString _r = calc((*reinterpret_cast< const QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; } break; case 2: loadLayouts(); break; case 3: restoreLayouts(); break; case 4: { QString _r = getFunctions((*reinterpret_cast< QString(*)>(_a[1]))); if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; } break; case 5: setABC(); break; case 6: setNumbers(); break; case 7: setAngleModeRadian(); break; case 8: setAngleModeDegree(); break; case 9: { QString _r = getAngleMode(); if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = _r; } break; case 10: setClipboard((*reinterpret_cast< QString(*)>(_a[1]))); break; default: ; } _id -= 11; } return _id; }
void KClipboardSynchronizer::slotSelectionChanged() { QClipboard *clip = QApplication::clipboard(); // qDebug("*** sel changed: %i", s_blocked); if(s_blocked || !clip->ownsSelection()) return; setClipboard(new MimeSource(clip->data(QClipboard::Selection)), QClipboard::Clipboard); }
void copyEntryData(QAbstractItemView* view, int column, int role) { if (!view || !view->selectionModel()) return; QModelIndexList selection = view->selectionModel()->selectedRows(column); if (!selection.isEmpty()) { // Copy first item setClipboard(selection.at(0).data(role).toString()); } }
void KClipboardSynchronizer::slotClipboardChanged() { QClipboard *clip = QApplication::clipboard(); // qDebug("*** clip changed : %i (implicit: %i, ownz: clip: %i, selection: %i)", s_blocked, s_implicitSelection, clip->ownsClipboard(), // clip->ownsSelection()); if(s_blocked || !clip->ownsClipboard()) return; setClipboard(new MimeSource(clip->data(QClipboard::Clipboard)), QClipboard::Selection); }
bool IE_Imp_Object::pasteFromBuffer(PD_DocumentRange * pDocRange, const unsigned char * pData, UT_uint32 lenData, const char * /* encoding */) { UT_return_val_if_fail(getDoc() == pDocRange->m_pDoc,false); UT_return_val_if_fail(pDocRange->m_pos1 == pDocRange->m_pos2,false); ImportStreamClipboard stream(pData, lenData); setClipboard (pDocRange->m_pos1); stream.init(NULL); _parseStream(&stream); return true; }
bool IE_Imp_Text::pasteFromBuffer(PD_DocumentRange * pDocRange, const unsigned char * pData, UT_uint32 lenData, const char *szEncoding) { UT_return_val_if_fail(getDoc() == pDocRange->m_pDoc,false); UT_return_val_if_fail(pDocRange->m_pos1 == pDocRange->m_pos2,false); // Attempt to guess whether we're pasting 8 bit or unicode text if (szEncoding) _setEncoding(szEncoding); else _recognizeEncoding(reinterpret_cast<const char *>(pData), lenData); ImportStreamClipboard stream(pData, lenData); setClipboard (pDocRange->m_pos1); _parseStream(&stream); return true; }
bool IE_Imp_RDF::pasteFromBuffer( PD_DocumentRange * pDocRange, const unsigned char * pData, UT_uint32 lenData, const char *szEncoding ) { UT_UNUSED(szEncoding); UT_return_val_if_fail(getDoc() == pDocRange->m_pDoc,false); UT_return_val_if_fail(pDocRange->m_pos1 == pDocRange->m_pos2,false); std::stringstream ss; ss.write( (const char*)pData, lenData ); UT_DEBUGMSG(("IE_Imp_RDF::pasteFromBuffer() have data:%s\n", ss.str().c_str() )); setClipboard (pDocRange->m_pos1); bool ret = pasteFromBufferSS( pDocRange, ss, szEncoding ); return ret; }
ServerProxy::EResult ServerProxy::parseMessage(const UInt8* code) { if (memcmp(code, kMsgDMouseMove, 4) == 0) { mouseMove(); } else if (memcmp(code, kMsgDMouseRelMove, 4) == 0) { mouseRelativeMove(); } else if (memcmp(code, kMsgDMouseWheel, 4) == 0) { mouseWheel(); } else if (memcmp(code, kMsgDKeyDown, 4) == 0) { keyDown(); } else if (memcmp(code, kMsgDKeyUp, 4) == 0) { keyUp(); } else if (memcmp(code, kMsgDMouseDown, 4) == 0) { mouseDown(); } else if (memcmp(code, kMsgDMouseUp, 4) == 0) { mouseUp(); } else if (memcmp(code, kMsgDKeyRepeat, 4) == 0) { keyRepeat(); } else if (memcmp(code, kMsgCKeepAlive, 4) == 0) { // echo keep alives and reset alarm ProtocolUtil::writef(m_stream, kMsgCKeepAlive); resetKeepAliveAlarm(); } else if (memcmp(code, kMsgCNoop, 4) == 0) { // accept and discard no-op } else if (memcmp(code, kMsgCEnter, 4) == 0) { enter(); } else if (memcmp(code, kMsgCLeave, 4) == 0) { leave(); } else if (memcmp(code, kMsgCClipboard, 4) == 0) { grabClipboard(); } else if (memcmp(code, kMsgCScreenSaver, 4) == 0) { screensaver(); } else if (memcmp(code, kMsgQInfo, 4) == 0) { queryInfo(); } else if (memcmp(code, kMsgCInfoAck, 4) == 0) { infoAcknowledgment(); } else if (memcmp(code, kMsgDClipboard, 4) == 0) { setClipboard(); } else if (memcmp(code, kMsgCResetOptions, 4) == 0) { resetOptions(); } else if (memcmp(code, kMsgDSetOptions, 4) == 0) { setOptions(); } else if (memcmp(code, kMsgDFileTransfer, 4) == 0) { fileChunkReceived(); } else if (memcmp(code, kMsgDDragInfo, 4) == 0) { dragInfoReceived(); } else if (memcmp(code, kMsgCClose, 4) == 0) { // server wants us to hangup LOG((CLOG_DEBUG1 "recv close")); m_client->disconnect(NULL); return kDisconnect; } else if (memcmp(code, kMsgEBad, 4) == 0) { LOG((CLOG_ERR "server disconnected due to a protocol error")); m_client->disconnect("server reported a protocol error"); return kDisconnect; } else { return kUnknown; } // send a reply. this is intended to work around a delay when // running a linux server and an OS X (any BSD?) client. the // client waits to send an ACK (if the system control flag // net.inet.tcp.delayed_ack is 1) in hopes of piggybacking it // on a data packet. we provide that packet here. i don't // know why a delayed ACK should cause the server to wait since // TCP_NODELAY is enabled. ProtocolUtil::writef(m_stream, kMsgCNoop); return kOkay; }
void ofxTextInputField::keyPressed(ofKeyEventArgs& args) { //ew: add charachter (non unicode sorry!) //jg: made a step closer to this with swappable renderers and ofxFTGL -- but need unicode text input... lastTimeCursorMoved = ofGetElapsedTimef(); int key = args.key; if(key == OF_KEY_SHIFT) { isShifted = true; } if(key == 4352) { isCommand = true; } #ifdef USE_GLFW_CLIPBOARD if(key == 'c' && isCommand ) { setClipboard(text.substr(selectionBegin, selectionEnd - selectionBegin)); return; } if(key == 'v' && isCommand ) { text.insert(cursorPosition, getClipboard()); return; } #endif if ((key >=32 && key <=126) || key=='\t' || key==OF_KEY_RETURN) { if(selecting) { text.erase(text.begin() + selectionBegin, text.begin() + selectionEnd ); cursorPosition = selectionBegin; selecting = false; } } if (key == OF_KEY_RETURN) { if(!multiline) { endEditing(); return; } text.insert(text.begin()+cursorPosition, '\n'); cursorPosition++; if(autoTab) { // how much whitespace is there on the previous line? int xx, yy; getCursorCoords(cursorPosition, xx, yy); vector<string> lines = ofSplitString(text, "\n"); if(yy>0) { // collect all the whitespace on the previous line. string previousWhitespace = ""; string previousLine = lines[yy-1]; int pos = 0; for(int i = 0; i < previousLine.size(); i++) { if(previousLine[i]==' ' || previousLine[i]=='\t') { previousWhitespace += previousLine[i]; } else { break; } } // if we have a curly brace as the last char on the previous line // increase the indentation if(previousLine[previousLine.size()-1]=='{') { if(previousWhitespace=="") { previousWhitespace = "\t"; } else { previousWhitespace += previousWhitespace[previousWhitespace.size()-1]; } } text = text.insert(cursorPosition, previousWhitespace); cursorPosition += previousWhitespace.size(); } } return; } if ((key >=32 && key <=126) || key=='\t') { if(isShifted) { char toInsert; if( !(key > 96 && key < 123) && !(key > 65 && key < 90) && shiftMap.find(key) != shiftMap.end() ) { toInsert = shiftMap[key];//toInsert = key - 32; } else { toInsert = key; } text.insert(text.begin()+cursorPosition, toInsert); } else { text.insert(text.begin()+cursorPosition, key); } cursorPosition++; } if (key==OF_KEY_BACKSPACE) { if(selecting) { text.erase(text.begin() + selectionBegin, text.begin() + selectionEnd ); cursorPosition = selectionBegin; selecting = false; } else { if (cursorPosition>0) { text.erase(text.begin()+cursorPosition-1); --cursorPosition; } } } if (key==OF_KEY_DEL) { if(selecting) { text.erase(text.begin() + selectionBegin, text.begin() + selectionEnd ); cursorPosition = selectionBegin; selecting = false; } else { if (text.size() > cursorPosition) { text.erase(text.begin()+cursorPosition); } } } if (key==OF_KEY_LEFT){ if(selecting) { cursorPosition = selectionBegin; selecting = false; } else { if (cursorPosition>0){ --cursorPosition; } } } if (key==OF_KEY_RIGHT){ if(selecting) { cursorPosition = selectionEnd; selecting = false; } else { if (cursorPosition<text.size()){ ++cursorPosition; } } } if (key==OF_KEY_UP){ if(selecting) { cursorPosition = selectionBegin; selecting = false; } else { if (cursorPosition>0) { int xx, yy; getCursorCoords(cursorPosition, xx, yy); if(yy>0) { yy--; vector<string> lines = ofSplitString(text, "\n"); xx = MIN(lines[yy].size()-1, xx); cursorPosition = xx; for(int i = 0; i < yy; i++) cursorPosition += lines[i].size()+1; printf("Cursor position: %d\n", cursorPosition); } else { cursorPosition = 0; } } } } if (key==OF_KEY_DOWN){ if(selecting) { cursorPosition = selectionEnd; selecting = false; } else { int xx, yy; getCursorCoords(cursorPosition, xx, yy); vector<string> lines = ofSplitString(text, "\n"); yy++; if(yy<lines.size()-1) { xx = MIN(lines[yy].size()-1, xx); cursorPosition = xx; for(int i = 0; i < yy; i++) cursorPosition += lines[i].size()+1; printf("Cursor position: %d\n", cursorPosition); } else { cursorPosition = text.size()-1; } } } }
void Run() { char octaveWindowName[255]; char *runCommand = (char*) malloc(strlen(in) + 1); SKIP_SPACES; int bytesRead; sscanf(in, "%[^\n]%n", octaveWindowName, &bytesRead); in += bytesRead + 1; // +1 is for \n sscanf(in, "%[^\0]", runCommand); // Find Octave window HWND octaveWindow = getOctaveWindow(octaveWindowName); if (!octaveWindow) { sprintf(output, "echo 'Octavim: Octave window not found. Is Octave running?'"); return; } // Save current focused window (we will return the focus to it later) HWND currentWindow = GetForegroundWindow(); // Save clipboard contents. char *oldClipboard = getClipboard(); if (!oldClipboard) { sprintf(output, "echo 'Octavim: could not get current clipboard contents!'"); return; } // Change clipboard contents to the run command call. if (!setClipboard(runCommand)) { sprintf(output, "echo 'Octavim: could not set clipboard contents!'"); return; } // Bring Octave windows to Focus SetForegroundWindow(octaveWindow); // Send CTRL+V to paste the run command and press ENTER int controlPressed = GetAsyncKeyState(VK_CONTROL); if (controlPressed) keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, 0, 0); keybd_event('V', 0, 0, 0); keybd_event('V', 0, KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); if (controlPressed) keybd_event(VK_CONTROL, 0, 0, 0); // Give Octave some time to process the request Sleep(200); // Restore old clibboard contents. setClipboard(oldClipboard); // Let's return the focus to VIM SetForegroundWindow(currentWindow); }