/**************************************************************
 *
 * 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.
 *
 *************************************************************/



#include "Bitmaps.hrc"

Image IMG_TYPE_COLUMN
{
	ImageBitmap = Bitmap {File = "typecolumn_16.png" ;} ;
};
Image IMG_TYPE_BAR
{
	ImageBitmap = Bitmap {File = "typebar_16.png " ;} ;
};
Image IMG_TYPE_PIE
{
	ImageBitmap = Bitmap {File = "typepie_16.png" ;} ;
};
Image IMG_TYPE_LINE
{
	ImageBitmap = Bitmap {File = "typepointline_16.png" ;} ;
};
Image IMG_TYPE_XY
{
	ImageBitmap = Bitmap {File = "typexy_16.png" ;} ;
};
Image IMG_TYPE_AREA
{
	ImageBitmap = Bitmap {File = "typearea_16.png" ;} ;
};
Image IMG_TYPE_NET
{
	ImageBitmap = Bitmap {File = "typenet_16.png" ;} ;
};
Image IMG_TYPE_STOCK
{
	ImageBitmap = Bitmap {File = "typestock_16.png" ;} ;
};
Image IMG_TYPE_COLUMN_LINE
{
	ImageBitmap = Bitmap {File = "typecolumnline_16.png" ;} ;
};
Image IMG_TYPE_BUBBLE
{
	ImageBitmap = Bitmap {File = "typebubble_16.png" ;} ;
};
Bitmap BMP_BUBBLE_1
{
	File = "bubble_52x60.png" ;
};
Bitmap BMP_AREAS_2D
{
	File = "areas_52x60.png" ;
};
Bitmap BMP_AREAS_2D_1
{
	File = "areaspiled_52x60.png" ;
};
Bitmap BMP_AREAS_2D_3
{
	File = "areasfull_52x60.png" ;
};
Bitmap BMP_AREAS_3D
{
	File = "areaspiled3d_52x60.png" ;
};
Bitmap BMP_AREAS_3D_1
{
	File = "areas3d_52x60.png" ;
};
Bitmap BMP_AREAS_3D_2
{
	File = "areasfull3d_52x60.png" ;
};
//---------------------
Bitmap BMP_BARS_2D_1
{
	File = "bar_52x60.png" ;
};
Bitmap BMP_BARS_2D_2
{
	File = "barstack_52x60.png" ;
};
Bitmap BMP_BARS_2D_3
{
	File = "barpercent_52x60.png" ;
};
Bitmap BMP_BARS_3D
{
	File = "bar3ddeep_52x60.png" ;
};
Bitmap BMP_BARS_3D_1
{
	File = "bar3d_52x60.png" ;
};
Bitmap BMP_BARS_3D_2
{
	File = "barstack3d_52x60.png" ;
};
Bitmap BMP_BARS_3D_3
{
	File = "barpercent3d_52x60.png" ;
};
//---------------------
Bitmap BMP_CIRCLES_2D
{
	File = "pie_52x60.png" ;
};
Bitmap BMP_CIRCLES_2D_EXPLODED
{
	File = "pieexploded_52x60.png" ;
};
Bitmap BMP_CIRCLES_3D
{
	File = "pie3d_52x60.png" ;
};
Bitmap BMP_CIRCLES_3D_EXPLODED
{
	File = "pie3dexploded_52x60.png" ;
};
//---------------------
Bitmap BMP_DONUT_2D
{
	File = "donut_52x60.png" ;
};
Bitmap BMP_DONUT_2D_EXPLODED
{
	File = "donutexploded_52x60.png" ;
};
Bitmap BMP_DONUT_3D
{
	File = "donut3d_52x60.png" ;
};
Bitmap BMP_DONUT_3D_EXPLODED
{
	File = "donut3dexploded_52x60.png" ;
};
//---------------------
Bitmap BMP_COLUMNS_2D_1
{
	File = "columns_52x60.png" ;
};
Bitmap BMP_COLUMNS_2D_2
{
	File = "columnstack_52x60.png" ;
};
Bitmap BMP_COLUMNS_2D_3
{
	File = "columnpercent_52x60.png" ;
};
Bitmap BMP_COLUMN_LINE
{
	File = "columnline_52x60.png" ;
};
Bitmap BMP_COLUMN_LINE_STACKED
{
	File = "columnstackline_52x60.png" ;
};
//---------------------
Bitmap BMP_COLUMNS_3D
{
	File = "columns3ddeep_52x60.png" ;
};
Bitmap BMP_COLUMNS_3D_1
{
	File = "columns3d_52x60.png" ;
};
Bitmap BMP_COLUMNS_3D_2
{
	File = "columnstack3d_52x60.png" ;
};
Bitmap BMP_COLUMNS_3D_3
{
	File = "columnpercent3d_52x60.png" ;
};
//---------------------
Bitmap BMP_KEGELQ_3D_1
{
	File = "conehori_52x60.png" ;
};
Bitmap BMP_KEGELQ_3D_2
{
	File = "conehoristack_52x60.png" ;
};
Bitmap BMP_KEGELQ_3D_3
{
	File = "conehoripercent_52x60.png" ;
};
Bitmap BMP_KEGELQ_3D_4
{
	File = "conehorideep_52x60.png" ;
};
Bitmap BMP_KEGEL_3D_1
{
	File = "cone_52x60.png" ;
};
Bitmap BMP_KEGEL_3D_2
{
	File = "conestack_52x60.png" ;
};
Bitmap BMP_KEGEL_3D_3
{
	File = "conepercent_52x60.png" ;
};
Bitmap BMP_KEGEL_3D_4
{
	File = "conedeep_52x60.png" ;
};
//---------------------
Bitmap BMP_POINTS_XVALUES
{
	File = "valueaxisdirectpoints_52x60.png" ;
};
Bitmap BMP_POINTS_XCATEGORY
{
	File = "nostackdirectpoints_52x60.png" ;
};
Bitmap BMP_POINTS_STACKED
{
	File = "stackdirectpoints_52x60.png" ;
};
//---------------------

