| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- // ImageView.cpp : implementation file
- //
- #include "stdafx.h"
- #include "SkinBuilder.h"
- #include "ImageView.h"
- #include ".\imageview.h"
- #define SKIN 0
- #define IMAGES 1
- #define WNDSKIN 2
- // CImageView
- IMPLEMENT_DYNCREATE( CImageView , CTreeView )
- CImageView::CImageView()
- {
- m_pImages = GetImages();
- }
- CImageView::~CImageView()
- {
- }
- BEGIN_MESSAGE_MAP(CImageView, CTreeView)
- ON_WM_CREATE()
- ON_WM_CONTEXTMENU()
- ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnTvnSelchanged)
- ON_WM_RBUTTONDOWN()
- END_MESSAGE_MAP()
- // CImageView diagnostics
- #ifdef _DEBUG
- void CImageView::AssertValid() const
- {
- CTreeView::AssertValid();
- }
- void CImageView::Dump( CDumpContext & dc ) const
- {
- CTreeView::Dump( dc );
- }
- #endif //_DEBUG
- // CImageView message handlers
- int CImageView::OnCreate( LPCREATESTRUCT lpCreateStruct )
- {
- lpCreateStruct->style |= TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_HASBUTTONS | TVS_LINESATROOT;
- if ( CTreeView::OnCreate( lpCreateStruct ) == -1 )
- {
- return -1;
- }
- // TODO: Add your specialized creation code here
- m_imageList.Create( IDB_BITMAP_MAIN,16,42,RGB( 255,0,255 ) );
- GetTreeCtrl().SetImageList( &m_imageList,TVSIL_NORMAL );
- m_itemSkins = GetTreeCtrl().InsertItem( _T( "skin" ),0,0 );
- m_itemImages = GetTreeCtrl().InsertItem( _T( "images" ),1,1,m_itemSkins );
- m_itemSkinObject = GetTreeCtrl().InsertItem( _T( "SkinObject" ),3,3,m_itemSkins );
- GetTreeCtrl().Expand( m_itemSkins,TVE_EXPAND );
- return 0;
- }
- void CImageView::OnContextMenu( CWnd* /*pWnd*/ , CPoint /*point*/ )
- {
- // TODO: Add your message handler code here
- }
- void CImageView::OnTvnSelchanged( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMTREEVIEW pNMTreeView = reinterpret_cast< LPNMTREEVIEW >( pNMHDR );
- // TODO: Add your control notification handler code here
- HTREEITEM hItem = GetTreeCtrl().GetSelectedItem();
- GetDocument()->m_nSelectedType = GetTreeCtrl().GetItemData( hItem );
- if ( GetDocument()->m_nSelectedType == OBJECT_TYPE_IMAGE )
- {
- CString strName;
- strName = GetTreeCtrl().GetItemText( hItem );
- GetDocument()->m_pCurrentImage = GetDocument()->m_pSkin->FindIamge( strName );
- }
- if ( GetDocument()->m_nSelectedType == OBJECT_TYPE_SKINOBJECT_WINDOW )
- {
- CString strName;
- strName = GetTreeCtrl().GetItemText( hItem );
- GetDocument()->m_pCurrentObject = GetDocument()->m_pSkin->FindObjectSkin( strName );
- }
- else if ( GetDocument()->m_nSelectedType == OBJECT_TYPE_SKINOBJECT_WINBUTTON )
- {
- CString strName;
- strName = GetTreeCtrl().GetItemText( hItem );
- CWindowSkin * pWin = GetSkin().GetWindowSkin();
- GetDocument()->m_pCurrentObject = pWin;
- GetDocument()->m_pCurrentWinButton = pWin->FindButton( strName );
- }
- else
- {
- CString strName;
- strName = GetTreeCtrl().GetItemText( hItem );
- GetDocument()->m_pCurrentObject = GetDocument()->m_pSkin->FindObjectSkin( strName );
- }
- GetDocument()->UpdateAllViews( this );
- *pResult = 0;
- }
- void CImageView::OnUpdate( CView* /*pSender*/ , LPARAM /*lHint*/ , CObject* /*pHint*/ )
- {
- // TODO: Add your specialized code here and/or call the base class
- GetTreeCtrl().DeleteAllItems();
- m_itemSkins = GetTreeCtrl().InsertItem( _T( "skin" ),0,0 );
- GetTreeCtrl().SetItemData( m_itemSkins,OBJECT_TYPE_SKINS );
- m_itemImages = GetTreeCtrl().InsertItem( _T( "images" ),1,1,m_itemSkins );
- GetTreeCtrl().SetItemData( m_itemImages,OBJECT_TYPE_IMAGES );
- m_itemSkinObject = GetTreeCtrl().InsertItem( _T( "SkinObject" ),3,3,m_itemSkins );
- GetTreeCtrl().SetItemData( m_itemSkinObject,OBJECT_TPPE_SKINOBJECTS );
- GetTreeCtrl().Expand( m_itemSkins,TVE_EXPAND );
- int i;
- HTREEITEM hItem;
- for ( i = 0 ; i < m_pImages->m_arrayImages.GetSize(); i++ )
- {
- CSkinBitmap * pImage = m_pImages->m_arrayImages.GetAt( i );
- hItem = GetTreeCtrl().InsertItem( pImage->m_strName,9,9,m_itemImages );
- GetTreeCtrl().SetItemData( hItem,OBJECT_TYPE_IMAGE );
- GetTreeCtrl().Expand( m_itemImages,TVE_EXPAND );
- }
- for ( i = 0 ; i < GetSkin().m_arraySkinObjects.GetSize(); i++ )
- {
- CObjectSkin * pObject = GetSkin().m_arraySkinObjects.GetAt( i );
- if ( pObject->GetSkinType() == keWindowSkin )
- {
- CWindowSkin * pWin = ( CWindowSkin * ) pObject;
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_WINDOW );
- for ( int i = 0 ; i < pWin->GetChildrenCount() ; i++ )
- {
- hItem = GetTreeCtrl().InsertItem( pWin->GetAt( i )->GetName(),3,3,hParent );
- GetTreeCtrl().SetItemData( hItem,OBJECT_TYPE_SKINOBJECT_WINBUTTON );
- }
- GetTreeCtrl().Expand( hParent,TVE_EXPAND );
- }
- else if ( pObject->GetSkinType() == keScrollBarSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_SCROLLBAR );
- }
- else if ( pObject->GetSkinType() == keButtonSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_BUTTON );
- }
- else if ( pObject->GetSkinType() == keRadioSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_RADIO );
- }
- else if ( pObject->GetSkinType() == keCheckBoxSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_CHECK );
- }
- else if ( pObject->GetSkinType() == keGroupBoxSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_GROUP );
- }
- else if ( pObject->GetSkinType() == keEditSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_EDIT );
- }
- else if ( pObject->GetSkinType() == keStaticSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_STATIC );
- }
- else if ( pObject->GetSkinType() == keComboxSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_COMBOX );
- }
- else if ( pObject->GetSkinType() == keListBoxSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_LISTBOX );
- }
- else if ( pObject->GetSkinType() == kePopMenuSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_POPUPMENU );
- }
- else if ( pObject->GetSkinType() == keSpinSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_SPIN );
- }
- else if ( pObject->GetSkinType() == keSliderSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_SLIDER );
- }
- else if ( pObject->GetSkinType() == keProgressSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_PROGRESS );
- }
- else if ( pObject->GetSkinType() == keHeaderSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_HEADER );
- }
- else if ( pObject->GetSkinType() == keTabSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_TAB );
- }
- else if ( pObject->GetSkinType() == keStatusbarSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_STATUSBAR );
- }
- else if ( pObject->GetSkinType() == keToolbarSkin )
- {
- HTREEITEM hParent;
- hParent = GetTreeCtrl().InsertItem( pObject->GetName(),3,3,m_itemSkinObject );
- GetTreeCtrl().SetItemData( hParent,OBJECT_TYPE_SKINOBJECT_TOOLBAR );
- }
- }
- GetTreeCtrl().Expand( m_itemSkins,TVE_EXPAND );
- GetTreeCtrl().Expand( m_itemImages,TVE_EXPAND );
- GetTreeCtrl().Expand( m_itemSkinObject,TVE_EXPAND );
- Invalidate( TRUE );
- }
- void CImageView::OnInitialUpdate()
- {
- CTreeView::OnInitialUpdate();
- m_pImages = GetImages();
- }
- void CImageView::OnRButtonDown( UINT nFlags , CPoint point )
- {
- // TODO: Add your message handler code here and/or call default
- CMenu menu;
- menu.LoadMenu( IDR_MAINFRAME );
- CMenu * pSub = menu.GetSubMenu( 3 );
- if ( GetDocument()->m_nSelectedType == OBJECT_TYPE_SKINOBJECT_WINDOW )
- {
- CMenu * pMenu = pSub->GetSubMenu( 1 );
- pMenu->EnableMenuItem( ID_WINDOWLESS_WINBUTTONSKIN,MF_BYCOMMAND | MF_ENABLED );
- }
- else
- {
- CMenu * pMenu = pSub->GetSubMenu( 1 );
- pMenu->EnableMenuItem( ID_WINDOWLESS_WINBUTTONSKIN,MF_BYCOMMAND | MF_DISABLED | MF_GRAYED );
- }
- CMenu * pMenu = pSub->GetSubMenu( 1 );
- pMenu->EnableMenuItem( ID_WINDOWLESS_WINSTATICSKIN,MF_BYCOMMAND | MF_DISABLED | MF_GRAYED );
- CPoint pt;
- GetCursorPos( &pt );
- // pSub->TrackPopupMenuEx(TPM_RIGHTBUTTON|TPM_LEFTALIGN,pt.x,pt.y,this,NULL);
- CTreeView::OnRButtonDown( nFlags,point );
- }
|