|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corp., 1991 **/ /**********************************************************************/
/*
blttd.hxx BLT time/date control object header file
FILE HISTORY: terryk 01-Jun-91 Created terryk 11-Jul-91 Set up as a group terryk 12-Aug-91 Remove BLT_TIMER class from the TIME_DATE control terryk 17-Apr-92 passed intlprof object to the classes beng 13-Aug-1992 Disabled unused TIME_DATE_DIALOG Yi-HsinS 08-Dec-1992 Fix due to WIN_TIME class change */
#ifndef _BLTTD_HXX_
#define _BLTTD_HXX_
#include "ctime.hxx"
#include "intlprof.hxx"
/**********************************************************************
NAME: BLT_TIME_SPIN_GROUP
SYNOPSIS: display the current time and let the user uses the spin button to change the time
INTERFACE: BLT_TIME_SPIN_GROUP() - constructor ~BLT_TIME_SPIN_GROUP() - destructor
IsValid() - return TRUE if the time in the time control panel is valid TimeClick() - set the group values to the current time IsModified() - return whether the group has been changed by the user or not
QueryHour() - return the hour value QueryMin() - return the minute value QuerySec() - return the second value
PARENT: PUSH_BUTTON, CUSTOM_CONTROL
USES: SPIN_GROUP, SPIN_SLE_NUM, SPIN_SLT_SEPARATOR, XYPOINT, XYDIMENSION, OWNER_WINDOW
HISTORY: terryk 01-Jun-91 Created terryk 11-Jul-91 Make it to a group beng 14-Aug-1992 Pretty up the painting a bit jonn 5-Sep-95 Use BLT_BACKGROUND_EDIT
**********************************************************************/
DLL_CLASS BLT_TIME_SPIN_GROUP: public CONTROL_GROUP { private: SPIN_GROUP _sbControl; // spin button
SPIN_SLE_NUM_VALID _ssnHour; // hour field
SPIN_SLT_SEPARATOR _ssltSeparator1; // separator 1
SPIN_SLE_NUM_VALID _ssnMin; // minute field
SPIN_SLT_SEPARATOR _ssltSeparator2; // separator 2
SPIN_SLE_NUM_VALID _ssnSec; // second field
SPIN_SLE_STR *_psssAMPM; // AMPM field
BLT_BACKGROUND_EDIT _bkgndFrame; // framing rectangle
BOOL _f24Hour; // 24 hour format flag
BOOL IsConstructionFail( CONTROL_WINDOW * pwin );
protected: virtual VOID SaveValue( BOOL fInvisible = TRUE ); virtual VOID RestoreValue( BOOL fInvisible = TRUE ); virtual VOID SetControlValueFocus();
public: BLT_TIME_SPIN_GROUP( OWNER_WINDOW *powin, const INTL_PROFILE & intlprof, CID cidSpinButton, CID cidUpArrow, CID cidDownArrow, CID cidHour, CID cidSeparator1, CID cidMin, CID cidSeparator2, CID cidSec, CID cidAMPM, CID cidFrame ); ~BLT_TIME_SPIN_GROUP();
BOOL IsValid(); APIERR SetCurrentTime(); BOOL IsModified() { return _sbControl.IsModified();}
INT QueryHour() const; INT QueryMin() const; INT QuerySec() const;
VOID SetHour( INT nHour ); VOID SetMinute( INT nMinute ); VOID SetSecond( INT nSecond ); };
/**********************************************************************
NAME: BLT_DATE_SPIN_GROUP
SYNOPSIS: display the current month/day/year and let the user uses the spin button to change the time
INTERFACE: BLT_DATE_SPIN_GROUP() - constructor ~BLT_DATE_SPIN_GROUP() - destructor
IsValid() - check the inputed date is correct or not TimeClick() - update the spin group values IsModified() - return whether the spin group has been modified by the user
QueryYear() - return the year QueryMonth() - return the month QueryDay() - return the day
PARENT: PUSH_BUTTON, CUSTOM_CONTROL
USES: SPIN_GROUP, SPIN_SLE_NUM, SPIN_SLT_SEPARATOR, OWNER_WINDOW, XYPOINT, XYDIMENSION
HISTORY: terryk 1-Jun-91 Created beng 14-Aug-1992 Pretty up the painting a bit jonn 5-Sep-95 Use BLT_BACKGROUND_EDIT
**********************************************************************/
DLL_CLASS BLT_DATE_SPIN_GROUP: public CONTROL_GROUP { private: SPIN_GROUP _sbControl; // spin group
SPIN_SLE_NUM_VALID _ssnMonth; // month field
SPIN_SLT_SEPARATOR _ssltSeparator1; // separator1
SPIN_SLE_NUM_VALID _ssnDay; // day field
SPIN_SLT_SEPARATOR _ssltSeparator2; // separator2
SPIN_SLE_NUM_VALID _ssnYear; // Year field
BLT_BACKGROUND_EDIT _bkgndFrame; // framing rectangle
BOOL _fYrCentury; // Year 4 digits or 2 digits
APIERR PlaceControl( INT nPos, OWNER_WINDOW * powin, const INTL_PROFILE & intlprof, const XYPOINT & xyYear, const XYDIMENSION & dxyYear, const XYPOINT & xyMonth, const XYDIMENSION & dxyMonth, const XYPOINT & xyDay, const XYDIMENSION & dxyDay); BOOL IsConstructionFail( CONTROL_WINDOW * pwin );
protected: virtual VOID SaveValue( BOOL fInvisible = TRUE ); virtual VOID RestoreValue( BOOL fInvisible = TRUE ); virtual VOID SetControlValueFocus();
public: BLT_DATE_SPIN_GROUP( OWNER_WINDOW *powin, const INTL_PROFILE & intlprof, CID cidSpinButton, CID cidUpArrow, CID cidDownArrow, CID cidMonth, CID cidSeparator1, CID cidDay, CID cidSeparator2, CID cidYear, CID cidFrame); ~BLT_DATE_SPIN_GROUP();
BOOL IsValid(); APIERR SetCurrentDay(); BOOL IsModified() { return _sbControl.IsModified(); }
INT QueryYear() const; INT QueryMonth() const; INT QueryDay() const;
VOID SetYear( INT nYear ); VOID SetMonth( INT nMonth ); VOID SetDay( INT nDay ); };
#if 0
/**********************************************************************
NAME: TIME_DATE_DIALOG
SYNOPSIS: Time and date control panel
INTERFACE: TIME_DATE_DIALOG() - constructor ~TIME_DATE_DIALOG() - destructor
QueryHour() - return hour (0-24) QueryMin() - return minute (0-59) QuerySec() - return second (0-59)
QueryYear() - return year QueryMonth() - return month(1-12) QueryDay() - return Day (1-31)
PARENT: DIALOG_WINDOW
USES: BLT_TIME_SPIN_GROUP, BLT_DATE_SPIN_GROUP, WINDOW_TIMER
CAVEATS: This class should be the parent class of TIME/DATE control panel. The user can add OK or Cancel button into the dialog book by subclassing this class.
HISTORY: terryk 11-Jul-91 Created rustanl 11-Sep-91 Changed BLT_TIMER to WINDOW_TIMER beng 05-Oct-1991 Win32 conversion
**********************************************************************/
DLL_CLASS TIME_DATE_DIALOG: public DIALOG_WINDOW { private: BLT_TIME_SPIN_GROUP _TimeSG; BLT_DATE_SPIN_GROUP _DateSG; WINDOW_TIMER *_pTimer;
protected: virtual BOOL OnTimer( const TIMER_EVENT & e );
public: TIME_DATE_DIALOG( const TCHAR * pszResourceName, HWND hwndOwner, const INTL_PROFILE & intlprof, CID cidTimeSpinButton, CID cidTimeUpArrow, CID cidTimeDownArrow, CID cidHour, CID cidTimeSeparator1, CID cidMin, CID cidTimeSeparator2, CID cidSec, CID cidAMPM, CID cidDateSpinButton, CID cidDateUpArrow, CID cidDateDownArrow, CID cidMonth, CID cidDateSeparator1, CID cidDay, CID cidDateSeparator2, CID cidYear); ~TIME_DATE_DIALOG();
INT QueryHour() const { return _TimeSG.QueryHour(); }
INT QueryMin() const { return _TimeSG.QueryMin(); }
INT QuerySec() const { return _TimeSG.QuerySec(); }
INT QueryYear() const { return _DateSG.QueryYear(); }
INT QueryMonth() const { return _DateSG.QueryMonth(); }
INT QueryDay() const { return _DateSG.QueryDay(); }
BOOL IsValid() { // TimerSG is always valid
return _DateSG.IsValid(); } }; #endif // disabled unused code
#endif // _BLTTD_HXX_
|