Bitmap BMP_LINE_P_XVALUES
{
	File = "valueaxisdirectboth_52x60.png" ;
};
Bitmap BMP_LINE_O_XVALUES
{
	File = "valueaxisdirectlines_52x60.png" ;
};
Bitmap BMP_LINE3D_XVALUES
{
	File = "valueaxisdirect3d_52x60.png" ;
};


Bitmap BMP_LINE_P_XCATEGORY
{
	File = "nostackdirectboth_52x60.png" ;
};
Bitmap BMP_LINE_O_XCATEGORY
{
	File = "nostackdirectlines_52x60.png" ;
};
Bitmap BMP_LINE3D_XCATEGORY
{
	File = "nostackdirect3d_52x60.png" ;
};


Bitmap BMP_LINE_P_STACKED
{
	File = "stackdirectboth_52x60.png" ;
};
Bitmap BMP_LINE_O_STACKED
{
	File = "stackdirectlines_52x60.png" ;
};
Bitmap BMP_LINE3D_STACKED
{
	File = "stackdirect3d_52x60.png" ;
};

//---------------------
Bitmap BMP_LINE_P_XVALUES_SMOOTH
{
	File = "valueaxissmoothboth_52x60.png" ;
};
Bitmap BMP_LINE_O_XVALUES_SMOOTH
{
	File = "valueaxissmoothlines_52x60.png" ;
};
Bitmap BMP_LINE3D_XVALUES_SMOOTH
{
	File = "valueaxissmooth3d_52x60.png" ;
};
Bitmap BMP_LINE_P_XCATEGORY_SMOOTH
{
	File = "nostacksmoothboth_52x60.png" ;
};
Bitmap BMP_LINE_O_XCATEGORY_SMOOTH
{
	File = "nostacksmoothlines_52x60.png" ;
};
Bitmap BMP_LINE3D_XCATEGORY_SMOOTH
{
	File = "nostacksmooth3d_52x60.png" ;
};
Bitmap BMP_LINE_P_STACKED_SMOOTH
{
	File = "stacksmoothboth_52x60.png" ;
};
Bitmap BMP_LINE_O_STACKED_SMOOTH
{
	File = "stacksmoothlines_52x60.png" ;
};
Bitmap BMP_LINE3D_STACKED_SMOOTH
{
	File = "stacksmooth3d_52x60.png" ;
};
//---------------------
Bitmap BMP_NET
{
	File = "net_52x60.png" ;
};
Bitmap BMP_NET_STACK
{
	File = "netstack_52x60.png" ;
};
Bitmap BMP_NET_SYMB
{
	File = "netpoint_52x60.png" ;
};
Bitmap BMP_NET_SYMB_STACK
{
	File = "netpointstack_52x60.png" ;
};
Bitmap BMP_NET_LINESYMB
{
	File = "netlinepoint_52x60.png" ;
};
Bitmap BMP_NET_LINESYMB_STACK
{
	File = "netlinepointstack_52x60.png" ;
};
Bitmap BMP_NET_FILL
{
	File = "netfill_52x60.png" ;
};
Bitmap BMP_NET_FILL_STACK
{
	File = "netstackfill_52x60.png" ;
};
//---------------------
Bitmap BMP_PYRAMIDQ_3D_1
{
	File = "pyramindhori_52x60.png" ;
};
Bitmap BMP_PYRAMIDQ_3D_2
{
	File = "pyramindhoristack_52x60.png" ;
};
Bitmap BMP_PYRAMIDQ_3D_3
{
	File = "pyramindhoripercent_52x60.png" ;
};
Bitmap BMP_PYRAMIDQ_3D_4
{
	File = "pyramindhorideep_52x60.png" ;
};
Bitmap BMP_PYRAMID_3D_1
{
	File = "pyramind_52x60.png" ;
};
Bitmap BMP_PYRAMID_3D_2
{
	File = "pyramindstack_52x60.png" ;
};
Bitmap BMP_PYRAMID_3D_3
{
	File = "pyramindpercent_52x60.png" ;
};
Bitmap BMP_PYRAMID_3D_4
{
	File = "pyraminddeep_52x60.png" ;
};
//---------------------
Bitmap BMP_ROEHRE_3D_1
{
	File = "cylinderhori_52x60.png" ;
};
Bitmap BMP_ROEHRE_3D_2
{
	File = "cylinderhoristack_52x60.png" ;
};
Bitmap BMP_ROEHRE_3D_3
{
	File = "cylinderhoriprocent_52x60.png" ;
};
Bitmap BMP_ROEHRE_3D_4
{
	File = "cylinderhorideep_52x60.png" ;
};
//---------------------
Bitmap BMP_SAEULE_3D_1
{
	File = "cylinder_52x60.png" ;
};
Bitmap BMP_SAEULE_3D_2
{
	File = "cylinderstack_52x60.png" ;
};
Bitmap BMP_SAEULE_3D_3
{
	File = "cylinderpercent_52x60.png" ;
};
Bitmap BMP_SAEULE_3D_4
{
	File = "cylinderdeep_52x60.png" ;
};
//---------------------
Bitmap BMP_STOCK_1
{
	File = "stock_52x60.png" ;
};
Bitmap BMP_STOCK_2
{
	File = "stockblock_52x60.png" ;
};
Bitmap BMP_STOCK_3
{
	File = "stockcolumns_52x60.png" ;
};
Bitmap BMP_STOCK_4
{
	File = "stockcolumnsattach_52x60.png" ;
};
//---------------------
//error indicator
Image BMP_INDICATE_BOTH_VERTI
{
	ImageBitmap = Bitmap
	{
		File = "errorbothverti_30.png" ;
	};
};
Image BMP_INDICATE_DOWN
{
	ImageBitmap = Bitmap
	{
		File = "errordown_30.png" ;
	};
};
Image BMP_INDICATE_UP
{
	ImageBitmap = Bitmap
	{
		File = "errorup_30.png" ;
	};
};
Image BMP_INDICATE_BOTH_HORI
{
	ImageBitmap = Bitmap
	{
		File = "errorbothhori_30.png" ;
	};
};
Image BMP_INDICATE_RIGHT
{
	ImageBitmap = Bitmap
	{
		File = "errorright_30.png" ;
	};
};
Image BMP_INDICATE_LEFT
{
	ImageBitmap = Bitmap
	{
		File = "errorleft_30.png" ;
	};
};

//---------------------
//regression curves
Image BMP_REGRESSION_NONE
{
	ImageBitmap = Bitmap
	{
		File = "regno.png" ;
	};
};
Image BMP_REGRESSION_LINEAR
{
	ImageBitmap = Bitmap
	{
		File = "reglin.png" ;
	};
};
Image BMP_REGRESSION_LOG
{
	ImageBitmap = Bitmap
	{
		File = "reglog.png" ;
	};
};
Image BMP_REGRESSION_EXP
{
	ImageBitmap = Bitmap
	{
		File = "regexp.png" ;
	};
};
Image BMP_REGRESSION_POWER
{
	ImageBitmap = Bitmap
	{
		File = "regpow.png" ;
	};
};
//---------------------
Image IMG_SELECTRANGE
{
	ImageBitmap = Bitmap
	{
		File = "selectrange.png" ;
	};
};

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