void DebugDrawing3D::draw() { if(robotConsole) { SYNC_WITH(*robotConsole); draw2(); } else draw2(); }
virtual void onDrawContent(SkCanvas* canvas) { canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); draw2(canvas, fBM8); canvas->translate(0, SkIntToScalar(fBM8.height() *3)); draw2(canvas, fBM32); canvas->translate(0, SkIntToScalar(fBM8.height() *3)); draw_gradient(canvas); }
/* * rect * * draw a rectangle given two opposite corners * */ void rect(Coord x1, Coord y1, Coord x2, Coord y2) { if (!vdevice.initialised) verror("rect: vogl not initialised"); move2(x1, y1); draw2(x2, y1); draw2(x2, y2); draw2(x1, y2); draw2(x1, y1); }
virtual void onDrawContent(SkCanvas* canvas) { canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); draw2(canvas, fBM8); canvas->translate(0, SkIntToScalar(fBM8.height() *3)); draw2(canvas, fBM32); canvas->translate(0, SkIntToScalar(fBM8.height() *3)); draw_gradient(canvas); char resultTrue[] = "SkRegion::setPath returned true"; char resultFalse[] = "SkRegion::setPath returned false"; SkPaint p; if (fResult) canvas->drawText(resultTrue, sizeof(resultTrue) - 1, 0, 50, p); else canvas->drawText(resultFalse, sizeof(resultFalse) - 1, 0, 50, p); }
void SceneArea::display() { _bounds.left = _pt.x - (_surface.getBounds().width() / 2); _bounds.top = _pt.y + 1 - _surface.getBounds().height(); _bounds.setWidth(_surface.getBounds().width()); _bounds.setHeight(_surface.getBounds().height()); _savedArea = Surface_getArea(_globals->_gfxManagerInstance.getSurface(), _bounds); draw2(); }
void CursesMessageDisplay::draw() { // About to redraw the screen, clear the link cache CursesMessage *messageInfo=messageInfoPtr; if (messageInfo) messageInfo->clearlinks(); draw2(); }
void drawScoreboard(paddle *p1, paddle *p2){ uint32_t gold = 0xffff00; //white = 0xffffff; if ( p1->score == 0 ) draw0(gold,P1_SCORE_X,P1_SCORE_Y); else if ( p1->score == 1 ) draw1(gold,P1_SCORE_X,P1_SCORE_Y); else if ( p1->score == 2 ) draw2(gold,P1_SCORE_X,P1_SCORE_Y); else if ( p1->score == 3 ) draw3(gold,P1_SCORE_X,P1_SCORE_Y); if ( p2->score == 0 ) draw0(gold,P2_SCORE_X,P2_SCORE_Y); else if ( p2->score == 1 ) draw1(gold,P2_SCORE_X,P2_SCORE_Y); else if ( p2->score == 2 ) draw2(gold,P2_SCORE_X,P2_SCORE_Y); else if ( p2->score == 3 ) draw3(gold,P2_SCORE_X,P2_SCORE_Y); }
void set_message_viewport() { #ifdef ksdslslslsl if(in_which_viewport == MESSAGE_VIEWPORT) return; in_which_viewport = MESSAGE_VIEWPORT; wrmask(0xff); my_size_chars(0); window(W_LEFT + CHAR_X_SHIFT,W_RIGHT + CHAR_X_SHIFT, W_BOTTOM + CHAR_Y_SHIFT,W_TOP + CHAR_Y_SHIFT); viewport(V_LEFT,V_RIGHT,V_BOTTOM,V_TOP); color(BORDER_COLOR); move2(W_LEFT + CHAR_X_SHIFT + W_BORDER_INDENT, W_BOTTOM + CHAR_Y_SHIFT + W_BORDER_INDENT); draw2(W_LEFT + CHAR_X_SHIFT + W_BORDER_INDENT, W_TOP + CHAR_Y_SHIFT - W_BORDER_INDENT); draw2(W_RIGHT + CHAR_X_SHIFT - W_BORDER_INDENT, W_TOP + CHAR_Y_SHIFT - W_BORDER_INDENT); draw2(W_RIGHT + CHAR_X_SHIFT - W_BORDER_INDENT, W_BOTTOM + CHAR_Y_SHIFT + W_BORDER_INDENT); draw2(W_LEFT + CHAR_X_SHIFT + W_BORDER_INDENT, W_BOTTOM + CHAR_Y_SHIFT + W_BORDER_INDENT); window(W_LEFT + CHAR_X_SHIFT + CHAR_WIDTH, W_RIGHT + CHAR_X_SHIFT - CHAR_WIDTH, W_BOTTOM + CHAR_Y_SHIFT + CHAR_HEIGHT, W_TOP + CHAR_Y_SHIFT - CHAR_HEIGHT); viewport(V_LEFT + V_BORDER_INDENT,V_RIGHT - V_BORDER_INDENT, V_BOTTOM + V_BORDER_INDENT,V_TOP - V_BORDER_INDENT); #endif }
/* * drawgrid * * draw a grid in the middle of the screen */ void drawgrid() { float x; int i; color(GREEN); rect(0.1, 0.4, 0.9, 0.6); x = 0.2; for (i = 0; i < 8; i++) { move2(x, 0.4); draw2(x, 0.6); x += 0.1; } move2(0.1, 0.5); draw2(0.9, 0.5); color(YELLOW); }
void Drawable::draw() { glPushMatrix(); glTranslated(Pos.x, Pos.y, 0); // translate to Drawable's location glPushMatrix(); //Draw the scaled object glScaled(Scale.x, Scale.y, 1.0f); glRotated(RadToDeg(Rot), 0, 0, 1); draw2(); glPopMatrix(); //Draw all the children for (std::list<Drawable*>::iterator dPtr = Children.begin();dPtr != Children.end(); ++dPtr) { (*dPtr)->draw(); } glPopMatrix(); }
// private set ups void Animation::setupEnter(){ Point* p1 = new Point(-9.75, -5.0); Point* p2 = new Point(-9.25, -5.0); Point* p3 = new Point(-8.75, -5.0); Point* p4 = new Point(-8.25, -5.0); Point* p5 = new Point(-7.75, -5.0); Point* p6 = new Point(-7.25, -5.0); Point* p7 = new Point(-6.75, -5.0); Point* p8 = new Point(-6.25, -5.0); Point* p9 = new Point(-5.75, -5.0); Point* p10 = new Point(-5.25, -5.0); Point* p11 = new Point(-4.75, -5.0); Point* p12 = new Point(-4.25, -5.0); Point* p13 = new Point(-3.75, -5.0); Point* p14 = new Point(-3.25, -5.0); Point* p15 = new Point(-2.75, -5.0); Point* p16 = new Point(-2.25, -5.0); Point* p17 = new Point(-1.75, -5.0); Point* p18 = new Point(-1.25, -5.0); Rectangle1 nostep(5.0, 5.0, Point(-10.75, -5.0), "data/character/nostep",UserManager::getProfile().getColor()); Rectangle1 step(5.0, 5.0, Point(-10.25, -5.0), "data/character/step",UserManager::getProfile().getColor()); Rectangle1 draw1(5.0, 5.0, Point(-1.25, -5.0), "data/character/draw1",UserManager::getProfile().getColor()); Rectangle1 draw2(5.0, 5.0, Point(-1.25, -5.0), "data/character/draw2",UserManager::getProfile().getColor()); Rectangle1 draw3(5.0, 5.0, Point(-1.25, -5.0), "data/character/draw3",UserManager::getProfile().getColor()); Rectangle1 defense(5.0, 5.0, Point(-1.25, -5.0), "data/character/defensivestance",UserManager::getProfile().getColor()); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p1); step.setPoint(p2); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p3); step.setPoint(p4); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p5); step.setPoint(p6); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p7); step.setPoint(p8); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p9); step.setPoint(p10); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p11); step.setPoint(p12); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p13); step.setPoint(p14); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p15); step.setPoint(p16); enter.push_back(nostep); enter.push_back(step); nostep.setPoint(p17); step.setPoint(p18); enter.push_back(nostep); enter.push_back(step); enter.push_back(draw1); enter.push_back(draw2); enter.push_back(draw3); enter.push_back(defense); Rectangle1 monster(5.0, 5.0, Point(10.5, -6), "data/monster/" + mon); enemyEnter.push_back(monster); Point* point = new Point(10.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(9.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(9.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(8.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(8.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(7.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(7.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(6.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(6.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(5.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(4.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(3.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(3.0, -6); monster.setPoint(point); enemyEnter.push_back(monster); point = new Point(2.5, -6); monster.setPoint(point); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); enemyEnter.push_back(monster); }
void OsuCircle::drawVR2(Graphics *g, Matrix4 &mvp, OsuVR *vr) { // TODO: performance! if nothing of the circle is visible, then we don't have to calculate anything ///if (m_bVisible) { float clampedApproachScalePercent = m_fApproachScale - 1.0f; // goes from <m_osu_approach_scale_multiplier_ref> to 0 clampedApproachScalePercent = clamp<float>(clampedApproachScalePercent / m_osu_approach_scale_multiplier_ref->getFloat(), 0.0f, 1.0f); // goes from 1 to 0 if (m_osu_vr_approach_circles_on_playfield->getBool()) clampedApproachScalePercent = 0.0f; Matrix4 translation; translation.translate(0, 0, -clampedApproachScalePercent*vr->getApproachDistance()); Matrix4 finalMVP = mvp * translation; vr->getShaderTexturedLegacyGeneric()->setUniformMatrix4fv("matrix", finalMVP); draw2(g); } }
void update_banner(void) { banner[1] = ani[tsc]; tsc = (tsc + 1) % (sizeof(ani) - 1); char *p = banner + SCR_W - 20; Time tm; get_time(&tm); *p ++ = '2'; *p ++ = '0'; draw2(&p, tm.year % 100); *p ++ = '/'; draw2(&p, tm.month); *p ++ = '/'; draw2(&p, tm.day); *p ++ = ' '; draw2(&p, tm.hour); *p ++ = ':'; draw2(&p, tm.minute); *p ++ = ':'; draw2(&p, tm.second); banner[3] = 't'; banner[4] = 't'; banner[5] = 'y'; banner[6] = '1' + current_consl - ttys; consl_sync(current_consl); }
bool CursesMessageDisplay::processKeyInFocus(const Curses::Key &key) { CursesMessage *messageInfo=messageInfoPtr; if (!messageInfo) return false; if (key == key.ENTER) { size_t row; size_t col; std::string url; if (!messageInfo->getCurrentLink(row, col, url)) return true; if (url.substr(0, 7) == "mailto:") { if (myMessage::checkInterrupted(false) && (messageInfo=messageInfoPtr) != NULL) myMessage::newMessage(messageInfo->myfolder ->getFolder(), messageInfo->myfolder ->getServer(), url.substr(7)); return true; } std::string handler; size_t p=url.find(':'); if (p != std::string::npos) { handler=myServer::getConfigDir() + "/" + url.substr(0, p) + ".handler"; if (access(handler.c_str(), X_OK)) { handler=FILTERDIR "/" + url.substr(0, p) + ".handler"; if (access(handler.c_str(), X_OK)) handler=""; } } if (handler.size() == 0) { statusBar->clearstatus(); statusBar-> status(Gettext(_("Cannot find handler for %1%")) << url); statusBar->beepError(); return true; } pid_t pp=fork(); if (pp < 0) { statusBar->clearstatus(); statusBar->status(strerror(errno)); statusBar->beepError(); return true; } if (pp == 0) { close(1); open("/dev/null", O_WRONLY); dup2(1, 2); dup2(1, 0); execl(handler.c_str(), handler.c_str(), url.c_str(), (char *)NULL); exit(1); } pid_t p2; int waitstat; while ((p2=wait(&waitstat)) != pp) { if (p2 < 0 && errno != EINTR) break; } if (p2 == pp && WIFEXITED(waitstat) && WEXITSTATUS(waitstat) == 0) { statusBar->status(_("Started external handler.")); return true; } statusBar->clearstatus(); statusBar->status(_("External handler terminated with a non-zero exit code."), statusBar->SYSERROR); return true; } if (key == key_TAKEADDR) { mail::envelope *e=messageInfo->getEnvelope(); std::vector<mail::address> addrList; addrList.reserve(e->from.size() + e->to.size() + e->cc.size() + e->bcc.size() + e->sender.size() + e->replyto.size()); addrList.insert(addrList.end(), e->from.begin(), e->from.end()); addrList.insert(addrList.end(), e->to.begin(), e->to.end()); addrList.insert(addrList.end(), e->cc.begin(), e->cc.end()); addrList.insert(addrList.end(), e->bcc.begin(), e->bcc.end()); addrList.insert(addrList.end(), e->sender.begin(), e->sender.end()); addrList.insert(addrList.end(), e->replyto.begin(), e->replyto.end()); AddressBook::take(addrList); return true; } if (key == key_FOLDERINDEX || key == key_LESSTHAN) { keepgoing=false; myServer::nextScreen=&folderIndexScreen; myServer::nextScreenArg=messageInfo->myfolder; return true; } if (key == key_DELETE) messageInfo->myfolder->markDeleted( messageInfo->messagesortednum, true, false); if (key == key_UNDELETE) messageInfo->myfolder->markDeleted( messageInfo->messagesortednum, false, false); if (key == key_NEXTMESSAGE || key == key_DELETE || key == key_UNDELETE) { size_t dummy; if (messageInfo->myfolder->getNextMessage(dummy)) { Curses::keepgoing=false; myServer::nextScreen= &goNextMessage; myServer::nextScreenArg=messageInfo->myfolder; return true; } return true; } if (key == key_PREVMESSAGE) { size_t dummy; if (messageInfo->myfolder->getPrevMessage(dummy)) { Curses::keepgoing=false; myServer::nextScreen= &goPrevMessage; myServer::nextScreenArg=messageInfo->myfolder; } return true; } if (key == ' ' || key == Key::RIGHT || key == Key::PGDN || key == Key::DOWN) { if ((key == Key::DOWN || key == Key::RIGHT) && messageInfo->nextLink()) return true; // Went to next link instead size_t nLines=messageInfo->nLines(); size_t h=getHeight(); size_t lastLine= nLines > h ? nLines-h:0; size_t firstLineSaved=getFirstLineShown(); if (key == Key::DOWN || key == Key::RIGHT) setFirstLineShown(getFirstLineShown()+1); else setFirstLineShown(getFirstLineShown()+h); if (getFirstLineShown() > lastLine) setFirstLineShown(lastLine); if (firstLineSaved == getFirstLineShown() && key == ' ') { size_t dummy; if (messageInfo->myfolder-> getNextUnreadMessage(dummy)) { Curses::keepgoing=false; myServer::nextScreen= &goNextUnreadMessage; myServer::nextScreenArg=messageInfo->myfolder; return true; } statusBar->clearstatus(); statusBar->status(Gettext(_("No more unread mail in %1%")) << messageInfo->myfolder ->getFolder()->getName()); return true; } folderUpdated(); draw2(); messageInfo->toLastLink(); return true; } if (key == Key::LEFT || key == Key::PGUP || key == Key::UP) { if (key != Key::PGUP && messageInfo->prevLink()) return true; size_t h=key != Key::PGUP ? 1:getHeight(); setFirstLineShown(getFirstLineShown() < h ? 0: getFirstLineShown()-h); folderUpdated(); draw2(); return true; } if (key == key_VIEWATT) { Curses::keepgoing=false; myServer::nextScreen=showAttachments; myServer::nextScreenArg=messageInfo; return true; } if (key == key_SAVE) { std::string filename; { SaveDialog save_dialog(filename); save_dialog.requestFocus(); myServer::eventloop(); filename=save_dialog; mainScreen->erase(); } mainScreen->draw(); requestFocus(); if (messageInfoPtr.isDestroyed() || filename == "") return true; CursesAttachmentDisplay::downloadTo(messageInfoPtr, messageInfoPtr->shownMimeId != "" ? messageInfoPtr->structure .find(messageInfoPtr-> shownMimeId) :NULL, filename); return true; } if (key == key_BOUNCE) { if (messageInfo->shownMimeId.size()) { statusBar->clearstatus(); statusBar->status(_("Cannot forward only an attachment, just the whole message.")); statusBar->beepError(); return true; } mail::smtpInfo sendInfo; std::string from; std::string replyto; std::string fcc; std::string customheaders; if (!myMessage::getDefaultHeaders(messageInfo->myfolder ->getFolder(), messageInfo->myfolder ->getServer(), from, replyto, fcc, customheaders)) { return true; } { std::vector<mail::address> addrList; size_t errIndex; if (mail::address::fromString(from, addrList, errIndex) && addrList.size() > 0) sendInfo.sender=addrList[0].getAddr(); } mail::ptr<myFolder> folderPtr=messageInfo->myfolder; if (!CursesMessage::getBounceTo(sendInfo) || !CursesMessage::getSendInfo(Gettext(_("Blind-forward message to %1% address(es)? (Y/N) ")) << sendInfo.recipients .size(), "", sendInfo, NULL)) return true; disconnectCallbackStub disconnectStub; myServer::Callback sendCallback; mail::account *smtpServer; mail::folder *folder= CursesMessage::getSendFolder(sendInfo, smtpServer, NULL, disconnectStub); if (!folder) return true; if (folderPtr.isDestroyed() || messageInfoPtr.isDestroyed()) { delete folder; if (smtpServer) delete smtpServer; return true; } try { messageInfo->copyContentsTo(folder, sendCallback); bool rc=myServer::eventloop(sendCallback); delete folder; folder=NULL; if (smtpServer) { if (rc) { myServer::Callback disconnectCallback; disconnectCallback.noreport=true; smtpServer->logout(disconnectCallback); myServer:: eventloop(disconnectCallback); } delete smtpServer; smtpServer=NULL; } } catch (...) { if (folder) delete folder; if (smtpServer) delete smtpServer; LIBMAIL_THROW(LIBMAIL_THROW_EMPTY); } return true; } if (key == key_REPLY) { mail::ptr<myFolder> folder=messageInfo->myfolder; if (myMessage::checkInterrupted() && !folder.isDestroyed() && !messageInfoPtr.isDestroyed()) messageInfo->reply(); return true; } if (key == key_FWD) { mail::ptr<myFolder> folder=messageInfo->myfolder; if (myMessage::checkInterrupted() && !folder.isDestroyed() && !messageInfoPtr.isDestroyed()) messageInfo->forward(); return true; } if (key == key_HEADERS) { erase(); messageInfo->fullEnvelopeHeaders= !messageInfo->fullEnvelopeHeaders; setFirstLineShown(0); messageInfo->beginReformat(getWidth()); folderUpdated(); return true; } if (key == key_PRINT) { mail::ptr<CursesMessage> ptr=messageInfo; int pipefd[2]; pid_t pid1; myServer::promptInfo printPrompt(_("Print to: ")); if (printCommand.size() == 0) printCommand="lpr"; printPrompt=myServer::prompt(printPrompt .initialValue(printCommand)); if (printPrompt.abortflag || ptr.isDestroyed()) return true; std::vector<const char *> args; { const char *p=getenv("SHELL"); if (!p || !*p) p="/bin/sh"; args.push_back(p); } args.push_back("-c"); printCommand=printPrompt; args.push_back(printCommand.c_str()); args.push_back(0); // // Fork a child process which writes the text image of the // message to a pipe. // // The parent process runs the print command, piping the text // into it. signal(SIGCHLD, SIG_DFL); if (pipe(pipefd) < 0) { statusBar->clearstatus(); statusBar->status(strerror(errno)); statusBar->beepError(); return true; } if ((pid1=fork()) == 0) { FILE *fp; // First child exits, the second child generates the // text. if (fork()) exit(0); signal(SIGPIPE, SIG_DFL); close(pipefd[0]); fp=fdopen(pipefd[1], "w"); if (fp) { size_t nLines=messageInfo->nLines(); size_t i; std::vector<std::pair<textAttributes, std::string> > line; std::vector<std::pair<textAttributes, std::string> > ::iterator b, e; for (i=0; i<nLines; i++) { messageInfo->getLineImage(i, line); for (b=line.begin(), e=line.end(); b != e; ++b) { fprintf(fp, "%s", b->second.c_str()); } fprintf(fp, "\n"); } fflush(fp); } exit(0); } // Wait for the first child to exit. if (pid1 < 0) { close(pipefd[0]); close(pipefd[1]); statusBar->clearstatus(); statusBar->status(strerror(errno)); statusBar->beepError(); return true; } close(pipefd[1]); while (wait(NULL) != pid1) ; Curses::runCommand(args, pipefd[0], ""); close(pipefd[0]); return true; } if (key == key_ROT13) { erase(); messageInfo->rot13=!messageInfo->rot13; setFirstLineShown(0); messageInfo->beginReformat(getWidth()); folderUpdated(); return true; } if ((key == key_UNENCRYPT) && (messageInfo->isSigned() || messageInfo->isEncrypted()) && GPG::gpg.gpg_installed()) { mail::ptr<CursesMessage> ptr=messageInfo; std::string passphrase; std::vector<std::string> options; bool wasEncrypted=messageInfo->isEncrypted(); if (wasEncrypted) { if (!PasswordList::passwordList.check("decrypt:", passphrase)) { myServer::promptInfo passPrompt(_("Passphrase (if" " required): ")); passPrompt=myServer::prompt(passPrompt .password()); if (passPrompt.abortflag || ptr.isDestroyed()) return true; passphrase=passPrompt; } } std::string::iterator b=GPG::gpg.extraDecryptVerifyOptions.begin(); while (b != GPG::gpg.extraDecryptVerifyOptions.end()) { if (unicode_isspace((unsigned char)*b)) { b++; continue; } std::string::iterator s=b; while (b != GPG::gpg.extraDecryptVerifyOptions.end()) { if (unicode_isspace((unsigned char)*b)) break; b++; } options.push_back(std::string(s, b)); } bool decryptFailed; if (messageInfo->decrypt(passphrase, options, decryptFailed)) { if (wasEncrypted && !decryptFailed) PasswordList::passwordList .save("decrypt:", passphrase); erase(); setFirstLineShown(0); messageInfo->beginReformat(getWidth()); folderUpdated(); if (wasEncrypted && decryptFailed) { statusBar->clearstatus(); statusBar->status(_("ERROR: Decryption failed," " passphrase forgotten.")); statusBar->beepError(); } } return true; } if (key == key_MSGSEARCH) { mail::ptr<CursesMessage> ptr=messageInfo; myServer::promptInfo searchPrompt(_("Search: ")); searchPrompt=myServer::prompt(searchPrompt .initialValue(searchString)); if (searchPrompt.abortflag || ptr.isDestroyed()) return true; searchString=searchPrompt; if (searchString.size() == 0) return true; mail::Search searchEngine; if (!searchEngine.setString(searchString, unicode_default_chset())) { statusBar->clearstatus(); statusBar->status(strerror(errno)); statusBar->beepError(); return true; } searchEngine.reset(); statusBar->clearstatus(); statusBar->status(_("Searching...")); statusBar->flush(); size_t n=messageInfo->nLines(); std::vector<std::pair<textAttributes, std::string> > line; while (firstLineToSearch < n) { messageInfo->getLineImage(firstLineToSearch, line); std::string s; std::vector<std::pair<textAttributes, std::string> > ::iterator b, e; for (b=line.begin(), e=line.end(); b != e; ++b) s += Gettext::toutf8(b->second); unicode_char *uc; size_t ucsize; if (unicode_convert_tou_tobuf(s.c_str(), s.size(), "utf-8", &uc, &ucsize, NULL)) { statusBar->clearstatus(); statusBar->status(strerror(errno)); statusBar->beepError(); return true; } if (ucsize == 0) { free(uc); ++firstLineToSearch; continue; } size_t i; for (i=0; i<ucsize; ++i) { searchEngine << uc[i]; } free(uc); searchEngine << (unicode_char)' '; // EOL if (searchEngine) { size_t nLines=messageInfo->nLines(); size_t h=getHeight(); size_t lastLine= nLines > h ? nLines-h:0; size_t foundAt=firstLineToSearch; size_t n=foundAt > 0 ? foundAt-1:0; if (n > lastLine) n=lastLine; setFirstLineShown(n); firstLineToSearch=foundAt+1; statusBar->clearstatus(); statusBar->status(Gettext(_("Text located," " displayed on" " line #%1%")) << (firstLineToSearch-n)); draw(); return true; } ++firstLineToSearch; } statusBar->clearstatus(); statusBar->status(_("Not found.")); return true; } if (key.fkey()) { std::string local_cmd; if (!CursesIndexDisplay::FilterMessageCallback ::getFilterCmd(key.fkeynum(), local_cmd)) return true; CursesIndexDisplay::FilterMessageCallback cb(local_cmd); std::vector<size_t> msgvec; msgvec.push_back(messageInfo->myfolder->getServerIndex (messageInfo->myfolder->getCurrentMessage())); messageInfo->myfolder->getServer() ->server->readMessageContent(msgvec, true, mail::readBoth, cb); if (myServer::eventloop(cb)) { cb.finish(); if (myServer::nextScreen) return true; if (cb.errmsg.size()) { statusBar->clearstatus(); statusBar->status(cb.errmsg); statusBar->beepError(); } } return true; } return false; }
void draw2(const char* filename,const int ivt1) { TFile *f=new TFile(filename,"READ"); draw2(ivt1); }
//------------------------------------------------------------------------------------- void BillBoard::draw(ZFrustum* pFrustum){ draw2(pFrustum->m_matView); //뷰 매트릭스 넘김 }
void CutInWindow::safeDraw(Graphics *const graphics) { Window::safeDraw(graphics); draw2(graphics); }