⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sgrnumbertextcontrol.hpp

📁 一个基于BREW上的电子时钟程序,通过太阳历计算当前时间,并有闹铃和日志功能.
💻 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 + -