/**************************************************************
 *
 * 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 <sfx2/sfx.hrc>
#include <svx/globlmn.hrc>
#include "starmath.hrc"
#include "toolbox.hrc"

#define IMAGE_STDBTN_COLOR Color { Red = 0xff00; Green = 0x0000; Blue = 0xff00; }
#define IMAGE_STDBTN_COLOR_HC IMAGE_STDBTN_COLOR

FloatingWindow RID_TOOLBOXWINDOW
{
	HelpId = HID_SMA_OPERATOR_WIN ;
	Border = TRUE ;
	Moveable = TRUE ;
	Closeable = TRUE ;
	Hide = TRUE ;
	OutputSize = TRUE ;
	SVLook = TRUE ;
	Size = MAP_APPFONT ( 0, 0 ) ; // to be calculated programmatically
	Text [ en-US ] = "Elements" ;

	ToolBox TOOLBOX_CATALOG
	{
		// main menu of selection-window
		HelpId = HID_SMA_SELECTION_TBX ;
		Pos = MAP_APPFONT ( 0, 0 ) ;
		Size = MAP_APPFONT ( 65, 38 ) ;
		SVLook = TRUE ;
		LineCount = 2 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_UNBINOPS_CAT ;
				HelpId = HID_SMA_UNBINOPS_CAT ;
				Text [ en-US ] = "Unary/Binary Operators" ;
			};
			ToolBoxItem
			{
				Identifier = RID_RELATIONS_CAT ;
				HelpId = HID_SMA_RELATIONS_CAT ;
				Text [ en-US ] = "Relations" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SETOPERATIONS_CAT ;
				HelpId = HID_SMA_SETOPERATIONS_CAT ;
				Text [ en-US ] = "Set Operations" ;
			};
			ToolBoxItem
			{
				Identifier = RID_FUNCTIONS_CAT ;
				HelpId = HID_SMA_FUNCTIONS_CAT ;
				Text [ en-US ] = "Functions" ;
			};
			ToolBoxItem
			{
				Identifier = RID_OPERATORS_CAT ;
				HelpId = HID_SMA_OPERATORS_CAT ;
				Text [ en-US ] = "Operators" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_ATTRIBUTES_CAT ;
				HelpId = HID_SMA_ATTRIBUTES_CAT ;
				Text [ en-US ] = "Attributes" ;
			};
			ToolBoxItem
			{
				Identifier = RID_MISC_CAT ;
				HelpId = HID_SMA_MISC_CAT ;
				Text [ en-US ] = "Others" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_BRACKETS_CAT ;
				HelpId = HID_SMA_BRACKETS_CAT ;
				Text [ en-US ] = "Brackets" ;
			};
			ToolBoxItem
			{
				Identifier = RID_FORMAT_CAT ;
				HelpId = HID_SMA_FORMAT_CAT ;
				Text [ en-US ] = "Formats" ;
			};
		};
	};

	FixedLine FL_TOOLBOX_CAT_DELIM
	{
		Pos = MAP_APPFONT ( 0, 44 ) ;
		Size = MAP_APPFONT ( 65, 8 ) ;
	};

	ToolBox TOOLBOX_CAT_A
	{
		// unary/binary operators
		HelpId = HID_SMA_UNBINOPS_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 5 ;

		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_PLUSX ;
				HelpId = HID_SMA_PLUSX ;
				Text [ en-US ] = "+ Sign" ;
			};
			ToolBoxItem
			{
				Identifier = RID_MINUSX ;
				HelpId = HID_SMA_MINUSX ;
				Text [ en-US ] = "- Sign" ;
			};
			ToolBoxItem
			{
				Identifier = RID_PLUSMINUSX ;
				HelpId = HID_SMA_PLUSMINUSX ;
				Text [ en-US ] = "+- Sign" ;
			};
			ToolBoxItem
			{
				Identifier = RID_MINUSPLUSX ;
				HelpId = HID_SMA_MINUSPLUSX ;
				Text [ en-US ] = "-+ Sign" ;
			};
			ToolBoxItem
			{
				Identifier = RID_NEGX ;
				HelpId = HID_SMA_NEGX ;
				Text [ en-US ] = "Boolean NOT" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XPLUSY ;
				HelpId = HID_SMA_XPLUSY ;
				Text [ en-US ] = "Addition +" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XCDOTY ;
				HelpId = HID_SMA_XCDOTY ;
				Text [ en-US ] = "Multiplication (Dot )" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XTIMESY ;
				HelpId = HID_SMA_XTIMESY ;
				Text [ en-US ] = "Multiplication (x)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSYMTIMESY ;
				HelpId = HID_SMA_XSYMTIMESY ;
				Text [ en-US ] = "Multiplication (*)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XANDY ;
				HelpId = HID_SMA_XANDY ;
				Text [ en-US ] = "Boolean AND" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XMINUSY ;
				HelpId = HID_SMA_XMINUSY ;
				Text [ en-US ] = "Subtraction -" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XOVERY ;
				HelpId = HID_SMA_XOVERY ;
				Text [ en-US ] = "Division (Fraction)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XDIVY ;
				HelpId = HID_SMA_XDIVY ;
				Text [ en-US ] = "Division (÷)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSYMDIVIDEY ;
				HelpId = HID_SMA_XSYMDIVIDEY ;
				Text [ en-US ] = "Division (Slash)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XORY ;
				HelpId = HID_SMA_XORY ;
				Text [ en-US ] = "Boolean OR" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XCIRCY ;
				HelpId = HID_SMA_XCIRCY ;
				Text [ en-US ] = "Concatenate" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XWIDESLASHY ;
				HelpId = HID_SMA_XWIDESLASHY ;
				Text [ en-US ] = "Wide Slash" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XWIDEBSLASHY ;
				HelpId = HID_SMA_XWIDEBSLASHY ;
				Text [ en-US ] = "Wide Backslash" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_B
	{
		// relations
		HelpId = HID_SMA_RELATIONS_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 5 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_XEQY ;
				HelpId = HID_SMA_XEQY ;
				Text [ en-US ] = "Is Equal" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNEQY ;
				HelpId = HID_SMA_XNEQY ;
				Text [ en-US ] = "Is Not Equal" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XAPPROXY ;
				HelpId = HID_SMA_XAPPROXY ;
				Text [ en-US ] = "Is Approximately Equal" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XDIVIDESY ;
				HelpId = HID_SMA_XDIVIDESY ;
				Text [ en-US ] = "Divides" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNDIVIDESY ;
				HelpId = HID_SMA_XNDIVIDESY ;
				Text [ en-US ] = "Does Not Divide" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XLTY ;
				HelpId = HID_SMA_XLTY ;
				Text [ en-US ] = "Is Less Than" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XGTY ;
				HelpId = HID_SMA_XGTY ;
				Text [ en-US ] = "Is Greater Than" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSIMEQY ;
				HelpId = HID_SMA_XSIMEQY ;
				Text [ en-US ] = "Is Similar Or Equal" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XPARALLELY ;
				HelpId = HID_SMA_XPARALLELY ;
				Text [ en-US ] = "Is Parallel To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XORTHOY ;
				HelpId = HID_SMA_XORTHOY ;
				Text [ en-US ] = "Is Orthogonal To" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XLESLANTY ;
				HelpId = HID_SMA_XLESLANTY ;
				Text [ en-US ] = "Is Less Than Or Equal To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XGESLANTY ;
				HelpId = HID_SMA_XGESLANTY ;
				Text [ en-US ] = "Is Greater Than Or Equal To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSIMY ;
				HelpId = HID_SMA_XSIMY ;
				Text [ en-US ] = "Is Similar To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XEQUIVY ;
				HelpId = HID_SMA_XEQUIVY ;
				Text [ en-US ] = "Is Congruent To" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XLEY ;
				HelpId = HID_SMA_XLEY ;
				Text [ en-US ] = "Is Less Than Or Equal To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XGEY ;
				HelpId = HID_SMA_XGEY ;
				Text [ en-US ] = "Is Greater Than Or Equal To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XPROPY ;
				HelpId = HID_SMA_XPROPY ;
				Text [ en-US ] = "Is Proportional To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XTOWARDY ;
				HelpId = HID_SMA_XTOWARDY ;
				Text [ en-US ] = "Toward" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_DLARROW ;
				HelpId = HID_SMA_DLARROW ;
				Text [ en-US ] = "Double Arrow Left" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DLRARROW ;
				HelpId = HID_SMA_DLRARROW ;
				Text [ en-US ] = "Double Arrow Left And Right" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DRARROW ;
				HelpId = HID_SMA_DRARROW ;
				Text [ en-US ] = "Double Arrow Right" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_C
	{
		// set operations
		HelpId = HID_SMA_SETOPERATIONS_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 5 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_XINY ;
				HelpId = HID_SMA_XINY ;
				Text [ en-US ] = "Is In" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNOTINY ;
				HelpId = HID_SMA_XNOTINY ;
				Text [ en-US ] = "Is Not In" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XOWNSY ;
				HelpId = HID_SMA_XOWNSY ;
				Text [ en-US ] = "Owns" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_EMPTYSET ;
				HelpId = HID_SMA_EMPTYSET ;
				Text [ en-US ] = "Empty Set" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XINTERSECTIONY ;
				HelpId = HID_SMA_XINTERSECTIONY ;
				Text [ en-US ] = "Intersection" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XUNIONY ;
				HelpId = HID_SMA_XUNIONY ;
				Text [ en-US ] = "Union" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSETMINUSY ;
				HelpId = HID_SMA_XSETMINUSY ;
				Text [ en-US ] = "Difference" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSLASHY ;
				HelpId = HID_SMA_XSLASHY ;
				Text [ en-US ] = "Quotient Set" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ALEPH ;
				HelpId = HID_SMA_ALEPH ;
				Text [ en-US ] = "Aleph" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSUBSETY ;
				HelpId = HID_SMA_XSUBSETY ;
				Text [ en-US ] = "Subset" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSUBSETEQY ;
				HelpId = HID_SMA_XSUBSETEQY ;
				Text [ en-US ] = "Subset Or Equal To" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSUPSETY ;
				HelpId = HID_SMA_XSUPSETY ;
				Text [ en-US ] = "Superset" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XSUPSETEQY ;
				HelpId = HID_SMA_XSUPSETEQY ;
				Text [ en-US ] = "Superset Or Equal To" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNSUBSETY ;
				HelpId = HID_SMA_XNSUBSETY ;
				Text [ en-US ] = "Not Subset" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNSUBSETEQY ;
				HelpId = HID_SMA_XNSUBSETEQY ;
				Text [ en-US ] = "Not Subset Or Equal" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNSUPSETY ;
				HelpId = HID_SMA_XNSUPSETY ;
				Text [ en-US ] = "Not Superset" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XNSUPSETEQY ;
				HelpId = HID_SMA_XNSUPSETEQY ;
				Text [ en-US ] = "Not Superset Or Equal" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_SETN ;
				HelpId = HID_SMA_SETN ;
				Text [ en-US ] = "Natural Numbers Set" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SETZ ;
				HelpId = HID_SMA_SETZ ;
				Text [ en-US ] = "Integers Set" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SETQ ;
				HelpId = HID_SMA_SETQ ;
				Text [ en-US ] = "Rational Numbers Set" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SETR ;
				HelpId = HID_SMA_SETR ;
				Text [ en-US ] = "Real Numbers Set" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SETC ;
				HelpId = HID_SMA_SETC ;
				Text [ en-US ] = "Complex Numbers Set" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_D
	{
		// functions
		HelpId = HID_SMA_FUNCTIONS_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 5 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_EX ;
				HelpId = HID_SMA_EX ;
				Text [ en-US ] = "Exponential Function" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LNX ;
				HelpId = HID_SMA_LNX ;
				Text [ en-US ] = "Natural Logarithm" ;
			};
			ToolBoxItem
			{
				Identifier = RID_EXPX ;
				HelpId = HID_SMA_EXPX ;
				Text [ en-US ] = "Exponential Function" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LOGX ;
				HelpId = HID_SMA_LOGX ;
				Text [ en-US ] = "Logarithm" ;
			};
			ToolBoxItem
			{
				Identifier = RID_RSUPX ;
				HelpId = HID_SMA_RSUPX ;
				Text [ en-US ] = "Power" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_SINX ;
				HelpId = HID_SMA_SINX ;
				Text [ en-US ] = "Sine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_COSX ;
				HelpId = HID_SMA_COSX ;
				Text [ en-US ] = "Cosine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_TANX ;
				HelpId = HID_SMA_TANX ;
				Text [ en-US ] = "Tangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_COTX ;
				HelpId = HID_SMA_COTX ;
				Text [ en-US ] = "Cotangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SQRTX ;
				HelpId = HID_SMA_SQRTX ;
				Text [ en-US ] = "Square Root" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARCSINX ;
				HelpId = HID_SMA_ARCSINX ;
				Text [ en-US ] = "Arcsine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARCCOSX ;
				HelpId = HID_SMA_ARCCOSX ;
				Text [ en-US ] = "Arccosine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARCTANX ;
				HelpId = HID_SMA_ARCTANX ;
				Text [ en-US ] = "Arctangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARCCOTX ;
				HelpId = HID_SMA_ARCCOTX ;
				Text [ en-US ] = "Arccotangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_NROOTXY ;
				HelpId = HID_SMA_NROOTXY ;
				Text [ en-US ] = "N-th Root" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_SINHX ;
				HelpId = HID_SMA_SINHX ;
				Text [ en-US ] = "Hyperbolic Sine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_COSHX ;
				HelpId = HID_SMA_COSHX ;
				Text [ en-US ] = "Hyperbolic Cosine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_TANHX ;
				HelpId = HID_SMA_TANHX ;
				Text [ en-US ] = "Hyperbolic Tangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_COTHX ;
				HelpId = HID_SMA_COTHX ;
				Text [ en-US ] = "Hyperbolic Cotangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ABSX ;
				HelpId = HID_SMA_ABSX ;
				Text [ en-US ] = "Absolute Value" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARSINHX ;
				HelpId = HID_SMA_ARSINHX ;
				Text [ en-US ] = "Area Hyperbolic Sine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARCOSHX ;
				HelpId = HID_SMA_ARCOSHX ;
				Text [ en-US ] = "Area Hyperbolic Cosine" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARTANHX ;
				HelpId = HID_SMA_ARTANHX ;
				Text [ en-US ] = "Area Hyperbolic Tangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ARCOTHX ;
				HelpId = HID_SMA_ARCOTHX ;
				Text [ en-US ] = "Area Hyperbolic Cotangent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_FACTX ;
				HelpId = HID_SMA_FACTX ;
				Text [ en-US ] = "Factorial" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_E
	{
		// operators
		HelpId = HID_SMA_OPERATORS_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 3 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_LIMX ;
				HelpId = HID_SMA_LIMX ;
				Text [ en-US ] = "Limes" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SUMX ;
				HelpId = HID_SMA_SUMX ;
				Text [ en-US ] = "Sum" ;
			};
			ToolBoxItem
			{
				Identifier = RID_PRODX ;
				HelpId = HID_SMA_PRODX ;
				Text [ en-US ] = "Product" ;
			};
			ToolBoxItem
			{
				Identifier = RID_COPRODX ;
				HelpId = HID_SMA_COPRODX ;
				Text [ en-US ] = "Coproduct" ;
			};
			ToolBoxItem
			{
				Identifier = RID_FROMXTOY ;
				HelpId = HID_SMA_FROMXTOY ;
				Text [ en-US ] = "Upper And Lower Limit" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_INTX ;
				HelpId = HID_SMA_INTX ;
				Text [ en-US ] = "Integral" ;
			};
			ToolBoxItem
			{
				Identifier = RID_IINTX ;
				HelpId = HID_SMA_IINTX ;
				Text [ en-US ] = "Double Integral" ;
			};
			ToolBoxItem
			{
				Identifier = RID_IIINTX ;
				HelpId = HID_SMA_IIINTX ;
				Text [ en-US ] = "Triple Integral" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_FROMX ;
				HelpId = HID_SMA_FROMX ;
				Text [ en-US ] = "Lower Limit" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_LINTX ;
				HelpId = HID_SMA_LINTX ;
				Text [ en-US ] = "Curve Integral" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LLINTX ;
				HelpId = HID_SMA_LLINTX ;
				Text [ en-US ] = "Double Curve Integral" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LLLINTX ;
				HelpId = HID_SMA_LLLINTX ;
				Text [ en-US ] = "Triple Curve Integral" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_TOX ;
				HelpId = HID_SMA_TOX ;
				Text [ en-US ] = "Upper Limit" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_F
	{
		// attributes
		HelpId = HID_SMA_ATTRIBUTES_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 5 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_ACUTEX ;
				HelpId = HID_SMA_ACUTEX ;
				Text [ en-US ] = "Acute Accent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_GRAVEX ;
				HelpId = HID_SMA_GRAVEX ;
				Text [ en-US ] = "Grave Accent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_CHECKX ;
				HelpId = HID_SMA_CHECKX ;
				Text [ en-US ] = "Reverse Circumflex" ;
			};
			ToolBoxItem
			{
				Identifier = RID_BREVEX ;
				HelpId = HID_SMA_BREVEX ;
				Text [ en-US ] = "Breve" ;
			};
			ToolBoxItem
			{
				Identifier = RID_CIRCLEX ;
				HelpId = HID_SMA_CIRCLEX ;
				Text [ en-US ] = "Circle" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_VECX ;
				HelpId = HID_SMA_VECX ;
				Text [ en-US ] = "Vector Arrow" ;
			};
			ToolBoxItem
			{
				Identifier = RID_TILDEX ;
				HelpId = HID_SMA_TILDEX ;
				Text [ en-US ] = "Tilde" ;
			};
			ToolBoxItem
			{
				Identifier = RID_HATX ;
				HelpId = HID_SMA_HATX ;
				Text [ en-US ] = "Circumflex" ;
			};
			ToolBoxItem
			{
				Identifier = RID_BARX ;
				HelpId = HID_SMA_BARX ;
				Text [ en-US ] = "Line Above" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOTX ;
				HelpId = HID_SMA_DOTX ;
				Text [ en-US ] = "Dot" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_WIDEVECX ;
				HelpId = HID_SMA_WIDEVECX ;
				Text [ en-US ] = "Large Vector Arrow" ;
			};
			ToolBoxItem
			{
				Identifier = RID_WIDETILDEX ;
				HelpId = HID_SMA_WIDETILDEX ;
				Text [ en-US ] = "Large Tilde" ;
			};
			ToolBoxItem
			{
				Identifier = RID_WIDEHATX ;
				HelpId = HID_SMA_WIDEHATX ;
				Text [ en-US ] = "Large Circumflex" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_DDOTX ;
				HelpId = HID_SMA_DDOTX ;
				Text [ en-US ] = "Double Dot" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_OVERLINEX ;
				HelpId = HID_SMA_OVERLINEX ;
				Text [ en-US ] = "Line Over" ;
			};
			ToolBoxItem
			{
				Identifier = RID_UNDERLINEX ;
				HelpId = HID_SMA_UNDERLINEX ;
				Text [ en-US ] = "Line Below" ;
			};
			ToolBoxItem
			{
				Identifier = RID_OVERSTRIKEX ;
				HelpId = HID_SMA_OVERSTRIKEX ;
				Text [ en-US ] = "Line Through" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_DDDOTX ;
				HelpId = HID_SMA_DDDOTX ;
				Text [ en-US ] = "Triple Dot" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_PHANTOMX ;
				HelpId = HID_SMA_PHANTOMX ;
				Text [ en-US ] = "Transparent" ;
			};
			ToolBoxItem
			{
				Identifier = RID_BOLDX ;
				HelpId = HID_SMA_BOLDX ;
				Text [ en-US ] = "Bold Font" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ITALX ;
				HelpId = HID_SMA_ITALX ;
				Text [ en-US ] = "Italic Font" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SIZEXY ;
				HelpId = HID_SMA_SIZEXY ;
				Text [ en-US ] = "Resize" ;
			};
			ToolBoxItem
			{
				Identifier = RID_FONTXY ;
				HelpId = HID_SMA_FONTXY ;
				Text [ en-US ] = "Change Font" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_G
	{
		// parentheses
		HelpId = HID_SMA_BRACKETS_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 5 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_LRPARENTX ;
				HelpId = HID_SMA_LRPARENTX ;
				Text [ en-US ] = "Round Brackets" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRBRACKETX ;
				HelpId = HID_SMA_LRBRACKETX ;
				Text [ en-US ] = "Square Brackets" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRDBRACKETX ;
				HelpId = HID_SMA_LRDBRACKETX ;
				Text [ en-US ] = "Double Square Brackets" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRLINEX ;
				HelpId = HID_SMA_LRLINEX ;
				Text [ en-US ] = "Single Lines" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRDLINEX ;
				HelpId = HID_SMA_LRDLINEX ;
				Text [ en-US ] = "Double Lines" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRBRACEX ;
				HelpId = HID_SMA_LRBRACEX ;
				Text [ en-US ] = "Braces" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRANGLEX ;
				HelpId = HID_SMA_LRANGLEX ;
				Text [ en-US ] = "Angle Brackets" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LMRANGLEXY ;
				HelpId = HID_SMA_LMRANGLEXY ;
				Text [ en-US ] = "Operator Brackets" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Identifier = RID_LRGROUPX ;
				HelpId = HID_SMA_LRGROUPX ;
				Text [ en-US ] = "Group Brackets" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRPARENTX ;
				HelpId = HID_SMA_SLRPARENTX ;
				Text [ en-US ] = "Round Brackets (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRBRACKETX ;
				HelpId = HID_SMA_SLRBRACKETX ;
				Text [ en-US ] = "Square Brackets (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRDBRACKETX ;
				HelpId = HID_SMA_SLRDBRACKETX ;
				Text [ en-US ] = "Double Square Brackets (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRLINEX ;
				HelpId = HID_SMA_SLRLINEX ;
				Text [ en-US ] = "Single Lines (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRDLINEX ;
				HelpId = HID_SMA_SLRDLINEX ;
				Text [ en-US ] = "Double Lines (Scalable)" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRBRACEX ;
				HelpId = HID_SMA_SLRBRACEX ;
				Text [ en-US ] = "Braces (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLRANGLEX ;
				HelpId = HID_SMA_SLRANGLEX ;
				Text [ en-US ] = "Angle Brackets (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SLMRANGLEXY ;
				HelpId = HID_SMA_SLMRANGLEXY ;
				Text [ en-US ] = "Operator Brackets (Scalable)" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_XOVERBRACEY ;
				HelpId = HID_SMA_XOVERBRACEY ;
				Text [ en-US ] = "Braces Top (Scalable)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_XUNDERBRACEY ;
				HelpId = HID_SMA_XUNDERBRACEY ;
				Text [ en-US ] = "Braces Bottom (Scalable)" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_H
	{
		// format
		HelpId = HID_SMA_FORMAT_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 3 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_LSUPX ;
				HelpId = HID_SMA_LSUPX ;
				Text [ en-US ] = "Superscript Left" ;
			};
			ToolBoxItem
			{
				Identifier = RID_CSUPX ;
				HelpId = HID_SMA_CSUPX ;
				Text [ en-US ] = "Superscript Top" ;
			};
			ToolBoxItem
			{
				Identifier = RID_RSUPX ;
				HelpId = HID_SMA_RSUPX ;
				Text [ en-US ] = "Superscript Right" ;
			};
			ToolBoxItem
			{
				Identifier = RID_BINOMXY ;
				HelpId = HID_SMA_BINOMXY ;
				Text [ en-US ] = "Vertical Stack (2 Elements)" ;
			};
			ToolBoxItem
			{
				Identifier = RID_NEWLINE ;
				HelpId = HID_SMA_NEWLINE ;
				Text [ en-US ] = "New Line" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_LSUBX ;
				HelpId = HID_SMA_LSUBX ;
				Text [ en-US ] = "Subscript Left" ;
			};
			ToolBoxItem
			{
				Identifier = RID_CSUBX ;
				HelpId = HID_SMA_CSUBX ;
				Text [ en-US ] = "Subscript Bottom" ;
			};
			ToolBoxItem
			{
				Identifier = RID_RSUBX ;
				HelpId = HID_SMA_RSUBX ;
				Text [ en-US ] = "Subscript Right" ;
			};
			ToolBoxItem
			{
				Identifier = RID_STACK ;
				HelpId = HID_SMA_STACK ;
				Text [ en-US ] = "Vertical Stack" ;
			};
			ToolBoxItem
			{
				Identifier = RID_SBLANK ;
				HelpId = HID_SMA_SBLANK ;
				Text [ en-US ] = "Small Gap" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_ALIGNLX ;
				HelpId = HID_SMA_ALIGNLX ;
				Text [ en-US ] = "Align Left" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ALIGNCX ;
				HelpId = HID_SMA_ALIGNCX ;
				Text [ en-US ] = "Align Center" ;
			};
			ToolBoxItem
			{
				Identifier = RID_ALIGNRX ;
				HelpId = HID_SMA_ALIGNRX ;
				Text [ en-US ] = "Align Right" ;
			};
			ToolBoxItem
			{
				Identifier = RID_MATRIX ;
				HelpId = HID_SMA_MATRIX ;
				Text [ en-US ] = "Matrix Stack" ;
			};
			ToolBoxItem
			{
				Identifier = RID_BLANK ;
				HelpId = HID_SMA_BLANK ;
				Text [ en-US ] = "Gap" ;
			};
		};
	};

	ToolBox TOOLBOX_CAT_I
	{
		// misc
		HelpId = HID_SMA_FORMAT_TBX ;
		Pos = MAP_APPFONT ( 0, 45 ) ;
		Size = MAP_APPFONT ( 65, 95 ) ;
		SVLook = TRUE ;
		Hide = TRUE ;
		LineCount = 4 ;
		ItemList =
		{
			ToolBoxItem
			{
				Identifier = RID_INFINITY ;
				HelpId = HID_SMA_INFINITY ;
				Text [ en-US ] = "infinite" ;
			};
			ToolBoxItem
			{
				Identifier = RID_PARTIAL ;
				HelpId = HID_SMA_PARTIAL ;
				Text [ en-US ] = "Partial" ;
			};
			ToolBoxItem
			{
				Identifier = RID_NABLA ;
				HelpId = HID_SMA_NABLA ;
				Text [ en-US ] = "Nabla" ;
			};
			ToolBoxItem
			{
				Identifier = RID_EXISTS ;
				HelpId = HID_SMA_EXISTS ;
				Text [ en-US ] = "There Exists" ;
			};
			ToolBoxItem
			{
				Identifier = RID_FORALL ;
				HelpId = HID_SMA_FORALL ;
				Text [ en-US ] = "For All" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_HBAR ;
				HelpId = HID_SMA_HBAR ;
				Text [ en-US ] = "h Bar" ;
			};
			ToolBoxItem
			{
				Identifier = RID_LAMBDABAR ;
				HelpId = HID_SMA_LAMBDABAR ;
				Text [ en-US ] = "Lambda Bar" ;
			};
			ToolBoxItem
			{
				Identifier = RID_RE ;
				HelpId = HID_SMA_RE ;
				Text [ en-US ] = "Real Part" ;
			};
			ToolBoxItem
			{
				Identifier = RID_IM ;
				HelpId = HID_SMA_IM ;
				Text [ en-US ] = "Imaginary Part" ;
			};
			ToolBoxItem
			{
				Identifier = RID_WP ;
				HelpId = HID_SMA_WP ;
				Text [ en-US ] = "Weierstrass p" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_LEFTARROW ;
				HelpId = HID_SMA_LEFTARROW ;
				Text [ en-US ] = "Left Arrow" ;
			};
			ToolBoxItem
			{
				Identifier = RID_RIGHTARROW ;
				HelpId = HID_SMA_RIGHTARROW ;
				Text [ en-US ] = "Right Arrow" ;
			};
			ToolBoxItem
			{
				Identifier = RID_UPARROW ;
				HelpId = HID_SMA_UPARROW ;
				Text [ en-US ] = "Up Arrow" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOWNARROW ;
				HelpId = HID_SMA_DOWNARROW ;
				Text [ en-US ] = "Down Arrow" ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_SPACE ;
			};
			ToolBoxItem
			{
				Type = TOOLBOXITEM_BREAK ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOTSLOW ;
				HelpId = HID_SMA_DOTSLOW ;
				Text [ en-US ] = "Dots At Bottom" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOTSAXIS ;
				HelpId = HID_SMA_DOTSAXIS ;
				Text [ en-US ] = "Dots In Middle" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOTSVERT ;
				HelpId = HID_SMA_DOTSVERT ;
				Text [ en-US ] = "Dots Vertically" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOTSUP ;
				HelpId = HID_SMA_DOTSUP ;
				Text [ en-US ] = "Dots To Top" ;
			};
			ToolBoxItem
			{
				Identifier = RID_DOTSDOWN ;
				HelpId = HID_SMA_DOTSDOWN ;
				Text [ en-US ] = "Dots To Bottom" ;
			};
		};
	};
};



#define UNBINOPS_IDLIST		\
	IdList =				\
	{						\
		RID_PLUSX ;			\
		RID_MINUSX ;		\
		RID_PLUSMINUSX ;	\
		RID_MINUSPLUSX ;	\
		RID_XPLUSY ;		\
		RID_XCDOTY ;		\
		RID_XTIMESY ;		\
		RID_XSYMTIMESY ;	\
		RID_XMINUSY ;		\
		RID_XOVERY ;		\
		RID_XDIVY ;			\
		RID_XSYMDIVIDEY ;	\
		RID_NEGX ;			\
		RID_XANDY ;			\
		RID_XORY ;			\
		RID_XCIRCY ;		\
		RID_XWIDESLASHY ;	\
		RID_XWIDEBSLASHY ;	\
	};						\
	IdCount = { 18 ; };

	ImageList RID_IL_UNBINOPS
	{
		Prefix = "un" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		UNBINOPS_IDLIST
	};
	ImageList RID_ILH_UNBINOPS
	{
		Prefix = "unh" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		UNBINOPS_IDLIST
	};

#define RELATIONS_IDLIST	\
	IdList =				\
	{						\
		RID_XEQY ;			\
		RID_XNEQY ;			\
		RID_XEQUIVY ;		\
		RID_XORTHOY ;		\
		RID_XLTY ;			\
		RID_XGTY ;			\
		RID_XAPPROXY ;		\
		RID_XPARALLELY ;	\
		RID_XLESLANTY ;		\
		RID_XGESLANTY ;		\
		RID_XSIMEQY ;		\
		RID_XPROPY ;		\
		RID_XLEY ;			\
		RID_XGEY ;			\
		RID_XSIMY ;			\
		RID_XTOWARDY ;		\
		RID_XDIVIDESY ;		\
		RID_XNDIVIDESY;		\
		RID_DLARROW ;		\
		RID_DLRARROW ;		\
		RID_DRARROW ;		\
	};						\
	IdCount ={ 21 ; };

	ImageList RID_IL_RELATIONS
	{
		Prefix = "bi" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		RELATIONS_IDLIST
	};
	ImageList RID_ILH_RELATIONS
	{
		Prefix = "bih" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		RELATIONS_IDLIST
	};

#define SETOPERATIONS_IDLIST	\
	IdList =					\
	{							\
		RID_XINY ;				\
		RID_XNOTINY ;			\
		RID_XOWNSY ;			\
		RID_XINTERSECTIONY ;	\
		RID_XUNIONY ;			\
		RID_XSETMINUSY ;		\
		RID_XSLASHY ;			\
		RID_XSUBSETY ;			\
		RID_XSUBSETEQY ;		\
		RID_XSUPSETY ;			\
		RID_XSUPSETEQY ;		\
		RID_XNSUBSETY ;			\
		RID_XNSUBSETEQY ;		\
		RID_XNSUPSETY ;			\
		RID_XNSUPSETEQY ;		\
		RID_EMPTYSET ;			\
		RID_ALEPH ;				\
		RID_SETN ;				\
		RID_SETZ ;				\
		RID_SETQ ;				\
		RID_SETR ;				\
		RID_SETC ;				\
	};							\
	IdCount = { 22 ; };

	ImageList RID_IL_SETOPERATIONS
	{
		Prefix = "op" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		SETOPERATIONS_IDLIST
	};
	ImageList RID_ILH_SETOPERATIONS
	{
		Prefix = "oph" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		SETOPERATIONS_IDLIST
	};

#define FUNCTIONS_IDLIST	\
	IdList =				\
	{						\
		RID_ABSX ;			\
		RID_FACTX ;			\
		RID_SQRTX ;			\
		RID_NROOTXY ;		\
		RID_EX ;			\
		RID_LNX ;			\
		RID_EXPX ;			\
		RID_LOGX ;			\
		RID_SINX ;			\
		RID_COSX ;			\
		RID_TANX ;			\
		RID_COTX ;			\
		RID_SINHX ;			\
		RID_COSHX ;			\
		RID_TANHX ;			\
		RID_COTHX ;			\
		RID_ARCSINX ;		\
		RID_ARCCOSX ;		\
		RID_ARCTANX ;		\
		RID_ARCCOTX ;		\
		RID_ARSINHX ;		\
		RID_ARCOSHX ;		\
		RID_ARTANHX ;		\
		RID_ARCOTHX ;		\
		RID_RSUPX ;			\
	};						\
	IdCount = { 25 ; };

	ImageList RID_IL_FUNCTIONS
	{
		Prefix = "fu" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		FUNCTIONS_IDLIST
	};
	ImageList RID_ILH_FUNCTIONS
	{
		Prefix = "fuh" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		FUNCTIONS_IDLIST
	};

#define OPERATORS_IDLIST	\
	IdList =				\
	{						\
		RID_LIMX ;			\
		RID_SUMX ;			\
		RID_PRODX ;			\
		RID_COPRODX ;		\
		RID_INTX ;			\
		RID_IINTX ;			\
		RID_IIINTX ;		\
		RID_LINTX ;			\
		RID_LLINTX ;		\
		RID_LLLINTX ;		\
		RID_FROMXTOY ;		\
		RID_FROMX ;			\
		RID_TOX ;			\
	};						\
	IdCount = { 13 ; };

	ImageList RID_IL_OPERATORS
	{
		Prefix = "fo" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		OPERATORS_IDLIST
	};
	ImageList RID_ILH_OPERATORS
	{
		Prefix = "foh" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		OPERATORS_IDLIST
	};

#define ATTRIBUTES_IDLIST	\
	IdList =				\
	{						\
		RID_ACUTEX ;		\
		RID_GRAVEX ;		\
		RID_CHECKX ;		\
		RID_BREVEX ;		\
		RID_BARX ;			\
		RID_VECX ;			\
		RID_HATX ;			\
		RID_TILDEX ;		\
		RID_CIRCLEX ;		\
		RID_DOTX ;			\
		RID_DDOTX ;			\
		RID_DDDOTX ;		\
		RID_OVERLINEX ;		\
		RID_UNDERLINEX ;	\
		RID_OVERSTRIKEX ;	\
		RID_PHANTOMX ;		\
		RID_BOLDX ;			\
		RID_ITALX ;			\
		RID_SIZEXY ;		\
		RID_FONTXY ;		\
		RID_WIDEHATX ;		\
		RID_WIDETILDEX ;	\
		RID_WIDEVECX ;		\
	};						\
	IdCount = { 23 ; };

	ImageList RID_IL_ATTRIBUTES
	{
		Prefix = "at" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		ATTRIBUTES_IDLIST
	};
	ImageList RID_ILH_ATTRIBUTES
	{
		Prefix = "ath" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		ATTRIBUTES_IDLIST
	};

#define BRACKETS_IDLIST		\
	IdList =				\
	{						\
		RID_LRPARENTX ;		\
		RID_LRBRACKETX ;	\
		RID_LRANGLEX ;		\
		RID_LRBRACEX ;		\
		RID_LRLINEX ;		\
		RID_LRDLINEX ;		\
		RID_LMRANGLEXY ;	\
		RID_LRGROUPX ;		\
		RID_SLRPARENTX ;	\
		RID_SLRBRACKETX ;	\
		RID_SLRANGLEX ;		\
		RID_SLRBRACEX ;		\
		RID_SLRLINEX ;		\
		RID_SLRDLINEX ;		\
		RID_SLMRANGLEXY ;	\
		RID_LRDBRACKETX ;	\
		RID_SLRDBRACKETX ;	\
		RID_XOVERBRACEY ;	\
		RID_XUNDERBRACEY ;	\
	};						\
	IdCount = { 19 ; };

	ImageList RID_IL_BRACKETS
	{
		Prefix = "al" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		BRACKETS_IDLIST
	};
	ImageList RID_ILH_BRACKETS
	{
		Prefix = "alh" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		BRACKETS_IDLIST
	};

#define FORMAT_IDLIST	\
	IdList =			\
	{					\
		RID_NEWLINE ;	\
		RID_SBLANK ;	\
		RID_BLANK ;		\
		RID_BINOMXY ;	\
		RID_STACK ;		\
		RID_MATRIX ;	\
		RID_ALIGNLX ;	\
		RID_ALIGNCX ;	\
		RID_ALIGNRX ;	\
		RID_RSUBX ;		\
		RID_RSUPX ;		\
		RID_LSUBX ;		\
		RID_LSUPX ;		\
		RID_CSUBX ;		\
		RID_CSUPX ;		\
	};					\
	IdCount = { 15 ; };

	ImageList RID_IL_FORMAT
	{
		Prefix = "co" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		FORMAT_IDLIST
	};
	ImageList RID_ILH_FORMAT
	{
		Prefix = "coh" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		FORMAT_IDLIST
	};

#define MISC_IDLIST			\
	IdList =				\
	{						\
		RID_INFINITY ;		\
		RID_PARTIAL ;		\
		RID_NABLA ;			\
		RID_EXISTS ;		\
		RID_FORALL ;		\
		RID_HBAR;			\
		RID_LAMBDABAR ;		\
		RID_RE ;			\
		RID_IM ;			\
		RID_WP ;			\
		RID_LEFTARROW ;		\
		RID_RIGHTARROW ;	\
		RID_UPARROW ;		\
		RID_DOWNARROW ;		\
		RID_DOTSLOW ;		\
		RID_DOTSAXIS ;		\
		RID_DOTSVERT ;		\
		RID_DOTSUP ;		\
		RID_DOTSDOWN ;		\
	};						\
	IdCount = { 19 ; };

	ImageList RID_IL_MISC
	{
		Prefix = "mi" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		MISC_IDLIST
	};
	ImageList RID_ILH_MISC
	{
		Prefix = "mih" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		MISC_IDLIST
	};

#define CATALOG_IDLIST			\
	IdList =					\
	{							\
		RID_UNBINOPS_CAT ;		\
		RID_RELATIONS_CAT ;		\
		RID_SETOPERATIONS_CAT ;	\
		RID_FUNCTIONS_CAT ;		\
		RID_OPERATORS_CAT ;		\
		RID_ATTRIBUTES_CAT ;	\
		RID_MISC_CAT ;			\
		RID_BRACKETS_CAT ;		\
		RID_FORMAT_CAT ;		\
	};							\
	IdCount = { 9 ; };

	ImageList RID_IL_CATALOG
	{
		Prefix = "im" ;
		MaskColor = IMAGE_STDBTN_COLOR ;
		CATALOG_IDLIST
	};
	ImageList RID_ILH_CATALOG
	{
		Prefix = "imh" ;
		MaskColor = IMAGE_STDBTN_COLOR_HC ;
		CATALOG_IDLIST
	};

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