 /*
 * Program Manager
 *
 * Copyright 1996 Ulrich Schmid
 * Copyright 2002 Sylvain Petreolle
 * Copyright 2006,2007,2010 YunSong Hwang
 *
 * 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_KOREAN, SUBLANG_DEFAULT

/* Menu */

MAIN_MENU MENU
{
POPUP "파일(&F)" {
   MENUITEM "새 작업(&N)...",              PM_NEW
   MENUITEM "열기(&P)\tEnter",             PM_OPEN
   MENUITEM "이동(&M)...\tF7",             PM_MOVE,      GRAYED
   MENUITEM "복사(&C)...\tF8",             PM_COPY,      GRAYED
   MENUITEM "지우기(&D)\tEntf",           PM_DELETE
   MENUITEM "속성(&A)...\tAlt+Enter",       PM_ATTRIBUTES
   MENUITEM SEPARATOR
   MENUITEM "실행(&E)...",          PM_EXECUTE
   MENUITEM SEPARATOR
   MENUITEM "창 종료(&X)...",             PM_EXIT
 }
 POPUP "옵션(&O)" {
   MENUITEM "자동 정렬(&A)",  PM_AUTO_ARRANGE
   MENUITEM "실행시 아이콘 상태로(&M)",    PM_MIN_ON_RUN
   MENUITEM "종료시 설정 내용 저장(&S)", PM_SAVE_SETTINGS
 }
 POPUP "창(&W)" {
   MENUITEM "겹치기(&O)\tShift+F5",       PM_OVERLAP
   MENUITEM "나누기(&S)\tShift+F4",  PM_SIDE_BY_SIDE
   MENUITEM "아이콘 정렬(&A)",       PM_ARRANGE
 }
 
POPUP "도움말(&H)" {
   MENUITEM "목차(&C)",         PM_CONTENTS
   MENUITEM "찾기(&S)...",           PM_SEARCH
   MENUITEM SEPARATOR
   MENUITEM "도움말 사용법(&H)",     PM_HELPONHELP
   MENUITEM "자습서(&T)",         PM_TUTORIAL
   MENUITEM SEPARATOR
   MENUITEM "WINE 정보(&A)",     PM_ABOUT_WINE
 }
}

/* Dialog `New' */

