copied in from personal archive

This commit is contained in:
ehouse 2003-11-16 19:17:54 +00:00
parent 8f1cfaec23
commit 14c9a5096a
16 changed files with 922 additions and 0 deletions

View file

@ -0,0 +1,9 @@
---------
----#----
----#----
----#----
-#######-
--#####--
---###---
----#----
---------

View file

@ -0,0 +1,8 @@
########
#-######
#--#####
#---####
#----###
#-----##
#------#
########

View file

@ -0,0 +1,11 @@
-######-
###--###
##-##-##
#-####-#
#-####-#
##-##-##
##-##-##
###--###
###--###
###--###
-######-

View file

@ -0,0 +1,9 @@
---------
----#----
----##---
----###--
-#######-
----###--
----##---
----#----
---------

View file

@ -0,0 +1,12 @@
-######-
########
#------#
#------#
###--###
###--###
###--###
###--###
###--###
###--###
########
-######-

View file

@ -0,0 +1,8 @@
--------
-##---##
-###-###
--#####-
---###--
--#####-
-###-###
-##---##

View file

@ -0,0 +1,20 @@
------------------
---#############--
-#################
-##-###-#######-##
-##-###-#######-##
-##-###-#######-##
-##-----#######-##
-##-###-###-###-##
-##-###-###-###-##
-##-###-####---###
-#################
-##-----###----###
-####-#####-###-##
-####-#####-###-##
-####-#####-###-##
-####-#####-###-##
-####-#####-###-##
-####-#####----###
-#################
---#############--

View file

@ -0,0 +1,10 @@
########
#--###-#
##-##-##
#---#-##
####-###
###-#-##
##-#-#-#
##-#---#
#-##-#-#
########

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,22 @@
-############---------
#------------#--------
#-#----#-----#--------
#-#----#-----#--------
#--#--#------#--------
#--#--#------#--------
#---##-------#--------
#--#--#------#--------
#--#--#--############-
#-#----##------------#
#-#----##-#-----#----#
#-------#-#-----#----#
#-------#-#-----#----#
-########-#--#--#----#
--------#-#--#--#----#
--------#-#--#--#----#
--------#--#-#-#--#--#
--------#---#-#--##--#
--------#-------#-#--#
--------#-------####-#
--------#---------#--#
---------############-

View file

@ -0,0 +1,9 @@
---#########---
---#-------#---
---#--###--#---
---#-#-----#---
---#-#-----#---
---#-#-----#---
---#--###--#---
---#-------#---
---#########---

View file

@ -0,0 +1,90 @@
/* -*-mode: c; fill-column: 78; -*- */
/*****************************************************************************
* Copyright 1999 - 2001 by Eric House. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* These resources are shared among all localized verions of XW4; no
* localization required.
****************************************************************************/
#ifdef COLOR_SUPPORT
/* colors */
HEX "Clrs" ID 1000
0x00 0x00 0x00 /* black */
0xFF 0xFF 0xFF /* white */
0x00 0x00 0x00 /* player 1 */
0xFF 0x00 0x00
0x00 0x00 0xFF
0x00 0xFF 0x00
0xAF 0xAF 0x00 /* bonus 1 */
0x00 0xAF 0xAF
0xAF 0x00 0xAF
0xAF 0xAF 0xAF
0xFF 0xFF 0xFF /* empty cells */
0xFF 0xFF 0x99 /* tile background */
#endif
ICONFAMILY "./bmps/xwbandwicon.ppm" "" "" "./bmps/xwcoloricon.ppm"
SMALLICON "bmps/xwords4small.pbitm"
BITMAP ID DOWN_ARROW_RESID "bmps/downarrow.pbitm" AUTOCOMPRESS
BITMAP ID RIGHT_ARROW_RESID "bmps/rightarrow.pbitm" AUTOCOMPRESS
BITMAP ID FLIP_BUTTON_BMP_RES_ID "bmps/flipbutton.pbitm" AUTOCOMPRESS
BITMAP ID VALUE_BUTTON_BMP_RES_ID "bmps/valuebutton.pbitm" AUTOCOMPRESS
BITMAP ID HINT_BUTTON_BMP_RES_ID "bmps/lightbulb.pbitm" AUTOCOMPRESS
BITMAP ID TRAY_BUTTONS_BMP_RES_ID "bmps/traybuttons.pbitm" AUTOCOMPRESS
BITMAP ID SHOWTRAY_BUTTON_BMP_RES_ID "bmps/showtray.pbitm" AUTOCOMPRESS
BITMAP ID STAR_BMP_RES_ID "bmps/startmark.pbitm" AUTOCOMPRESS
APPLICATIONICONNAME ID 1000 ICONTEXT
HEX "Xbrd" ID 1000
#if 0 /* the "scrabble" pattern */
0x40 0x01 0x00 0x04
0x02 0x00 0x03 0x00
0x00 0x20 0x00 0x10
0x10 0x02 0x00 0x01
0x00 0x00 0x20 0x00
0x03 0x00 0x03 0x00
0x00 0x10 0x00 0x10
0x40 0x01 0x00 0x02
#else
0x04 0x00 0x10 0x04
0x40 0x00 0x03 0x00
0x00 0x00 0x20 0x10
0x00 0x03 0x00 0x01
0x10 0x20 0x00 0x30
0x03 0x00 0x01 0x00
0x00 0x10 0x30 0x00
0x40 0x01 0x00 0x02
#endif
/* for 13x13 board */
HEX "Xbrd" ID 1001 /* This is 7x7, so one line is two rows */
0x20 0x03 0x00 0x30 0x40 0x00 0x10
0x00 0x10 0x00 0x03 0x00 0x30 0x00
0x00 0x00 0x10 0x00 0x10 0x00 0x30
0x30 0x00 0x00 0x20
/* for 11x11 board */
HEX "Xbrd" ID 1002 /* This is 6x6 */
0x04 0x00 0x03
0x40 0x03 0x00
0x00 0x10 0x01
0x03 0x01 0x00
0x00 0x00 0x30
0x30 0x10 0x02

