1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00
DxWnd.reloaded/host/TimeSliderDlg.cpp
gho tik ef5a5afd7a v2_02_07_src
Former-commit-id: fb4c995685e09cdec938622ea9e024cd87add506
2017-03-06 11:17:02 -05:00

103 lines
2.4 KiB
C++

// TimeSliderDialog.cpp : implementation file
//
#include "stdafx.h"
#include "dxwndhost.h"
#include "TimeSliderDialog.h"
// CTimeSliderDialog dialog
IMPLEMENT_DYNAMIC(CTimeSliderDialog, CDialog)
CTimeSliderDialog::CTimeSliderDialog(CWnd* pParent /*=NULL*/)
: CDialog(CTimeSliderDialog::IDD, pParent)
{
}
CTimeSliderDialog::~CTimeSliderDialog()
{
MessageBoxEx(0, "Time Slider destructor", "Warning", MB_OK | MB_ICONEXCLAMATION, NULL);
//CTimeSliderDialog::OnOK(); // kill timer....
}
void CTimeSliderDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTargetDlg)
DDX_Slider(pDX, IDC_TIMESLIDER, i_TimeSlider);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTimeSliderDialog, CDialog)
ON_WM_TIMER()
END_MESSAGE_MAP()
#define IDTimeSiderTIMER 2
// CTimeSliderDialog message handlers
void CTimeSliderDialog::OnTimer(UINT_PTR nIDEvent)
{
CSliderCtrl *Slider;
CStatic *Text;
char sMsg[81];
static int iLastPos=-1;
extern char *GetTSCaption(int);
Slider=(CSliderCtrl *)this->GetDlgItem(IDC_TIMESLIDER);
Text=(CStatic *)this->GetDlgItem(IDC_TIMESPEED);
CDialog::OnTimer(nIDEvent);
i_TimeSlider=Slider->GetPos();
if(GetHookStatus(NULL)!=DXW_RUNNING) {
Slider->SetPos(0);
Text->SetWindowTextA("idle");
return;
}
if(i_TimeSlider==iLastPos){
// no change, check for keyboard input changes
i_TimeSlider=GetHookInfo()->TimeShift;
if(i_TimeSlider != iLastPos) Slider->SetPos(i_TimeSlider);
}
else {
// slider position changed, set the new value
if (i_TimeSlider < -8) i_TimeSlider=-8;
if (i_TimeSlider > 8) i_TimeSlider= 8;
GetHookInfo()->TimeShift=i_TimeSlider;
}
iLastPos = i_TimeSlider;
sprintf(sMsg, "Time speed %s", GetTSCaption(i_TimeSlider));
Text->SetWindowTextA(sMsg);
}
BOOL CTimeSliderDialog::OnInitDialog()
{
CSliderCtrl *Slider;
CDialog::OnInitDialog();
Slider=(CSliderCtrl *)this->GetDlgItem(IDC_TIMESLIDER);
Slider->SetRange(-8, +8, 0);
Slider->SetTicFreq(1);
Slider->SetPos(GetHookInfo()->TimeShift);
SetTimer(IDTimeSiderTIMER, 1000, NULL);
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CTimeSliderDialog::OnOK()
{
// TODO: Add your specialized code here and/or call the base class
// stop timer
// MessageBoxEx(0, "Stopping Time Slider dialog", "Warning", MB_OK | MB_ICONEXCLAMATION, NULL);
KillTimer(IDTimeSiderTIMER);
DXWNDSTATUS Status;
GetHookInfo()->TimeShift=i_TimeSlider;
CDialog::OnOK();
}