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

#ifndef _SOLAR_HRC
#include "svl/solar.hrc"
#endif
#ifndef _ERRCODE_HXX
#include "tools/errcode.hxx"
#endif

#define RID_KEEP_PASSWORD                               (RID_UUI_START +  0)
#define RID_SAVE_PASSWORD                               (RID_UUI_START +  1)
#define DLG_UUI_LOGIN                                   (RID_UUI_START +  2)
#define DLG_COOKIES                                     (RID_UUI_START +  3)
#define STR_COOKIES_RECV_START                          (RID_UUI_START +  4)
#define STR_COOKIES_RECV_COOKIES                        (RID_UUI_START +  5)
#define STR_COOKIES_RECV_TITLE                          (RID_UUI_START +  6)
#define STR_COOKIES_SEND_START                          (RID_UUI_START +  7)
#define STR_COOKIES_SEND_COOKIES                        (RID_UUI_START +  8)
#define STR_COOKIES_SEND_TITLE                          (RID_UUI_START +  9)
#define DLG_FILTER_SELECT                               (RID_UUI_START + 10)
// RID_UUI_START + 11 moved to ERRCODE_UUI_WRONGMEDIUM
#define DLG_UUI_MASTERPASSWORD                          (RID_UUI_START + 12)
#define DLG_SIMPLE_NAME_CLASH                           (RID_UUI_START + 13)
#define STR_ERROR_PASSWORDS_NOT_IDENTICAL               (RID_UUI_START + 13)
#define STR_ERROR_MASTERPASSWORD_WRONG                  (RID_UUI_START + 14)
// RID_UUI_START + 15, 16, 17 are misused by syncaccess/source/ui/resids.hrc

#define RID_UUI_ERRHDL                                  (RID_UUI_START + 20)
#define DLG_UUI_MASTERPASSWORD_CRT                      (RID_UUI_START + 21)
#define DLG_UUI_PASSWORD                                (RID_UUI_START + 22)
#define STR_ERROR_SIMPLE_PASSWORD_WRONG                 (RID_UUI_START + 23)
#define STR_ERROR_PASSWORD_TO_OPEN_WRONG                (RID_UUI_START + 24)
#define STR_ERROR_PASSWORD_TO_MODIFY_WRONG              (RID_UUI_START + 25)
#define DLG_UUI_UNKNOWNAUTH                             (RID_UUI_START + 26)
#define DLG_UUI_UNKNOWNAUTH_CRT                         (RID_UUI_START + 27)
#define DLG_UUI_SSLWARN                                 (RID_UUI_START + 28)
#define DLG_UUI_SSLWARN_CRT                             (RID_UUI_START + 29)
#define RID_XMLSECDLG_MACROWARN                         (RID_UUI_START + 30)
#define STR_UNKNOWNUSER                                 (RID_UUI_START + 31)
#define STR_OPENLOCKED_TITLE                            (RID_UUI_START + 32)
#define STR_OPENLOCKED_MSG                              (RID_UUI_START + 33)
#define STR_OPENLOCKED_OPENREADONLY_BTN                 (RID_UUI_START + 34)
#define STR_OPENLOCKED_OPENCOPY_BTN                     (RID_UUI_START + 35)
#define STR_FILECHANGED_TITLE                           (RID_UUI_START + 36)
#define STR_FILECHANGED_MSG                             (RID_UUI_START + 37)
#define STR_FILECHANGED_SAVEANYWAY_BTN                  (RID_UUI_START + 38)
#define STR_ALREADYOPEN_TITLE                           (RID_UUI_START + 39)
#define STR_ALREADYOPEN_MSG                             (RID_UUI_START + 40)
#define STR_ALREADYOPEN_READONLY_BTN                    (RID_UUI_START + 41)
#define STR_ALREADYOPEN_OPEN_BTN                        (RID_UUI_START + 42)
#define STR_LOCKFAILED_TITLE                            (RID_UUI_START + 43)
#define STR_LOCKFAILED_MSG                              (RID_UUI_START + 44)
#define STR_LOCKFAILED_DONTSHOWAGAIN                    (RID_UUI_START + 45)
#define STR_TRYLATER_TITLE                              (RID_UUI_START + 46)
#define STR_TRYLATER_MSG                                (RID_UUI_START + 47)
#define STR_TRYLATER_RETRYSAVING_BTN                    (RID_UUI_START + 48)
#define STR_TRYLATER_SAVEAS_BTN                         (RID_UUI_START + 49)
#define STR_ALREADYOPEN_SAVE_MSG                        (RID_UUI_START + 50)
#define STR_ALREADYOPEN_RETRY_SAVE_BTN                  (RID_UUI_START + 51)
#define STR_ALREADYOPEN_SAVE_BTN                        (RID_UUI_START + 52)
#define RID_DLG_NEWER_VERSION_WARNING                   (RID_UUI_START + 53)
#define STR_WARNING_INCOMPLETE_ENCRYPTION_TITLE         (RID_UUI_START + 54)
#define STR_WARNING_BROKENSIGNATURE_TITLE               (RID_UUI_START + 55)
#define STR_ENTER_PASSWORD_TO_OPEN                      (RID_UUI_START + 56)
#define STR_ENTER_PASSWORD_TO_MODIFY                    (RID_UUI_START + 57)
#define STR_RENAME_OR_REPLACE                           (RID_UUI_START + 58)
#define STR_NAME_CLASH_RENAME_ONLY                      (RID_UUI_START + 59)
#define STR_SAME_NAME_USED                              (RID_UUI_START + 60)
#define STR_ENTER_SIMPLE_PASSWORD                       (RID_UUI_START + 61)
#define STR_CONFIRM_SIMPLE_PASSWORD                     (RID_UUI_START + 62)