DIALOG_NEW DIALOG 0, 0, 170, 65
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "새 작업"
FONT 8, "MS Shell Dlg"
{
RADIOBUTTON   "",                 PM_NEW_GROUP,    10, 15,  10, 15
LTEXT         "풀그림 그룹(&G)",   -1,    20, 18,  80, 15
RADIOBUTTON   "",                 PM_NEW_PROGRAM,  10, 35,  10, 15
LTEXT         "풀그림(&P)", -1,  20, 38,  80, 15
DEFPUSHBUTTON "확인",          IDOK,           105,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "취소",      IDCANCEL,       105, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "도움말(&H)",        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
CAPTION "풀그림 이동"
FONT 8, "MS Shell Dlg"
{
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         "목적 그룹(&T):",   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    "도움말(&H)",            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
CAPTION "풀그림 복사"
FONT 8, "MS Shell Dlg"
{
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         "목적 그룹(&T):",   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    "도움말(&H)",            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
CAPTION "풀그림 그룹 속성"
FONT 8, "MS Shell Dlg"
{
LTEXT     "설명(&D):", PM_DESCRIPTION_TXT,   05, 18,  50, 10
EDITTEXT                            PM_DESCRIPTION,       60, 18,  90, 15, WS_TABSTOP
LTEXT     "그룹 파일(&G):",        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    "도움말(&H)",          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
CAPTION "풀그림 속성"
FONT 8, "MS Shell Dlg"
{
LTEXT         "설명(&D):",  PM_DESCRIPTION_TXT,   05, 10,  60, 10
EDITTEXT                                   PM_DESCRIPTION,       80, 10,  90, 15, WS_TABSTOP
LTEXT         "명령 라인(&C):", PM_COMMAND_LINE_TXT,  05, 25,  60, 10
EDITTEXT                                   PM_COMMAND_LINE,      80, 25,  90, 15, WS_TABSTOP
LTEXT         "작업 디렉토리(&W):",    PM_DIRECTORY_TXT,     05, 40,  60, 10
EDITTEXT                                   PM_DIRECTORY,         80, 40,  90, 15, WS_TABSTOP
LTEXT         "단축키 지정(&K):",      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         "실행시 최소화(&M)",       -1,             95, 75,  75, 10
DEFPUSHBUTTON "확인",                   IDOK,                185,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "취소",               IDCANCEL,            185, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "찾기(&B)...",               PM_BROWSE,           185, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "아이콘 바꾸기(&I)...", PM_OTHER_SYMBOL,     185, 65,  60, 15, WS_TABSTOP
PUSHBUTTON    "도움말(&H)",                 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
CAPTION "아이콘 바꾸기"
FONT 8, "MS Shell Dlg"
{
LTEXT     "파일이름(&F):",    PM_ICON_FILE_TXT,    5, 15,  40, 10
EDITTEXT                         PM_ICON_FILE,       45, 15,  85, 15, WS_TABSTOP
LTEXT     "현재 아이콘(&I):", 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    "찾기(&B)...",    PM_BROWSE,         135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "도움말(&H)",       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
CAPTION "풀그림 실행"
FONT 8, "MS Shell Dlg"
{
LTEXT     "명령 라인(&C):", -1,   05, 15, 120, 10
EDITTEXT                               PM_COMMAND, 05, 25, 120, 15, WS_TABSTOP
CHECKBOX      "",                      PM_SYMBOL,  05, 45,  10, 10, WS_TABSTOP
LTEXT         "실행시 최소화(&M)",   -1,   20, 45, 120, 10
DEFPUSHBUTTON "확인",               IDOK,      135,  5,  60, 15, WS_TABSTOP
PUSHBUTTON    "취소",           IDCANCEL,  135, 25,  60, 15, WS_TABSTOP
PUSHBUTTON    "찾기(&B)...",          PM_BROWSE, 135, 45,  60, 15, WS_TABSTOP
PUSHBUTTON    "도움말(&H)",             PM_HELP,   135, 65,  60, 15, WS_TABSTOP
}

/* Strings */

STRINGTABLE DISCARDABLE
{
IDS_PROGRAM_MANAGER,		"풀그림 관리자"
IDS_ERROR,			"에러"
IDS_WARNING,			"경고"
IDS_INFO,			"정보"
IDS_DELETE,			"지우기"
IDS_DELETE_GROUP_s,		"그룹 `%s'을 지우겠습니까 ?"
IDS_DELETE_PROGRAM_s,		"풀그림 `%s'을 지우겠습니까 ?"
IDS_NOT_IMPLEMENTED,		"아직 구현되지 않았습니다."
IDS_FILE_READ_ERROR_s,		"`%s' 읽기 에러."
IDS_FILE_WRITE_ERROR_s,		"`%s' 쓰기 에러."
IDS_GRPFILE_READ_ERROR_s,	"\그룹 파일 `%s'을 열 수 없습니다.\n\다시 시도하겠습니까?"
IDS_OUT_OF_MEMORY,		"메모리 부족."
IDS_WINHELP_ERROR,		"도움말은 가능하지않습니다."
IDS_UNKNOWN_FEATURE_s,		"%s의 알수 없는 특징"
IDS_FILE_NOT_OVERWRITTEN_s,	"파일 %s' 는 존재하므로, 덮어 쓸 수 없습니다."
IDS_SAVE_GROUP_AS_s,		"`%s를 다른 이름으로 저장해야 원래 파일을 덮어 쓰는 걸 막을 수 있습니다."
IDS_NO_HOT_KEY,			"없음"
IDS_ALL_FILES,			"모든 파일 (*.*)"
IDS_PROGRAMS,			"풀그림"
IDS_LIBRARIES_DLL,		"라이브러리 파일(*.dll)"
IDS_SYMBOL_FILES,		"아이콘 파일"
IDS_SYMBOLS_ICO,		"아이콘 (*.ico)"
}
