/*
 * Top level resource file for Common Dialogs
 *
 */

#include "winuser.h"
#include "winnls.h"
#include "shlobj.h"

/*--------------------- FIXME --------------------------
 *
 * These must be seperated into the language files
 * and translated. The language 0,0 is a hack to get it
 * loaded properly for all languages by pretending that
 * they are neutral.
 */

LANGUAGE 0,0

MENU_001 MENU DISCARDABLE
BEGIN
	MENUITEM "Lar&ge Icons",	FCIDM_SHVIEW_BIGICON
	MENUITEM "S&mall Icons",	FCIDM_SHVIEW_SMALLICON
	MENUITEM "&List",		FCIDM_SHVIEW_LISTVIEW
	MENUITEM "&Details",		FCIDM_SHVIEW_REPORTVIEW
END

MENU_002 MENU DISCARDABLE
BEGIN
	POPUP""
	BEGIN
	  POPUP "&View"
	  BEGIN
	    MENUITEM "Lar&ge Icons",	FCIDM_SHVIEW_BIGICON
	    MENUITEM "S&mall Icons",	FCIDM_SHVIEW_SMALLICON
	    MENUITEM "&List",		FCIDM_SHVIEW_LISTVIEW
	    MENUITEM "&Details",	FCIDM_SHVIEW_REPORTVIEW
	  END
	  MENUITEM SEPARATOR
	  POPUP "Arrange &Icons"
	  BEGIN
	    MENUITEM "&Auto Arrange",	FCIDM_SHVIEW_AUTOARRANGE
	  END
	  MENUITEM "Lin&e up Icons",	FCIDM_SHVIEW_SNAPTOGRID
	END
END

SHBRSFORFOLDER_MSGBOX DIALOG 15, 40, 128, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Choose a Directory:"
FONT 8, "Helv"
{
 DEFPUSHBUTTON "OK", 1, 4, 132, 50, 12
 PUSHBUTTON "Cancel", 2, 58, 132, 50, 12
 CONTROL "Tree1",99,"SysTreeView32",
 	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP, 
	4, 4, 120, 120
}

/*--------------------- END FIXME ------------------------*/

/*
 * Everything that does not depend on language,
 * like textless bitmaps etc, go into the
 * neutral language. This will prevent them from
 * being duplicated for each language.
 */
#include "shell32_xx.rc"

/*
 * Everything specific to any language goes
 * in one of the specific files.
 * Note that you can and may override resources
 * which also have a neutral version. This is to
 * get localized bitmaps for example.
 */
#include "shell32_Ca.rc"
#include "shell32_Cs.rc"
#include "shell32_Da.rc"
#include "shell32_De.rc"
#include "shell32_En.rc"
#include "shell32_Eo.rc"
#include "shell32_Es.rc"
#include "shell32_Fi.rc"
#include "shell32_Fr.rc"
#include "shell32_Hu.rc"
#include "shell32_It.rc"
#include "shell32_Ko.rc"
#include "shell32_Nl.rc"
#include "shell32_No.rc"
#include "shell32_Pl.rc"
#include "shell32_Pt.rc"
#include "shell32_Ru.rc"
#include "shell32_Sv.rc"
#include "shell32_Wa.rc"