View file

@ -0,0 +1,150 @@
/* -*- mode: c; -*- */
/*
* Copyright 1997 - 2002 by Eric House (fixin@peak.org) and others. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* This table is where English user-visible strings come from (all
* strings meant to wind up in a str# resource, actually. Each entry
* is a pair of strings, first the constant name and then the string
* itself. The build system creats a str# resource with the latter
* and generates a .h file of #defines using the former. */
{ "STR_COMMIT_CONFIRM", "Commit the current move?\n" },
{ "STR_NOT_YOUR_TURN", "You can't do that; it's not your turn!" },
{ "STR_NO_PEEK_ROBOT_TILES", "No peeking at the robot's tiles!" },
#ifndef XWFEATURE_STANDALONE_ONLY
{ "STR_NO_PEEK_REMOTE_TILES", "No peeking at remote player's tiles!" },
{ "STR_SERVER_DICT_WINS",
"Conflict between Host and Guest dictionaries; Host wins." },
{ "STR_REG_UNEXPECTED_USER", "Attempt to register unexpected user refused" },
{ "STR_RESEND_IR", "Unable to send message via IR; resend?" },
#endif
{ "STR_TOO_FEW_TILES", "Too few tiles left to trade." },
{ "STR_VALUES_TITLE", "Counts and Values" },
{ "STR_VALUES_HEADER", "Counts[Remain] and Values\n" },
{ "STR_DOUBLE_LETTER", "Double letter" },
{ "STR_DOUBLE_WORD", "Double word" },
{ "STR_TRIPLE_LETTER", "Triple letter" },
{ "STR_TRIPLE_WORD", "Triple word" },
{ "STR_REMTILES", "rem:%d" },
/* { "STR_NO_TILES_IN_POOL", "Not enough tiles remaining in pool." }, */
{ "STR_CANT_TRADE_MIDTURN", "Remove played tiles before trading."},
{ "STR_ASK_REPLACE_GAME", "Do you want to overwrite the current game?" },
{ "STR_NO", "No" },
/* { "STR_CONFIRM_ERASE_GAME", "Are you sure you want to erase\n" \ */
/* "the current game?" }, */
{ "STR_ABOUT_TITLE", "About Crosswords" },
{ "STR_DEFAULT_NAME", "Player %d" },
{ "STR_ABOUT_CONTENT",
"Crosswords " XW_PALM_VERSION_STRING ".\n" \
"Copyright 1998-2003 by Eric House. "\
"All rights reserved.\n\n"\
"See the manual at: www.peak.org/~fixin/xwords\n\n" \
"This program is postcardware. If you use it " \
"please mail a postcard to:\n" \
"The Houses\n" \
"124 NW 7th St. No. 310\n" \
"Corvallis, OR 97330 USA\n\n"
"Developed on Debian GNU/Linux using the prc-tools "\
"suite." \
},
{ "STR_CONFIRM_END_GAME", "Are you sure you want to end the game now?"},
/* { "STR_TOO_MANY_TILES_SEL", "Too many tiles selected." }, */
/* { "STR_CONFIRM_DISCARD", "Are you sure you want to discard\n" \ */
/* "the selected tile[s]?" }, */
{ "STR_CONFIRM_TRADE", "Are you sure you want to use your " \
"turn trading tiles?" },
{ "STR_TRADING_REMINDER", "Click D when done." },
#ifndef NO_REG_REQUIRED
{ "STR_NOT_UNREG_VERS", "Feature not available in unregistered version." },
#endif
/* { "STRS_LANGUAGE_NAME", "Dictionary: %s\n" }, */
{ "STR_NONLOCAL_NAME", "%s (remote)" },
/* { "STR_FINALSCORE_TITLE", "\n\nFinal Scores\n" }, */
/* { "STR_NO_HISTORY", "No history as yet." }, */
{ "STR_HISTORY_TITLE", "Game history" },
/* { "STRS_NO_SCORE_MID_PICK", "I can't score the game until %s finishes " \ */
/* "picking tiles." }, */
{ "STRD_REMAINING_TILES_ADD", "+ %d [all remaining tiles]" },
{ "STRD_UNUSED_TILES_SUB", "- %d [unused tiles]" },
/* { "STR_MOVESCORE_TITLE", "Move score" }, */
/* { "STR_ZERO_SCORE", "Score: 0 (No tiles played.)" }, */
{ "STR_BONUS_ALL", "Bonus for using all tiles: 50\n" },
{ "STRD_TURN_SCORE", "Score for turn: %d\n" },
/* { "STRSD_RUNNING_TOTAL", "\nRunning total for %s: %d" }, */
{ "STR_ALL_IN_LINE_ERR", "All tiles played must be in a line." },
{ "STR_NO_EMPTIES_ERR", "Empty squares cannot separate pieces played." },
{ "STR_FIRST_MOVE_ERR", "Must play two or more pieces on " \
"the first move." },
{ "STR_MUST_CONTACT_ERR", "New tiles must contact others already " \
"in place (or the middle square on the " \
"first move)." },
/* { "STR_EDIT", "Edit" }, */
/* { "STR_USE", "Use" }, */
//{ "STRC_BAD_BLANK_VAL", "\"%c\" is not a legal tile." },
{ "STR_PTS", "Pts:" },
/* { "STR_NA", "N/A" }, */
{ "STR_CONFIRM_DEL_GAME", "Really delete the selected game?" },
/* { "STR_REPLACE_STR", "Replace" }, */
/* { "STR_NEW_OR_QUIT", "Dictionary for current game not\n" \ */
/* "found. Quit unless you want to\n" \ */
/* "replace the game." }, */
{ "STRD_TIME_PENALTY_SUB", " - %d [time]" },
{ "STR_NO_DICT_INSTALLED", "Crosswords 4 requires at least one dictionary." },
/* { "STR_PASS", "Unable to find a move."}, */
/* { "STR_TRADED", "Robot traded tiles this turn."}, */
{ "STR_ILLEGAL_WORD", "Word[s] %s not found in dictionary." },
{ "STR_FINAL_SCORES_TITLE", "Final scores"},
{ "STRD_CUMULATIVE_SCORE", "Cumulative score: %d\n" },
{ "STRS_TRAY_AT_START", "Tray at start: %s\n" },
{ "STRS_MOVE_ACROSS", "move (from %s across)\n" },
{ "STRS_MOVE_DOWN", "move (from %s down)\n" },
{ "STRS_NEW_TILES", "New tiles: %s\n" },
{ "STRSS_TRADED_FOR", "Traded %s for %s." },
{ "STR_PASS", "pass\n" },
{ "STR_PHONY_REJECTED", "Illegal word in move; turn lost!\n" },
{ "STR_ROBOT_MOVED", "The robot made this move:\n" },
{ "STR_REMOTE_MOVED", "Remote player made this move:\n" },
{ "STRD_ROBOT_TRADED", "%d tiles traded this turn." },
{ "STR_ROBOT_TITLE", "Robot score" },
{ "STR_PICK_BLANK", "Select the letter for your blank." },
#ifdef FEATURE_TRAY_EDIT
{ "STRS_PICK_TILE", "Choose a new tile for %s." },
#endif

