add palm_util_getTraySearchLimits; addressed, for penDown only,

confusion between whether pen events are handled and whether the
handling means a redraw is required.  Might need to do same for
penMoved and penUp.
This commit is contained in:
ehouse 2004-06-25 06:43:46 +00:00
parent 9f8b53a736
commit 42a8d69df9

View file

@ -147,8 +147,10 @@ static void palm_util_listenPortChange( XW_UtilCtxt* uc, XP_U16 newPort );
static XP_UCHAR* palm_util_getUserString( XW_UtilCtxt* uc, XP_U16 stringCode ); static XP_UCHAR* palm_util_getUserString( XW_UtilCtxt* uc, XP_U16 stringCode );
static XP_Bool palm_util_warnIllegalWord( XW_UtilCtxt* uc, BadWordInfo* bwi, static XP_Bool palm_util_warnIllegalWord( XW_UtilCtxt* uc, BadWordInfo* bwi,
XP_U16 turn, XP_Bool turnLost ); XP_U16 turn, XP_Bool turnLost );
#ifdef XWFEATURE_SEARCHLIMIT
static XP_Bool palm_util_getTraySearchLimits( XW_UtilCtxt* uc, XP_U16* min,
XP_U16* max );
#endif
static void userErrorFromStrId( PalmAppGlobals* globals, XP_U16 strID ); static void userErrorFromStrId( PalmAppGlobals* globals, XP_U16 strID );
static Boolean askFromStream( PalmAppGlobals* globals, XWStreamCtxt* stream, static Boolean askFromStream( PalmAppGlobals* globals, XWStreamCtxt* stream,
XP_S16 titleID, Boolean closeAndDestroy ); XP_S16 titleID, Boolean closeAndDestroy );
@ -607,6 +609,9 @@ initUtilFuncs( PalmAppGlobals* globals )
#endif #endif
vtable->m_util_getUserString = palm_util_getUserString; vtable->m_util_getUserString = palm_util_getUserString;
vtable->m_util_warnIllegalWord = palm_util_warnIllegalWord; vtable->m_util_warnIllegalWord = palm_util_warnIllegalWord;
#ifdef XWFEATURE_SEARCHLIMIT
vtable->m_util_getTraySearchLimits = palm_util_getTraySearchLimits;
#endif
#ifdef SHOW_PROGRESS #ifdef SHOW_PROGRESS
vtable->m_util_engineStarting = palm_util_engineStarting; vtable->m_util_engineStarting = palm_util_engineStarting;
vtable->m_util_engineStopping = palm_util_engineStopping; vtable->m_util_engineStopping = palm_util_engineStopping;
@ -717,8 +722,6 @@ palmInitPrefs( PalmAppGlobals* globals )
#ifdef SHOW_PROGRESS #ifdef SHOW_PROGRESS
globals->gState.showProgress = true; globals->gState.showProgress = true;
#endif #endif
globals->gState.lastNTilesMin = 1;
globals->gState.lastNTilesMax = MAX_TRAY_TILES;
} /* palmInitPrefs */ } /* palmInitPrefs */
@ -1549,7 +1552,7 @@ handleHideTray( PalmAppGlobals* globals )
return draw; return draw;
} /* handleHideTray */ } /* handleHideTray */
#ifdef XWFEATURE_HINT_CONFIG #ifdef XWFEATURE_SEARCHLIMIT
static Boolean static Boolean
popupLists( EventPtr event ) popupLists( EventPtr event )
{ {
@ -1575,15 +1578,15 @@ popupLists( EventPtr event )
} }
} }
return false; return handled;
} /* popupLists */ } /* popupLists */
static void static XP_Bool
doHintConfig( PalmAppGlobals* globals ) doHintConfig( XP_U16* minP, XP_U16* maxP )
{ {
FormPtr form, prevForm; FormPtr form, prevForm;
UInt16 buttonHit;
ListPtr listMin, listMax; ListPtr listMin, listMax;
XP_Bool confirmed;
prevForm = FrmGetActiveForm(); prevForm = FrmGetActiveForm();
form = FrmInitForm( XW_HINTCONFIG_FORM_ID ); form = FrmInitForm( XW_HINTCONFIG_FORM_ID );
@ -1591,23 +1594,25 @@ doHintConfig( PalmAppGlobals* globals )
FrmSetActiveForm( form ); FrmSetActiveForm( form );
listMin = getActiveObjectPtr( XW_HINTCONFIG_MINLIST_ID ); listMin = getActiveObjectPtr( XW_HINTCONFIG_MINLIST_ID );
LstSetSelection( listMin, globals->gState.lastNTilesMin - 1 ); LstSetSelection( listMin, *minP - 1 );
setSelectorFromList( XW_HINTCONFIG_MINSELECTOR_ID, setSelectorFromList( XW_HINTCONFIG_MINSELECTOR_ID,
listMin, globals->gState.lastNTilesMin - 1 ); listMin, *minP - 1 );
listMax = getActiveObjectPtr( XW_HINTCONFIG_MAXLIST_ID ); listMax = getActiveObjectPtr( XW_HINTCONFIG_MAXLIST_ID );
LstSetSelection( listMax, globals->gState.lastNTilesMax - 1 ); LstSetSelection( listMax, *maxP - 1 );
setSelectorFromList( XW_HINTCONFIG_MAXSELECTOR_ID, setSelectorFromList( XW_HINTCONFIG_MAXSELECTOR_ID,
listMax, globals->gState.lastNTilesMax - 1 ); listMax, *maxP - 1 );
buttonHit = FrmDoDialog( form ); confirmed = FrmDoDialog( form ) == XW_HINTCONFIG_OK_ID;
if ( buttonHit == XW_HINTCONFIG_OK_ID ) { if ( confirmed ) {
globals->gState.lastNTilesMin = LstGetSelection( listMin ) + 1; *minP = LstGetSelection( listMin ) + 1;
globals->gState.lastNTilesMax = LstGetSelection( listMax ) + 1; *maxP = LstGetSelection( listMax ) + 1;
} }
FrmDeleteForm( form ); FrmDeleteForm( form );
FrmSetActiveForm( prevForm ); FrmSetActiveForm( prevForm );
return confirmed;
} /* doHintConfig */ } /* doHintConfig */
#endif #endif
@ -1620,7 +1625,11 @@ handleHintRequest( PalmAppGlobals* globals )
XP_ASSERT( !!globals->game.board ); XP_ASSERT( !!globals->game.board );
draw = board_requestHint( globals->game.board, draw = board_requestHint( globals->game.board,
globals->gState.lastNTilesMax, &notDone ); #ifdef XWFEATURE_SEARCHLIMIT
globals->askTrayLimits,
#endif
&notDone );
globals->hintPending = notDone; globals->hintPending = notDone;
return draw; return draw;
} /* handleHintRequest */ } /* handleHintRequest */
@ -2011,7 +2020,7 @@ hresRect( PalmAppGlobals* globals, RectangleType* r )
static Boolean static Boolean
mainViewHandleEvent( EventPtr event ) mainViewHandleEvent( EventPtr event )
{ {
Boolean result = true; Boolean handled = true;
Boolean draw = false; Boolean draw = false;
Boolean erase; Boolean erase;
#if defined CURSOR_MOVEMENT && defined DEBUG #if defined CURSOR_MOVEMENT && defined DEBUG
@ -2030,7 +2039,7 @@ mainViewHandleEvent( EventPtr event )
switch ( event->eType ) { switch ( event->eType ) {
case nilEvent: case nilEvent:
draw = result = handleNilEvent( globals, event ); draw = handled = handleNilEvent( globals, event );
break; break;
case newGameCancelEvent: case newGameCancelEvent:
@ -2147,33 +2156,33 @@ mainViewHandleEvent( EventPtr event )
break; break;
case penDownEvent: case penDownEvent:
globals->penDown = true; globals->penDown = handled;
draw = board_handlePenDown( globals->game.board, draw = board_handlePenDown( globals->game.board,
hresX(globals, event->screenX), hresX(globals, event->screenX),
hresY(globals, event->screenY), 0 ); hresY(globals, event->screenY),
result = draw; 0, &handled );
break; break;
case penMoveEvent: case penMoveEvent:
if ( globals->penDown ) { if ( globals->penDown ) {
result = board_handlePenMove( globals->game.board, handled = board_handlePenMove( globals->game.board,
hresX( globals, event->screenX ), hresX( globals, event->screenX ),
hresY( globals, event->screenY )); hresY( globals, event->screenY ));
draw = result; draw = handled;
} }
break; break;
case penUpEvent: case penUpEvent:
if ( globals->penDown ) { if ( globals->penDown ) {
result = board_handlePenUp( globals->game.board, draw = board_handlePenUp( globals->game.board,
hresX( globals, event->screenX), hresX( globals, event->screenX),
hresY( globals, event->screenY ), hresY( globals, event->screenY ),
0 ); 0 );
draw = result; handled = draw; /* this is wrong!!!! */
globals->penDown = false; globals->penDown = false;
if ( !result ) { if ( !handled ) {
result = considerMenuShow( globals, event ); handled = considerMenuShow( globals, event );
} }
} }
break; break;
@ -2291,13 +2300,17 @@ mainViewHandleEvent( EventPtr event )
case XW_HINT_PULLDOWN_ID: case XW_HINT_PULLDOWN_ID:
board_resetEngine( globals->game.board ); board_resetEngine( globals->game.board );
globals->askTrayLimits = XP_FALSE;
case XW_NEXTHINT_PULLDOWN_ID: case XW_NEXTHINT_PULLDOWN_ID:
draw = handleHintRequest( globals ); draw = handleHintRequest( globals );
break; break;
#ifdef XWFEATURE_HINT_CONFIG #ifdef XWFEATURE_SEARCHLIMIT
case XW_HINTCONFIG_PULLDOWN_ID: case XW_HINTCONFIG_PULLDOWN_ID:
doHintConfig( globals ); board_resetEngine( globals->game.board );
globals->askTrayLimits = XP_TRUE;
draw = handleHintRequest( globals );
break; break;
#endif #endif
@ -2437,10 +2450,11 @@ mainViewHandleEvent( EventPtr event )
case sclRepeatEvent: case sclRepeatEvent:
draw = scrollBoard( globals, event->data.sclRepeat.newValue-SBAR_MIN, draw = scrollBoard( globals, event->data.sclRepeat.newValue-SBAR_MIN,
true ); true );
result = false; handled = false;
break; break;
case ctlSelectEvent: case ctlSelectEvent:
handled = true;
switch ( event->data.ctlEnter.controlID ) { switch ( event->data.ctlEnter.controlID ) {
case XW_MAIN_FLIP_BUTTON_ID: case XW_MAIN_FLIP_BUTTON_ID:
draw = handleFlip( globals ); draw = handleFlip( globals );
@ -2470,11 +2484,12 @@ mainViewHandleEvent( EventPtr event )
break; break;
default: default:
handled = false;
break; break;
} /* switch event->data.ctlEnter.controlID */ } /* switch event->data.ctlEnter.controlID */
default: default:
result = false; handled = false;
break; break;
} }
@ -2487,7 +2502,7 @@ mainViewHandleEvent( EventPtr event )
} }
CALLBACK_EPILOGUE(); CALLBACK_EPILOGUE();
return result; return handled;
} /* mainViewHandleEvent */ } /* mainViewHandleEvent */
static void static void
@ -3358,6 +3373,14 @@ palm_util_warnIllegalWord( XW_UtilCtxt* uc, BadWordInfo* bwi, XP_U16 turn,
return result; return result;
} /* palm_util_warnIllegalWord */ } /* palm_util_warnIllegalWord */
#ifdef XWFEATURE_SEARCHLIMIT
static XP_Bool
palm_util_getTraySearchLimits( XW_UtilCtxt* uc, XP_U16* min, XP_U16* max )
{
return doHintConfig( min, max );
} /* palm_util_getTraySearchLimits */
#endif
#ifdef SHOW_PROGRESS #ifdef SHOW_PROGRESS
static void static void
palm_util_engineStarting( XW_UtilCtxt* uc ) palm_util_engineStarting( XW_UtilCtxt* uc )