bool CodeWindowHandler::handleKey(const InputEvent &e) { CodeWindow * d = NULL; DisplayWindow * dd = NULL; //wm set the event before this was called. InputState * wimp = _wm->wimp(); bool ret = false; if (wimp->ctrlDown ) { ret = true; switch ( wimp->lastKey ) { case KEY_CTRL_U: _wm->arrangeWindows(); break; case KEY_CTRL_N: d = (CodeWindow*)new_window(); d->current()->setBuffer( d->getTextContent()->getBuf() ); d->moveto(wimp->lastPos[0], wimp->lastPos[1] ); _wm->addWindow(d); _wm->setTopWindow(d); break; case KEY_CTRL_F: case KEY_CTRL_O: //create new window and pass the call down... if ( !_wm->top()) { DirScanner dr; fileData * f = dr.openFileDialog(); fileData * nf = f; int c = 0; while ( nf ) { EM_log( CK_LOG_INFO, "(audicle) opening file %d : %s", c, nf->fileName.c_str() ); d = (CodeWindow*)new_window(); //new codewindow, new textwindow, empty buffer d->getTextContent()->open( (char*)nf->fileName.c_str()); d->current()->setBuffer( d->getTextContent()->getBuf() ); Point2D np = wimp->lastPos + Point2D(0.03, -0.03 ) * (double)c; d->moveto(np[0], np[1] ); d->resize( max ( 2.25, d->base()->w() ) , max ( 2.5, d->base()->h() ) ); _wm->addWindow(d); _wm->setTopWindow(d); c++; nf = nf->next; } } else ret = false; break; default: ret = false; } } return ret; }
bool CodeWindowHandler::winFromRev ( CodeRevision * r ) { CodeWindow * d = NULL; InputState * wimp = _wm->wimp(); if ( _wm->top() ) ((CodeWindow *)_wm->top())->removeRevision(r); d = new CodeWindow(r); _wm->addWindow(d); _wm->setTopWindow(d); d->moveto(wimp->lastPos[0], wimp->lastPos[1] ); return true; }