mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-28 07:58:08 +01:00
Merge branch 'android_branch' into send_in_background
This commit is contained in:
commit
e1e8516e1b
14 changed files with 58 additions and 39 deletions
|
@ -232,11 +232,12 @@ and_draw_boardBegin( DrawCtx* dctx, const XP_Rect* rect,
|
|||
|
||||
static XP_Bool
|
||||
and_draw_drawCell( DrawCtx* dctx, const XP_Rect* rect, const XP_UCHAR* text,
|
||||
const XP_Bitmaps* bitmaps, Tile tile, XP_S16 owner,
|
||||
XWBonusType bonus, HintAtts hintAtts, CellFlags flags )
|
||||
const XP_Bitmaps* bitmaps, Tile tile, XP_U16 value,
|
||||
XP_S16 owner, XWBonusType bonus, HintAtts hintAtts,
|
||||
CellFlags flags )
|
||||
{
|
||||
DRAW_CBK_HEADER("drawCell",
|
||||
"(Landroid/graphics/Rect;Ljava/lang/String;IIIII)Z" );
|
||||
"(Landroid/graphics/Rect;Ljava/lang/String;IIIIII)Z" );
|
||||
jobject jrect = makeJRect( draw, JCACHE_RECT0, rect );
|
||||
jstring jtext = NULL;
|
||||
if ( !!text ) {
|
||||
|
@ -247,7 +248,7 @@ and_draw_drawCell( DrawCtx* dctx, const XP_Rect* rect, const XP_UCHAR* text,
|
|||
}
|
||||
|
||||
jboolean result = (*env)->CallBooleanMethod( env, draw->jdraw, mid,
|
||||
jrect, jtext, tile,
|
||||
jrect, jtext, tile, value,
|
||||
owner, bonus, hintAtts,
|
||||
flags );
|
||||
if ( !!jtext ) {
|
||||
|
|
BIN
xwords4/android/XWords4/res/drawable/values.png
Normal file
BIN
xwords4/android/XWords4/res/drawable/values.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -60,6 +60,10 @@
|
|||
style="@style/toolbar_button"
|
||||
android:src="@drawable/zoom"
|
||||
/>
|
||||
<ImageButton android:id="@+id/values_button_horizontal"
|
||||
style="@style/toolbar_button"
|
||||
android:src="@drawable/values"
|
||||
/>
|
||||
<ImageButton android:id="@+id/undo_button_horizontal"
|
||||
style="@style/toolbar_button"
|
||||
android:src="@drawable/undo"
|
||||
|
|
|
@ -23,11 +23,6 @@
|
|||
android:alphabeticShortcut="H"
|
||||
/>
|
||||
|
||||
<item android:id="@+id/board_menu_values"
|
||||
android:title="@string/board_menu_values"
|
||||
android:alphabeticShortcut="V"
|
||||
/>
|
||||
|
||||
<item android:title="@string/board_submenu_game">
|
||||
<menu>
|
||||
<item android:id="@+id/board_menu_game_counts"
|
||||
|
|
|
@ -76,6 +76,7 @@
|
|||
<string name="key_notagain_trading">key_notagain_trading</string>
|
||||
<string name="key_na_lookup">key_na_lookup</string>
|
||||
<string name="key_na_browse">key_na_browse</string>
|
||||
<string name="key_na_values">key_na_values</string>
|
||||
|
||||
<!-- Name is not localized -->
|
||||
<string name="app_name">Crosswords</string>
|
||||
|
|
|
@ -658,12 +658,6 @@
|
|||
games.-->
|
||||
<string name="board_menu_undo_last">Undo last</string>
|
||||
|
||||
<!-- Toggles the board between displaying tiles' letters and their
|
||||
values. This is intended to allow players to remind
|
||||
themselves how much played tiles are worth while planning a
|
||||
move. -->
|
||||
<string name="board_menu_values">Show values</string>
|
||||
|
||||
<!-- Title of submenu -->
|
||||
<string name="board_submenu_game">Game</string>
|
||||
|
||||
|
@ -1622,8 +1616,13 @@
|
|||
<string name="not_again_chat">This button opens the screen for
|
||||
messaging between devices in this game. Messages will be kept
|
||||
until you delete the game that contains them.</string>
|
||||
|
||||
|
||||
<!-- Shown when you tap the values button on the toolbar of the
|
||||
main Board screen. This is intended to allow players to
|
||||
remind themselves how much played tiles are worth while
|
||||
planning a move. -->
|
||||
<string name="not_again_values">This button changes whether the
|
||||
board shows letters on placed tiles or their point values.
|
||||
Use it to remind yourself what a tile is worth.</string>
|
||||
<!-- This is shown when you choose the board_menu_done menu item.
|
||||
It's to let you know that there's a shortcut that does almost
|
||||
the same thing. -->
|
||||
|
|
|
@ -93,6 +93,7 @@ public class BoardActivity extends XWActivity
|
|||
private static final int START_TRADE_ACTION = 13;
|
||||
private static final int LOOKUP_ACTION = 14;
|
||||
private static final int BUTTON_BROWSE_ACTION = 15;
|
||||
private static final int VALUES_ACTION = 16;
|
||||
|
||||
private static final String DLG_TITLE = "DLG_TITLE";
|
||||
private static final String DLG_TITLESTR = "DLG_TITLESTR";
|
||||
|
@ -610,9 +611,6 @@ public class BoardActivity extends XWActivity
|
|||
case R.id.board_menu_undo_last:
|
||||
showConfirmThen( R.string.confirm_undo_last, UNDO_LAST_ACTION );
|
||||
break;
|
||||
case R.id.board_menu_values:
|
||||
cmd = JNIThread.JNICmd.CMD_VALUES;
|
||||
break;
|
||||
case R.id.board_menu_game_counts:
|
||||
m_jniThread.handle( JNIThread.JNICmd.CMD_COUNTS_VALUES,
|
||||
R.string.counts_values_title );
|
||||
|
@ -715,6 +713,9 @@ public class BoardActivity extends XWActivity
|
|||
case UNDO_ACTION:
|
||||
cmd = JNIThread.JNICmd.CMD_UNDO_CUR;
|
||||
break;
|
||||
case VALUES_ACTION:
|
||||
cmd = JNIThread.JNICmd.CMD_VALUES;
|
||||
break;
|
||||
case CHAT_ACTION:
|
||||
startChatActivity();
|
||||
break;
|
||||
|
@ -1440,6 +1441,10 @@ public class BoardActivity extends XWActivity
|
|||
R.string.not_again_zoom,
|
||||
R.string.key_notagain_zoom,
|
||||
ZOOM_ACTION );
|
||||
m_toolbar.setListener( Toolbar.BUTTON_VALUES,
|
||||
R.string.not_again_values,
|
||||
R.string.key_na_values,
|
||||
VALUES_ACTION );
|
||||
m_toolbar.setListener( Toolbar.BUTTON_UNDO,
|
||||
R.string.not_again_undo,
|
||||
R.string.key_notagain_undo,
|
||||
|
@ -1568,7 +1573,8 @@ public class BoardActivity extends XWActivity
|
|||
|
||||
private void updateToolbar()
|
||||
{
|
||||
m_toolbar.update( Toolbar.BUTTON_FLIP, m_gsi.visTileCount > 1 );
|
||||
m_toolbar.update( Toolbar.BUTTON_FLIP, m_gsi.visTileCount >= 1 );
|
||||
m_toolbar.update( Toolbar.BUTTON_VALUES, m_gsi.visTileCount >= 1 );
|
||||
m_toolbar.update( Toolbar.BUTTON_JUGGLE, m_gsi.canShuffle );
|
||||
m_toolbar.update( Toolbar.BUTTON_UNDO, m_gsi.canRedo );
|
||||
m_toolbar.update( Toolbar.BUTTON_HINT_PREV, m_gsi.canHint );
|
||||
|
|
|
@ -529,8 +529,9 @@ public class BoardView extends View implements DrawCtx, BoardHandler,
|
|||
return true;
|
||||
}
|
||||
|
||||
public boolean drawCell( final Rect rect, String text, int tile, int owner,
|
||||
int bonus, int hintAtts, final int flags )
|
||||
public boolean drawCell( final Rect rect, String text, int tile, int value,
|
||||
int owner, int bonus, int hintAtts,
|
||||
final int flags )
|
||||
{
|
||||
boolean canDraw = figureFontDims();
|
||||
if ( canDraw ) {
|
||||
|
@ -819,7 +820,8 @@ public class BoardView extends View implements DrawCtx, BoardHandler,
|
|||
|
||||
if ( val >= 0 ) {
|
||||
if ( null == m_valRect ) {
|
||||
m_valRect = new Rect( 0, 0, rect.width() / 4, rect.height() / 4 );
|
||||
m_valRect = new Rect( 0, 0, rect.width() / 4,
|
||||
rect.height() / 4 );
|
||||
m_valRect.inset( 2, 2 );
|
||||
}
|
||||
m_valRect.offsetTo( rect.right - (rect.width() / 4),
|
||||
|
|
|
@ -47,6 +47,7 @@ public class Toolbar {
|
|||
public static final int BUTTON_ZOOM = 5;
|
||||
public static final int BUTTON_UNDO = 6;
|
||||
public static final int BUTTON_CHAT = 7;
|
||||
public static final int BUTTON_VALUES = 8;
|
||||
|
||||
private static TBButtonInfo[] s_buttonInfo = {
|
||||
// BUTTON_BROWSE_DICT
|
||||
|
@ -65,6 +66,8 @@ public class Toolbar {
|
|||
new TBButtonInfo( R.id.undo_button_horizontal ),
|
||||
// BUTTON_CHAT
|
||||
new TBButtonInfo( R.id.chat_button_horizontal ),
|
||||
// BUTTON_VALUES
|
||||
new TBButtonInfo( R.id.values_button_horizontal ),
|
||||
};
|
||||
|
||||
private XWActivity m_activity;
|
||||
|
|
|
@ -51,7 +51,7 @@ public interface DrawCtx {
|
|||
void drawTimer( Rect rect, int player, int secondsLeft );
|
||||
boolean boardBegin( Rect rect, int cellWidth, int cellHeight );
|
||||
|
||||
boolean drawCell( Rect rect, String text, int tile,
|
||||
boolean drawCell( Rect rect, String text, int tile, int value,
|
||||
int owner, int bonus, int hintAtts, int flags );
|
||||
void drawBoardArrow ( Rect rect, int bonus, boolean vert, int hintAtts,
|
||||
int flags );
|
||||
|
|
|
@ -397,6 +397,7 @@ drawCell( BoardCtxt* board, XP_U16 col, XP_U16 row, XP_Bool skipBlanks )
|
|||
HintAtts hintAtts;
|
||||
CellFlags flags = CELL_NONE;
|
||||
XP_Bool isOrigin;
|
||||
XP_U16 value = 0;
|
||||
|
||||
isEmpty = !model_getTile( model, modelCol, modelRow, showPending,
|
||||
selPlayer, &tile, &isBlank,
|
||||
|
@ -416,6 +417,9 @@ drawCell( BoardCtxt* board, XP_U16 col, XP_U16 row, XP_Bool skipBlanks )
|
|||
} else if ( isBlank && skipBlanks ) {
|
||||
break;
|
||||
} else {
|
||||
Tile valTile = isBlank? dict_getBlankTile( dict ) : tile;
|
||||
value = dict_getTileValue( dict, valTile );
|
||||
|
||||
if ( board->showColors ) {
|
||||
owner = (XP_S16)model_getCellOwner( model, modelCol,
|
||||
modelRow );
|
||||
|
@ -424,9 +428,7 @@ drawCell( BoardCtxt* board, XP_U16 col, XP_U16 row, XP_Bool skipBlanks )
|
|||
invert = showPending? pending : recent;
|
||||
|
||||
if ( board->showCellValues ) {
|
||||
Tile valTile = isBlank? dict_getBlankTile( dict ) : tile;
|
||||
XP_U16 val = dict_getTileValue( dict, valTile );
|
||||
XP_SNPRINTF( ch, VSIZE(ch), "%d", val );
|
||||
XP_SNPRINTF( ch, VSIZE(ch), "%d", value );
|
||||
textP = ch;
|
||||
} else {
|
||||
if ( dict_faceIsBitmap( dict, tile ) ) {
|
||||
|
@ -458,7 +460,8 @@ drawCell( BoardCtxt* board, XP_U16 col, XP_U16 row, XP_Bool skipBlanks )
|
|||
#endif
|
||||
|
||||
success = draw_drawCell( board->draw, &cellRect, textP, bptr,
|
||||
tile, owner, bonus, hintAtts, flags );
|
||||
tile, value, owner, bonus, hintAtts,
|
||||
flags );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -165,7 +165,7 @@ typedef struct DrawCtxVTable {
|
|||
null */
|
||||
const XP_UCHAR* text,
|
||||
const XP_Bitmaps* bitmaps,
|
||||
Tile tile,
|
||||
Tile tile, XP_U16 value,
|
||||
XP_S16 owner, /* -1 means don't use */
|
||||
XWBonusType bonus, HintAtts hintAtts,
|
||||
CellFlags flags );
|
||||
|
@ -229,6 +229,8 @@ struct DrawCtx {
|
|||
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6))
|
||||
# define CALL_DRAW_NAME8(name,dc,p1,p2,p3,p4,p5,p6,p7,p8) \
|
||||
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),(p8))
|
||||
# define CALL_DRAW_NAME9(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9) \
|
||||
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),(p8),(p9))
|
||||
# define CALL_DRAW_NAME10(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \
|
||||
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),\
|
||||
(p8),(p9),(p10))
|
||||
|
@ -246,8 +248,11 @@ struct DrawCtx {
|
|||
# define CALL_DRAW_NAME6(name,dc,p1,p2,p3,p4,p5,p6) \
|
||||
((dc)->vtable->m_draw_##name)(dc,(p1),(p2),(p3),(p4),(p5),(p6))
|
||||
# define CALL_DRAW_NAME8(name,dc,p1,p2,p3,p4,p5,p6,p7,p8) \
|
||||
((dc)->vtable->m_draw_##name)(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),\
|
||||
(p8))
|
||||
((dc)->vtable->m_draw_##name)(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
|
||||
(p8))
|
||||
# define CALL_DRAW_NAME9(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9) \
|
||||
((dc)->vtable->m_draw_##name)(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
|
||||
(p8),(p9))
|
||||
# define CALL_DRAW_NAME10(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \
|
||||
((dc)->vtable->m_draw_##name)(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),\
|
||||
(p8),(p9),(p10))
|
||||
|
@ -277,8 +282,8 @@ struct DrawCtx {
|
|||
CALL_DRAW_NAME4(score_pendingScore,(dc), (r), (s), (p), (f))
|
||||
#define draw_drawTimer( dc, r, plyr, sec ) \
|
||||
CALL_DRAW_NAME3(drawTimer,(dc),(r),(plyr),(sec))
|
||||
#define draw_drawCell( dc, rect, txt, bmap, t, o, bon, hi, f ) \
|
||||
CALL_DRAW_NAME8(drawCell,(dc),(rect),(txt),(bmap),(t),(o),(bon),(hi),\
|
||||
#define draw_drawCell( dc, rect, txt, bmap, t, v,o, bon, hi, f ) \
|
||||
CALL_DRAW_NAME9(drawCell,(dc),(rect),(txt),(bmap),(t),(v),(o),(bon),(hi), \
|
||||
(f))
|
||||
#define draw_invertCell( dc, rect ) CALL_DRAW_NAME1(invertCell,(dc),(rect))
|
||||
#define draw_drawTile( dc, rect, text, bmp, val, hil ) \
|
||||
|
|
|
@ -298,9 +298,9 @@ static XP_Bool
|
|||
curses_draw_drawCell( DrawCtx* p_dctx, const XP_Rect* rect,
|
||||
const XP_UCHAR* letter,
|
||||
const XP_Bitmaps* XP_UNUSED(bitmaps),
|
||||
Tile XP_UNUSED(tile), XP_S16 XP_UNUSED(owner),
|
||||
XWBonusType bonus, HintAtts XP_UNUSED(hintAtts),
|
||||
CellFlags flags )
|
||||
Tile XP_UNUSED(tile), XP_U16 XP_UNUSED(value),
|
||||
XP_S16 XP_UNUSED(owner), XWBonusType bonus,
|
||||
HintAtts XP_UNUSED(hintAtts), CellFlags flags )
|
||||
{
|
||||
CursesDrawCtx* dctx = (CursesDrawCtx*)p_dctx;
|
||||
XP_Bool highlight = (flags & (CELL_HIGHLIGHT|CELL_ISCURSOR)) != 0;
|
||||
|
|
|
@ -506,8 +506,8 @@ drawCrosshairs( GtkDrawCtx* dctx, const XP_Rect* rect, CellFlags flags )
|
|||
static XP_Bool
|
||||
gtk_draw_drawCell( DrawCtx* p_dctx, const XP_Rect* rect, const XP_UCHAR* letter,
|
||||
const XP_Bitmaps* bitmaps, Tile XP_UNUSED(tile),
|
||||
XP_S16 owner, XWBonusType bonus, HintAtts hintAtts,
|
||||
CellFlags flags )
|
||||
XP_U16 XP_UNUSED(value), XP_S16 owner, XWBonusType bonus,
|
||||
HintAtts hintAtts, CellFlags flags )
|
||||
{
|
||||
GtkDrawCtx* dctx = (GtkDrawCtx*)p_dctx;
|
||||
XP_Rect rectInset = *rect;
|
||||
|
|
Loading…
Add table
Reference in a new issue