/*
 * Program Manager
 *
 * Copyright 1996 Ulrich Schmid
 * Copyright 2002 Sylvain Petreolle
 * Copyright 2004 Henning Gerhardt
 *
 * 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)

/* Menu */

MAIN_MENU MENU LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
{
 POPUP "&Datei" {
   MENUITEM "&Neu...",              PM_NEW
   MENUITEM "Ö&ffnen\tEingabetaste",             PM_OPEN
   MENUITEM "&Verschieben...\tF7",             PM_MOVE,      GRAYED
   MENUITEM "&Kopieren...\tF8",             PM_COPY,      GRAYED
   MENUITEM "&Löschen\tEntf",           PM_DELETE
   MENUITEM "&Eigenschaften...\tAlt+Eingabetaste",       PM_ATTRIBUTES
   MENUITEM SEPARATOR
   MENUITEM "&Ausführen...",          PM_EXECUTE
   MENUITEM SEPARATOR
   MENUITEM "&Programm-Manager beenden...",             PM_EXIT
 }
 POPUP "&Optionen" {
   MENUITEM "&Automatisch anordnen",  PM_AUTO_ARRANGE
   MENUITEM "&Symbol nach Programmstart",    PM_MIN_ON_RUN
   MENUITEM "&Einstellungen beim Beenden speichern", PM_SAVE_SETTINGS
 }
 POPUP "&Fenster" {
   MENUITEM "Über&lappend\tUmschalt+F5",       PM_OVERLAP
   MENUITEM "&Nebeneinander\tUmschalt+F4",  PM_SIDE_BY_SIDE
   MENUITEM "&Symbole anordnen",       PM_ARRANGE
 }
 
POPUP "&Hilfe" {
   MENUITEM "&Inhalt",         PM_CONTENTS
   MENUITEM "&Suchen...",           PM_SEARCH
   MENUITEM SEPARATOR
   MENUITEM "Hilfe &benutzen",     PM_HELPONHELP
   MENUITEM "&Lernprogramm",         PM_TUTORIAL
   MENUITEM SEPARATOR

   POPUP "&Info..." {
     MENUITEM "&Lizenz",        PM_LICENSE
     MENUITEM "&KEINE GARANTIE",    PM_NO_WARRANTY
     MENUITEM "Ü&ber WINE",     PM_ABOUT_WINE
   }
 }
}

/* Dialog `New' */

