home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / ByeClock.sit / ByeClock / Sources / Bye.h < prev    next >
Text File  |  1996-05-10  |  5KB  |  226 lines

  1. /*
  2.  *--------------------------------------------------------------
  3.  * Bye.h
  4.  *--------------------------------------------------------------
  5.  *    Version 0.7.2
  6.  *    Saturday, December 16, 1995
  7.  *    Fumio Rokkaku
  8.  *--------------------------------------------------------------
  9.  */
  10.  
  11. /*
  12.  *--------------------------------------------------------------
  13.  *    custom type definitions
  14.  *--------------------------------------------------------------
  15.  */
  16. typedef struct {
  17.     OSType    signature;
  18.     long    version;
  19.     Boolean    zoom;
  20.     char    fill1;
  21.     Boolean    shut;
  22.     char    fill2;
  23.     Boolean    confirm;
  24.     char    fill3;
  25.     Boolean    date;
  26.     char    fill4;
  27.     Boolean    blink;
  28.     char    fill5;
  29.     short    reserved1;
  30.     short    reserved2;
  31.     short    reserved3;
  32.     short    hour;
  33.     short    minute;
  34.     short    retry;
  35.     short    font;
  36.     Rect    clockPos;
  37. } PrefRecord, *PrefPtr, **PrefHandle;
  38.  
  39. /*
  40.  *--------------------------------------------------------------
  41.  *    constants
  42.  *--------------------------------------------------------------
  43.  */
  44. #define    kInFront    (WindowRef)-1
  45. #define    kInHeap        (void *)0
  46.  
  47. enum myOwnTypes {
  48.     kMySignature    = 'yBye',
  49.     kPrefRsrcType    = 'ByPr',
  50.     kPrefFileType    = 'ByPr'
  51. };
  52.  
  53. enum myVersions {
  54.     kTheLatestVers    = 0x00000082,
  55.     kCompatibleVers    = 0x00000060
  56. };
  57.  
  58. enum generalIDs {
  59.     kBaseID     = 128
  60. };
  61.  
  62. /* Menu IDs */
  63. enum menuIDs {
  64.     mAppleID = kBaseID,
  65.     mFileID,
  66.     mEditID,
  67.     mFontID
  68. };
  69.  
  70. /* Menu Items */
  71. enum AboutMenuItems {
  72.     of_About = 1
  73. };
  74. enum FileMenuItems {
  75.     of_Prefs = 1,
  76.     of_F___1,
  77.     of_Quit
  78. };
  79. enum EditMenuItems {
  80.     of_Undo    = 1,
  81.     of_E___1,
  82.     of_Cut,
  83.     of_Copy,
  84.     of_Paste,
  85.     of_Clear,
  86.     of_E___2,
  87.     of_SelAll
  88. };
  89.  
  90. /* Dialog IDs */
  91. enum dialogIDs {
  92.     kPrefsID    = 128,
  93.     kAboutID    = 129,
  94.     kOldSysID    = 1024,
  95.     kConfirmID    = 1025
  96. };
  97.  
  98. /* Finder Types */
  99. enum FinderTypes {
  100.     kFinderSig    = 'MACS',
  101.     kAEFinder    = 'FNDR',
  102.     kSystemType    = 'FNDR'
  103. };
  104.  
  105. /* string IDs */
  106. enum stringIDs {
  107.     kTitleStrID        = 128,    
  108.     kPrefNameID        = 129,
  109.     kWeekNameID        = 130,
  110.     kMonthNameID    = 131,
  111.     kSampleStrID    = 132
  112. };
  113.  
  114. /* title string IDs and indexes */
  115. enum titleStrIndexes {
  116.     kWinTitleIdx    = 1,
  117.     kCalendarIdx    = 2,
  118.     kShutTimeIdx    = 3
  119. };
  120.  
  121. /* time interval values (TICKS) */
  122. enum tickValues {
  123.     kSleepTicks    = 60    /* 60 ticks * 1 second */
  124. };
  125. /* time interval values (SECS) */
  126. enum secsValues {
  127.     k10Minutes    = 10 * 60    /* 10 minutes * 60 seconds */
  128. };
  129.  
  130. /* clock drawing commands */
  131. enum updateFlags {
  132.     kDrawIfNeeded = 0,
  133.     kDrawBlinkDot,
  134.     kDrawRightNow
  135. };
  136.  
  137. /* key event character and key codes */
  138. enum constCharCodes {
  139.     kHomeKey     = 0x01,
  140.     kEnterKey    = 0x03,
  141.     kReturnKey    = 0x0D,
  142.     kEscapeKey    = 0x1B
  143. };
  144. enum constKeyCodes {
  145.     kCmmndKey    = 0x37,
  146.     kShiftKey    = 0x38,
  147.     kCapsKey    = 0x38,
  148.     kOptionKey    = 0x3A,
  149.     kCntrlKey    = 0x3B
  150. };
  151.  
  152. /*
  153.  *--------------------------------------------------------------
  154.  *    prototypes
  155.  *--------------------------------------------------------------
  156.  */
  157. /* Bye.main.c */
  158. extern    void DoMountDisk(EventRecord *);
  159. extern    void DoOSEvent(EventRecord *);
  160. extern    Boolean IsKeyPressed(unsigned char);
  161.  
  162. /* Bye.menu.c */
  163. extern    Boolean SetUpMyMenus(void);
  164. extern    void DoMenus(const long);
  165. extern    void AdjustMenus(void);
  166.  
  167. /* Bye.clock.c */
  168. extern    void InitShutDownActions(void);
  169. extern    void InitClockWindowSizes(void);
  170. extern    Boolean SetUpClockWindow(void);
  171. extern    void ZoomClockWindow(const short);
  172. extern    void DrawClockWindow(const short);
  173. extern    void EventOccurred(EventRecord *);
  174. extern    void CheckDeadLine(void);
  175.  
  176. /* Bye.dialog.c */
  177. extern    Boolean SetUpPrefsDialog(void);
  178. extern    void RemovePrefsDialog(void);
  179. extern    Boolean IsModelessState(WindowRef);
  180. extern    void DoModelessDialog(EventRecord *);
  181. extern    void OpenPrefsDialog(void);
  182. extern    void DoPrefsDialog(const short);
  183. extern    Boolean HiliteButton(DialogRef, const short);
  184. extern    void FrameBoldButton(DialogRef, const short);
  185. extern    void DrawBoldButton(DialogRef, const short);
  186. extern    void DoAboutDialog(void);
  187.  
  188. /* Bye.AE.c */
  189. extern    Boolean SetUpMyAppleEvent(void);
  190. extern    void RemoveMyAppleEvent(void);
  191. extern    OSErr DoShutDown(void);
  192.  
  193. /* Bye.pref.c */
  194. extern    Boolean GetMyPreferences(void);
  195. extern    OSErr SaveMyPreferences(void);
  196. extern    short GetTimesFontNumber(void);
  197.  
  198. /*
  199.  *--------------------------------------------------------------
  200.  *    macros
  201.  *--------------------------------------------------------------
  202.  */
  203. extern    long PStrLen(const StringPtr);
  204. extern    void PStrCpy(StringPtr src, StringPtr dst);
  205. extern    void PStrCat(StringPtr src, StringPtr dst);
  206. extern    void SetStrLen(StringPtr, int);
  207. extern    void CatChar(const unsigned char ch, StringPtr dst);
  208.  
  209. #define    PStrLen(str)    ((long)((str)[0]))
  210. #define    PStrCpy(s, d)    { BlockMoveData((s), (d), ((s)[0]+1)); }
  211. #define    PStrCat(s, d)    { BlockMoveData(&(s)[1], &(d)[(d)[0] +1], ((s)[0])); ((d)[0]) += ((s)[0]); }
  212. #define    SetStrLen(s, l)    (s)[0] = (l)
  213. #define    CatChar(c, d)    { (d)[0] += 1; (d)[(d)[0]] = c; }
  214.  
  215. /*
  216.  *--------------------------------------------------------------
  217.  *    global variables
  218.  *--------------------------------------------------------------
  219.  */
  220. extern    WindowRef    gClockWindow;        /* clock window */
  221. extern    DialogRef    gPrefsDialog;        /* preferences dialog */
  222. extern    PrefPtr        gMyPrefs;            /* preferences data pointer */
  223. extern    Boolean     goForever;            /* main loop flag */
  224. extern    Boolean        gNowBackGround;        /* process switch flag */
  225. extern    Boolean        gHasColorQD;        /* color QuickDraw flag */
  226.