/*
 * Program Manager
 *
 * Copyright 1996 Ulrich Schmid
 * Copyright 2002 Sylvain Petreolle
 * Copyright 2010 Yaron Shahrabani <sh.yaron@gmail.com>
 *
 * 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 "progman.h"

#pragma code_page(65001)

LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT

/* Menu */

MAIN_MENU MENU
{
 POPUP "&קובץ" {
   MENUITEM "&חדש...",              PM_NEW
   MENUITEM "&פתיחה\tEnter",             PM_OPEN
   MENUITEM "ה&עברה...\tF7",             PM_MOVE,      GRAYED
   MENUITEM "הע&תקה...\tF8",             PM_COPY,      GRAYED
   MENUITEM "&מחיקה\tEntf",           PM_DELETE
   MENUITEM "מא&פיינים...\tAlt+Enter",       PM_ATTRIBUTES
   MENUITEM SEPARATOR
   MENUITEM "הפע&לה...",          PM_EXECUTE
   MENUITEM SEPARATOR
   MENUITEM "י&ציאה מ־Windows...",             PM_EXIT
 }
 POPUP "&אפשרויות" {
   MENUITEM "&סידור אוטומטי",  PM_AUTO_ARRANGE
   MENUITEM "מ&זעור עם ההפעלה",    PM_MIN_ON_RUN
   MENUITEM "&שמירת ההגדרות עם היציאה", PM_SAVE_SETTINGS
 }
 POPUP "&חלונות" {
   MENUITEM "&חופפים\tShift+F5",       PM_OVERLAP
   MENUITEM "&זה לצד זה\tShift+F4",  PM_SIDE_BY_SIDE
   MENUITEM "&סידור סמלים",       PM_ARRANGE
 }

POPUP "ע&זרה" {
   MENUITEM "&תכנים",         PM_CONTENTS
   MENUITEM "&חיפוש...",           PM_SEARCH
   MENUITEM SEPARATOR
   MENUITEM "&עזרה על העזרה",     PM_HELPONHELP
   MENUITEM "&מדריך",         PM_TUTORIAL
   MENUITEM SEPARATOR
   MENUITEM "על &אודות Wine",     PM_ABOUT_WINE
 }
}

/* Dialog `New' */

