📄 pclock.hpp
字号:
//
// pclock.hpp
//
// Copyright (C) 2006 Sophia Cradle Incorporated
#ifndef __PCLOCK_HPP
#define __PCLOCK_HPP
#include <SophiaFramework.hpp>
#include "pclock.bid"
#include "pclock_res.h"
#include "ClockWindow.hpp"
#include "CityInformation.hpp"
#define PCLOCK_RESOURCE_FILENAME "pclock.bar"
SFMTYPEDEFCLASS(pclock)
class pclock : public SFRApplication {
SFMSEALCOPY(pclock)
public:
SFMTYPEDEFSTRUCT(AlarmInformation)
struct AlarmInformation {
UInt16 _userCode; // 傾儔乕儉偺儐乕僓乕 僐乕僪 (枹巊梡)
SFXWideString _subject; // 傾儔乕儉偺審柤
SFXDate _date; // 傾儔乕儉偺擔帪 (UTC)
};
private:
ClockWindowPtr _clockWindow;
Bool _alarmFlag;
SFRDialogPtr _toRemoveDialog;
CityInformation _cityInfo;
SFXWideString _currentCity;
AlarmInformation _alarmInfo;
AEEMediaData _mediaData;
SFBMediaQCPSmp _mediaQCP;
public:
static SFCInvokerPtr Factory(Void);
CityInformationPtr GetCityInformationPointer(Void);
SFXWideStringConstRef GetCurrentCity(Void) const;
Void SetCurrentCity(SInt32 index);
AlarmInformationConstRef GetAlarm(Void) const;
Bool SetAlarm(AlarmInformationConstRef info);
Bool CancelAlarm(Void);
Void TellAlarm(Void);
SFXWideString GetAlarmDate(SFXDateDurationConstRef timeDifference);
Void SetRemoveDialog(SFRDialogPtr dialog);
Bool IsAlarmActive(Void) const;
private:
explicit pclock(Void) static_throws;
virtual ~pclock(Void);
HANDLER_DECLARE_VOIDSTART(pclock, OnAppStart)
HANDLER_DECLARE_VOIDSTOP(pclock, OnAppStop)
HANDLER_DECLARE_VOIDRESUME(pclock, OnAppResume)
HANDLER_DECLARE_VOIDSUSPEND(pclock, OnAppSuspend)
HANDLER_DECLARE_BOOLEVENT(pclock, OnKey)
HANDLER_DECLARE_BOOLEVENT(pclock, OnAlarm)
HANDLER_DECLARE_VOIDDIALOG(pclock, OnAlarmDialog)
static Void OnTimerSPP(VoidPtr data);
Void OnTimer(Void);
};
inline CityInformationPtr pclock::GetCityInformationPointer(Void)
{
return &_cityInfo;
}
inline SFXWideStringConstRef pclock::GetCurrentCity(Void) const
{
return _currentCity;
}
inline pclock::AlarmInformationConstRef pclock::GetAlarm(Void) const
{
return _alarmInfo;
}
inline Void pclock::OnTimerSPP(VoidPtr data)
{
pclockPtr me(static_cast<pclockPtr>(data));
me->OnTimer();
}
// 揤懱忣曬寁嶼帪丄埵抲忣曬庢摼帪偵昞帵偝傟傞僟僀傾儘僌偑丄
// 傾儔乕儉偺僟僀傾儘僌偲廳側偭偨応崌偺屻巒枛傪埶棅偡傞
inline Void pclock::SetRemoveDialog(SFRDialogPtr dialog)
{
_toRemoveDialog = dialog;
}
inline Bool pclock::IsAlarmActive(Void) const
{
pclockPtr p(const_cast<pclockPtr>(this));
SFBShellSmp shell(SFBShell::GetInstance());
return shell->AlarmsActive() || shell->GetTimerExpiration(OnTimerSPP, p) != 0;
}
#endif // __PCLOCK_HPP //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -