// SkinBuilderDoc.cpp : CSkinBuilderDoc 类的实现 // #include "stdafx.h" #include "SkinBuilder.h" #include "SkinBuilderDoc.h" #include "MainFrm.h" #include ".\skinbuilderdoc.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSkinBuilderDoc IMPLEMENT_DYNCREATE( CSkinBuilderDoc , CDocument ) BEGIN_MESSAGE_MAP(CSkinBuilderDoc, CDocument) ON_COMMAND(ID_OBJECTS_LOADIMAGE, OnObjectsLoadimage) ON_COMMAND(ID_WINDOW_FRAMEWINDOW, OnWindowFramewindow) ON_COMMAND(ID_WINDOWLESS_WINBUTTONSKIN, OnWindowlessWinbuttonskin) ON_UPDATE_COMMAND_UI(ID_WINDOWLESS_WINBUTTONSKIN, OnUpdateWindowlessWinbuttonskin) ON_COMMAND(ID_STANDARDCONTROLS_SKINTOOLBAR, OnStandardcontrolsSkintoolbar) ON_COMMAND(ID_STANDARDCONTROLS_SKINSCROLLBAR, OnStandardcontrolsSkinscrollbar) ON_COMMAND(ID_STANDARDCONTROLS_SKINBUTTON, OnStandardcontrolsSkinbutton) ON_COMMAND(ID_STANDARDCONTROLS_SKINRADIO, OnStandardcontrolsSkinradio) ON_COMMAND(ID_STANDARDCONTROLS_SKINEDIT, OnStandardcontrolsSkinedit) ON_COMMAND(ID_STANDARDCONTROLS_SKINCHECKBOX, OnStandardcontrolsSkincheckbox) ON_COMMAND(ID_STANDARDCONTROLS_SKINGROUPBOX, OnStandardcontrolsSkingroupbox) ON_COMMAND(ID_STANDARDCONTROLS_SKINSTATIC, OnStandardcontrolsSkinstatic) ON_COMMAND(ID_STANDARDCONTROLS_SKINCOMBOBOX, OnStandardcontrolsSkincombobox) ON_COMMAND(ID_STANDARDCONTROLS_SKINLISTBOX, OnStandardcontrolsSkinlistbox) ON_COMMAND(ID_STANDARDCONTROLS_SKINPOPUPMENU, OnStandardcontrolsSkinpopupmenu) ON_COMMAND(ID_STANDARDCONTROLS_SKINSPIN, OnStandardcontrolsSkinspin) ON_COMMAND(ID_STANDARDCONTROLS_SKINHEADER, OnStandardcontrolsSkinheader) ON_COMMAND(ID_STANDARDCONTROLS_SKINPROGRESS, OnStandardcontrolsSkinprogress) ON_COMMAND(ID_STANDARDCONTROLS_SKINSLIDER, OnStandardcontrolsSkinslider) ON_COMMAND(ID_STANDARDCONTROLS_SKINTAB, OnStandardcontrolsSkintab) ON_COMMAND(ID_STANDARDCONTROLS_SKINSTATUSBAR, OnStandardcontrolsSkinstatusbar) ON_COMMAND(ID_EDIT_DELETE, OnEditDelete) END_MESSAGE_MAP() // CSkinBuilderDoc 构造/析构 CSkinBuilderDoc::CSkinBuilderDoc() { // TODO: 在此添加一次性构造代码 m_pCurrentImage = NULL; m_pCurrentObject = NULL; m_pSkin = NULL; m_pCurrentWinButton = NULL; m_nSelectedType = OBJECT_TYPE_SKINS; m_fZoom = 2; } CSkinBuilderDoc::~CSkinBuilderDoc() { } BOOL CSkinBuilderDoc::OnNewDocument() { if ( !CDocument::OnNewDocument() ) { return FALSE; } m_pSkin = &GetSkin(); m_pCurrentObject = NULL; m_pCurrentImage = NULL; /*CMainFrame *pMain = (CMainFrame*)AfxGetMainWnd(); m_pViewImage = pMain->m_pViewImage; m_pViewProperty = pMain->m_pViewProperty; m_pViewMain = pMain->m_pViewMain;*/ // TODO: 在此添加重新初始化代码 // (SDI 文档将重用该文档) return TRUE; } // CSknBuilderDoc 序列化 void CSkinBuilderDoc::Serialize( CArchive & ar ) { if ( ar.IsStoring() ) { // TODO: 在此添加存储代码 } else { // TODO: 在此添加加载代码 } } // CSkinBuilderDoc 诊断 #ifdef _DEBUG void CSkinBuilderDoc::AssertValid() const { CDocument::AssertValid(); } void CSkinBuilderDoc::Dump( CDumpContext & dc ) const { CDocument::Dump( dc ); } #endif //_DEBUG // CSkinBuilderDoc 命令 BOOL CSkinBuilderDoc::OnOpenDocument( LPCTSTR lpszPathName ) { /*if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE;*/ // TODO: Add your specialized creation code here GetSkin().LoadSkin( lpszPathName ); m_nSelectedType = OBJECT_TYPE_SKINS; if ( m_pSkin->m_pImages->m_arrayImages.GetSize() > 0 ) { m_pCurrentImage = m_pSkin->m_pImages->m_arrayImages.GetAt( 0 ); } else { m_pCurrentImage = NULL; } if ( m_pSkin->m_arraySkinObjects.GetSize() > 0 ) { m_pCurrentObject = m_pSkin->m_arraySkinObjects.GetAt( 0 ); } else { m_pCurrentObject = NULL; } UpdateAllViews( NULL ); return TRUE; } BOOL CSkinBuilderDoc::OnSaveDocument( LPCTSTR lpszPathName ) { GetSkin().SaveSkin( lpszPathName ); UpdateAllViews( NULL ); return TRUE; return CDocument::OnSaveDocument( lpszPathName ); } void CSkinBuilderDoc::OnObjectsLoadimage() { // TODO: Add your command handler code here CFileDialog dlg ( TRUE,_T( "bmp" ),_T( "*.bmp" ),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T( "bitmap files (*.bmp)|*.bmp|All files (*.*)|*.*||" ) ); dlg.DoModal(); CString path = dlg.GetFileName(); if ( path.IsEmpty() ) { return; } m_pSkin->LoadImage( path ); m_pCurrentImage = m_pSkin->FindIamge( path ); m_nSelectedType = OBJECT_TYPE_IMAGE; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnWindowFramewindow() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddWindowSkin( _T( "MainFrame" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_WINDOW; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnWindowlessWinbuttonskin() { // TODO: Add your command handler code here if ( m_nSelectedType == OBJECT_TYPE_SKINOBJECT_WINDOW ) { if ( m_pCurrentObject->GetSkinType() == keWindowSkin ) { CWindowSkin * pWin = ( CWindowSkin * ) m_pCurrentObject; int nCount = pWin->GetButtonCount(); CString strName; strName.Format( _T( "Button%d" ),nCount ); CWinButtonSkin * pWinButton = new CWinButtonSkin( strName,keClose ); pWin->AddWinButton( pWinButton ); UpdateAllViews( NULL ); } } } void CSkinBuilderDoc::OnUpdateWindowlessWinbuttonskin( CCmdUI * pCmdUI ) { // TODO: Add your command update UI handler code here if ( m_nSelectedType == OBJECT_TYPE_SKINOBJECT_WINDOW ) { pCmdUI->Enable( TRUE ); } else { pCmdUI->Enable( FALSE ); } } void CSkinBuilderDoc::OnStandardcontrolsSkintoolbar() { m_pCurrentObject = m_pSkin->AddToolBarSkin( _T( "ToolBar" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_TOOLBAR; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinscrollbar() { m_pCurrentObject = m_pSkin->AddScrollBarSkin( _T( "ScrollBar" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_SCROLLBAR; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinbutton() { m_pCurrentObject = m_pSkin->AddButtonSkin( _T( "Button" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_BUTTON; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinradio() { m_pCurrentObject = m_pSkin->AddRadioSkin( _T( "Radio" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_RADIO; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinedit() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddEditSkin( _T( "Edit" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_EDIT; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkincheckbox() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddCheckBoxSkin( _T( "CheckBox" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_CHECK; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkingroupbox() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddGroupBoxSkin( _T( "GroupBox" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_GROUP; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinstatic() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddStaticSkin( _T( "Static" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_STATIC; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkincombobox() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddComboxSkin( _T( "Combox" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_COMBOX; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinlistbox() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddListBoxSkin( _T( "ListBox" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_LISTBOX; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinpopupmenu() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddPopupMenuSkin( _T( "PopupMenu" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_POPUPMENU; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinspin() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddSpinSkin( _T( "SpinSkin" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_SPIN; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinheader() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddHeaderSkin( _T( "HeaderSkin" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_HEADER; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinprogress() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddProgressSkin( _T( "ProgressSkin" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_PROGRESS; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinslider() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddSliderSkin( _T( "SliderSkin" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_SLIDER; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkintab() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddTabSkin( _T( "TabSkin" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_TAB; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnStandardcontrolsSkinstatusbar() { // TODO: Add your command handler code here m_pCurrentObject = m_pSkin->AddStatusBarSkin( _T( "StatusbarSkin" ) ); m_nSelectedType = OBJECT_TYPE_SKINOBJECT_STATUSBAR; UpdateAllViews( NULL ); } void CSkinBuilderDoc::OnEditDelete() { // TODO: Add your command handler code here if ( m_nSelectedType > OBJECT_TPPE_SKINOBJECTS && m_nSelectedType < OBJECT_TYPE_SKINOBJECT_MAX ) { GetSkin().DeleteObjectSkin( m_pCurrentObject->GetName() ); m_nSelectedType = OBJECT_TPPE_SKINOBJECTS; m_pCurrentObject = NULL; } UpdateAllViews( NULL ); }