/*************************************************************************** * * File name : clock.h * * Copyright (C) 1996 IBM Corporation * * DISCLAIMER OF WARRANTIES. The following [enclosed] code is * sample code created by IBM Corporation. This sample code is not * part of any standard or IBM product and is provided to you solely * for the purpose of assisting you in the development of your * applications. The code is provided "AS IS", without * warranty of any kind. IBM shall not be liable for any damages * arising out of your use of the sample code, even if they have been * advised of the possibility of such damages. * ***************************************************************************/ #ifndef _CLOCK_ #define _CLOCK_ //------------------------------------------------------------------------- // Constants //------------------------------------------------------------------------- #define MATLF_SIZE ( sizeof ( MATRIXLF ) / sizeof ( LONG ) ) #define CLK_MAJORTICKS 0x0001 #define CLK_MINORTICKS 0x0002 #define XDATE 52L #define YDATE 14L #define ZDATE 1L #define HT_HOUR 1 #define HT_MINUTE 2 #define HT_HOUR_SHADE 3 #define HT_MINUTE_SHADE 4 #define HT_SECOND 5 #define DM_TIME ( (USHORT)0x0001) #define DM_DATE ( (USHORT)0x0002) #define DM_ANALOG ( (USHORT)0x0010) #define DM_DIGITAL ( (USHORT)0x0020) #define DM_SECONDHAND ( (USHORT)0x0040) #define MAXTITLELENGTH 256 #ifndef MESSAGELEN #define MESSAGELEN 80 #endif #define SHADE 0 #define LIGHT 1 #define SURFACE 2 #define BACKGROUND 3 #define DP_INSIDE 0 #define DP_UNDER 1 #define DP_LEFTDOWN 2 #define DP_LEFTMIDDLE 3 #define DM_REDRAW 0 #define DM_UPDATE 1 #define AM_ACTIVE ( (USHORT) 0x0001) #define AM_AUDIO ( (USHORT) 0x0002) #define AM_MSGBOX ( (USHORT) 0x0004) #define TIMER_ASYNC 1 #define TIMER_CONT 2 #define SEM_TIMER_NAME "\\sem32\\applnam.sem" #ifndef NO_ERROR #define NO_ERROR (APIRET ) 0L #endif #define SEM_TIMER_VALUE ( (ULONG) (1000L * 60 * 60) ) #define SZ_APPNAME "ClockProgram 2.1" #define SZ_KEYNAME "Preferences" /*--------------------------------------------------------------*\ * Messagetable ids \*--------------------------------------------------------------*/ #ifndef IDMSG_INITFAILED #define IDMSG_INITFAILED 101 #define IDMSG_MAINWINCREATEFAILED 102 #define IDMSG_CANNOTOPENINPUTFILE 103 #define IDMSG_CANNOTOPENOUTPUTFILE 104 #define IDMSG_CANNOTRUNCOLOR 108 #define IDMSG_CANNOTGETHPS 109 #define IDMSG_HELPLOADERROR 110 #define IDMSG_CANNOTLOADSTRING 111 #define IDMSG_CANNOTOPENPRINTER 112 #define IDMSG_HELPDISPLAYERROR 113 #define IDMSG_CANNOTLOADEXITLIST 114 #define IDMSG_PRINTINITFAILED 115 #define IDMSG_OVERWRITEFILE 116 #define IDMSG_PRINTERROR 117 #define IDMSG_UNDOFAILED 118 #define IDMSG_CANNOTGETFILEINFO 119 #define IDMSG_CANNOTALLOCATEMEMORY 120 #define IDMSG_CANNOTREADFILE 121 #define IDMSG_CANNOTWRITETOFILE 122 #define IDMSG_CANNOTLOADFONTS 123 #define IDMSG_CANNOTGETPAGEINFO 124 #endif /**************************************************************************\ * * * MODULE: dialogs.h * * * * COMMENT: Constants for the Clock dialogs * * * \**************************************************************************/ #define CLKTM_MAJOR 0x0100 #define CLKTM_MINOR 0x0200 #define CLKTM_ALWAYS 0x0001 #define CLKTM_NOTICONIC 0x0002 #define CLKTM_NEVER 0x0004 #define CLKCLR_BUTTONSHIFT 0x08 #define CLKCLR_OBJECTS 0x0100 #define CLKCLR_BACKGROUND 0x0101 #define CLKCLR_FACE 0x0102 #define CLKCLR_HOURHAND 0x0103 #define CLKCLR_MINUTEHAND 0x0104 #define CCHMAXSTRING 256 #define TIME_SEP_LEN 1 #define DATE_SEP_LEN 1 #define STRING_AM_LEN 2 #define STRING_PM_LEN 2 #define AM_PM 2 /* index into rTimeSep */ #define PATHMAX 259 /* path cb max */ #define COUNTRY_USA 1 /* Country code */ #define COUNTRY_UK 44 /* Country code */ /*--------------------------------------------------------------*\ * Standard Dialog box ids \*--------------------------------------------------------------*/ #define FILEOPEN 2000 #define FILESAVE 2001 #define MSGBOXID 1001 #define OBJECTID 1002 //------------------------------------------------------------------------- // Structures //------------------------------------------------------------------------- typedef struct _ALARMTIME { UCHAR uchHour; UCHAR uchMinutes; USHORT usMode; } ALARMTIME; typedef struct _CLOCKPREF { USHORT usMajorTickPref; /*0,1*/ USHORT usMinorTickPref; /*2,3*/ LONG clrBackground; /*4,5,6,7*/ LONG clrFace; /*8,9,a,b*/ LONG clrHourHand; /*c,d,e,f*/ LONG clrMinuteHand; /*10,11,12,13*/ LONG clrDateOnAnalog; /*14,15,16,17*/ BOOL fControlsHidden; /*18,19*/ USHORT usDispMode; /*1a,1b*/ ALARMTIME alarm ; /*1c,1d,1e,1f*/ SWP swp; /*20....*/ SHORT sTimerType; } CLOCKPREF; typedef CLOCKPREF *PCLOCKPREF; typedef struct _INISAVERESTORE { SWP swp; USHORT yRestore; USHORT xRestore; USHORT yMinRestore; USHORT xMinRestore; } INISAVERESTORE; typedef struct _DATETIME FAR *LPDT; /* For DosGet/SetDateTime */ struct CLKDATA { HDC hdcBuffer; HPS hpsBuffer; BOOL fBufferDirty; BOOL fEndThread; HRGN hClipRegion; HRGN hrgnFace; CLOCKPREF cp; HWND hwndHelpInstance; HSWITCH hsw ; BOOL fStartAsIcon ; BOOL fHelpEnabled; SHORT Selected ; SHORT PreviousSelected; BOOL bLeadingZero; BOOL bIsIconic; WRECT rDateTime[6]; WRECT rAlarmTime[3]; /* placement of time and date matters */ WRECT rRepaintTime; WRECT rDateAssign[3]; SHORT sFirstTime; SHORT sFirstDate; SHORT asLeftOf[6]; SHORT asRightOf[6]; SHORT wDateTime[6]; SHORT wPrevDateTime[6]; HWND hDate,hTime; HWND hDateScroll; HWND hTimeScroll; HWND hCurrentFocus; HWND hDateTime; HWND hAlarmTime; BOOL bTwelveHourFormat; WRECT rTimeSep[3]; CHAR szTimeSep[TIME_SEP_LEN+1]; CHAR szAnteMeridian[STRING_AM_LEN+1]; CHAR szPostMeridian[STRING_PM_LEN+1]; CHAR szTitle [81]; CHAR szErrClocks[PATHMAX+1]; WRECT rDateSep[2]; CHAR szDateSep[DATE_SEP_LEN+1]; BOOL fTimeFreez ; BOOL fDateFreez ; USHORT vusDateFormat; MATRIXLF vmatlfDateTrans; MATRIXLF vmatlfDateScale; DATETIME dt ; BOOL fIconic , fShowSecondHand ; char achOldTime[9]; char achAmPm[3]; char achOldAmPm[3]; char achOldDate[9]; HPS hpsWnd; LONG cxScreen, cyScreen; /* screen dimensions */ LONG vclrBG[3]; LONG vclrFace[3]; LONG vclrRing[3]; LONG vclrHands[3]; LONG vclrMajorTicks[3]; LONG vclrMinorTicks[3]; LONG vclrDate[4]; USHORT vusDatePos; BOOL vbInAlarm; HWND hwndEntryField; }; typedef CLKDATA *PCLKDATA; #endif