/**************************************************************
 * 
 * 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 <svl/solar.hrc>
#include <helpid.hrc>

#define TB_LINKS                32014

// gemeinsame Id's
#define CB_DISPLAY_AS_ICON	   12
#define FI_DISPLAY			   13
#define PB_CHANGE_ICON         14

#define STR_AUTOLINK							32006
#define STR_MANUALLINK							32007
#define STR_BROKENLINK							32008
#define STR_GRAPHICLINK 						32009
#define STR_BUTTONCLOSE 						32010
#define STR_CLOSELINKMSG						32011
#define STR_CLOSELINKMSG_MULTI					32024
#define STR_WAITINGLINK		   					32028
#define STR_EDIT_APPLET							32029


#define FL_CHOICE			   15
#define LB_INSERT_LIST			7

#define MD_PASTE_OBJECT 	32001
#define S_OBJECT			   1
#define RB_PASTE			   20
#define RB_PASTE_LINK		   21
#define FT_OBJECT_SOURCE	   22
#define FT_SOURCE			   23

#define MD_UPDATE_BASELINKS 32002
#define LB_LINKS			   30
#define FT_FILES			   31
#define FT_LINKS			   32
#define FT_TYPE 			   33
#define FT_STATUS			   34
#define PB_UPDATE_NOW		   35
#define PB_OPEN_SOURCE		   36
#define PB_CHANGE_SOURCE	   37
#define PB_BREAK_LINK		   38
#define FT_SOURCE2			   39
#define FT_TYPE2			   40
#define FT_UPDATE			   41
#define RB_AUTOMATIC		   42
#define RB_MANUAL			   43
#define FT_FULL_SOURCE_NAME    44
#define FT_FULL_TYPE_NAME	   45
#define GB_LINK 			   46
#define FT_FILES2			   47
#define FT_FULL_FILE_NAME	   48

#define MD_LINKEDIT 		   32004
#define ED_FULL_SOURCE_NAME    1

#define ED_FILEPATH				10
#define BTN_FILEPATH			11
#define CB_FILELINK				12

#define MD_INSERT_OBJECT_PLUGIN	32008
#define ED_FILEURL				10
#define BTN_FILEURL				11
#define GB_FILEURL				12
#define ED_PLUGINS_OPTIONS		20
#define GB_PLUGINS_OPTIONS		21

#define MD_INSERT_OBJECT_APPLET	32009
#define FT_CLASSFILE			10
#define ED_CLASSFILE			11
#define FT_CLASSLOCATION		12
#define ED_CLASSLOCATION		12
#define BTN_CLASS				13
#define GB_CLASS				14
#define ED_APPLET_OPTIONS		20
#define GB_APPLET_OPTIONS		21

#define MD_INSERT_OLEOBJECT		32010
#define RB_NEW_OBJECT			10
#define RB_OBJECT_FROMFILE		11
#define LB_OBJECTTYPE			12
#define GB_OBJECT				13
#define STR_FILE				14

#define MD_INSERT_OBJECT_IFRAME 32011
#define FT_FRAMENAME					3
#define ED_FRAMENAME					4
#define FT_URL							5
#define ED_URL							6
#define BT_FILEOPEN						7
#define NM_MARGINHEIGHT					8
#define FT_MARGINHEIGHT					9
#define NM_MARGINWIDTH					10
#define FT_MARGINWIDTH					11
#define GB_MARGIN						12
#define RB_SCROLLINGON					13
#define RB_SCROLLINGOFF					14
#define RB_SCROLLINGAUTO				15
#define GB_SCROLLING					16
#define GB_BORDER						17
#define RB_FRMBORDER_ON					18
#define RB_FRMBORDER_INHERIT			19
#define RB_FRMBORDER_OFF				20
#define CB_MARGINWIDTHDEFAULT			21
#define CB_MARGINHEIGHTDEFAULT			22
#define FL_SEP_LEFT                     46
#define FL_SEP_RIGHT                    47