View file

@ -0,0 +1,78 @@
/* -*-mode: C; fill-column: 77; c-basic-offset: 4; -*- */
/****************************************************************************
* *
* Copyright 1998-2000 by Eric House (fixin@peak.org). All rights reserved. *
* *
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
****************************************************************************/
/*
* Turn a table of string pairs into a resource file of back-to-back strings
* and an includable .h file of constants giving indices into the res file.
*
* Expects the name of the former in argv[1] and of the latter in argv[2].
*/
#include <stdio.h>
#include <string.h>
#include "xwords4defines.h"
#define FIRST_STR_INDEX 2000
typedef struct StringPair {
char* constName;
char* theString;
} StringPair;
static StringPair table[] = {
// I'm expecting this as a -D option
#include LANGSTRFILE
{ (char*)0L, (char*)0L }
};
int
main( int argc, char** argv )
{
FILE* stringResFile = fopen( argv[1], "wb" );
FILE* stringConstFile = fopen( argv[2], "w" );
StringPair* sp = table;
short count;
fprintf( stringConstFile,
"/***********************************************************\n"
"* This file is machine generated.\n"
"* Don't edit: your changes will be lost.\n"
"************************************************************/\n");
fprintf( stringConstFile, "\n#define FIRST_STR_INDEX %d\n\n",
FIRST_STR_INDEX );
count = 0;
for ( ; sp->constName != NULL && sp->theString != NULL; ++sp ) {
short strBytes;
strBytes = strlen(sp->theString)+1;
fwrite( sp->theString, strBytes, 1, stringResFile );
fprintf( stringConstFile, "#define %s %d\n", sp->constName, count );
count += strBytes;
}
fprintf( stringConstFile, "#define %s %d\n", "STR_LAST_STRING", count );
fclose( stringResFile );
fclose( stringConstFile );
return 0;
} // main

View file

