mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2024-12-30 10:26:58 +01:00
bdb06cbdf8
it's needed, removing those passed into _init and _send. When client is unable to connect to host, raise alert to user and give choice to continue trying. Clear 'suspendBT' flag when user manually resends or opens different game. Currently this happens only on guest's failure to find registered SDP; should also extend to remote device not running at all and to host failure to send to guest.
606 lines
20 KiB
C
606 lines
20 KiB
C
/* -*-mode: c; fill-column: 78; compile-command: "cd ../ && make ARCH=68K_ONLY MEMDEBUG=TRUE"; -*- */
|
|
/*****************************************************************************
|
|
* Copyright 1999 - 2006 by Eric House (xwords@eehouse.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"
|
|
|
|
#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
|
|
#ifdef FEATURE_DUALCHOOSE
|
|
MENUITEM SEPARATOR
|
|
MENUITEM "Launch 68K vers." XW_RUN68K_PULLDOWN_ID
|
|
MENUITEM "Launch ARM vers." XW_RUNARM_PULLDOWN_ID
|
|
#endif
|
|
MENUITEM SEPARATOR
|
|
MENUITEM "About Crosswords..." XW_ABOUT_PULLDOWN_ID "A"
|
|
END
|
|
|
|
PULLDOWN "Game"
|
|
BEGIN
|
|
MENUITEM "Tile values" XW_TILEVALUES_PULLDOWN_ID "V"
|
|
MENUITEM "Remaining tiles" XW_TILESLEFT_PULLDOWN_ID "R"
|
|
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"
|
|
#ifdef XWFEATURE_SEARCHLIMIT
|
|
MENUITEM "Limited hint" XW_HINTCONFIG_PULLDOWN_ID "C"
|
|
MENUITEM SEPARATOR
|
|
#endif
|
|
MENUITEM "Next hint" XW_NEXTHINT_PULLDOWN_ID "M"
|
|
MENUITEM SEPARATOR
|
|
MENUITEM "Undo current" XW_UNDOCUR_PULLDOWN_ID "U"
|
|
MENUITEM "Undo last" 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_HIDESHOWTRAY_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 "Log to file" XW_LOGFILE_PULLDOWN_ID
|
|
MENUITEM "Log to memo" XW_LOGMEMO_PULLDOWN_ID
|
|
MENUITEM "Clear logs" XW_CLEARLOGS_PULLDOWN_ID
|
|
MENUITEM "Network stats..." XW_NETSTATS_PULLDOWN_ID
|
|
#ifdef DEBUG
|
|
MENUITEM "BT stats..." XW_BTSTATS_PULLDOWN_ID
|
|
#endif
|
|
#ifdef MEM_DEBUG
|
|
MENUITEM "Mem stats..." XW_MEMSTATS_PULLDOWN_ID
|
|
#endif
|
|
END
|
|
#endif
|
|
#endif /* FOR_GREMLINS */
|
|
|
|
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
|
|
|
|
#include "common.rcp.pre" /* these don't need localization */
|
|
|
|
#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 PLAYER_ROW_ID( num ) \
|
|
ID XW_REMOTE_##num##_CHECKBOX_ID \
|
|
ID XW_PLAYERNAME_##num##_FIELD_ID \
|
|
ID XW_ROBOT_##num##_CHECKBOX_ID \
|
|
ID XW_PLAYERPASSWD_##num##_TRIGGER_ID \
|
|
|
|
#define PLAYER_ROW_NAV( num ) \
|
|
ROW XW_REMOTE_##num##_CHECKBOX_ID \
|
|
ROW XW_PLAYERNAME_##num##_FIELD_ID \
|
|
XW_ROBOT_##num##_CHECKBOX_ID \
|
|
XW_PLAYERPASSWD_##num##_TRIGGER_ID \
|
|
|
|
//#define SERVER_GROUP_ID 2000
|
|
#define SERVER_HEIGHT 12
|
|
|
|
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 55 SERVER_HEIGHT) USABLE
|
|
GADGET ID XW_SERVER_GADGET_ID
|
|
AT (PREVRIGHT+1 SERVER_TOP 24 SERVER_HEIGHT) USABLE
|
|
GADGET ID XW_CLIENT_GADGET_ID
|
|
AT (PREVRIGHT+1 SERVER_TOP 30 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 */
|
|
FIELD XW_TOTALP_FIELD_ID LEFTCOL NPLAYERS_TOP 58 AUTO \
|
|
SINGLELINE NONEDITABLE MAXCHARS 16
|
|
|
|
SELECTORTRIGGER "" XW_NPLAYERS_SELECTOR_ID \
|
|
AT (PREVRIGHT NPLAYERS_TOP AUTO AUTO) USABLE LEFTANCHOR
|
|
LIST "1" "2" "3" "4" XW_NPLAYERS_LIST_ID AT (PREVLEFT PREVTOP 10 1) \
|
|
VISIBLEITEMS 4 NONUSABLE
|
|
|
|
BUTTON "J" XW_GINFO_JUGGLE_ID PREVRIGHT+3 PREVTOP 10 AUTO
|
|
|
|
BUTTON "Other prefs..." XW_PREFS_BUTTON_ID PREVRIGHT+5 PREVTOP 63 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+8 PREVTOP AUTO AUTO) USABLE LEFTANCHOR
|
|
|
|
BUTTON "Ok" XW_OK_BUTTON_ID RIGHT@154 PREVTOP AUTO AUTO
|
|
BUTTON "Cancel" XW_CANCEL_BUTTON_ID RIGHT@PREVLEFT-5 PREVTOP 30 AUTO
|
|
END /* XW_NEWGAMES_FORM */
|
|
|
|
#ifdef XWFEATURE_FIVEWAY
|
|
NAVIGATION ID XW_NEWGAMES_FORM
|
|
INITIALSTATE kFrmNavHeaderFlagsObjectFocusStartState
|
|
#if 0
|
|
BEGIN
|
|
ID XW_SOLO_GADGET_ID
|
|
ID XW_SERVER_GADGET_ID
|
|
ID XW_CLIENT_GADGET_ID
|
|
|
|
ID XW_NPLAYERS_SELECTOR_ID
|
|
ID XW_GINFO_JUGGLE_ID
|
|
ID XW_PREFS_BUTTON_ID
|
|
|
|
PLAYER_ROW_ID( 1 )
|
|
PLAYER_ROW_ID( 2 )
|
|
PLAYER_ROW_ID( 3 )
|
|
PLAYER_ROW_ID( 4 )
|
|
|
|
ID XW_DICT_SELECTOR_ID
|
|
ID XW_CANCEL_BUTTON_ID
|
|
ID XW_OK_BUTTON_ID
|
|
#else
|
|
NAVIGATIONMAP
|
|
#ifndef XWFEATURE_STANDALONE_ONLY
|
|
ROW XW_SOLO_GADGET_ID
|
|
XW_SERVER_GADGET_ID
|
|
XW_CLIENT_GADGET_ID
|
|
#endif
|
|
ROW XW_NPLAYERS_SELECTOR_ID
|
|
XW_GINFO_JUGGLE_ID
|
|
XW_PREFS_BUTTON_ID
|
|
|
|
PLAYER_ROW_NAV( 1 )
|
|
PLAYER_ROW_NAV( 2 )
|
|
PLAYER_ROW_NAV( 3 )
|
|
PLAYER_ROW_NAV( 4 )
|
|
|
|
ROW XW_DICT_SELECTOR_ID
|
|
XW_CANCEL_BUTTON_ID
|
|
XW_OK_BUTTON_ID
|
|
#endif
|
|
END /* NAVIGATION ID XW_NEWGAMES_FORM */
|
|
#endif
|
|
|
|
#if defined XWFEATURE_RELAY || defined XWFEATURE_BLUETOOTH || defined XWFEATURE_IR
|
|
#define LEFTCOL 4
|
|
#define CONNS_FIELD_LEFT 70
|
|
#define LOCALIP_TOP 30
|
|
|
|
FORM ID XW_CONNS_FORM AT (2 66 156 93)
|
|
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
|
|
"Bluetooth" "Beaming" "Internet" ID XW_CONNS_TYPE_LIST_ID
|
|
PREVLEFT PREVTOP 72 12 VISIBLEITEMS 3
|
|
NONUSABLE POPUPLIST XW_CONNS_TYPE_TRIGGER_ID XW_CONNS_TYPE_LIST_ID
|
|
|
|
/* Bluetooth stuff must be here even if XWFEATURE_BLUETOOTH is not defined
|
|
since, e.g. ARM and 68K share these resources yet may not both support
|
|
BT */
|
|
LABEL "No bluetooth on Arm (yet)." XW_CONNS_BT_NOTSUPPORT_LABEL_ID
|
|
AT ( LEFTCOL+10 LOCALIP_TOP ) NONUSABLE
|
|
#ifdef XWFEATURE_BLUETOOTH
|
|
LABEL "Host name:" XW_CONNS_BT_HOSTNAME_LABEL_ID
|
|
AT ( PREVLEFT PREVTOP+3 ) NONUSABLE
|
|
SELECTORTRIGGER "Find host..." XW_CONNS_BT_HOSTTRIGGER_ID \
|
|
AT (CONNS_FIELD_LEFT PREVTOP 70 AUTO) NONUSABLE LEFTANCHOR
|
|
#endif
|
|
|
|
/* Relay... */
|
|
#ifdef XWFEATURE_RELAY
|
|
LABEL "Relay name:" XW_CONNS_RELAY_LABEL_ID
|
|
AT ( LEFTCOL+10 LOCALIP_TOP )
|
|
FIELD XW_CONNS_RELAY_FIELD_ID CONNS_FIELD_LEFT PREVTOP 70 AUTO \
|
|
SINGLELINE EDITABLE UNDERLINED MAXCHARS 32
|
|
|
|
LABEL "Relay port:" XW_CONNS_PORT_LABEL_ID
|
|
AT (LEFTCOL PREVBOTTOM + 2)
|
|
FIELD XW_CONNS_PORT_FIELD_ID CONNS_FIELD_LEFT PREVTOP 30 AUTO \
|
|
EDITABLE SINGLELINE UNDERLINED NUMERIC MAXCHARS 5
|
|
|
|
LABEL "Cookie:" XW_CONNS_COOKIE_LABEL_ID
|
|
AT ( LEFTCOL+10 PREVBOTTOM + 2 )
|
|
FIELD XW_CONNS_COOKIE_FIELD_ID CONNS_FIELD_LEFT PREVTOP 70 AUTO \
|
|
SINGLELINE EDITABLE UNDERLINED MAXCHARS 32
|
|
#else
|
|
LABEL "Connect via internet disabled" XW_CONNS_RELAY_LABEL_ID
|
|
AT ( LEFTCOL+10 LOCALIP_TOP )
|
|
#endif
|
|
|
|
BUTTON "Cancel" XW_CONNS_CANCEL_BUTTON_ID 42 75 AUTO AUTO
|
|
BUTTON "Ok" XW_CONNS_OK_BUTTON_ID PREVRIGHT+10 PREVTOP AUTO AUTO
|
|
END /* XW_CONNS_FORM */
|
|
#endif
|
|
|
|
#ifdef FEATURE_TRAY_EDIT
|
|
# define TRAY_EDIT_ADJUST 15
|
|
#else
|
|
# define TRAY_EDIT_ADJUST 0
|
|
#endif
|
|
#ifdef XWFEATURE_SEARCHLIMIT
|
|
# define SEARCHLIMIT_ADJUST 15
|
|
#else
|
|
# define SEARCHLIMIT_ADJUST 0
|
|
#endif
|
|
|
|
#define PREFS_MODE_TOP 15
|
|
#define PREFS_ROW1 30
|
|
#define PREFS_SPACING 15
|
|
|
|
/* #define DLG_TOP (52-TRAY_EDIT_ADJUST-SEARCHLIMIT_ADJUST) */
|
|
#define DLG_HEIGHT (112+TRAY_EDIT_ADJUST+SEARCHLIMIT_ADJUST)
|
|
#define DLG_TOP (160 - DLG_HEIGHT - 2)
|
|
#define TIMER_TOP (74+SEARCHLIMIT_ADJUST)
|
|
#define BUTTON_TOP (TIMER_TOP+18+TRAY_EDIT_ADJUST)
|
|
#define PREFS_LNHT 4
|
|
|
|
FORM ID XW_PREFS_FORM AT (2 DLG_TOP 156 DLG_HEIGHT)
|
|
USABLE MODAL SAVEBEHIND DEFAULTBTNID XW_PREFS_CANCEL_BUTTON_ID
|
|
BEGIN
|
|
TITLE "Preferences"
|
|
|
|
GADGET ID XW_PREFS_ALLGAMES_GADGET_ID
|
|
AT (LEFTCOL+8 PREFS_MODE_TOP 60 SERVER_HEIGHT) USABLE
|
|
GADGET ID XW_PREFS_ONEGAME_GADGET_ID
|
|
AT (PREVRIGHT+1 PREVTOP 60 SERVER_HEIGHT) USABLE
|
|
LIST "All games" "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_ROW1 AUTO AUTO) NONUSABLE
|
|
CHECKBOX "Show progress bar" ID XW_PREFS_PROGRESSBAR_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
CHECKBOX "Larger board" ID XW_PREFS_SHOWGRID_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
CHECKBOX "Enable arrow cursor" ID XW_PREFS_SHOWARROW_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
CHECKBOX "Explain robot/remote scores" ID XW_PREFS_ROBOTSCORE_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
CHECKBOX "Hide tile values" ID XW_PREFS_HIDETRAYVAL_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
|
|
/* single-game prefs */
|
|
CHECKBOX "Smart robot" ID XW_PREFS_ROBOTSMART_CHECKBOX_ID \
|
|
AT (LEFTCOL PREFS_ROW1 AUTO AUTO) NONUSABLE
|
|
#ifdef XWFEATURE_SEARCHLIMIT
|
|
CHECKBOX "Disallow hints" ID XW_PREFS_NOHINTS_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
CHECKBOX "Local hints" ID XW_PREFS_HINTRECT_CHECKBOX_ID \
|
|
AT (PREVRIGHT+3 PREVTOP AUTO AUTO) NONUSABLE
|
|
#else
|
|
CHECKBOX "Disallow hints" ID XW_PREFS_NOHINTS_CHECKBOX_ID \
|
|
AT (PREVRIGHT+3 PREFS_ROW1 AUTO AUTO) NONUSABLE
|
|
#endif
|
|
|
|
LABEL "Phonies:" XW_PREFS_PHONIES_LABEL_ID
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING)
|
|
POPUPTRIGGER "" ID XW_PREFS_PHONIES_TRIGGER_ID
|
|
AT (PREVRIGHT+5 PREVTOP 72 12) LEFTANCHOR
|
|
|
|
LABEL "Board size: " XW_PREFS_BDSIZE_LABEL_ID
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING)
|
|
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 PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
FIELD XW_PREFS_TIMER_FIELD_ID PREVRIGHT+5 PREVTOP 15 AUTO UNDERLINED \
|
|
EDITABLE SINGLELINE NUMERIC MAXCHARS 3
|
|
|
|
#ifdef FEATURE_TRAY_EDIT
|
|
CHECKBOX "Pick tiles face-up" ID XW_PREFS_PICKTILES_CHECKBOX_ID \
|
|
AT (LEFTCOL PREVTOP+PREFS_SPACING AUTO AUTO) NONUSABLE
|
|
#endif
|
|
|
|
/* 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 /* XW_PREFS_FORM */
|
|
|
|
NAVIGATION ID XW_PREFS_FORM
|
|
INITIALSTATE kFrmNavHeaderFlagsObjectFocusStartState
|
|
INITIALOBJECTID XW_PREFS_ONEGAME_GADGET_ID
|
|
NAVIGATIONMAP
|
|
ROW XW_PREFS_ALLGAMES_GADGET_ID
|
|
XW_PREFS_ONEGAME_GADGET_ID
|
|
|
|
/* global prefs */
|
|
ROW XW_PREFS_PLAYERCOLORS_CHECKBOX_ID
|
|
ROW XW_PREFS_PROGRESSBAR_CHECKBOX_ID
|
|
ROW XW_PREFS_SHOWGRID_CHECKBOX_ID
|
|
ROW XW_PREFS_SHOWARROW_CHECKBOX_ID
|
|
ROW XW_PREFS_ROBOTSCORE_CHECKBOX_ID
|
|
ROW XW_PREFS_HIDETRAYVAL_CHECKBOX_ID
|
|
|
|
/* Per-game prefs */
|
|
ROW XW_PREFS_ROBOTSMART_CHECKBOX_ID
|
|
ROW XW_PREFS_NOHINTS_CHECKBOX_ID
|
|
#ifdef XWFEATURE_SEARCHLIMIT
|
|
XW_PREFS_HINTRECT_CHECKBOX_ID
|
|
#endif
|
|
ROW XW_PREFS_PHONIES_TRIGGER_ID
|
|
ROW XW_PREFS_BDSIZE_SELECTOR_ID
|
|
|
|
ROW XW_PREFS_TIMERON_CHECKBOX_ID
|
|
XW_PREFS_TIMER_FIELD_ID
|
|
#ifdef FEATURE_TRAY_EDIT
|
|
ROW XW_PREFS_PICKTILES_CHECKBOX_ID
|
|
#endif
|
|
|
|
/* cmd buttons */
|
|
ROW XW_PREFS_CANCEL_BUTTON_ID
|
|
XW_PREFS_OK_BUTTON_ID
|
|
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_NO_BUTTON_ID
|
|
MENUID XW_ASK_MENU_ID
|
|
BEGIN
|
|
TITLE "Query"
|
|
|
|
/* This has to be non-editable because the field is set via a ptr */
|
|
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 "Yes" XW_ASK_YES_BUTTON_ID RIGHT@(156/2)-20 PREVBOTTOM+5 AUTO AUTO
|
|
BUTTON "No" XW_ASK_NO_BUTTON_ID 156/2+20 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 39)
|
|
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-8 65 AUTO AUTO
|
|
|
|
#ifdef FEATURE_TRAY_EDIT
|
|
BUTTON "Pick all!" XW_BLANK_PICK_BUTTON_ID 5 65 AUTO AUTO
|
|
BUTTON "Del" XW_BLANK_BACKUP_BUTTON_ID PREVRIGHT+5 PREVTOP 22 AUTO
|
|
#endif
|
|
END
|
|
|
|
#ifdef XWFEATURE_SEARCHLIMIT
|
|
# define NTILES_TOP 17
|
|
# define NTILES_BUTTON_TOP 60
|
|
FORM ID XW_HINTCONFIG_FORM_ID AT ( 2 75 156 82 ) USABLE MODAL SAVEBEHIND
|
|
BEGIN
|
|
TITLE "Hint parameters"
|
|
|
|
LABEL "At least this many tiles:" AUTOID 10 NTILES_TOP FONT 1 USABLE
|
|
SELECTORTRIGGER "" XW_HINTCONFIG_MINSELECTOR_ID \
|
|
AT (PREVRIGHT+3 NTILES_TOP AUTO AUTO) USABLE LEFTANCHOR
|
|
LIST "1" "2" "3" "4" "5" "6" "7" ID XW_HINTCONFIG_MINLIST_ID
|
|
AT (PREVRIGHT PREVTOP AUTO AUTO) VISIBLEITEMS 7 NONUSABLE
|
|
|
|
LABEL "No more than this many:" AUTOID 10 PREVTOP+15 FONT 1 USABLE
|
|
SELECTORTRIGGER "" XW_HINTCONFIG_MAXSELECTOR_ID \
|
|
AT (PREVRIGHT+3 PREVTOP AUTO AUTO) USABLE LEFTANCHOR
|
|
LIST "1" "2" "3" "4" "5" "6" "7" ID XW_HINTCONFIG_MAXLIST_ID
|
|
AT (PREVRIGHT PREVTOP AUTO AUTO) VISIBLEITEMS 7 NONUSABLE
|
|
|
|
BUTTON "Ok" XW_HINTCONFIG_OK_ID RIGHT@156-10 NTILES_BUTTON_TOP AUTO 12
|
|
BUTTON "Cancel" XW_HINTCONFIG_CANCEL_ID RIGHT@PREVLEFT-10 PREVTOP AUTO 12
|
|
END
|
|
#endif
|
|
|
|
#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 100 AUTO)
|
|
EDITABLE SINGLELINE UNDERLINED MAXCHARS MAX_GAMENAME_LENGTH
|
|
|
|
BUTTON "Mod." XW_SAVEDGAMES_USE_BUTTON RIGHT@154 PREVTOP 30 AUTO
|
|
|
|
BUTTON "Dup." XW_SAVEDGAMES_DUPE_BUTTON 2 PREVBOTTOM+5 31 AUTO
|
|
BUTTON "Delete" XW_SAVEDGAMES_DELETE_BUTTON PREVRIGHT+5 PREVTOP 39 AUTO
|
|
BUTTON "Open" XW_SAVEDGAMES_OPEN_BUTTON PREVRIGHT+5 PREVTOP 33 AUTO
|
|
BUTTON "Done" XW_SAVEDGAMES_DONE_BUTTON PREVRIGHT+5 PREVTOP 33 AUTO
|
|
END /* XW_SAVEDGAMES_DIALOG_ID */
|
|
#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
|