72 lines
2.0 KiB
C++
72 lines
2.0 KiB
C++
#pragma once
|
|
//#include "KUIControl.h"
|
|
|
|
class KUIControlButton;
|
|
class KUIControlSimpleButton;
|
|
|
|
|
|
/** 슬라이어든 생성할시 무조건 자식인 KUIControlHSlider로 생성하며 사용시에는 KUIControlSlider으로 관리한다.
|
|
따라서 KUIControlSlider의 생성자는 protected이며 KUIControlSlider의 접근 함수는 모두 private이다. */
|
|
class KUIControlSlider : public KUIControl
|
|
{
|
|
protected:
|
|
KUIControlSlider(void);
|
|
virtual ~KUIControlSlider(void);
|
|
|
|
public:
|
|
void SetSliderRange(DWORD dwMaxRange);
|
|
void SetPosition(int nPos);
|
|
|
|
DWORD GetSliderRange() { return m_dwMaxRange; }
|
|
int GetPosition() { return m_nCurrentPos; }
|
|
|
|
protected:
|
|
virtual void PumpUpMessage(LPCSTR lpszControlID, DWORD dwMessage, DWORD lParam, DWORD wParam);
|
|
virtual DWORD OnKeyMessage(DWORD dwMessage, DWORD dwKeyCode);
|
|
virtual DWORD OnMouseMessage( DWORD dwMessage, int x, int y );
|
|
|
|
virtual void _initControl();
|
|
virtual void _CopyRangeStaticCtr() = 0;
|
|
virtual int _GetOptionControlGap() = 0;
|
|
virtual int _GetPos( int x, int y ) = 0;
|
|
virtual void _BackGroundCtrUpdate(int nPos) = 0;
|
|
virtual void _OffsetOptionCtrBt( int OffsetX, int OffsetY ) = 0;
|
|
virtual bool _ButtonClickUpdate( const char* c_buttonID ) = 0;
|
|
|
|
protected:
|
|
enum
|
|
{
|
|
SLIDER_BAR_LEFT = 0,
|
|
SLIDER_BAR_RIGHT = 1,
|
|
TOTAL_BTN = 2,
|
|
};
|
|
|
|
KUIControlButton* m_pOptionCtrBt;
|
|
KUIControlSimpleButton* m_pSliderBarBtn[TOTAL_BTN];
|
|
|
|
bool m_bMouseDrag;
|
|
int m_nCurrentPos;
|
|
DWORD m_dwMaxRange;
|
|
KPoint m_OldClickPoint;
|
|
};
|
|
|
|
|
|
/// Horizontal Slider
|
|
class KUIControlHSlider : public KUIControlSlider
|
|
{
|
|
public:
|
|
KUIControlHSlider(void);
|
|
virtual ~KUIControlHSlider(void);
|
|
|
|
private:
|
|
virtual void _initControl();
|
|
virtual void _CopyRangeStaticCtr();
|
|
virtual int _GetPos( int x, int y );
|
|
virtual void _OffsetOptionCtrBt( int OffsetX, int OffsetY );
|
|
virtual void _BackGroundCtrUpdate(int nPos);
|
|
virtual bool _ButtonClickUpdate( const char* lpszControlID );
|
|
virtual int _GetOptionControlGap() { return (m_dwMaxRange <= 1) ? m_rcRegion.GetWidth() : m_rcRegion.GetWidth()/(m_dwMaxRange-1); }
|
|
|
|
void RemoveCopyStaticCtr();
|
|
};
|