bool TextWindowHandler::handleKey(const InputEvent &e) { DisplayWindow * d; e.fprint( stderr ); InputState * wimp = _wm->wimp(); wimp->setEvent(e); bool ret = false; if (wimp->ctrlDown ) { bool ret = true; switch ( wimp->lastKey ) { case KEY_CTRL_N: fprintf(stderr,"Make new window\n"); d = new DisplayWindow(); d->setContent(new TextContent()); _wm->addWindow(d); d->moveto(wimp->lastPos[0], wimp->lastPos[1] ); 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 = new DisplayWindow(); TextContent * ntext = new TextContent(); ntext->open((char*)nf->fileName.c_str()); d->setContent(ntext); Point2D np = wimp->lastPos + Point2D(0.03, -0.03 ) * (double)c; d->moveto(np[0], np[1] ); _wm->addWindow(d); _wm->setTopWindow(d); c++; nf = nf->next; } } break; default: ret = false; } } return ret; }