DIALOG_NEW DIALOG 0, 0, 170, 65
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Neues Programmobjekt"
{
RADIOBUTTON   "",                 PM_NEW_GROUP,    10, 15,  10, 15
LTEXT         "Programm&gruppe",   -1,    20, 18,  80, 8
RADIOBUTTON   "",                 PM_NEW_PROGRAM,  10, 35,  10, 15
LTEXT         "&Programm", -1,  20, 38,  80, 8
DEFPUSHBUTTON "OK",          IDOK,           105,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",      IDCANCEL,       105, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",        PM_HELP,        105, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Move' */

DIALOG_MOVE DIALOG 0, 0, 250, 65
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Programm verschieben"
{
LTEXT         "Verschiebe Programm:",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "Von Programmgruppe:", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&in Gruppe:",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Copy' */

DIALOG_COPY DIALOG 0, 0, 250, 65
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Programm kopieren"
{
LTEXT         "Kopiere Programm:",    -1,            5,  5,  90, 15
LTEXT         "",                     PM_PROGRAM,         95,  5,  90, 15
LTEXT         "Von Programmgruppe:", -1,            5, 13,  90, 15
LTEXT         "",                     PM_FROM_GROUP,      95, 13,  90, 15
LTEXT         "&in Gruppe:",   PM_TO_GROUP_TXT,     5, 28, 140, 15
COMBOBOX                              PM_TO_GROUP,         5, 38, 140, 50, WS_TABSTOP | CBS_DROPDOWNLIST
DEFPUSHBUTTON "OK",              IDOK,              185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",          IDCANCEL,          185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",            PM_HELP,           185, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Group attributes' */

DIALOG_GROUP DIALOG 0, 0, 230, 65
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Programmgruppeneigenschaften"
{
LTEXT     "&Beschreibung:", PM_DESCRIPTION_TXT,   05, 18,  50, 8
EDITTEXT                            PM_DESCRIPTION,       60, 18,  90, 12, WS_TABSTOP
LTEXT     "&Gruppendatei:",        PM_FILE_TXT,          05, 38,  50, 8
EDITTEXT                            PM_FILE,              60, 38,  90, 12, WS_TABSTOP
DEFPUSHBUTTON "OK",            IDOK,                155,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",        IDCANCEL,            155, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",          PM_HELP,             155, 45,  60, 15, WS_TABSTOP
}

/* Dialog `Program attributes' */

DIALOG_PROGRAM DIALOG 0, 0, 250, 105
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Programmeigenschaften"
{
LTEXT         "&Beschreibung:",  PM_DESCRIPTION_TXT,   05, 10,  60, 8
EDITTEXT                                   PM_DESCRIPTION,       80, 10,  90, 12, WS_TABSTOP
LTEXT         "&Befehls&zeile:", PM_COMMAND_LINE_TXT,  05, 25,  60, 8
EDITTEXT                                   PM_COMMAND_LINE,      80, 25,  90, 12, WS_TABSTOP
LTEXT         "&Arbeitsverzeichnis:",    PM_DIRECTORY_TXT,     05, 40,  60, 8
EDITTEXT                                   PM_DIRECTORY,         80, 40,  90, 12, WS_TABSTOP
LTEXT         "&Tastenkombination:",      PM_HOT_KEY_TXT,       05, 55,  60, 8
EDITTEXT                                   PM_HOT_KEY,           80, 55,  90, 12, WS_TABSTOP
ICON          "",                          PM_ICON,              20, 70
CHECKBOX      "",                          PM_SYMBOL,            80, 75,  10, 10, WS_TABSTOP
LTEXT         "Als Sy&mbol",       -1,             95, 75,  75, 10
DEFPUSHBUTTON "OK",                   IDOK,                185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",               IDCANCEL,            185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Durchsuchen...",               PM_BROWSE,           185, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "Anderes &Symbol...", PM_OTHER_SYMBOL,     185, 65,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",                 PM_HELP,             185, 85,  60, 15, WS_TABSTOP
}

/* Dialog `Symbol' */

DIALOG_SYMBOL DIALOG 0, 0, 200, 85
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Symbol auswählen"
{
LTEXT     "Datei&name:",    PM_ICON_FILE_TXT,    5, 15,  40, 10
EDITTEXT                         PM_ICON_FILE,       45, 15,  85, 12, WS_TABSTOP
LTEXT     "&Aktuelles Symbol:", 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 "OK",         IDOK,              135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",     IDCANCEL,          135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Durchsuchen...",    PM_BROWSE,         135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",       PM_HELP,           135, 65,  60, 15, WS_TABSTOP
}

/* Dialog `Execute' */

DIALOG_EXECUTE DIALOG 0, 0, 200, 85
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Programm ausführen"
{
LTEXT     "&Befehlszeile:", -1,   05, 15, 120, 10
EDITTEXT                               PM_COMMAND, 05, 25, 120, 12, WS_TABSTOP
CHECKBOX      "",                      PM_SYMBOL,  05, 45,  10, 10, WS_TABSTOP
LTEXT         "Als Sy&mbol",   -1,   20, 45, 120, 10
DEFPUSHBUTTON "OK",               IDOK,      135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "Abbrechen",           IDCANCEL,  135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Durchsuchen...",          PM_BROWSE, 135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "&Hilfe",             PM_HELP,   135, 65,  60, 15, WS_TABSTOP
}

/* Strings */

STRINGTABLE DISCARDABLE LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
{
IDS_PROGRAM_MANAGER,		"Programm-Manager"
IDS_ERROR,			"FEHLER"
IDS_WARNING,			"ACHTUNG"
IDS_INFO,			"Information"
IDS_DELETE,			"Löschen"
IDS_DELETE_GROUP_s,		"Lösche Programmgruppe „%s“?"
IDS_DELETE_PROGRAM_s,		"Lösche Programm „%s“?"
IDS_NOT_IMPLEMENTED,		"Nicht implementiert"
IDS_FILE_READ_ERROR_s,		"Fehler beim Lesen von „%s“."
IDS_FILE_WRITE_ERROR_s,		"Fehler beim Schreiben von „%s“."
IDS_GRPFILE_READ_ERROR_s,	"Die Programmgruppendatei „%s“ kann nicht geöffnet werden.\n\Soll weiterhin versucht werden, diese Datei zu laden?"
IDS_OUT_OF_MEMORY,		"Zu wenig Hauptspeicher."
IDS_WINHELP_ERROR,		"Keine Hilfe verfügbar."
IDS_UNKNOWN_FEATURE_s,		"Unbekannte Eigenschaft in %s"
IDS_FILE_NOT_OVERWRITTEN_s,	"Datei „%s“ existiert. Sie wird nicht überschrieben."
IDS_SAVE_GROUP_AS_s,		"Die Programmgruppe wird als „%s“ gesichert, um das Überschreiben der Originaldatei zu verhindern."
IDS_NO_HOT_KEY,			"Keine"
IDS_ALL_FILES,			"Alle Dateien (*.*)"
IDS_PROGRAMS,			"Programme"
IDS_LIBRARIES_DLL,		"Bibliotheken (*.dll)"
IDS_SYMBOL_FILES,		"Symboldateien"
IDS_SYMBOLS_ICO,		"Symbole (*.ico)"
}

STRINGTABLE DISCARDABLE LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
{
IDS_LICENSE_CAPTION,            "LIZENZ"
IDS_LICENSE,
"Diese Bibliothek ist freie Software; Sie dürfen sie unter den \
Bedingungen der GNU Lesser General Public License, wie von der \
Free Software Foundation veröffentlicht, weiterverteilen und/oder \
modifizieren; entweder gemäß Version 2.1 der Lizenz oder (nach \
Ihrer Option) jeder späteren Version.\n\
Diese Bibliothek wird in der Hoffnung weiterverbreitet, daß sie \
nützlich sein wird, jedoch OHNE IRGENDEINE GARANTIE, auch ohne \
die implizierte Garantie der MARKTREIFE oder der VERWENDBARKEIT \
FÜR EINEN BESTIMMTEN ZWECK. Mehr Details finden Sie in der \
GNU Lesser General Public License.\n\
Sie sollten eine Kopie der GNU Lesser General Public License zusammen \
mit dieser Bibliothek erhalten haben; falls nicht, schreiben Sie an \
die Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, \
Boston, MA 02110, USA."

IDS_WARRANTY_CAPTION, "KEINE GARANTIE"
IDS_WARRANTY,
"Diese Bibliothek wird in der Hoffnung weiterverbreitet, daß sie nützlich \
sein wird, jedoch OHNE IRGENDEINE GARANTIE, auch ohne die implizierte Garantie \
der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Mehr Details \
finden Sie in der GNU Lesser General Public License."
}
