/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
DLG_ACMFORMATCHOOSE_ID DIALOG DISCARDABLE 10,20,225,100
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Sound Selection"
FONT 8,"MS Shell Dlg"
BEGIN

    LTEXT "&Name:",-1,5,5,115,8,NOT WS_GROUP

    COMBOBOX IDD_ACMFORMATCHOOSE_CMB_CUSTOM,5,15,115,60,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP

    PUSHBUTTON "&Save As...",IDD_ACMFORMATCHOOSE_BTN_SETNAME,125,14,45,14
    PUSHBUTTON "&Remove",IDD_ACMFORMATCHOOSE_BTN_DELNAME,175,14,45,14

    LTEXT "&Format:",-1,5,41,44,8,NOT WS_GROUP

    COMBOBOX IDD_ACMFORMATCHOOSE_CMB_FORMATTAG,50,39,170,60,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP

    LTEXT "&Attributes:",-1,5,59,44,8,NOT WS_GROUP

    COMBOBOX IDD_ACMFORMATCHOOSE_CMB_FORMAT,50,57,170,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |
                    CBS_OWNERDRAWFIXED | CBS_HASSTRINGS

    DEFPUSHBUTTON "OK",IDOK,48,80,40,14
    PUSHBUTTON "Cancel",IDCANCEL,92,80,40,14
    PUSHBUTTON "&Help",IDD_ACMFORMATCHOOSE_BTN_HELP,136,80,40,14

END

DLG_ACMFILTERCHOOSE_ID DIALOG DISCARDABLE 10,20,225,100
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Filter Selection"
FONT 8,"MS Shell Dlg"
BEGIN

    LTEXT "&Name:",-1,5,5,115,8,NOT WS_GROUP

    COMBOBOX IDD_ACMFILTERCHOOSE_CMB_CUSTOM,5,15,115,60,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP

    PUSHBUTTON "&Save As...",IDD_ACMFILTERCHOOSE_BTN_SETNAME,125,14,45,14
    PUSHBUTTON "&Remove",IDD_ACMFILTERCHOOSE_BTN_DELNAME,175,14,45,14

    LTEXT "&Filter:",-1,5,41,44,8,NOT WS_GROUP

    COMBOBOX IDD_ACMFILTERCHOOSE_CMB_FILTERTAG,50,39,170,60,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP

    LTEXT "&Attributes:",-1,5,59,44,8,NOT WS_GROUP

    COMBOBOX IDD_ACMFILTERCHOOSE_CMB_FILTER,50,57,170,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP |
                    CBS_OWNERDRAWFIXED | CBS_HASSTRINGS

    DEFPUSHBUTTON "OK",IDOK,48,80,40,14
    PUSHBUTTON "Cancel",IDCANCEL,92,80,40,14
    PUSHBUTTON "&Help",IDD_ACMFILTERCHOOSE_BTN_HELP,136,80,40,14

END
