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

#include "svl/solar.hrc"

#define RID_FWK_START				260

#define RID_GROUPS_OFFSET           32000
#define RID_GROUPS_END              32767

#define RID_FWK_DIALOG_START_CORRECT        (RID_FWK_START + 2048)

#define	DLG_FILTER_SELECT			(RID_FWK_DIALOG_START_CORRECT + 0)

#define	STR_FILTER_DOWNLOAD			(RID_FWK_START+0)
#define STR_FILTER_CHOOSER			(RID_FWK_START+1)
#define STR_FILTER_OTHERS			(RID_FWK_START+2)
#define STR_FILTER_ZIPPED			(RID_FWK_START+3)

// ResIds for BackingWindow
#define DLG_BACKING                         (RID_FWK_DIALOG_START_CORRECT+100)
#define STR_BACKING_WELCOME                 1
#define STR_BACKING_WELCOMEPRODUCT          2
#define STR_BACKING_CREATE                  3
#define STR_BACKING_TEMPLATE                4
#define STR_BACKING_FILE                    5
#define STR_BACKING_EXTHELP                 6
#define STR_BACKING_REGHELP                 7
#define STR_BACKING_INFOHELP                8
#define STR_BACKING_TPLREP                  9

#define RES_BACKING_IMAGES                  (DLG_BACKING+1)
#define RES_BACKING_IMAGES_HC               (DLG_BACKING+2)

#define BMP_BACKING_BACKGROUND_LEFT         1
#define BMP_BACKING_BACKGROUND_MIDDLE       2
#define BMP_BACKING_BACKGROUND_RIGHT        3
#define BMP_BACKING_BACKGROUND_RTL_LEFT     4
#define BMP_BACKING_BACKGROUND_RTL_RIGHT    5
#define BMP_BACKING_EXT                     6
#define BMP_BACKING_REG                     7
#define BMP_BACKING_INFO                    8
#define BMP_BACKING_TPLREP                  9
#define BMP_BACKING_WRITER                  10
#define BMP_BACKING_CALC                    11
#define BMP_BACKING_IMPRESS                 12
#define BMP_BACKING_DRAW                    13
#define BMP_BACKING_DATABASE                14
#define BMP_BACKING_FORMULA                 15
#define BMP_BACKING_OPENFILE                16
#define BMP_BACKING_OPENTEMPLATE            17

// Ids of TabWindow
#define WIN_TABWINDOW                       (RID_FWK_DIALOG_START_CORRECT+101)
#define TC_TABCONTROL                        1

#endif
