KJS::JSObject *convertEvent(KJS::ExecState *exec, const QCloseEvent *ev) { KJS::JSObject *cev = convertEvent(exec, (QEvent *)ev); cev->put(exec, "isAccepted", KJS::jsBoolean(ev->isAccepted())); return cev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QMoveEvent *ev) { KJS::JSObject *mev = convertEvent(exec, (QEvent *)ev); mev->put(exec, "pos", convertToValue(exec, ev->pos())); mev->put(exec, "oldPos", convertToValue(exec, ev->oldPos())); return mev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QPaintEvent *ev) { KJS::JSObject *pev = convertEvent(exec, (QEvent *)ev); pev->put(exec, "rect", convertToValue(exec, ev->rect())); // pev->put( exec, "region", convertToValue( exec, ev->region() ) ); return pev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QResizeEvent *ev) { KJS::JSObject *rev = convertEvent(exec, (QEvent *)ev); rev->put(exec, "size", convertToValue(exec, ev->size())); rev->put(exec, "oldSize", convertToValue(exec, ev->oldSize())); return rev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QFocusEvent *ev) { KJS::JSObject *dev = convertEvent(exec, (QEvent *)ev); dev->put(exec, "gotFocus", KJS::jsBoolean(ev->gotFocus())); dev->put(exec, "lostFocus", KJS::jsBoolean(ev->lostFocus())); //Gold star trolltech! dev->put(exec, "reason", KJS::jsNumber((int) const_cast<QFocusEvent *>(ev)->reason())); return dev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QInputMethodEvent *ev) { KJS::JSObject *qev = convertEvent(exec, (QEvent *)ev); qev->put(exec, "commitString", KJS::jsString(ev->commitString())); qev->put(exec, "preeditString", KJS::jsString(ev->preeditString())); qev->put(exec, "replacementLength", KJS::jsNumber(ev->replacementLength())); qev->put(exec, "replacementStart", KJS::jsNumber(ev->replacementStart())); return qev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QKeyEvent *ev) { KJS::JSObject *kev = convertEvent(exec, (QInputEvent *)ev); kev->put(exec, "key", KJS::jsNumber(ev->key())); kev->put(exec, "text", KJS::jsString(ev->text())); kev->put(exec, "isAutoRepeat", KJS::jsBoolean(ev->isAutoRepeat())); kev->put(exec, "count", KJS::jsNumber(ev->count())); return kev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QDropEvent *ev) { KJS::JSObject *dev = convertEvent(exec, (QEvent *)ev); dev->put(exec, "pos", convertToValue(exec, ev->pos())); dev->put(exec, "source", new QObjectBinding(exec, (QObject *)ev->source())); dev->put(exec, "dropAction", KJS::jsNumber((int)(ev->dropAction()))); dev->put(exec, "keyboardModifiers", KJS::jsNumber((int)(ev->keyboardModifiers()))); dev->put(exec, "possibleActions", KJS::jsNumber((int)(ev->possibleActions()))); dev->put(exec, "proposedAction", KJS::jsNumber((int)(ev->proposedAction()))); return dev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QContextMenuEvent *ev) { KJS::JSObject *cxev = convertEvent(exec, (QInputEvent *)ev); cxev->put(exec, "x", KJS::jsNumber(ev->x())); cxev->put(exec, "y", KJS::jsNumber(ev->y())); cxev->put(exec, "globalX", KJS::jsNumber(ev->globalX())); cxev->put(exec, "globalY", KJS::jsNumber(ev->globalY())); cxev->put(exec, "pos", convertToValue(exec, ev->pos())); cxev->put(exec, "globalPos", convertToValue(exec, ev->globalPos())); cxev->put(exec, "reason", KJS::jsNumber((int)ev->reason())); return cxev; }
DBool sfWindow_pollEvent(sfWindow* window, DEvent* event) { // Get the event sf::Event SFMLEvent; bool ret = window->This.pollEvent(SFMLEvent); // No event, return if (!ret) return DFalse; // Convert the sf::Event event to a DSFML Event convertEvent(SFMLEvent, event); return DTrue; }
DBool sfWindow_waitEvent(sfWindow* window, DEvent* event) { // Get the event sf::Event SFMLEvent; bool ret = window->This.waitEvent(SFMLEvent); // Error, return if (!ret) return DFalse; // Convert the sf::Event event to a sfEvent convertEvent(SFMLEvent, event); return DTrue; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QWheelEvent *ev) { KJS::JSObject *wev = convertEvent(exec, (QInputEvent *)ev); wev->put(exec, "delta", KJS::jsNumber(ev->delta())); wev->put(exec, "pos", convertToValue(exec, ev->pos())); wev->put(exec, "globalPos", convertToValue(exec, ev->globalPos())); wev->put(exec, "x", KJS::jsNumber(ev->x())); wev->put(exec, "y", KJS::jsNumber(ev->y())); wev->put(exec, "globalX", KJS::jsNumber(ev->globalX())); wev->put(exec, "globalY", KJS::jsNumber(ev->globalY())); wev->put(exec, "orientation", KJS::jsNumber(ev->orientation())); wev->put(exec, "buttons", KJS::jsNumber(ev->buttons())); return wev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QMouseEvent *ev) { KJS::JSObject *mev = convertEvent(exec, (QInputEvent *)ev); mev->put(exec, "pos", convertToValue(exec, ev->pos())); mev->put(exec, "x", KJS::jsNumber(ev->x())); mev->put(exec, "y", KJS::jsNumber(ev->y())); mev->put(exec, "globalPos", convertToValue(exec, ev->globalPos())); mev->put(exec, "globalX", KJS::jsNumber(ev->globalX())); mev->put(exec, "globalY", KJS::jsNumber(ev->globalY())); mev->put(exec, "button", KJS::jsNumber(ev->button())); mev->put(exec, "buttons", KJS::jsNumber(ev->buttons())); return mev; }
sfBool sfRenderWindow_waitEvent(sfRenderWindow* renderWindow, sfEvent* event) { CSFML_CHECK_RETURN(renderWindow, sfFalse); CSFML_CHECK_RETURN(event, sfFalse); // Get the event sf::Event SFMLEvent; sfBool ret = renderWindow->This.waitEvent(SFMLEvent); // Error, return if (!ret) return sfFalse; // Convert the sf::Event event to a sfEvent convertEvent(SFMLEvent, event); return sfTrue; }
/*********************************************************** update display - returns true if need to terminate ***********************************************************/ bool OsgHandler::Update() { SDL_Event evt; while ( SDL_PollEvent(&evt) ) { if(evt.type == SDL_QUIT) return true; // pass the SDL event into the viewers event queue if(!_evH->Handle(evt)) convertEvent(evt, *(_gw->getEventQueue())); } // draw the new frame _viewer->frame(); //draw the GUI _GuiH->Redraw(); // Swap Buffers SDL_GL_SwapBuffers(); return false; //if(!_viewer->done()) //{ // _viewer->frame(); // return false; //} //return true; }
void TEditor::handleEvent( TEvent& event ) { TView::handleEvent( event ); convertEvent( event ); Boolean centerCursor = Boolean(!cursorVisible()); uchar selectMode = 0; if( selecting == True || (getShiftState() & 0x03) != 0 ) selectMode = smExtend; switch( event.what ) { case evMouseDown: if( event.mouse.doubleClick == True ) selectMode |= smDouble; do { lock(); if( event.what == evMouseAuto ) { TPoint mouse = makeLocal( event.mouse.where ); TPoint d = delta; if( mouse.x < 0 ) d.x--; if( mouse.x >= size.x ) d.x++; if( mouse.y < 0 ) d.y--; if( mouse.y >= size.y ) d.y++; scrollTo(d.x, d.y); } setCurPtr(getMousePtr(event.mouse.where), selectMode); selectMode |= smExtend; unlock(); } while( mouseEvent(event, evMouseMove + evMouseAuto) ); break; case evKeyDown: if( event.keyDown.charScan.charCode == 9 || ( event.keyDown.charScan.charCode >= 32 && event.keyDown.charScan.charCode < 255 ) ) { lock(); if( overwrite == True && hasSelection() == False ) if( curPtr != lineEnd(curPtr) ) selEnd = nextChar(curPtr); insertText( &event.keyDown.charScan.charCode, 1, False); trackCursor(centerCursor); unlock(); } else return; break; case evCommand: switch( event.message.command ) { case cmFind: find(); break; case cmReplace: replace(); break; case cmSearchAgain: doSearchReplace(); break; default: lock(); switch( event.message.command ) { case cmCut: clipCut(); break; case cmCopy: clipCopy(); // hideSelect(); // JS 12.4.94 break; case cmPaste: clipPaste(); break; case cmUndo: undo(); break; case cmClear: deleteSelect(); break; case cmCharLeft: setCurPtr(prevChar(curPtr), selectMode); break; case cmCharRight: setCurPtr(nextChar(curPtr), selectMode); break; case cmWordLeft: setCurPtr(prevWord(curPtr), selectMode); break; case cmWordRight: setCurPtr(nextWord(curPtr), selectMode); break; case cmLineStart: setCurPtr(lineStart(curPtr), selectMode); break; case cmLineEnd: setCurPtr(lineEnd(curPtr), selectMode); break; case cmLineUp: setCurPtr(lineMove(curPtr, -1), selectMode); break; case cmLineDown: setCurPtr(lineMove(curPtr, 1), selectMode); break; case cmPageUp: setCurPtr(lineMove(curPtr, -(size.y-1)), selectMode); break; case cmPageDown: setCurPtr(lineMove(curPtr, size.y-1), selectMode); break; case cmTextStart: setCurPtr(0, selectMode); break; case cmTextEnd: setCurPtr(bufLen, selectMode); break; case cmNewLine: newLine(); break; case cmBackSpace: deleteRange(prevChar(curPtr), curPtr, True); break; case cmDelChar: deleteRange(curPtr, nextChar(curPtr), True); break; case cmDelWord: deleteRange(curPtr, nextWord(curPtr), False); break; case cmDelStart: deleteRange(lineStart(curPtr), curPtr, False); break; case cmDelEnd: deleteRange(curPtr, lineEnd(curPtr), False); break; case cmDelLine: deleteRange(lineStart(curPtr), nextLine(curPtr), False); break; case cmInsMode: toggleInsMode(); break; case cmStartSelect: startSelect(); break; case cmHideSelect: hideSelect(); break; case cmIndentMode: autoIndent = Boolean(!autoIndent); break; default: unlock(); return; } trackCursor(centerCursor); unlock(); break; } case evBroadcast: switch( event.message.command ) { case cmScrollBarChanged: checkScrollBar( event, hScrollBar, delta.x ); checkScrollBar( event, vScrollBar, delta.y ); break; default: return; } } clearEvent(event); }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QInputEvent *ev) { KJS::JSObject *iev = convertEvent(exec, (QEvent *)ev); iev->put(exec, "modifiers", KJS::jsNumber(ev->modifiers())); return iev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QDragMoveEvent *ev) { KJS::JSObject *mev = convertEvent(exec, (QDropEvent *)ev); mev->put(exec, "answerRect", convertToValue(exec, ev->answerRect())); return mev; }
KJS::JSObject *convertEvent(KJS::ExecState *exec, const QTimerEvent *ev) { KJS::JSObject *dev = convertEvent(exec, (QEvent *)ev); dev->put(exec, "timerId", KJS::jsNumber(ev->timerId())); return dev; }
int main( int argc, char **argv ) { if (argc<2) { std::cout << argv[0] <<": requires filename argument." << std::endl; return 1; } // init SDL if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError()); exit(1); } atexit(SDL_Quit); // load the scene. osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFile(argv[1]); if (!loadedModel) { std::cout << argv[0] <<": No data loaded." << std::endl; return 1; } // Starting with SDL 1.2.10, passing in 0 will use the system's current resolution. unsigned int windowWidth = 0; unsigned int windowHeight = 0; // Passing in 0 for bitdepth also uses the system's current bitdepth. This works before 1.2.10 too. unsigned int bitDepth = 0; // If not linked to SDL 1.2.10+, then we must use hardcoded values const SDL_version* linked_version = SDL_Linked_Version(); if(linked_version->major == 1 && linked_version->minor == 2) { if(linked_version->patch < 10) { windowWidth = 1280; windowHeight = 1024; } } SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 ); SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 ); SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 ); SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 ); SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); // set up the surface to render to SDL_Surface* screen = SDL_SetVideoMode(windowWidth, windowHeight, bitDepth, SDL_OPENGL | SDL_FULLSCREEN | SDL_RESIZABLE); if ( screen == NULL ) { std::cerr<<"Unable to set "<<windowWidth<<"x"<<windowHeight<<" video: %s\n"<< SDL_GetError()<<std::endl; exit(1); } SDL_EnableUNICODE(1); osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits; traits->x = 0; traits->y = 0; traits->width = screen->w; traits->height = screen->h; traits->doubleBuffer = true; traits->sharedContext = 0; traits->inheritedWindowData = new osgViewer::GraphicsWindowSDL::WindowData(screen); osg::ref_ptr<osg::GraphicsContext> gc = new osgViewer::GraphicsWindowSDL(traits.get()); osgViewer::Viewer viewer; osg::Camera* camera = viewer.getCamera(); camera->setGraphicsContext(gc.get()); camera->setViewport(new osg::Viewport(0, 0, traits->width, traits->height)); viewer.setSceneData(loadedModel.get()); viewer.setCameraManipulator(new osgGA::TrackballManipulator); viewer.addEventHandler(new osgViewer::StatsHandler); viewer.realize(); // If we used 0 to set the fields, query the values so we can pass it to osgViewer windowWidth = screen->w; windowHeight = screen->h; viewer.getEventQueue()->windowResize(0, 0, windowWidth, windowHeight ); bool done = false; while( !done ) { SDL_Event event; while ( SDL_PollEvent(&event) ) { // pass the SDL event into the viewers event queue convertEvent(event, *viewer.getEventQueue()); switch (event.type) { case SDL_KEYUP: if (event.key.keysym.sym==SDLK_ESCAPE) done = true; if (event.key.keysym.sym=='f') SDL_WM_ToggleFullScreen(screen); break; case SDL_QUIT: done = true; } } if (done) continue; // draw the new frame viewer.frame(); } return 0; }
KJS::JSObject *event(KJS::ExecState *exec, const QEvent *ev) { switch (ev->type()) { case QEvent::Resize: return convertEvent(exec, (QResizeEvent *)ev); break; case QEvent::Timer: return convertEvent(exec, (QTimerEvent *)ev); break; case QEvent::MouseButtonPress: case QEvent::MouseButtonRelease: case QEvent::MouseButtonDblClick: case QEvent::MouseMove: case QEvent::Enter: case QEvent::Leave: return convertEvent(exec, (QMouseEvent *)ev); break; case QEvent::KeyPress: case QEvent::KeyRelease: return convertEvent(exec, (QKeyEvent *)ev); break; case QEvent::FocusIn: case QEvent::FocusOut: return convertEvent(exec, (QFocusEvent *)ev); break; case QEvent::Paint: return convertEvent(exec, (QPaintEvent *)ev); break; case QEvent::Move: return convertEvent(exec, (QMoveEvent *)ev); break; case QEvent::Create: case QEvent::Destroy: case QEvent::Show: case QEvent::Hide: case QEvent::Close: return convertEvent(exec, (QCloseEvent *)ev); break; case QEvent::Quit: case QEvent::ParentChange: case QEvent::ParentAboutToChange: case QEvent::ThreadChange: case QEvent::WindowActivate: case QEvent::WindowDeactivate: case QEvent::ShowToParent: case QEvent::HideToParent: case QEvent::Wheel: case QEvent::WindowTitleChange: case QEvent::WindowIconChange: case QEvent::ApplicationWindowIconChange: case QEvent::ApplicationFontChange: case QEvent::ApplicationLayoutDirectionChange: case QEvent::ApplicationPaletteChange: case QEvent::PaletteChange: case QEvent::Clipboard: case QEvent::Speech: case QEvent::MetaCall: case QEvent::SockAct: //case QEvent::WinEventAct: conflicts with QEvent::QueryWhatsThis case QEvent::DeferredDelete: case QEvent::DragEnter: case QEvent::DragMove: case QEvent::DragLeave: case QEvent::Drop: case QEvent::DragResponse: case QEvent::ChildAdded: case QEvent::ChildPolished: case QEvent::ChildRemoved: case QEvent::ShowWindowRequest: case QEvent::PolishRequest: case QEvent::Polish: case QEvent::LayoutRequest: case QEvent::UpdateRequest: case QEvent::EmbeddingControl: case QEvent::ActivateControl: case QEvent::DeactivateControl: case QEvent::ContextMenu: case QEvent::InputMethod: case QEvent::TabletMove: case QEvent::LocaleChange: case QEvent::LanguageChange: case QEvent::LayoutDirectionChange: case QEvent::Style: case QEvent::TabletPress: case QEvent::TabletRelease: case QEvent::OkRequest: case QEvent::HelpRequest: case QEvent::IconDrag: case QEvent::FontChange: case QEvent::EnabledChange: case QEvent::ActivationChange: case QEvent::StyleChange: case QEvent::IconTextChange: case QEvent::ModifiedChange: case QEvent::MouseTrackingChange: case QEvent::WindowBlocked: case QEvent::WindowUnblocked: case QEvent::WindowStateChange: case QEvent::ToolTip: case QEvent::WhatsThis: case QEvent::StatusTip: case QEvent::ActionChanged: case QEvent::ActionAdded: case QEvent::ActionRemoved: case QEvent::FileOpen: case QEvent::Shortcut: case QEvent::ShortcutOverride: case QEvent::WhatsThisClicked: case QEvent::ToolBarChange: case QEvent::ApplicationActivated: case QEvent::ApplicationDeactivated: case QEvent::QueryWhatsThis: case QEvent::EnterWhatsThisMode: case QEvent::LeaveWhatsThisMode: case QEvent::ZOrderChange: case QEvent::HoverEnter: case QEvent::HoverLeave: case QEvent::HoverMove: default: return convertEvent(exec, ev); break; } }