summaryrefslogtreecommitdiff
path: root/rsc/source/parser/rscinit.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'rsc/source/parser/rscinit.cxx')
-rw-r--r--rsc/source/parser/rscinit.cxx943
1 files changed, 943 insertions, 0 deletions
diff --git a/rsc/source/parser/rscinit.cxx b/rsc/source/parser/rscinit.cxx
new file mode 100644
index 000000000000..54a56a3840d2
--- /dev/null
+++ b/rsc/source/parser/rscinit.cxx
@@ -0,0 +1,943 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_rsc.hxx"
+
+/****************** I N C L U D E S **************************************/
+// C and C++ Includes.
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <tools/rc.h>
+
+#include <vclrsc.hxx>
+
+// Programmabhaengige Includes.
+#include <rsctree.hxx>
+#include <rsctop.hxx>
+#include <rscrange.hxx>
+#include <rscconst.hxx>
+#include <rscflag.hxx>
+#include <rscstr.hxx>
+#include <rsccont.hxx>
+#include <rscmgr.hxx>
+#include <rscclass.hxx>
+#include <rsckey.hxx>
+#include <rscdb.hxx>
+
+#include "rsclex.hxx"
+#include <yyrscyacc.hxx>
+
+/****************** M a c r o s ******************************************/
+#define INS_WINBIT( pClass, WinBit ) \
+ InsWinBit( pClass, #WinBit, n##WinBit##Id );
+
+/****************** C O D E **********************************************/
+void NameToVerCtrl( RSCINST & aVersion, RscTop * pClass,
+ RscTop * pClassString )
+{
+ if( pClass )
+ {
+ NameToVerCtrl( aVersion, (RscTop *)pClass->Left(), pClassString );
+ {
+ RSCINST aVI;
+ RSCINST aStr;
+
+ // Namen in Versionskontrolle einsetzen
+ aVersion.pClass->
+ GetElement( aVersion, RscId( pClass->GetTypId() ),
+ pClassString, RSCINST(), &aVI );
+ aStr = aVI.pClass->GetVariable( aVI, pHS->getID( "TEXT" ),
+ RSCINST() );
+ aStr.pClass->SetString( aStr, pHS->getString( pClass->GetId() ).getStr() );
+ }
+ NameToVerCtrl( aVersion, (RscTop *)pClass->Right(), pClassString );
+ }
+}
+
+/*************************************************************************
+|*
+|* RscTypCont::Init()
+|*
+|* Beschreibung
+|* Ersterstellung MM 22.03.91
+|* Letzte Aenderung MM 27.06.91
+|*
+*************************************************************************/
+void RscTypCont::Init()
+{
+ RscEnum * pFieldUnits;
+ RscEnum * pTimeFieldFormat;
+ RscEnum * pColor;
+ RscEnum * pMapUnit;
+ RscEnum * pKey;
+ RscEnum * pTriState;
+ RscEnum * pMessButtons;
+ RscEnum * pMessDefButton;
+ RscTupel * pGeometry;
+ RscArray * pLangGeometry;
+ RscCont * pStringList;
+ RscArray * pLangStringList;
+ RscTupel * pStringTupel;
+ RscTupel * pStringLongTupel;
+ RscCont * pStringTupelList;
+ RscCont * pStringLongTupelList;
+ RscArray * pLangStringTupelList;
+ RscArray * pLangStringLongTupelList;
+
+ RscTop * pClassMgr;
+ RscTop * pClassString;
+ RscTop * pClassStringArray;
+ RscTop * pClassBitmap;
+ RscTop * pClassColor;
+ RscTop * pClassImage;
+ RscTop * pClassImageList;
+ RscTop * pClassWindow;
+ RscTop * pClassSystemWindow;
+ RscTop * pClassWorkWindow;
+ RscTop * pClassDialog;
+ RscTop * pClassModalDialog;
+ RscTop * pClassModelessDialog;
+ RscTop * pClassControl;
+ RscTop * pClassButton;
+ RscTop * pClassCheckBox;
+ RscTop * pClassPushButton;
+ RscTop * pClassOKButton;
+ RscTop * pClassCancelButton;
+ RscTop * pClassHelpButton;
+ RscTop * pClassRadioButton;
+ RscTop * pClassImageRadioButton;
+ RscTop * pClassImageButton;
+ RscTop * pClassTriStateBox;
+ RscTop * pClassEdit;
+ RscTop * pClassMultiLineEdit;
+ RscTop * pClassScrollBar;
+ RscTop * pClassListBox;
+ RscTop * pClassMultiListBox;
+ RscTop * pClassComboBox;
+ RscTop * pClassFixedText;
+ RscTop * pClassFixedBitmap;
+ RscTop * pClassFixedImage;
+ RscTop * pClassGroupBox;
+ RscTop * pClassKeyCode;
+ RscTop * pLangClassKeyCode;
+ RscTop * pClassAccelItem;
+ RscTop * pClassAccel;
+ RscTop * pClassMenuItem;
+ RscTop * pClassMenu;
+ RscTop * pClassMenuButton;
+ RscTop * pClassMessBox;
+ RscTop * pClassInfoBox;
+ RscTop * pClassWarningBox;
+ RscTop * pClassErrorBox;
+ RscTop * pClassQueryBox;
+ RscTop * pClassSplitter;
+ RscTop * pClassSplitWindow;
+ RscTop * pClassSpinButton;
+ RscTop * pClassTime;
+ RscTop * pClassDate;
+ RscTop * pClassSpinField;
+ RscTop * pClassPatternField;
+ RscTop * pClassNumericField;
+ RscTop * pClassMetricField;
+ RscTop * pClassCurrencyField;
+ RscTop * pClassLongCurrencyField;
+ RscTop * pClassDateField;
+ RscTop * pClassTimeField;
+ RscTop * pClassPatternBox;
+ RscTop * pClassNumericBox;
+ RscTop * pClassMetricBox;
+ RscTop * pClassCurrencyBox;
+ RscTop * pClassLongCurrencyBox;
+ RscTop * pClassDateBox;
+ RscTop * pClassTimeBox;
+ RscTop * pClassDockingWindow;
+ RscTop * pClassToolBoxItem;
+ RscTop * pClassToolBox;
+ RscTop * pClassStatusBar;
+ RscTop * pClassMoreButton;
+ RscTop * pClassFloatingWindow;
+ RscTop * pClassTabPage;
+ RscTop * pClassTabDialog;
+ RscTop * pClassTabControlItem;
+ RscTop * pClassTabControl;
+ RscTop * pClassFixedLine;
+ RscTop * pClassScrollBarBox;
+ RscTop * pClassSfxStyleFamilyItem;
+ RscTop * pClassSfxTemplateDialog;
+ RscTop * pClassSfxSlotInfo;
+
+ Atom nId;
+
+ aNmTb.SetSort( FALSE );
+{
+ /********** C O M P I L E R T Y P E N ******************************/
+ aNmTb.Put( "LINE", LINE, (long)0 );
+ aNmTb.Put( "NOT", NOT, (long)0 );
+ aNmTb.Put( "DEFINE", DEFINE, (long)0 );
+ aNmTb.Put( "INCLUDE", INCLUDE, (long)0 );
+ aNmTb.Put( "DEFAULT", DEFAULT, (long)0 );
+ aNmTb.Put( "class", CLASS, (long)0 );
+ aNmTb.Put( "extendable", EXTENDABLE, (long)0 );
+ aNmTb.Put( "writeifset", WRITEIFSET, (long)0 );
+
+/* Werte fuer Aufzaehlungstypen */
+ aNmTb.Put( "TRUE", BOOLEAN, (long)TRUE );
+ aNmTb.Put( "FALSE", BOOLEAN, (long)FALSE );
+
+ #if 0
+/* Vordefinierte HilfeId's */
+ aNmTb.Put( "HELP_INDEX", NUMBER, OOO_HELP_INDEX );
+ aNmTb.Put( "HELP_HELPONHELP", NUMBER, OOO_HELP_HELPONHELP );
+ #endif
+
+ aNmTb.Put( "XSCALE", XSCALE , (long)0 );
+ aNmTb.Put( "YSCALE", YSCALE , (long)0 );
+ aNmTb.Put( "RGB", RGB , (long)0 );
+ aNmTb.Put( "POSSIZE", GEOMETRY, (long)0 );
+ aNmTb.Put( "POS", POSITION, (long)0 );
+ aNmTb.Put( "SIZE", DIMENSION, (long)0 );
+ aNmTb.Put( "ZoomInOutputSize", INZOOMOUTPUTSIZE,(long)0 );
+ aNmTb.Put( "FloatingPos", FLOATINGPOS, (long)0 );
+}
+ /********** B A S I S T Y P E N ************************************/
+{
+ /********** S H O R T ************************************************/
+ aShort.SetRange( -32768, 32767 );
+
+ /********** U S H O R T **********************************************/
+ aUShort.SetRange( 0, 0xFFFF );
+
+ /********** L O N G **************************************************/
+ aLong.SetRange( SAL_MIN_INT32, SAL_MAX_INT32 );
+ aEnumLong.SetRange( SAL_MIN_INT32, SAL_MAX_INT32 );
+
+ /********** I D U S H O R T ******************************************/
+ aIdUShort.SetRange( 0, 0xFFFF );
+
+ /********** I D N O Z E R O U S H O R T ******************************/
+ aIdNoZeroUShort.SetRange( 1, 0xFFFF );
+
+ /********** N O Z E R O S H O R T ************************************/
+ aNoZeroShort.SetRange( -32768, 32767 );
+ aNoZeroShort.SetOutRange( 0 );
+
+ /********** R A N G E S H O R T **************************************/
+ a1to12Short.SetRange( 1, 12 );
+ a0to23Short.SetRange( 0, 23 );
+ a1to31Short.SetRange( 1, 31 );
+ a0to59Short.SetRange( 0, 59 );
+ a0to99Short.SetRange( 0, 99 );
+ a0to9999Short.SetRange( 0, 9999 );
+
+ /********** I D R A N G E ********************************************/
+ aIdLong.SetRange( SAL_MIN_INT32, SAL_MAX_INT32 );
+}
+{
+ /********** W I N B I T S F L A G ************************************/
+ // Variablenname fuer WinBits
+ nWinBitVarId = aNmTb.Put( "_WinBits", VARNAME );
+
+ // Windows
+ nBorderId = pHS->getID( "WB_BORDER" );
+ aWinBits.SetConstant( nBorderId, sal::static_int_cast<INT32>(WB_BORDER) );
+ nHideId = pHS->getID( "WB_HIDE" );
+ aWinBits.SetConstant( nHideId, sal::static_int_cast<INT32>(WB_HIDE) );
+ nClipChildrenId = pHS->getID( "WB_CLIPCHILDREN" );
+ aWinBits.SetConstant( nClipChildrenId, sal::static_int_cast<INT32>(WB_CLIPCHILDREN) );
+ nSizeableId = pHS->getID( "WB_SIZEABLE" );
+ aWinBits.SetConstant( nSizeableId, sal::static_int_cast<INT32>(WB_SIZEABLE) );
+ nMoveableId = pHS->getID( "WB_MOVEABLE" );
+ aWinBits.SetConstant( nMoveableId, sal::static_int_cast<INT32>(WB_MOVEABLE) );
+ nMinimizeId = pHS->getID( "WB_MINABLE" );
+ aWinBits.SetConstant( nMinimizeId, 0 /*WB_MINABLE*/ );
+ nMaximizeId = pHS->getID( "WB_MAXABLE" );
+ aWinBits.SetConstant( nMaximizeId, 0 /*WB_MAXABLE*/ );
+ nCloseableId = pHS->getID( "WB_CLOSEABLE" );
+ aWinBits.SetConstant( nCloseableId, sal::static_int_cast<INT32>(WB_CLOSEABLE) );
+ nAppId = pHS->getID( "WB_APP" );
+ aWinBits.SetConstant( nAppId, sal::static_int_cast<INT32>(WB_APP) );
+ nTabstopId = pHS->getID( "WB_TABSTOP" );
+ aWinBits.SetConstant( nTabstopId, sal::static_int_cast<INT32>(WB_TABSTOP) );
+ nGroupId = pHS->getID( "WB_GROUP" );
+ aWinBits.SetConstant( nGroupId, sal::static_int_cast<INT32>(WB_GROUP) );
+ nSysmodalId = pHS->getID( "WB_SYSMODAL" );
+ aWinBits.SetConstant( nSysmodalId, 0 /*WB_SYSMODAL*/ );
+}
+{
+ nLeftId = pHS->getID( "WB_LEFT" );
+ aWinBits.SetConstant( nLeftId, sal::static_int_cast<INT32>(WB_LEFT) );
+ nCenterId = pHS->getID( "WB_CENTER" );
+ aWinBits.SetConstant( nCenterId, sal::static_int_cast<INT32>(WB_CENTER) );
+ nRightId = pHS->getID( "WB_RIGHT" );
+ aWinBits.SetConstant( nRightId, sal::static_int_cast<INT32>(WB_RIGHT) );
+ nTopId = pHS->getID( "WB_TOP" );
+ aWinBits.SetConstant( nTopId, sal::static_int_cast<INT32>(WB_TOP) );
+ nVCenterId = pHS->getID( "WB_VCENTER" );
+ aWinBits.SetConstant( nVCenterId, sal::static_int_cast<INT32>(WB_VCENTER) );
+ nBottomId = pHS->getID( "WB_BOTTOM" );
+ aWinBits.SetConstant( nBottomId, sal::static_int_cast<INT32>(WB_BOTTOM) );
+ nHScrollId = pHS->getID( "WB_HSCROLL" );
+ aWinBits.SetConstant( nHScrollId, sal::static_int_cast<INT32>(WB_HSCROLL) );
+ nVScrollId = pHS->getID( "WB_VSCROLL" );
+ aWinBits.SetConstant( nVScrollId, sal::static_int_cast<INT32>(WB_VSCROLL) );
+ nSortId = pHS->getID( "WB_SORT" );
+ aWinBits.SetConstant( nSortId, sal::static_int_cast<INT32>(WB_SORT) );
+ nDefaultId = pHS->getID( "WB_DEFBUTTON" );
+ aWinBits.SetConstant( nDefaultId, sal::static_int_cast<INT32>(WB_DEFBUTTON) );
+ nRepeatId = pHS->getID( "WB_REPEAT" );
+ aWinBits.SetConstant( nRepeatId, sal::static_int_cast<INT32>(WB_REPEAT) );
+ nSVLookId = pHS->getID( "WB_SVLOOK" );
+ aWinBits.SetConstant( nSVLookId, sal::static_int_cast<INT32>(WB_3DLOOK) );
+ nDropDownId = pHS->getID( "WB_DROPDOWN" );
+ aWinBits.SetConstant( nDropDownId, sal::static_int_cast<INT32>(WB_DROPDOWN) );
+ nPassWordId = pHS->getID( "WB_PASSWORD" );
+ aWinBits.SetConstant( nPassWordId, sal::static_int_cast<INT32>(WB_PASSWORD) );
+ nReadOnlyId = pHS->getID( "WB_READONLY" );
+ aWinBits.SetConstant( nReadOnlyId, sal::static_int_cast<INT32>(WB_READONLY) );
+ nAutoSizeId = pHS->getID( "WB_AUTOSIZE" );
+ aWinBits.SetConstant( nAutoSizeId, sal::static_int_cast<INT32>(WB_AUTOSIZE) );
+ nSpinId = pHS->getID( "WB_SPIN" );
+ aWinBits.SetConstant( nSpinId, sal::static_int_cast<INT32>(WB_SPIN) );
+ nTabControlId = pHS->getID( "WB_DIALOGCONTROL" );
+ aWinBits.SetConstant( nTabControlId, sal::static_int_cast<INT32>(WB_DIALOGCONTROL) );
+ nSimpleModeId = pHS->getID( "WB_SIMPLEMODE" );
+ aWinBits.SetConstant( nSimpleModeId, sal::static_int_cast<INT32>(WB_SIMPLEMODE) );
+ nDragId = pHS->getID( "WB_DRAG" );
+ aWinBits.SetConstant( nDragId, sal::static_int_cast<INT32>(WB_DRAG) );
+ nScrollId = pHS->getID( "WB_SCROLL" );
+ aWinBits.SetConstant( nScrollId, sal::static_int_cast<INT32>(WB_SCROLL) );
+ nZoomableId = pHS->getID( "WB_ZOOMABLE" );
+ aWinBits.SetConstant( nZoomableId, sal::static_int_cast<INT32>(WB_ROLLABLE) );
+ nHideWhenDeactivateId = pHS->getID( "WB_HIDEWHENDEACTIVATE" );
+ aWinBits.SetConstant( nHideWhenDeactivateId, 0 /*WB_HIDEWHENDEACTIVATE*/ );
+ nAutoHScrollId = pHS->getID( "WB_AUTOHSCROLL" );
+ aWinBits.SetConstant( nAutoHScrollId, sal::static_int_cast<INT32>(WB_AUTOHSCROLL) );
+ nAutoVScrollId = pHS->getID( "WB_AUTOVSCROLL" );
+ aWinBits.SetConstant( nAutoVScrollId, sal::static_int_cast<INT32>(WB_AUTOVSCROLL) );
+ nDDExtraWidthId = pHS->getID( "WB_DDEXTRAWIDTH" );
+ aWinBits.SetConstant( nDDExtraWidthId, 0 /*WB_DDEXTRAWIDTH*/ );
+ nWordBreakId = pHS->getID( "WB_WORDBREAK" );
+ aWinBits.SetConstant( nWordBreakId, sal::static_int_cast<INT32>(WB_WORDBREAK) );
+ nLeftLabelId = pHS->getID( "WB_LEFTLABEL" );
+ aWinBits.SetConstant( nLeftLabelId, 0 /*WB_LEFTLABEL*/ );
+ nHasLinesId = pHS->getID( "WB_HASLINES" );
+ aWinBits.SetConstant( nHasLinesId, sal::static_int_cast<INT32>(WB_HASLINES) );
+ nHasButtonsId = pHS->getID( "WB_HASBUTTONS" );
+ aWinBits.SetConstant( nHasButtonsId, sal::static_int_cast<INT32>(WB_HASBUTTONS) );
+ nRectStyleId = pHS->getID( "WB_RECTSTYLE" );
+ aWinBits.SetConstant( nRectStyleId, sal::static_int_cast<INT32>(WB_RECTSTYLE) );
+ nLineSpacingId = pHS->getID( "WB_LINESPACING" );
+ aWinBits.SetConstant( nLineSpacingId, sal::static_int_cast<INT32>(WB_LINESPACING) );
+ nSmallStyleId = pHS->getID( "WB_SMALLSTYLE" );
+ aWinBits.SetConstant( nSmallStyleId, sal::static_int_cast<INT32>(WB_SMALLSTYLE) );
+ nEnableResizingId = pHS->getID( "WB_ENABLERESIZING" );
+ aWinBits.SetConstant( nEnableResizingId, 0 /*WB_ENABLERESIZING*/ );
+ nDockableId = pHS->getID( "WB_DOCKABLE" );
+ aWinBits.SetConstant( nDockableId, sal::static_int_cast<INT32>(WB_DOCKABLE) );
+ nScaleId = pHS->getID( "WB_SCALE" );
+ aWinBits.SetConstant( nScaleId, sal::static_int_cast<INT32>(WB_SCALE) );
+ nIgnoreTabId = pHS->getID( "WB_IGNORETAB" );
+ aWinBits.SetConstant( nIgnoreTabId, sal::static_int_cast<INT32>(WB_IGNORETAB) );
+ nNoSplitDrawId = pHS->getID( "WB_NOSPLITDRAW" );
+ aWinBits.SetConstant( nNoSplitDrawId, sal::static_int_cast<INT32>(WB_NOSPLITDRAW) );
+ nTopImageId = pHS->getID( "WB_TOPIMAGE" );
+ aWinBits.SetConstant( nTopImageId, sal::static_int_cast<INT32>(WB_TOPIMAGE) );
+ nNoLabelId = pHS->getID( "WB_NOLABEL" );
+ aWinBits.SetConstant( nNoLabelId, sal::static_int_cast<INT32>(WB_NOLABEL) );
+ nVertId = pHS->getID( "WB_VERT" );
+ aWinBits.SetConstant( nVertId, sal::static_int_cast<INT32>(WB_VERT) );
+ nSingleLineId = pHS->getID( "WB_SINGLELINE" );
+ aWinBits.SetConstant( nSingleLineId, sal::static_int_cast<INT32>(WB_SINGLELINE) );
+ nSysWinId = pHS->getID( "WB_SYSTEMWINDOW" );
+ aWinBits.SetConstant( nSysWinId, sal::static_int_cast<INT32>(WB_SYSTEMWINDOW) );
+}
+{
+ /********** I n i t B a s i c T y p e s **************************/
+ InitLangType();
+ aBaseLst.Insert( pFieldUnits = InitFieldUnitsType(), LIST_APPEND );
+ aBaseLst.Insert( pTimeFieldFormat = InitTimeFieldFormat(), LIST_APPEND );
+ aBaseLst.Insert( pColor = InitColor(), LIST_APPEND );
+ aBaseLst.Insert( pMapUnit = InitMapUnit(), LIST_APPEND );
+ aBaseLst.Insert( pKey = InitKey(), LIST_APPEND );
+ aBaseLst.Insert( pTriState = InitTriState(), LIST_APPEND );
+ aBaseLst.Insert( pMessButtons = InitMessButtons(), LIST_APPEND );
+ aBaseLst.Insert( pMessDefButton = InitMessDefButton(), LIST_APPEND );
+
+ aBaseLst.Insert( pGeometry = InitGeometry(), LIST_APPEND );
+ aBaseLst.Insert( pLangGeometry = InitLangGeometry( pGeometry ),
+ LIST_APPEND );
+ aBaseLst.Insert( pStringList = InitStringList(), LIST_APPEND );
+ aBaseLst.Insert( pLangStringList = InitLangStringList( pStringList ),
+ LIST_APPEND );
+ aBaseLst.Insert( pStringTupel = InitStringTupel(), LIST_APPEND );
+ aBaseLst.Insert( pStringTupelList = InitStringTupelList( pStringTupel ),
+ LIST_APPEND );
+ aBaseLst.Insert( pLangStringTupelList =
+ InitLangStringTupelList( pStringTupelList ), LIST_APPEND );
+ aBaseLst.Insert( pStringLongTupel = InitStringLongTupel(), LIST_APPEND );
+ aBaseLst.Insert( pStringLongTupelList = InitStringLongTupelList( pStringLongTupel ),
+ LIST_APPEND );
+ aBaseLst.Insert( pLangStringLongTupelList =
+ InitLangStringLongTupelList( pStringLongTupelList ), LIST_APPEND );
+}
+{
+ /********** R E S O U R C E T Y P E N ******************************/
+ /********** R S C M G R **********************************************/
+ pRoot = pClassMgr = InitClassMgr();
+
+ /********** V e r s i o n s k o n t r o l l e ************************/
+ aVersion.pClass = new RscClass( pHS->getID( "VersionControl" ),
+ RSC_VERSIONCONTROL, pClassMgr );
+ aVersion = aVersion.pClass->Create( NULL, RSCINST() );
+
+ /********** S T R I N G **********************************************/
+ pClassString = InitClassString( pClassMgr );
+ pRoot->Insert( pClassString );
+
+ // String als Referenzklasse des Basisstrings einsetzen
+ aString.SetRefClass( pClassString );
+
+ /********** S T R I N G L I S T **************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "StringArray" );
+ pClassStringArray = new RscClass( nId, RSC_STRINGARRAY, pClassMgr );
+ pClassStringArray->SetCallPar( *pStdPar1, *pStdPar2, *pStdParType );
+ aNmTb.Put( nId, CLASSNAME, pClassStringArray );
+ pRoot->Insert( pClassStringArray );
+
+ // Variablen anlegen
+ nId = aNmTb.Put( "ItemList", VARNAME );
+ pClassStringArray->SetVariable( nId, pLangStringLongTupelList );
+
+ /********** B I T M A P **********************************************/
+ pClassBitmap = InitClassBitmap( pClassMgr );
+ pRoot->Insert( pClassBitmap );
+
+}
+{
+ /********** C O L O R ************************************************/
+ pClassColor = InitClassColor( pClassMgr, pColor );
+ pRoot->Insert( pClassColor );
+
+ /********** I M A G E ************************************************/
+ pClassImage = InitClassImage( pClassMgr, pClassBitmap, pClassColor );
+ pRoot->Insert( pClassImage );
+
+ /********** I M A G E L I S T ****************************************/
+ pClassImageList = InitClassImageList( pClassMgr, pClassBitmap,
+ pClassColor, pStringLongTupelList );
+ pRoot->Insert( pClassImageList );
+
+ /********** W I N D O W **********************************************/
+ pClassWindow = InitClassWindow( pClassMgr, pMapUnit,
+ pLangGeometry );
+ pRoot->Insert( pClassWindow );
+}
+{
+
+ /********** S Y S T E M W I N D O W **********************************/
+ pClassSystemWindow = InitClassSystemWindow( pClassWindow );
+ //aBaseLst.Insert( pClassSystemWindow, LIST_APPEND );
+ pRoot->Insert( pClassSystemWindow );
+
+ /********** W O R K W I N D O W **************************************/
+ pClassWorkWindow = InitClassWorkWindow( pClassSystemWindow );
+ pRoot->Insert( pClassWorkWindow );
+
+ /********** D I A L O G **********************************************/
+ // Klasse anlegen
+ pClassDialog = new RscClass( pHS->getID( "Dialog" ),
+ RSC_DIALOG, pClassSystemWindow );
+ pClassDialog->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aBaseLst.Insert( pClassDialog, LIST_APPEND );
+
+ /********** M O D A L D I A L O G ***********************************/
+ // Klasse anlegen
+ pClassModalDialog = InitClassModalDialog( pClassDialog );
+ pRoot->Insert( pClassModalDialog );
+
+ /********** M O D E L E S S D I A L O G ******************************/
+ // Klasse anlegen
+ pClassModelessDialog = InitClassModelessDialog( pClassDialog );
+ pRoot->Insert( pClassModelessDialog );
+}
+{
+ /********** C O N T R O L ********************************************/
+ pClassControl = InitClassControl( pClassWindow );
+ pRoot->Insert( pClassControl );
+
+ /********** B U T T O N **********************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "Button" );
+ pClassButton = new RscClass( nId, RSC_BUTTON, pClassControl );
+ pClassButton->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassButton );
+ pRoot->Insert( pClassButton );
+
+ /********** C H E C K B O X ******************************************/
+ pClassCheckBox = InitClassCheckBox( pClassButton );
+ pRoot->Insert( pClassCheckBox );
+
+ /********** P U S H B U T T O N **************************************/
+ // Klasse anlegen
+ pClassPushButton = InitClassPushButton( pClassButton );
+ pRoot->Insert( pClassPushButton );
+
+ /********** H E L P B U T T O N **************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "HelpButton" );
+ pClassHelpButton = new RscClass( nId, RSC_HELPBUTTON,
+ pClassPushButton );
+ pClassHelpButton->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassHelpButton );
+ pRoot->Insert( pClassHelpButton );
+
+ /********** O K B U T T O N ******************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "OKButton" );
+ pClassOKButton = new RscClass( nId, RSC_OKBUTTON,
+ pClassPushButton );
+ pClassOKButton->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassOKButton );
+ pRoot->Insert( pClassOKButton );
+
+ /********** C A N C E L B U T T O N **********************************/
+ // Klasse anlegen
+ nId = pHS->getID( "CancelButton" );
+ pClassCancelButton = new RscClass( nId, RSC_CANCELBUTTON,
+ pClassPushButton );
+ pClassCancelButton->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassCancelButton );
+ pRoot->Insert( pClassCancelButton );
+}
+{
+ /********** R A D I O B U T T O N ************************************/
+ pClassRadioButton = InitClassRadioButton( pClassButton );
+ pRoot->Insert( pClassRadioButton );
+
+ /********** I m a g e R a d i o B u t t o n **************************/
+ nId = pHS->getID( "ImageRadioButton" );
+ pClassImageRadioButton = InitClassImageRadioButton( pClassRadioButton,
+ pClassImage );
+ pRoot->Insert( pClassImageRadioButton );
+
+ /********** T R I S T A T E B O X ************************************/
+ pClassTriStateBox = InitClassTriStateBox( pClassControl, pTriState );
+ pRoot->Insert( pClassTriStateBox );
+
+ /********** I M A G E B U T T O N ************************************/
+ pClassImageButton = InitClassImageButton( pClassPushButton,
+ pClassImage, pTriState );
+ pRoot->Insert( pClassImageButton );
+
+ /********** E D I T **************************************************/
+ pClassEdit = InitClassEdit( pClassControl );
+ pRoot->Insert( pClassEdit );
+
+ /********** M U L T I L I N E E D I T ********************************/
+ pClassMultiLineEdit = InitClassMultiLineEdit( pClassEdit );
+ pRoot->Insert( pClassMultiLineEdit );
+
+ /********** S C R O L L B A R ****************************************/
+ pClassScrollBar = InitClassScrollBar( pClassControl );
+ pRoot->Insert( pClassScrollBar );
+
+}
+{
+ /********** L I S T B O X ********************************************/
+ pClassListBox = InitClassListBox( pClassControl, pLangStringLongTupelList );
+ pRoot->Insert( pClassListBox );
+
+ /********** M U L T I L I S T B O X **********************************/
+ pClassMultiListBox = InitClassMultiListBox( pClassListBox);
+ pRoot->Insert( pClassMultiListBox );
+
+ /********** C O M B O B O X ******************************************/
+ pClassComboBox = InitClassComboBox( pClassEdit, pLangStringList );
+ pRoot->Insert( pClassComboBox );
+
+ /********** F I X E D T E X T ****************************************/
+ pClassFixedText = InitClassFixedText( pClassControl );
+ pRoot->Insert( pClassFixedText );
+
+ /********** F i x e d B i t m a p ************************************/
+ pClassFixedBitmap = InitClassFixedBitmap( pClassControl, pClassBitmap );
+ pRoot->Insert( pClassFixedBitmap );
+
+ /********** F i x e d I m a g e **************************************/
+ pClassFixedImage = InitClassFixedImage( pClassControl, pClassImage );
+ pRoot->Insert( pClassFixedImage );
+
+ /********** G R O U P B O X ******************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "GroupBox" );
+ pClassGroupBox = new RscClass( nId, RSC_GROUPBOX, pClassControl );
+ pClassGroupBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassGroupBox );
+ pRoot->Insert( pClassGroupBox );
+
+ /********** K E Y C O D E ********************************************/
+ pClassKeyCode = InitClassKeyCode( pClassMgr, pKey );
+ pRoot->Insert( pClassKeyCode );
+ {
+ pLangClassKeyCode = new RscClassArray( pHS->getID( "LangKeyCode" ),
+ RSC_KEYCODE, pClassKeyCode, &aLangType );
+ aBaseLst.Insert( pLangClassKeyCode );
+ }
+
+ /********** A C C E L I T E M ***************************************/
+ pClassAccelItem = InitClassAccelItem( pClassMgr, pLangClassKeyCode );
+ pRoot->Insert( pClassAccelItem );
+}
+{
+ /********** A C C E L E R A T O R ************************************/
+ pClassAccel = InitClassAccel( pClassMgr, pClassAccelItem );
+ pRoot->Insert( pClassAccel );
+ nAcceleratorType = pClassAccel->GetId();
+
+ /********** A C C E L I T E M ***************************************/
+ // pClassAccel ist erst hier definiert
+ nId = aNmTb.Put( "SubAccelerator", VARNAME );
+ pClassAccelItem->SetVariable( nId, pClassAccel, NULL, VAR_SVDYNAMIC,
+ ACCELITEM_ACCEL );
+
+ /********** M E N U I T E M ******************************************/
+ pClassMenuItem = InitClassMenuItem( pClassMgr, pClassBitmap,
+ pLangClassKeyCode );
+ pRoot->Insert( pClassMenuItem );
+
+ /********** M E N U **************************************************/
+ pClassMenu = InitClassMenu( pClassMgr, pClassMenuItem );
+ pRoot->Insert( pClassMenu );
+
+ /********** M E N U I T E M ******************************************/
+ // pClassMenu ist erst hier definiert
+ nId = aNmTb.Put( "SubMenu", VARNAME );
+ pClassMenuItem->SetVariable( nId, pClassMenu, NULL, VAR_SVDYNAMIC,
+ RSC_MENUITEM_MENU );
+
+ /********** M E N U B U T T O N **************************************/
+ pClassMenuButton = InitClassMenuButton( pClassControl, pClassMenu );
+ pRoot->Insert( pClassMenuButton );
+
+ /********** M E S S A G E B O X **************************************/
+ pClassMessBox = InitClassMessBox( pClassMgr, pMessButtons,
+ pMessDefButton );
+ pRoot->Insert( pClassMessBox );
+
+ /********** I N F O B O X ********************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "InfoBox" );
+ pClassInfoBox = new RscClass( nId, RSC_INFOBOX, pClassMessBox );
+ pClassInfoBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassInfoBox );
+ pRoot->Insert( pClassInfoBox );
+
+ /********** W A R N I N G B O X **************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "WarningBox" );
+ pClassWarningBox = new RscClass( nId, RSC_WARNINGBOX, pClassMessBox );
+ pClassWarningBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassWarningBox );
+ pRoot->Insert( pClassWarningBox );
+
+ /********** E R R O R B O X ******************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "ErrorBox" );
+ pClassErrorBox = new RscClass( nId, RSC_ERRORBOX, pClassMessBox );
+ pClassErrorBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassErrorBox );
+ pRoot->Insert( pClassErrorBox );
+
+ /********** Q U E R Y B O X ******************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "QueryBox" );
+ pClassQueryBox = new RscClass( nId, RSC_QUERYBOX, pClassMessBox );
+ pClassQueryBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassQueryBox );
+ pRoot->Insert( pClassQueryBox );
+}
+{
+ /********** S P L I T T E R ******************************************/
+ pClassSplitter = InitClassSplitter( pClassWindow );
+ pRoot->Insert( pClassSplitter );
+
+ /********** S P L I T W I N D O W ************************************/
+ pClassSplitWindow = InitClassSplitWindow( pClassWindow );
+ pRoot->Insert( pClassSplitWindow );
+
+ /********** S P I N B U T T O N **************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "SpinButton" );
+ pClassSpinButton = new RscClass( nId, RSC_SPINBUTTON, pClassControl );
+ pClassSpinButton->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassSpinButton );
+ {
+ RscClient * pClient;
+
+ // Clientvariablen einfuegen
+ // Sysmodal
+ aBaseLst.Insert(
+ pClient = new RscClient( pHS->getID( "BOOL" ), RSC_NOTYPE,
+ &aWinBits, nRepeatId ),
+ LIST_APPEND );
+ nId = aNmTb.Put( "Repeat", VARNAME );
+ pClassSpinButton->SetVariable( nId, pClient, NULL,
+ VAR_NODATAINST, 0, nWinBitVarId );
+ }
+ pRoot->Insert( pClassSpinButton );
+}
+{
+ /********** T I M E **************************************************/
+ pClassTime = InitClassTime( pClassMgr );
+ pRoot->Insert( pClassTime );
+
+ /********** D A T E **************************************************/
+ pClassDate = InitClassDate( pClassMgr );
+ pRoot->Insert( pClassDate );
+}
+{
+ /********** S P I N F I E L D ****************************************/
+ pClassSpinField = InitClassSpinField( pClassEdit );
+ pRoot->Insert( pClassSpinField );
+}
+{
+ /********** P A T T E R N F I E L D **********************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassPatternFormatter( pClassSpinField );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassPatternField = InitClassPatternField( pClassTmp );
+ pRoot->Insert( pClassPatternField );
+ }
+ /********** N U M E R I C F I E L D **********************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassNumericFormatter( pClassSpinField );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassNumericField = InitClassNumericField( pClassTmp );
+ pRoot->Insert( pClassNumericField );
+ }
+ /********** M E T R I C F I E L D ************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassNumericFormatter( pClassSpinField );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+ pClassTmp = InitClassMetricFormatter( pClassTmp, pFieldUnits );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassMetricField = InitClassMetricField( pClassTmp );
+ pRoot->Insert( pClassMetricField );
+ }
+ /********** C U R R E N C Y F I E L D ********************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassNumericFormatter( pClassSpinField );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+ pClassTmp = InitClassCurrencyFormatter( pClassTmp, pFieldUnits );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassCurrencyField = InitClassCurrencyField( "CurrencyField", RSC_CURRENCYFIELD, pClassTmp );
+ pRoot->Insert( pClassCurrencyField );
+
+ pClassLongCurrencyField = InitClassCurrencyField( "LongCurrencyField", RSC_LONGCURRENCYFIELD, pClassTmp );
+ pRoot->Insert( pClassLongCurrencyField );
+
+ }
+ /********** D A T E F I E L D ****************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassDateFormatter( pClassSpinField, pClassDate );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassDateField = InitClassDateField( pClassTmp, pClassDate );
+ pRoot->Insert( pClassDateField );
+ }
+ /********** T I M E F I E L D ****************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassTimeFormatter( pClassSpinField, pClassTime,
+ pTimeFieldFormat );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassTimeField = InitClassTimeField( pClassTmp, pClassTime );
+ pRoot->Insert( pClassTimeField );
+ }
+ /********** P A T T E R N B O X **************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassPatternFormatter( pClassComboBox );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassPatternBox = InitClassPatternBox( pClassTmp );
+ pRoot->Insert( pClassPatternBox );
+ }
+ /********** N U M E R I C B O X **************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassNumericFormatter( pClassComboBox );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassNumericBox = InitClassNumericBox( pClassTmp );
+ pRoot->Insert( pClassNumericBox );
+ }
+}
+{
+ /********** M E T R I C B O X ****************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassNumericFormatter( pClassComboBox );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+ pClassTmp = InitClassMetricFormatter( pClassTmp, pFieldUnits );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassMetricBox = InitClassMetricBox( pClassTmp );
+ pRoot->Insert( pClassMetricBox );
+ }
+ /********** C U R R E N C Y B O X ************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassNumericFormatter( pClassComboBox );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+ pClassTmp = InitClassCurrencyFormatter( pClassTmp, pFieldUnits );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassCurrencyBox = InitClassCurrencyBox( "CurrencyBox", RSC_CURRENCYBOX, pClassTmp );
+ pRoot->Insert( pClassCurrencyBox );
+
+ pClassLongCurrencyBox = InitClassCurrencyBox( "LongCurrencyBox", RSC_LONGCURRENCYBOX, pClassTmp );
+ pRoot->Insert( pClassLongCurrencyBox );
+ }
+ /********** D A T E B O X ********************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassDateFormatter( pClassComboBox, pClassDate );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassDateBox = InitClassDateBox( pClassTmp, pClassDate );
+ pRoot->Insert( pClassDateBox );
+ }
+ /********** T I M E B O X ********************************************/
+ { // Mehrfachvererbung von Hand
+ RscTop * pClassTmp = InitClassTimeFormatter( pClassComboBox, pClassTime,
+ pTimeFieldFormat );
+ aBaseLst.Insert( pClassTmp, LIST_APPEND );
+
+ pClassTimeBox = InitClassTimeBox( pClassTmp, pClassTime );
+ pRoot->Insert( pClassTimeBox );
+ }
+ /********** D O C K I N G W I N D O W ********************************/
+ pClassDockingWindow = InitClassDockingWindow( pClassWindow, pMapUnit );
+ pRoot->Insert( pClassDockingWindow );
+
+ /********** T O O L B O X I T E M ************************************/
+ pClassToolBoxItem = InitClassToolBoxItem( pClassMgr, pClassBitmap,
+ pClassImage, pTriState );
+ pRoot->Insert( pClassToolBoxItem );
+
+ /********** T O O L B O X ********************************************/
+ pClassToolBox = InitClassToolBox( pClassDockingWindow, pClassToolBoxItem,
+ pClassImageList );
+ pRoot->Insert( pClassToolBox );
+
+ /********** S T A T U S B A R ****************************************/
+ pClassStatusBar = InitClassStatusBar( pClassWindow );
+ pRoot->Insert( pClassStatusBar );
+
+ /********** M O R E B U T T O N **************************************/
+ pClassMoreButton = InitClassMoreButton( pClassPushButton, pMapUnit );
+ pRoot->Insert( pClassMoreButton );
+
+ /********** F L O A T W I N D O W ************************************/
+ pClassFloatingWindow = InitClassFloatingWindow( pClassSystemWindow,
+ pMapUnit );
+ pRoot->Insert( pClassFloatingWindow );
+
+ /********** T A B P A G E ********************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "TabPage" );
+ pClassTabPage =
+ new RscClass( nId, RSC_TABPAGE, pClassWindow );
+ pClassTabPage->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassTabPage );
+ pRoot->Insert( pClassTabPage );
+
+ /********** T A B D I A L O G ****************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "TabDialog" );
+ pClassTabDialog =
+ new RscClass( nId, RSC_TABDIALOG, pClassModalDialog );
+ pClassTabDialog->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassTabDialog );
+ pRoot->Insert( pClassTabDialog );
+
+ /********** T A B C O N T R O L I T E M *******************************/
+ pClassTabControlItem = InitClassTabControlItem( pClassMgr,
+ pClassTabPage );
+ pRoot->Insert( pClassTabControlItem );
+
+ /********** T A B C O N T R O L **************************************/
+ pClassTabControl = InitClassTabControl( pClassControl,
+ pClassTabControlItem );
+ pRoot->Insert( pClassTabControl );
+
+ /********** F I X E D L I N E ****************************************/
+ // Klasse anlegen
+ nId = pHS->getID( "FixedLine" );
+ pClassFixedLine =
+ new RscClass( nId, RSC_FIXEDLINE, pClassControl );
+ pClassFixedLine->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+
+ INS_WINBIT(pClassFixedLine,Vert)
+
+ aNmTb.Put( nId, CLASSNAME, pClassFixedLine );
+ pRoot->Insert( pClassFixedLine );
+
+ /********** S C R O L L B A R B O X **********************************/
+ // Klasse anlegen
+ nId = pHS->getID( "ScrollBarBox" );
+ pClassScrollBarBox =
+ new RscClass( nId, RSC_SCROLLBARBOX, pClassWindow );
+ pClassScrollBarBox->SetCallPar( *pWinPar1, *pWinPar2, *pWinParType );
+ aNmTb.Put( nId, CLASSNAME, pClassScrollBarBox );
+ pRoot->Insert( pClassScrollBarBox );
+ INS_WINBIT(pClassScrollBarBox,Sizeable)
+
+ /********** S F X S T Y L E F A M I L Y I T E M **********************/
+ pClassSfxStyleFamilyItem = InitClassSfxStyleFamilyItem( pClassMgr,
+ pClassBitmap,
+ pClassImage,
+ pLangStringLongTupelList );
+ pRoot->Insert( pClassSfxStyleFamilyItem );
+
+ /********** S F X T E M P L A T E D I A L O G ************************/
+ pClassSfxTemplateDialog = InitClassSfxTemplateDialog( pClassMgr,
+ pClassSfxStyleFamilyItem );
+ pRoot->Insert( pClassSfxTemplateDialog );
+
+ /********** S F X I N F O I T E M ************************************/
+ pClassSfxSlotInfo = InitClassSfxSlotInfo( pClassMgr );
+ pRoot->Insert( pClassSfxSlotInfo );
+}
+ NameToVerCtrl( aVersion, pRoot, pClassString );
+
+ aNmTb.SetSort();
+}
+