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

#define RID_GALLERYSTR_THEME_START          (6000)

// These defines are used to map gallery names to translated string ressources. Since
// galleries may be copied from older offices to newer, do *never* change this
// IDs except adding new ones (and adapting RID_GALLERYSTR_THEME_LAST). The ID
// *is* written into the binary file *.thm (which is a galler theme combined of
// three files, *.thm, *.sdv and *.sdg)

#define RID_GALLERYSTR_THEME_3D				(RID_GALLERYSTR_THEME_START + 1)
#define RID_GALLERYSTR_THEME_ANIMATIONS                 (RID_GALLERYSTR_THEME_START + 2)
#define RID_GALLERYSTR_THEME_BULLETS                    (RID_GALLERYSTR_THEME_START + 3)
#define RID_GALLERYSTR_THEME_OFFICE                     (RID_GALLERYSTR_THEME_START + 4)
#define RID_GALLERYSTR_THEME_FLAGS			(RID_GALLERYSTR_THEME_START + 5)
#define RID_GALLERYSTR_THEME_FLOWCHARTS                 (RID_GALLERYSTR_THEME_START + 6)
#define RID_GALLERYSTR_THEME_EMOTICONS                  (RID_GALLERYSTR_THEME_START + 7)
#define RID_GALLERYSTR_THEME_PHOTOS			(RID_GALLERYSTR_THEME_START + 8)
#define RID_GALLERYSTR_THEME_BACKGROUNDS                (RID_GALLERYSTR_THEME_START + 9)
#define RID_GALLERYSTR_THEME_HOMEPAGE                   (RID_GALLERYSTR_THEME_START + 10)
#define RID_GALLERYSTR_THEME_INTERACTION                (RID_GALLERYSTR_THEME_START + 11)
#define RID_GALLERYSTR_THEME_MAPS			(RID_GALLERYSTR_THEME_START + 12)
#define RID_GALLERYSTR_THEME_PEOPLE                     (RID_GALLERYSTR_THEME_START + 13)
#define RID_GALLERYSTR_THEME_SURFACES                   (RID_GALLERYSTR_THEME_START + 14)
#define RID_GALLERYSTR_THEME_HTMLBUTTONS                (RID_GALLERYSTR_THEME_START + 15)
#define RID_GALLERYSTR_THEME_POWERPOINT                 (RID_GALLERYSTR_THEME_START + 16)
#define RID_GALLERYSTR_THEME_RULERS			(RID_GALLERYSTR_THEME_START + 17)
#define RID_GALLERYSTR_THEME_SOUNDS			(RID_GALLERYSTR_THEME_START + 18)
#define RID_GALLERYSTR_THEME_SYMBOLS                    (RID_GALLERYSTR_THEME_START + 19)
#define RID_GALLERYSTR_THEME_MYTHEME                    (RID_GALLERYSTR_THEME_START + 20)
#define RID_GALLERYSTR_THEME_USERSOUNDS                 (RID_GALLERYSTR_THEME_START + 21)

#define RID_GALLERYSTR_THEME_ARROWS                     (RID_GALLERYSTR_THEME_START + 22)
#define RID_GALLERYSTR_THEME_BALLOONS                   (RID_GALLERYSTR_THEME_START + 23)
#define RID_GALLERYSTR_THEME_KEYBOARD                   (RID_GALLERYSTR_THEME_START + 24)
#define RID_GALLERYSTR_THEME_TIME                       (RID_GALLERYSTR_THEME_START + 25)
#define RID_GALLERYSTR_THEME_PRESENTATION               (RID_GALLERYSTR_THEME_START + 26)
#define RID_GALLERYSTR_THEME_CALENDAR                   (RID_GALLERYSTR_THEME_START + 27)
#define RID_GALLERYSTR_THEME_NAVIGATION                 (RID_GALLERYSTR_THEME_START + 28)
#define RID_GALLERYSTR_THEME_COMMUNICATION              (RID_GALLERYSTR_THEME_START + 29)
#define RID_GALLERYSTR_THEME_FINANCES                   (RID_GALLERYSTR_THEME_START + 30)
#define RID_GALLERYSTR_THEME_COMPUTER                   (RID_GALLERYSTR_THEME_START + 31)

#define RID_GALLERYSTR_THEME_CLIMA                      (RID_GALLERYSTR_THEME_START + 32)
#define RID_GALLERYSTR_THEME_EDUCATION                  (RID_GALLERYSTR_THEME_START + 33)
#define RID_GALLERYSTR_THEME_TROUBLE                    (RID_GALLERYSTR_THEME_START + 34)
#define RID_GALLERYSTR_THEME_SCREENBEANS                (RID_GALLERYSTR_THEME_START + 35)

#define RID_GALLERYSTR_THEME_DUMMY5                     (RID_GALLERYSTR_THEME_START + 36)
#define RID_GALLERYSTR_THEME_FONTWORK					(RID_GALLERYSTR_THEME_START + 37)
#define RID_GALLERYSTR_THEME_FONTWORK_VERTICAL			(RID_GALLERYSTR_THEME_START + 38)

#define RID_GALLERYSTR_THEME_COMPUTERS                  (RID_GALLERYSTR_THEME_START + 39)
#define RID_GALLERYSTR_THEME_DIAGRAMS                   (RID_GALLERYSTR_THEME_START + 40)
#define RID_GALLERYSTR_THEME_ENVIRONMENT                (RID_GALLERYSTR_THEME_START + 41)
#define RID_GALLERYSTR_THEME_FINANCE                    (RID_GALLERYSTR_THEME_START + 42)
#define RID_GALLERYSTR_THEME_TRANSPORT                  (RID_GALLERYSTR_THEME_START + 43)
#define RID_GALLERYSTR_THEME_TXTSHAPES                  (RID_GALLERYSTR_THEME_START + 44)

#define RID_GALLERYSTR_THEME_FIRST			RID_GALLERYSTR_THEME_3D
#define RID_GALLERYSTR_THEME_LAST			RID_GALLERYSTR_THEME_TXTSHAPES

#endif