@ -0,0 +1,486 @@
/* -*-mode: c; fill-column: 78; -*- */
/*****************************************************************************
* Copyright 1999 - 2002 by Eric House (fixin@peak.org) and others. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
****************************************************************************/
#define DEFINES_ONLY 1
#include "xwords4defines.h"
#include "common.rcp.pre" /* these don't need localization */
#define LEFTMARGIN 5
MENU XW_MAIN_MENU_ID
BEGIN
PULLDOWN "File"
BEGIN
MENUITEM "New game..." XW_NEWGAME_PULLDOWN_ID "N"
MENUITEM "Saved games..." XW_SAVEDGAMES_PULLDOWN_ID "S"
MENUITEM "Preferences..." XW_PREFS_PULLDOWN_ID "P"
MENUITEM SEPARATOR
MENUITEM "Beam dictionary" XW_BEAMDICT_PULLDOWN_ID
MENUITEM "Beam boards and colors" XW_BEAMBOARD_PULLDOWN_ID
MENUITEM SEPARATOR
MENUITEM "About Crosswords..." XW_ABOUT_PULLDOWN_ID "A"
END
PULLDOWN "Game"
BEGIN
MENUITEM "Tile values" XW_TILEVALUES_PULLDOWN_ID "V"
MENUITEM "Current game info..." XW_PASSWORDS_PULLDOWN_ID "G"
MENUITEM "History" XW_HISTORY_PULLDOWN_ID "Y"
MENUITEM "Final scores" XW_FINISH_PULLDOWN_ID "F"
#ifndef XWFEATURE_STANDALONE_ONLY
MENUITEM SEPARATOR
MENUITEM "Resend messages" XW_RESENDIR_PULLDOWN_ID
#endif
END
PULLDOWN "Move"
BEGIN
MENUITEM "Hint" XW_HINT_PULLDOWN_ID "I"
MENUITEM "Next hint" XW_NEXTHINT_PULLDOWN_ID "M"
MENUITEM SEPARATOR
MENUITEM "Undo cur. move" XW_UNDOCUR_PULLDOWN_ID "U"
MENUITEM "Undo last move" XW_UNDOLAST_PULLDOWN_ID "Z"
MENUITEM SEPARATOR
MENUITEM "Done" XW_DONE_PULLDOWN_ID "D"
MENUITEM "Juggle" XW_JUGGLE_PULLDOWN_ID "J"
MENUITEM "Trade tiles" XW_TRADEIN_PULLDOWN_ID "T"
MENUITEM "[un]Hide tray" XW_HIDETRAY_PULLDOWN_ID "H"
END
#ifdef FOR_GREMLINS
PULLDOWN "Grem"
BEGIN
MENUITEM "divider right" XW_GREMLIN_DIVIDER_RIGHT
MENUITEM "divider left" XW_GREMLIN_DIVIDER_LEFT
END
#endif
#ifndef FOR_GREMLINS
#ifdef DEBUG
PULLDOWN "DBG"
BEGIN
MENUITEM "Show debugstrs" XW_DEBUGSHOW_PULLDOWN_ID
MENUITEM "Hide debugstrs" XW_DEBUGHIDE_PULLDOWN_ID
MENUITEM "Strs to memo" XW_DEBUGMEMO_PULLDOWN_ID
MENUITEM "Strs to screen" XW_DEBUGSCREEN_PULLDOWN_ID
/* MENUITEM "Reset game" XW_RESET_PULLDOWN_ID */
MENUITEM "Network stats..." XW_NETSTATS_PULLDOWN_ID
#ifdef MEM_DEBUG
MENUITEM "Mem stats..." XW_MEMSTATS_PULLDOWN_ID
#endif
END
#endif
#endif /* FOR_GREMLINS */
// <EEH> NO NEED TO TRANSLATE GREMLINS or DEBUG stuff
#ifdef FOR_GREMLINS
/* PULLDOWN "Gremlins" */
/* BEGIN */
/* MENUITEM "Divider left" GREMLIN_DIVIDER_LEFT */
/* MENUITEM "Divider right" GREMLIN_DIVIDER_RIGHT */
/* END */
#endif
END
MENU XW_ASK_MENU_ID
BEGIN
PULLDOWN "Edit"
BEGIN
MENUITEM "Copy" ASK_COPY_PULLDOWN_ID
MENUITEM "Select all" ASK_SELECTALL_PULLDOWN_ID
END
END
FORM ID XW_MAIN_FORM AT (0 0 160 160)
USABLE
NOFRAME
MENUID XW_MAIN_MENU_ID
BEGIN
GADGET REFCON_GADGET_ID AT ( 0 0 1 1 )
BUTTON "" XW_MAIN_FLIP_BUTTON_ID
AT (PALM_FLIP_LEFT PALM_BOARD_TOP FLIP_BUTTON_WIDTH
FLIP_BUTTON_HEIGHT) NOFRAME
BUTTON "" XW_MAIN_VALUE_BUTTON_ID
AT (PALM_FLIP_LEFT PREVBOTTOM+2
FLIP_BUTTON_WIDTH FLIP_BUTTON_HEIGHT+2) NOFRAME
BUTTON "" XW_MAIN_HINT_BUTTON_ID
AT (PALM_FLIP_LEFT PREVBOTTOM+2 FLIP_BUTTON_WIDTH
FLIP_BUTTON_HEIGHT+3) NOFRAME
SCROLLBAR ID XW_MAIN_SCROLLBAR_ID
AT ( PREVLEFT PREVBOTTOM+5 RECOMMENDED_SBAR_WIDTH
160-TRAY_HEIGHT-PREVBOTTOM-IR_STATUS_HEIGHT-5)
USABLE VALUE SBAR_START_VALUE MIN SBAR_MIN MAX SBAR_MIN
PAGESIZE SBAR_PAGESIZE
BUTTON "" XW_MAIN_SHOWTRAY_BUTTON_ID
AT (PALM_FLIP_LEFT 160-FLIP_BUTTON_HEIGHT-5
FLIP_BUTTON_WIDTH FLIP_BUTTON_WIDTH+4) NOFRAME
#ifndef EIGHT_TILES
BUTTON "" XW_MAIN_HIDE_BUTTON_ID
AT(PALM_TRAY_BUTTON_LEFT 160-TRAY_HEIGHT TRAY_BUTTON_WIDTH
TRAY_BUTTON_HEIGHT) NOFRAME
BUTTON "" XW_MAIN_JUGGLE_BUTTON_ID
AT(PREVRIGHT PREVTOP TRAY_BUTTON_WIDTH TRAY_BUTTON_HEIGHT) NOFRAME
BUTTON "" XW_MAIN_TRADE_BUTTON_ID
AT(PALM_TRAY_BUTTON_LEFT PREVBOTTOM TRAY_BUTTON_WIDTH
TRAY_BUTTON_HEIGHT) NOFRAME
BUTTON "" XW_MAIN_DONE_BUTTON_ID
AT(PREVRIGHT PREVTOP TRAY_BUTTON_WIDTH TRAY_BUTTON_HEIGHT) NOFRAME
#endif
#ifdef FOR_GREMLINS
GADGET GREMLIN_BOARD_GADGET_IDAUTOID AT ( 0 5 152 135 )
GADGET GREMLIN_TRAY_GADGET_IDAUTOID AT ( 0 140 145 20 )
#endif
END
#ifdef XWFEATURE_STANDALONE_ONLY
# define NPLAYERS_TOP 15
# define FORM_TOP 34
# define FORM_HEIGHT 124
#else
# define SERVER_TOP 15
# define NPLAYERS_TOP (SERVER_TOP+18)
# define FORM_TOP 16
# define FORM_HEIGHT 142
#endif
#define LABEL_TOP (NPLAYERS_TOP+18)
#define LEFTCOL 4
#define REMOTE_COL LEFTCOL
#define NAME_COL 50
#define ROBOT_COL 98
#define PASSWD_COL RIGHT@156
#ifndef XWFEATURE_STANDALONE_ONLY
#define PLAYER_REMOTECHECK( num, offset ) \
CHECKBOX "" ID XW_REMOTE_##num##_CHECKBOX_ID \
AT (LEFTCOL PREVBOTTOM+offset AUTO AUTO) USABLE
#else
#define PLAYER_REMOTECHECK( num, offset )
#endif
#ifndef XWFEATURE_STANDALONE_ONLY
#define PLAYER_NAMEFIELD( num, offset ) \
FIELD XW_PLAYERNAME_##num##_FIELD_ID \
AT (PREVRIGHT PREVTOP 100 AUTO ) \
UNDERLINED EDITABLE SINGLELINE MAXCHARS MAX_PLAYERNAME_LENGTH
#else
#define PLAYER_NAMEFIELD( num, offset ) \
FIELD XW_PLAYERNAME_##num##_FIELD_ID \
AT (LEFTCOL+10 PREVBOTTOM+offset 100 AUTO ) \
UNDERLINED EDITABLE SINGLELINE MAXCHARS MAX_PLAYERNAME_LENGTH
#endif
#define PLAYER_ROBCHECK( num, offset ) \
CHECKBOX "" ID XW_ROBOT_##num##_CHECKBOX_ID \
AT (PREVRIGHT PREVTOP AUTO AUTO) USABLE RIGHTANCHOR
#define PLAYER_PASSFIELD( num, offset ) \
SELECTORTRIGGER "" XW_PLAYERPASSWD_##num##_TRIGGER_ID \
AT (PREVRIGHT PREVTOP 12 11)
/* FIELD XW_PLAYERPASSWD_##num##_FIELD_ID PREVRIGHT PREVTOP 20 \ */
/* AUTO UNDERLINED EDITABLE SINGLELINE MAXCHARS 4 */
#define PLAYER_ROW( num, offset ) \
PLAYER_REMOTECHECK( num, offset ) \
PLAYER_NAMEFIELD( num, offset ) \
PLAYER_ROBCHECK( num, offset ) \
PLAYER_PASSFIELD( num, offset )
//#define SERVER_GROUP_ID 2000
#define SERVER_HEIGHT 12
#define PLAYER_SEL_LEFT 64
FORM ID XW_NEWGAMES_FORM AT (2 FORM_TOP 156 FORM_HEIGHT)
USABLE MODAL SAVEBEHIND DEFAULTBTNID XW_OK_BUTTON_ID
BEGIN
TITLE "Game options"
#ifndef XWFEATURE_STANDALONE_ONLY
LABEL "Connect:" AUTOID AT (LEFTCOL SERVER_TOP)
GADGET ID XW_SOLO_GADGET_ID AT (PREVRIGHT+2 SERVER_TOP 53 SERVER_HEIGHT)
USABLE
GADGET ID XW_SERVER_GADGET_ID
AT (PREVRIGHT+1 SERVER_TOP 22 SERVER_HEIGHT) USABLE
GADGET ID XW_CLIENT_GADGET_ID
AT (PREVRIGHT+1 SERVER_TOP 28 SERVER_HEIGHT) USABLE
LIST "Stand-alone" "Host" "Guest" XW_SERVERTYPES_LIST_ID
AT (0 0 1 1) VISIBLEITEMS 3 NONUSABLE
#endif
/* Pick number of players here */
#ifndef XWFEATURE_STANDALONE_ONLY
LABEL "Local players: " XW_LOCALP_LABEL_ID AT (LEFTCOL NPLAYERS_TOP)
LABEL "Total players: " XW_TOTALP_LABEL_ID AT (LEFTCOL NPLAYERS_TOP)
#else
LABEL "Player count: " AUTOID AT (LEFTCOL NPLAYERS_TOP)
#endif
SELECTORTRIGGER "" XW_NPLAYERS_SELECTOR_ID \
AT (PLAYER_SEL_LEFT NPLAYERS_TOP AUTO AUTO) USABLE LEFTANCHOR
LIST "1" "2" "3" "4" XW_NPLAYERS_LIST_ID AT (PREVLEFT PREVTOP 10 1) \
VISIBLEITEMS 4 NONUSABLE
BUTTON "Other prefs..." XW_PREFS_BUTTON_ID RIGHT@154 NPLAYERS_TOP AUTO AUTO
#ifndef XWFEATURE_STANDALONE_ONLY
LABEL "Remote" XW_LOCAL_LABEL_ID REMOTE_COL LABEL_TOP FONT 1
#endif
LABEL "Name" AUTOID NAME_COL LABEL_TOP FONT 1
LABEL "Robot" AUTOID ROBOT_COL LABEL_TOP FONT 1
LABEL "Pwd" AUTOID PASSWD_COL LABEL_TOP FONT 1
PLAYER_ROW( 1, 2 )
PLAYER_ROW( 2, 2 )
PLAYER_ROW( 3, 2 )
PLAYER_ROW( 4, 2 )
GRAFFITISTATEINDICATOR 2 PREVBOTTOM+10
SELECTORTRIGGER "Dictionary..." XW_DICT_SELECTOR_ID \
AT (PREVRIGHT+12 PREVTOP AUTO AUTO) USABLE LEFTANCHOR
/* BUTTON "Dict..." XW_DICT_BUTTON_ID */
BUTTON "Ok" XW_OK_BUTTON_ID RIGHT@154 PREVTOP AUTO AUTO
BUTTON "Cancel" XW_CANCEL_BUTTON_ID RIGHT@PREVLEFT-5 PREVTOP 30 AUTO
END /* FORM XW_PLAYERINFO_FORM */
#define LEFTCOL 4
#define CONNS_FIELD_LEFT 80
#define LOCALIP_TOP 30
FORM ID XW_CONNS_FORM AT (2 54 156 105)
USABLE MODAL SAVEBEHIND DEFAULTBTNID XW_CONNS_CANCEL_BUTTON_ID
BEGIN
TITLE "Connections"
LABEL "Connect via:" AUTOID LEFTCOL 15 FONT 1
POPUPTRIGGER "" ID XW_CONNS_TYPE_TRIGGER_ID
AT (PREVRIGHT+5 PREVTOP 72 12) LEFTANCHOR
LIST "IR/Bluetooth" "Internet/IP" ID XW_CONNS_TYPE_LIST_ID
PREVLEFT PREVTOP 72 12 VISIBLEITEMS 2 NONUSABLE
POPUPLIST XW_CONNS_TYPE_TRIGGER_ID XW_CONNS_TYPE_LIST_ID
/* FYI: not editable!!! */
LABEL "Local IP address:" XW_CONNS_HOSTIP_LABEL_ID
AT ( LEFTCOL+10 LOCALIP_TOP )
FIELD XW_CONNS_HOSTIP_FIELD_ID PREVRIGHT+5 PREVTOP 70 AUTO \
SINGLELINE MAXCHARS 16
/* Everybody has a listen port */
LABEL "Receive port:" XW_CONNS_MYPORT_LABEL_ID
AT (LEFTCOL PREVBOTTOM + 2)
FIELD XW_CONNS_MYPORT_FIELD_ID CONNS_FIELD_LEFT PREVTOP 30 AUTO \
EDITABLE SINGLELINE UNDERLINED NUMERIC MAXCHARS 5
/* For Guest case */
LABEL "Send IP address:" XW_CONNS_TARGET_LABEL_ID
AT (LEFTCOL PREVBOTTOM+2)
FIELD XW_CONNS_TARGET_FIELD_ID CONNS_FIELD_LEFT PREVTOP 70 AUTO \
EDITABLE SINGLELINE UNDERLINED MAXCHARS 15
LABEL "Send port:" XW_CONNS_TPORT_LABEL_ID AT (LEFTCOL PREVBOTTOM+2)
FIELD XW_CONNS_TPORT_FIELD_ID CONNS_FIELD_LEFT PREVTOP 30 AUTO \
EDITABLE SINGLELINE UNDERLINED NUMERIC MAXCHARS 5
BUTTON "Cancel" XW_CONNS_CANCEL_BUTTON_ID 42 PREVBOTTOM+5 AUTO AUTO
BUTTON "Ok" XW_CONNS_OK_BUTTON_ID PREVRIGHT+10 PREVTOP AUTO AUTO
END /* XW_CONNS_FORM */
#define PREFS_MODE_TOP 15
#define PREFS_TOP 30
#define TIMER_TOP 72
#define BUTTON_TOP 98
FORM ID XW_PREFS_FORM AT (2 44 156 115)
USABLE MODAL SAVEBEHIND DEFAULTBTNID XW_PREFS_CANCEL_BUTTON_ID
BEGIN
TITLE "Preferences"
GADGET ID XW_PREFS_APPWIDE_CHECKBX_ID
AT (LEFTCOL+8 PREFS_MODE_TOP 75 SERVER_HEIGHT) USABLE
GADGET ID XW_PREFS_ONEGAME_CHECKBX_ID
AT (PREVRIGHT+1 PREVTOP 50 SERVER_HEIGHT) USABLE
LIST "Application-wide" "This game" XW_PREFS_TYPES_LIST_ID
AT (0 0 1 1) VISIBLEITEMS 2 NONUSABLE
/* global prefs */
CHECKBOX "Color played tiles" ID XW_PREFS_PLAYERCOLORS_CHECKBOX_ID \
AT (LEFTCOL PREFS_TOP AUTO AUTO) NONUSABLE
CHECKBOX "Show progress bar" ID XW_PREFS_PROGRESSBAR_CHECKBOX_ID \
AT (LEFTCOL PREVBOTTOM AUTO AUTO) NONUSABLE
CHECKBOX "Larger board" ID XW_PREFS_SHOWGRID_CHECKBOX_ID \
AT (LEFTCOL PREVBOTTOM AUTO AUTO) NONUSABLE
CHECKBOX "Enable arrow cursor" ID XW_PREFS_SHOWARROW_CHECKBOX_ID \
AT (LEFTCOL PREVBOTTOM AUTO AUTO) NONUSABLE
CHECKBOX "Show robot scores" ID XW_PREFS_ROBOTSCORE_CHECKBOX_ID \
AT (LEFTCOL PREVBOTTOM AUTO AUTO) NONUSABLE
/* single-game prefs */
CHECKBOX "Smart robot" ID XW_PREFS_ROBOTSMART_CHECKBOX_ID \
AT (LEFTCOL PREFS_TOP AUTO AUTO) NONUSABLE
CHECKBOX "Disallow hints" ID XW_PREFS_NOHINTS_CHECKBOX_ID \
AT (PREVRIGHT+3 PREVTOP AUTO AUTO) NONUSABLE
LABEL "Phonies:" XW_PREFS_PHONIES_LABEL_ID AT (LEFTCOL PREVBOTTOM+2)
POPUPTRIGGER "" ID XW_PREFS_PHONIES_TRIGGER_ID
AT (PREVRIGHT+5 PREVTOP 72 12) LEFTANCHOR
LABEL "Board size: " XW_PREFS_BDSIZE_LABEL_ID
AT (LEFTCOL PREVBOTTOM+2)
SELECTORTRIGGER "" XW_PREFS_BDSIZE_SELECTOR_ID \
AT (PREVRIGHT PREVTOP AUTO AUTO) USABLE LEFTANCHOR
LIST "Ignore" "Warn" "Disallow" ID XW_PREFS_PHONIES_LIST_ID
AT (PREVLEFT PREVTOP 72 12) NONUSABLE VISIBLEITEMS 3
POPUPLIST XW_PREFS_PHONIES_TRIGGER_ID XW_PREFS_PHONIES_LIST_ID
LIST "15x15" "13x13" "11x11" \
XW_PREFS_BDSIZE_LIST_ID AT (PREVLEFT PREVTOP 30 1) \
NONUSABLE VISIBLEITEMS NUM_BOARD_SIZES
CHECKBOX "Enable timer (minutes:)" ID XW_PREFS_TIMERON_CHECKBOX_ID \
AT (LEFTCOL TIMER_TOP AUTO AUTO) NONUSABLE
FIELD XW_PREFS_TIMER_FIELD_ID PREVRIGHT+5 PREVTOP 15 AUTO UNDERLINED \
EDITABLE SINGLELINE NUMERIC MAXCHARS 3
/* buttons at the bottom */
BUTTON "Cancel" XW_PREFS_CANCEL_BUTTON_ID 42 BUTTON_TOP AUTO AUTO
BUTTON "Ok" XW_PREFS_OK_BUTTON_ID PREVRIGHT+10 PREVTOP AUTO AUTO
END
#define LEFT_EDGE 10
FORM ID XW_DICTINFO_FORM AT (2 111 156 47)
USABLE MODAL DEFAULTBTNID XW_DICTINFO_CANCEL_BUTTON_ID
BEGIN
TITLE "Dictionaries"
LABEL "Dict:" AUTOID AT (LEFT_EDGE 15)
POPUPTRIGGER "" ID XW_DICTINFO_TRIGGER_ID
AT (PREVRIGHT+5 PREVTOP 72 12) LEFTANCHOR
LIST "" ID XW_DICTINFO_LIST_ID AT (PREVLEFT PREVTOP 72 1)
NONUSABLE VISIBLEITEMS 4
POPUPLIST XW_DICTINFO_TRIGGER_ID XW_DICTINFO_LIST_ID
BUTTON "Ok" XW_DICTINFO_DONE_BUTTON_ID 25 31 AUTO AUTO
BUTTON "Beam" XW_DICTINFO_BEAM_BUTTON_ID 22 PREVTOP AUTO AUTO
BUTTON "Cancel" XW_DICTINFO_CANCEL_BUTTON_ID PREVRIGHT+20 PREVTOP
AUTO AUTO
END
FORM ID XW_ASK_FORM_ID AT (2 70 156 88)
USABLE MODAL SAVEBEHIND DEFAULTBTNID XW_ASK_CANCEL_BUTTON_ID
MENUID XW_ASK_MENU_ID
BEGIN
TITLE "Query"
FIELD XW_ASK_TXT_FIELD_ID LEFT_EDGE-5 16 135 52 \
NONEDITABLE MULTIPLELINES
SCROLLBAR ID XW_ASK_SCROLLBAR_ID
AT ( PREVRIGHT+2 PREVTOP RECOMMENDED_SBAR_WIDTH
PREVBOTTOM - PREVTOP) USABLE
BUTTON "Ok" XW_ASK_OK_BUTTON_ID RIGHT@(156/2)-10 PREVBOTTOM+5 AUTO AUTO
BUTTON "Cancel" XW_ASK_CANCEL_BUTTON_ID 156/2+10 PREVTOP AUTO AUTO
END
FORM ID XW_PASSWORD_DIALOG_ID AT ( 2 88 156 70 )
MODAL SAVEBEHIND DEFAULTBTNID XW_PASSWORD_CANCEL_BUTTON
BEGIN
TITLE "Password"
LABEL "Enter password for:" XW_PASSWORD_NAME_LABEL 10 18 FONT 1 NONUSABLE
LABEL "Enter new password for:" XW_PASSWORD_NEWNAME_LABEL 10 18 FONT 1
NONUSABLE
FIELD XW_PASSWORD_NAME_FIELD AT (PREVLEFT PREVBOTTOM+3 90 12) NONEDITABLE
SINGLELINE MAXCHARS MAX_PLAYERNAME_LENGTH
FIELD XW_PASSWORD_PASS_FIELD \
AT (PREVRIGHT+10 PREVTOP MAX_PASSWORD_LENGTH*6 12) \
EDITABLE SINGLELINE UNDERLINED MAXCHARS MAX_PASSWORD_LENGTH
GRAFFITISTATEINDICATOR 2 PREVBOTTOM+8
BUTTON "Ok" XW_PASSWORD_OK_BUTTON 45 PREVTOP AUTO AUTO
BUTTON "Cancel" XW_PASSWORD_CANCEL_BUTTON PREVRIGHT+10 PREVTOP AUTO AUTO
END
#define BLANK_PICK_TOP 15
FORM ID XW_BLANK_DIALOG_ID AT ( 2 74 156 83 ) USABLE
MODAL SAVEBEHIND
#ifdef FEATURE_TRAY_EDIT
DEFAULTBTNID XW_BLANK_PICK_BUTTON_ID
#endif
BEGIN
TITLE "Tile picker"
FIELD XW_BLANK_LABEL_FIELD_ID AT (10 BLANK_PICK_TOP 110 26)
NONEDITABLE MULTIPLELINES
LIST "" ID XW_BLANK_LIST_ID AT (PREVRIGHT+2 BLANK_PICK_TOP 28 72)
USABLE VISIBLEITEMS 6
BUTTON "Ok" XW_BLANK_OK_BUTTON_ID RIGHT@PREVLEFT-10 65 AUTO AUTO
#ifdef FEATURE_TRAY_EDIT
BUTTON "Pick all!" XW_BLANK_PICK_BUTTON_ID 5 65 AUTO AUTO
#endif
END
#if defined OWNER_HASH || defined NO_REG_REQUIRED
FORM ID XW_SAVEDGAMES_DIALOG_ID AT ( 2 2 156 156 )
USABLE MODAL DEFAULTBTNID XW_SAVEDGAMES_DONE_BUTTON
BEGIN
TITLE "Saved games"
LIST "" ID XW_SAVEDGAMES_LIST_ID AT (2 15 140 60) \
USABLE ENABLED VISIBLEITEMS 1
GRAFFITISTATEINDICATOR 2 120
FIELD XW_SAVEDGAMES_NAME_FIELD AT (PREVRIGHT+10 PREVTOP 108 AUTO)
EDITABLE SINGLELINE UNDERLINED MAXCHARS MAX_GAMENAME_LENGTH
BUTTON "Mod." XW_SAVEDGAMES_USE_BUTTON RIGHT@154 PREVTOP AUTO AUTO
BUTTON "Dup." XW_SAVEDGAMES_DUPE_BUTTON 2 PREVBOTTOM+5 AUTO AUTO
BUTTON "Delete" XW_SAVEDGAMES_DELETE_BUTTON PREVRIGHT+5 PREVTOP AUTO AUTO
BUTTON "Open" XW_SAVEDGAMES_OPEN_BUTTON PREVRIGHT+5 PREVTOP AUTO AUTO
BUTTON "Done" XW_SAVEDGAMES_DONE_BUTTON PREVRIGHT+5 PREVTOP AUTO AUTO
END
#endif
ALERT XW_ERROR_ALERT_ID
ERROR
BEGIN
TITLE "Oops"
MESSAGE "^1"
BUTTONS "Ok"
END
#ifdef FOR_GREMLINS
FORM ID XW_GREMLIN_WARN_FORM_ID AT ( 2 60 156 98 )
USABLE MODAL
BEGIN
TITLE "Gremlin Oops"
FIELD XW_GREMLIN_WARN_FIELD_ID AT (2 15 150 75)
NONEDITABLE MULTIPLELINES
END
#endif