office-gobmx/dbaccess/source/ui/dlg/AutoControls_tmpl.hrc

516 lines
42 KiB
Text

/*************************************************************************
*
* 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.
*
************************************************************************/
#ifndef _DBAUI_AUTOCONTROLS_HRC_
#define _DBAUI_AUTOCONTROLS_HRC_
#ifndef _DBA_DBACCESS_HELPID_HRC_
#include "dbaccess_helpid.hrc"
#endif
#ifndef _DBU_DLG_HRC_
#include "dbu_dlg.hrc"
#endif
#ifndef _DBA_DBACCESS_HELPID_HRC_
#include "dbaccess_helpid.hrc"
#endif
#define CHECKBOX_HEIGHT 8
#define FIXEDTEXT_HEIGHT 8
#define RELATED_CONTROLS 4
#define UNRELATED_CONTROLS 7
#define EDIT_HEIGHT 12
#define EDIT_X 101
#define FT_AUTOJDBCDRIVERCLASS 80
#define FT_AUTOFIELDSEPARATOR 81
#define FT_AUTOTEXTSEPARATOR 82
#define FT_AUTODECIMALSEPARATOR 83
#define FT_AUTOTHOUSANDSSEPARATOR 84
#define FT_AUTOPORTNUMBER 85
#define FT_AUTOPORTNUMBERDEFAULT 86
#define FT_AUTOBASEDN 87
#define FT_AUTOHOSTNAME 88
#define FT_AUTOBROWSEURL 89
#define FT_AUTODATABASENAME 90
#define FT_AUTOWIZARDHELPTEXT 91
#define FT_AUTOWIZARDHEADER 92
#define FT_AUTOEXTENSIONHEADER 93
#define FT_AUTOOWNEXTENSIONAPPENDIX 94
#define FT_CHARSET 95
#define FT_SOCKET 96
#define FL_AUTOSEPARATOR2 80
#define FL_DATACONVERT 81
#define FL_SEPARATOR1 82
#define CB_AUTOHEADER 80
#define PB_AUTOTESTDRIVERCLASS 80
#define PB_AUTOBROWSEURL 81
#define CM_AUTOFIELDSEPARATOR 80
#define CM_AUTOTEXTSEPARATOR 81
#define CM_AUTODECIMALSEPARATOR 82
#define CM_AUTOTHOUSANDSSEPARATOR 83
#define NF_AUTOPORTNUMBER 80
#define ET_AUTOBASEDN 80
#define ET_AUTOHOSTNAME 81
#define ET_AUTODATABASENAME 82
#define ET_AUTOBROWSEURL 83
#define ET_AUTOJDBCDRIVERCLASS 84
#define ET_AUTOOWNEXTENSION 85
#define ET_SOCKET 86
#define RB_AUTOACCESSCTEXTFILES 80
#define RB_AUTOACCESSCCSVFILES 81
#define RB_AUTOACCESSOTHERS 82
#define LB_CHARSET 80
#define STR_AUTOFIELDSEPARATORLIST 100
#define STR_AUTOTEXTSEPARATORLIST 101
#define STR_AUTOTEXT_FIELD_SEP_NONE 102
#define STR_AUTODELIMITER_MISSING 103
#define STR_AUTODELIMITER_MUST_DIFFER 104
#define STR_AUTONO_WILDCARDS 105
#define AUTO_WIZARDHELPTEXT( AUTO_LINECOUNT ) \
FixedText FT_AUTOWIZARDHEADER \
{ \
Pos = MAP_APPFONT ( START_X , 8 ) ; \
Size = MAP_APPFONT ( (WIZARD_PAGE_X - START_X) - 12 , 2 * FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = ""; \
WordBreak = TRUE; \
}; \
\
FixedText FT_AUTOWIZARDHELPTEXT \
{ \
Pos = MAP_APPFONT ( START_X , INIT_Y ) ; \
Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - 6 , AUTO_LINECOUNT * FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = ""; \
WordBreak = TRUE; \
};
// -------------------------------------------------------------------------------------------------
#define AUTO_BROWSECONTROLGROUP( AUTO_X, AUTO_Y, AUTOPAGE_X, AUTO_HID) \
FixedText FT_AUTOBROWSEURL { \
Pos = MAP_APPFONT ( AUTO_X , AUTO_Y ) ; \
Size = MAP_APPFONT ( AUTOPAGE_X - AUTO_X - 6 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = ""; \
}; \
\
\
Edit ET_AUTOBROWSEURL \
{ \
Pos = MAP_APPFONT ( AUTO_X , AUTO_Y + FIXEDTEXT_HEIGHT + 3) ; \
Size = MAP_APPFONT ( AUTOPAGE_X - AUTO_X - 6 - 3 - BUTTON_WIDTH , EDIT_HEIGHT ) ; \
HelpId = AUTO_HID; \
TabStop = TRUE ; \
Border = TRUE ; \
}; \
\
PushButton PB_AUTOBROWSEURL \
{ \
Pos = MAP_APPFONT ( AUTOPAGE_X - BUTTON_WIDTH - 6 , AUTO_Y + FIXEDTEXT_HEIGHT + 2 ) ; \
Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; \
HelpId = (AUTO_HID + 1); \
TabStop = TRUE ; \
Text[ en-US ] = "Browse"; \
};
// --------------------------------------------------------------------------------------------------
#define AUTO_NAMECONTROLGROUP(AUTO_Y, AUTO_HID) \
FixedText FT_AUTODATABASENAME \
{ \
Pos = MAP_APPFONT ( START_X , AUTO_Y + 2) ; \
Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Database name"; \
}; \
\
Edit ET_AUTODATABASENAME \
{ \
Pos = MAP_APPFONT ( EDIT_X, AUTO_Y) ; \
Size = MAP_APPFONT ( 97, EDIT_HEIGHT ) ; \
HelpId = AUTO_HID; \
TabStop = TRUE ; \
Border = TRUE ; \
};
// --------------------------------------------------------------------------------------------------
#define AUTO_HOSTCONTROLGROUP(AUTO_Y, AUTO_HID) \
FixedText FT_AUTOHOSTNAME \
{ \
Pos = MAP_APPFONT (START_X , AUTO_Y + 2 ) ; \
Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ); \
Text [ en-US ] = "Server" ; \
}; \
\
Edit ET_AUTOHOSTNAME \
{ \
Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \
Size = MAP_APPFONT ( 60, EDIT_HEIGHT ) ; \
HelpId = AUTO_HID; \
TabStop = TRUE ; \
Border = TRUE ; \
};
// --------------------------------------------------------------------------------------------------
#define AUTO_BASEDNCONTROLGROUP(AUTO_Y, AUTO_HID) \
FixedText FT_AUTOBASEDN \
{ \
Pos = MAP_APPFONT (START_X , AUTO_Y + 2 ) ; \
Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \
Text [ en-US ] = "Base ~DN" ; \
}; \
\
Edit ET_AUTOBASEDN \
{ \
HelpId = AUTO_HID ; \
Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \
Size = MAP_APPFONT ( 60, EDIT_HEIGHT ) ; \
TabStop = TRUE ; \
Border = TRUE ; \
}; \
// --------------------------------------------------------------------------------------------------
#define AUTO_PORTCONTROLGROUP(AUTO_Y, AUTO_HID) \
FixedText FT_AUTOPORTNUMBER \
{ \
Pos = MAP_APPFONT (START_X , AUTO_Y +2) ; \
Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \
Text [ en-US ] = "~Port number" ; \
}; \
\
NumericField NF_AUTOPORTNUMBER \
{ \
HelpId = AUTO_HID ; \
Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \
Size = MAP_APPFONT ( 22 , EDIT_HEIGHT ) ; \
TabStop = TRUE ; \
Border = TRUE ; \
NoThousandSep = TRUE; \
}; \
\
FixedText FT_AUTOPORTNUMBERDEFAULT \
{ \
HelpId = AUTO_HID + 1 ; \
Pos = MAP_APPFONT (EDIT_X + 22 + UNRELATED_CONTROLS, AUTO_Y +2) ; \
Size = MAP_APPFONT ( WIZARD_PAGE_X - EDIT_X - 22 - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "" ; \
};
//-------------------------------------------------------------------------
#define AUTO_CHARSET( AUTO_Y, AUTOPAGE_X ) \
FixedLine FL_DATACONVERT \
{ \
Pos = MAP_APPFONT ( 4 , AUTO_Y ) ; \
Size = MAP_APPFONT ( AUTOPAGE_X - 2*RELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \
Text [ en-US ] = "Data conversion"; \
}; \
FixedText FT_CHARSET \
{ \
Pos = MAP_APPFONT ( 6 , AUTO_Y + RELATED_CONTROLS + FIXEDTEXT_HEIGHT ) ; \
Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \
Text [ en-US ] = "~Character set" ; \
}; \
ListBox LB_CHARSET \
{ \
Border = TRUE ; \
Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + RELATED_CONTROLS + FIXEDTEXT_HEIGHT -1 ) ; \
Size = MAP_APPFONT ( AUTOPAGE_X - EDIT_X - 6 , 60 ) ; \
TabStop = TRUE ; \
HelpId = HID_DSADMIN_CHARSET; \
DropDown = TRUE ; \
CurPos = 0 ; \
}; \
// --------------------------------------------------------------------------------------------------
#define AUTO_SEPARATORCONTROLGROUP(AUTO_Y,AUTOPAGE_X) \
\
FixedText FT_AUTOEXTENSIONHEADER \
{ \
Pos = MAP_APPFONT ( START_X , AUTO_Y) ; \
Size = MAP_APPFONT ( AUTOPAGE_X - 2*START_X , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Specify the type of files you want to access" ; \
}; \
\
RadioButton RB_AUTOACCESSCTEXTFILES \
{ \
HelpId = HID_PAGE_DBWIZARD_TEXT_RB_ACCESSTXTFILES; \
Pos = MAP_APPFONT (START_X + 6 , AUTO_Y + FIXEDTEXT_HEIGHT + RELATED_CONTROLS); \
Size = MAP_APPFONT ( AUTOPAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Plain text files (*.txt)" ; \
}; \
\
RadioButton RB_AUTOACCESSCCSVFILES \
{ \
HelpId = HID_PAGE_DBWIZARD_TEXT_RB_ACCESSCSVFILES; \
Pos = MAP_APPFONT (START_X + 6 , AUTO_Y + 2*FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS); \
Size = MAP_APPFONT ( AUTOPAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "'Comma separated value' files (*.csv)" ; \
}; \
\
RadioButton RB_AUTOACCESSOTHERS \
{ \
HelpId = HID_PAGE_DBWIZARD_TEXT_RB_ACCESSOTHERFILES; \
Pos = MAP_APPFONT (START_X + 6 , AUTO_Y + 3*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS); \
Size = MAP_APPFONT ( 50 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Custom:" ; \
}; \
\
Edit ET_AUTOOWNEXTENSION \
{ \
HelpId = HID_PAGE_DBWIZARD_TEXT_ET_OWNEXTENSION; \
Pos = MAP_APPFONT (START_X + 66, AUTO_Y + 3*FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS - 2 ) ; \
Size = MAP_APPFONT ( 60, EDIT_HEIGHT ) ; \
TabStop = TRUE ; \
Border = TRUE ; \
}; \
\
FIXEDTEXT FT_AUTOOWNEXTENSIONAPPENDIX \
{ \
Pos = MAP_APPFONT (START_X + 130 , AUTO_Y + 3 * ( FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ); \
Size = MAP_APPFONT ( AUTOPAGE_X - 6 -(START_X + 130), FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Custom: *.abc" ; \
}; \
\
FixedLine FL_AUTOSEPARATOR2 \
{ \
Pos = MAP_APPFONT ( START_X , AUTO_Y + 50) ; \
Size = MAP_APPFONT ( AUTOPAGE_X - 2 * START_X , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Row Format"; \
}; \
\
FixedText FT_AUTOFIELDSEPARATOR \
{ \
Pos = MAP_APPFONT ( START_X + INDENTED_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT ) ; \
Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Field separator" ; \
}; \
ComboBox CM_AUTOFIELDSEPARATOR \
{ \
Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT - 2 ) ; \
Size = MAP_APPFONT ( 32 , 60 ) ; \
Text = ";" ; \
TabStop = TRUE ; \
DropDown = TRUE ; \
HelpId = HID_DSADMIN_FIELD_SEPARATOR; \
}; \
\
FixedText FT_AUTOTEXTSEPARATOR \
{ \
Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS + EDIT_HEIGHT ) ; \
Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Text separator" ; \
}; \
ComboBox CM_AUTOTEXTSEPARATOR \
{ \
Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + RELATED_CONTROLS + EDIT_HEIGHT - 2 ) ; \
Size = MAP_APPFONT ( 32 , 60 ) ; \
Text = "\"" ; \
TabStop = TRUE ; \
DropDown = TRUE ; \
HelpId = HID_DSADMIN_TEXT_SEPARATOR; \
}; \
FixedText FT_AUTODECIMALSEPARATOR \
{ \
Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS + 2*EDIT_HEIGHT ) ; \
Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Decimal separator" ; \
}; \
ComboBox CM_AUTODECIMALSEPARATOR \
{ \
Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 2*RELATED_CONTROLS + 2*EDIT_HEIGHT - 2 ) ; \
Size = MAP_APPFONT ( 32 , 60 ) ; \
TabStop = TRUE ; \
MaxTextLength = 1 ; \
DropDown = TRUE ; \
StringList = \
{ \
"." ; \
"," ; \
";" ; \
":" ; \
}; \
HelpId = HID_DSADMIN_DECIMAL_SEPARATOR; \
}; \
FixedText FT_AUTOTHOUSANDSSEPARATOR \
{ \
Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + 3*EDIT_HEIGHT ) ; \
Size = MAP_APPFONT ( EDIT_X - 7 , FIXEDTEXT_HEIGHT ) ; \
Text[ en-US ] = "Thousands separator" ; \
}; \
ComboBox CM_AUTOTHOUSANDSSEPARATOR \
{ \
Pos = MAP_APPFONT ( EDIT_X , AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 3*RELATED_CONTROLS + 3*EDIT_HEIGHT - 2 ) ; \
Size = MAP_APPFONT ( 32 , 44 ) ; \
Text = "." ; \
TabStop = TRUE ; \
MaxTextLength = 1 ; \
DropDown = TRUE ; \
StringList = \
{ \
"," ; \
"." ; \
}; \
HelpId = HID_DSADMIN_THOUSANDS_SEPARATOR; \
}; \
\
CheckBox CB_AUTOHEADER \
{ \
TabStop = TRUE ; \
Pos = MAP_APPFONT ( START_X + INDENTED_X, AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 4*RELATED_CONTROLS + 4*EDIT_HEIGHT ) ; \
Size = MAP_APPFONT ( 150 , CHECKBOX_HEIGHT ) ; \
HelpId = HID_DSADMIN_TEXT_HEADER; \
Text [ en-US ] = "~Text contains headers" ; \
}; \
\
AUTO_CHARSET( AUTO_Y + 50 + UNRELATED_CONTROLS + FIXEDTEXT_HEIGHT + 4*RELATED_CONTROLS + 4*EDIT_HEIGHT + CHECKBOX_HEIGHT + UNRELATED_CONTROLS, AUTOPAGE_X ) \
\
String STR_AUTOTEXT_FIELD_SEP_NONE \
{ \
Text[ en-US ] = "{None}"; \
}; \
\
String STR_AUTOTEXTSEPARATORLIST \
{ \
Text = "\"\t34\t'\t39" ; \
}; \
\
String STR_AUTOFIELDSEPARATORLIST \
{ \
Text [ x-comment ] = "EM Dec 2002: \'Space\' refers to what you get when you hit the space bar on your keyboard."; \
Text [ en-US ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Space}\t32" ; \
}; \
\
String STR_AUTODELIMITER_MISSING \
{ \
Text[ en-US ] = "#1 must be set." ; \
}; \
String STR_AUTODELIMITER_MUST_DIFFER \
{ \
Text[ en-US ] = "#1 and #2 must be different." ; \
}; \
String STR_AUTONO_WILDCARDS \
{ \
Text[ en-US ] = "Wildcards such as ?,* are not allowed in #1." ; \
};
#define NAMECONTROLGROUP_HEIGHT (FIXEDTEXT_HEIGHT + 2 + EDIT_HEIGHT)
#define BROWSECONTROLGROUP_HEIGHT ( FIXEDTEXT_HEIGHT + 2 + BUTTON_HEIGHT)
// --------------------------------------------------------------------------------------------------
#define AUTO_HELP_BROWSECONTROLGROUP(AUTO_LINECOUNT, AUTO_HID) \
AUTO_WIZARDHELPTEXT(AUTO_LINECOUNT) \
AUTO_BROWSECONTROLGROUP(START_X, INIT_Y + AUTO_LINECOUNT * FIXEDTEXT_HEIGHT + 2, WIZARD_PAGE_X, AUTO_HID)
// --------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------
#define AUTO_JDBCDRIVERCLASSGROUP(AUTO_Y, AUTO_HID) \
\
FixedText FT_AUTOJDBCDRIVERCLASS \
{ \
Pos = MAP_APPFONT ( 6 , AUTO_Y) ; \
Size = MAP_APPFONT ( PAGE_X - 12 , FIXEDTEXT_HEIGHT ) ; \
Text [ en-US ] = "JDBC d~river class"; \
}; \
\
Edit ET_AUTOJDBCDRIVERCLASS \
{ \
Pos = MAP_APPFONT ( START_X, AUTO_Y + FIXEDTEXT_HEIGHT + RELATED_CONTROLS ) ; \
Size = MAP_APPFONT ( WIZARD_PAGE_X - START_X - BUTTON_WIDTH - RELATED_CONTROLS - UNRELATED_CONTROLS , EDIT_HEIGHT ) ; \
TabStop = TRUE ; \
Border = TRUE ; \
HelpId = AUTO_HID; \
}; \
\
PushButton PB_AUTOTESTDRIVERCLASS \
{ \
TabStop = TRUE ; \
Pos = MAP_APPFONT ( WIZARD_PAGE_X - BUTTON_WIDTH - UNRELATED_CONTROLS , AUTO_Y + FIXEDTEXT_HEIGHT + 2) ; \
Size = MAP_APPFONT ( BUTTON_WIDTH , BUTTON_HEIGHT ) ; \
Size = MAP_APPFONT (50, 14); \
HelpId = AUTO_HID + 1; \
Text[ en-US ] = "Test class" ; \
};
// --------------------------------------------------------------------------------------------------
#define AUTO_SOCKETCONTROLGROUP(AUTO_Y) \
FixedText FT_SOCKET \
{ \
Pos = MAP_APPFONT (START_X , AUTO_Y +2) ; \
Size = MAP_APPFONT ( EDIT_X - START_X - UNRELATED_CONTROLS , FIXEDTEXT_HEIGHT ) ; \
Text [ en-US ] = "Socket" ; \
}; \
\
Edit ET_SOCKET \
{ \
Pos = MAP_APPFONT (EDIT_X, AUTO_Y ) ; \
Size = MAP_APPFONT ( 97, EDIT_HEIGHT ) ; \
TabStop = TRUE ; \
Border = TRUE ; \
};
#define AUTOHELP_JDBCCONTROLGROUP( AUTO_HID ) \
AUTO_WIZARDHELPTEXT( 6 ) \
AUTO_NAMECONTROLGROUP( INIT_Y + 6 * FIXEDTEXT_HEIGHT + 2, AUTO_HID ) \
AUTO_HOSTCONTROLGROUP(96, AUTO_HID + 1) \
AUTO_PORTCONTROLGROUP(113, AUTO_HID + 2 ) \
AUTO_SOCKETCONTROLGROUP(129) \
AUTO_JDBCDRIVERCLASSGROUP(146, AUTO_HID + 3)
// --------------------------------------------------------------------------------------------------
#endif