📄 sgrnumbertextcontrol.hpp
字号:
//
// SGRNumberTextControl.hpp
//
// Copyright (C) 2006 Sophia Cradle Incorporated
#ifndef __SGRNUMBERTEXTCONTROL_HPP
#define __SGRNUMBERTEXTCONTROL_HPP
#include <SophiaFramework.hpp>
SFMRESPONDERTYPE(NUMBERTEXTCONTROL, TYPE_CONTROL)
SFMRESPONDERATTRIBUTE(NUMBERTEXTCONTROL, four_char_code('N', 'u', 'm', 't'))
SFMRESPONDERBEHAVIOR(NUMBERTEXTCONTROL, BEHAVIOR_CONTROL, STATUS_VISIBLE | PROPERTY_DIRECT, APPEARANCE_SHADOW | PROPERTY_TRAVEL | PROPERTY_SCROLLABLE)
SFMTYPEDEFCLASS(SGRNumberTextControl)
class SGRNumberTextControl : public SFRControl {
SFMSEALCOPY(SGRNumberTextControl)
private:
SInt32 _digit; // 寘悢
SInt32 _minValue; // 嵟彫抣
SInt32 _maxValue; // 嵟戝抣
SInt32 _currentDigit; // 擖椡嵪傒偺寘悢
SInt32 _value; // 擖椡嵪傒偺抣
public:
explicit SGRNumberTextControl(SFRResponderPtr responder, SFXRectangleConstRef rect, SInt32 digit, SInt32 min, SInt32 max, SInt32 defaultValue);
virtual ~SGRNumberTextControl(Void);
SInt32 GetValue(Void) const;
SFXWideString GetString(Void) const;
private:
Void ProcessNumberKey(SInt32 d);
HANDLER_DECLARE_BOOLEVENT(SGRNumberTextControl, OnKey)
HANDLER_DECLARE_VOIDRENDER(SGRNumberTextControl, OnBase)
HANDLER_DECLARE_VOIDRENDER(SGRNumberTextControl, OnContent)
};
inline SInt32 SGRNumberTextControl::GetValue(Void) const
{
SInt32 val(_value);
if (_value < _minValue) {
val = _minValue;
}
else if (_value > _maxValue) {
val = _maxValue;
}
return val;
}
inline SFXWideString SGRNumberTextControl::GetString(Void) const
{
return SFXWideString::Format("%d", (_value < 0) ? _minValue : _value);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -