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

// #include *****************************************************************

#include "rcid.hrc"

// Dialoge ******************************************************************

#define DLG_SAVE_REGISTRY_FILE  (RC_DIALOG_BEGIN +  1)

#define DLG_PASSWD              (RC_DIALOG_BEGIN +  3)
#define DLG_PASTESPECIAL        (RC_DIALOG_BEGIN +  5)
#define DLG_LINKS               (RC_DIALOG_BEGIN +  6)
#define DLG_LINKEDIT            (RC_DIALOG_BEGIN +  7)
#define DLG_INSERT_ABSTRACT     (RC_DIALOG_BEGIN +  8)
#define DLG_ASCII_FILTER     	(RC_DIALOG_BEGIN +  9)
#define DLG_WORDCOUNT           (RC_DIALOG_BEGIN + 10)
#define RID_QB_SPELL_CONTINUE   (RC_DIALOG_BEGIN + 11)
#define STR_SPELLING_COMPLETED  (RC_DIALOG_BEGIN + 12)

// Strings ******************************************************************

#define STR_LINKEDIT_TEXT       (RC_DIALOG_BEGIN +  1)

#define STR_CLOSELINKMSG        (RC_DIALOG_BEGIN +  3)
#define STR_PATH_NOT_FOUND      (RC_DIALOG_BEGIN +  4)

#define STR_FLT_SGV             (RC_DIALOG_BEGIN +  8)

#define STR_NEWDLG_NAME         (RC_DIALOG_BEGIN + 10)

// Controls *****************************************************************

#define CB_USE_PASSWD           (RC_DIALOG_BEGIN     )
#define CB_READ_ONLY            (RC_DIALOG_BEGIN +  1)

// Bereiche *****************************************************************


#define RC_REGIONSW_BEGIN 		(RC_DIALOG_BEGIN + 60)
#define RC_REGIONSW_END    		(RC_DIALOG_BEGIN + 79)

#define RC_MACASSGN_BEGIN 		(RC_DIALOG_BEGIN + 80)
#define RC_MACASSGN_END    		(RC_DIALOG_BEGIN + 89)

#define RC_DLG_ADDR			(RC_DIALOG_BEGIN + 90)
#define RC_SWDLG_BACKGROUND		(RC_DIALOG_BEGIN + 91)
#define RC_DLG_SWNUMFMTDLG		(RC_DIALOG_BEGIN + 92)
#define RC_DLG_SWBORDERDLG		(RC_DIALOG_BEGIN + 93)
#define RC_DLG_SWWRAPDLG		(RC_DIALOG_BEGIN + 94)
#define RC_DLG_SWFLDEDITDLG		(RC_DIALOG_BEGIN + 95)
// Ueberlaufpruefung ********************************************************

#define DIALOG_ACT_END  RC_MACASSGN_END

#if DIALOG_ACT_END > RC_DIALOG_END
#error Resource-Ueberlauf in #file, #line
#endif

#endif

