| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522 |
- // ImageDlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "SkinBuilder.h"
- #include "ImageDlg.h"
- #include ".\imagedlg.h"
- // CImageDlg dialog
- IMPLEMENT_DYNAMIC( CImageDlg , CDialog )
- CImageDlg::CImageDlg( CWnd * pParent /*=NULL*/ ) : CDialog( CImageDlg::IDD,pParent ) , m_nSectionTop( 0 ) , m_nSectionLeft( 0 ) , m_nSectionRight( 10 ) , m_nSectionBottom( 10 ) , m_nMarginsLeft( 0 ) , m_nMarginsTop( 0 ) , m_nMarginsRight( 0 ) , m_nMarginsBottom( 0 ) , m_nDrawMode( 0 )
- {
- m_pCurrentBitmap = NULL;
- }
- CImageDlg::~CImageDlg()
- {
- }
- void CImageDlg::DoDataExchange( CDataExchange * pDX )
- {
- CDialog::DoDataExchange( pDX );
- DDX_Control( pDX,IDC_LIST_IMAGE,m_listImage );
- DDX_Text( pDX,IDC_EDIT_SELECTIONTOP,m_nSectionTop );
- DDX_Text( pDX,IDC_EDIT_SELECTIONLEFT,m_nSectionLeft );
- DDX_Text( pDX,IDC_EDIT_SELECTIONRIGHT,m_nSectionRight );
- DDX_Text( pDX,IDC_EDIT_SELECTIONBOTTOM,m_nSectionBottom );
- DDX_Text( pDX,IDC_EDIT_MARGINSLEFT,m_nMarginsLeft );
- DDX_Text( pDX,IDC_EDIT_MARGINSTOP,m_nMarginsTop );
- DDX_Text( pDX,IDC_EDIT_MARGINSRIGHT,m_nMarginsRight );
- DDX_Text( pDX,IDC_EDIT_MARGINSBOTTOM,m_nMarginsBottom );
- DDX_CBIndex( pDX,IDC_COMBO_DRAWMODE,m_nDrawMode );
- DDX_Control( pDX,IDC_COMBO_DRAWMODE,m_combDrawMode );
- }
- BEGIN_MESSAGE_MAP(CImageDlg, CDialog)
- ON_EN_CHANGE(IDC_EDIT_SELECTIONLEFT, OnEnChangeEditSelectionleft)
- ON_EN_CHANGE(IDC_EDIT_SELECTIONTOP, OnEnChangeEditSelectiontop)
- ON_EN_CHANGE(IDC_EDIT_SELECTIONRIGHT, OnEnChangeEditSelectionright)
- ON_EN_CHANGE(IDC_EDIT_SELECTIONBOTTOM, OnEnChangeEditSelectionbottom)
- ON_EN_CHANGE(IDC_EDIT_MARGINSLEFT, OnEnChangeEditMarginsleft)
- ON_EN_CHANGE(IDC_EDIT_MARGINSTOP, OnEnChangeEditMarginstop)
- ON_EN_CHANGE(IDC_EDIT_MARGINSRIGHT, OnEnChangeEditMarginsright)
- ON_EN_CHANGE(IDC_EDIT_MARGINSBOTTOM, OnEnChangeEditMarginsbottom)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_MARGINSBOTTOM, OnDeltaposSpinMarginsbottom)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_MARGINSLEFT, OnDeltaposSpinMarginsleft)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_MARGINSRIGHT, OnDeltaposSpinMarginsright)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_MARGINSTOP, OnDeltaposSpinMarginstop)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SELECTIONBOTTOM, OnDeltaposSpinSelectionbottom)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SELECTIONLEFT, OnDeltaposSpinSelectionleft)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SELECTIONRIGHT, OnDeltaposSpinSelectionright)
- ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SELECTIONTOP, OnDeltaposSpinSelectiontop)
- ON_LBN_SELCHANGE(IDC_LIST_IMAGE, OnLbnSelchangeListImage)
- ON_BN_CLICKED(IDC_BUTTON_ZOOM1, OnBnClickedButtonZoom1)
- ON_BN_CLICKED(IDC_BUTTON_ZOOM2, OnBnClickedButtonZoom2)
- ON_BN_CLICKED(IDC_BUTTON_ZOOM3, OnBnClickedButtonZoom3)
- ON_BN_CLICKED(IDC_BUTTON_ZOOM4, OnBnClickedButtonZoom4)
- ON_BN_CLICKED(IDC_BUTTON_ZOOM5, OnBnClickedButtonZoom5)
- ON_CBN_SELCHANGE(IDC_COMBO_DRAWMODE, OnCbnSelchangeComboDrawmode)
- END_MESSAGE_MAP()
- // CImageDlg message handlers
- BOOL CImageDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: Add extra initialization here
- CSkinImages * pImages = GetImages();
- int i ;
- for ( i = 0 ; i < keStretchCount ; i++ )
- {
- m_combDrawMode.AddString( stretch[i] );
- }
- if ( m_wndImage.m_bSection )
- {
- if ( m_wndImage.m_pImageSection != NULL )
- {
- m_nSectionLeft = m_wndImage.m_pImageSection->rtImagePos.left;
- m_nSectionRight = m_wndImage.m_pImageSection->rtImagePos.right;
- m_nSectionTop = m_wndImage.m_pImageSection->rtImagePos.top;
- m_nSectionBottom = m_wndImage.m_pImageSection->rtImagePos.bottom;
- m_wndImage.m_rtTracker = m_wndImage.m_pImageSection->rtImagePos;
- m_nMarginsLeft = m_wndImage.m_pImageSection->marginImage.left;
- m_nMarginsRight = m_wndImage.m_pImageSection->marginImage.right;
- m_nMarginsTop = m_wndImage.m_pImageSection->marginImage.top;
- m_nMarginsBottom = m_wndImage.m_pImageSection->marginImage.bottom;
- m_wndImage.m_rtMargins = m_wndImage.m_pImageSection->marginImage;
- m_combDrawMode.SetCurSel( m_wndImage.m_pImageSection->stretchDrawMode );
- m_nDrawMode = m_wndImage.m_pImageSection->stretchDrawMode;
- UpdateData( FALSE );
- }
- CString strCaption;
- strCaption = _T( "ImageSection " ) + ( CString ) m_wndImage.m_pImageSection->strImageName;
- SetWindowText( strCaption );
- }
- else
- {
- if ( m_wndImage.m_pImageRect != NULL )
- {
- m_nSectionLeft = m_wndImage.m_pImageRect->rtImagePos.left;
- m_nSectionRight = m_wndImage.m_pImageRect->rtImagePos.right;
- m_nSectionTop = m_wndImage.m_pImageRect->rtImagePos.top;
- m_nSectionBottom = m_wndImage.m_pImageRect->rtImagePos.bottom;
- m_wndImage.m_rtTracker = m_wndImage.m_pImageRect->rtImagePos;
- UpdateData( FALSE );
- }
- CString strCaption;
- strCaption = _T( "ImageRect " ) + ( CString ) m_wndImage.m_pImageRect->strImageName;
- SetWindowText( strCaption );
- }
- // m_listImage.SetItemState(nSelected,LVIS_SELECTED ,LVIF_STATE);
- CRect rtWindow;
- GetDlgItem( IDC_STATIC_EDITIMAGE )->GetWindowRect( &rtWindow );
- ScreenToClient( &rtWindow );
- rtWindow.InflateRect( 1,1 );
- m_wndImage.Create( rtWindow,this );
- int nItem, nSelected = 0;
- CString strName ;
- if ( m_wndImage.m_bSection )
- {
- strName = m_wndImage.m_pImageSection->strImageName;
- }
- else
- {
- strName = m_wndImage.m_pImageRect->strImageName;
- }
- for ( i = 0 ; i < pImages->m_arrayImages.GetSize(); i++ )
- {
- CSkinBitmap * pBitmap = pImages->m_arrayImages.GetAt( i );
- nItem = m_listImage.AddString( pBitmap->m_strName );
- if ( strName == pBitmap->m_strName )
- {
- m_pCurrentBitmap = pBitmap;
- m_wndImage.m_pCurrentBitmap = pBitmap;
- nSelected = nItem;
- m_listImage.SetCurSel( nSelected );
- }
- }
- m_wndImage.Invalidate( NULL );
- m_wndImage.UpdateWindow();
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CImageDlg::OnLvnItemchangedListImage( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMLISTVIEW pNMLV = reinterpret_cast< LPNMLISTVIEW >( pNMHDR );
- // TODO: Add your control notification handler code here
- /*POSITION pos = m_listImage.GetFirstSelectedItemPosition();
- if(pos)
- {
- int nCurrent = m_listImage.GetNextSelectedItem(pos);
- CString strFile = m_listImage.GetItemText(nCurrent,0);
- m_pCurrentBitmap = GetSkin().FindIamge(strFile);
- m_wndImage.m_pCurrentBitmap = m_pCurrentBitmap;
- if(m_wndImage.m_bSection)
- {
- strcpy(m_wndImage.m_pImageSection->strImageName,m_pCurrentBitmap->m_strName);
- }
- else
- {
- strcpy(m_wndImage.m_pImageRect->strImageName,m_pCurrentBitmap->m_strName);
- }
- m_wndImage.InvalidateRect(NULL,TRUE);
- }
- */
- *pResult = 0;
- }
- void CImageDlg::UpdateRect( CRect rect )
- {
- m_nSectionTop = rect.top;
- m_nSectionLeft = rect.left;
- m_nSectionRight = rect.right;
- m_nSectionBottom = rect.bottom;
- UpdateData( FALSE );
- }
- void CImageDlg::OnEnChangeEditSelectionleft()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.left = m_nSectionLeft;
- m_wndImage.m_pImageSection->rtImagePos.left = m_nSectionLeft;
- }
- else
- {
- m_wndImage.m_rtTracker.left = m_nSectionLeft;
- m_wndImage.m_pImageRect->rtImagePos.left = m_nSectionLeft;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditSelectiontop()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.top = m_nSectionTop;
- m_wndImage.m_pImageSection->rtImagePos.top = m_nSectionTop;
- }
- else
- {
- m_wndImage.m_rtTracker.top = m_nSectionTop;
- m_wndImage.m_pImageRect->rtImagePos.top = m_nSectionTop;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditSelectionright()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.right = m_nSectionRight;
- m_wndImage.m_pImageSection->rtImagePos.right = m_nSectionRight;
- }
- else
- {
- m_wndImage.m_rtTracker.right = m_nSectionRight;
- m_wndImage.m_pImageRect->rtImagePos.right = m_nSectionRight;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditSelectionbottom()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.bottom = m_nSectionBottom;
- m_wndImage.m_pImageSection->rtImagePos.bottom = m_nSectionBottom;
- }
- else
- {
- m_wndImage.m_rtTracker.bottom = m_nSectionBottom;
- m_wndImage.m_pImageRect->rtImagePos.bottom = m_nSectionBottom;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditMarginsleft()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.left = m_nMarginsLeft;
- m_wndImage.m_pImageSection->marginImage.left = m_nMarginsLeft;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditMarginstop()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.top = m_nMarginsTop;
- m_wndImage.m_pImageSection->marginImage.top = m_nMarginsTop;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditMarginsright()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.right = m_nMarginsRight;
- m_wndImage.m_pImageSection->marginImage.right = m_nMarginsRight;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnEnChangeEditMarginsbottom()
- {
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.bottom = m_nMarginsBottom;
- m_wndImage.m_pImageSection->marginImage.bottom = m_nMarginsBottom;
- }
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnDeltaposSpinMarginsbottom( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nMarginsBottom += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.bottom = m_nMarginsBottom;
- m_wndImage.m_pImageSection->marginImage.bottom = m_nMarginsBottom;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinMarginsleft( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nMarginsLeft += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.left = m_nMarginsLeft;
- m_wndImage.m_pImageSection->marginImage.left = m_nMarginsLeft;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinMarginsright( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nMarginsRight += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.right = m_nMarginsRight;
- m_wndImage.m_pImageSection->marginImage.right = m_nMarginsRight;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinMarginstop( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nMarginsTop += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtMargins.top = m_nMarginsTop;
- m_wndImage.m_pImageSection->marginImage.top = m_nMarginsTop;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinSelectionbottom( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nSectionBottom += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.bottom = m_nSectionBottom;
- m_wndImage.m_pImageSection->rtImagePos.bottom = m_nSectionBottom;
- }
- else
- {
- m_wndImage.m_rtTracker.bottom = m_nSectionBottom;
- m_wndImage.m_pImageRect->rtImagePos.bottom = m_nSectionBottom;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinSelectionleft( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nSectionLeft += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.left = m_nSectionLeft;
- m_wndImage.m_pImageSection->rtImagePos.left = m_nSectionLeft;
- }
- else
- {
- m_wndImage.m_rtTracker.left = m_nSectionLeft;
- m_wndImage.m_pImageRect->rtImagePos.left = m_nSectionLeft;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinSelectionright( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nSectionRight += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.right = m_nSectionRight;
- m_wndImage.m_pImageSection->rtImagePos.right = m_nSectionRight;
- }
- else
- {
- m_wndImage.m_rtTracker.right = m_nSectionRight;
- m_wndImage.m_pImageRect->rtImagePos.right = m_nSectionRight;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnDeltaposSpinSelectiontop( NMHDR * pNMHDR , LRESULT * pResult )
- {
- LPNMUPDOWN pNMUpDown = reinterpret_cast< LPNMUPDOWN >( pNMHDR );
- // TODO: Add your control notification handler code here
- m_nSectionTop += pNMUpDown->iDelta;
- if ( m_wndImage.m_bSection )
- {
- m_wndImage.m_rtTracker.top = m_nSectionTop;
- m_wndImage.m_pImageSection->rtImagePos.top = m_nSectionTop;
- }
- else
- {
- m_wndImage.m_rtTracker.top = m_nSectionTop;
- m_wndImage.m_pImageRect->rtImagePos.top = m_nSectionTop;
- }
- m_wndImage.Invalidate();
- UpdateData( FALSE );
- *pResult = 0;
- }
- void CImageDlg::OnLbnSelchangeListImage()
- {
- // TODO: Add your control notification handler code here
- int nSel = m_listImage.GetCurSel();
- CString strFile;
- m_listImage.GetText( nSel,strFile );
- m_pCurrentBitmap = GetSkin().FindIamge( strFile );
- m_wndImage.m_pCurrentBitmap = m_pCurrentBitmap;
- if ( m_wndImage.m_bSection )
- {
- strcpy( m_wndImage.m_pImageSection->strImageName,m_pCurrentBitmap->m_strName );
- }
- else
- {
- strcpy( m_wndImage.m_pImageRect->strImageName,m_pCurrentBitmap->m_strName );
- }
- m_wndImage.InvalidateRect( NULL,TRUE );
- }
- void CImageDlg::OnBnClickedButtonZoom1()
- {
- // TODO: Add your control notification handler code here
- m_wndImage.m_fZoom = 1.0f;
- m_wndImage.SetScrool();
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnBnClickedButtonZoom2()
- {
- // TODO: Add your control notification handler code here
- m_wndImage.m_fZoom = 1.5f;
- m_wndImage.SetScrool();
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnBnClickedButtonZoom3()
- {
- // TODO: Add your control notification handler code here
- m_wndImage.m_fZoom = 2.0f;
- m_wndImage.SetScrool();
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnBnClickedButtonZoom4()
- {
- // TODO: Add your control notification handler code here
- m_wndImage.m_fZoom = 3.0f;
- m_wndImage.SetScrool();
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnBnClickedButtonZoom5()
- {
- // TODO: Add your control notification handler code here
- m_wndImage.m_fZoom = 4.0f;
- m_wndImage.SetScrool();
- m_wndImage.Invalidate();
- }
- void CImageDlg::OnCbnSelchangeComboDrawmode()
- {
- // TODO: Add your control notification handler code here
- UpdateData( TRUE );
- if ( m_wndImage.m_bSection )
- {
- if ( m_wndImage.m_pImageSection != NULL )
- {
- m_wndImage.m_pImageSection->stretchDrawMode = m_nDrawMode;
- }
- }
- else
- {
- if ( m_wndImage.m_pImageRect != NULL )
- {
- m_wndImage.m_pImageRect->stretchDrawMode = m_nDrawMode;
- }
- }
- }
|