D:/Zythum/DinoKod/Viewer/BottomDialog.cpp

00001 // BottomDialog.cpp : fichier d'implémentation
00002 //
00003 
00004 #include "stdafx.h"
00005 #include "Viewer.h"
00006 #include "ViewerDoc.h"
00007 #include "BottomView.h"
00008 #include "ViewerView.h"
00009 
00010 #include "BottomDialog.h"
00011 
00012 
00013 // Boîte de dialogue CBottomDialog
00014 
00015 IMPLEMENT_DYNAMIC(CBottomDialog, CDialog)
00016 CBottomDialog::CBottomDialog(CWnd* pParent /*=NULL*/)
00017         : CDialog(CBottomDialog::IDD, pParent)
00018 {
00019         m_pDocument = NULL;
00020         m_bPlaying = false;
00021 }
00022 
00023 CBottomDialog::~CBottomDialog()
00024 {
00025 }
00026 
00027 void CBottomDialog::DoDataExchange(CDataExchange* pDX)
00028 {
00029         CDialog::DoDataExchange(pDX);
00030         DDX_Control(pDX, IDC_SLIDER_ANIM, m_SliderAnim);
00031         DDX_Control(pDX, IDC_EDIT_ANIM_CURRENT, m_EditAnimCurrent);
00032         DDX_Control(pDX, IDC_LABEL_OBJECT_SELECTED, m_LabelObjectSelected);
00033         DDX_Control(pDX, IDC_BUTTON_SELECTION_BEGIN, m_ButtonSelectionBegin);
00034         DDX_Control(pDX, IDC_BUTTON_SELECTION_END, m_ButtonSelectionEnd);
00035         DDX_Control(pDX, IDC_BUTTON_ANIM_REWIND, m_ButtonAnimRewind);
00036         DDX_Control(pDX, IDC_BUTTON_ANIM_PLAY, m_ButtonAnimPlay);
00037         DDX_Control(pDX, IDC_BUTTON_ANIM_PAUSE, m_ButtonAnimPause);
00038         DDX_Control(pDX, IDC_BUTTON_ANIM_STOP, m_ButtonAnimStop);
00039         DDX_Control(pDX, IDC_BUTTON_ANIM_FORWARD, m_ButtonAnimForward);
00040         DDX_Control(pDX, IDC_SPIN_ANIM_CURRENT, m_SpinAnimCurrent);
00041         DDX_Control(pDX, IDC_LABEL_ANIM_MIN, m_LabelAnimMin);
00042         DDX_Control(pDX, IDC_BITMAP_SELECTEDOBJECT, m_ObjectSelected);
00043         DDX_Control(pDX, IDC_EDIT_ANIM_MAX, m_EditAnimMax);
00044         DDX_Control(pDX, IDC_SPIN_ANIM_MAX, m_SpinAnimMax);
00045         DDX_Control(pDX, IDC_EDIT_ANIM_FPS, m_EditAnimFPS);
00046         DDX_Control(pDX, IDC_SPIN_ANIM_FPS, m_SpinAnimFPS);
00047         DDX_Control(pDX, IDC_LABEL_FPS, m_LabelFPS);
00048         DDX_Control(pDX, IDC_LABEL_FRAME, m_LabelFrame);
00049         DDX_Control(pDX, IDC_CHECK_HIERARCHY, m_CheckHierarchyAnim);
00050         DDX_Control(pDX, IDC_RADIO_ANIM, m_ButtonAnim);
00051         DDX_Control(pDX, IDC_RADIO_MESH, m_ButtonMesh);
00052 }
00053 
00054 
00055 BEGIN_MESSAGE_MAP(CBottomDialog, CDialog)
00056         ON_BN_CLICKED(IDC_BUTTON_SELECTION_BEGIN, OnBnClickedButtonSelectionBegin)
00057         ON_BN_CLICKED(IDC_BUTTON_SELECTION_END, OnBnClickedButtonSelectionEnd)
00058         ON_BN_CLICKED(IDC_BUTTON_ANIM_REWIND, OnBnClickedButtonAnimRewind)
00059         ON_BN_CLICKED(IDC_BUTTON_ANIM_PLAY, OnBnClickedButtonAnimPlay)
00060         ON_BN_CLICKED(IDC_BUTTON_ANIM_PAUSE, OnBnClickedButtonAnimPause)
00061         ON_BN_CLICKED(IDC_BUTTON_ANIM_STOP, OnBnClickedButtonAnimStop)
00062         ON_BN_CLICKED(IDC_BUTTON_ANIM_FORWARD, OnBnClickedButtonAnimForward)
00063         ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_ANIM_CURRENT, OnDeltaposSpinAnimCurrent)
00064         ON_EN_CHANGE(IDC_EDIT_ANIM_CURRENT, OnEnChangeEditAnimCurrent)
00065         ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER_ANIM, OnNMCustomdrawSliderAnim)
00066         ON_WM_SIZE()
00067         ON_WM_CLOSE()
00068         ON_WM_KEYDOWN()
00069         ON_WM_SYSKEYDOWN()
00070         ON_WM_DESTROY()
00071         ON_EN_CHANGE(IDC_EDIT_ANIM_MAX, OnEnChangeEditAnimMax)
00072         ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_ANIM_MAX, OnDeltaposSpinAnimMax)
00073         ON_WM_HSCROLL()
00074         ON_WM_VSCROLL()
00075         ON_WM_TIMER()
00076         ON_BN_CLICKED(IDC_CHECK_HIERARCHY, OnBnClickedCheckHierarchy)
00077         ON_BN_CLICKED(IDC_RADIO_ANIM, OnBnClickedRadioAnim)
00078         ON_BN_CLICKED(IDC_RADIO_MESH, OnBnClickedRadioMesh)
00079 END_MESSAGE_MAP()
00080 
00081 
00082 // Gestionnaires de messages CBottomDialog
00083 
00084 void CBottomDialog::OnBnClickedButtonSelectionBegin()
00085 {
00086         int     min, max;
00087         m_SliderAnim.GetSelection( min, max );
00088         if( m_SliderAnim.GetPos() > max )
00089         {
00090                 m_SliderAnim.SetSelection( m_SliderAnim.GetPos(), m_SliderAnim.GetPos() );
00091         }
00092         else
00093         {
00094                 m_SliderAnim.SetSelection( m_SliderAnim.GetPos(), max );
00095         }
00096         GetDocument()->SetSelectionStart( m_SliderAnim.GetPos() );
00097         m_SliderAnim.RedrawWindow();
00098 }
00099 
00100 void CBottomDialog::OnBnClickedButtonSelectionEnd()
00101 {
00102         int     min, max;
00103         m_SliderAnim.GetSelection( min, max );
00104         if( m_SliderAnim.GetPos() < min )
00105         {
00106                 m_SliderAnim.SetSelection( m_SliderAnim.GetPos(), m_SliderAnim.GetPos() );
00107         }
00108         else
00109         {
00110                 m_SliderAnim.SetSelection( min, m_SliderAnim.GetPos() );
00111         }
00112         GetDocument()->SetSelectionEnd( m_SliderAnim.GetPos() );
00113         m_SliderAnim.RedrawWindow();
00114 }
00115 
00116 void CBottomDialog::OnBnClickedButtonAnimRewind()
00117 {
00118         int     Min, Max;
00119         m_SliderAnim.GetSelection( Min, Max );
00120         m_SliderAnim.SetPos( (s32)Min );
00121         m_SpinAnimCurrent.SetPos( (s32)Min );
00122         GetDocument()->SetFrame( (s32)Min );
00123 }
00124 
00125 void CBottomDialog::OnBnClickedButtonAnimPlay()
00126 {
00127         m_bPlaying = true;
00128         SetTimer( 1, (UINT)(1000.0f / (float)m_SpinAnimFPS.GetPos()), NULL );
00129         GetDocument()->SetFPS( m_SpinAnimFPS.GetPos() );
00130 }
00131 
00132 void CBottomDialog::OnBnClickedButtonAnimPause()
00133 {
00134         m_bPlaying = false;
00135         KillTimer( 1 );
00136 }
00137 
00138 void CBottomDialog::OnBnClickedButtonAnimStop()
00139 {
00140         m_bPlaying = false;
00141         KillTimer( 1 );
00142         OnBnClickedButtonAnimRewind();
00143 }
00144 
00145 void CBottomDialog::OnBnClickedButtonAnimForward()
00146 {
00147         int     Min, Max;
00148         m_SliderAnim.GetSelection( Min, Max );
00149         m_SliderAnim.SetPos( (s32)Max );
00150         m_SpinAnimCurrent.SetPos( (s32)Max );
00151         GetDocument()->SetFrame( (s32)Max );
00152 }
00153 
00154 void CBottomDialog::OnDeltaposSpinAnimCurrent(NMHDR *pNMHDR, LRESULT *pResult)
00155 {
00156         LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
00157 /*
00158         if( !m_bManageFrame )
00159         {
00160                 m_bManageFrame = true;
00161 
00162                 m_SliderAnim.SetPos( (s32)pNMUpDown->iPos + pNMUpDown->iDelta );
00163                 GetDocument()->SetFrame( (s32)m_SliderAnim.GetPos() );
00164 
00165                 m_bManageFrame = false;
00166         }
00167 */
00168         *pResult = 0;
00169 }
00170 
00171 void CBottomDialog::OnEnChangeEditAnimCurrent()
00172 {
00173 /*      if( m_EditAnimCurrent.GetSafeHwnd() && !m_bManageFrame )
00174         {
00175                 m_bManageFrame = true;
00176 
00177                 char    pText[256];
00178                 m_EditAnimCurrent.GetWindowText( pText, sizeof( pText ) );
00179                 m_SpinAnimCurrent.SetPos( (s32)atoi( pText ) );
00180                 m_SliderAnim.SetPos( (s32)atoi( pText ) );
00181                 GetDocument()->SetFrame( (s32)m_SliderAnim.GetPos() );
00182 
00183                 m_bManageFrame = false;
00184         }*/
00185 }
00186 
00187 void CBottomDialog::OnNMCustomdrawSliderAnim(NMHDR *pNMHDR, LRESULT *pResult)
00188 {
00189         LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
00190 /*
00191         if( !m_bManageFrame )
00192         {
00193                 m_bManageFrame = true;
00194 
00195                 m_SpinAnimCurrent.SetPos( (s32)m_SliderAnim.GetPos() );
00196                 GetDocument()->SetFrame( (s32)m_SliderAnim.GetPos() );
00197 
00198                 m_bManageFrame = false;
00199         }
00200 */
00201         *pResult = 0;
00202 }
00203 
00204 void CBottomDialog::OnEnChangeEditAnimMax()
00205 {
00206 }
00207 
00208 void CBottomDialog::OnDeltaposSpinAnimMax(NMHDR *pNMHDR, LRESULT *pResult)
00209 {
00210         LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
00211 
00212 //      GetDocument()->SetMaxFrame( (s32)pNMUpDown->iPos + pNMUpDown->iDelta );
00213 
00214         *pResult = 0;
00215 }
00216 
00217 void CBottomDialog::OnSize(UINT nType, int cx, int cy)
00218 {
00219         CDialog::OnSize(nType, cx, cy);
00220 
00221         CRect   DlgRect;
00222         CRect   DlgScreenRect;
00223         GetClientRect( &DlgRect );
00224 
00225         int             CurrentYPos = DlgRect.bottom;
00226         int             YInter = 3;
00227         int             Border = 10;
00228 
00229         // LINE 1
00230         if( m_SliderAnim.GetSafeHwnd() )
00231         {
00232                 int             SliderBottom = 40;
00233                 m_SliderAnim.MoveWindow( Border, CurrentYPos - (SliderBottom + Border), DlgRect.right - Border * 2, SliderBottom, TRUE );
00234                 CurrentYPos -= ( SliderBottom + YInter + Border );
00235         }
00236 
00237         // LINE 2
00238         if( m_LabelAnimMin.GetSafeHwnd() )
00239         {
00240                 CRect   LabelRect;
00241                 m_LabelAnimMin.GetClientRect( &LabelRect );
00242                 m_LabelAnimMin.MoveWindow(  9 + Border,
00243                                                                         CurrentYPos - LabelRect.bottom - 4,
00244                                                                         LabelRect.right,
00245                                                                         LabelRect.bottom,
00246                                                                         TRUE );
00247         }
00248 
00249         if( m_EditAnimFPS.GetSafeHwnd() )
00250         {
00251                 int             EditWidth       = 50;
00252                 int             EditHeight      = 20;
00253                 int             SpinWidth       = 16;
00254                 int             LabelWidth      = 30;
00255                 m_EditAnimFPS.MoveWindow( ( DlgRect.right - EditWidth ) / 4,
00256                                                                                 CurrentYPos - EditHeight,
00257                                                                                 EditWidth,
00258                                                                                 EditHeight,
00259                                                                                 TRUE );
00260                 m_SpinAnimFPS.SetBuddy( &m_EditAnimFPS );
00261                 m_SpinAnimFPS.MoveWindow( ( DlgRect.right - EditWidth ) / 4 + EditWidth,
00262                                                                                 CurrentYPos - EditHeight,
00263                                                                                 SpinWidth,
00264                                                                                 EditHeight,
00265                                                                                 TRUE );
00266                 m_LabelFPS.MoveWindow(  ( DlgRect.right - EditWidth ) / 4 - LabelWidth,
00267                                                                                 CurrentYPos - EditHeight + 2,
00268                                                                                 LabelWidth,
00269                                                                                 EditHeight,
00270                                                                                 TRUE );
00271         }
00272 
00273 
00274         if( m_EditAnimCurrent.GetSafeHwnd() )
00275         {
00276                 int             EditWidth       = 50;
00277                 int             EditHeight      = 20;
00278                 int             SpinWidth       = 16;
00279                 int             LabelWidth      = 40;
00280                 m_EditAnimCurrent.MoveWindow( ( DlgRect.right - EditWidth ) / 2,
00281                                                                                 CurrentYPos - EditHeight,
00282                                                                                 EditWidth,
00283                                                                                 EditHeight,
00284                                                                                 TRUE );
00285                 m_SpinAnimCurrent.SetBuddy( &m_EditAnimCurrent );
00286                 m_SpinAnimCurrent.MoveWindow( ( DlgRect.right - EditWidth ) / 2 + EditWidth,
00287                                                                                 CurrentYPos - EditHeight,
00288                                                                                 SpinWidth,
00289                                                                                 EditHeight,
00290                                                                                 TRUE );
00291                 m_LabelFrame.MoveWindow( ( DlgRect.right - EditWidth ) / 2 - LabelWidth,
00292                                                                                 CurrentYPos - EditHeight + 2,
00293                                                                                 LabelWidth,
00294                                                                                 EditHeight,
00295                                                                                 TRUE );
00296         }
00297 
00298         if( m_CheckHierarchyAnim.GetSafeHwnd() )
00299         {
00300                 int             CheckWidth      = 90;
00301                 int             CheckHeight     = 20;
00302                 m_CheckHierarchyAnim.MoveWindow( ( DlgRect.right / 4) * 3 - CheckWidth / 2,
00303                                                                                         CurrentYPos - CheckHeight,
00304                                                                                         CheckWidth,
00305                                                                                         CheckHeight,
00306                                                                                         TRUE );
00307         }
00308 
00309         if( m_EditAnimMax.GetSafeHwnd() )
00310         {
00311                 CRect   EditRect;
00312                 int             EditWidth       = 50;
00313                 int             EditHeight      = 20;
00314                 int             SpinWidth       = 16;
00315                 m_EditAnimMax.MoveWindow(       DlgRect.right - EditWidth - SpinWidth - Border,
00316                                                                         CurrentYPos - EditHeight,
00317                                                                         EditWidth,
00318                                                                         EditHeight,
00319                                                                         TRUE );
00320                 m_SpinAnimMax.MoveWindow(       DlgRect.right - SpinWidth - Border,
00321                                                                         CurrentYPos - EditHeight,
00322                                                                         SpinWidth,
00323                                                                         EditHeight,
00324                                                                         TRUE );
00325                 CurrentYPos -= ( EditHeight + YInter );
00326         }
00327 
00328         // LINE 3
00329         int     ButtonX;
00330         if( m_ButtonSelectionBegin.GetSafeHwnd() )
00331         {
00332                 RECT ButtonAnimRect;
00333                 m_ButtonSelectionBegin.GetClientRect( &ButtonAnimRect );
00334 
00335                 int x = DlgRect.right - (ButtonAnimRect.right * 7) - Border;//( DlgRect.right - (ButtonAnimRect.right * 7) ) / 2;
00336                 ButtonX = x;
00337 
00338                 m_ButtonSelectionBegin.MoveWindow( x + ButtonAnimRect.right * 0, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00339                 m_ButtonSelectionEnd.MoveWindow( x + ButtonAnimRect.right * 1, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00340                 m_ButtonAnimRewind.MoveWindow( x + ButtonAnimRect.right * 2, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00341                 m_ButtonAnimPlay.MoveWindow( x + ButtonAnimRect.right * 3, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00342                 m_ButtonAnimPause.MoveWindow( x + ButtonAnimRect.right * 4, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00343                 m_ButtonAnimStop.MoveWindow( x + ButtonAnimRect.right * 5, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00344                 m_ButtonAnimForward.MoveWindow( x + ButtonAnimRect.right * 6, CurrentYPos - ButtonAnimRect.bottom, ButtonAnimRect.right, ButtonAnimRect.bottom );
00345         }
00346 
00347         if( m_ObjectSelected.GetSafeHwnd() )
00348         {
00349         m_ObjectSelected.MoveWindow( Border, CurrentYPos - 20, 16, 16, TRUE );
00350         }
00351 
00352         if( m_ButtonAnim.GetSafeHwnd() )
00353         {
00354                 RECT    ButtonRect;
00355                 m_ButtonAnim.GetClientRect( &ButtonRect );
00356                 m_ButtonAnim.MoveWindow( ButtonX - ButtonRect.right - Border, CurrentYPos - ButtonRect.bottom * 2, ButtonRect.right, ButtonRect.bottom );
00357         }
00358 
00359         if( m_ButtonMesh.GetSafeHwnd() )
00360         {
00361                 RECT    ButtonRect;
00362                 m_ButtonMesh.GetClientRect( &ButtonRect );
00363                 m_ButtonMesh.MoveWindow( ButtonX - ButtonRect.right - Border, CurrentYPos - ButtonRect.bottom, ButtonRect.right, ButtonRect.bottom );
00364                 ButtonX -= ButtonRect.right + Border;
00365         }
00366 
00367         if( m_LabelObjectSelected.GetSafeHwnd() )
00368         {
00369                 int     x = Border + 16 + Border;
00370                 int w = ButtonX - Border - x;
00371                 m_LabelObjectSelected.MoveWindow( Border + 16 + Border, CurrentYPos - 20, w, 16, TRUE );
00372         }
00373 
00374 }
00375 
00376 BOOL CBottomDialog::OnInitDialog()
00377 {
00378         CDialog::OnInitDialog();
00379 
00380         m_ButtonSelectionBegin.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_SELECTION_BEGIN ) ) );
00381         m_ButtonSelectionEnd.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_SELECTION_END ) ) );
00382         m_ButtonAnimRewind.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_REWIND ) ) );
00383         m_ButtonAnimPlay.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_PLAY ) ) );
00384         m_ButtonAnimPause.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_PAUSE ) ) );
00385         m_ButtonAnimStop.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_STOP ) ) );
00386         m_ButtonAnimForward.SetIcon( LoadIcon( AfxGetApp()->m_hInstance, MAKEINTRESOURCE( IDI_ICON_FORWARD ) ) );
00387         m_ButtonAnim.SetCheck( 1 );
00388 
00389         return TRUE;  // return TRUE unless you set the focus to a control
00390         // EXCEPTION : les pages de propriétés OCX devraient retourner FALSE
00391 }
00392 
00393 void CBottomDialog::OnClose()
00394 {
00395         // TODO : ajoutez ici le code de votre gestionnaire de messages et/ou les paramètres par défaut des appels
00396         CDialog::OnClose();
00397 }
00398 
00399 void CBottomDialog::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
00400 {
00401         // TODO : ajoutez ici le code de votre gestionnaire de messages et/ou les paramètres par défaut des appels
00402 
00403         CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
00404 }
00405 
00406 void CBottomDialog::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
00407 {
00408         // TODO : ajoutez ici le code de votre gestionnaire de messages et/ou les paramètres par défaut des appels
00409 
00410         CDialog::OnSysKeyDown(nChar, nRepCnt, nFlags);
00411 }
00412 
00413 void CBottomDialog::OnDestroy()
00414 {
00415         CDialog::OnDestroy();
00416 
00417         // TODO : ajoutez ici le code de votre gestionnaire de messages
00418 }
00419 
00420 void CBottomDialog::OnOK()
00421 {
00422         // TODO : ajoutez ici votre code spécialisé et/ou l'appel de la classe de base
00423         return;
00424         CDialog::OnOK();
00425 }
00426 
00427 void CBottomDialog::OnCancel()
00428 {
00429         // TODO : ajoutez ici votre code spécialisé et/ou l'appel de la classe de base
00430         return;
00431         CDialog::OnCancel();
00432 }
00433 
00434 void CBottomDialog::InitValue()
00435 {
00436         SetValue( 0, 0, 0, 0, 0, 0, true, "No object selected", NULL, false, false, false );
00437         EnableWindow( FALSE );
00438 }
00439 
00440 void CBottomDialog::SetValue( u32 Pos, u32 Min, u32 Max, u32 SelMin, u32 SelMax, u32 FPS, bool bInherit, char* pName, HICON hIcon, bool bChangeMax, bool bChangeInherit, bool bChangeFPS )
00441 {
00442         EnableWindow( TRUE );
00443 
00444         m_SliderAnim.SetPos( Pos );
00445         m_SliderAnim.SetRange( Min, Max, TRUE );
00446         m_SliderAnim.SetSelection( SelMin, SelMax );
00447         m_SliderAnim.RedrawWindow();
00448 
00449         m_SpinAnimCurrent.SetRange32( Min, Max );
00450         if( bChangeMax )
00451         {
00452                 m_SpinAnimMax.SetRange32( Min, UD_MAXVAL );
00453                 m_SpinAnimMax.EnableWindow( TRUE );
00454                 m_EditAnimMax.EnableWindow( TRUE );
00455         }
00456         else
00457         {
00458                 m_SpinAnimMax.SetRange32( Max, Max );
00459                 m_SpinAnimMax.EnableWindow( FALSE );
00460                 m_EditAnimMax.EnableWindow( FALSE );
00461         }
00462         
00463         m_SpinAnimFPS.SetRange32( 1, 60 );
00464         m_SpinAnimFPS.SetPos( FPS );
00465         if( bChangeFPS )
00466         {
00467                 m_SpinAnimFPS.EnableWindow( TRUE );
00468                 m_EditAnimFPS.EnableWindow( TRUE );
00469         }
00470         else
00471         {
00472                 m_SpinAnimFPS.EnableWindow( FALSE );
00473                 m_EditAnimFPS.EnableWindow( FALSE );
00474         }
00475 
00476         m_ObjectSelected.SetIcon( hIcon );
00477         m_CheckHierarchyAnim.SetCheck( bInherit ? 1 : 0 );
00478         m_CheckHierarchyAnim.EnableWindow( bChangeInherit ? TRUE : FALSE );
00479 
00480         char    pPos[256];
00481         wsprintf( pPos, "%i", Pos );
00482         m_EditAnimCurrent.SetWindowText( pPos );
00483 
00484         char    pFPS[256];
00485         wsprintf( pFPS, "%i", FPS );
00486         m_EditAnimFPS.SetWindowText( pFPS );
00487 
00488         char    pMax[256];
00489         wsprintf( pMax, "%i", Max );
00490         m_EditAnimMax.SetWindowText( pMax );
00491 
00492         m_LabelObjectSelected.SetWindowText( pName );
00493 }
00494 
00495 void CBottomDialog::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
00496 {
00497         if( pScrollBar == (CScrollBar*)&m_SliderAnim )
00498         {
00499                 m_SpinAnimCurrent.SetPos( (s32)m_SliderAnim.GetPos() );
00500                 GetDocument()->SetFrame( (s32)m_SliderAnim.GetPos() );
00501         }
00502 
00503         CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
00504 }
00505 
00506 void CBottomDialog::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
00507 {
00508         if( nSBCode == SB_THUMBPOSITION )
00509         {
00510                 if( pScrollBar == (CScrollBar*)&m_SpinAnimCurrent )
00511                 {
00512                         m_SliderAnim.SetPos( (s32)m_SpinAnimCurrent.GetPos() );
00513                         GetDocument()->SetFrame( (s32)m_SpinAnimCurrent.GetPos() );
00514                 }
00515 
00516                 if( pScrollBar == (CScrollBar*)&m_SpinAnimFPS )
00517                 {
00518                         if( m_bPlaying )
00519                         {
00520                                 KillTimer( 1 );
00521                                 SetTimer( 1, (UINT)(1000.0f / (float)m_SpinAnimFPS.GetPos()), NULL );
00522                         }
00523                         GetDocument()->SetFPS( m_SpinAnimFPS.GetPos() );
00524                 }
00525 
00526                 if( pScrollBar == (CScrollBar*)&m_SpinAnimMax )
00527                 {
00528                         GetDocument()->SetMaxFrame( m_SpinAnimMax.GetPos() );
00529                 }
00530         }
00531 
00532         CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
00533 }
00534 
00535 void CBottomDialog::OnTimer(UINT nIDEvent)
00536 {
00537         int     Min, Max;
00538         int     Pos = m_SliderAnim.GetPos();
00539 
00540         m_SliderAnim.GetSelection( Min, Max );
00541 
00542         Pos ++;
00543         if( Pos < Min )
00544         {
00545                 Pos = Min;
00546         }
00547         else if( Pos > Max )
00548         {
00549                 Pos = Min;
00550         }
00551 
00552         m_SliderAnim.SetPos( Pos );
00553         m_SpinAnimCurrent.SetPos( Pos );
00554         GetDocument()->SetFrame( (s32)Pos );
00555 
00556         CDialog::OnTimer(nIDEvent);
00557 }
00558 
00559 void CBottomDialog::OnBnClickedCheckHierarchy()
00560 {
00561         GetDocument()->SetInheritFrame( m_CheckHierarchyAnim.GetCheck() ? true : false );
00562 }
00563 
00564 void CBottomDialog::OnBnClickedRadioAnim()
00565 {
00566         GetDocument()->GetBottomView()->Refresh();
00567 }
00568 
00569 void CBottomDialog::OnBnClickedRadioMesh()
00570 {
00571         GetDocument()->GetBottomView()->Refresh();
00572 }

Generated on Sun Mar 25 20:02:16 2007 for Zythum Project by  doxygen 1.5.1-p1