DIALOG_NEW DIALOG 0, 0, 170, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "חדשה"
{
RADIOBUTTON   "",                 PM_NEW_GROUP,    10, 15,  10, 15
LTEXT         "&קבוצת תכניות",   -1,    20, 18,  80, 15
RADIOBUTTON   "",                 PM_NEW_PROGRAM,  10, 35,  10, 15
LTEXT         "&תכנית", -1,  20, 38,  80, 15
DEFPUSHBUTTON "אישור",          IDOK,           105,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",      IDCANCEL,       105, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",        PM_HELP,        105, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Move' */

DIALOG_MOVE DIALOG 0, 0, 250, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "העברת תכנית"
{
LTEXT         "העברת תכנית:",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "מהקבוצה:", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&אל הקבוצה:",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "אישור",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Copy' */

DIALOG_COPY DIALOG 0, 0, 250, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "העתקת תכנית"
{
LTEXT         "העתקת תכנית:",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "מהקבוצה:", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&אל הקבוצה:",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "אישור",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Group attributes' */

DIALOG_GROUP DIALOG 0, 0, 230, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "מאפייני קבוצת תכניות"
{
LTEXT     "&תיאור:", PM_DESCRIPTION_TXT,   05, 18,  50, 10
EDITTEXT                            PM_DESCRIPTION,       60, 18,  90, 15, WS_TABSTOP
LTEXT     "&קובץ קבוצה:",        PM_FILE_TXT,          05, 38,  50, 10
EDITTEXT                            PM_FILE,              60, 38,  90, 15, WS_TABSTOP
DEFPUSHBUTTON "אישור",            IDOK,                155,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",        IDCANCEL,            155, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",          PM_HELP,             155, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Program attributes' */

DIALOG_PROGRAM DIALOG 0, 0, 250, 105
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "מאפייני התכנית"
{
LTEXT         "&תיאור:",  PM_DESCRIPTION_TXT,   05, 10,  60, 10
EDITTEXT                                   PM_DESCRIPTION,       80, 10,  90, 15, WS_TABSTOP
LTEXT         "&שורת הפקודה:", PM_COMMAND_LINE_TXT,  05, 25,  60, 10
EDITTEXT                                   PM_COMMAND_LINE,      80, 25,  90, 15, WS_TABSTOP
LTEXT         "&תיקיית ההפעלה:",    PM_DIRECTORY_TXT,     05, 40,  60, 10
EDITTEXT                                   PM_DIRECTORY,         80, 40,  90, 15, WS_TABSTOP
LTEXT         "&צירוף מקשים:",      PM_HOT_KEY_TXT,       05, 55,  60, 10
EDITTEXT                                   PM_HOT_KEY,           80, 55,  90, 15, WS_TABSTOP
ICON          "",                          PM_ICON,              20, 70
CHECKBOX      "",                          PM_SYMBOL,            80, 75,  10, 10, WS_TABSTOP
LTEXT         "מ&זעור בעת ההפעלה",       -1,             95, 75,  75, 10
DEFPUSHBUTTON "אישור",                   IDOK,                185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",               IDCANCEL,            185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&עיון...",               PM_BROWSE,           185, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "החלפת ה&סמל...", PM_OTHER_SYMBOL,     185, 65,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",                 PM_HELP,             185, 85,  60, 15, WS_TABSTOP
}

/* Dialog `Symbol' */

DIALOG_SYMBOL DIALOG 0, 0, 200, 85
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "שינוי הסמל"
{
LTEXT     "&שם הקובץ:",    PM_ICON_FILE_TXT,    5, 15,  40, 10
EDITTEXT                         PM_ICON_FILE,       45, 15,  85, 15, WS_TABSTOP
LTEXT     "הסמל ה&נוכחי:", PM_SYMBOL_LIST_TXT,  5, 30, 125, 10
COMBOBOX                         PM_SYMBOL_LIST,      5, 40, 125, 50,
   CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_OWNERDRAWFIXED | WS_TABSTOP
DEFPUSHBUTTON "אישור",         IDOK,              135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",     IDCANCEL,          135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&עיון...",    PM_BROWSE,         135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",       PM_HELP,           135, 65,  60, 15, WS_TABSTOP
}

/* Dialog `Execute' */

DIALOG_EXECUTE DIALOG 0, 0, 200, 85
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_LAYOUTRTL
CAPTION "הפעלת תכנית"
{
LTEXT     "&שורת הפקודה:", -1,   05, 15, 120, 10
EDITTEXT                               PM_COMMAND, 05, 25, 120, 15, WS_TABSTOP
CHECKBOX      "",                      PM_SYMBOL,  05, 45,  10, 10, WS_TABSTOP
LTEXT         "מ&זעור בעת ההפעלה",   -1,   20, 45, 120, 10
DEFPUSHBUTTON "אישור",               IDOK,      135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "ביטול",           IDCANCEL,  135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&עיון...",          PM_BROWSE, 135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "ע&זרה",             PM_HELP,   135, 65,  60, 15, WS_TABSTOP
}

/* Strings */

STRINGTABLE
{
IDS_PROGRAM_MANAGER,		"Program Manager"
IDS_ERROR,			"ERROR"
IDS_WARNING,			"WARNING"
IDS_INFO,			"Information"
IDS_DELETE,			"Delete"
IDS_DELETE_GROUP_s,		"Delete group `%s' ?"
IDS_DELETE_PROGRAM_s,		"Delete program `%s' ?"
IDS_NOT_IMPLEMENTED,		"Not implemented"
IDS_FILE_READ_ERROR_s,		"Error reading `%s'."
IDS_FILE_WRITE_ERROR_s,		"Error writing `%s'."
IDS_GRPFILE_READ_ERROR_s,	"\
The group file `%s' cannot be opened.\n\
Should it be tried further on?"
IDS_OUT_OF_MEMORY,		"Out of memory."
IDS_WINHELP_ERROR,		"Help not available."
IDS_UNKNOWN_FEATURE_s,		"Unknown feature in %s"
IDS_FILE_NOT_OVERWRITTEN_s,	"File `%s' exists. Not overwritten."
IDS_SAVE_GROUP_AS_s,		"Save group as `%s to prevent overwriting original files."
IDS_NO_HOT_KEY,			"None"
IDS_ALL_FILES,			"All files (*.*)"
IDS_PROGRAMS,			"Programs"
IDS_LIBRARIES_DLL,		"Libraries (*.dll)"
IDS_SYMBOL_FILES,		"Icon files"
IDS_SYMBOLS_ICO,		"Icons (*.ico)"
}
