diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /mp/src/public/vgui_controls/ScrollBar.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/public/vgui_controls/ScrollBar.h')
| -rw-r--r-- | mp/src/public/vgui_controls/ScrollBar.h | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/mp/src/public/vgui_controls/ScrollBar.h b/mp/src/public/vgui_controls/ScrollBar.h new file mode 100644 index 00000000..dcee9b01 --- /dev/null +++ b/mp/src/public/vgui_controls/ScrollBar.h @@ -0,0 +1,133 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef SCROLLBAR_H
+#define SCROLLBAR_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include <vgui_controls/Panel.h>
+
+namespace vgui
+{
+
+class Button;
+class ScrollBarSlider;
+
+//-----------------------------------------------------------------------------
+// Purpose: Generic scrollbar
+// Uses Buttons & SliderBars for the main functionality
+//-----------------------------------------------------------------------------
+class ScrollBar : public Panel
+{
+ DECLARE_CLASS_SIMPLE( ScrollBar, Panel );
+
+public:
+ ScrollBar(Panel *parent, const char *panelName, bool vertical);
+
+ // Set the value of the scroll bar slider.
+ virtual void SetValue(int value);
+
+ // Get the value of the scroll bar slider.
+ virtual int GetValue();
+
+ // Set the rangeof numbers the slider can scroll through
+ virtual void SetRange(int min,int max);
+
+ virtual void GetRange(int &min, int &max);
+
+ // Set how many lines are displayed at one time
+ // in the window the scroll bar is attached to.
+ virtual void SetRangeWindow(int rangeWindow);
+
+ // Get how many lines are displayed at one time
+ // in the window the scroll bar is attached to.
+ virtual int GetRangeWindow();
+
+ // Check if the scrollbar is vertical or horizontal
+ virtual bool IsVertical();
+
+ // Purpose: Check if the slider can move through one or more pixels per
+ // unit of its range.
+ virtual bool HasFullRange();
+
+ // Setup the indexed scroll bar button with the input params.
+ virtual void SetButton(Button* button,int index);
+ // Return the indexed scroll bar button
+ virtual Button *GetButton(int index);
+ // Set up the slider.
+ virtual void SetSlider(ScrollBarSlider* slider);
+ // Return a pointer to the slider.
+ virtual ScrollBarSlider *GetSlider();
+ // Set how far the scroll bar slider moves
+ // when a scroll bar button is pressed
+ virtual void SetButtonPressedScrollValue(int value);
+
+ virtual void Validate();
+
+ // Update and look for clicks when mouse is in the scroll bar window.
+ virtual void OnMouseFocusTicked();
+
+ // Set the slider's Paint border enabled.
+ virtual void SetPaintBorderEnabled(bool state);
+ // Set the slider's Paint background enabled.
+ virtual void SetPaintBackgroundEnabled(bool state);
+ // Set the slider's Paint enabled.
+ virtual void SetPaintEnabled(bool state);
+
+ // Sets the scrollbar buttons visible or not
+ virtual void SetScrollbarButtonsVisible(bool visible);
+
+ void SetAutohideButtons( bool bAutohide ) { m_bAutoHideButtons = bAutohide; }
+
+ void UseImages( const char *pszUpArrow, const char *pszDownArrow, const char *pszLine, const char *pszBox );
+
+ /* MESSAGES SENT:
+ "ScrollBarSliderMoved"
+ "position" - new value of the slider
+ */
+
+ void SetOverriddenButtons( Button *pB1, Button *pB2 ) { m_pOverriddenButtons[0] = pB1; m_pOverriddenButtons[1] = pB2; }
+
+ virtual void ApplySettings( KeyValues *pInResourceData );
+
+protected:
+
+ virtual void PerformLayout();
+ virtual void SendSliderMoveMessage(int value);
+ virtual void ApplySchemeSettings(IScheme *pScheme);
+ virtual void OnSizeChanged(int wide, int tall);
+
+ MESSAGE_FUNC_INT( OnSliderMoved, "ScrollBarSliderMoved", position );
+ virtual void RespondToScrollArrow(int const direction);
+
+ virtual void UpdateButtonsForImages( void );
+ virtual void UpdateSliderImages( void );
+ Button *GetDepressedButton( int iIndex );
+
+private:
+ Button* _button[2];
+ ScrollBarSlider* _slider;
+ int _buttonPressedScrollValue;
+ int _scrollDelay; // used to control delays in scrolling
+ bool _respond;
+ bool m_bNoButtons;
+ CPanelAnimationVar( bool, m_bAutoHideButtons, "autohide_buttons", "0" );
+
+ vgui::ImagePanel *m_pUpArrow;
+ vgui::ImagePanel *m_pLine;
+ vgui::ImagePanel *m_pDownArrow;
+ vgui::ImagePanel *m_pBox;
+ Button *m_pOverriddenButtons[2];
+};
+
+}
+
+#endif // SCROLLBAR_H
|