This is Clock.h in view mode; [Download] [Up]
/* * $RCSfile: Clock.h,v $ * * Copyright (C) 1992 by Adobe Systems Incorporated. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notices appear in all copies and that * both those copyright notices and this permission notice appear in * supporting documentation and that the name of Adobe Systems * Incorporated not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior * permission. If any portion of this software is changed, it cannot be * marketed under Adobe's trademarks and/or copyrights unless Adobe, in * its sole discretion, approves by a prior writing the quality of the * resulting implementation. * * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE. * * PostScript, Display PostScript, and Adobe are trademarks of Adobe Systems * Incorporated registered in the U.S.A. and other countries. * * Author: Adobe Systems Incorporated */ #ifndef _CLOCK_H #define _CLOCK_H /*************************************************************** ** ** INCLUDE FILES ** ***************************************************************/ #include <stdio.h> #include <math.h> #include <sys/time.h> #include <sys/timeb.h> #include <Xm/Text.h> #include <Xm/DialogS.h> #include <Xm/MwmUtil.h> #include <Xm/MessageB.h> #include <Mrm/MrmAppl.h> /* Motif Toolkit and MRM */ #include <DPS/dpsXclient.h> #include <DPS/dpsXshare.h> #include <DPS/dpsXuserpath.h> /*************************************************************** ** ** CONSTANT DEFINITIONS ** ***************************************************************/ /* ** These numbers are matched with corresponding numbers in line.uil */ #define cMainDrawArea 1 #define cTraceToggle 2 #define cTimingBox 3 #define cTimingText 4 #define cTimingButton 5 #define cOptionButton0 6 #define cOptionButton1 7 #define cOptionButton2 8 #define cOptionButton3 9 #define LAST_LIST_WIDGET 9 #define MAX_WIDGETS (LAST_LIST_WIDGET + 1) #define A_COEFF 0 /* Constants for X to DPS */ #define B_COEFF 1 /* coordinate translations. */ #define C_COEFF 2 #define D_COEFF 3 #define TX_CONS 4 #define TY_CONS 5 /* ** Colors and sizes for various components */ #define XDPS_BLACK 0.0 #define XDPS_DKGRAY 0.3 #define XDPS_MDGRAY 0.5 #define XDPS_LTGRAY 0.7 #define XDPS_WHITE 1.0 #define CLOCKSIZE 150.0 /* Clock goes from -150 to 150 in x and y */ #define CLRPAGE XDPS_DKGRAY #define CLRCIRC XDPS_MDGRAY #define SIZEDASHES 0.90 #define WIDMIN 3.5 #define CLRMIN XDPS_WHITE #define LENMIN (19.0/20.0) #define DEGMIN (-6.0) #define WIDHOUR 6.0 #define CLRHOUR XDPS_WHITE #define LENHOUR (14.0/15.0) #define DEGHOUR (-30.0) #define ALARM_INTERVAL ((DEGHOUR / 60) / 2) #define ALARM_REPEATS 8 #define ALARM_LEVEL 50 /* -100 = off, 100 = loudest */ #define CLRHANDS XDPS_WHITE #define CLRSECOND XDPS_LTGRAY #define CLRSHADOW 0.20 #define CLRALARMTOP 0.8 #define CLRALARMBOT XDPS_DKGRAY #define LNWIDSECOND 1.0 #define LNWIDHANDS 3.0 #define OFFSETHANDSX 1.0 #define OFFSETHANDSY (-1.0) #define OFFSETSHADX 2.0 #define OFFSETSHADY (-2.0) #define MAX_PTS 300 #define MAX_OPS 150 #define HITSETTING 8.0 /* Hit sensitivity */ #define RADIAN (M_PI/180) #define ALARM 0 #define HOUR 1 #define MINUTE 2 #define SHADOW 3 #define SECOND 4 /*************************************************************** ** ** MACRO DEFINITIONS ** ***************************************************************/ #define ABS(a) (((a) < 0) ? -(a) : (a)) /*************************************************************** ** ** TYPE DECLARATIONS ** ***************************************************************/ typedef struct { Boolean trace; /* state of the trace toggle button */ Boolean pixmapBackground; /* using pixmap flag */ Boolean doubleBuffering;/* double buffering flag */ Boolean graphicStates; /* graphic states flag */ Boolean serverPaths; /* user paths in server flag */ Boolean alarmOn; /* alarm turned on flag */ Pixmap facePixmap; /* pixmap for clock face */ Pixmap clockPixmap; /* pixmap for complete clock */ Dimension Xwidth; /* drawing area width */ Dimension Xheight; /* drawing area height */ Widget widget; /* drawing area widget ID */ Widget timingBox; /* timing box widget ID */ Widget timingText; /* timing text widget ID */ Widget timingButton; /* timing button widget ID */ Widget traceToggle; /* trace toggle widget ID */ XtAppContext appContext; /* application context */ DPSContext dpsCtxt; /* drawing DPS context */ Boolean mapped; /* window mapped flag */ Boolean redrewAlready; /* supress extra redraw */ int numIterations; /* times drawn this method */ int lastTimes[5]; /* last 5 elapsed times */ long milliSecs; /* milliseconds part of time */ } AppDataType, *AppDataTypePtr; /*************************************************************** ** ** FUNCTION DELCARATIONS ** ***************************************************************/ void drawClockTime (); void setAlarm (); int isHit (); int checkAlarm (); void handleWindowResize (); void setBufferRendering (); void setGStates (); void initDPSContext (); /*************************************************************** ** ** EXTERNAL DATA DECLARATIONS ** ***************************************************************/ /* ** Global pointers to the application name and data block */ extern AppDataType AppData; #endif /* _CLOCK_H -- Add nothing below this line */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.