/**************************************************************
 * 
 * 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 _SHELLID_HXX
#define _SHELLID_HXX

#include <sfx2/shell.hxx>

/*--------------------------------------------------------------------
	Beschreibung:	Mapping fuer UI-Parameter
 --------------------------------------------------------------------*/

#define SW_BASESHELL			(SFX_INTERFACE_SW_START + 1)
#define SW_TEXTSHELL			(SFX_INTERFACE_SW_START + 2)
#define SW_LISTSHELL			(SFX_INTERFACE_SW_START + 3)
#define SW_TABSHELL 			(SFX_INTERFACE_SW_START + 4)
#define SW_FRAMESHELL			(SFX_INTERFACE_SW_START + 5)
#define SW_GRFSHELL 			(SFX_INTERFACE_SW_START + 6)
#define SW_OLESHELL 			(SFX_INTERFACE_SW_START + 7)
#define SW_DRAWSHELL			(SFX_INTERFACE_SW_START + 8)
#define SW_DRWTXTSHELL			(SFX_INTERFACE_SW_START + 9)

#define SW_INTERFACE_MODULE 	(SFX_INTERFACE_SW_START + 10)
#define SW_DOCSHELL 			(SFX_INTERFACE_SW_START + 11)
#define SW_VIEWSHELL			(SFX_INTERFACE_SW_START + 12)
#define SW_PAGEPREVIEW			(SFX_INTERFACE_SW_START + 13)
#define SW_GLOSDOCSHELL 		(SFX_INTERFACE_SW_START + 14)
#define SW_SRC_VIEWSHELL 		(SFX_INTERFACE_SW_START + 15)

#define SW_BEZIERSHELL 			(SFX_INTERFACE_SW_START + 16)
#define SW_DRAWBASESHELL		(SFX_INTERFACE_SW_START + 17)
#define SW_DRAWFORMSHELL		(SFX_INTERFACE_SW_START + 18)

#define SW_WEBDOCSHELL			(SFX_INTERFACE_SW_START + 19)
#define SW_WEBVIEWSHELL			(SFX_INTERFACE_SW_START + 20)
#define SW_WEBBASESHELL			(SFX_INTERFACE_SW_START + 21)
#define SW_WEBTEXTSHELL			(SFX_INTERFACE_SW_START + 22)
#define SW_WEBFRAMESHELL		(SFX_INTERFACE_SW_START + 23)
#define SW_WEBGLOSDOCSHELL 		(SFX_INTERFACE_SW_START + 24)
#define SW_WEBLISTSHELL			(SFX_INTERFACE_SW_START + 25)
#define SW_WEBTABSHELL 			(SFX_INTERFACE_SW_START + 26)
#define SW_WEBGRFSHELL 			(SFX_INTERFACE_SW_START + 27)
#define SW_WEBOLESHELL 			(SFX_INTERFACE_SW_START + 28)
#define SW_WEBDRAWBASESHELL		(SFX_INTERFACE_SW_START + 29)
#define SW_WEBDRAWFORMSHELL		(SFX_INTERFACE_SW_START + 30)

#define SW_MEDIASHELL 			(SFX_INTERFACE_SW_START + 31)
#define SW_ANNOTATIONSHELL 		(SFX_INTERFACE_SW_START + 32)

#endif // _UIPARAM_HXX
