/*
 * wineconsole resource definitions
 *
 * Copyright 2001 Eric Pouech
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include <windef.h>
#include <winuser.h>
#include <commctrl.h>

/* strings */
#define IDS_EDIT		0x100
#define IDS_DEFAULT		0x101
#define IDS_PROPERTIES		0x102

#define IDS_MARK		0x110
#define IDS_COPY		0x111
#define IDS_PASTE		0x112
#define IDS_SELECTALL		0x113
#define IDS_SCROLL		0x114
#define IDS_SEARCH		0x115

#define IDS_DLG_TIT_DEFAULT     0x120
#define IDS_DLG_TIT_CURRENT     0x121
#define IDS_DLG_TIT_ERROR       0x122

#define IDS_DLG_ERR_SBWINSIZE   0x130

#define IDS_FNT_DISPLAY		0x200
#define IDS_FNT_PREVIEW_1	0x201
#define IDS_FNT_PREVIEW_2	0x202

#define IDS_CMD_INVALID_EVENT_ID   0x300
#define IDS_CMD_INVALID_BACKEND    0x301
#define IDS_CMD_INVALID_OPTION     0x302
#define IDS_CMD_ABOUT              0x303
#define IDS_CMD_LAUNCH_FAILED      0x304

#define IDS_USAGE_HEADER           0x310
#define IDS_USAGE_BACKEND          0x311
#define IDS_USAGE_COMMAND          0x312
#define IDS_USAGE_FOOTER           0x313

/* dialog boxes */
#define IDD_OPTION		0x0100
#define IDD_FONT		0x0200
#define IDD_CONFIG		0x0300
#define IDD_SAVE_SETTINGS       0x0400

/* dialog boxes controls */
#define IDC_OPT_CURSOR_SMALL	0x0101
#define IDC_OPT_CURSOR_MEDIUM	0x0102
#define IDC_OPT_CURSOR_LARGE	0x0103
#define IDC_OPT_HIST_SIZE	0x0104
#define IDC_OPT_HIST_SIZE_UD	0x0105
#define IDC_OPT_HIST_NODOUBLE	0x0106
#define IDC_OPT_CONF_CTRL       0x0107
#define IDC_OPT_CONF_SHIFT      0x0108
#define IDC_OPT_QUICK_EDIT      0x0109

#define IDC_FNT_LIST_FONT	0x0201
#define IDC_FNT_LIST_SIZE	0x0202
#define IDC_FNT_COLOR_BK 	0x0203
#define IDC_FNT_COLOR_FG 	0x0204
#define IDC_FNT_FONT_INFO	0x0205
#define IDC_FNT_PREVIEW		0x0206

#define IDC_CNF_SB_WIDTH	0x0301
#define IDC_CNF_SB_WIDTH_UD	0x0302
#define IDC_CNF_SB_HEIGHT	0x0303
#define IDC_CNF_SB_HEIGHT_UD	0x0304
#define IDC_CNF_WIN_WIDTH	0x0305
#define IDC_CNF_WIN_WIDTH_UD	0x0306
#define IDC_CNF_WIN_HEIGHT	0x0307
#define IDC_CNF_WIN_HEIGHT_UD	0x0308
#define IDC_CNF_CLOSE_EXIT      0x0309
#define IDC_CNF_EDITION_MODE    0x030a

#define IDC_SAV_SAVE            0x0401
#define IDC_SAV_SESSION         0x0402
