xwords/xwords4/symbian/group/xwords.rss

620 lines
16 KiB
XML

/* -*-mode: C; fill-column: 78; c-basic-offset: 4; -*- */
/*
* Copyright 2005 by Eric House (xwords@eehouse.org). (based on sample
* app helloworldbasic "Copyright (c) 2002, Nokia. 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.
*/
NAME XWRD
/* I can't get macros in MMC to be honored here; though the compiler complains
about double-definition it doesn't honor the one in the mmp file. */
#include <eikon.rh>
#include <eikon.rsg>
#if defined SERIES_60
# include <avkon.rh>
# include <avkon.hrh>
#endif
#include "xwords.hrh"
#define CANT_DO_TYPEDEF
#include "xwrelay.h"
#undef CANT_DO_TYPEDEF
// ---------------------------------------------------------
//
// Define the resource file signature
// This resource should be empty.
//
// ---------------------------------------------------------
//
RESOURCE RSS_SIGNATURE { }
// ---------------------------------------------------------
//
// Default Document Name
//
// ---------------------------------------------------------
//
RESOURCE TBUF r_default_document_name { buf=""; }
// ---------------------------------------------------------
//
// Define default menu, hotkeys and CBA keys.
//
// ---------------------------------------------------------
//
RESOURCE EIK_APP_INFO
{
menubar = r_xwords_menubar;
cba = r_xwords_cba;
hotkeys = r_xwords_hotkeys;
}
// ---------------------------------------------------------
//
// r_xwords_hotkeys
//
// ---------------------------------------------------------
//
RESOURCE HOTKEYS r_xwords_hotkeys
{
control =
{
HOTKEY
{
command = EEikCmdExit;
key = 'e';
}
};
}
// ---------------------------------------------------------
//
// r_xwords_cba
//
// ---------------------------------------------------------
//
RESOURCE CBA r_xwords_cba
{
buttons=
{
CBA_BUTTON
{
id=XW_JUGGLE_COMMAND;
txt="Juggle";
},
CBA_BUTTON
{
id=XW_NEXTHINT_COMMAND;
txt="Next Hint";
},
CBA_BUTTON
{
id=XW_HIDETRAY_COMMAND;
txt="Hide tray";
},
CBA_BUTTON
{
id=XW_DONE_COMMAND;
txt="Done";
}
};
}
// ---------------------------------------------------------
//
// r_xwords_menubar
//
// ---------------------------------------------------------
//
RESOURCE MENU_BAR r_xwords_menubar
{
titles =
{
MENU_TITLE {menu_pane = r_xwords_file_menu; txt = "File";}
,MENU_TITLE {menu_pane = r_xwords_game_menu; txt = "Game";}
,MENU_TITLE {menu_pane = r_xwords_move_menu; txt = "Move";}
};
}
// ---------------------------------------------------------
//
// r_xwords_file_menu
// Menu for "Options"
//
// ---------------------------------------------------------
//
RESOURCE MENU_PANE r_xwords_file_menu
{
items =
{
MENU_ITEM {command = XW_NEWGAME_COMMAND; txt = "New game";}
,MENU_ITEM {command = XW_SAVEDGAMES_COMMAND; txt = "Saved games";}
,MENU_ITEM {command = XW_PREFS_COMMAND; txt = "Preferences";}
,MENU_ITEM {command = XW_ABOUT_COMMAND; txt = "About";}
,MENU_ITEM {command = EEikCmdExit; txt = "Exit";}
};
}
RESOURCE MENU_PANE r_xwords_game_menu
{
items =
{
MENU_ITEM {command = XW_VALUES_COMMAND; txt = "Tile values";}
,MENU_ITEM {command = XW_REMAIN_COMMAND; txt = "Remaining tiles";}
,MENU_ITEM {command = XW_CURINFO_COMMAND; txt = "Game info";}
,MENU_ITEM {command = XW_HISTORY_COMMAND; txt = "History";}
,MENU_ITEM {command = XW_FINALSCORES_COMMAND; txt = "Final scores";}
,MENU_ITEM {command = XW_FLIP_COMMAND; txt = "Flip board"; }
,MENU_ITEM {command = XW_TOGGLEVALS_COMMAND; txt = "Toggle values"; }
#ifndef XWFEATURE_STANDALONE_ONLY
,MENU_ITEM {command = XW_RESEND_COMMAND; txt = "Resend messages"; }
#endif
};
}
RESOURCE MENU_PANE r_xwords_move_menu
{
items =
{
MENU_ITEM {command = XW_HINT_COMMAND; txt = "Hint";}
/* #ifdef XWFEATURE_SEARCHLIMIT */
/* ,MENU_ITEM {command = XW_LIMHINT_COMMAND; txt = "Limited hint";} */
/* #endif */
,MENU_ITEM {command = XW_NEXTHINT_COMMAND; txt = "Next hint";}
,MENU_ITEM {command = XW_UNDOCUR_COMMAND; txt = "Undo current";}
,MENU_ITEM {command = XW_UNDOLAST_COMMAND; txt = "Undo last";}
,MENU_ITEM {command = XW_DONE_COMMAND; txt = "Turn done";}
/* ,MENU_ITEM {command = XW_JUGGLE_COMMAND; txt = "Juggle";} */
,MENU_ITEM {command = XW_TRADE_COMMAND; txt = "Trade";}
/* ,MENU_ITEM {command = XW_HIDETRAY_COMMAND; txt = "[Un]hide tray";} */
};
}
/* Apparently you have to use a resource type large enough to hold the
string. There are TBUF16, TBUF32, TBUF40, TBUF48,TBUF64, 128 and
256. Why a system that can generate constants from the resource
IDs can't match resource types to strings is beyond me.
*/
RESOURCE TBUF32 r_no_peek_alert {
buf="No peeking at the robot's tiles."; }
RESOURCE TBUF40 r_tiles_in_line_alert {
buf ="All tiles played must be in a line.";
}
RESOURCE TBUF64 r_no_empties_sep_alert {
buf ="Empty squares cannot separate pieces played.";
}
RESOURCE TBUF64 r_two_tiles_first_move_alert {
buf = "Must play two or more pieces on the first move.";
}
RESOURCE TBUF128 r_placed_must_contact_alert {
buf = "New tiles must contact others already in place (or the middle square on the first move).";
}
RESOURCE TBUF32 r_too_few_to_trade_alert {
buf = "Too few tiles left to trade.";
}
RESOURCE TBUF64 r_not_your_turn_alert {
buf = "You can't do that; it's not your turn!";
}
RESOURCE TBUF40 r_remove_first_alert {
buf = "Remove played tiles before trading.";
}
RESOURCE TBUF64 r_nothing_to_undo_alert {
buf = "Nothing to undo. (Initial tile picking cannot be undone.)";
}
RESOURCE TBUF64 r_confirm_end_game {
buf = "Are you sure you want to end the game now?";
}
RESOURCE TBUF64 r_alert_no_dicts {
buf = "Crosswords requires at least one dictionary.";
}
RESOURCE TBUF32 r_alert_feature_pending {
buf = "Feature not yet implemented.";
}
RESOURCE TBUF64 r_alert_no_delete_open_game {
buf = "You can't delete the current game.";
}
RESOURCE TBUF64 r_confirm_trade {
buf = "Are you sure you want to use your turn trading tiles?";
}
RESOURCE TBUF64 r_confirm_delgame {
buf = "Are you sure you want delete the selected game?";
}
RESOURCE TBUF64 r_alert_no_rename_open_game {
buf = "You can't rename the current game.";
}
RESOURCE TBUF32 r_alert_rename_target_exists {
buf = "Name already in use.";
}
RESOURCE TBUF32 r_alert_rename_target_badname {
buf = "Illegal game name";
}
#define XW_EFLAGS EEikEdwinNoAutoSelection | EEikEdwinReadOnly | EEikEdwinResizable
// EEikEdwinDisplayOnly |
RESOURCE DIALOG r_xwords_confirmation_query
{
title = "Query";
#if ! defined SERIES_60
buttons = R_EIK_BUTTONS_NO_YES;
#endif
flags = EEikDialogFlagWait | EEikDialogFlagNotifyEsc;
items =
{
DLG_LINE
{
control = EDWIN { flags = XW_EFLAGS;
width = 50;
lines = 4;
};
type = EEikCtEdwin;
id = EAskContents;
}
};
}
RESOURCE DIALOG r_xwords_info_only
{
title = "Info";
#if ! defined SERIES_60
buttons = R_EIK_BUTTONS_CONTINUE;
#endif
flags = EEikDialogFlagWait | EEikDialogFlagNotifyEsc;
items =
{
DLG_LINE
{
control = EDWIN { flags = XW_EFLAGS;
width = 50;
lines = 4;
};
type = EEikCtEdwin;
id = EAskContents;
}
};
}
#ifndef XWFEATURE_STANDALONE_ONLY
RESOURCE ARRAY r_conn_roles
{
items = {
LBUF { txt = "Standalone"; }
,LBUF { txt = "Host"; }
,LBUF { txt = "Guest"; }
};
}
RESOURCE ARRAY r_conn_types
{
items = {
LBUF { txt = "Cellular internet"; }
,LBUF { txt = "Bluetooth"; }
,LBUF { txt = "IR"; }
};
}
RESOURCE ARRAY r_xwords_newgame_page_conn
{
items =
{
DLG_LINE
{
prompt = "Role";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { array_id = r_conn_roles; };
#endif
id = EConnectionRole;
// itemflags =
},
DLG_LINE
{
prompt = "Connect via";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { array_id = r_conn_types; };
#elif defined SERIES_60
control = AVKON_LIST_QUERY_CONTROL {
listtype = EAknCtSingleHeadingPopupMenuListBox;
listbox = LISTBOX {
flags = EAknListBoxMenuList;
height = 5;
width = 20;
array_id = r_conn_types;
};
/* heading = qtn_aknexquery_list_title; */
};
#endif
id = EConnectionType;
// itemflags =
},
DLG_LINE {
prompt = "Game name";
type = EEikCtEdwin;
id = ECookie;
control = EDWIN { width = 10; maxlength = MAX_COOKIE_LEN; };
},
DLG_LINE {
prompt = "Relay name";
type = EEikCtEdwin;
id = ERelayName;
control = EDWIN { width = 10; maxlength = 32; };
},
DLG_LINE {
prompt = "Port number";
id = ERelayPort;
type = EEikCtNumberEditor;
control = NUMBER_EDITOR { min = 0; max = 0xFFFF; };
}
};
}
#endif
RESOURCE ARRAY r_four_nums
{
items = {
LBUF { txt = "1"; }
,LBUF { txt = "2"; }
,LBUF { txt = "3"; }
,LBUF { txt = "4"; }
};
}
RESOURCE ARRAY r_xwords_newgame_page_players
{
items =
{
DLG_LINE {
prompt = "Number of players";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { array_id = r_four_nums; };
#endif
id = ENPlayersList;
}, DLG_LINE {
prompt = "Show player";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { maxdisplaychar = 2; };
#endif
id = ENPlayersWhichList;
}, DLG_LINE {
prompt = "Location";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { array_id = r_location_choices; };
#endif
id = EPlayerLocationChoice;
} ,DLG_LINE {
prompt = "Name";
control = EDWIN { width = 20; maxlength = 32; };
type = EEikCtEdwin;
id = EPlayerName;
} ,DLG_LINE {
prompt = "Species";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { array_id = r_player_species; };
#endif
id = EPlayerSpeciesChoice;
} ,DLG_LINE {
type = EEikCtSecretEd;
prompt = "Password";
id = EDecryptPassword;
control = SECRETED { num_letters = 5; };
}
};
}
RESOURCE ARRAY r_player_species
{
items = {
LBUF { txt = "Human"; }
,LBUF { txt = "Robot"; }
};
}
RESOURCE ARRAY r_location_choices
{
items = {
LBUF { txt = "Local"; }
,LBUF { txt = "Remote"; }
};
}
/* This flag goes on editors in pages on series 60 */
/* avkon_flags = EAknEditorFlagNoEditIndicators; \ */
#ifdef SERIES_60
RESOURCE DLG_BUTTONS r_dict_browse_button
{
buttons = {
DLG_BUTTON
{
id = EDictBrowseButton;
button = CMBUT { txt = "Browse"; };
/* hotkey = "B"; */
}
};
}
#endif
RESOURCE ARRAY r_xwords_newgame_page_dict
{
items = {
DLG_LINE {
prompt = "Game dictionary";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { flags = EEikChlistArrayOwnedExternally; };
#endif
id = ESelDictChoice;
}
#ifdef SERIES_60
/* ,DLG_LINE { */
/* buttons = r_dict_browse_button; */
/* } */
#endif
};
}
RESOURCE ARRAY r_xwords_newgame_pages
{
items =
{
#ifndef XWFEATURE_STANDALONE_ONLY
PAGE{ text="Connection"; id=EPageConn; lines=r_xwords_newgame_page_conn;}
,
#endif
PAGE{ text="Players"; id=EPagePlayers;
lines=r_xwords_newgame_page_players;}
,PAGE{ text="Dictionary"; id=EPageDict;
lines=r_xwords_newgame_page_dict;}
};
}
RESOURCE DIALOG r_xwords_newgame_dlg
{
title = "Game setup";
/* This doesn't work in series 60. How do I differentiate? Sep .rss
files? */
#if defined SERIES_80
buttons = R_EIK_BUTTONS_CANCEL_OK;
#endif
flags = EEikDialogFlagWait | EEikDialogFlagNotifyEsc;
pages = r_xwords_newgame_pages;
}
RESOURCE DIALOG r_xwords_blank_picker
{
title = "Tile picker";
#if defined SERIES_80
buttons = R_EIK_BUTTONS_CONTINUE;
#endif
flags = EEikDialogFlagWait | EEikDialogFlagNotifyEsc;
items = {
DLG_LINE {
prompt = "Choose one";
type = EEikCtChoiceList;
#if defined SERIES_80
control = CHOICELIST { flags = EEikChlistArrayOwnedExternally; };
#elif defined SERIES_60
#endif
id = ESelBlankChoice;
}
};
}
RESOURCE DLG_BUTTONS r_savedgames_buttons
{
buttons = {
DLG_BUTTON {
id = XW_SGAMES_RENAME_COMMAND;
buttontype = EEikCtCommandButton;
button = CMBUT { txt = "Rename"; };
}, DLG_BUTTON {
id = XW_SGAMES_OPEN_COMMAND;
buttontype = EEikCtCommandButton;
/* flags = EEikLabeledButtonIsDefault; */
button = CMBUT { txt = "Open"; };
}, DLG_BUTTON {
id = XW_SGAMES_DELETE_COMMAND;
buttontype = EEikCtCommandButton;
button = CMBUT { txt = "Delete"; };
}, DLG_BUTTON {
id = EEikBidCancel;
buttontype = EEikCtCommandButton;
button = CMBUT { txt = "Cancel"; };
}
};
}
RESOURCE DIALOG r_xwords_savedgames_dlg
{
title = "Saved games";
buttons = r_savedgames_buttons;
flags = EEikDialogFlagWait | EEikDialogFlagNotifyEsc;
items = {
DLG_LINE {
prompt = "Open:";
id = ESelGameChoice;
#if 0
type = EEikCtChoiceList;
control = CHOICELIST { flags = EEikChlistArrayOwnedExternally; };
#else
type = EEikCtListBox;
control = LISTBOX { flags = EEikListBoxMultipleSelection;
width = 20;
};
#endif
}
};
}
RESOURCE DIALOG r_xwords_editname_dlg
{
title = "Change name";
#if defined SERIES_80
buttons = R_EIK_BUTTONS_CANCEL_OK;
#endif
flags = EEikDialogFlagWait | EEikDialogFlagNotifyEsc;
items = {
DLG_LINE {
prompt = "New name";
id = EEditNameEdwin;
type = EEikCtFileNameEd;
control = FILENAMEEDITOR { width = 32; };
}
};
}