| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445 |
- /*
- ** Command & Conquer Generals(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation, either version 3 of the License, or
- ** (at your option) any later version.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- ////////////////////////////////////////////////////////////////////////////////
- // //
- // (c) 2001-2003 Electronic Arts Inc. //
- // //
- ////////////////////////////////////////////////////////////////////////////////
- // FILE: GadgetSlider.h ///////////////////////////////////////////////////////
- //-----------------------------------------------------------------------------
- //
- // Westwood Studios Pacific.
- //
- // Confidential Information
- // Copyright (C) 2001 - All Rights Reserved
- //
- //-----------------------------------------------------------------------------
- //
- // Project: RTS3
- //
- // File name: GadgetSlider.h
- //
- // Created: Colin Day, June 2001
- //
- // Desc: Helpful interface for Sliders
- //
- // Slider Sliders are constructed of 4 pieces, two end pieces,
- // a repeating center, and a smaller repeating center pieces
- // to fill small seams. Since there are vertical sliders
- // and horizontal sliders, the LEFT end of a horizontal
- // slider is stored in the same place as the TOP end for a
- // vertical slider. The RIGHT end of a horizontal is
- // also equivalent to the BOTTOM end of a vertical one.
- //
- //-----------------------------------------------------------------------------
- ///////////////////////////////////////////////////////////////////////////////
- #pragma once
- #ifndef __GADGETSLIDER_H_
- #define __GADGETSLIDER_H_
- // SYSTEM INCLUDES ////////////////////////////////////////////////////////////
- // USER INCLUDES //////////////////////////////////////////////////////////////
- #include "GameClient/GameWindow.h"
- #include "GameClient/GameWindowManager.h"
- #include "GameClient/GadgetPushButton.h"
- #include "GameClient/Gadget.h"
- #include "GameClient/Image.h"
- // FORWARD REFERENCES /////////////////////////////////////////////////////////
- // TYPE DEFINES ///////////////////////////////////////////////////////////////
- enum{
- HORIZONTAL_SLIDER_THUMB_POSITION = HORIZONTAL_SLIDER_THUMB_HEIGHT *2/3
- };
- // INLINING ///////////////////////////////////////////////////////////////////
- inline void GadgetSliderGetMinMax( GameWindow *g, Int *min, Int *max )
- {
- SliderData *sData = (SliderData *)g->winGetUserData();
- *max = sData->maxVal;
- *min = sData->minVal;
- }
- inline GameWindow *GadgetSliderGetThumb( GameWindow *g ) { return g->winGetChild(); }
- inline void GadgetSliderSetPosition( GameWindow *win, Int pos )
- {
- TheWindowManager->winSendSystemMsg( win,
- GSM_SET_SLIDER,
- pos,
- 0 );
- }
- inline Int GadgetSliderGetPosition( GameWindow *win )
- {
- SliderData *sData = (SliderData *)win->winGetUserData();
- if (sData)
- {
- return sData->position;
- }
- return -1;
- }
- // sliders are drawn from pieces, a left/top, right/bottom, repeating center, and small repeating center
- inline void GadgetSliderSetEnabledImages( GameWindow *g, const Image *left, const Image *right, const Image *center, const Image *smallCenter )
- {
- g->winSetEnabledImage( 0, left );
- g->winSetEnabledImage( 1, right );
- g->winSetEnabledImage( 2, center );
- g->winSetEnabledImage( 3, smallCenter );
- }
- inline void GadgetSliderSetEnabledImageLeft( GameWindow *g, const Image *left ) { g->winSetEnabledImage( 0, left ); }
- inline void GadgetSliderSetEnabledImageTop( GameWindow *g, const Image *left ) { g->winSetEnabledImage( 0, left ); }
- inline void GadgetSliderSetEnabledImageRight( GameWindow *g, const Image *right ) { g->winSetEnabledImage( 1, right ); }
- inline void GadgetSliderSetEnabledImageBottom( GameWindow *g, const Image *right ) { g->winSetEnabledImage( 1, right ); }
- inline void GadgetSliderSetEnabledImageCenter( GameWindow *g, const Image *center ) { g->winSetEnabledImage( 2, center ); }
- inline void GadgetSliderSetEnabledImageSmallCenter( GameWindow *g, const Image *smallCenter ) { g->winSetEnabledImage( 3, smallCenter ); }
- inline void GadgetSliderSetEnabledColor( GameWindow *g, Color color ) { g->winSetEnabledColor( 0, color ); }
- inline void GadgetSliderSetEnabledBorderColor( GameWindow *g, Color color ) { g->winSetEnabledBorderColor( 0, color ); }
- inline const Image *GadgetSliderGetEnabledImageLeft( GameWindow *g ) { return g->winGetEnabledImage( 0 ); }
- inline const Image *GadgetSliderGetEnabledImageTop( GameWindow *g ) { return g->winGetEnabledImage( 0 ); }
- inline const Image *GadgetSliderGetEnabledImageRight( GameWindow *g ) { return g->winGetEnabledImage( 1 ); }
- inline const Image *GadgetSliderGetEnabledImageBottom( GameWindow *g ) { return g->winGetEnabledImage( 1 ); }
- inline const Image *GadgetSliderGetEnabledImageCenter( GameWindow *g ) { return g->winGetEnabledImage( 2 ); }
- inline const Image *GadgetSliderGetEnabledImageSmallCenter( GameWindow *g ) { return g->winGetEnabledImage( 3 ); }
- inline Color GadgetSliderGetEnabledColor( GameWindow *g ) { return g->winGetEnabledColor( 0 ); }
- inline Color GadgetSliderGetEnabledBorderColor( GameWindow *g ) { return g->winGetEnabledBorderColor( 0 ); }
- // sliders are drawn from pieces, a left/top, right/bottom, repeating center, and small repeating center
- inline void GadgetSliderSetDisabledImages( GameWindow *g, const Image *left, const Image *right, const Image *center, const Image *smallCenter )
- {
- g->winSetDisabledImage( 0, left );
- g->winSetDisabledImage( 1, right );
- g->winSetDisabledImage( 2, center );
- g->winSetDisabledImage( 3, smallCenter );
- }
- inline void GadgetSliderSetDisabledImageLeft( GameWindow *g, const Image *left ) { g->winSetDisabledImage( 0, left ); }
- inline void GadgetSliderSetDisabledImageTop( GameWindow *g, const Image *left ) { g->winSetDisabledImage( 0, left ); }
- inline void GadgetSliderSetDisabledImageRight( GameWindow *g, const Image *right ) { g->winSetDisabledImage( 1, right ); }
- inline void GadgetSliderSetDisabledImageBottom( GameWindow *g, const Image *right ) { g->winSetDisabledImage( 1, right ); }
- inline void GadgetSliderSetDisabledImageCenter( GameWindow *g, const Image *center ) { g->winSetDisabledImage( 2, center ); }
- inline void GadgetSliderSetDisabledImageSmallCenter( GameWindow *g, const Image *smallCenter ) { g->winSetDisabledImage( 3, smallCenter ); }
- inline void GadgetSliderSetDisabledColor( GameWindow *g, Color color ) { g->winSetDisabledColor( 0, color ); }
- inline void GadgetSliderSetDisabledBorderColor( GameWindow *g, Color color ) { g->winSetDisabledBorderColor( 0, color ); }
- inline const Image *GadgetSliderGetDisabledImageLeft( GameWindow *g ) { return g->winGetDisabledImage( 0 ); }
- inline const Image *GadgetSliderGetDisabledImageTop( GameWindow *g ) { return g->winGetDisabledImage( 0 ); }
- inline const Image *GadgetSliderGetDisabledImageRight( GameWindow *g ) { return g->winGetDisabledImage( 1 ); }
- inline const Image *GadgetSliderGetDisabledImageBottom( GameWindow *g ) { return g->winGetDisabledImage( 1 ); }
- inline const Image *GadgetSliderGetDisabledImageCenter( GameWindow *g ) { return g->winGetDisabledImage( 2 ); }
- inline const Image *GadgetSliderGetDisabledImageSmallCenter( GameWindow *g ){ return g->winGetDisabledImage( 3 ); }
- inline Color GadgetSliderGetDisabledColor( GameWindow *g ) { return g->winGetDisabledColor( 0 ); }
- inline Color GadgetSliderGetDisabledBorderColor( GameWindow *g ) { return g->winGetDisabledBorderColor( 0 ); }
- // sliders are drawn from pieces, a left/top, right/bottom, repeating center, and small repeating center
- inline void GadgetSliderSetHiliteImages( GameWindow *g, const Image *left, const Image *right, const Image *center, const Image *smallCenter )
- {
- g->winSetHiliteImage( 0, left );
- g->winSetHiliteImage( 1, right );
- g->winSetHiliteImage( 2, center );
- g->winSetHiliteImage( 3, smallCenter );
- }
- inline void GadgetSliderSetHiliteImageLeft( GameWindow *g, const Image *left ) { g->winSetHiliteImage( 0, left ); }
- inline void GadgetSliderSetHiliteImageTop( GameWindow *g, const Image *left ) { g->winSetHiliteImage( 0, left ); }
- inline void GadgetSliderSetHiliteImageRight( GameWindow *g, const Image *right ) { g->winSetHiliteImage( 1, right ); }
- inline void GadgetSliderSetHiliteImageBottom( GameWindow *g, const Image *right ) { g->winSetHiliteImage( 1, right ); }
- inline void GadgetSliderSetHiliteImageCenter( GameWindow *g, const Image *center ) { g->winSetHiliteImage( 2, center ); }
- inline void GadgetSliderSetHiliteImageSmallCenter( GameWindow *g, const Image *smallCenter ) { g->winSetHiliteImage( 3, smallCenter ); }
- inline void GadgetSliderSetHiliteColor( GameWindow *g, Color color ) { g->winSetHiliteColor( 0, color ); }
- inline void GadgetSliderSetHiliteBorderColor( GameWindow *g, Color color ) { g->winSetHiliteBorderColor( 0, color ); }
- inline const Image *GadgetSliderGetHiliteImageLeft( GameWindow *g ) { return g->winGetHiliteImage( 0 ); }
- inline const Image *GadgetSliderGetHiliteImageTop( GameWindow *g ) { return g->winGetHiliteImage( 0 ); }
- inline const Image *GadgetSliderGetHiliteImageRight( GameWindow *g ) { return g->winGetHiliteImage( 1 ); }
- inline const Image *GadgetSliderGetHiliteImageBottom( GameWindow *g ) { return g->winGetHiliteImage( 1 ); }
- inline const Image *GadgetSliderGetHiliteImageCenter( GameWindow *g ) { return g->winGetHiliteImage( 2 ); }
- inline const Image *GadgetSliderGetHiliteImageSmallCenter( GameWindow *g ){ return g->winGetHiliteImage( 3 ); }
- inline Color GadgetSliderGetHiliteColor( GameWindow *g ) { return g->winGetHiliteColor( 0 ); }
- inline Color GadgetSliderGetHiliteBorderColor( GameWindow *g ) { return g->winGetHiliteBorderColor( 0 ); }
- ///////////////////////////////////////////////////////////////////////////////
- // Functions to set the images and colors for the slider thumb
- ///////////////////////////////////////////////////////////////////////////////
- // enabled
- inline void GadgetSliderSetEnabledThumbImage( GameWindow *g, const Image *image )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetEnabledImage( thumb, image );
- }
- inline void GadgetSliderSetEnabledThumbColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetEnabledColor( thumb, color );
- }
- inline void GadgetSliderSetEnabledThumbBorderColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetEnabledBorderColor( thumb, color );
- }
- inline void GadgetSliderSetEnabledSelectedThumbImage( GameWindow *g, const Image *image )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetEnabledSelectedImage( thumb, image );
- }
- inline void GadgetSliderSetEnabledSelectedThumbColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetEnabledSelectedColor( thumb, color );
- }
- inline void GadgetSliderSetEnabledSelectedThumbBorderColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetEnabledSelectedBorderColor( thumb, color );
- }
- inline const Image *GadgetSliderGetEnabledThumbImage( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetEnabledImage( thumb );
- else
- return NULL;
- }
- inline Color GadgetSliderGetEnabledThumbColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetEnabledColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline Color GadgetSliderGetEnabledThumbBorderColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetEnabledBorderColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline const Image *GadgetSliderGetEnabledSelectedThumbImage( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetEnabledSelectedImage( thumb );
- else
- return NULL;
- }
- inline Color GadgetSliderGetEnabledSelectedThumbColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetEnabledSelectedColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline Color GadgetSliderGetEnabledSelectedThumbBorderColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetEnabledSelectedBorderColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- // disabled
- inline void GadgetSliderSetDisabledThumbImage( GameWindow *g, const Image *image )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetDisabledImage( thumb, image );
- }
- inline void GadgetSliderSetDisabledThumbColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetDisabledColor( thumb, color );
- }
- inline void GadgetSliderSetDisabledThumbBorderColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetDisabledBorderColor( thumb, color );
- }
- inline void GadgetSliderSetDisabledSelectedThumbImage( GameWindow *g, const Image *image )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetDisabledSelectedImage( thumb, image );
- }
- inline void GadgetSliderSetDisabledSelectedThumbColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetDisabledSelectedColor( thumb, color );
- }
- inline void GadgetSliderSetDisabledSelectedThumbBorderColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetDisabledSelectedBorderColor( thumb, color );
- }
- inline const Image *GadgetSliderGetDisabledThumbImage( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetDisabledImage( thumb );
- else
- return NULL;
- }
- inline Color GadgetSliderGetDisabledThumbColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetDisabledColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline Color GadgetSliderGetDisabledThumbBorderColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetDisabledBorderColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline const Image *GadgetSliderGetDisabledSelectedThumbImage( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetDisabledSelectedImage( thumb );
- else
- return NULL;
- }
- inline Color GadgetSliderGetDisabledSelectedThumbColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetDisabledSelectedColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline Color GadgetSliderGetDisabledSelectedThumbBorderColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetDisabledSelectedBorderColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- // hilite
- inline void GadgetSliderSetHiliteThumbImage( GameWindow *g, const Image *image )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetHiliteImage( thumb, image );
- }
- inline void GadgetSliderSetHiliteThumbColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetHiliteColor( thumb, color );
- }
- inline void GadgetSliderSetHiliteThumbBorderColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetHiliteBorderColor( thumb, color );
- }
- inline void GadgetSliderSetHiliteSelectedThumbImage( GameWindow *g, const Image *image )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetHiliteSelectedImage( thumb, image );
- }
- inline void GadgetSliderSetHiliteSelectedThumbColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetHiliteSelectedColor( thumb, color );
- }
- inline void GadgetSliderSetHiliteSelectedThumbBorderColor( GameWindow *g, Color color )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- GadgetButtonSetHiliteSelectedBorderColor( thumb, color );
- }
- inline const Image *GadgetSliderGetHiliteThumbImage( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetHiliteImage( thumb );
- else
- return NULL;
- }
- inline Color GadgetSliderGetHiliteThumbColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetHiliteColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline Color GadgetSliderGetHiliteThumbBorderColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetHiliteBorderColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline const Image *GadgetSliderGetHiliteSelectedThumbImage( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetHiliteSelectedImage( thumb );
- else
- return NULL;
- }
- inline Color GadgetSliderGetHiliteSelectedThumbColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetHiliteSelectedColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- inline Color GadgetSliderGetHiliteSelectedThumbBorderColor( GameWindow *g )
- {
- GameWindow *thumb = g->winGetChild();
- if( thumb )
- return GadgetButtonGetHiliteSelectedBorderColor( thumb );
- else
- return WIN_COLOR_UNDEFINED;
- }
- // EXTERNALS //////////////////////////////////////////////////////////////////
- #endif // __GADGETSLIDER_H_
|