/**************************************************************
 *
 * 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.
 *
 *************************************************************/

#define SDEXT_PRESENTER_RES_START 255

#define BACKGROUND      SDEXT_PRESENTER_RES_START +     1
#define BORDERACTIVEBOTTOM      SDEXT_PRESENTER_RES_START +     2
#define BORDERACTIVEBOTTOMCALLOUT       SDEXT_PRESENTER_RES_START +     3
#define BORDERACTIVEBOTTOMLEFT      SDEXT_PRESENTER_RES_START +     4
#define BORDERACTIVEBOTTOMRIGHT     SDEXT_PRESENTER_RES_START +     5
#define BORDERACTIVELEFT        SDEXT_PRESENTER_RES_START +     6
#define BORDERACTIVERIGHT       SDEXT_PRESENTER_RES_START +     7
#define BORDERACTIVETOP     SDEXT_PRESENTER_RES_START +     8
#define BORDERACTIVETOPLEFT     SDEXT_PRESENTER_RES_START +     9
#define BORDERACTIVETOPRIGHT        SDEXT_PRESENTER_RES_START +     10
#define BORDERBOTTOM        SDEXT_PRESENTER_RES_START +     11
#define BORDERBOTTOMLEFT        SDEXT_PRESENTER_RES_START +     12
#define BORDERBOTTOMRIGHT       SDEXT_PRESENTER_RES_START +     13
#define BORDERCURRENTSLIDEBOTTOM        SDEXT_PRESENTER_RES_START +     14
#define BORDERCURRENTSLIDEBOTTOMLEFT        SDEXT_PRESENTER_RES_START +     15
#define BORDERCURRENTSLIDEBOTTOMRIGHT       SDEXT_PRESENTER_RES_START +     16
#define BORDERCURRENTSLIDELEFT      SDEXT_PRESENTER_RES_START +     17
#define BORDERCURRENTSLIDERIGHT     SDEXT_PRESENTER_RES_START +     18
#define BORDERCURRENTSLIDETOP       SDEXT_PRESENTER_RES_START +     19
#define BORDERCURRENTSLIDETOPLEFT       SDEXT_PRESENTER_RES_START +     20
#define BORDERCURRENTSLIDETOPRIGHT      SDEXT_PRESENTER_RES_START +     21
#define BORDERLEFT      SDEXT_PRESENTER_RES_START +     22
#define BORDERRIGHT     SDEXT_PRESENTER_RES_START +     23
#define BORDERTOOLBARBOTTOM     SDEXT_PRESENTER_RES_START +     24
#define BORDERTOOLBARLEFT       SDEXT_PRESENTER_RES_START +     25
#define BORDERTOOLBARRIGHT      SDEXT_PRESENTER_RES_START +     26
#define BORDERTOOLBARTOP        SDEXT_PRESENTER_RES_START +     27
#define BORDERTOOLBARTOPLEFT        SDEXT_PRESENTER_RES_START +     28
#define BORDERTOOLBARTOPRIGHT       SDEXT_PRESENTER_RES_START +     29
#define BORDERTOP       SDEXT_PRESENTER_RES_START +     30
#define BORDERTOPLEFT       SDEXT_PRESENTER_RES_START +     31
#define BORDERTOPRIGHT      SDEXT_PRESENTER_RES_START +     32
#define BUTTONEFFECTNEXTDISABLED        SDEXT_PRESENTER_RES_START +     33
#define BUTTONEFFECTNEXTMOUSEOVER       SDEXT_PRESENTER_RES_START +     34
#define BUTTONEFFECTNEXTNORMAL      SDEXT_PRESENTER_RES_START +     35
#define BUTTONEFFECTNEXTSELECTED        SDEXT_PRESENTER_RES_START +     36
#define BUTTONFRAMECENTERMOUSEOVER      SDEXT_PRESENTER_RES_START +     37
#define BUTTONFRAMECENTERNORMAL     SDEXT_PRESENTER_RES_START +     38
#define BUTTONFRAMELEFTMOUSEOVER        SDEXT_PRESENTER_RES_START +     39
#define BUTTONFRAMELEFTNORMAL       SDEXT_PRESENTER_RES_START +     40
#define BUTTONFRAMERIGHTMOUSEOVER       SDEXT_PRESENTER_RES_START +     41
#define BUTTONFRAMERIGHTNORMAL      SDEXT_PRESENTER_RES_START +     42
#define BUTTONHELPDISABLED      SDEXT_PRESENTER_RES_START +     43
#define BUTTONHELPMOUSEOVER     SDEXT_PRESENTER_RES_START +     44
#define BUTTONHELPNORMAL        SDEXT_PRESENTER_RES_START +     45
#define BUTTONHELPSELECTED      SDEXT_PRESENTER_RES_START +     46
#define BUTTONMINUSDISABLED     SDEXT_PRESENTER_RES_START +     47
#define BUTTONMINUSMOUSEOVER        SDEXT_PRESENTER_RES_START +     48
#define BUTTONMINUSNORMAL       SDEXT_PRESENTER_RES_START +     49
#define BUTTONMINUSSELECTED     SDEXT_PRESENTER_RES_START +     50
#define BUTTONNOTESDISABLED     SDEXT_PRESENTER_RES_START +     51
#define BUTTONNOTESMOUSEOVER        SDEXT_PRESENTER_RES_START +     52
#define BUTTONNOTESNORMAL       SDEXT_PRESENTER_RES_START +     53
#define BUTTONNOTESSELECTED     SDEXT_PRESENTER_RES_START +     54
#define BUTTONPLUSDISABLED      SDEXT_PRESENTER_RES_START +     55
#define BUTTONPLUSMOUSEOVER     SDEXT_PRESENTER_RES_START +     56
#define BUTTONPLUSNORMAL        SDEXT_PRESENTER_RES_START +     57
#define BUTTONPLUSSELECTED      SDEXT_PRESENTER_RES_START +     58
#define BUTTONSLIDENEXTDISABLED     SDEXT_PRESENTER_RES_START +     59
#define BUTTONSLIDENEXTMOUSEOVER        SDEXT_PRESENTER_RES_START +     60
#define BUTTONSLIDENEXTNORMAL       SDEXT_PRESENTER_RES_START +     61
#define BUTTONSLIDEPREVIOUSDISABLED     SDEXT_PRESENTER_RES_START +     62
#define BUTTONSLIDEPREVIOUSMOUSEOVER        SDEXT_PRESENTER_RES_START +     63
#define BUTTONSLIDEPREVIOUSNORMAL       SDEXT_PRESENTER_RES_START +     64
#define BUTTONSLIDEPREVIOUSSELECTED     SDEXT_PRESENTER_RES_START +     65
#define BUTTONSLIDESORTERDISABLED       SDEXT_PRESENTER_RES_START +     66
#define BUTTONSLIDESORTERMOUSEOVER      SDEXT_PRESENTER_RES_START +     67
#define BUTTONSLIDESORTERNORMAL     SDEXT_PRESENTER_RES_START +     68
#define BUTTONSLIDESORTERSELECTED       SDEXT_PRESENTER_RES_START +     69
#define LABELMOUSEOVERCENTER        SDEXT_PRESENTER_RES_START +     70
#define LABELMOUSEOVERLEFT      SDEXT_PRESENTER_RES_START +     71
#define LABELMOUSEOVERRIGHT     SDEXT_PRESENTER_RES_START +     72
#define SCROLLBARARROWDOWNDISABLED      SDEXT_PRESENTER_RES_START +     73
#define SCROLLBARARROWDOWNMOUSEOVER     SDEXT_PRESENTER_RES_START +     74
#define SCROLLBARARROWDOWNNORMAL        SDEXT_PRESENTER_RES_START +     75
#define SCROLLBARARROWDOWNSELECTED      SDEXT_PRESENTER_RES_START +     76
#define SCROLLBARARROWUPDISABLED        SDEXT_PRESENTER_RES_START +     77
#define SCROLLBARARROWUPMOUSEOVER       SDEXT_PRESENTER_RES_START +     78
#define SCROLLBARARROWUPNORMAL      SDEXT_PRESENTER_RES_START +     79
#define SCROLLBARARROWUPSELECTED        SDEXT_PRESENTER_RES_START +     80
#define SCROLLBARPAGERMIDDLEMOUSEOVER       SDEXT_PRESENTER_RES_START +     81
#define SCROLLBARPAGERMIDDLENORMAL      SDEXT_PRESENTER_RES_START +     82
#define SCROLLBARTHUMBBOTTOMMOUSEOVER       SDEXT_PRESENTER_RES_START +     83
#define SCROLLBARTHUMBBOTTOMNORMAL      SDEXT_PRESENTER_RES_START +     84
#define SCROLLBARTHUMBMIDDLEMOUSEOVER       SDEXT_PRESENTER_RES_START +     85
#define SCROLLBARTHUMBMIDDLENORMAL      SDEXT_PRESENTER_RES_START +     86
#define SCROLLBARTHUMBTOPMOUSEOVER      SDEXT_PRESENTER_RES_START +     87
#define SCROLLBARTHUMBTOPNORMAL     SDEXT_PRESENTER_RES_START +     88
#define VIEWBACKGROUND      SDEXT_PRESENTER_RES_START +     89

