/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



 // includes ------------------------------------------------------------------

#include "templwin.hrc"
#include <svtools/controldims.hrc>
#include <svtools/helpid.hrc>
#include <svtools/svtools.hrc>

// Magenta and Grey as mask colors
#define MASK_COL_MAGENTA	Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };

Control CTRL_FILEVIEW
{
	Pos = MAP_APPFONT ( 0 , 0 ) ;
	Size = MAP_APPFONT ( 200 , 180 ) ;
};

String STR_SVT_NEWDOC
{
	Text [ en-US ] = "New Document";
};

Image IMG_SVT_NEWDOC
{
	ImageBitmap = Bitmap { File = "new_doc.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

Image IMG_SVT_NEWDOC_HC
{
	ImageBitmap = Bitmap { File = "new_doc_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

String STR_SVT_MYDOCS
{
	Text [ en-US ] = "My Documents";
};

Image IMG_SVT_MYDOCS
{
	ImageBitmap = Bitmap { File = "my_docs.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

Image IMG_SVT_MYDOCS_HC
{
	ImageBitmap = Bitmap { File = "my_docs_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

String STR_SVT_TEMPLATES
{
	Text [ en-US ] = "Templates";
};

Image IMG_SVT_TEMPLATES
{
	ImageBitmap = Bitmap { File = "template.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

Image IMG_SVT_TEMPLATES_HC
{
	ImageBitmap = Bitmap { File = "template_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

String STR_SVT_SAMPLES
{
	Text [ en-US ] = "Samples";
};

Image IMG_SVT_SAMPLES
{
	ImageBitmap = Bitmap { File = "samples.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

Image IMG_SVT_SAMPLES_HC
{
	ImageBitmap = Bitmap { File = "samples_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

ToolBox TB_SVT_FILEVIEW
{
	Pos = MAP_APPFONT ( 0 , 0 ) ;
	Size = MAP_APPFONT ( 100 , 12 ) ;
	ItemList =
	{
		ToolBoxItem
		{
			Identifier = TI_DOCTEMPLATE_BACK;
			HelpId = HID_TEMPLATEDLG_TB_BACK;
			Text [ en-US ] = "Back" ;
		};
		ToolBoxItem
		{
			Identifier = TI_DOCTEMPLATE_PREV;
			HelpId = HID_TEMPLATEDLG_TB_PREV;
			Text [ en-US ] = "Up One Level" ;
		};
		ToolBoxItem
		{
			Type = TOOLBOXITEM_SEPARATOR ;
		};
		ToolBoxItem
		{
			Identifier = TI_DOCTEMPLATE_PRINT;
			HelpId = HID_TEMPLATEDLG_TB_PRINT;
			Text [ en-US ] = "Print" ;
		};
	};
};

Image IMG_SVT_DOCTEMPLATE_BACK_SMALL
{
	ImageBitmap = Bitmap { File = "back_small.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_BACK_LARGE
{
	ImageBitmap = Bitmap { File = "back_large.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_PREV_SMALL
{
	ImageBitmap = Bitmap { File = "up_small.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_PREV_LARGE
{
	ImageBitmap = Bitmap { File = "up_large.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_PRINT_SMALL
{
	ImageBitmap = Bitmap { File = "sc05509.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_PRINT_LARGE
{
	ImageBitmap = Bitmap { File = "lc05509.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_BACK_SMALL
{
	ImageBitmap = Bitmap { File = "back_small_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_BACK_LARGE
{
	ImageBitmap = Bitmap { File = "back_large_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_PREV_SMALL
{
	ImageBitmap = Bitmap { File = "up_small_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_PREV_LARGE
{
	ImageBitmap = Bitmap { File = "up_large_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_PRINT_SMALL
{
	ImageBitmap = Bitmap { File = "sch05509.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_PRINT_LARGE
{
	ImageBitmap = Bitmap { File = "lch05509.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

ToolBox TB_SVT_FRAMEWIN
{
	Pos = MAP_APPFONT ( 0 , 0 ) ;
	Size = MAP_APPFONT ( 100 , 12 ) ;
	ItemList =
	{
		ToolBoxItem
		{
			RadioCheck = TRUE;
			AutoCheck = TRUE;
			Identifier = TI_DOCTEMPLATE_DOCINFO;
			HelpId = HID_TEMPLATEDLG_TB_DOCINFO;
			Text [ en-US ] = "Document Properties" ;
		};
		ToolBoxItem
		{
			RadioCheck = TRUE;
			AutoCheck = TRUE;
			Identifier = TI_DOCTEMPLATE_PREVIEW;
			HelpId = HID_TEMPLATEDLG_TB_PREVIEW;
			Text [ en-US ] = "Preview" ;
		};
	};
};

Image IMG_SVT_DOCTEMPLATE_DOCINFO_SMALL
{
	ImageBitmap = Bitmap { File = "info_small.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_DOCINFO_LARGE
{
	ImageBitmap = Bitmap { File = "info_large.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_PREVIEW_SMALL
{
	ImageBitmap = Bitmap { File = "preview_small.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPLATE_PREVIEW_LARGE
{
	ImageBitmap = Bitmap { File = "preview_large.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_DOCINFO_SMALL
{
	ImageBitmap = Bitmap { File = "info_small_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_DOCINFO_LARGE
{
	ImageBitmap = Bitmap { File = "info_large_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_PREVIEW_SMALL
{
	ImageBitmap = Bitmap { File = "preview_small_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};
Image IMG_SVT_DOCTEMPL_HC_PREVIEW_LARGE
{
	ImageBitmap = Bitmap { File = "preview_large_h.bmp" ; };
	MaskColor = MASK_COL_MAGENTA
};

ModalDialog DLG_DOCTEMPLATE
{
	HelpId = HID_TEMPLATEDLG_DIALOG ;
	OutputSize = TRUE ;
	SVLook = TRUE ;
    Size = MAP_APPFONT( 320, 250 );
	Text [ en-US ] = "Templates and Documents" ;
	Moveable = TRUE ;
    FixedText FT_DOCTEMPLATE_LINK
    {
        Left = TRUE ;
        Pos = MAP_APPFONT ( 6 , 208 ) ;
        Size = MAP_APPFONT ( 311 , RSC_CD_FIXEDTEXT_HEIGHT ) ;
        Text [ en-US ] = "~Get more templates online...";
    };
	FixedLine FL_DOCTEMPLATE
	{
        Pos = MAP_APPFONT( 0, 219 );
        Size = MAP_APPFONT( 320, 8 );
	};
	PushButton BTN_DOCTEMPLATE_MANAGE
	{
	    HelpID = "svtools:PushButton:DLG_DOCTEMPLATE:BTN_DOCTEMPLATE_MANAGE";
        Pos = MAP_APPFONT( 6, 230 );
		Size = MAP_APPFONT( 50, 14 );
		Text [ en-US ] = "Organi~ze...";
	};
	PushButton BTN_DOCTEMPLATE_EDIT
	{
	    HelpID = "svtools:PushButton:DLG_DOCTEMPLATE:BTN_DOCTEMPLATE_EDIT";
        Pos = MAP_APPFONT( 59, 230 );
		Size = MAP_APPFONT( 50, 14 );
		Text [ en-US ] = "~Edit";
	};
	OKButton BTN_DOCTEMPLATE_OPEN
	{
        Pos = MAP_APPFONT( 155, 230 );
		Size = MAP_APPFONT( 50, 14 );
		DefButton = TRUE;
		Text [ en-US ] = "~Open";
	};
	CancelButton BTN_DOCTEMPLATE_CANCEL
	{
        Pos = MAP_APPFONT( 208, 230 );
		Size = MAP_APPFONT( 50, 14 );
	};
	HelpButton BTN_DOCTEMPLATE_HELP
	{
        Pos = MAP_APPFONT( 264, 230 );
		Size = MAP_APPFONT( 50, 14 );
	};
};

StringArray STRARY_SVT_DOCINFO
{
	ItemList [ en-US ] =
	{
		< "Title" ; DI_TITLE ; > ;
		< "By" ; DI_FROM ; > ;
		< "Date" ; DI_DATE ; > ;
		< "Keywords" ; DI_KEYWORDS ; > ;
		< "Description" ; DI_DESCRIPTION ; > ;
		< "Type" ; DI_MIMETYPE ; > ;
		< "Modified on" ; DI_MODIFIEDDATE ; > ;
		< "Modified by" ; DI_MODIFIEDBY ; > ;
		< "Printed on" ; DI_PRINTDATE ; > ;
		< "Printed by" ; DI_PRINTBY ; > ;
		< "Subject" ; DI_THEME ; > ;
		< "Size" ; DI_SIZE ; > ;
	};
	};

String STR_SVT_NEWDOC_HELP
{
	Text [ en-US ] = "Click here to create new documents.";
};
String STR_SVT_MYDOCS_HELP
{
	Text [ en-US ] = "Contains your letters, reports and other documents";
};
String STR_SVT_TEMPLATES_HELP
{
	Text [ en-US ] = "Contains templates for creating new documents";
};
String STR_SVT_SAMPLES_HELP
{
	Text [ en-US ] = "Contains a selection of sample letters, reports and other documents";
};





















