GPS4Palm

Source Code Documentation


fiveway.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  *
00003  * $RCSfile: fiveway_8h-source.html,v $
00004  *
00005  * fiveway.h,v 1.8 2004/05/08 08:57:55 nordstrom Exp
00006  *
00007  * Imported to GPS4Palm from:
00008  * Viewer - a part of Plucker, the free off-line HTML viewer for PalmOS
00009  * Copyright (c) 1998-2002, Mark Ian Lillywhite and Michael Nordstrom
00010  * 
00011  * This program is free software; you can redistribute it and/or
00012  * modify it under the terms of the GNU General Public License
00013  * as published by the Free Software Foundation; either version 2
00014  * of the License, or (at your option) any later version.
00015  * 
00016  * This program is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU General Public License for more details.
00020  * 
00021  * You should have received a copy of the GNU General Public License
00022  * along with this program; if not, write to the Free Software
00023  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00024  *
00025  * $Date: 2007-10-08 20:40:32 $
00026  *
00027  * $Revision: 1.1.2.1 $
00028  *
00029  * $Log: fiveway_8h-source.html,v $
00029  * Revision 1.1.2.1  2007-10-08 20:40:32  mp
00029  * updated for gps4palm V0.9.5 beta
00029  *
00030  * Revision 1.1  2005-03-24 08:44:05  mp
00031  * imported from plucker-1.8
00032  *
00033  *
00034  ****************************************************************************/ 
00035 
00036 #ifndef FIVEWAY_H
00037 #define FIVEWAY_H
00038 
00039 #if defined( HAVE_FIVEWAY_SDK ) && ! defined( HAVE_HANDSPRING_SDK )
00040 
00041 #define FiveWayCenterPressed(eventP) \
00042 ( \
00043   NavSelectPressed(eventP) \
00044 )
00045 
00046 #define FiveWayDirectionPressed(eventP, nav) \
00047 ( \
00048   NavDirectionPressed(eventP, nav) \
00049 )
00050 
00051 /* only to be used with Left, Right, Up, and Down; use
00052    FiveWayCenterPressed for Select/Center */
00053 #define FiveWayKeyPressed(eventP, nav) \
00054 ( \
00055   NavKeyPressed(eventP, nav) \
00056 )
00057 
00058 #define IsFiveWayEvent(eventP) \
00059 ( \
00060   IsFiveWayNavEvent(eventP) \
00061 )
00062 
00063 #elif ! defined( HAVE_FIVEWAY_SDK) && defined( HAVE_HANDSPRING_SDK )
00064 
00065 #define HsNavCenterPressed(eventP) \
00066 ( \
00067   IsHsFiveWayNavEvent(eventP) && \
00068   ((eventP)->data.keyDown.chr == vchrRockerCenter) && \
00069   (((eventP)->data.keyDown.modifiers & commandKeyMask) != 0) \
00070 )
00071 
00072 #define HsNavDirectionPressed(eventP, nav) \
00073 ( \
00074   IsHsFiveWayNavEvent(eventP) && \
00075   ( vchrRocker ## nav == vchrRockerUp) ? \
00076    (((eventP)->data.keyDown.chr == vchrPageUp) || \
00077     ((eventP)->data.keyDown.chr == vchrRocker ## nav)) : \
00078    (vchrRocker ## nav == vchrRockerDown) ? \
00079    (((eventP)->data.keyDown.chr == vchrPageDown) || \
00080     ((eventP)->data.keyDown.chr == vchrRocker ## nav)) : \
00081     ((eventP)->data.keyDown.chr == vchrRocker ## nav) \
00082 )
00083 
00084 #define HsNavKeyPressed(eventP, nav) \
00085 ( \
00086   ( vchrRocker ## nav == vchrRockerCenter ) ? \
00087   HsNavCenterPressed(eventP) : \
00088   HsNavDirectionPressed(eventP, nav) \
00089 )
00090 
00091 #define IsHsFiveWayNavEvent(eventP) \
00092 ( \
00093     HaveHsNav() && ((eventP)->eType == keyDownEvent) && \
00094     ( \
00095         ((((eventP)->data.keyDown.chr == vchrPageUp) || \
00096           ((eventP)->data.keyDown.chr == vchrPageDown)) && \
00097          (((eventP)->data.keyDown.modifiers & commandKeyMask) != 0)) \
00098         || \
00099         (TxtCharIsRockerKey((eventP)->data.keyDown.modifiers, \
00100                             (eventP)->data.keyDown.chr)) \
00101     ) \
00102 )
00103 
00104 #define FiveWayCenterPressed(eventP) \
00105 ( \
00106   HsNavCenterPressed(eventP) \
00107 )
00108 
00109 #define FiveWayDirectionPressed(eventP, nav) \
00110 ( \
00111   HsNavDirectionPressed(eventP, nav) \
00112 )
00113 
00114 /* only to be used with Left, Right, Up, and Down; use
00115    FiveWayCenterPressed for Select/Center */
00116 #define FiveWayKeyPressed(eventP, nav) \
00117 ( \
00118   HsNavKeyPressed(eventP, nav) \
00119 )
00120 
00121 #define IsFiveWayEvent(eventP) \
00122 ( \
00123   IsHsFiveWayNavEvent(eventP) \
00124 )
00125 
00126 
00127 #elif defined( HAVE_FIVEWAY_SDK ) && defined( HAVE_HANDSPRING_SDK )
00128 
00129 #define HsNavCenterPressed(eventP) \
00130 ( \
00131   IsHsFiveWayNavEvent(eventP) && \
00132   ((eventP)->data.keyDown.chr == vchrRockerCenter) && \
00133   (((eventP)->data.keyDown.modifiers & commandKeyMask) != 0) \
00134 )
00135 
00136 #define HsNavDirectionPressed(eventP, nav) \
00137 ( \
00138   IsHsFiveWayNavEvent(eventP) && \
00139   ( vchrRocker ## nav == vchrRockerUp) ? \
00140    (((eventP)->data.keyDown.chr == vchrPageUp) || \
00141     ((eventP)->data.keyDown.chr == vchrRocker ## nav)) : \
00142    (vchrRocker ## nav == vchrRockerDown) ? \
00143    (((eventP)->data.keyDown.chr == vchrPageDown) || \
00144     ((eventP)->data.keyDown.chr == vchrRocker ## nav)) : \
00145     ((eventP)->data.keyDown.chr == vchrRocker ## nav) \
00146 )
00147 
00148 #define HsNavKeyPressed(eventP, nav) \
00149 ( \
00150   ( vchrRocker ## nav == vchrRockerCenter ) ? \
00151   HsNavCenterPressed(eventP) : \
00152   HsNavDirectionPressed(eventP, nav) \
00153 )
00154 
00155 #define IsHsFiveWayNavEvent(eventP) \
00156 ( \
00157     HaveHsNav() && ((eventP)->eType == keyDownEvent) && \
00158     ( \
00159         ((((eventP)->data.keyDown.chr == vchrPageUp) || \
00160           ((eventP)->data.keyDown.chr == vchrPageDown)) && \
00161          (((eventP)->data.keyDown.modifiers & commandKeyMask) != 0)) \
00162         || \
00163         (TxtCharIsRockerKey((eventP)->data.keyDown.modifiers, \
00164                             (eventP)->data.keyDown.chr)) \
00165     ) \
00166 )
00167 
00168 #define FiveWayCenterPressed(eventP) \
00169 ( \
00170   NavSelectPressed(eventP) || \
00171   HsNavCenterPressed(eventP) \
00172 )
00173 
00174 #define FiveWayDirectionPressed(eventP, nav) \
00175 ( \
00176   NavDirectionPressed(eventP, nav) || \
00177   HsNavDirectionPressed(eventP, nav) \
00178 )
00179 
00180 /* only to be used with Left, Right, Up, and Down; use
00181    FiveWayCenterPressed for Select/Center */
00182 #define FiveWayKeyPressed(eventP, nav) \
00183 ( \
00184   NavKeyPressed(eventP, nav) || \
00185   HsNavKeyPressed(eventP, nav) \
00186 )
00187 
00188 #define IsFiveWayEvent(eventP) \
00189 ( \
00190   HaveHsNav() ? IsHsFiveWayNavEvent(eventP) : IsFiveWayNavEvent(eventP) \
00191 )
00192 
00193 #else
00194 
00195 #define IsFiveWayEvent(eventP)         false
00196 #define IsHsFiveWayNavEvent(eventP)    false
00197 #define FiveWayCenterPressed(eventP)   false
00198 #define FiveWayDirectionPressed(eventP, nav) false
00199 #define FiveWayKeyPressed(eventP, nav) false
00200 #define FiveWayLibraryHandler( event ) false
00201 #define FiveWayMainHandler( event )    false
00202 
00203 #endif
00204 
00205 #endif

Created: Mon, 08 Oct 2007 22:33:16 +0200
Copyright ©2004 M. Prinke