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

📄 v4studioframe.cpp

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	GF_Node *lp = m_pV4sm->NewNode(TAG_MPEG4_LineProperties);	M_Material2D *mat2d= (M_Material2D *)m_selection;	mat2d->lineProps = lp;	gf_node_register(lp, m_selection);	m_parentSelection = m_selection;	m_selection = lp;	Update();}void V4StudioFrame::OnNewXLineProps(wxCommandEvent &event){	GF_Node *lp = m_pV4sm->NewNode(TAG_MPEG4_XLineProperties);	M_Material2D *mat2d= (M_Material2D *)m_selection;	mat2d->lineProps = lp;	gf_node_register(lp, m_selection);	m_parentSelection = m_selection;	m_selection = lp;	Update();}void V4StudioFrame::OnNewSound(wxCommandEvent &event){}void V4StudioFrame::OnNewBackground2D(wxCommandEvent &event){	GF_Node *b2d = m_pV4sm->NewNode(TAG_MPEG4_Background2D);	gf_node_insert_child(m_selection, b2d, -1);	gf_node_register(b2d, m_selection);	m_parentSelection = m_selection;	m_selection = b2d;	Update();}void V4StudioFrame::OnNewImageTexture(wxCommandEvent &event){	GF_Node *it = m_pV4sm->NewNode(TAG_MPEG4_ImageTexture);	M_Appearance *app = (M_Appearance *) m_selection;	app->texture = it;	gf_node_register(it, m_selection);	m_parentSelection = m_selection;	m_selection = it;	Update();}void V4StudioFrame::OnNewMovieTexture(wxCommandEvent &event){	GF_Node *mt = m_pV4sm->NewNode(TAG_MPEG4_MovieTexture);	M_Appearance *app = (M_Appearance *)m_selection;	app->texture = mt;	gf_node_register(mt, m_selection);	m_parentSelection = m_selection;	m_selection = mt;	Update();}void V4StudioFrame::UpdateSelection(GF_Node *node, GF_Node *parent) {	SetSelection(node);	SetParentSelection(parent);	m_pMainToolbar->EnableTool(TOOL_EDIT_CUT, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_COPY, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_DELETE, true);	UpdateToolBar();	fieldView->SetNode(node);	fieldView->Create();}// Update displayvoid V4StudioFrame::Update() {	if (m_pV4sm){		if (m_pV4sm->GetGPACPanel()) m_pV4sm->GetGPACPanel()->Update();		treeView->Refresh(m_pV4sm->GetRootNode());	} else {		treeView->Refresh(NULL);	}	UpdateToolBar();}void V4StudioFrame::UpdateToolBar(){	bool enableGeometry = false, enableAppearance =false, 		 enableMaterial = false, enableGroupNode = false,		 enableLineProps = false, enableFontStyle = false, 		 enable2DNode = false, enableTexture = false, enableTopNode = false;	// a scene must have been created to enable the controls	if (m_pV4sm && m_pV4sm->GetInlineScene()) {	  if (m_selection == NULL) {		  enableTopNode = true;	  } else {		  u32 tag = (m_selection != NULL?gf_node_get_tag(m_selection):TAG_MPEG4_OrderedGroup);		  GF_Node * node = m_selection;		  switch (tag) {      case TAG_MPEG4_Switch:		  case TAG_MPEG4_OrderedGroup:		  case TAG_MPEG4_Layer2D:		  case TAG_MPEG4_Transform2D:		  case TAG_MPEG4_TransformMatrix2D:		  case TAG_MPEG4_ColorTransform:			  enableGroupNode = true;			  enable2DNode = true;			  break;		  case TAG_MPEG4_Shape:			  if (!((M_Shape *)node)->geometry) enableGeometry = true;			  if (!((M_Shape *)node)->appearance) enableAppearance = true;			  break;		  case TAG_MPEG4_Appearance:			  if (!((M_Appearance *)node)->material) enableMaterial = true;			  if (!((M_Appearance *)node)->texture) enableTexture = true;			  break;		  case TAG_MPEG4_Material2D:			  if (!((M_Material2D *)node)->lineProps) enableLineProps = true;			  break;		  case TAG_MPEG4_Text:			  if (!((M_Text *)node)->fontStyle) enableFontStyle = true;			  break;		  case TAG_MPEG4_Rectangle:		  case TAG_MPEG4_Circle:		  case TAG_MPEG4_ImageTexture:		  case TAG_MPEG4_MovieTexture:		  case TAG_MPEG4_Background2D:			  break;		  }	  }	}	m_pNodeToolbar->EnableTool(TOOL_NEW_ORDEREDGROUP, enableGroupNode || enable2DNode || enableTopNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_LAYER2D, enableGroupNode || enable2DNode || enableTopNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_TRANSFORM2D, enableGroupNode || enable2DNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_COLOR_TRANSFORM, enableGroupNode || enable2DNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_TRANSFORMMATRIX2D, enableGroupNode || enable2DNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_SHAPE, enable2DNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_RECT, enableGeometry);	m_pNodeToolbar->EnableTool(TOOL_NEW_CIRCLE, enableGeometry);	m_pNodeToolbar->EnableTool(TOOL_NEW_IFS2D, enableGeometry);	m_pNodeToolbar->EnableTool(TOOL_NEW_ILS2D, enableGeometry);	m_pNodeToolbar->EnableTool(TOOL_NEW_TEXT, enableGeometry);	m_pNodeToolbar->EnableTool(TOOL_NEW_MOVIE, enableTexture);	m_pNodeToolbar->EnableTool(TOOL_NEW_IMAGE, enableTexture);	m_pNodeToolbar->EnableTool(TOOL_NEW_SOUND, enable2DNode);	m_pNodeToolbar->EnableTool(TOOL_NEW_APPEARANCE, enableAppearance);	m_pNodeToolbar->EnableTool(TOOL_NEW_MATERIAL2D, enableMaterial);	m_pNodeToolbar->EnableTool(TOOL_NEW_LINEAR_GRADIENT, enableTexture);	m_pNodeToolbar->EnableTool(TOOL_NEW_RADIAL_GRADIENT, enableTexture);	m_pNodeToolbar->EnableTool(TOOL_NEW_LINEPROPS, enableLineProps);	m_pNodeToolbar->EnableTool(TOOL_NEW_XLINEPROPS, enableLineProps);	m_pNodeToolbar->EnableTool(TOOL_NEW_FONTSTYLE, enableFontStyle);}// Cut and paste functionsvoid V4StudioFrame::OnEditCut(wxCommandEvent &WXUNUSED(event)){	if (!m_selection) return;	m_clipboardNode = m_selection;	m_clipboardParentNode = m_parentSelection;	gf_node_remove_child(m_parentSelection, m_selection);	m_pMainToolbar->EnableTool(TOOL_EDIT_CUT, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_COPY, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE_USE, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_DELETE, false);	Update();}void V4StudioFrame::OnEditDelete(wxCommandEvent &WXUNUSED(event)){	if (!m_selection) return;	gf_node_remove_child(m_parentSelection, m_selection);	m_clipboardNode = NULL;	m_clipboardParentNode = NULL;	m_pMainToolbar->EnableTool(TOOL_EDIT_CUT, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_COPY, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE_USE, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_DELETE, false);	Update();}void V4StudioFrame::OnEditCopy(wxCommandEvent &WXUNUSED(event)){	if (!m_selection) return;	m_clipboardNode = m_selection;	m_clipboardParentNode = m_parentSelection;	m_pMainToolbar->EnableTool(TOOL_EDIT_CUT, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_COPY, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE_USE, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_DELETE, false);	Update();}void V4StudioFrame::OnEditPaste(wxCommandEvent &WXUNUSED(event)){	if (m_clipboardNode == NULL) return;	GF_Node *copy = m_pV4sm->CopyNode(m_clipboardNode, m_parentSelection, true);	gf_node_insert_child(m_selection, copy, -1);	m_pMainToolbar->EnableTool(TOOL_EDIT_CUT, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_COPY, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE_USE, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_DELETE, false);	Update();}void V4StudioFrame::OnEditPasteUse(wxCommandEvent &WXUNUSED(event)){	// TODO : hack	if (m_clipboardNode == NULL) return;	GF_Node *copy = m_pV4sm->CopyNode(m_clipboardNode, m_parentSelection, false);	gf_node_register(copy, m_selection);	gf_node_insert_child(m_selection, copy, -1);	m_pMainToolbar->EnableTool(TOOL_EDIT_CUT, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_COPY, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE, true);	m_pMainToolbar->EnableTool(TOOL_EDIT_PASTE_USE, false);	m_pMainToolbar->EnableTool(TOOL_EDIT_DELETE, false);	Update();}// OnAddToTimeLine -- adds a node in the timeline (meaning creating a node ID and adding it to the dictionnary and the pool)void V4StudioFrame::OnAddToTimeLine(wxCommandEvent &event) {	if (!m_selection) return; // don't add nothing	// if object has no node id then create one	if (! gf_node_get_id(m_selection) )		m_pV4sm->CreateIDandAddToPool(m_selection);		// Adds the node to the dictionnary	m_pV4sm->AddToDictionnary(m_selection);	// calls timeline function to add the line	char c[50];	strcpy(c, gf_node_get_name(m_selection));	timeLine->AddLine( gf_node_get_id(m_selection), wxString(c) );}// NextFrame -- goto next framevoid V4StudioFrame::NextFrame(wxCommandEvent &event) {	//gf_term_play_from_time(gpacPanel->GetMPEG4Terminal(), 1000);  	m_selection = NULL;	Update();}// SwitchView -- switches between scene editing and dictionnary editingvoid V4StudioFrame::SwitchView(wxCommandEvent &event) {	SetEditDict(!editDict);}/****** Access Functions ******/// changes time to the frame specified, implies playing the scene up to that pointvoid V4StudioFrame::SetFrame(unsigned long _frame) {	// TODO : 	m_frame = _frame;}// SetEditDict -- edit the dictionnary or notvoid V4StudioFrame::SetEditDict(bool _editDict) {   // does nothing if no scene   if ( ! m_pV4sm->GetSceneGraph() ) return;   editDict = _editDict;   if (editDict) treeView->Refresh(m_pV4sm->GetDictionnary());   else treeView->Refresh(m_pV4sm->GetRootNode());}// GetEditDict -- Access to edit dictbool V4StudioFrame::GetEditDict() const {	return editDict;}

⌨️ 快捷键说明

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