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

#include <svtools/controldims.hrc>

//============================================================================

#define FT_INFOTEXT                 10
#define FL_INFOTEXT                 11

#define FT_MASTERPASSWORD_CRT       20
#define ED_MASTERPASSWORD_CRT       21
#define FT_MASTERPASSWORD_REPEAT	22
#define ED_MASTERPASSWORD_REPEAT	23
#define FT_MASTERPASSWORD_WARNING	24
#define FL_FIXED_LINE               30

#define FT_CAUTIONTEXT              30
#define FL_CAUTIONTEXT              31

#define BTN_MASTERPASSCRT_OK		50
#define BTN_MASTERPASSCRT_CANCEL	51
#define BTN_MASTERPASSCRT_HELP		52

#define ROW_0                       (RSC_SP_FLGR_INNERBORDER_TOP)
#define ROW_1                       (ROW_0+7*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_2                       (ROW_1+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_3                       (ROW_2+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_4                       (ROW_3+RSC_CD_TEXTBOX_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_5                       (ROW_4+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_6                       (ROW_5+RSC_CD_TEXTBOX_HEIGHT+RSC_SP_CTRL_X)
#define ROW_7                       (ROW_6+8*RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_8                       (ROW_7+RSC_CD_FIXEDLINE_HEIGHT+RSC_SP_CTRL_DESC_Y)
#define ROW_9                       (ROW_8+RSC_CD_PUSHBUTTON_HEIGHT+RSC_SP_CTRL_X)

#define COL_0                       (RSC_SP_FLGR_INNERBORDER_LEFT)
#define COL_2                       (DLG_WIDTH-RSC_SP_FLGR_INNERBORDER_LEFT-RSC_CD_PUSHBUTTON_WIDTH)
#define COL_1                       (COL_2-RSC_SP_CTRL_GROUP_X-RSC_CD_PUSHBUTTON_WIDTH)

#define DLG_WIDTH                   180
#define CTRL_WIDTH                  (DLG_WIDTH-2*RSC_SP_FLGR_INNERBORDER_LEFT)
#define DLG_HEIGHT                  (ROW_9)

#endif // UUI_MASTERPASSCRT_HRC
