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

#include <svtools/controldims.hrc>

// local identifiers
#define RB_ACCEPT_1				1
#define PB_OK				    2
#define PB_VIEW__CERTIFICATE    3
#define PB_CANCEL			    4
#define FT_LABEL_1              5
#define RB_DONTACCEPT_2			6
#define IMG_WARN				7
#define PB_HELP				    8
#define FL_LINE                10

// Dims

#define DLG_WIDTH              230
#define DLG_HEIGHT             140

#define DLG_WARMIMG_HEIGHT      20
#define DLG_WARMIMG_WIDTH       20

#define DLG_TEXT_1_HEIGHT       50

#define DLG_TEXT_START_X       RSC_SP_DLG_INNERBORDER_LEFT + DLG_WARMIMG_WIDTH + RSC_SP_CTRL_X

#define DLG_RADIOBTN_START_Y   RSC_SP_DLG_INNERBORDER_TOP + DLG_TEXT_1_HEIGHT + RSC_SP_CTRL_Y + RSC_CD_PUSHBUTTON_HEIGHT + RSC_SP_CTRL_GROUP_Y

#define DLG_CTLBTN_START_Y	   DLG_HEIGHT - RSC_SP_CTRL_X - RSC_CD_PUSHBUTTON_HEIGHT


#define DLG_CTLBTN_OK_START_X      DLG_CTLBTN_CANCEL_START_X - RSC_CD_PUSHBUTTON_WIDTH - RSC_SP_CTRL_GROUP_X
#define DLG_CTLBTN_CANCEL_START_X  DLG_CTLBTN_HELP_START_X - RSC_CD_PUSHBUTTON_WIDTH - RSC_SP_CTRL_GROUP_X
#define DLG_CTLBTN_HELP_START_X    DLG_WIDTH - RSC_SP_DLG_INNERBORDER_RIGHT - RSC_CD_PUSHBUTTON_WIDTH

#endif //UUI_UNKNOWNAUTH_HRC
