// back-end, now that a wrapper is provided for the front-end code to do the actual scrolling void MemoContentUpdated () { int caretPos; if(lastCurrent <= currLast) DoHighlight( lastCurrent, FALSE ); lastFirst = currFirst; lastLast = currLast; lastCurrent = currCurrent; lastGames = storedGames; lastLastMove[0] = '\0'; if( lastLast > 0 ) { safeStrCpy( lastLastMove, SavePart( currMovelist[lastLast-1] ) , sizeof( lastLastMove)/sizeof( lastLastMove[0]) ); } /* Deselect any text, move caret to end of memo */ if( currCurrent >= 0 ) { caretPos = histMoves[currCurrent].memoOffset + histMoves[currCurrent].memoLength; } else { caretPos = -1; } ScrollToCurrent(caretPos); DoHighlight( currCurrent, TRUE ); // [HGM] moved last, because in X some scrolling methods spoil highlighting }
// back-end, now that color and font-style are passed as numbers static void AppendMoveToMemo (int index) { char buf[64]; if( index < 0 || index >= MAX_MOVES ) { return; } buf[0] = '\0'; /* Move number */ if( (index % 2) == 0 ) { sprintf( buf, "%d.%s ", (index / 2)+1, index & 1 ? ".." : "" ); AppendToHistoryMemo( buf, 1, 0 ); // [HGM] 1 means bold, 0 default color } /* Move text */ safeStrCpy( buf, SavePart( currMovelist[index]) , sizeof( buf)/sizeof( buf[0]) ); strcat( buf, " " ); histMoves[index].memoOffset = AppendToHistoryMemo( buf, 0, 0 ); histMoves[index].memoLength = strlen(buf)-1; /* PV info (if any) */ if( appData.showEvalInMoveHistory && currPvInfo[index].depth > 0 ) { sprintf( buf, "{%s%.2f/%d} ", currPvInfo[index].score >= 0 ? "+" : "", currPvInfo[index].score / 100.0, currPvInfo[index].depth ); AppendToHistoryMemo( buf, 0, 1); // [HGM] 1 means gray } }
// back-end, now that a wrapper is provided for the front-end code to do the actual scrolling void MemoContentUpdated() { int caretPos; DoHighlight( lastCurrent, FALSE ); DoHighlight( currCurrent, TRUE ); lastFirst = currFirst; lastLast = currLast; lastCurrent = currCurrent; lastLastMove[0] = '\0'; if( lastLast > 0 ) { safeStrCpy( lastLastMove, SavePart( currMovelist[lastLast-1] ) , sizeof( lastLastMove)/sizeof( lastLastMove[0]) ); } /* Deselect any text, move caret to end of memo */ if( currCurrent >= 0 ) { caretPos = histMoves[currCurrent].memoOffset + histMoves[currCurrent].memoLength; } else { caretPos = -1; } ScrollToCurrent(caretPos); }
/* bool CDemux::Init(CTSFile * src , CESDBServer *cli) { assert(src && cli); SourceTS = src; ClientAgent = cli; return true; } */ UINT CDemux::MainLoop() { //UINT ret = 0; MessageToUI(MSG_UI_DEMUX_THREAD_CREATE_SUCCESS); while(GetMessage(&msg, NULL, 0, 0)) { MessageToUI(MSG_UI_CURRENT_ACTION_PROCESS,0); //WaitForSingleObject(m_event->m_hObject, INFINITE);//return WAIT_TIMEOUT or WAIT_OBJECT_0 switch(msg.message) { case MSG_DMX_ADD_DEMUX_FILTER: { RunDemux(); } break; case MSG_DMX_ADD_REMUX_FILTER: { RunRemux(); } break; case MSG_DMX_SAVE_PART_TO_FILE: { SavePart((u32)msg.wParam); } break; default: assert(0); break; //m_event->ResetEvent(); } MessageToUI(MSG_UI_CURRENT_ACTION_PROCESS,100); } return 0; }
void Puppet::SavePart(TiXmlElement *parentElement, Part *part) { printf("saving part [%s]\n", part->GetName().c_str()); TiXmlElement xmlPart("Part"); XMLFileNode xmlFileNode(&xmlPart); if (part) { part->Save(&xmlFileNode); } for (std::list<Part*>::iterator i = part->parts.begin(); i != part->parts.end(); ++i) { Part *iterPart = (*i); if (iterPart) { printf (" calling save on subpart [%s]\n", iterPart->GetName().c_str()); SavePart(&xmlPart, iterPart); } } parentElement->InsertEndChild(xmlPart); }
void Puppet::Save() { if (entity) { // save to filename TiXmlDocument xmlDoc; /// TextureAtlas if (textureAtlas) { textureAtlas->Save(&xmlDoc); } /// Parts //TiXmlElement *xmlParts = xmlDoc.FirstChildElement("Parts"); TiXmlElement xmlParts("Parts"); for (std::list<Part*>::iterator i = parts.begin(); i != parts.end(); ++i) { if ((*i)->GetParent() == entity) { printf("calling SaveParts... top level...\n"); SavePart(&xmlParts, (*i)); } } xmlDoc.InsertEndChild(xmlParts); /// Animations TiXmlElement xmlAnimations("Animations"); { /// Animation for (std::list<Animation>::iterator i = animations.begin(); i != animations.end(); ++i) { TiXmlElement xmlAnimation("Animation"); Animation *animation = &(*i); XMLFileNode xmlFileNodeKeyFrameAnim(&xmlAnimation); animation->Save(&xmlFileNodeKeyFrameAnim); /// PartKeyFrames for (std::list<Part*>::iterator j = parts.begin(); j != parts.end(); ++j) { PartKeyFrames *partKeyFrames = animation->GetPartKeyFrames(*j); if (partKeyFrames) { TiXmlElement xmlPartKeyFrames("PartKeyFrames"); XMLFileNode xmlFileNodePartKeyFrames(&xmlPartKeyFrames); partKeyFrames->Save(&xmlFileNodePartKeyFrames); /// KeyFrame std::list<KeyFrame> *keyFrames = partKeyFrames->GetKeyFrames(); for (std::list<KeyFrame>::iterator k = keyFrames->begin(); k != keyFrames->end(); ++k) { KeyFrame *keyFrame = &(*k); TiXmlElement xmlKeyFrame("KeyFrame"); XMLFileNode xmlFileNodeKeyFrame(&xmlKeyFrame); keyFrame->Save(&xmlFileNodeKeyFrame); xmlPartKeyFrames.InsertEndChild(xmlKeyFrame); } xmlAnimation.InsertEndChild(xmlPartKeyFrames); } } xmlAnimations.InsertEndChild(xmlAnimation); } } xmlDoc.InsertEndChild(xmlAnimations); xmlDoc.SaveFile(Assets::GetContentPath() + filename); } }