/**************************************************************
 *
 * 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 <svtools/svtools.hrc>
#include <svtools/imagemgr.hrc>

// images ********************************************************************

#define X_IMAGE_LIST \
		IMG_IMPRESS ; \
		IMG_CALC ; \
		IMG_CALCTEMPLATE ; \
		IMG_CHART ; \
		IMG_IMPRESSTEMPLATE ; \
		IMG_HTML ; \
		IMG_MATH ; \
		IMG_WRITER ; \
		IMG_WRITERTEMPLATE ; \
		IMG_MACROLIB ; \
		IMG_GLOBAL_DOC ; \
		IMG_DRAW ; \
		IMG_DRAWTEMPLATE ; \
		IMG_NEWFROMTEMPLATE ; \
		IMG_DATABASE ; \
		IMG_WORKPLACE ; \
		IMG_BITMAP ; \
		IMG_EXCEL ; \
		IMG_EXCELTEMPLATE ; \
		IMG_FTPSERVER ; \
		IMG_GALLERY ; \
		IMG_GALLERYTHEME ; \
		IMG_GIF ; \
		IMG_HELP ; \
		IMG_HTML ; \
		IMG_JPG ; \
		IMG_LINK ; \
		IMG_LOTUS ; \
		IMG_MATHTEMPLATE ; \
		IMG_FILE ; \
		IMG_APP ; \
		IMG_PCD ; \
		IMG_PCT ; \
		IMG_PCX ; \
		IMG_SIM ; \
		IMG_TEXTFILE ; \
		IMG_SVHELP ; \
		IMG_TIFF ; \
		IMG_URL ; \
		IMG_WMF ; \
		IMG_WORD ; \
		IMG_FIXEDDEV ; \
		IMG_REMOVEABLEDEV ; \
		IMG_CDROMDEV ; \
		IMG_NETWORKDEV ; \
		IMG_RAMDEV ; \
		IMG_TABLEFOLDER ; \
		IMG_TABLE ; \
		IMG_FOLDER ; \
		IMG_EXPANDEDFOLDER ; \
		IMG_XXX ; \
		IMG_GALLERYIMPORT ; \
		IMG_QUERYFOLDER ; \
		IMG_QUERY ; \
		IMG_FORM ; \
		IMG_FORMFOLDER ; \
		IMG_REPORT ; \
		IMG_REPORTFOLDER ; \
		IMG_OTHERS ; \
		IMG_DXF ; \
		IMG_MET ; \
		IMG_PNG ; \
		IMG_SGF ; \
		IMG_SGV ; \
		IMG_SVM ; \
		IMG_TASK ; \
		IMG_APPOINTMENT ; \
		IMG_RELATION ; \
		IMG_IMPRESSPACKED ; \
		IMG_POWERPOINT ; \
		IMG_POWERPOINTTEMPLATE ; \
		IMG_OO_DATABASE_DOC ; \
		IMG_OO_DRAW_DOC ; \
		IMG_OO_MATH_DOC ; \
		IMG_OO_GLOBAL_DOC ; \
		IMG_OO_IMPRESS_DOC ; \
		IMG_OO_CALC_DOC ; \
		IMG_OO_WRITER_DOC ; \
		IMG_OO_DRAW_TEMPLATE ; \
		IMG_OO_IMPRESS_TEMPLATE ; \
		IMG_OO_CALC_TEMPLATE ; \
		IMG_OO_WRITER_TEMPLATE ; \
		IMG_EXTENSION ;

ImageList RID_SVTOOLS_IMAGELIST_BIG
{
	Prefix = "lx" ;
	MaskColor = Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
	IdList =
	{
		X_IMAGE_LIST
	};
	IdCount =
	{
		83 ;
	};
};

ImageList RID_SVTOOLS_IMAGELIST_SMALL
{
	Prefix = "sx" ;
	MaskColor = Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
	IdList =
	{
		X_IMAGE_LIST
	};
	IdCount =
	{
		83 ;
	};
};

ImageList RID_SVTOOLS_IMAGELIST_BIG_HIGHCONTRAST
{
	Prefix = "lxh" ;
	MaskColor = Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
	IdList =
	{
		X_IMAGE_LIST
	};
	IdCount =
	{
		83 ;
	};
};

ImageList RID_SVTOOLS_IMAGELIST_SMALL_HIGHCONTRAST
{
	Prefix = "sxh" ;
	MaskColor = Color { Red = 0xFFFF ; Green = 0x0000 ; Blue = 0xFFFF ; };
	IdList =
	{
		X_IMAGE_LIST
	};
	IdCount =
	{
		83 ;
	};
};

Bitmap BMP_PLUGIN
{
	File = "plugin.png" ;
};

// description strings

String STR_DESCRIPTION_SOURCEFILE
{
	Text [ en-US ] = "Source code" ;
};
String STR_DESCRIPTION_BOOKMARKFILE
{
	Text [ en-US ] = "Bookmark file" ;
};
String STR_DESCRIPTION_GRAPHIC_DOC
{
	Text [ en-US ] = "Graphics" ;
};
String STR_DESCRIPTION_CFGFILE
{
	Text [ en-US ] = "Configuration file" ;
};
String STR_DESCRIPTION_APPLICATION
{
	Text [ en-US ] = "Application" ;
};
String STR_DESCRIPTION_DATABASE_TABLE
{
	Text [ en-US ] = "Database table" ;
};
String STR_DESCRIPTION_SYSFILE
{
	Text [ en-US ] = "System file" ;
};
String STR_DESCRIPTION_WORD_DOC
{
	Text [ en-US ] = "MS Word document" ;
};
String STR_DESCRIPTION_HELP_DOC
{
	Text [ en-US ] = "Help file" ;
};
String STR_DESCRIPTION_HTMLFILE
{
	Text [ en-US ] = "HTML document" ;
};
String STR_DESCRIPTION_ARCHIVFILE
{
	Text [ en-US ] = "Archive file" ;
};
String STR_DESCRIPTION_LOGFILE
{
	Text [ en-US ] = "Log file" ;
};
String STR_DESCRIPTION_SMATH_DOC
{
	Text = "StarMath 2.0 - 5.0" ;
};
String STR_DESCRIPTION_SCHART_DOC
{
	Text = "StarChart 3.0 - 5.0" ;
};
String STR_DESCRIPTION_SDRAW_DOC
{
	Text = "StarDraw 3.0 / 5.0 (StarImpress)" ;
};

String STR_DESCRIPTION_SDATABASE_DOC
{
	Text [ en-US ] = "%STAROFFICE Database" ;
};

String STR_DESCRIPTION_SCALC_DOC
{
	Text = "StarCalc 3.0 - 5.0" ;
};
String STR_DESCRIPTION_SIMPRESS_DOC
{
	Text = "StarImpress 4.0 / 5.0" ;
};
String STR_DESCRIPTION_SWRITER_DOC
{
	Text = "StarWriter 3.0 - 5.0" ;
};
String STR_DESCRIPTION_GLOBALDOC
{
	Text [ en-US ] = "StarWriter 4.0 / 5.0 Master Document" ;
};
String STR_DESCRIPTION_SIMAGE_DOC
{
	Text [ en-US ] = "%STAROFFICE Image" ;
};
String STR_DESCRIPTION_TEXTFILE
{
	Text [ en-US ] = "Text file" ;
};
String STR_DESCRIPTION_LINK
{
	Text [ en-US ] = "Link" ;
};
String STR_DESCRIPTION_SOFFICE_TEMPLATE_DOC
{
	Text [ en-US ] = "%STAROFFICE 3.0 - 5.0 Template" ;
};
String STR_DESCRIPTION_EXCEL_DOC
{
	Text [ en-US ] = "MS Excel document" ;
};
String STR_DESCRIPTION_EXCEL_TEMPLATE_DOC
{
	Text [ en-US ] = "MS Excel template" ;
};
String STR_DESCRIPTION_BATCHFILE
{
	Text [ en-US ] = "Batch file" ;
};
String STR_DESCRIPTION_FILE
{
	Text [ en-US ] = "File" ;
};
String STR_DESCRIPTION_FOLDER
{
	Text [ en-US ] = "Folder" ;
};
String STR_DESCRIPTION_FACTORY_WRITER
{
	Text [ en-US ] = "Text Document" ;
};
String STR_DESCRIPTION_FACTORY_CALC
{
	Text [ en-US ] = "Spreadsheet" ;
};
String STR_DESCRIPTION_FACTORY_IMPRESS
{
	Text [ en-US ] = "Presentation" ;
};
String STR_DESCRIPTION_FACTORY_DRAW
{
	Text [ en-US ] = "Drawing" ;
};
String STR_DESCRIPTION_FACTORY_WRITERWEB
{
	Text [ en-US ] = "HTML document" ;
};
String STR_DESCRIPTION_FACTORY_GLOBALDOC
{
	Text [ en-US ] = "Master document" ;
};
String STR_DESCRIPTION_FACTORY_MATH
{
	Text [ en-US ] = "Formula" ;
};
String STR_DESCRIPTION_FACTORY_DATABASE
{
	Text [ en-US ] = "Database" ;
};
String STR_DESCRIPTION_CALC_TEMPLATE
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Spreadsheet Template" ;
};
String STR_DESCRIPTION_DRAW_TEMPLATE
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Drawing Template" ;
};
String STR_DESCRIPTION_IMPRESS_TEMPLATE
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Presentation Template" ;
};
String STR_DESCRIPTION_WRITER_TEMPLATE
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Text Document Template" ;
};
String STR_DESCRIPTION_LOCALE_VOLUME
{
	Text [ en-US ] = "Local drive" ;
};
String STR_DESCRIPTION_FLOPPY_VOLUME
{
	Text [ en-US ] = "Disk drive" ;
};
String STR_DESCRIPTION_CDROM_VOLUME
{
	Text [ en-US ] = "CD-ROM drive" ;
};
String STR_DESCRIPTION_REMOTE_VOLUME
{
	Text [ en-US ] = "Network connection" ;
};
String STR_DESCRIPTION_POWERPOINT
{
	Text [ en-US ] = "MS PowerPoint Document" ;
};

String STR_DESCRIPTION_POWERPOINT_TEMPLATE
{
	Text [ en-US ] = "MS PowerPoint Template" ;
};

String STR_DESCRIPTION_POWERPOINT_SHOW
{
	Text [ en-US ] = "MS PowerPoint Show" ;
};

String STR_DESCRIPTION_SXMATH_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Formula" ;
};

String STR_DESCRIPTION_SXCHART_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Chart" ;
};

String STR_DESCRIPTION_SXDRAW_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Drawing" ;
};

String STR_DESCRIPTION_SXCALC_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Spreadsheet" ;
};

String STR_DESCRIPTION_SXIMPRESS_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Presentation" ;
};

String STR_DESCRIPTION_SXWRITER_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Text Document" ;
};

String STR_DESCRIPTION_SXGLOBAL_DOC
{
	Text [ en-US ] = "%PRODUCTXMLFILEFORMATNAME %PRODUCTXMLFILEFORMATVERSION Master Document" ;
};
String STR_DESCRIPTION_MATHML_DOC
{
	Text [ en-US ] = "MathML Document" ;
};

String STR_DESCRIPTION_OO_DATABASE_DOC
{
	Text [ en-US ] = "OpenDocument Database" ;
};
String STR_DESCRIPTION_OO_DRAW_DOC
{
	Text [ en-US ] = "OpenDocument Drawing" ;
};
String STR_DESCRIPTION_OO_MATH_DOC
{
	Text [ en-US ] = "OpenDocument Formula" ;
};
String STR_DESCRIPTION_OO_GLOBAL_DOC
{
	Text [ en-US ] = "OpenDocument Master Document" ;
};
String STR_DESCRIPTION_OO_IMPRESS_DOC
{
	Text [ en-US ] = "OpenDocument Presentation" ;
};
String STR_DESCRIPTION_OO_CALC_DOC
{
	Text [ en-US ] = "OpenDocument Spreadsheet" ;
};
String STR_DESCRIPTION_OO_WRITER_DOC
{
	Text [ en-US ] = "OpenDocument Text" ;
};
String STR_DESCRIPTION_OO_CALC_TEMPLATE
{
	Text [ en-US ] = "OpenDocument Spreadsheet Template" ;
};
String STR_DESCRIPTION_OO_DRAW_TEMPLATE
{
	Text [ en-US ] = "OpenDocument Drawing Template" ;
};
String STR_DESCRIPTION_OO_IMPRESS_TEMPLATE
{
	Text [ en-US ] = "OpenDocument Presentation Template" ;
};
String STR_DESCRIPTION_OO_WRITER_TEMPLATE
{
	Text [ en-US ] = "OpenDocument Text Template" ;
};

String STR_DESCRIPTION_EXTENSION
{
	Text [ en-US ] = "%PRODUCTNAME Extension" ;
};

// ********************************************************************** EOF
