⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v4timeline.cpp

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 CPP
字号:
/*	V4TimeLine.cpp	Impl閙entation de la classe V4TimeLine*/#include "V4TimeLine.h"#include "V4TimeLineCase.h"#include "..\V4StudioFrame.h"// ConstructeurV4TimeLine::V4TimeLine(wxWindow * parent_, unsigned int timeLineLength) : wxScrolledWindow(parent_), sizer(NULL) {  // position en X de la grille  Offset = 100;  Length = timeLineLength;  clicked = NULL;  parent = (V4StudioFrame *) parent_;  sizer = new wxBoxSizer(wxVERTICAL);  // indispensable pour avoir des barres de d閒ilement  SetScrollRate( 5, 5 );  hdr = new V4TimeLineHdr(this);  sizer->Add(hdr);  SetSizer(sizer);  FitInside();}// DestructeurV4TimeLine::~V4TimeLine() {}// retourne la position en X du debut de la grilleint V4TimeLine::GetOffset() {  return Offset;}// returns Length attributeunsigned int V4TimeLine::GetLength() {  return Length;}// Adds a line to the timelinevoid V4TimeLine::AddLine(u32 NodeID, wxString eltName) {  // verifies that we have no line with the same NodeID  for (int i = 0; i < lines.size(); i++) {    if (lines.at(i)->GetNodeID() == NodeID)      return;  }  // adds the line at the end of the list, in the next position  // note that we already have the hearder line in position 0  lines.push_back(    new V4TimeLineElt(this, lines.size()+1, NodeID, eltName, hdr->GetFrame())   );  // redraws the component  sizer->Add(lines.back());  Layout();}// called when time changed, update display (background colors)void V4TimeLine::SetFrame(u32 _frame, V4TimeLineCell * newClicked) {  // updates lines display  if (_frame != hdr->GetFrame()) {    hdr->SetFrame(_frame);    // TODO : apply all commands from previous frames.    // maybe by adding a NextFrame() method    for (int i = 0; i < lines.size(); i++)      lines.at(i)->SetFrame(_frame);  }  // updates clicked state on clicked cells  // removes state from old  if (clicked != NULL) {    u32 state = clicked->GetState();    state &= ~CELL_STATE_CLICKED;    clicked->SetState(state);  }  clicked = newClicked;  // adds state to new  if (clicked != NULL) {    u32 state = clicked->GetState();    state |= CELL_STATE_CLICKED;    clicked->SetState(state);  }  // updates command panel  ((V4StudioFrame *) GetParent())->GetCmdPanel()->Refresh(_frame);}// GetSelectedID -- returns the ID of the node whose timeline is selectedu32 V4TimeLine::GetSelectedID() const {  // if nothing is selected then returns null nodeID  if (!clicked) return 0;  // gets the line from the cell  u32 pos = clicked->GetParent()->GetPos();  // gets the node id (!! the header line is first)  if (pos) return lines.at(pos-1)->GetNodeID();  else return 0; // if we clicked on a header cell}// AddCommand -- void V4TimeLine::AddCommand(GF_Command * c) {  clicked->AddCommand(c);}// DeleteCommand -- void V4TimeLine::DeleteCommand(u32 n) {  clicked->DeleteCommand(n);}// GetCommand -- GF_Command * V4TimeLine::GetCommand(u32 n) {  return clicked->GetCommand(n);}// SetLength -- void V4TimeLine::SetLength(const unsigned int length_) {  hdr->SetLength(length_);  // if the selected frames will be deleted, we select the last cell  if (hdr->GetFrame() > length_) SetFrame(length_);  for (int i = 0; i < lines.size(); i++)    lines.at(i)->SetLength(length_);  Length = length_;  FitInside();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -