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

#define CM_PREV_SLIDE			1
#define CM_NEXT_SLIDE			2
#define CM_GOTO					3
#define CM_SCREEN				4
#define CM_SCREEN_BLACK			5
#define CM_SCREEN_WHITE			6
#define CM_ENDSHOW				7
#define CM_FIRST_SLIDE			8
#define CM_LAST_SLIDE			9

// CM for extra presenter UI
#define CM_ERASE_ALLINK			10
#define CM_COLOR_PEN			11
#define CM_WIDTH_PEN			12
#define CM_WIDTH_PEN_VERY_THIN	13
#define CM_WIDTH_PEN_THIN		14
#define CM_WIDTH_PEN_NORMAL		15
#define CM_WIDTH_PEN_THICK		16
#define CM_WIDTH_PEN_VERY_THICK	17
#define CM_PEN_MODE				18
#define CM_ERASE_MODE			19
#define CM_POINTER_OPTION		20

#define CM_SLIDES				21 // this must be the last id!

#endif
