127 lines
3.5 KiB
C
127 lines
3.5 KiB
C
|
// Copyright (C) 2007 Id Software, Inc.
|
||
|
//
|
||
|
|
||
|
|
||
|
#ifndef __GAME_GUIS_USERINTERFACEPROGRESS_H__
|
||
|
#define __GAME_GUIS_USERINTERFACEPROGRESS_H__
|
||
|
|
||
|
#include "UserInterfaceTypes.h"
|
||
|
#include "UIWindow.h"
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
alias = "progress";
|
||
|
)
|
||
|
class sdUIProgress :
|
||
|
public sdUIWindow {
|
||
|
|
||
|
private:
|
||
|
enum eSliderPart { SP_BEGIN, SP_CENTER, SP_END, SP_HIGHLIGHT_BEGIN, SP_HIGHLIGHT_CENTER, SP_HIGHLIGHT_END, SP_MAX };
|
||
|
|
||
|
public:
|
||
|
SD_UI_DECLARE_CLASS( sdUIProgress )
|
||
|
|
||
|
enum progressFlag_e {
|
||
|
PF_DRAW_FROM_LOWER_END = BITT< sdUIWindow::NEXT_WINDOW_FLAG + 0 >::VALUE,
|
||
|
};
|
||
|
sdUIProgress();
|
||
|
virtual ~sdUIProgress();
|
||
|
|
||
|
virtual const char* GetScopeClassName() const { return "sdUIProgress"; }
|
||
|
virtual void EndLevelLoad();
|
||
|
|
||
|
static void InitFunctions( void );
|
||
|
static void ShutdownFunctions( void );
|
||
|
|
||
|
protected:
|
||
|
virtual void DrawLocal();
|
||
|
virtual void InitProperties();
|
||
|
float GetPercent() const { return ( position - range.GetValue().x ) / ( range.GetValue().y - range.GetValue().x ); }
|
||
|
|
||
|
private:
|
||
|
void OnFillMaterialChanged( const idStr& oldValue, const idStr& newValue );
|
||
|
void OnHighlightFillMaterialChanged( const idStr& oldValue, const idStr& newValue );
|
||
|
|
||
|
void DrawSegment( const idVec4& color, eSliderPart begin, eSliderPart center, eSliderPart end, int xDim, int yDim, int offset, float totalDim );
|
||
|
|
||
|
private:
|
||
|
enum eScrollOrientation{ SO_VERTICAL, SO_HORIZONTAL };
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "1. Drawing/Progress/Fill Material";
|
||
|
desc = "Base material set of the progress bar.";
|
||
|
editor = "edit";
|
||
|
datatype = "string";
|
||
|
)
|
||
|
sdStringProperty fillMaterialName;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "1. Drawing/Progress/Highlihgt Fill Material";
|
||
|
desc = "Highlight material set of the progress bar.";
|
||
|
editor = "edit";
|
||
|
datatype = "string";
|
||
|
)
|
||
|
sdStringProperty highlightFillMaterialName;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "1. Drawing/Progress/Segments";
|
||
|
desc = "Number of segments.";
|
||
|
editor = "edit";
|
||
|
datatype = "string";
|
||
|
)
|
||
|
sdFloatProperty numSegments;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "1. Drawing/Progress/Orientation";
|
||
|
desc = "0 is vertical, 1 is horizontal";
|
||
|
editor = "edit";
|
||
|
datatype = "string";
|
||
|
)
|
||
|
sdFloatProperty orientation;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "2. Object/Progress/Range";
|
||
|
desc = "Lower and upper values.";
|
||
|
editor = "edit";
|
||
|
datatype = "vec2";
|
||
|
)
|
||
|
sdVec2Property range;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "2. Object/Progress/Highlight Range";
|
||
|
desc = "Lower and upper highlight values.";
|
||
|
editor = "edit";
|
||
|
datatype = "vec2";
|
||
|
)
|
||
|
sdVec2Property highlightRange;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "2. Object/Progress/Position";
|
||
|
desc = "Current position within the range";
|
||
|
editor = "edit";
|
||
|
datatype = "string";
|
||
|
)
|
||
|
sdFloatProperty position;
|
||
|
// ===========================================
|
||
|
|
||
|
SD_UI_PROPERTY_TAG(
|
||
|
title = "2. Object/Progress/Highlight color";
|
||
|
desc = "Color of highlight segment";
|
||
|
editor = "edit";
|
||
|
datatype = "vec4";
|
||
|
)
|
||
|
sdVec4Property highlightColor;
|
||
|
// ===========================================
|
||
|
|
||
|
private:
|
||
|
idStaticList< uiDrawPart_t, SP_MAX > sliderParts;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // ! __GAME_GUIS_USERINTERFACEPROGRESS_H__
|