/**************************************************************
 * 
 * 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" ;
};