#define ERRCODE_UUI_IO_ABORT                                    (ERRCODE_AREA_UUI + 0)
#define ERRCODE_UUI_IO_ACCESSDENIED                             (ERRCODE_AREA_UUI + 1)
#define ERRCODE_UUI_IO_ALREADYEXISTS                            (ERRCODE_AREA_UUI + 2)
#define ERRCODE_UUI_IO_BADCRC                                   (ERRCODE_AREA_UUI + 3)
#define ERRCODE_UUI_IO_CANTCREATE                               (ERRCODE_AREA_UUI + 4)
#define ERRCODE_UUI_IO_CANTREAD                                 (ERRCODE_AREA_UUI + 5)
#define ERRCODE_UUI_IO_CANTSEEK                                 (ERRCODE_AREA_UUI + 6)
#define ERRCODE_UUI_IO_CANTTELL                                 (ERRCODE_AREA_UUI + 7)
#define ERRCODE_UUI_IO_CANTWRITE                                (ERRCODE_AREA_UUI + 8)
#define ERRCODE_UUI_IO_CURRENTDIR                               (ERRCODE_AREA_UUI + 9)
#define ERRCODE_UUI_IO_NOTREADY                                 (ERRCODE_AREA_UUI + 10)
#define ERRCODE_UUI_IO_NOTSAMEDEVICE                            (ERRCODE_AREA_UUI + 11)
#define ERRCODE_UUI_IO_GENERAL                                  (ERRCODE_AREA_UUI + 12)
#define ERRCODE_UUI_IO_INVALIDACCESS                            (ERRCODE_AREA_UUI + 13)
#define ERRCODE_UUI_IO_INVALIDCHAR                              (ERRCODE_AREA_UUI + 14)
#define ERRCODE_UUI_IO_INVALIDDEVICE                            (ERRCODE_AREA_UUI + 15)
#define ERRCODE_UUI_IO_INVALIDLENGTH                            (ERRCODE_AREA_UUI + 16)
#define ERRCODE_UUI_IO_INVALIDPARAMETER                         (ERRCODE_AREA_UUI + 17)
#define ERRCODE_UUI_IO_ISWILDCARD                               (ERRCODE_AREA_UUI + 18)
#define ERRCODE_UUI_IO_LOCKVIOLATION                            (ERRCODE_AREA_UUI + 19)
#define ERRCODE_UUI_IO_MISPLACEDCHAR                            (ERRCODE_AREA_UUI + 20)
#define ERRCODE_UUI_IO_NAMETOOLONG                              (ERRCODE_AREA_UUI + 21)
#define ERRCODE_UUI_IO_NOTEXISTS                                (ERRCODE_AREA_UUI + 22)
#define ERRCODE_UUI_IO_NOTEXISTSPATH                            (ERRCODE_AREA_UUI + 23)
#define ERRCODE_UUI_IO_NOTSUPPORTED                             (ERRCODE_AREA_UUI + 24)
#define ERRCODE_UUI_IO_NOTADIRECTORY                            (ERRCODE_AREA_UUI + 25)
#define ERRCODE_UUI_IO_NOTAFILE                                 (ERRCODE_AREA_UUI + 26)
#define ERRCODE_UUI_IO_OUTOFSPACE                               (ERRCODE_AREA_UUI + 27)
#define ERRCODE_UUI_IO_TOOMANYOPENFILES                         (ERRCODE_AREA_UUI + 28)
#define ERRCODE_UUI_IO_OUTOFMEMORY                              (ERRCODE_AREA_UUI + 29)
#define ERRCODE_UUI_IO_PENDING                                  (ERRCODE_AREA_UUI + 30)
#define ERRCODE_UUI_IO_RECURSIVE                                (ERRCODE_AREA_UUI + 31)
#define ERRCODE_UUI_IO_UNKNOWN                                  (ERRCODE_AREA_UUI + 32)
#define ERRCODE_UUI_IO_WRITEPROTECTED                           (ERRCODE_AREA_UUI + 33)
#define ERRCODE_UUI_IO_WRONGFORMAT                              (ERRCODE_AREA_UUI + 34)
#define ERRCODE_UUI_IO_WRONGVERSION                             (ERRCODE_AREA_UUI + 35)
#define ERRCODE_UUI_IO_NOTEXISTS_VOLUME                         (ERRCODE_AREA_UUI + 36)
#define ERRCODE_UUI_IO_NOTEXISTS_FOLDER                         (ERRCODE_AREA_UUI + 37)
#define ERRCODE_UUI_WRONGJAVA                                   (ERRCODE_AREA_UUI + 38)
#define ERRCODE_UUI_WRONGJAVA_VERSION                           (ERRCODE_AREA_UUI + 39)
#define ERRCODE_UUI_WRONGJAVA_MIN                               (ERRCODE_AREA_UUI + 40)
#define ERRCODE_UUI_WRONGJAVA_VERSION_MIN                       (ERRCODE_AREA_UUI + 41)
#define ERRCODE_UUI_BADPARTNERSHIP                              (ERRCODE_AREA_UUI + 42)
#define ERRCODE_UUI_BADPARTNERSHIP_NAME                         (ERRCODE_AREA_UUI + 43)
#define ERRCODE_UUI_IO_NOTREADY_VOLUME                          (ERRCODE_AREA_UUI + 44)
#define ERRCODE_UUI_IO_NOTREADY_REMOVABLE                       (ERRCODE_AREA_UUI + 45)
#define ERRCODE_UUI_IO_NOTREADY_VOLUME_REMOVABLE                (ERRCODE_AREA_UUI + 46)
#define ERRCODE_UUI_WRONGMEDIUM                                 (ERRCODE_AREA_UUI + 47)
#define ERRCODE_UUI_IO_CANTCREATE_NONAME                        (ERRCODE_AREA_UUI + 48)
#define ERRCODE_UUI_IO_TARGETALREADYEXISTS                      (ERRCODE_AREA_UUI + 49)
#define ERRCODE_UUI_IO_UNSUPPORTEDOVERWRITE                     (ERRCODE_AREA_UUI + 50)
#define ERRCODE_UUI_IO_BROKENPACKAGE                            (ERRCODE_AREA_UUI + 51)
#define ERRCODE_UUI_IO_BROKENPACKAGE_CANTREPAIR                 (ERRCODE_AREA_UUI + 52)
#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_NOREMOVE           (ERRCODE_AREA_UUI + 53)
#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_WITHREMOVE         (ERRCODE_AREA_UUI + 54)
#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING                (ERRCODE_AREA_UUI + 55)
#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING_WITHRECOVER    (ERRCODE_AREA_UUI + 56)
#define ERRCODE_UUI_INVALID_XFORMS_SUBMISSION_DATA              (ERRCODE_AREA_UUI + 57)
#define ERRCODE_UUI_IO_MODULESIZEEXCEEDED                       (ERRCODE_AREA_UUI + 58)
#define ERRCODE_UUI_LOCKING_LOCKED                              (ERRCODE_AREA_UUI + 59)
#define ERRCODE_UUI_LOCKING_LOCKED_SELF                         (ERRCODE_AREA_UUI + 60)
#define ERRCODE_UUI_LOCKING_NOT_LOCKED                          (ERRCODE_AREA_UUI + 61)
#define ERRCODE_UUI_LOCKING_LOCK_EXPIRED                        (ERRCODE_AREA_UUI + 62)

#define ERRCODE_AREA_UUI_UNKNOWNAUTH    25000
#define SSLWARN_TYPE_DOMAINMISMATCH     10
#define SSLWARN_TYPE_EXPIRED            20
#define SSLWARN_TYPE_INVALID            30

#define ERRCODE_UUI_UNKNOWNAUTH_UNTRUSTED (ERRCODE_AREA_UUI_UNKNOWNAUTH + 1)

#define ERRCODE_UUI_SSLWARN_EXPIRED_1 (ERRCODE_AREA_UUI_UNKNOWNAUTH + SSLWARN_TYPE_EXPIRED + 1)
#define TITLE_UUI_SSLWARN_EXPIRED (ERRCODE_AREA_UUI_UNKNOWNAUTH + SSLWARN_TYPE_EXPIRED + 3)

#define ERRCODE_UUI_SSLWARN_DOMAINMISMATCH_1 (ERRCODE_AREA_UUI_UNKNOWNAUTH +  SSLWARN_TYPE_DOMAINMISMATCH + 1)
#define TITLE_UUI_SSLWARN_DOMAINMISMATCH (ERRCODE_AREA_UUI_UNKNOWNAUTH + SSLWARN_TYPE_DOMAINMISMATCH + 3)

#define ERRCODE_UUI_SSLWARN_INVALID_1 (ERRCODE_AREA_UUI_UNKNOWNAUTH + SSLWARN_TYPE_INVALID + 1)
#define TITLE_UUI_SSLWARN_INVALID (ERRCODE_AREA_UUI_UNKNOWNAUTH + SSLWARN_TYPE_INVALID + 3)

