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



#ifndef _LAYOUT_POST_HXX
#define _LAYOUT_POST_HXX

#if ENABLE_LAYOUT

/* Allow re-inclusion for cxx file. */
#undef _LAYOUT_PRE_HXX


#undef AdvancedButton
#undef ApplyButton
#undef Box
#undef Button
#undef CancelButton
#undef CheckBox
#undef ComboBox
#undef Container
#undef Control
#undef Dialog
#undef Edit
#undef ErrorBox
#undef FixedImage
#undef FixedInfo
#undef FixedLine
#undef FixedText
#undef HBox
#undef HelpButton
#undef IgnoreButton
#undef ImageButton
#undef InfoBox
#undef ListBox
#undef MessBox
#undef MessageBox
#undef MetricField
#undef MetricFormatter
#undef MoreButton
#undef MultiLineEdit
#undef MultiListBox
#undef NoButton
#undef NumericField
#undef NumericFormatter
#undef OKButton
#undef Plugin
#undef ProgressBar
#undef PushButton
#undef QueryBox
#undef RadioButton
#undef ResetButton
#undef RetryButton
#undef SfxTabPage
#undef SfxTabDialog
#undef SpinField
#undef TabDialog
#undef TabControl
#undef TabPage
#undef Table
#undef VBox
#undef WarningBox
#undef YesButton

#undef SvxFontListBox
#undef SvxLanguageBox

#undef ModalDialog
#undef ModelessDialog
#undef ScExpandedFixedText
#undef SfxDialog
#undef SfxModalDialog
#undef SfxModelessDialog

#undef Window

#endif /* ENABLE_LAYOUT */

#endif /* _LAYOUT_POST_HXX */
