Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//=========== Copyright Valve Corporation, All rights reserved. ===============//
//
// Purpose:
//=============================================================================//
#ifndef PANORAMA_SLIDER_H
#define PANORAMA_SLIDER_H
#ifdef _WIN32
#pragma once
#endif
#include "panorama/controls/panel2d.h"
namespace panorama {
DECLARE_PANEL_EVENT1( SliderValueChanged, float ); DECLARE_PANEL_EVENT1( SlottedSliderValueChanged, int ); DECLARE_PANEL_EVENT1( SliderFocusChanged, bool );
//-----------------------------------------------------------------------------
// Purpose: Slider control which includes track, progress & thumb
//-----------------------------------------------------------------------------
class CSlider: public CPanel2D { DECLARE_PANEL2D( CSlider, CPanel2D );
public: CSlider( CPanel2D *pParent, const char *pchID ); virtual ~CSlider();
enum ESliderDirection { k_EDirectionVertical, k_EDirectionHorizontal };
void SetMin( float flMin ) { m_flMin = flMin; InvalidateSizeAndPosition(); } void SetMax( float flMax ) { m_flMax = flMax; InvalidateSizeAndPosition(); } void SetIncrement( float flValue ) { m_flIncrement = flValue; } virtual void SetValue( float flValue ); float GetValue() { return m_flCur; } float GetDefaultValue() { return m_flDefault; } void SetDefaultValue ( float flValue ) { m_flDefault = flValue; } void SetShowDefaultValue( bool bShow ) { m_bShowDefault = bShow; } void SetDirection( ESliderDirection eValue );
virtual bool BSetProperty( CPanoramaSymbol symName, const char *pchValue );
virtual bool OnMouseButtonDown( const MouseData_t &code ) OVERRIDE; virtual bool OnMouseButtonUp( const MouseData_t &code ) OVERRIDE; virtual void OnMouseMove( float flMouseX, float flMouseY ) OVERRIDE; virtual bool OnMoveUp( int nRepeats ) OVERRIDE; virtual bool OnMoveRight( int nRepeats ) OVERRIDE; virtual bool OnMoveDown( int nRepeats ) OVERRIDE; virtual bool OnMoveLeft( int nRepeats ) OVERRIDE;
virtual bool OnActivate(panorama::EPanelEventSource_t eSource); virtual bool OnCancel(panorama::EPanelEventSource_t eSource); virtual void OnStyleFlagsChanged(); virtual void OnResetToDefaultValue();
void SetRequiresSelection( bool bRequireSelection ) { m_bRequiresSelection = bRequireSelection; }
protected: bool EventPanelActivated( const CPanelPtr< IUIPanel > &pPanel, EPanelEventSource_t eSource ); virtual void OnLayoutTraverse( float flFinalWidth, float flFinalHeight ); void SetValueFromMouse( float x, float y ); float GetMin() { return m_flMin; } float GetMax() { return m_flMax; } ESliderDirection GetDirection() { return m_eDirection; }
CPanel2D *m_pThumb; CPanel2D *m_pTrack; CPanel2D *m_pProgress; CPanel2D *m_pDefaultTick; bool EventActivated( const panorama::CPanelPtr< panorama::IUIPanel > &pPanel, panorama::EPanelEventSource_t eSource ); bool EventCancelled( const panorama::CPanelPtr< panorama::IUIPanel > &pPanel, panorama::EPanelEventSource_t eSource ); bool EventStyleFlagsChanged( const panorama::CPanelPtr< panorama::IUIPanel > &pPanel ); bool EventResetToDefault( const panorama::CPanelPtr< panorama::IUIPanel > &pPanel );
private: bool AllowInteraction( void ); bool ShouldShowDefault( void ) { return m_bShowDefault; }
float m_flMin; float m_flMax; float m_flDefault; float m_flCur; float m_flLast; float m_flIncrement; bool m_bRequiresSelection; bool m_bDraggingThumb; bool m_bShowDefault; ESliderDirection m_eDirection;
float m_flLastMouseX; float m_flLastMouseY; };
class CSlottedSlider : public CSlider { DECLARE_PANEL2D( CSlottedSlider, CSlider ); public: CSlottedSlider( CPanel2D *pParent, const char *pchID ); virtual ~CSlottedSlider();
virtual bool BSetProperty( CPanoramaSymbol symName, const char *pchValue ); virtual void SetValue( float flValue ); void SetValue( int nValue ); virtual void OnLayoutTraverse( float flFinalWidth, float flFinalHeight ); int GetCurrentNotch() { return m_nCurNotch; }
private: int m_nNumNotches; int m_nCurNotch; CUtlVector< CPanel2D* > m_pNotches; };
} // namespace panorama
#endif // PANORAMA_SLIDER_H
|