#define HID_DLG_LOGIN                                          "UUI_HID_DLG_LOGIN"
#define HID_DLG_COOKIES                                        "UUI_HID_DLG_COOKIES"
#define HID_DLG_MASTERPASSWORD_UUI                             "UUI_HID_DLG_MASTERPASSWORD_UUI"
#define HID_DLG_MASTERPASSWORD_CRT                             "UUI_HID_DLG_MASTERPASSWORD_CRT"
#define HID_DLG_FILTER_SELECT                                  "UUI_HID_DLG_FILTER_SELECT"
#define HID_DLG_PASSWORD_UUI                                   "UUI_HID_DLG_PASSWORD_UUI"
#define HID_DLG_PASSWORD_CRT                                   "UUI_HID_DLG_PASSWORD_CRT"
#define HID_DLG_UNKNOWNAUTH_UUI                                "UUI_HID_DLG_UNKNOWNAUTH_UUI"
#define HID_DLG_SSLWARN_UUI                                    "UUI_HID_DLG_SSLWARN_UUI"
#define HID_XMLSECDLG_MACROWARN                                "UUI_HID_XMLSECDLG_MACROWARN"
#define HID_DLG_NEWERVERSIONWARNING                            "UUI_HID_DLG_NEWERVERSIONWARNING"

#define HID_LOGIN_DLG_PATH                      "UUI_HID_LOGIN_DLG_PATH"
#define HID_LOGIN_DLG_BROWSE                    "UUI_HID_LOGIN_DLG_BROWSE"
#define HID_LOGIN_DLG_USER_NAME                 "UUI_HID_LOGIN_DLG_USER_NAME"
#define HID_LOGIN_DLG_PASSWORD                  "UUI_HID_LOGIN_DLG_PASSWORD"
#define HID_LOGIN_DLG_ACCOUNT                   "UUI_HID_LOGIN_DLG_ACCOUNT"
#define HID_LOGIN_DLG_REMEMBER_PASSWORD         "UUI_HID_LOGIN_DLG_REMEMBER_PASSWORD"
#define HID_LOGIN_DLG_USE_SYSTEM_CREDENTIALS    "UUI_HID_LOGIN_DLG_USE_SYSTEM_CREDENTIALS"
#define HID_DLG_SIMPLE_NAME_CLASH               "UUI_HID_DLG_SIMPLE_NAME_CLASH"

// HID_UUI_END (aka HID_CHAOS_NEW_DATABASE) is reserved in
// sfx2/util/hidother.src

#endif // UUI_IDS_HRC
