aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/vgui
diff options
context:
space:
mode:
authorNarendra Umate <[email protected]>2013-12-02 23:36:05 -0800
committerNarendra Umate <[email protected]>2013-12-02 23:36:05 -0800
commit8737f191f3b59f001a77bf6c08091109211c1c9f (patch)
treedbbf05c004d9b026f2c1f23f06600fe0add82c36 /mp/src/public/vgui
parentUpdate .gitignore. (diff)
parentMake .xcconfigs text files too. (diff)
downloadsource-sdk-2013-8737f191f3b59f001a77bf6c08091109211c1c9f.tar.xz
source-sdk-2013-8737f191f3b59f001a77bf6c08091109211c1c9f.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'mp/src/public/vgui')
-rw-r--r--mp/src/public/vgui/Cursor.h94
-rw-r--r--mp/src/public/vgui/Dar.h268
-rw-r--r--mp/src/public/vgui/IBorder.h132
-rw-r--r--mp/src/public/vgui/IClientPanel.h188
-rw-r--r--mp/src/public/vgui/IHTML.h402
-rw-r--r--mp/src/public/vgui/IImage.h150
-rw-r--r--mp/src/public/vgui/IInput.h386
-rw-r--r--mp/src/public/vgui/IInputInternal.h172
-rw-r--r--mp/src/public/vgui/ILocalize.h48
-rw-r--r--mp/src/public/vgui/IPanel.h278
-rw-r--r--mp/src/public/vgui/IScheme.h254
-rw-r--r--mp/src/public/vgui/ISurface.h806
-rw-r--r--mp/src/public/vgui/ISurfaceV30.h750
-rw-r--r--mp/src/public/vgui/ISystem.h268
-rw-r--r--mp/src/public/vgui/IVGui.h218
-rw-r--r--mp/src/public/vgui/IVguiMatInfo.h60
-rw-r--r--mp/src/public/vgui/IVguiMatInfoVar.h54
-rw-r--r--mp/src/public/vgui/KeyCode.h48
-rw-r--r--mp/src/public/vgui/MouseCode.h46
-rw-r--r--mp/src/public/vgui/Point.h122
-rw-r--r--mp/src/public/vgui/VGUI.h162
-rw-r--r--mp/src/public/vgui/ipainthtml.h106
-rw-r--r--mp/src/public/vgui/keyrepeat.h94
23 files changed, 2553 insertions, 2553 deletions
diff --git a/mp/src/public/vgui/Cursor.h b/mp/src/public/vgui/Cursor.h
index db6eef52..be9ca78b 100644
--- a/mp/src/public/vgui/Cursor.h
+++ b/mp/src/public/vgui/Cursor.h
@@ -1,47 +1,47 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Holds the enumerated list of default cursors
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef CURSOR_H
-#define CURSOR_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-
-namespace vgui
-{
-
-enum CursorCode
-{
- dc_user,
- dc_none,
- dc_arrow,
- dc_ibeam,
- dc_hourglass,
- dc_waitarrow,
- dc_crosshair,
- dc_up,
- dc_sizenwse,
- dc_sizenesw,
- dc_sizewe,
- dc_sizens,
- dc_sizeall,
- dc_no,
- dc_hand,
- dc_blank, // don't show any custom vgui cursor, just let windows do it stuff (for HTML widget)
- dc_last,
- dc_alwaysvisible_push,
- dc_alwaysvisible_pop,
-};
-
-typedef unsigned long HCursor;
-
-}
-
-#endif // CURSOR_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Holds the enumerated list of default cursors
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef CURSOR_H
+#define CURSOR_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+
+namespace vgui
+{
+
+enum CursorCode
+{
+ dc_user,
+ dc_none,
+ dc_arrow,
+ dc_ibeam,
+ dc_hourglass,
+ dc_waitarrow,
+ dc_crosshair,
+ dc_up,
+ dc_sizenwse,
+ dc_sizenesw,
+ dc_sizewe,
+ dc_sizens,
+ dc_sizeall,
+ dc_no,
+ dc_hand,
+ dc_blank, // don't show any custom vgui cursor, just let windows do it stuff (for HTML widget)
+ dc_last,
+ dc_alwaysvisible_push,
+ dc_alwaysvisible_pop,
+};
+
+typedef unsigned long HCursor;
+
+}
+
+#endif // CURSOR_H
diff --git a/mp/src/public/vgui/Dar.h b/mp/src/public/vgui/Dar.h
index b062a26d..ee720085 100644
--- a/mp/src/public/vgui/Dar.h
+++ b/mp/src/public/vgui/Dar.h
@@ -1,134 +1,134 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Holds the enumerated list of default cursors
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef DAR_H
-#define DAR_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <vgui/VGUI.h>
-#include "tier1/utlvector.h"
-
-#include "tier0/memdbgon.h"
-
-namespace vgui
-{
-
-//-----------------------------------------------------------------------------
-// Purpose: Simple lightweight dynamic array implementation
-//-----------------------------------------------------------------------------
-template<class ELEMTYPE> class Dar : public CUtlVector< ELEMTYPE >
-{
- typedef CUtlVector< ELEMTYPE > BaseClass;
-
-public:
- Dar()
- {
- }
- Dar(int initialCapacity) :
- BaseClass( 0, initialCapacity )
- {
- }
-
-public:
- void SetCount(int count)
- {
- this->EnsureCount( count );
- }
- int GetCount()
- {
- return this->Count();
- }
- int AddElement(ELEMTYPE elem)
- {
- return this->AddToTail( elem );
- }
- void MoveElementToEnd( ELEMTYPE elem )
- {
- if ( this->Count() == 0 )
- return;
-
- // quick check to see if it's already at the end
- if ( this->Element( this->Count() - 1 ) == elem )
- return;
-
- int idx = this->Find( elem );
- if ( idx == this->InvalidIndex() )
- return;
-
- this->Remove( idx );
- this->AddToTail( elem );
- }
- // returns the index of the element in the array, -1 if not found
- int FindElement(ELEMTYPE elem)
- {
- return this->Find( elem );
- }
- bool HasElement(ELEMTYPE elem)
- {
- if ( this->FindElement(elem) != this->InvalidIndex() )
- {
- return true;
- }
- return false;
- }
- int PutElement(ELEMTYPE elem)
- {
- int index = this->FindElement(elem);
- if (index >= 0)
- {
- return index;
- }
- return this->AddElement(elem);
- }
- // insert element at index and move all the others down 1
- void InsertElementAt(ELEMTYPE elem,int index)
- {
- this->InsertBefore( index, elem );
- }
- void SetElementAt(ELEMTYPE elem,int index)
- {
- this->EnsureCount( index + 1 );
- this->Element( index ) = elem;
- }
- void RemoveElementAt(int index)
- {
- this->Remove( index );
- }
-
- void RemoveElementsBefore(int index)
- {
- if ( index <= 0 )
- return;
- this->RemoveMultiple( 0, index - 1 );
- }
-
- void RemoveElement(ELEMTYPE elem)
- {
- this->FindAndRemove( elem );
- }
-
- void *GetBaseData()
- {
- return this->Base();
- }
-
- void CopyFrom(Dar<ELEMTYPE> &dar)
- {
- this->CopyArray( dar.Base(), dar.Count() );
- }
-};
-
-}
-
-#include "tier0/memdbgoff.h"
-
-#endif // DAR_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Holds the enumerated list of default cursors
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef DAR_H
+#define DAR_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <vgui/VGUI.h>
+#include "tier1/utlvector.h"
+
+#include "tier0/memdbgon.h"
+
+namespace vgui
+{
+
+//-----------------------------------------------------------------------------
+// Purpose: Simple lightweight dynamic array implementation
+//-----------------------------------------------------------------------------
+template<class ELEMTYPE> class Dar : public CUtlVector< ELEMTYPE >
+{
+ typedef CUtlVector< ELEMTYPE > BaseClass;
+
+public:
+ Dar()
+ {
+ }
+ Dar(int initialCapacity) :
+ BaseClass( 0, initialCapacity )
+ {
+ }
+
+public:
+ void SetCount(int count)
+ {
+ this->EnsureCount( count );
+ }
+ int GetCount()
+ {
+ return this->Count();
+ }
+ int AddElement(ELEMTYPE elem)
+ {
+ return this->AddToTail( elem );
+ }
+ void MoveElementToEnd( ELEMTYPE elem )
+ {
+ if ( this->Count() == 0 )
+ return;
+
+ // quick check to see if it's already at the end
+ if ( this->Element( this->Count() - 1 ) == elem )
+ return;
+
+ int idx = this->Find( elem );
+ if ( idx == this->InvalidIndex() )
+ return;
+
+ this->Remove( idx );
+ this->AddToTail( elem );
+ }
+ // returns the index of the element in the array, -1 if not found
+ int FindElement(ELEMTYPE elem)
+ {
+ return this->Find( elem );
+ }
+ bool HasElement(ELEMTYPE elem)
+ {
+ if ( this->FindElement(elem) != this->InvalidIndex() )
+ {
+ return true;
+ }
+ return false;
+ }
+ int PutElement(ELEMTYPE elem)
+ {
+ int index = this->FindElement(elem);
+ if (index >= 0)
+ {
+ return index;
+ }
+ return this->AddElement(elem);
+ }
+ // insert element at index and move all the others down 1
+ void InsertElementAt(ELEMTYPE elem,int index)
+ {
+ this->InsertBefore( index, elem );
+ }
+ void SetElementAt(ELEMTYPE elem,int index)
+ {
+ this->EnsureCount( index + 1 );
+ this->Element( index ) = elem;
+ }
+ void RemoveElementAt(int index)
+ {
+ this->Remove( index );
+ }
+
+ void RemoveElementsBefore(int index)
+ {
+ if ( index <= 0 )
+ return;
+ this->RemoveMultiple( 0, index - 1 );
+ }
+
+ void RemoveElement(ELEMTYPE elem)
+ {
+ this->FindAndRemove( elem );
+ }
+
+ void *GetBaseData()
+ {
+ return this->Base();
+ }
+
+ void CopyFrom(Dar<ELEMTYPE> &dar)
+ {
+ this->CopyArray( dar.Base(), dar.Count() );
+ }
+};
+
+}
+
+#include "tier0/memdbgoff.h"
+
+#endif // DAR_H
diff --git a/mp/src/public/vgui/IBorder.h b/mp/src/public/vgui/IBorder.h
index 1a4a15c4..e1237eb1 100644
--- a/mp/src/public/vgui/IBorder.h
+++ b/mp/src/public/vgui/IBorder.h
@@ -1,66 +1,66 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IBORDER_H
-#define IBORDER_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-
-class KeyValues;
-
-namespace vgui
-{
-
-class IScheme;
-
-//-----------------------------------------------------------------------------
-// Purpose: Interface to panel borders
-// Borders have a close relationship with panels
-// They are the edges of the panel.
-//-----------------------------------------------------------------------------
-class IBorder
-{
-public:
- IBorder() {}
- virtual ~IBorder() {}
-
- virtual void Paint(VPANEL panel) = 0;
- virtual void Paint(int x0, int y0, int x1, int y1) = 0;
- virtual void Paint(int x0, int y0, int x1, int y1, int breakSide, int breakStart, int breakStop) = 0;
- virtual void SetInset(int left, int top, int right, int bottom) = 0;
- virtual void GetInset(int &left, int &top, int &right, int &bottom) = 0;
- virtual void ApplySchemeSettings(IScheme *pScheme, KeyValues *inResourceData) = 0;
- virtual const char *GetName() = 0;
- virtual void SetName(const char *name) = 0;
-
- enum backgroundtype_e
- {
- BACKGROUND_FILLED,
- BACKGROUND_TEXTURED,
- BACKGROUND_ROUNDEDCORNERS,
- };
- virtual backgroundtype_e GetBackgroundType() = 0;
-
- enum sides_e
- {
- SIDE_LEFT = 0,
- SIDE_TOP = 1,
- SIDE_RIGHT = 2,
- SIDE_BOTTOM = 3
- };
-
- virtual bool PaintFirst( void ) = 0;
-};
-
-} // namespace vgui
-
-
-#endif // IBORDER_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IBORDER_H
+#define IBORDER_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+
+class KeyValues;
+
+namespace vgui
+{
+
+class IScheme;
+
+//-----------------------------------------------------------------------------
+// Purpose: Interface to panel borders
+// Borders have a close relationship with panels
+// They are the edges of the panel.
+//-----------------------------------------------------------------------------
+class IBorder
+{
+public:
+ IBorder() {}
+ virtual ~IBorder() {}
+
+ virtual void Paint(VPANEL panel) = 0;
+ virtual void Paint(int x0, int y0, int x1, int y1) = 0;
+ virtual void Paint(int x0, int y0, int x1, int y1, int breakSide, int breakStart, int breakStop) = 0;
+ virtual void SetInset(int left, int top, int right, int bottom) = 0;
+ virtual void GetInset(int &left, int &top, int &right, int &bottom) = 0;
+ virtual void ApplySchemeSettings(IScheme *pScheme, KeyValues *inResourceData) = 0;
+ virtual const char *GetName() = 0;
+ virtual void SetName(const char *name) = 0;
+
+ enum backgroundtype_e
+ {
+ BACKGROUND_FILLED,
+ BACKGROUND_TEXTURED,
+ BACKGROUND_ROUNDEDCORNERS,
+ };
+ virtual backgroundtype_e GetBackgroundType() = 0;
+
+ enum sides_e
+ {
+ SIDE_LEFT = 0,
+ SIDE_TOP = 1,
+ SIDE_RIGHT = 2,
+ SIDE_BOTTOM = 3
+ };
+
+ virtual bool PaintFirst( void ) = 0;
+};
+
+} // namespace vgui
+
+
+#endif // IBORDER_H
diff --git a/mp/src/public/vgui/IClientPanel.h b/mp/src/public/vgui/IClientPanel.h
index 8fc147b7..ff964973 100644
--- a/mp/src/public/vgui/IClientPanel.h
+++ b/mp/src/public/vgui/IClientPanel.h
@@ -1,94 +1,94 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef ICLIENTPANEL_H
-#define ICLIENTPANEL_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-
-#ifdef GetClassName
-#undef GetClassName
-#endif
-
-class KeyValues;
-
-namespace vgui
-{
-
-class Panel;
-class SurfaceBase;
-
-enum EInterfaceID
-{
- ICLIENTPANEL_STANDARD_INTERFACE = 0,
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: Interface from vgui panels -> Client panels
-// This interface cannot be changed without rebuilding all vgui projects
-// Primarily this interface handles dispatching messages from core vgui to controls
-// The additional functions are all their for debugging or optimization reasons
-// To add to this later, use QueryInterface() to see if they support new interfaces
-//-----------------------------------------------------------------------------
-class IClientPanel
-{
-public:
- virtual VPANEL GetVPanel() = 0;
-
- // straight interface to Panel functions
- virtual void Think() = 0;
- virtual void PerformApplySchemeSettings() = 0;
- virtual void PaintTraverse(bool forceRepaint, bool allowForce) = 0;
- virtual void Repaint() = 0;
- virtual VPANEL IsWithinTraverse(int x, int y, bool traversePopups) = 0;
- virtual void GetInset(int &top, int &left, int &right, int &bottom) = 0;
- virtual void GetClipRect(int &x0, int &y0, int &x1, int &y1) = 0;
- virtual void OnChildAdded(VPANEL child) = 0;
- virtual void OnSizeChanged(int newWide, int newTall) = 0;
-
- virtual void InternalFocusChanged(bool lost) = 0;
- virtual bool RequestInfo(KeyValues *outputData) = 0;
- virtual void RequestFocus(int direction) = 0;
- virtual bool RequestFocusPrev(VPANEL existingPanel) = 0;
- virtual bool RequestFocusNext(VPANEL existingPanel) = 0;
- virtual void OnMessage(const KeyValues *params, VPANEL ifromPanel) = 0;
- virtual VPANEL GetCurrentKeyFocus() = 0;
- virtual int GetTabPosition() = 0;
-
- // for debugging purposes
- virtual const char *GetName() = 0;
- virtual const char *GetClassName() = 0;
-
- // get scheme handles from panels
- virtual HScheme GetScheme() = 0;
- // gets whether or not this panel should scale with screen resolution
- virtual bool IsProportional() = 0;
- // auto-deletion
- virtual bool IsAutoDeleteSet() = 0;
- // deletes this
- virtual void DeletePanel() = 0;
-
- // interfaces
- virtual void *QueryInterface(EInterfaceID id) = 0;
-
- // returns a pointer to the vgui controls baseclass Panel *
- virtual Panel *GetPanel() = 0;
-
- // returns the name of the module this panel is part of
- virtual const char *GetModuleName() = 0;
-
- virtual void OnTick() = 0;
-};
-
-} // namespace vgui
-
-
-#endif // ICLIENTPANEL_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef ICLIENTPANEL_H
+#define ICLIENTPANEL_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+
+#ifdef GetClassName
+#undef GetClassName
+#endif
+
+class KeyValues;
+
+namespace vgui
+{
+
+class Panel;
+class SurfaceBase;
+
+enum EInterfaceID
+{
+ ICLIENTPANEL_STANDARD_INTERFACE = 0,
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Interface from vgui panels -> Client panels
+// This interface cannot be changed without rebuilding all vgui projects
+// Primarily this interface handles dispatching messages from core vgui to controls
+// The additional functions are all their for debugging or optimization reasons
+// To add to this later, use QueryInterface() to see if they support new interfaces
+//-----------------------------------------------------------------------------
+class IClientPanel
+{
+public:
+ virtual VPANEL GetVPanel() = 0;
+
+ // straight interface to Panel functions
+ virtual void Think() = 0;
+ virtual void PerformApplySchemeSettings() = 0;
+ virtual void PaintTraverse(bool forceRepaint, bool allowForce) = 0;
+ virtual void Repaint() = 0;
+ virtual VPANEL IsWithinTraverse(int x, int y, bool traversePopups) = 0;
+ virtual void GetInset(int &top, int &left, int &right, int &bottom) = 0;
+ virtual void GetClipRect(int &x0, int &y0, int &x1, int &y1) = 0;
+ virtual void OnChildAdded(VPANEL child) = 0;
+ virtual void OnSizeChanged(int newWide, int newTall) = 0;
+
+ virtual void InternalFocusChanged(bool lost) = 0;
+ virtual bool RequestInfo(KeyValues *outputData) = 0;
+ virtual void RequestFocus(int direction) = 0;
+ virtual bool RequestFocusPrev(VPANEL existingPanel) = 0;
+ virtual bool RequestFocusNext(VPANEL existingPanel) = 0;
+ virtual void OnMessage(const KeyValues *params, VPANEL ifromPanel) = 0;
+ virtual VPANEL GetCurrentKeyFocus() = 0;
+ virtual int GetTabPosition() = 0;
+
+ // for debugging purposes
+ virtual const char *GetName() = 0;
+ virtual const char *GetClassName() = 0;
+
+ // get scheme handles from panels
+ virtual HScheme GetScheme() = 0;
+ // gets whether or not this panel should scale with screen resolution
+ virtual bool IsProportional() = 0;
+ // auto-deletion
+ virtual bool IsAutoDeleteSet() = 0;
+ // deletes this
+ virtual void DeletePanel() = 0;
+
+ // interfaces
+ virtual void *QueryInterface(EInterfaceID id) = 0;
+
+ // returns a pointer to the vgui controls baseclass Panel *
+ virtual Panel *GetPanel() = 0;
+
+ // returns the name of the module this panel is part of
+ virtual const char *GetModuleName() = 0;
+
+ virtual void OnTick() = 0;
+};
+
+} // namespace vgui
+
+
+#endif // ICLIENTPANEL_H
diff --git a/mp/src/public/vgui/IHTML.h b/mp/src/public/vgui/IHTML.h
index df1d5f6b..e296a0ce 100644
--- a/mp/src/public/vgui/IHTML.h
+++ b/mp/src/public/vgui/IHTML.h
@@ -1,201 +1,201 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IHTML_H
-#define IHTML_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-#include <vgui/MouseCode.h>
-#include <vgui/KeyCode.h>
-#include <vgui/Cursor.h>
-#include <vgui/IImage.h>
-
-namespace vgui
-{
-
- //-----------------------------------------------------------------------------
- // Purpose: basic interface for a HTML window
- //-----------------------------------------------------------------------------
- class IHTML
- {
- public:
- // open a new page
- virtual void OpenURL(const char *)=0;
-
- // stops the existing page from loading
- virtual bool StopLoading()=0;
-
- // refreshes the current page
- virtual bool Refresh()=0;
-
- // display the control -- deprecated !! Use SetVisible() instead!
- virtual bool Show(bool shown)=0;
-
- // return the currently opened page
- virtual const char *GetOpenedPage()=0;
-
- // called when the browser needs to be resized
- virtual void Obsolete_OnSize(int x,int y, int w,int h)=0;
-
- // returns the width and height (in pixels) of the HTML full page (not just the displayed region)
- virtual void GetHTMLSize(int &wide,int &tall) = 0;
-
-
- // clear the text in an existing control
- virtual void Clear()=0;
-
- // add text to the browser control (as a HTML formated string)
- virtual void AddText(const char *text)=0;
-
- enum MOUSE_STATE { UP,DOWN,MOVE,DBLCLICK };
- // unused functions we keep around so the vtable layout is binary compatible
- virtual void Obsolete_OnMouse(MouseCode code,MOUSE_STATE s,int x,int y)=0;
- virtual void Obsolete_OnChar(wchar_t unichar)=0;
- virtual void Obsolete_OnKeyDown(KeyCode code)=0;
-
- virtual vgui::IImage *GetBitmap()=0;
- virtual void SetVisible( bool state ) = 0;
-
-
- virtual void SetSize( int wide,int tall )=0;
-
- virtual void OnMouse(MouseCode code,MOUSE_STATE s,int x,int y, bool bPopupMenuMenu )=0;
- virtual void OnChar(wchar_t unichar, bool bPopupMenu)=0;
- virtual void OnKeyDown(KeyCode code, bool bPopupMenu)=0;
-
- virtual void ScrollV( int nPixels ) = 0;
- virtual void ScrollH( int nPixels ) = 0;
- virtual void OnMouseWheeled( int delta, bool bPopupMenu )= 0;
-
- // called when the browser needs to be resized
- virtual void OnKeyUp(KeyCode code, bool bPopupMenu)=0;
-
-
- // open a URL with the provided POST data (which can be much larger than the max URL of 512 chars)
- // NOTE - You CANNOT have get params (i.e a "?" ) in pchURL if pchPostData is set (due to an IE bug)
- virtual void PostURL( const char *pchURL, const char *pchPostData ) = 0;
-
- // Run javascript within the browser control
- virtual void RunJavascript( const char *pchScript ) = 0;
-
- virtual void SetMousePosition( int x, int y, bool bPopupMenu ) = 0;
-
- virtual void SetUserAgentInfo( const wchar_t *pwchUserAgent ) = 0;
-
- // can't add custom headers to IE
- virtual void AddHeader( const char *pchHeader, const char *pchValue ) = 0;
-
- virtual void SetFileDialogChoice( const char *pchFileName ) = 0;
-
- // we are hiding the popup, so make sure webkit knows
- virtual void HidePopup() = 0;
- virtual void SetHTMLFocus() = 0;
- virtual void KillHTMLFocus() = 0;
- // ask webkit about the size of any scrollbars it wants to render
- virtual void HorizontalScrollBarSize( int &x, int &y, int &wide, int &tall) = 0;
- virtual void VerticalScrollBarSize( int &x, int &y, int &wide, int &tall) = 0;
- virtual int HorizontalScroll() = 0;
- virtual int VerticalScroll() = 0;
- virtual int HorizontalScrollMax() =0;
- virtual int VerticalScrollMax() =0;
- virtual bool IsHorizontalScrollBarVisible() =0;
- virtual bool IsVeritcalScrollBarVisible() =0;
- virtual void SetHorizontalScroll( int scroll ) =0;
- virtual void SetVerticalScroll( int scroll ) =0;
- virtual void ViewSource() = 0;
- virtual void Copy() = 0;
- virtual void Paste() = 0;
-
- // IE specific calls
- virtual bool IsIERender() = 0;
- virtual void GetIDispatchPtr( void **pIDispatch ) = 0;
- virtual void GetHTMLScroll( int &top, int &left ) = 0;
- };
-
-
- //-----------------------------------------------------------------------------
- // Purpose: possible load errors when you open a url in the web browser
- //-----------------------------------------------------------------------------
- enum EWebPageLoadError
- {
- eLoadErrorNone = 0,
- eMimeTypeNotSupported, // probably trying to download an exe or something
- eCacheMiss, // Usually caused by navigating to a page with POST data via back or forward buttons
- eBadURL, // bad url passed in (invalid hostname, malformed)
- eConnectionProblem, // network connectivity problem, server offline or user not on internet
- eProxyConnectionProblem, // User is configured to use proxy, but we can't use it
-
- eLoadErrorUnknown, // not a load type we classify right now, check out cef_handler_errorcode_t for the full list we could translate
- };
-
-
- //-----------------------------------------------------------------------------
- // Purpose: basic callback interface for a HTML window
- //-----------------------------------------------------------------------------
- class IHTMLEvents
- {
- public:
- // unused functions we keep around so the vtable layout is binary compatible
- virtual bool Obsolete_OnStartURL(const char *url, const char *target, bool first)=0;
- virtual void Obsolete_OnFinishURL(const char *url)=0;
- virtual void Obsolete_OnProgressURL(long current, long maximum)=0;
- virtual void Obsolete_OnSetStatusText(const char *text) =0;
- virtual void Obsolete_OnUpdate() =0;
- virtual void Obsolete_OnLink()=0;
- virtual void Obsolete_OffLink()=0;
-
- // call backs for events
- // when the top level browser is changing the page they are looking at (not sub iframes or the like loading)
- virtual void OnURLChanged( const char *url, const char *pchPostData, bool bIsRedirect ) = 0;
- // the control has finished loading a request, could be a sub request in the page
- virtual void OnFinishRequest( const char *url, const char *pageTitle ) = 0;
-
- // the lower html control wants to load a url, do we allow it?
- virtual bool OnStartRequestInternal( const char *url, const char *target, const char *pchPostData, bool bIsRedirect ) = 0;
-
- // show a popup menu for this html control
- virtual void ShowPopup( int x, int y, int wide, int tall ) = 0;
- // hide any popup menu you are showing
- virtual void HidePopup() = 0;
- // show an external html window at this position and side
- virtual bool OnPopupHTMLWindow( const char *pchURL, int x, int y, int wide, int tall ) = 0;
- // the browser is telling us the title it would like us to show
- virtual void SetHTMLTitle( const char *pchTitle ) = 0;
- // the browser is loading a sub url for a page, usually an image or css
- virtual void OnLoadingResource( const char *pchURL ) = 0;
- // the browser is telling us the user is hovering a url or the like
- virtual void OnSetStatusText(const char *text) =0;
- // the browser wants the cursor changed please
- virtual void OnSetCursor( vgui::CursorCode cursor ) = 0;
- // the browser wants to ask the user to select a local file and tell it about it
- virtual void OnFileLoadDialog( const char *pchTitle, const char *pchInitialFile ) = 0;
- // show and hide tooltip text
- virtual void OnShowToolTip( const char *pchText ) = 0;
- virtual void OnUpdateToolTip( const char *pchText ) = 0;
- virtual void OnHideToolTip() = 0;
-
-
- // IE only code
- virtual bool BOnCreateNewWindow( void **ppDispatch ) = 0;
- virtual void OnLink()=0;
- virtual void OffLink()=0;
- virtual void OnCloseWindow() = 0;
- virtual void OnUpdate() =0;
- virtual void OnProgressRequest(long current, long maximum)=0;
-
- // new Chrome calls
- virtual bool OnOpenNewTab( const char *pchURL, bool bForeground ) = 0;
- };
-
-
-}
-
-#endif // IHTML_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IHTML_H
+#define IHTML_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include <vgui/MouseCode.h>
+#include <vgui/KeyCode.h>
+#include <vgui/Cursor.h>
+#include <vgui/IImage.h>
+
+namespace vgui
+{
+
+ //-----------------------------------------------------------------------------
+ // Purpose: basic interface for a HTML window
+ //-----------------------------------------------------------------------------
+ class IHTML
+ {
+ public:
+ // open a new page
+ virtual void OpenURL(const char *)=0;
+
+ // stops the existing page from loading
+ virtual bool StopLoading()=0;
+
+ // refreshes the current page
+ virtual bool Refresh()=0;
+
+ // display the control -- deprecated !! Use SetVisible() instead!
+ virtual bool Show(bool shown)=0;
+
+ // return the currently opened page
+ virtual const char *GetOpenedPage()=0;
+
+ // called when the browser needs to be resized
+ virtual void Obsolete_OnSize(int x,int y, int w,int h)=0;
+
+ // returns the width and height (in pixels) of the HTML full page (not just the displayed region)
+ virtual void GetHTMLSize(int &wide,int &tall) = 0;
+
+
+ // clear the text in an existing control
+ virtual void Clear()=0;
+
+ // add text to the browser control (as a HTML formated string)
+ virtual void AddText(const char *text)=0;
+
+ enum MOUSE_STATE { UP,DOWN,MOVE,DBLCLICK };
+ // unused functions we keep around so the vtable layout is binary compatible
+ virtual void Obsolete_OnMouse(MouseCode code,MOUSE_STATE s,int x,int y)=0;
+ virtual void Obsolete_OnChar(wchar_t unichar)=0;
+ virtual void Obsolete_OnKeyDown(KeyCode code)=0;
+
+ virtual vgui::IImage *GetBitmap()=0;
+ virtual void SetVisible( bool state ) = 0;
+
+
+ virtual void SetSize( int wide,int tall )=0;
+
+ virtual void OnMouse(MouseCode code,MOUSE_STATE s,int x,int y, bool bPopupMenuMenu )=0;
+ virtual void OnChar(wchar_t unichar, bool bPopupMenu)=0;
+ virtual void OnKeyDown(KeyCode code, bool bPopupMenu)=0;
+
+ virtual void ScrollV( int nPixels ) = 0;
+ virtual void ScrollH( int nPixels ) = 0;
+ virtual void OnMouseWheeled( int delta, bool bPopupMenu )= 0;
+
+ // called when the browser needs to be resized
+ virtual void OnKeyUp(KeyCode code, bool bPopupMenu)=0;
+
+
+ // open a URL with the provided POST data (which can be much larger than the max URL of 512 chars)
+ // NOTE - You CANNOT have get params (i.e a "?" ) in pchURL if pchPostData is set (due to an IE bug)
+ virtual void PostURL( const char *pchURL, const char *pchPostData ) = 0;
+
+ // Run javascript within the browser control
+ virtual void RunJavascript( const char *pchScript ) = 0;
+
+ virtual void SetMousePosition( int x, int y, bool bPopupMenu ) = 0;
+
+ virtual void SetUserAgentInfo( const wchar_t *pwchUserAgent ) = 0;
+
+ // can't add custom headers to IE
+ virtual void AddHeader( const char *pchHeader, const char *pchValue ) = 0;
+
+ virtual void SetFileDialogChoice( const char *pchFileName ) = 0;
+
+ // we are hiding the popup, so make sure webkit knows
+ virtual void HidePopup() = 0;
+ virtual void SetHTMLFocus() = 0;
+ virtual void KillHTMLFocus() = 0;
+ // ask webkit about the size of any scrollbars it wants to render
+ virtual void HorizontalScrollBarSize( int &x, int &y, int &wide, int &tall) = 0;
+ virtual void VerticalScrollBarSize( int &x, int &y, int &wide, int &tall) = 0;
+ virtual int HorizontalScroll() = 0;
+ virtual int VerticalScroll() = 0;
+ virtual int HorizontalScrollMax() =0;
+ virtual int VerticalScrollMax() =0;
+ virtual bool IsHorizontalScrollBarVisible() =0;
+ virtual bool IsVeritcalScrollBarVisible() =0;
+ virtual void SetHorizontalScroll( int scroll ) =0;
+ virtual void SetVerticalScroll( int scroll ) =0;
+ virtual void ViewSource() = 0;
+ virtual void Copy() = 0;
+ virtual void Paste() = 0;
+
+ // IE specific calls
+ virtual bool IsIERender() = 0;
+ virtual void GetIDispatchPtr( void **pIDispatch ) = 0;
+ virtual void GetHTMLScroll( int &top, int &left ) = 0;
+ };
+
+
+ //-----------------------------------------------------------------------------
+ // Purpose: possible load errors when you open a url in the web browser
+ //-----------------------------------------------------------------------------
+ enum EWebPageLoadError
+ {
+ eLoadErrorNone = 0,
+ eMimeTypeNotSupported, // probably trying to download an exe or something
+ eCacheMiss, // Usually caused by navigating to a page with POST data via back or forward buttons
+ eBadURL, // bad url passed in (invalid hostname, malformed)
+ eConnectionProblem, // network connectivity problem, server offline or user not on internet
+ eProxyConnectionProblem, // User is configured to use proxy, but we can't use it
+
+ eLoadErrorUnknown, // not a load type we classify right now, check out cef_handler_errorcode_t for the full list we could translate
+ };
+
+
+ //-----------------------------------------------------------------------------
+ // Purpose: basic callback interface for a HTML window
+ //-----------------------------------------------------------------------------
+ class IHTMLEvents
+ {
+ public:
+ // unused functions we keep around so the vtable layout is binary compatible
+ virtual bool Obsolete_OnStartURL(const char *url, const char *target, bool first)=0;
+ virtual void Obsolete_OnFinishURL(const char *url)=0;
+ virtual void Obsolete_OnProgressURL(long current, long maximum)=0;
+ virtual void Obsolete_OnSetStatusText(const char *text) =0;
+ virtual void Obsolete_OnUpdate() =0;
+ virtual void Obsolete_OnLink()=0;
+ virtual void Obsolete_OffLink()=0;
+
+ // call backs for events
+ // when the top level browser is changing the page they are looking at (not sub iframes or the like loading)
+ virtual void OnURLChanged( const char *url, const char *pchPostData, bool bIsRedirect ) = 0;
+ // the control has finished loading a request, could be a sub request in the page
+ virtual void OnFinishRequest( const char *url, const char *pageTitle ) = 0;
+
+ // the lower html control wants to load a url, do we allow it?
+ virtual bool OnStartRequestInternal( const char *url, const char *target, const char *pchPostData, bool bIsRedirect ) = 0;
+
+ // show a popup menu for this html control
+ virtual void ShowPopup( int x, int y, int wide, int tall ) = 0;
+ // hide any popup menu you are showing
+ virtual void HidePopup() = 0;
+ // show an external html window at this position and side
+ virtual bool OnPopupHTMLWindow( const char *pchURL, int x, int y, int wide, int tall ) = 0;
+ // the browser is telling us the title it would like us to show
+ virtual void SetHTMLTitle( const char *pchTitle ) = 0;
+ // the browser is loading a sub url for a page, usually an image or css
+ virtual void OnLoadingResource( const char *pchURL ) = 0;
+ // the browser is telling us the user is hovering a url or the like
+ virtual void OnSetStatusText(const char *text) =0;
+ // the browser wants the cursor changed please
+ virtual void OnSetCursor( vgui::CursorCode cursor ) = 0;
+ // the browser wants to ask the user to select a local file and tell it about it
+ virtual void OnFileLoadDialog( const char *pchTitle, const char *pchInitialFile ) = 0;
+ // show and hide tooltip text
+ virtual void OnShowToolTip( const char *pchText ) = 0;
+ virtual void OnUpdateToolTip( const char *pchText ) = 0;
+ virtual void OnHideToolTip() = 0;
+
+
+ // IE only code
+ virtual bool BOnCreateNewWindow( void **ppDispatch ) = 0;
+ virtual void OnLink()=0;
+ virtual void OffLink()=0;
+ virtual void OnCloseWindow() = 0;
+ virtual void OnUpdate() =0;
+ virtual void OnProgressRequest(long current, long maximum)=0;
+
+ // new Chrome calls
+ virtual bool OnOpenNewTab( const char *pchURL, bool bForeground ) = 0;
+ };
+
+
+}
+
+#endif // IHTML_H
diff --git a/mp/src/public/vgui/IImage.h b/mp/src/public/vgui/IImage.h
index ac2483b8..eadc964f 100644
--- a/mp/src/public/vgui/IImage.h
+++ b/mp/src/public/vgui/IImage.h
@@ -1,75 +1,75 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IIMAGE_H
-#define IIMAGE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-
-class Color;
-
-namespace vgui
-{
-
-typedef unsigned long HTexture;
-
-enum iimage_rotation_t
-{
- ROTATED_UNROTATED = 0,
- ROTATED_CLOCKWISE_90,
- ROTATED_ANTICLOCKWISE_90,
- ROTATED_FLIPPED,
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: Interface to drawing an image
-//-----------------------------------------------------------------------------
-class IImage
-{
-public:
- // Call to Paint the image
- // Image will draw within the current panel context at the specified position
- virtual void Paint() = 0;
-
- // Set the position of the image
- virtual void SetPos(int x, int y) = 0;
-
- // Gets the size of the content
- virtual void GetContentSize(int &wide, int &tall) = 0;
-
- // Get the size the image will actually draw in (usually defaults to the content size)
- virtual void GetSize(int &wide, int &tall) = 0;
-
- // Sets the size of the image
- virtual void SetSize(int wide, int tall) = 0;
-
- // Set the draw color
- virtual void SetColor(Color col) = 0;
-
- // virtual destructor
- virtual ~IImage() {}
-
- // not for general purpose use
- // evicts the underlying image from memory if refcounts permit, otherwise ignored
- // returns true if eviction occurred, otherwise false
- virtual bool Evict() = 0;
-
- virtual int GetNumFrames() = 0;
- virtual void SetFrame( int nFrame ) = 0;
- virtual HTexture GetID() = 0;
-
- virtual void SetRotation( int iRotation ) = 0;
-};
-
-} // namespace vgui
-
-
-#endif // IIMAGE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IIMAGE_H
+#define IIMAGE_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+
+class Color;
+
+namespace vgui
+{
+
+typedef unsigned long HTexture;
+
+enum iimage_rotation_t
+{
+ ROTATED_UNROTATED = 0,
+ ROTATED_CLOCKWISE_90,
+ ROTATED_ANTICLOCKWISE_90,
+ ROTATED_FLIPPED,
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Interface to drawing an image
+//-----------------------------------------------------------------------------
+class IImage
+{
+public:
+ // Call to Paint the image
+ // Image will draw within the current panel context at the specified position
+ virtual void Paint() = 0;
+
+ // Set the position of the image
+ virtual void SetPos(int x, int y) = 0;
+
+ // Gets the size of the content
+ virtual void GetContentSize(int &wide, int &tall) = 0;
+
+ // Get the size the image will actually draw in (usually defaults to the content size)
+ virtual void GetSize(int &wide, int &tall) = 0;
+
+ // Sets the size of the image
+ virtual void SetSize(int wide, int tall) = 0;
+
+ // Set the draw color
+ virtual void SetColor(Color col) = 0;
+
+ // virtual destructor
+ virtual ~IImage() {}
+
+ // not for general purpose use
+ // evicts the underlying image from memory if refcounts permit, otherwise ignored
+ // returns true if eviction occurred, otherwise false
+ virtual bool Evict() = 0;
+
+ virtual int GetNumFrames() = 0;
+ virtual void SetFrame( int nFrame ) = 0;
+ virtual HTexture GetID() = 0;
+
+ virtual void SetRotation( int iRotation ) = 0;
+};
+
+} // namespace vgui
+
+
+#endif // IIMAGE_H
diff --git a/mp/src/public/vgui/IInput.h b/mp/src/public/vgui/IInput.h
index 9974ea5a..26077e4a 100644
--- a/mp/src/public/vgui/IInput.h
+++ b/mp/src/public/vgui/IInput.h
@@ -1,193 +1,193 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef VGUI_IINPUT_H
-#define VGUI_IINPUT_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-#include "tier1/interface.h"
-#include "vgui/MouseCode.h"
-#include "vgui/KeyCode.h"
-
-namespace vgui
-{
-
-class Cursor;
-typedef unsigned long HCursor;
-
-#define VGUI_GCS_COMPREADSTR 0x0001
-#define VGUI_GCS_COMPREADATTR 0x0002
-#define VGUI_GCS_COMPREADCLAUSE 0x0004
-#define VGUI_GCS_COMPSTR 0x0008
-#define VGUI_GCS_COMPATTR 0x0010
-#define VGUI_GCS_COMPCLAUSE 0x0020
-#define VGUI_GCS_CURSORPOS 0x0080
-#define VGUI_GCS_DELTASTART 0x0100
-#define VGUI_GCS_RESULTREADSTR 0x0200
-#define VGUI_GCS_RESULTREADCLAUSE 0x0400
-#define VGUI_GCS_RESULTSTR 0x0800
-#define VGUI_GCS_RESULTCLAUSE 0x1000
-// style bit flags for WM_IME_COMPOSITION
-#define VGUI_CS_INSERTCHAR 0x2000
-#define VGUI_CS_NOMOVECARET 0x4000
-
-#define MESSAGE_CURSOR_POS -1
-#define MESSAGE_CURRENT_KEYFOCUS -2
-
-
-class IInput : public IBaseInterface
-{
-public:
- virtual void SetMouseFocus(VPANEL newMouseFocus) = 0;
- virtual void SetMouseCapture(VPANEL panel) = 0;
-
- // returns the string name of a scan code
- virtual void GetKeyCodeText(KeyCode code, OUT_Z_BYTECAP(buflen) char *buf, int buflen) = 0;
-
- // focus
- virtual VPANEL GetFocus() = 0;
- virtual VPANEL GetCalculatedFocus() = 0;// to handle cases where the focus changes inside a frame.
- virtual VPANEL GetMouseOver() = 0; // returns the panel the mouse is currently over, ignoring mouse capture
-
- // mouse state
- virtual void SetCursorPos(int x, int y) = 0;
- virtual void GetCursorPos(int &x, int &y) = 0;
- virtual bool WasMousePressed(MouseCode code) = 0;
- virtual bool WasMouseDoublePressed(MouseCode code) = 0;
- virtual bool IsMouseDown(MouseCode code) = 0;
-
- // cursor override
- virtual void SetCursorOveride(HCursor cursor) = 0;
- virtual HCursor GetCursorOveride() = 0;
-
- // key state
- virtual bool WasMouseReleased(MouseCode code) = 0;
- virtual bool WasKeyPressed(KeyCode code) = 0;
- virtual bool IsKeyDown(KeyCode code) = 0;
- virtual bool WasKeyTyped(KeyCode code) = 0;
- virtual bool WasKeyReleased(KeyCode code) = 0;
-
- virtual VPANEL GetAppModalSurface() = 0;
- // set the modal dialog panel.
- // all events will go only to this panel and its children.
- virtual void SetAppModalSurface(VPANEL panel) = 0;
- // release the modal dialog panel
- // do this when your modal dialog finishes.
- virtual void ReleaseAppModalSurface() = 0;
-
- virtual void GetCursorPosition( int &x, int &y ) = 0;
-
- virtual void SetIMEWindow( void *hwnd ) = 0;
- virtual void *GetIMEWindow() = 0;
-
- virtual void OnChangeIME( bool forward ) = 0;
- virtual int GetCurrentIMEHandle() = 0;
- virtual int GetEnglishIMEHandle() = 0;
-
- // Returns the Language Bar label (Chinese, Korean, Japanese, Russion, Thai, etc.)
- virtual void GetIMELanguageName( OUT_Z_BYTECAP(unicodeBufferSizeInBytes) wchar_t *buf, int unicodeBufferSizeInBytes ) = 0;
- // Returns the short code for the language (EN, CH, KO, JP, RU, TH, etc. ).
- virtual void GetIMELanguageShortCode( OUT_Z_BYTECAP(unicodeBufferSizeInBytes) wchar_t *buf, int unicodeBufferSizeInBytes ) = 0;
-
- struct LanguageItem
- {
- wchar_t shortname[ 4 ];
- wchar_t menuname[ 128 ];
- int handleValue;
- bool active; // true if this is the active language
- };
-
- struct ConversionModeItem
- {
- wchar_t menuname[ 128 ];
- int handleValue;
- bool active; // true if this is the active conversion mode
- };
-
- struct SentenceModeItem
- {
- wchar_t menuname[ 128 ];
- int handleValue;
- bool active; // true if this is the active sentence mode
- };
-
- // Call with NULL dest to get item count
- virtual int GetIMELanguageList( LanguageItem *dest, int destcount ) = 0;
- virtual int GetIMEConversionModes( ConversionModeItem *dest, int destcount ) = 0;
- virtual int GetIMESentenceModes( SentenceModeItem *dest, int destcount ) = 0;
-
- virtual void OnChangeIMEByHandle( int handleValue ) = 0;
- virtual void OnChangeIMEConversionModeByHandle( int handleValue ) = 0;
- virtual void OnChangeIMESentenceModeByHandle( int handleValue ) = 0;
-
- virtual void OnInputLanguageChanged() = 0;
- virtual void OnIMEStartComposition() = 0;
- virtual void OnIMEComposition( int flags ) = 0;
- virtual void OnIMEEndComposition() = 0;
-
- virtual void OnIMEShowCandidates() = 0;
- virtual void OnIMEChangeCandidates() = 0;
- virtual void OnIMECloseCandidates() = 0;
- virtual void OnIMERecomputeModes() = 0;
-
- virtual int GetCandidateListCount() = 0;
- virtual void GetCandidate( int num, OUT_Z_BYTECAP(destSizeBytes) wchar_t *dest, int destSizeBytes ) = 0;
- virtual int GetCandidateListSelectedItem() = 0;
- virtual int GetCandidateListPageSize() = 0;
- virtual int GetCandidateListPageStart() = 0;
-
- //NOTE: We render our own candidate lists most of the time...
- virtual void SetCandidateWindowPos( int x, int y ) = 0;
-
- virtual bool GetShouldInvertCompositionString() = 0;
- virtual bool CandidateListStartsAtOne() = 0;
-
- virtual void SetCandidateListPageStart( int start ) = 0;
-
- // Passes in a keycode which allows hitting other mouse buttons w/o cancelling capture mode
- virtual void SetMouseCaptureEx(VPANEL panel, MouseCode captureStartMouseCode ) = 0;
-
- // Because OnKeyCodeTyped uses CallParentFunction and is therefore message based, there's no way
- // to know if handler actually swallowed the specified keycode. To get around this, I set a global before calling the
- // kb focus OnKeyCodeTyped function and if we ever get to a Panel::OnKeyCodeTypes we know that nobody handled the message
- // and in that case we can post a message to any "unhandled keycode" listeners
- // This will generate an MESSAGE_FUNC_INT( "KeyCodeUnhandled" "code" code ) message to each such listener
- virtual void RegisterKeyCodeUnhandledListener( VPANEL panel ) = 0;
- virtual void UnregisterKeyCodeUnhandledListener( VPANEL panel ) = 0;
-
- // Posts unhandled message to all interested panels
- virtual void OnKeyCodeUnhandled( int keyCode ) = 0;
-
- // Assumes subTree is a child panel of the root panel for the vgui contect
- // if restrictMessagesToSubTree is true, then mouse and kb messages are only routed to the subTree and it's children and mouse/kb focus
- // can only be on one of the subTree children, if a mouse click occurs outside of the subtree, and "UnhandledMouseClick" message is sent to unhandledMouseClickListener panel
- // if it's set
- // if restrictMessagesToSubTree is false, then mouse and kb messages are routed as normal except that they are not routed down into the subtree
- // however, if a mouse click occurs outside of the subtree, and "UnhandleMouseClick" message is sent to unhandledMouseClickListener panel
- // if it's set
- virtual void SetModalSubTree( VPANEL subTree, VPANEL unhandledMouseClickListener, bool restrictMessagesToSubTree = true ) = 0;
- virtual void ReleaseModalSubTree() = 0;
- virtual VPANEL GetModalSubTree() = 0;
-
- // These toggle whether the modal subtree is exclusively receiving messages or conversely whether it's being excluded from receiving messages
- // Sends a "ModalSubTree", state message
- virtual void SetModalSubTreeReceiveMessages( bool state ) = 0;
- virtual bool ShouldModalSubTreeReceiveMessages() const = 0;
-
- virtual VPANEL GetMouseCapture() = 0;
-};
-
-#define VGUI_INPUT_INTERFACE_VERSION "VGUI_Input005"
-
-} // namespace vgui
-
-
-#endif // VGUI_IINPUT_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef VGUI_IINPUT_H
+#define VGUI_IINPUT_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include "tier1/interface.h"
+#include "vgui/MouseCode.h"
+#include "vgui/KeyCode.h"
+
+namespace vgui
+{
+
+class Cursor;
+typedef unsigned long HCursor;
+
+#define VGUI_GCS_COMPREADSTR 0x0001
+#define VGUI_GCS_COMPREADATTR 0x0002
+#define VGUI_GCS_COMPREADCLAUSE 0x0004
+#define VGUI_GCS_COMPSTR 0x0008
+#define VGUI_GCS_COMPATTR 0x0010
+#define VGUI_GCS_COMPCLAUSE 0x0020
+#define VGUI_GCS_CURSORPOS 0x0080
+#define VGUI_GCS_DELTASTART 0x0100
+#define VGUI_GCS_RESULTREADSTR 0x0200
+#define VGUI_GCS_RESULTREADCLAUSE 0x0400
+#define VGUI_GCS_RESULTSTR 0x0800
+#define VGUI_GCS_RESULTCLAUSE 0x1000
+// style bit flags for WM_IME_COMPOSITION
+#define VGUI_CS_INSERTCHAR 0x2000
+#define VGUI_CS_NOMOVECARET 0x4000
+
+#define MESSAGE_CURSOR_POS -1
+#define MESSAGE_CURRENT_KEYFOCUS -2
+
+
+class IInput : public IBaseInterface
+{
+public:
+ virtual void SetMouseFocus(VPANEL newMouseFocus) = 0;
+ virtual void SetMouseCapture(VPANEL panel) = 0;
+
+ // returns the string name of a scan code
+ virtual void GetKeyCodeText(KeyCode code, OUT_Z_BYTECAP(buflen) char *buf, int buflen) = 0;
+
+ // focus
+ virtual VPANEL GetFocus() = 0;
+ virtual VPANEL GetCalculatedFocus() = 0;// to handle cases where the focus changes inside a frame.
+ virtual VPANEL GetMouseOver() = 0; // returns the panel the mouse is currently over, ignoring mouse capture
+
+ // mouse state
+ virtual void SetCursorPos(int x, int y) = 0;
+ virtual void GetCursorPos(int &x, int &y) = 0;
+ virtual bool WasMousePressed(MouseCode code) = 0;
+ virtual bool WasMouseDoublePressed(MouseCode code) = 0;
+ virtual bool IsMouseDown(MouseCode code) = 0;
+
+ // cursor override
+ virtual void SetCursorOveride(HCursor cursor) = 0;
+ virtual HCursor GetCursorOveride() = 0;
+
+ // key state
+ virtual bool WasMouseReleased(MouseCode code) = 0;
+ virtual bool WasKeyPressed(KeyCode code) = 0;
+ virtual bool IsKeyDown(KeyCode code) = 0;
+ virtual bool WasKeyTyped(KeyCode code) = 0;
+ virtual bool WasKeyReleased(KeyCode code) = 0;
+
+ virtual VPANEL GetAppModalSurface() = 0;
+ // set the modal dialog panel.
+ // all events will go only to this panel and its children.
+ virtual void SetAppModalSurface(VPANEL panel) = 0;
+ // release the modal dialog panel
+ // do this when your modal dialog finishes.
+ virtual void ReleaseAppModalSurface() = 0;
+
+ virtual void GetCursorPosition( int &x, int &y ) = 0;
+
+ virtual void SetIMEWindow( void *hwnd ) = 0;
+ virtual void *GetIMEWindow() = 0;
+
+ virtual void OnChangeIME( bool forward ) = 0;
+ virtual int GetCurrentIMEHandle() = 0;
+ virtual int GetEnglishIMEHandle() = 0;
+
+ // Returns the Language Bar label (Chinese, Korean, Japanese, Russion, Thai, etc.)
+ virtual void GetIMELanguageName( OUT_Z_BYTECAP(unicodeBufferSizeInBytes) wchar_t *buf, int unicodeBufferSizeInBytes ) = 0;
+ // Returns the short code for the language (EN, CH, KO, JP, RU, TH, etc. ).
+ virtual void GetIMELanguageShortCode( OUT_Z_BYTECAP(unicodeBufferSizeInBytes) wchar_t *buf, int unicodeBufferSizeInBytes ) = 0;
+
+ struct LanguageItem
+ {
+ wchar_t shortname[ 4 ];
+ wchar_t menuname[ 128 ];
+ int handleValue;
+ bool active; // true if this is the active language
+ };
+
+ struct ConversionModeItem
+ {
+ wchar_t menuname[ 128 ];
+ int handleValue;
+ bool active; // true if this is the active conversion mode
+ };
+
+ struct SentenceModeItem
+ {
+ wchar_t menuname[ 128 ];
+ int handleValue;
+ bool active; // true if this is the active sentence mode
+ };
+
+ // Call with NULL dest to get item count
+ virtual int GetIMELanguageList( LanguageItem *dest, int destcount ) = 0;
+ virtual int GetIMEConversionModes( ConversionModeItem *dest, int destcount ) = 0;
+ virtual int GetIMESentenceModes( SentenceModeItem *dest, int destcount ) = 0;
+
+ virtual void OnChangeIMEByHandle( int handleValue ) = 0;
+ virtual void OnChangeIMEConversionModeByHandle( int handleValue ) = 0;
+ virtual void OnChangeIMESentenceModeByHandle( int handleValue ) = 0;
+
+ virtual void OnInputLanguageChanged() = 0;
+ virtual void OnIMEStartComposition() = 0;
+ virtual void OnIMEComposition( int flags ) = 0;
+ virtual void OnIMEEndComposition() = 0;
+
+ virtual void OnIMEShowCandidates() = 0;
+ virtual void OnIMEChangeCandidates() = 0;
+ virtual void OnIMECloseCandidates() = 0;
+ virtual void OnIMERecomputeModes() = 0;
+
+ virtual int GetCandidateListCount() = 0;
+ virtual void GetCandidate( int num, OUT_Z_BYTECAP(destSizeBytes) wchar_t *dest, int destSizeBytes ) = 0;
+ virtual int GetCandidateListSelectedItem() = 0;
+ virtual int GetCandidateListPageSize() = 0;
+ virtual int GetCandidateListPageStart() = 0;
+
+ //NOTE: We render our own candidate lists most of the time...
+ virtual void SetCandidateWindowPos( int x, int y ) = 0;
+
+ virtual bool GetShouldInvertCompositionString() = 0;
+ virtual bool CandidateListStartsAtOne() = 0;
+
+ virtual void SetCandidateListPageStart( int start ) = 0;
+
+ // Passes in a keycode which allows hitting other mouse buttons w/o cancelling capture mode
+ virtual void SetMouseCaptureEx(VPANEL panel, MouseCode captureStartMouseCode ) = 0;
+
+ // Because OnKeyCodeTyped uses CallParentFunction and is therefore message based, there's no way
+ // to know if handler actually swallowed the specified keycode. To get around this, I set a global before calling the
+ // kb focus OnKeyCodeTyped function and if we ever get to a Panel::OnKeyCodeTypes we know that nobody handled the message
+ // and in that case we can post a message to any "unhandled keycode" listeners
+ // This will generate an MESSAGE_FUNC_INT( "KeyCodeUnhandled" "code" code ) message to each such listener
+ virtual void RegisterKeyCodeUnhandledListener( VPANEL panel ) = 0;
+ virtual void UnregisterKeyCodeUnhandledListener( VPANEL panel ) = 0;
+
+ // Posts unhandled message to all interested panels
+ virtual void OnKeyCodeUnhandled( int keyCode ) = 0;
+
+ // Assumes subTree is a child panel of the root panel for the vgui contect
+ // if restrictMessagesToSubTree is true, then mouse and kb messages are only routed to the subTree and it's children and mouse/kb focus
+ // can only be on one of the subTree children, if a mouse click occurs outside of the subtree, and "UnhandledMouseClick" message is sent to unhandledMouseClickListener panel
+ // if it's set
+ // if restrictMessagesToSubTree is false, then mouse and kb messages are routed as normal except that they are not routed down into the subtree
+ // however, if a mouse click occurs outside of the subtree, and "UnhandleMouseClick" message is sent to unhandledMouseClickListener panel
+ // if it's set
+ virtual void SetModalSubTree( VPANEL subTree, VPANEL unhandledMouseClickListener, bool restrictMessagesToSubTree = true ) = 0;
+ virtual void ReleaseModalSubTree() = 0;
+ virtual VPANEL GetModalSubTree() = 0;
+
+ // These toggle whether the modal subtree is exclusively receiving messages or conversely whether it's being excluded from receiving messages
+ // Sends a "ModalSubTree", state message
+ virtual void SetModalSubTreeReceiveMessages( bool state ) = 0;
+ virtual bool ShouldModalSubTreeReceiveMessages() const = 0;
+
+ virtual VPANEL GetMouseCapture() = 0;
+};
+
+#define VGUI_INPUT_INTERFACE_VERSION "VGUI_Input005"
+
+} // namespace vgui
+
+
+#endif // VGUI_IINPUT_H
diff --git a/mp/src/public/vgui/IInputInternal.h b/mp/src/public/vgui/IInputInternal.h
index 2b86bd3b..a72eaa8d 100644
--- a/mp/src/public/vgui/IInputInternal.h
+++ b/mp/src/public/vgui/IInputInternal.h
@@ -1,86 +1,86 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef IINPUTINTERNAL_H
-#define IINPUTINTERNAL_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/IInput.h>
-
-namespace vgui
-{
-
-enum MouseCodeState_t
-{
- BUTTON_RELEASED = 0,
- BUTTON_PRESSED,
- BUTTON_DOUBLECLICKED,
-};
-
-typedef int HInputContext;
-
-#define DEFAULT_INPUT_CONTEXT ((vgui::HInputContext)~0)
-
-class IInputInternal : public IInput
-{
-public:
- // processes input for a frame
- virtual void RunFrame() = 0;
-
- virtual void UpdateMouseFocus(int x, int y) = 0;
-
- // called when a panel becomes invalid
- virtual void PanelDeleted(VPANEL panel) = 0;
-
- // inputs into vgui input handling
- virtual bool InternalCursorMoved(int x,int y) = 0; //expects input in surface space
- virtual bool InternalMousePressed(MouseCode code) = 0;
- virtual bool InternalMouseDoublePressed(MouseCode code) = 0;
- virtual bool InternalMouseReleased(MouseCode code) = 0;
- virtual bool InternalMouseWheeled(int delta) = 0;
- virtual bool InternalKeyCodePressed(KeyCode code) = 0;
- virtual void InternalKeyCodeTyped(KeyCode code) = 0;
- virtual void InternalKeyTyped(wchar_t unichar) = 0;
- virtual bool InternalKeyCodeReleased(KeyCode code) = 0;
-
- // Creates/ destroys "input" contexts, which contains information
- // about which controls have mouse + key focus, for example.
- virtual HInputContext CreateInputContext() = 0;
- virtual void DestroyInputContext( HInputContext context ) = 0;
-
- // Associates a particular panel with an input context
- // Associating NULL is valid; it disconnects the panel from the context
- virtual void AssociatePanelWithInputContext( HInputContext context, VPANEL pRoot ) = 0;
-
- // Activates a particular input context, use DEFAULT_INPUT_CONTEXT
- // to get the one normally used by VGUI
- virtual void ActivateInputContext( HInputContext context ) = 0;
-
- // This method is called to post a cursor message to the current input context
- virtual void PostCursorMessage() = 0;
-
- // Cursor position; this is the current position read from the input queue.
- // We need to set it because client code may read this during Mouse Pressed
- // events, etc.
- virtual void UpdateCursorPosInternal( int x, int y ) = 0;
-
- // Called to handle explicit calls to CursorSetPos after input processing is complete
- virtual void HandleExplicitSetCursor( ) = 0;
-
- // Updates the internal key/mouse state associated with the current input context without sending messages
- virtual void SetKeyCodeState( KeyCode code, bool bPressed ) = 0;
- virtual void SetMouseCodeState( MouseCode code, MouseCodeState_t state ) = 0;
- virtual void UpdateButtonState( const InputEvent_t &event ) = 0;
-};
-
-} // namespace vgui
-
-#define VGUI_INPUTINTERNAL_INTERFACE_VERSION "VGUI_InputInternal001"
-
-#endif // IINPUTINTERNAL_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef IINPUTINTERNAL_H
+#define IINPUTINTERNAL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/IInput.h>
+
+namespace vgui
+{
+
+enum MouseCodeState_t
+{
+ BUTTON_RELEASED = 0,
+ BUTTON_PRESSED,
+ BUTTON_DOUBLECLICKED,
+};
+
+typedef int HInputContext;
+
+#define DEFAULT_INPUT_CONTEXT ((vgui::HInputContext)~0)
+
+class IInputInternal : public IInput
+{
+public:
+ // processes input for a frame
+ virtual void RunFrame() = 0;
+
+ virtual void UpdateMouseFocus(int x, int y) = 0;
+
+ // called when a panel becomes invalid
+ virtual void PanelDeleted(VPANEL panel) = 0;
+
+ // inputs into vgui input handling
+ virtual bool InternalCursorMoved(int x,int y) = 0; //expects input in surface space
+ virtual bool InternalMousePressed(MouseCode code) = 0;
+ virtual bool InternalMouseDoublePressed(MouseCode code) = 0;
+ virtual bool InternalMouseReleased(MouseCode code) = 0;
+ virtual bool InternalMouseWheeled(int delta) = 0;
+ virtual bool InternalKeyCodePressed(KeyCode code) = 0;
+ virtual void InternalKeyCodeTyped(KeyCode code) = 0;
+ virtual void InternalKeyTyped(wchar_t unichar) = 0;
+ virtual bool InternalKeyCodeReleased(KeyCode code) = 0;
+
+ // Creates/ destroys "input" contexts, which contains information
+ // about which controls have mouse + key focus, for example.
+ virtual HInputContext CreateInputContext() = 0;
+ virtual void DestroyInputContext( HInputContext context ) = 0;
+
+ // Associates a particular panel with an input context
+ // Associating NULL is valid; it disconnects the panel from the context
+ virtual void AssociatePanelWithInputContext( HInputContext context, VPANEL pRoot ) = 0;
+
+ // Activates a particular input context, use DEFAULT_INPUT_CONTEXT
+ // to get the one normally used by VGUI
+ virtual void ActivateInputContext( HInputContext context ) = 0;
+
+ // This method is called to post a cursor message to the current input context
+ virtual void PostCursorMessage() = 0;
+
+ // Cursor position; this is the current position read from the input queue.
+ // We need to set it because client code may read this during Mouse Pressed
+ // events, etc.
+ virtual void UpdateCursorPosInternal( int x, int y ) = 0;
+
+ // Called to handle explicit calls to CursorSetPos after input processing is complete
+ virtual void HandleExplicitSetCursor( ) = 0;
+
+ // Updates the internal key/mouse state associated with the current input context without sending messages
+ virtual void SetKeyCodeState( KeyCode code, bool bPressed ) = 0;
+ virtual void SetMouseCodeState( MouseCode code, MouseCodeState_t state ) = 0;
+ virtual void UpdateButtonState( const InputEvent_t &event ) = 0;
+};
+
+} // namespace vgui
+
+#define VGUI_INPUTINTERNAL_INTERFACE_VERSION "VGUI_InputInternal001"
+
+#endif // IINPUTINTERNAL_H
diff --git a/mp/src/public/vgui/ILocalize.h b/mp/src/public/vgui/ILocalize.h
index a1cf04dd..808acb45 100644
--- a/mp/src/public/vgui/ILocalize.h
+++ b/mp/src/public/vgui/ILocalize.h
@@ -1,24 +1,24 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef ILOCALIZE_H
-#define ILOCALIZE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "tier1/ilocalize.h"
-
-namespace vgui
-{
- class ILocalize : public ::ILocalize { }; // backwards compatability with vgui::ILocalize declarations
-}
-
-#define VGUI_LOCALIZE_INTERFACE_VERSION "VGUI_Localize005"
-
-#endif // ILOCALIZE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef ILOCALIZE_H
+#define ILOCALIZE_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier1/ilocalize.h"
+
+namespace vgui
+{
+ class ILocalize : public ::ILocalize { }; // backwards compatability with vgui::ILocalize declarations
+}
+
+#define VGUI_LOCALIZE_INTERFACE_VERSION "VGUI_Localize005"
+
+#endif // ILOCALIZE_H
diff --git a/mp/src/public/vgui/IPanel.h b/mp/src/public/vgui/IPanel.h
index c81b229c..a0313e00 100644
--- a/mp/src/public/vgui/IPanel.h
+++ b/mp/src/public/vgui/IPanel.h
@@ -1,139 +1,139 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IPANEL_H
-#define IPANEL_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-#include "tier1/interface.h"
-#include "tier1/utlvector.h"
-
-#ifdef SendMessage
-#undef SendMessage
-#endif
-
-class KeyValues;
-
-namespace vgui
-{
-
-class SurfacePlat;
-class IClientPanel;
-
-//!! must be removed
-class Panel;
-
-//-----------------------------------------------------------------------------
-// Purpose: interface from Client panels -> vgui panels
-//-----------------------------------------------------------------------------
-class IPanel : public IBaseInterface
-{
-public:
- virtual void Init(VPANEL vguiPanel, IClientPanel *panel) = 0;
-
- // methods
- virtual void SetPos(VPANEL vguiPanel, int x, int y) = 0;
- virtual void GetPos(VPANEL vguiPanel, int &x, int &y) = 0;
- virtual void SetSize(VPANEL vguiPanel, int wide,int tall) = 0;
- virtual void GetSize(VPANEL vguiPanel, int &wide, int &tall) = 0;
- virtual void SetMinimumSize(VPANEL vguiPanel, int wide, int tall) = 0;
- virtual void GetMinimumSize(VPANEL vguiPanel, int &wide, int &tall) = 0;
- virtual void SetZPos(VPANEL vguiPanel, int z) = 0;
- virtual int GetZPos(VPANEL vguiPanel) = 0;
-
- virtual void GetAbsPos(VPANEL vguiPanel, int &x, int &y) = 0;
- virtual void GetClipRect(VPANEL vguiPanel, int &x0, int &y0, int &x1, int &y1) = 0;
- virtual void SetInset(VPANEL vguiPanel, int left, int top, int right, int bottom) = 0;
- virtual void GetInset(VPANEL vguiPanel, int &left, int &top, int &right, int &bottom) = 0;
-
- virtual void SetVisible(VPANEL vguiPanel, bool state) = 0;
- virtual bool IsVisible(VPANEL vguiPanel) = 0;
- virtual void SetParent(VPANEL vguiPanel, VPANEL newParent) = 0;
- virtual int GetChildCount(VPANEL vguiPanel) = 0;
- virtual VPANEL GetChild(VPANEL vguiPanel, int index) = 0;
- virtual CUtlVector< VPANEL > &GetChildren( VPANEL vguiPanel ) = 0;
- virtual VPANEL GetParent(VPANEL vguiPanel) = 0;
- virtual void MoveToFront(VPANEL vguiPanel) = 0;
- virtual void MoveToBack(VPANEL vguiPanel) = 0;
- virtual bool HasParent(VPANEL vguiPanel, VPANEL potentialParent) = 0;
- virtual bool IsPopup(VPANEL vguiPanel) = 0;
- virtual void SetPopup(VPANEL vguiPanel, bool state) = 0;
- virtual bool IsFullyVisible( VPANEL vguiPanel ) = 0;
-
- // gets the scheme this panel uses
- virtual HScheme GetScheme(VPANEL vguiPanel) = 0;
- // gets whether or not this panel should scale with screen resolution
- virtual bool IsProportional(VPANEL vguiPanel) = 0;
- // returns true if auto-deletion flag is set
- virtual bool IsAutoDeleteSet(VPANEL vguiPanel) = 0;
- // deletes the Panel * associated with the vpanel
- virtual void DeletePanel(VPANEL vguiPanel) = 0;
-
- // input interest
- virtual void SetKeyBoardInputEnabled(VPANEL vguiPanel, bool state) = 0;
- virtual void SetMouseInputEnabled(VPANEL vguiPanel, bool state) = 0;
- virtual bool IsKeyBoardInputEnabled(VPANEL vguiPanel) = 0;
- virtual bool IsMouseInputEnabled(VPANEL vguiPanel) = 0;
-
- // calculates the panels current position within the hierarchy
- virtual void Solve(VPANEL vguiPanel) = 0;
-
- // gets names of the object (for debugging purposes)
- virtual const char *GetName(VPANEL vguiPanel) = 0;
- virtual const char *GetClassName(VPANEL vguiPanel) = 0;
-
- // delivers a message to the panel
- virtual void SendMessage(VPANEL vguiPanel, KeyValues *params, VPANEL ifromPanel) = 0;
-
- // these pass through to the IClientPanel
- virtual void Think(VPANEL vguiPanel) = 0;
- virtual void PerformApplySchemeSettings(VPANEL vguiPanel) = 0;
- virtual void PaintTraverse(VPANEL vguiPanel, bool forceRepaint, bool allowForce = true) = 0;
- virtual void Repaint(VPANEL vguiPanel) = 0;
- virtual VPANEL IsWithinTraverse(VPANEL vguiPanel, int x, int y, bool traversePopups) = 0;
- virtual void OnChildAdded(VPANEL vguiPanel, VPANEL child) = 0;
- virtual void OnSizeChanged(VPANEL vguiPanel, int newWide, int newTall) = 0;
-
- virtual void InternalFocusChanged(VPANEL vguiPanel, bool lost) = 0;
- virtual bool RequestInfo(VPANEL vguiPanel, KeyValues *outputData) = 0;
- virtual void RequestFocus(VPANEL vguiPanel, int direction = 0) = 0;
- virtual bool RequestFocusPrev(VPANEL vguiPanel, VPANEL existingPanel) = 0;
- virtual bool RequestFocusNext(VPANEL vguiPanel, VPANEL existingPanel) = 0;
- virtual VPANEL GetCurrentKeyFocus(VPANEL vguiPanel) = 0;
- virtual int GetTabPosition(VPANEL vguiPanel) = 0;
-
- // used by ISurface to store platform-specific data
- virtual SurfacePlat *Plat(VPANEL vguiPanel) = 0;
- virtual void SetPlat(VPANEL vguiPanel, SurfacePlat *Plat) = 0;
-
- // returns a pointer to the vgui controls baseclass Panel *
- // destinationModule needs to be passed in to verify that the returned Panel * is from the same module
- // it must be from the same module since Panel * vtbl may be different in each module
- virtual Panel *GetPanel(VPANEL vguiPanel, const char *destinationModule) = 0;
-
- virtual bool IsEnabled(VPANEL vguiPanel) = 0;
- virtual void SetEnabled(VPANEL vguiPanel, bool state) = 0;
-
- // Used by the drag/drop manager to always draw on top
- virtual bool IsTopmostPopup( VPANEL vguiPanel) = 0;
- virtual void SetTopmostPopup( VPANEL vguiPanel, bool state ) = 0;
-
- // sibling pins
- virtual void SetSiblingPin(VPANEL vguiPanel, VPANEL newSibling, byte iMyCornerToPin = 0, byte iSiblingCornerToPinTo = 0 ) = 0;
-
-};
-
-#define VGUI_PANEL_INTERFACE_VERSION "VGUI_Panel009"
-
-} // namespace vgui
-
-
-#endif // IPANEL_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IPANEL_H
+#define IPANEL_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include "tier1/interface.h"
+#include "tier1/utlvector.h"
+
+#ifdef SendMessage
+#undef SendMessage
+#endif
+
+class KeyValues;
+
+namespace vgui
+{
+
+class SurfacePlat;
+class IClientPanel;
+
+//!! must be removed
+class Panel;
+
+//-----------------------------------------------------------------------------
+// Purpose: interface from Client panels -> vgui panels
+//-----------------------------------------------------------------------------
+class IPanel : public IBaseInterface
+{
+public:
+ virtual void Init(VPANEL vguiPanel, IClientPanel *panel) = 0;
+
+ // methods
+ virtual void SetPos(VPANEL vguiPanel, int x, int y) = 0;
+ virtual void GetPos(VPANEL vguiPanel, int &x, int &y) = 0;
+ virtual void SetSize(VPANEL vguiPanel, int wide,int tall) = 0;
+ virtual void GetSize(VPANEL vguiPanel, int &wide, int &tall) = 0;
+ virtual void SetMinimumSize(VPANEL vguiPanel, int wide, int tall) = 0;
+ virtual void GetMinimumSize(VPANEL vguiPanel, int &wide, int &tall) = 0;
+ virtual void SetZPos(VPANEL vguiPanel, int z) = 0;
+ virtual int GetZPos(VPANEL vguiPanel) = 0;
+
+ virtual void GetAbsPos(VPANEL vguiPanel, int &x, int &y) = 0;
+ virtual void GetClipRect(VPANEL vguiPanel, int &x0, int &y0, int &x1, int &y1) = 0;
+ virtual void SetInset(VPANEL vguiPanel, int left, int top, int right, int bottom) = 0;
+ virtual void GetInset(VPANEL vguiPanel, int &left, int &top, int &right, int &bottom) = 0;
+
+ virtual void SetVisible(VPANEL vguiPanel, bool state) = 0;
+ virtual bool IsVisible(VPANEL vguiPanel) = 0;
+ virtual void SetParent(VPANEL vguiPanel, VPANEL newParent) = 0;
+ virtual int GetChildCount(VPANEL vguiPanel) = 0;
+ virtual VPANEL GetChild(VPANEL vguiPanel, int index) = 0;
+ virtual CUtlVector< VPANEL > &GetChildren( VPANEL vguiPanel ) = 0;
+ virtual VPANEL GetParent(VPANEL vguiPanel) = 0;
+ virtual void MoveToFront(VPANEL vguiPanel) = 0;
+ virtual void MoveToBack(VPANEL vguiPanel) = 0;
+ virtual bool HasParent(VPANEL vguiPanel, VPANEL potentialParent) = 0;
+ virtual bool IsPopup(VPANEL vguiPanel) = 0;
+ virtual void SetPopup(VPANEL vguiPanel, bool state) = 0;
+ virtual bool IsFullyVisible( VPANEL vguiPanel ) = 0;
+
+ // gets the scheme this panel uses
+ virtual HScheme GetScheme(VPANEL vguiPanel) = 0;
+ // gets whether or not this panel should scale with screen resolution
+ virtual bool IsProportional(VPANEL vguiPanel) = 0;
+ // returns true if auto-deletion flag is set
+ virtual bool IsAutoDeleteSet(VPANEL vguiPanel) = 0;
+ // deletes the Panel * associated with the vpanel
+ virtual void DeletePanel(VPANEL vguiPanel) = 0;
+
+ // input interest
+ virtual void SetKeyBoardInputEnabled(VPANEL vguiPanel, bool state) = 0;
+ virtual void SetMouseInputEnabled(VPANEL vguiPanel, bool state) = 0;
+ virtual bool IsKeyBoardInputEnabled(VPANEL vguiPanel) = 0;
+ virtual bool IsMouseInputEnabled(VPANEL vguiPanel) = 0;
+
+ // calculates the panels current position within the hierarchy
+ virtual void Solve(VPANEL vguiPanel) = 0;
+
+ // gets names of the object (for debugging purposes)
+ virtual const char *GetName(VPANEL vguiPanel) = 0;
+ virtual const char *GetClassName(VPANEL vguiPanel) = 0;
+
+ // delivers a message to the panel
+ virtual void SendMessage(VPANEL vguiPanel, KeyValues *params, VPANEL ifromPanel) = 0;
+
+ // these pass through to the IClientPanel
+ virtual void Think(VPANEL vguiPanel) = 0;
+ virtual void PerformApplySchemeSettings(VPANEL vguiPanel) = 0;
+ virtual void PaintTraverse(VPANEL vguiPanel, bool forceRepaint, bool allowForce = true) = 0;
+ virtual void Repaint(VPANEL vguiPanel) = 0;
+ virtual VPANEL IsWithinTraverse(VPANEL vguiPanel, int x, int y, bool traversePopups) = 0;
+ virtual void OnChildAdded(VPANEL vguiPanel, VPANEL child) = 0;
+ virtual void OnSizeChanged(VPANEL vguiPanel, int newWide, int newTall) = 0;
+
+ virtual void InternalFocusChanged(VPANEL vguiPanel, bool lost) = 0;
+ virtual bool RequestInfo(VPANEL vguiPanel, KeyValues *outputData) = 0;
+ virtual void RequestFocus(VPANEL vguiPanel, int direction = 0) = 0;
+ virtual bool RequestFocusPrev(VPANEL vguiPanel, VPANEL existingPanel) = 0;
+ virtual bool RequestFocusNext(VPANEL vguiPanel, VPANEL existingPanel) = 0;
+ virtual VPANEL GetCurrentKeyFocus(VPANEL vguiPanel) = 0;
+ virtual int GetTabPosition(VPANEL vguiPanel) = 0;
+
+ // used by ISurface to store platform-specific data
+ virtual SurfacePlat *Plat(VPANEL vguiPanel) = 0;
+ virtual void SetPlat(VPANEL vguiPanel, SurfacePlat *Plat) = 0;
+
+ // returns a pointer to the vgui controls baseclass Panel *
+ // destinationModule needs to be passed in to verify that the returned Panel * is from the same module
+ // it must be from the same module since Panel * vtbl may be different in each module
+ virtual Panel *GetPanel(VPANEL vguiPanel, const char *destinationModule) = 0;
+
+ virtual bool IsEnabled(VPANEL vguiPanel) = 0;
+ virtual void SetEnabled(VPANEL vguiPanel, bool state) = 0;
+
+ // Used by the drag/drop manager to always draw on top
+ virtual bool IsTopmostPopup( VPANEL vguiPanel) = 0;
+ virtual void SetTopmostPopup( VPANEL vguiPanel, bool state ) = 0;
+
+ // sibling pins
+ virtual void SetSiblingPin(VPANEL vguiPanel, VPANEL newSibling, byte iMyCornerToPin = 0, byte iSiblingCornerToPinTo = 0 ) = 0;
+
+};
+
+#define VGUI_PANEL_INTERFACE_VERSION "VGUI_Panel009"
+
+} // namespace vgui
+
+
+#endif // IPANEL_H
diff --git a/mp/src/public/vgui/IScheme.h b/mp/src/public/vgui/IScheme.h
index 8a72f34a..25b221ea 100644
--- a/mp/src/public/vgui/IScheme.h
+++ b/mp/src/public/vgui/IScheme.h
@@ -1,127 +1,127 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef ISCHEME_H
-#define ISCHEME_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-#include "tier1/interface.h"
-
-class Color;
-class KeyValues;
-
-namespace vgui
-{
-
-typedef unsigned long HScheme;
-typedef unsigned long HTexture;
-
-class IBorder;
-class IImage;
-
-//-----------------------------------------------------------------------------
-// Purpose: Holds all panel rendering data
-// This functionality is all wrapped in the Panel::GetScheme*() functions
-//-----------------------------------------------------------------------------
-class IScheme : public IBaseInterface
-{
-public:
- // gets a string from the default settings section
- virtual const char *GetResourceString(const char *stringName) = 0;
-
- // returns a pointer to an existing border
- virtual IBorder *GetBorder(const char *borderName) = 0;
-
- // returns a pointer to an existing font
- virtual HFont GetFont(const char *fontName, bool proportional = false) = 0;
-
- // inverse font lookup
- virtual char const *GetFontName( const HFont& font ) = 0;
-
- // colors
- virtual Color GetColor(const char *colorName, Color defaultColor) = 0;
-
- // Get the number of borders
- virtual int GetBorderCount() const = 0;
-
- // Get the border at the given index
- virtual IBorder *GetBorderAtIndex( int iIndex ) = 0;
-
- // Get the number of fonts
- virtual int GetFontCount() const = 0;
-
- // Get the font at the given index
- virtual HFont GetFontAtIndex( int iIndex ) = 0;
-
- // Get color data
- virtual const KeyValues *GetColorData() const = 0;
-};
-
-
-
-class ISchemeManager: public IBaseInterface
-{
-public:
- // loads a scheme from a file
- // first scheme loaded becomes the default scheme, and all subsequent loaded scheme are derivitives of that
- virtual HScheme LoadSchemeFromFile(const char *fileName, const char *tag) = 0;
-
- // reloads the scheme from the file - should only be used during development
- virtual void ReloadSchemes() = 0;
-
- // reloads scheme fonts
- virtual void ReloadFonts() = 0;
-
- // returns a handle to the default (first loaded) scheme
- virtual HScheme GetDefaultScheme() = 0;
-
- // returns a handle to the scheme identified by "tag"
- virtual HScheme GetScheme(const char *tag) = 0;
-
- // returns a pointer to an image
- virtual IImage *GetImage(const char *imageName, bool hardwareFiltered) = 0;
- virtual HTexture GetImageID(const char *imageName, bool hardwareFiltered) = 0;
-
- // This can only be called at certain times, like during paint()
- // It will assert-fail if you call it at the wrong time...
-
- // FIXME: This interface should go away!!! It's an icky back-door
- // If you're using this interface, try instead to cache off the information
- // in ApplySchemeSettings
- virtual IScheme *GetIScheme( HScheme scheme ) = 0;
-
- // unload all schemes
- virtual void Shutdown( bool full = true ) = 0;
-
- // gets the proportional coordinates for doing screen-size independant panel layouts
- // use these for font, image and panel size scaling (they all use the pixel height of the display for scaling)
- virtual int GetProportionalScaledValue( int normalizedValue) = 0;
- virtual int GetProportionalNormalizedValue(int scaledValue) = 0;
-
- // loads a scheme from a file
- // first scheme loaded becomes the default scheme, and all subsequent loaded scheme are derivitives of that
- virtual HScheme LoadSchemeFromFileEx( VPANEL sizingPanel, const char *fileName, const char *tag) = 0;
- // gets the proportional coordinates for doing screen-size independant panel layouts
- // use these for font, image and panel size scaling (they all use the pixel height of the display for scaling)
- virtual int GetProportionalScaledValueEx( HScheme scheme, int normalizedValue ) = 0;
- virtual int GetProportionalNormalizedValueEx( HScheme scheme, int scaledValue ) = 0;
-
- // Returns true if image evicted, false otherwise
- virtual bool DeleteImage( const char *pImageName ) = 0;
-};
-
-#define VGUI_SCHEME_INTERFACE_VERSION "VGUI_Scheme010"
-
-
-} // namespace vgui
-
-
-#endif // ISCHEME_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef ISCHEME_H
+#define ISCHEME_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include "tier1/interface.h"
+
+class Color;
+class KeyValues;
+
+namespace vgui
+{
+
+typedef unsigned long HScheme;
+typedef unsigned long HTexture;
+
+class IBorder;
+class IImage;
+
+//-----------------------------------------------------------------------------
+// Purpose: Holds all panel rendering data
+// This functionality is all wrapped in the Panel::GetScheme*() functions
+//-----------------------------------------------------------------------------
+class IScheme : public IBaseInterface
+{
+public:
+ // gets a string from the default settings section
+ virtual const char *GetResourceString(const char *stringName) = 0;
+
+ // returns a pointer to an existing border
+ virtual IBorder *GetBorder(const char *borderName) = 0;
+
+ // returns a pointer to an existing font
+ virtual HFont GetFont(const char *fontName, bool proportional = false) = 0;
+
+ // inverse font lookup
+ virtual char const *GetFontName( const HFont& font ) = 0;
+
+ // colors
+ virtual Color GetColor(const char *colorName, Color defaultColor) = 0;
+
+ // Get the number of borders
+ virtual int GetBorderCount() const = 0;
+
+ // Get the border at the given index
+ virtual IBorder *GetBorderAtIndex( int iIndex ) = 0;
+
+ // Get the number of fonts
+ virtual int GetFontCount() const = 0;
+
+ // Get the font at the given index
+ virtual HFont GetFontAtIndex( int iIndex ) = 0;
+
+ // Get color data
+ virtual const KeyValues *GetColorData() const = 0;
+};
+
+
+
+class ISchemeManager: public IBaseInterface
+{
+public:
+ // loads a scheme from a file
+ // first scheme loaded becomes the default scheme, and all subsequent loaded scheme are derivitives of that
+ virtual HScheme LoadSchemeFromFile(const char *fileName, const char *tag) = 0;
+
+ // reloads the scheme from the file - should only be used during development
+ virtual void ReloadSchemes() = 0;
+
+ // reloads scheme fonts
+ virtual void ReloadFonts() = 0;
+
+ // returns a handle to the default (first loaded) scheme
+ virtual HScheme GetDefaultScheme() = 0;
+
+ // returns a handle to the scheme identified by "tag"
+ virtual HScheme GetScheme(const char *tag) = 0;
+
+ // returns a pointer to an image
+ virtual IImage *GetImage(const char *imageName, bool hardwareFiltered) = 0;
+ virtual HTexture GetImageID(const char *imageName, bool hardwareFiltered) = 0;
+
+ // This can only be called at certain times, like during paint()
+ // It will assert-fail if you call it at the wrong time...
+
+ // FIXME: This interface should go away!!! It's an icky back-door
+ // If you're using this interface, try instead to cache off the information
+ // in ApplySchemeSettings
+ virtual IScheme *GetIScheme( HScheme scheme ) = 0;
+
+ // unload all schemes
+ virtual void Shutdown( bool full = true ) = 0;
+
+ // gets the proportional coordinates for doing screen-size independant panel layouts
+ // use these for font, image and panel size scaling (they all use the pixel height of the display for scaling)
+ virtual int GetProportionalScaledValue( int normalizedValue) = 0;
+ virtual int GetProportionalNormalizedValue(int scaledValue) = 0;
+
+ // loads a scheme from a file
+ // first scheme loaded becomes the default scheme, and all subsequent loaded scheme are derivitives of that
+ virtual HScheme LoadSchemeFromFileEx( VPANEL sizingPanel, const char *fileName, const char *tag) = 0;
+ // gets the proportional coordinates for doing screen-size independant panel layouts
+ // use these for font, image and panel size scaling (they all use the pixel height of the display for scaling)
+ virtual int GetProportionalScaledValueEx( HScheme scheme, int normalizedValue ) = 0;
+ virtual int GetProportionalNormalizedValueEx( HScheme scheme, int scaledValue ) = 0;
+
+ // Returns true if image evicted, false otherwise
+ virtual bool DeleteImage( const char *pImageName ) = 0;
+};
+
+#define VGUI_SCHEME_INTERFACE_VERSION "VGUI_Scheme010"
+
+
+} // namespace vgui
+
+
+#endif // ISCHEME_H
diff --git a/mp/src/public/vgui/ISurface.h b/mp/src/public/vgui/ISurface.h
index 484089f9..b1e39bd4 100644
--- a/mp/src/public/vgui/ISurface.h
+++ b/mp/src/public/vgui/ISurface.h
@@ -1,403 +1,403 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef ISURFACE_H
-#define ISURFACE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-#include <vgui/IHTML.h> // CreateHTML, PaintHTML
-#include "tier1/interface.h"
-#include "bitmap/imageformat.h"
-
-#include "appframework/IAppSystem.h"
-#include "mathlib/vector2d.h" // must be before the namespace line
-#include <html/ichromehtmlwrapper.h>
-
-#include "IVguiMatInfo.h"
-
-#ifdef CreateFont
-#undef CreateFont
-#endif
-
-#ifdef PlaySound
-#undef PlaySound
-#endif
-
-class Color;
-
-namespace vgui
-{
-
-class IImage;
-class Image;
-class Point;
-
-// handles
-typedef unsigned long HCursor;
-typedef unsigned long HTexture;
-typedef unsigned long HFont;
-
-
-//SRC only defines
-
-
-struct Vertex_t
-{
- Vertex_t() {}
- Vertex_t( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
- {
- m_Position = pos;
- m_TexCoord = coord;
- }
- void Init( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
- {
- m_Position = pos;
- m_TexCoord = coord;
- }
-
- Vector2D m_Position;
- Vector2D m_TexCoord;
-};
-
-
-enum FontDrawType_t
-{
- // Use the "additive" value from the scheme file
- FONT_DRAW_DEFAULT = 0,
-
- // Overrides
- FONT_DRAW_NONADDITIVE,
- FONT_DRAW_ADDITIVE,
-
- FONT_DRAW_TYPE_COUNT = 2,
-};
-
-
-// Refactor these two
-struct CharRenderInfo
-{
- // Text pos
- int x, y;
- // Top left and bottom right
- // This is now a pointer to an array maintained by the surface, to avoid copying the data on the 360
- Vertex_t *verts;
- int textureId;
- int abcA;
- int abcB;
- int abcC;
- int fontTall;
- HFont currentFont;
- // In:
- FontDrawType_t drawType;
- wchar_t ch;
-
- // Out
- bool valid;
- // In/Out (true by default)
- bool shouldclip;
-};
-
-
-struct IntRect
-{
- int x0;
- int y0;
- int x1;
- int y1;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: Wraps contextless windows system functions
-//-----------------------------------------------------------------------------
-class ISurface : public IAppSystem
-{
-public:
- // call to Shutdown surface; surface can no longer be used after this is called
- virtual void Shutdown() = 0;
-
- // frame
- virtual void RunFrame() = 0;
-
- // hierarchy root
- virtual VPANEL GetEmbeddedPanel() = 0;
- virtual void SetEmbeddedPanel( VPANEL pPanel ) = 0;
-
- // drawing context
- virtual void PushMakeCurrent(VPANEL panel, bool useInsets) = 0;
- virtual void PopMakeCurrent(VPANEL panel) = 0;
-
- // rendering functions
- virtual void DrawSetColor(int r, int g, int b, int a) = 0;
- virtual void DrawSetColor(Color col) = 0;
-
- virtual void DrawFilledRect(int x0, int y0, int x1, int y1) = 0;
- virtual void DrawFilledRectArray( IntRect *pRects, int numRects ) = 0;
- virtual void DrawOutlinedRect(int x0, int y0, int x1, int y1) = 0;
-
- virtual void DrawLine(int x0, int y0, int x1, int y1) = 0;
- virtual void DrawPolyLine(int *px, int *py, int numPoints) = 0;
-
- virtual void DrawSetTextFont(HFont font) = 0;
- virtual void DrawSetTextColor(int r, int g, int b, int a) = 0;
- virtual void DrawSetTextColor(Color col) = 0;
- virtual void DrawSetTextPos(int x, int y) = 0;
- virtual void DrawGetTextPos(int& x,int& y) = 0;
- virtual void DrawPrintText(const wchar_t *text, int textLen, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
- virtual void DrawUnicodeChar(wchar_t wch, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
-
- virtual void DrawFlushText() = 0; // flushes any buffered text (for rendering optimizations)
- virtual IHTML *CreateHTMLWindow(vgui::IHTMLEvents *events,VPANEL context)=0;
- virtual void PaintHTMLWindow(vgui::IHTML *htmlwin) =0;
- virtual void DeleteHTMLWindow(IHTML *htmlwin)=0;
-
- enum ETextureFormat
- {
- eTextureFormat_RGBA,
- eTextureFormat_BGRA,
- eTextureFormat_BGRA_Opaque, // bgra format but alpha is always 255, CEF does this, we can use this fact for better perf on win32 gdi
- };
-
- virtual int DrawGetTextureId( char const *filename ) = 0;
- virtual bool DrawGetTextureFile(int id, char *filename, int maxlen ) = 0;
- virtual void DrawSetTextureFile(int id, const char *filename, int hardwareFilter, bool forceReload) = 0;
- virtual void DrawSetTextureRGBA(int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload)=0;
- virtual void DrawSetTexture(int id) = 0;
- virtual void DrawGetTextureSize(int id, int &wide, int &tall) = 0;
- virtual void DrawTexturedRect(int x0, int y0, int x1, int y1) = 0;
- virtual bool IsTextureIDValid(int id) = 0;
- virtual bool DeleteTextureByID(int id) = 0;
-
- virtual int CreateNewTextureID( bool procedural = false ) = 0;
-
- virtual void GetScreenSize(int &wide, int &tall) = 0;
- virtual void SetAsTopMost(VPANEL panel, bool state) = 0;
- virtual void BringToFront(VPANEL panel) = 0;
- virtual void SetForegroundWindow (VPANEL panel) = 0;
- virtual void SetPanelVisible(VPANEL panel, bool state) = 0;
- virtual void SetMinimized(VPANEL panel, bool state) = 0;
- virtual bool IsMinimized(VPANEL panel) = 0;
- virtual void FlashWindow(VPANEL panel, bool state) = 0;
- virtual void SetTitle(VPANEL panel, const wchar_t *title) = 0;
- virtual void SetAsToolBar(VPANEL panel, bool state) = 0; // removes the window's task bar entry (for context menu's, etc.)
-
- // windows stuff
- virtual void CreatePopup(VPANEL panel, bool minimised, bool showTaskbarIcon = true, bool disabled = false, bool mouseInput = true , bool kbInput = true) = 0;
- virtual void SwapBuffers(VPANEL panel) = 0;
- virtual void Invalidate(VPANEL panel) = 0;
- virtual void SetCursor(HCursor cursor) = 0;
- virtual void SetCursorAlwaysVisible( bool visible ) = 0;
- virtual bool IsCursorVisible() = 0;
- virtual void ApplyChanges() = 0;
- virtual bool IsWithin(int x, int y) = 0;
- virtual bool HasFocus() = 0;
-
- // returns true if the surface supports minimize & maximize capabilities
- enum SurfaceFeature_e
- {
- ANTIALIASED_FONTS = 1,
- DROPSHADOW_FONTS = 2,
- ESCAPE_KEY = 3,
- OPENING_NEW_HTML_WINDOWS = 4,
- FRAME_MINIMIZE_MAXIMIZE = 5,
- OUTLINE_FONTS = 6,
- DIRECT_HWND_RENDER = 7,
- };
- virtual bool SupportsFeature(SurfaceFeature_e feature) = 0;
-
- // restricts what gets drawn to one panel and it's children
- // currently only works in the game
- virtual void RestrictPaintToSinglePanel(VPANEL panel) = 0;
-
- // these two functions obselete, use IInput::SetAppModalSurface() instead
- virtual void SetModalPanel(VPANEL ) = 0;
- virtual VPANEL GetModalPanel() = 0;
-
- virtual void UnlockCursor() = 0;
- virtual void LockCursor() = 0;
- virtual void SetTranslateExtendedKeys(bool state) = 0;
- virtual VPANEL GetTopmostPopup() = 0;
-
- // engine-only focus handling (replacing WM_FOCUS windows handling)
- virtual void SetTopLevelFocus(VPANEL panel) = 0;
-
- // fonts
- // creates an empty handle to a vgui font. windows fonts can be add to this via SetFontGlyphSet().
- virtual HFont CreateFont() = 0;
-
- // adds to the font
- enum EFontFlags
- {
- FONTFLAG_NONE,
- FONTFLAG_ITALIC = 0x001,
- FONTFLAG_UNDERLINE = 0x002,
- FONTFLAG_STRIKEOUT = 0x004,
- FONTFLAG_SYMBOL = 0x008,
- FONTFLAG_ANTIALIAS = 0x010,
- FONTFLAG_GAUSSIANBLUR = 0x020,
- FONTFLAG_ROTARY = 0x040,
- FONTFLAG_DROPSHADOW = 0x080,
- FONTFLAG_ADDITIVE = 0x100,
- FONTFLAG_OUTLINE = 0x200,
- FONTFLAG_CUSTOM = 0x400, // custom generated font - never fall back to asian compatibility mode
- FONTFLAG_BITMAP = 0x800, // compiled bitmap font - no fallbacks
- };
-
- virtual bool SetFontGlyphSet(HFont font, const char *windowsFontName, int tall, int weight, int blur, int scanlines, int flags, int nRangeMin = 0, int nRangeMax = 0) = 0;
-
- // adds a custom font file (only supports true type font files (.ttf) for now)
- virtual bool AddCustomFontFile(const char *fontName, const char *fontFileName) = 0;
-
- // returns the details about the font
- virtual int GetFontTall(HFont font) = 0;
- virtual int GetFontTallRequested(HFont font) = 0;
- virtual int GetFontAscent(HFont font, wchar_t wch) = 0;
- virtual bool IsFontAdditive(HFont font) = 0;
- virtual void GetCharABCwide(HFont font, int ch, int &a, int &b, int &c) = 0;
- virtual int GetCharacterWidth(HFont font, int ch) = 0;
- virtual void GetTextSize(HFont font, const wchar_t *text, int &wide, int &tall) = 0;
-
- // notify icons?!?
- virtual VPANEL GetNotifyPanel() = 0;
- virtual void SetNotifyIcon(VPANEL context, HTexture icon, VPANEL panelToReceiveMessages, const char *text) = 0;
-
- // plays a sound
- virtual void PlaySound(const char *fileName) = 0;
-
- //!! these functions should not be accessed directly, but only through other vgui items
- //!! need to move these to seperate interface
- virtual int GetPopupCount() = 0;
- virtual VPANEL GetPopup(int index) = 0;
- virtual bool ShouldPaintChildPanel(VPANEL childPanel) = 0;
- virtual bool RecreateContext(VPANEL panel) = 0;
- virtual void AddPanel(VPANEL panel) = 0;
- virtual void ReleasePanel(VPANEL panel) = 0;
- virtual void MovePopupToFront(VPANEL panel) = 0;
- virtual void MovePopupToBack(VPANEL panel) = 0;
-
- virtual void SolveTraverse(VPANEL panel, bool forceApplySchemeSettings = false) = 0;
- virtual void PaintTraverse(VPANEL panel) = 0;
-
- virtual void EnableMouseCapture(VPANEL panel, bool state) = 0;
-
- // returns the size of the workspace
- virtual void GetWorkspaceBounds(int &x, int &y, int &wide, int &tall) = 0;
-
- // gets the absolute coordinates of the screen (in windows space)
- virtual void GetAbsoluteWindowBounds(int &x, int &y, int &wide, int &tall) = 0;
-
- // gets the base resolution used in proportional mode
- virtual void GetProportionalBase( int &width, int &height ) = 0;
-
- virtual void CalculateMouseVisible() = 0;
- virtual bool NeedKBInput() = 0;
-
- virtual bool HasCursorPosFunctions() = 0;
- virtual void SurfaceGetCursorPos(int &x, int &y) = 0;
- virtual void SurfaceSetCursorPos(int x, int y) = 0;
-
- // SRC only functions!!!
- virtual void DrawTexturedLine( const Vertex_t &a, const Vertex_t &b ) = 0;
- virtual void DrawOutlinedCircle(int x, int y, int radius, int segments) = 0;
- virtual void DrawTexturedPolyLine( const Vertex_t *p,int n ) = 0; // (Note: this connects the first and last points).
- virtual void DrawTexturedSubRect( int x0, int y0, int x1, int y1, float texs0, float text0, float texs1, float text1 ) = 0;
- virtual void DrawTexturedPolygon(int n, Vertex_t *pVertice, bool bClipVertices = true ) = 0;
- virtual const wchar_t *GetTitle(VPANEL panel) = 0;
- virtual bool IsCursorLocked( void ) const = 0;
- virtual void SetWorkspaceInsets( int left, int top, int right, int bottom ) = 0;
-
- // Lower level char drawing code, call DrawGet then pass in info to DrawRender
- virtual bool DrawGetUnicodeCharRenderInfo( wchar_t ch, CharRenderInfo& info ) = 0;
- virtual void DrawRenderCharFromInfo( const CharRenderInfo& info ) = 0;
-
- // global alpha setting functions
- // affect all subsequent draw calls - shouldn't normally be used directly, only in Panel::PaintTraverse()
- virtual void DrawSetAlphaMultiplier( float alpha /* [0..1] */ ) = 0;
- virtual float DrawGetAlphaMultiplier() = 0;
-
- // web browser
- virtual void SetAllowHTMLJavaScript( bool state ) = 0;
-
- // video mode changing
- virtual void OnScreenSizeChanged( int nOldWidth, int nOldHeight ) = 0;
-
- virtual vgui::HCursor CreateCursorFromFile( char const *curOrAniFile, char const *pPathID = 0 ) = 0;
-
- // create IVguiMatInfo object ( IMaterial wrapper in VguiMatSurface, NULL in CWin32Surface )
- virtual IVguiMatInfo *DrawGetTextureMatInfoFactory( int id ) = 0;
-
- virtual void PaintTraverseEx(VPANEL panel, bool paintPopups = false ) = 0;
-
- virtual float GetZPos() const = 0;
-
- // From the Xbox
- virtual void SetPanelForInput( VPANEL vpanel ) = 0;
- virtual void DrawFilledRectFastFade( int x0, int y0, int x1, int y1, int fadeStartPt, int fadeEndPt, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0;
- virtual void DrawFilledRectFade( int x0, int y0, int x1, int y1, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0;
- virtual void DrawSetTextureRGBAEx(int id, const unsigned char *rgba, int wide, int tall, ImageFormat imageFormat ) = 0;
- virtual void DrawSetTextScale(float sx, float sy) = 0;
- virtual bool SetBitmapFontGlyphSet(HFont font, const char *windowsFontName, float scalex, float scaley, int flags) = 0;
- // adds a bitmap font file
- virtual bool AddBitmapFontFile(const char *fontFileName) = 0;
- // sets a symbol for the bitmap font
- virtual void SetBitmapFontName( const char *pName, const char *pFontFilename ) = 0;
- // gets the bitmap font filename
- virtual const char *GetBitmapFontName( const char *pName ) = 0;
- virtual void ClearTemporaryFontCache( void ) = 0;
-
- virtual IImage *GetIconImageForFullPath( char const *pFullPath ) = 0;
- virtual void DrawUnicodeString( const wchar_t *pwString, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
- virtual void PrecacheFontCharacters(HFont font, const wchar_t *pCharacters) = 0;
- // Console-only. Get the string to use for the current video mode for layout files.
- virtual const char *GetResolutionKey( void ) const = 0;
-
- virtual const char *GetFontName( HFont font ) = 0;
- virtual const char *GetFontFamilyName( HFont font ) = 0;
- virtual void GetKernedCharWidth( HFont font, wchar_t ch, wchar_t chBefore, wchar_t chAfter, float &wide, float &abcA ) = 0;
-
- virtual bool ForceScreenSizeOverride( bool bState, int wide, int tall ) = 0;
- // LocalToScreen, ParentLocalToScreen fixups for explicit PaintTraverse calls on Panels not at 0, 0 position
- virtual bool ForceScreenPosOffset( bool bState, int x, int y ) = 0;
- virtual void OffsetAbsPos( int &x, int &y ) = 0;
-
-
- // Causes fonts to get reloaded, etc.
- virtual void ResetFontCaches() = 0;
-
- virtual int GetTextureNumFrames( int id ) = 0;
- virtual void DrawSetTextureFrame( int id, int nFrame, unsigned int *pFrameCache ) = 0;
- virtual bool IsScreenSizeOverrideActive( void ) = 0;
- virtual bool IsScreenPosOverrideActive( void ) = 0;
-
- virtual void DestroyTextureID( int id ) = 0;
-
- virtual void DrawUpdateRegionTextureRGBA( int nTextureID, int x, int y, const unsigned char *pchData, int wide, int tall, ImageFormat imageFormat ) = 0;
- virtual bool BHTMLWindowNeedsPaint(IHTML *htmlwin) = 0 ;
-
- virtual const char *GetWebkitHTMLUserAgentString() = 0;
-
- virtual IHTMLChromeController *AccessChromeHTMLController() = 0;
-
- // the origin of the viewport on the framebuffer (Which might not be 0,0 for stereo)
- virtual void SetFullscreenViewport( int x, int y, int w, int h ) = 0;
- virtual void GetFullscreenViewport( int & x, int & y, int & w, int & h ) = 0;
- virtual void PushFullscreenViewport() = 0;
- virtual void PopFullscreenViewport() = 0;
-
- // handles support for software cursors
- virtual void SetSoftwareCursor( bool bUseSoftwareCursor ) = 0;
- virtual void PaintSoftwareCursor() = 0;
-};
-
-}
-
-#define VGUI_SURFACE_INTERFACE_VERSION "VGUI_Surface030"
-
-#endif // ISURFACE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef ISURFACE_H
+#define ISURFACE_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include <vgui/IHTML.h> // CreateHTML, PaintHTML
+#include "tier1/interface.h"
+#include "bitmap/imageformat.h"
+
+#include "appframework/IAppSystem.h"
+#include "mathlib/vector2d.h" // must be before the namespace line
+#include <html/ichromehtmlwrapper.h>
+
+#include "IVguiMatInfo.h"
+
+#ifdef CreateFont
+#undef CreateFont
+#endif
+
+#ifdef PlaySound
+#undef PlaySound
+#endif
+
+class Color;
+
+namespace vgui
+{
+
+class IImage;
+class Image;
+class Point;
+
+// handles
+typedef unsigned long HCursor;
+typedef unsigned long HTexture;
+typedef unsigned long HFont;
+
+
+//SRC only defines
+
+
+struct Vertex_t
+{
+ Vertex_t() {}
+ Vertex_t( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
+ {
+ m_Position = pos;
+ m_TexCoord = coord;
+ }
+ void Init( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
+ {
+ m_Position = pos;
+ m_TexCoord = coord;
+ }
+
+ Vector2D m_Position;
+ Vector2D m_TexCoord;
+};
+
+
+enum FontDrawType_t
+{
+ // Use the "additive" value from the scheme file
+ FONT_DRAW_DEFAULT = 0,
+
+ // Overrides
+ FONT_DRAW_NONADDITIVE,
+ FONT_DRAW_ADDITIVE,
+
+ FONT_DRAW_TYPE_COUNT = 2,
+};
+
+
+// Refactor these two
+struct CharRenderInfo
+{
+ // Text pos
+ int x, y;
+ // Top left and bottom right
+ // This is now a pointer to an array maintained by the surface, to avoid copying the data on the 360
+ Vertex_t *verts;
+ int textureId;
+ int abcA;
+ int abcB;
+ int abcC;
+ int fontTall;
+ HFont currentFont;
+ // In:
+ FontDrawType_t drawType;
+ wchar_t ch;
+
+ // Out
+ bool valid;
+ // In/Out (true by default)
+ bool shouldclip;
+};
+
+
+struct IntRect
+{
+ int x0;
+ int y0;
+ int x1;
+ int y1;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Wraps contextless windows system functions
+//-----------------------------------------------------------------------------
+class ISurface : public IAppSystem
+{
+public:
+ // call to Shutdown surface; surface can no longer be used after this is called
+ virtual void Shutdown() = 0;
+
+ // frame
+ virtual void RunFrame() = 0;
+
+ // hierarchy root
+ virtual VPANEL GetEmbeddedPanel() = 0;
+ virtual void SetEmbeddedPanel( VPANEL pPanel ) = 0;
+
+ // drawing context
+ virtual void PushMakeCurrent(VPANEL panel, bool useInsets) = 0;
+ virtual void PopMakeCurrent(VPANEL panel) = 0;
+
+ // rendering functions
+ virtual void DrawSetColor(int r, int g, int b, int a) = 0;
+ virtual void DrawSetColor(Color col) = 0;
+
+ virtual void DrawFilledRect(int x0, int y0, int x1, int y1) = 0;
+ virtual void DrawFilledRectArray( IntRect *pRects, int numRects ) = 0;
+ virtual void DrawOutlinedRect(int x0, int y0, int x1, int y1) = 0;
+
+ virtual void DrawLine(int x0, int y0, int x1, int y1) = 0;
+ virtual void DrawPolyLine(int *px, int *py, int numPoints) = 0;
+
+ virtual void DrawSetTextFont(HFont font) = 0;
+ virtual void DrawSetTextColor(int r, int g, int b, int a) = 0;
+ virtual void DrawSetTextColor(Color col) = 0;
+ virtual void DrawSetTextPos(int x, int y) = 0;
+ virtual void DrawGetTextPos(int& x,int& y) = 0;
+ virtual void DrawPrintText(const wchar_t *text, int textLen, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
+ virtual void DrawUnicodeChar(wchar_t wch, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
+
+ virtual void DrawFlushText() = 0; // flushes any buffered text (for rendering optimizations)
+ virtual IHTML *CreateHTMLWindow(vgui::IHTMLEvents *events,VPANEL context)=0;
+ virtual void PaintHTMLWindow(vgui::IHTML *htmlwin) =0;
+ virtual void DeleteHTMLWindow(IHTML *htmlwin)=0;
+
+ enum ETextureFormat
+ {
+ eTextureFormat_RGBA,
+ eTextureFormat_BGRA,
+ eTextureFormat_BGRA_Opaque, // bgra format but alpha is always 255, CEF does this, we can use this fact for better perf on win32 gdi
+ };
+
+ virtual int DrawGetTextureId( char const *filename ) = 0;
+ virtual bool DrawGetTextureFile(int id, char *filename, int maxlen ) = 0;
+ virtual void DrawSetTextureFile(int id, const char *filename, int hardwareFilter, bool forceReload) = 0;
+ virtual void DrawSetTextureRGBA(int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload)=0;
+ virtual void DrawSetTexture(int id) = 0;
+ virtual void DrawGetTextureSize(int id, int &wide, int &tall) = 0;
+ virtual void DrawTexturedRect(int x0, int y0, int x1, int y1) = 0;
+ virtual bool IsTextureIDValid(int id) = 0;
+ virtual bool DeleteTextureByID(int id) = 0;
+
+ virtual int CreateNewTextureID( bool procedural = false ) = 0;
+
+ virtual void GetScreenSize(int &wide, int &tall) = 0;
+ virtual void SetAsTopMost(VPANEL panel, bool state) = 0;
+ virtual void BringToFront(VPANEL panel) = 0;
+ virtual void SetForegroundWindow (VPANEL panel) = 0;
+ virtual void SetPanelVisible(VPANEL panel, bool state) = 0;
+ virtual void SetMinimized(VPANEL panel, bool state) = 0;
+ virtual bool IsMinimized(VPANEL panel) = 0;
+ virtual void FlashWindow(VPANEL panel, bool state) = 0;
+ virtual void SetTitle(VPANEL panel, const wchar_t *title) = 0;
+ virtual void SetAsToolBar(VPANEL panel, bool state) = 0; // removes the window's task bar entry (for context menu's, etc.)
+
+ // windows stuff
+ virtual void CreatePopup(VPANEL panel, bool minimised, bool showTaskbarIcon = true, bool disabled = false, bool mouseInput = true , bool kbInput = true) = 0;
+ virtual void SwapBuffers(VPANEL panel) = 0;
+ virtual void Invalidate(VPANEL panel) = 0;
+ virtual void SetCursor(HCursor cursor) = 0;
+ virtual void SetCursorAlwaysVisible( bool visible ) = 0;
+ virtual bool IsCursorVisible() = 0;
+ virtual void ApplyChanges() = 0;
+ virtual bool IsWithin(int x, int y) = 0;
+ virtual bool HasFocus() = 0;
+
+ // returns true if the surface supports minimize & maximize capabilities
+ enum SurfaceFeature_e
+ {
+ ANTIALIASED_FONTS = 1,
+ DROPSHADOW_FONTS = 2,
+ ESCAPE_KEY = 3,
+ OPENING_NEW_HTML_WINDOWS = 4,
+ FRAME_MINIMIZE_MAXIMIZE = 5,
+ OUTLINE_FONTS = 6,
+ DIRECT_HWND_RENDER = 7,
+ };
+ virtual bool SupportsFeature(SurfaceFeature_e feature) = 0;
+
+ // restricts what gets drawn to one panel and it's children
+ // currently only works in the game
+ virtual void RestrictPaintToSinglePanel(VPANEL panel) = 0;
+
+ // these two functions obselete, use IInput::SetAppModalSurface() instead
+ virtual void SetModalPanel(VPANEL ) = 0;
+ virtual VPANEL GetModalPanel() = 0;
+
+ virtual void UnlockCursor() = 0;
+ virtual void LockCursor() = 0;
+ virtual void SetTranslateExtendedKeys(bool state) = 0;
+ virtual VPANEL GetTopmostPopup() = 0;
+
+ // engine-only focus handling (replacing WM_FOCUS windows handling)
+ virtual void SetTopLevelFocus(VPANEL panel) = 0;
+
+ // fonts
+ // creates an empty handle to a vgui font. windows fonts can be add to this via SetFontGlyphSet().
+ virtual HFont CreateFont() = 0;
+
+ // adds to the font
+ enum EFontFlags
+ {
+ FONTFLAG_NONE,
+ FONTFLAG_ITALIC = 0x001,
+ FONTFLAG_UNDERLINE = 0x002,
+ FONTFLAG_STRIKEOUT = 0x004,
+ FONTFLAG_SYMBOL = 0x008,
+ FONTFLAG_ANTIALIAS = 0x010,
+ FONTFLAG_GAUSSIANBLUR = 0x020,
+ FONTFLAG_ROTARY = 0x040,
+ FONTFLAG_DROPSHADOW = 0x080,
+ FONTFLAG_ADDITIVE = 0x100,
+ FONTFLAG_OUTLINE = 0x200,
+ FONTFLAG_CUSTOM = 0x400, // custom generated font - never fall back to asian compatibility mode
+ FONTFLAG_BITMAP = 0x800, // compiled bitmap font - no fallbacks
+ };
+
+ virtual bool SetFontGlyphSet(HFont font, const char *windowsFontName, int tall, int weight, int blur, int scanlines, int flags, int nRangeMin = 0, int nRangeMax = 0) = 0;
+
+ // adds a custom font file (only supports true type font files (.ttf) for now)
+ virtual bool AddCustomFontFile(const char *fontName, const char *fontFileName) = 0;
+
+ // returns the details about the font
+ virtual int GetFontTall(HFont font) = 0;
+ virtual int GetFontTallRequested(HFont font) = 0;
+ virtual int GetFontAscent(HFont font, wchar_t wch) = 0;
+ virtual bool IsFontAdditive(HFont font) = 0;
+ virtual void GetCharABCwide(HFont font, int ch, int &a, int &b, int &c) = 0;
+ virtual int GetCharacterWidth(HFont font, int ch) = 0;
+ virtual void GetTextSize(HFont font, const wchar_t *text, int &wide, int &tall) = 0;
+
+ // notify icons?!?
+ virtual VPANEL GetNotifyPanel() = 0;
+ virtual void SetNotifyIcon(VPANEL context, HTexture icon, VPANEL panelToReceiveMessages, const char *text) = 0;
+
+ // plays a sound
+ virtual void PlaySound(const char *fileName) = 0;
+
+ //!! these functions should not be accessed directly, but only through other vgui items
+ //!! need to move these to seperate interface
+ virtual int GetPopupCount() = 0;
+ virtual VPANEL GetPopup(int index) = 0;
+ virtual bool ShouldPaintChildPanel(VPANEL childPanel) = 0;
+ virtual bool RecreateContext(VPANEL panel) = 0;
+ virtual void AddPanel(VPANEL panel) = 0;
+ virtual void ReleasePanel(VPANEL panel) = 0;
+ virtual void MovePopupToFront(VPANEL panel) = 0;
+ virtual void MovePopupToBack(VPANEL panel) = 0;
+
+ virtual void SolveTraverse(VPANEL panel, bool forceApplySchemeSettings = false) = 0;
+ virtual void PaintTraverse(VPANEL panel) = 0;
+
+ virtual void EnableMouseCapture(VPANEL panel, bool state) = 0;
+
+ // returns the size of the workspace
+ virtual void GetWorkspaceBounds(int &x, int &y, int &wide, int &tall) = 0;
+
+ // gets the absolute coordinates of the screen (in windows space)
+ virtual void GetAbsoluteWindowBounds(int &x, int &y, int &wide, int &tall) = 0;
+
+ // gets the base resolution used in proportional mode
+ virtual void GetProportionalBase( int &width, int &height ) = 0;
+
+ virtual void CalculateMouseVisible() = 0;
+ virtual bool NeedKBInput() = 0;
+
+ virtual bool HasCursorPosFunctions() = 0;
+ virtual void SurfaceGetCursorPos(int &x, int &y) = 0;
+ virtual void SurfaceSetCursorPos(int x, int y) = 0;
+
+ // SRC only functions!!!
+ virtual void DrawTexturedLine( const Vertex_t &a, const Vertex_t &b ) = 0;
+ virtual void DrawOutlinedCircle(int x, int y, int radius, int segments) = 0;
+ virtual void DrawTexturedPolyLine( const Vertex_t *p,int n ) = 0; // (Note: this connects the first and last points).
+ virtual void DrawTexturedSubRect( int x0, int y0, int x1, int y1, float texs0, float text0, float texs1, float text1 ) = 0;
+ virtual void DrawTexturedPolygon(int n, Vertex_t *pVertice, bool bClipVertices = true ) = 0;
+ virtual const wchar_t *GetTitle(VPANEL panel) = 0;
+ virtual bool IsCursorLocked( void ) const = 0;
+ virtual void SetWorkspaceInsets( int left, int top, int right, int bottom ) = 0;
+
+ // Lower level char drawing code, call DrawGet then pass in info to DrawRender
+ virtual bool DrawGetUnicodeCharRenderInfo( wchar_t ch, CharRenderInfo& info ) = 0;
+ virtual void DrawRenderCharFromInfo( const CharRenderInfo& info ) = 0;
+
+ // global alpha setting functions
+ // affect all subsequent draw calls - shouldn't normally be used directly, only in Panel::PaintTraverse()
+ virtual void DrawSetAlphaMultiplier( float alpha /* [0..1] */ ) = 0;
+ virtual float DrawGetAlphaMultiplier() = 0;
+
+ // web browser
+ virtual void SetAllowHTMLJavaScript( bool state ) = 0;
+
+ // video mode changing
+ virtual void OnScreenSizeChanged( int nOldWidth, int nOldHeight ) = 0;
+
+ virtual vgui::HCursor CreateCursorFromFile( char const *curOrAniFile, char const *pPathID = 0 ) = 0;
+
+ // create IVguiMatInfo object ( IMaterial wrapper in VguiMatSurface, NULL in CWin32Surface )
+ virtual IVguiMatInfo *DrawGetTextureMatInfoFactory( int id ) = 0;
+
+ virtual void PaintTraverseEx(VPANEL panel, bool paintPopups = false ) = 0;
+
+ virtual float GetZPos() const = 0;
+
+ // From the Xbox
+ virtual void SetPanelForInput( VPANEL vpanel ) = 0;
+ virtual void DrawFilledRectFastFade( int x0, int y0, int x1, int y1, int fadeStartPt, int fadeEndPt, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0;
+ virtual void DrawFilledRectFade( int x0, int y0, int x1, int y1, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0;
+ virtual void DrawSetTextureRGBAEx(int id, const unsigned char *rgba, int wide, int tall, ImageFormat imageFormat ) = 0;
+ virtual void DrawSetTextScale(float sx, float sy) = 0;
+ virtual bool SetBitmapFontGlyphSet(HFont font, const char *windowsFontName, float scalex, float scaley, int flags) = 0;
+ // adds a bitmap font file
+ virtual bool AddBitmapFontFile(const char *fontFileName) = 0;
+ // sets a symbol for the bitmap font
+ virtual void SetBitmapFontName( const char *pName, const char *pFontFilename ) = 0;
+ // gets the bitmap font filename
+ virtual const char *GetBitmapFontName( const char *pName ) = 0;
+ virtual void ClearTemporaryFontCache( void ) = 0;
+
+ virtual IImage *GetIconImageForFullPath( char const *pFullPath ) = 0;
+ virtual void DrawUnicodeString( const wchar_t *pwString, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
+ virtual void PrecacheFontCharacters(HFont font, const wchar_t *pCharacters) = 0;
+ // Console-only. Get the string to use for the current video mode for layout files.
+ virtual const char *GetResolutionKey( void ) const = 0;
+
+ virtual const char *GetFontName( HFont font ) = 0;
+ virtual const char *GetFontFamilyName( HFont font ) = 0;
+ virtual void GetKernedCharWidth( HFont font, wchar_t ch, wchar_t chBefore, wchar_t chAfter, float &wide, float &abcA ) = 0;
+
+ virtual bool ForceScreenSizeOverride( bool bState, int wide, int tall ) = 0;
+ // LocalToScreen, ParentLocalToScreen fixups for explicit PaintTraverse calls on Panels not at 0, 0 position
+ virtual bool ForceScreenPosOffset( bool bState, int x, int y ) = 0;
+ virtual void OffsetAbsPos( int &x, int &y ) = 0;
+
+
+ // Causes fonts to get reloaded, etc.
+ virtual void ResetFontCaches() = 0;
+
+ virtual int GetTextureNumFrames( int id ) = 0;
+ virtual void DrawSetTextureFrame( int id, int nFrame, unsigned int *pFrameCache ) = 0;
+ virtual bool IsScreenSizeOverrideActive( void ) = 0;
+ virtual bool IsScreenPosOverrideActive( void ) = 0;
+
+ virtual void DestroyTextureID( int id ) = 0;
+
+ virtual void DrawUpdateRegionTextureRGBA( int nTextureID, int x, int y, const unsigned char *pchData, int wide, int tall, ImageFormat imageFormat ) = 0;
+ virtual bool BHTMLWindowNeedsPaint(IHTML *htmlwin) = 0 ;
+
+ virtual const char *GetWebkitHTMLUserAgentString() = 0;
+
+ virtual IHTMLChromeController *AccessChromeHTMLController() = 0;
+
+ // the origin of the viewport on the framebuffer (Which might not be 0,0 for stereo)
+ virtual void SetFullscreenViewport( int x, int y, int w, int h ) = 0;
+ virtual void GetFullscreenViewport( int & x, int & y, int & w, int & h ) = 0;
+ virtual void PushFullscreenViewport() = 0;
+ virtual void PopFullscreenViewport() = 0;
+
+ // handles support for software cursors
+ virtual void SetSoftwareCursor( bool bUseSoftwareCursor ) = 0;
+ virtual void PaintSoftwareCursor() = 0;
+};
+
+}
+
+#define VGUI_SURFACE_INTERFACE_VERSION "VGUI_Surface030"
+
+#endif // ISURFACE_H
diff --git a/mp/src/public/vgui/ISurfaceV30.h b/mp/src/public/vgui/ISurfaceV30.h
index ebe74601..420fb1a8 100644
--- a/mp/src/public/vgui/ISurfaceV30.h
+++ b/mp/src/public/vgui/ISurfaceV30.h
@@ -1,375 +1,375 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// The copyright to the contents herein is the property of Valve, L.L.C.
-// The contents may be used and/or copied only with the written permission of
-// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
-// the agreement/contract under which the contents have been supplied.
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================
-
-#ifndef ISURFACE_V30_H
-#define ISURFACE_V30_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-#include <vgui/IHTML.h> // CreateHTML, PaintHTML
-#include "interface.h"
-#include "IVguiMatInfo.h"
-
-#include "appframework/IAppSystem.h"
-#include "bitmap/ImageFormat.h"
-#include "Vector2D.h" // must be before the namespace line
-
-#ifdef CreateFont
-#undef CreateFont
-#endif
-
-#ifdef PlaySound
-#undef PlaySound
-#endif
-
-class Color;
-
-namespace vgui
-{
-
- class Image;
- class Point;
-
- // handles
- typedef unsigned long HCursor;
- typedef unsigned long HTexture;
- typedef unsigned long HFont;
-}
-
-
-
-namespace SurfaceV30
-{
-
- //SRC only defines
-
-
- struct Vertex_t
- {
- Vertex_t() {}
- Vertex_t( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
- {
- m_Position = pos;
- m_TexCoord = coord;
- }
- void Init( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
- {
- m_Position = pos;
- m_TexCoord = coord;
- }
-
- Vector2D m_Position;
- Vector2D m_TexCoord;
- };
-
-
- enum FontDrawType_t
- {
- // Use the "additive" value from the scheme file
- FONT_DRAW_DEFAULT = 0,
-
- // Overrides
- FONT_DRAW_NONADDITIVE,
- FONT_DRAW_ADDITIVE,
-
- FONT_DRAW_TYPE_COUNT = 2,
- };
-
-
- // Refactor these two
- struct CharRenderInfo
- {
- // In:
- FontDrawType_t drawType;
- wchar_t ch;
-
- // Out
- bool valid;
-
- // In/Out (true by default)
- bool shouldclip;
- // Text pos
- int x, y;
- // Top left and bottom right
- Vertex_t verts[ 2 ];
- int textureId;
- int abcA;
- int abcB;
- int abcC;
- int fontTall;
- vgui::HFont currentFont;
- };
-
-
- struct IntRect
- {
- int x0;
- int y0;
- int x1;
- int y1;
- };
-
-
- //-----------------------------------------------------------------------------
- // Purpose: Wraps contextless windows system functions
- //-----------------------------------------------------------------------------
- class ISurface : public IAppSystem
- {
- public:
- // call to Shutdown surface; surface can no longer be used after this is called
- virtual void Shutdown() = 0;
-
- // frame
- virtual void RunFrame() = 0;
-
- // hierarchy root
- virtual vgui::VPANEL GetEmbeddedPanel() = 0;
- virtual void SetEmbeddedPanel( vgui::VPANEL pPanel ) = 0;
-
- // drawing context
- virtual void PushMakeCurrent(vgui::VPANEL panel, bool useInsets) = 0;
- virtual void PopMakeCurrent(vgui::VPANEL panel) = 0;
-
- // rendering functions
- virtual void DrawSetColor(int r, int g, int b, int a) = 0;
- virtual void DrawSetColor(Color col) = 0;
-
- virtual void DrawFilledRect(int x0, int y0, int x1, int y1) = 0;
- virtual void DrawFilledRectArray( IntRect *pRects, int numRects ) = 0;
- virtual void DrawOutlinedRect(int x0, int y0, int x1, int y1) = 0;
-
- virtual void DrawLine(int x0, int y0, int x1, int y1) = 0;
- virtual void DrawPolyLine(int *px, int *py, int numPoints) = 0;
-
- virtual void DrawSetTextFont(vgui::HFont font) = 0;
- virtual void DrawSetTextColor(int r, int g, int b, int a) = 0;
- virtual void DrawSetTextColor(Color col) = 0;
- virtual void DrawSetTextPos(int x, int y) = 0;
- virtual void DrawGetTextPos(int& x,int& y) = 0;
- virtual void DrawPrintText(const wchar_t *text, int textLen, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
- virtual void DrawUnicodeChar(wchar_t wch, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
-
- virtual void DrawFlushText() = 0; // flushes any buffered text (for rendering optimizations)
- virtual vgui::IHTML *CreateHTMLWindow(vgui::IHTMLEvents *events,vgui::VPANEL context)=0;
- virtual void PaintHTMLWindow(vgui::IHTML *htmlwin) =0;
- virtual void DeleteHTMLWindow(vgui::IHTML *htmlwin)=0;
-
- virtual int DrawGetTextureId( char const *filename ) = 0;
- virtual bool DrawGetTextureFile(int id, char *filename, int maxlen ) = 0;
- virtual void DrawSetTextureFile(int id, const char *filename, int hardwareFilter, bool forceReload) = 0;
- virtual void DrawSetTextureRGBA(int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload)=0;
- virtual void DrawSetTexture(int id) = 0;
- virtual void DrawGetTextureSize(int id, int &wide, int &tall) = 0;
- virtual void DrawTexturedRect(int x0, int y0, int x1, int y1) = 0;
- virtual bool IsTextureIDValid(int id) = 0;
-
- virtual int CreateNewTextureID( bool procedural = false ) = 0;
-#ifdef _XBOX
- virtual void DestroyTextureID( int id ) = 0;
- virtual bool IsCachedForRendering( int id, bool bSyncWait ) = 0;
- virtual void CopyFrontBufferToBackBuffer() = 0;
- virtual void UncacheUnusedMaterials() = 0;
-#endif
-
- virtual void GetScreenSize(int &wide, int &tall) = 0;
- virtual void SetAsTopMost(vgui::VPANEL panel, bool state) = 0;
- virtual void BringToFront(vgui::VPANEL panel) = 0;
- virtual void SetForegroundWindow (vgui::VPANEL panel) = 0;
- virtual void SetPanelVisible(vgui::VPANEL panel, bool state) = 0;
- virtual void SetMinimized(vgui::VPANEL panel, bool state) = 0;
- virtual bool IsMinimized(vgui::VPANEL panel) = 0;
- virtual void FlashWindow(vgui::VPANEL panel, bool state) = 0;
- virtual void SetTitle(vgui::VPANEL panel, const wchar_t *title) = 0;
- virtual void SetAsToolBar(vgui::VPANEL panel, bool state) = 0; // removes the window's task bar entry (for context menu's, etc.)
-
- // windows stuff
- virtual void CreatePopup(vgui::VPANEL panel, bool minimised, bool showTaskbarIcon = true, bool disabled = false, bool mouseInput = true , bool kbInput = true) = 0;
- virtual void SwapBuffers(vgui::VPANEL panel) = 0;
- virtual void Invalidate(vgui::VPANEL panel) = 0;
- virtual void SetCursor(vgui::HCursor cursor) = 0;
- virtual bool IsCursorVisible() = 0;
- virtual void ApplyChanges() = 0;
- virtual bool IsWithin(int x, int y) = 0;
- virtual bool HasFocus() = 0;
-
- // returns true if the surface supports minimize & maximize capabilities
- enum SurfaceFeature_e
- {
- ANTIALIASED_FONTS = 1,
- DROPSHADOW_FONTS = 2,
- ESCAPE_KEY = 3,
- OPENING_NEW_HTML_WINDOWS = 4,
- FRAME_MINIMIZE_MAXIMIZE = 5,
- OUTLINE_FONTS = 6,
- DIRECT_HWND_RENDER = 7,
- };
- virtual bool SupportsFeature(SurfaceFeature_e feature) = 0;
-
- // restricts what gets drawn to one panel and it's children
- // currently only works in the game
- virtual void RestrictPaintToSinglePanel(vgui::VPANEL panel) = 0;
-
- // these two functions obselete, use IInput::SetAppModalSurface() instead
- virtual void SetModalPanel(vgui::VPANEL ) = 0;
- virtual vgui::VPANEL GetModalPanel() = 0;
-
- virtual void UnlockCursor() = 0;
- virtual void LockCursor() = 0;
- virtual void SetTranslateExtendedKeys(bool state) = 0;
- virtual vgui::VPANEL GetTopmostPopup() = 0;
-
- // engine-only focus handling (replacing WM_FOCUS windows handling)
- virtual void SetTopLevelFocus(vgui::VPANEL panel) = 0;
-
- // fonts
- // creates an empty handle to a vgui font. windows fonts can be add to this via SetFontGlyphSet().
- virtual vgui::HFont CreateFont() = 0;
-
- // adds to the font
- enum EFontFlags
- {
- FONTFLAG_NONE,
- FONTFLAG_ITALIC = 0x001,
- FONTFLAG_UNDERLINE = 0x002,
- FONTFLAG_STRIKEOUT = 0x004,
- FONTFLAG_SYMBOL = 0x008,
- FONTFLAG_ANTIALIAS = 0x010,
- FONTFLAG_GAUSSIANBLUR = 0x020,
- FONTFLAG_ROTARY = 0x040,
- FONTFLAG_DROPSHADOW = 0x080,
- FONTFLAG_ADDITIVE = 0x100,
- FONTFLAG_OUTLINE = 0x200,
- FONTFLAG_CUSTOM = 0x400, // custom generated font - never fall back to asian compatibility mode
- FONTFLAG_BITMAP = 0x800, // compiled bitmap font - no fallbacks
- };
-
- virtual bool SetFontGlyphSet(vgui::HFont font, const char *windowsFontName, int tall, int weight, int blur, int scanlines, int flags) = 0;
-
- // adds a custom font file (only supports true type font files (.ttf) for now)
- virtual bool AddCustomFontFile(const char *fontName, const char *fontFileName) = 0;
-
- // returns the details about the font
- virtual int GetFontTall(vgui::HFont font) = 0;
- virtual int GetFontAscent(vgui::HFont font, wchar_t wch) = 0;
- virtual bool IsFontAdditive(vgui::HFont font) = 0;
- virtual void GetCharABCwide(vgui::HFont font, int ch, int &a, int &b, int &c) = 0;
- virtual int GetCharacterWidth(vgui::HFont font, int ch) = 0;
- virtual void GetTextSize(vgui::HFont font, const wchar_t *text, int &wide, int &tall) = 0;
-
- // notify icons?!?
- virtual vgui::VPANEL GetNotifyPanel() = 0;
- virtual void SetNotifyIcon(vgui::VPANEL context, vgui::HTexture icon, vgui::VPANEL panelToReceiveMessages, const char *text) = 0;
-
- // plays a sound
- virtual void PlaySound(const char *fileName) = 0;
-
- //!! these functions should not be accessed directly, but only through other vgui items
- //!! need to move these to seperate interface
- virtual int GetPopupCount() = 0;
- virtual vgui::VPANEL GetPopup(int index) = 0;
- virtual bool ShouldPaintChildPanel(vgui::VPANEL childPanel) = 0;
- virtual bool RecreateContext(vgui::VPANEL panel) = 0;
- virtual void AddPanel(vgui::VPANEL panel) = 0;
- virtual void ReleasePanel(vgui::VPANEL panel) = 0;
- virtual void MovePopupToFront(vgui::VPANEL panel) = 0;
- virtual void MovePopupToBack(vgui::VPANEL panel) = 0;
-
- virtual void SolveTraverse(vgui::VPANEL panel, bool forceApplySchemeSettings = false) = 0;
- virtual void PaintTraverse(vgui::VPANEL panel) = 0;
-
- virtual void EnableMouseCapture(vgui::VPANEL panel, bool state) = 0;
-
- // returns the size of the workspace
- virtual void GetWorkspaceBounds(int &x, int &y, int &wide, int &tall) = 0;
-
- // gets the absolute coordinates of the screen (in windows space)
- virtual void GetAbsoluteWindowBounds(int &x, int &y, int &wide, int &tall) = 0;
-
- // gets the base resolution used in proportional mode
- virtual void GetProportionalBase( int &width, int &height ) = 0;
-
- virtual void CalculateMouseVisible() = 0;
- virtual bool NeedKBInput() = 0;
-
- virtual bool HasCursorPosFunctions() = 0;
- virtual void SurfaceGetCursorPos(int &x, int &y) = 0;
- virtual void SurfaceSetCursorPos(int x, int y) = 0;
-
-
- // SRC only functions!!!
- virtual void DrawTexturedLine( const Vertex_t &a, const Vertex_t &b ) = 0;
- virtual void DrawOutlinedCircle(int x, int y, int radius, int segments) = 0;
- virtual void DrawTexturedPolyLine( const Vertex_t *p,int n ) = 0; // (Note: this connects the first and last points).
- virtual void DrawTexturedSubRect( int x0, int y0, int x1, int y1, float texs0, float text0, float texs1, float text1 ) = 0;
- virtual void DrawTexturedPolygon(int n, Vertex_t *pVertices) = 0;
- virtual const wchar_t *GetTitle(vgui::VPANEL panel) = 0;
- virtual bool IsCursorLocked( void ) const = 0;
- virtual void SetWorkspaceInsets( int left, int top, int right, int bottom ) = 0;
-
- // Lower level char drawing code, call DrawGet then pass in info to DrawRender
- virtual bool DrawGetUnicodeCharRenderInfo( wchar_t ch, CharRenderInfo& info ) = 0;
- virtual void DrawRenderCharFromInfo( const CharRenderInfo& info ) = 0;
-
- // global alpha setting functions
- // affect all subsequent draw calls - shouldn't normally be used directly, only in Panel::PaintTraverse()
- virtual void DrawSetAlphaMultiplier( float alpha /* [0..1] */ ) = 0;
- virtual float DrawGetAlphaMultiplier() = 0;
-
- // web browser
- virtual void SetAllowHTMLJavaScript( bool state ) = 0;
-
- // video mode changing
- virtual void OnScreenSizeChanged( int nOldWidth, int nOldHeight ) = 0;
-#if !defined( _XBOX )
- virtual vgui::HCursor CreateCursorFromFile( char const *curOrAniFile, char const *pPathID = 0 ) = 0;
-#endif
- // create IVguiMatInfo object ( IMaterial wrapper in VguiMatSurface, NULL in CWin32Surface )
- virtual IVguiMatInfo *DrawGetTextureMatInfoFactory( int id ) = 0;
-
- virtual void PaintTraverseEx(vgui::VPANEL panel, bool paintPopups = false ) = 0;
-
- virtual float GetZPos() const = 0;
-
- // From the Xbox
- virtual void SetPanelForInput( vgui::VPANEL vpanel ) = 0;
- virtual void DrawFilledRectFade( int x0, int y0, int x1, int y1, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0;
- virtual void DrawSetTextureRGBAEx(int id, const unsigned char *rgba, int wide, int tall, ImageFormat imageFormat ) = 0;
- virtual void DrawSetTextScale(float sx, float sy) = 0;
- virtual bool SetBitmapFontGlyphSet(vgui::HFont font, const char *windowsFontName, float scalex, float scaley, int flags) = 0;
- // adds a bitmap font file
- virtual bool AddBitmapFontFile(const char *fontFileName) = 0;
- // sets a symbol for the bitmap font
- virtual void SetBitmapFontName( const char *pName, const char *pFontFilename ) = 0;
- // gets the bitmap font filename
- virtual const char *GetBitmapFontName( const char *pName ) = 0;
-
- virtual vgui::IImage *GetIconImageForFullPath( char const *pFullPath ) = 0;
- virtual void DrawUnicodeString( const wchar_t *pwString, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
- };
-
-} // end namespace
-
-//-----------------------------------------------------------------------------
-// FIXME: This works around using scoped interfaces w/ EXPOSE_SINGLE_INTERFACE
-//-----------------------------------------------------------------------------
-class ISurfaceV30 : public SurfaceV30::ISurface
-{
-public:
-};
-
-
-#define VGUI_SURFACE_INTERFACE_VERSION_30 "VGUI_Surface030"
-
-#endif // ISURFACE_V30_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// The copyright to the contents herein is the property of Valve, L.L.C.
+// The contents may be used and/or copied only with the written permission of
+// Valve, L.L.C., or in accordance with the terms and conditions stipulated in
+// the agreement/contract under which the contents have been supplied.
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef ISURFACE_V30_H
+#define ISURFACE_V30_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+#include <vgui/IHTML.h> // CreateHTML, PaintHTML
+#include "interface.h"
+#include "IVguiMatInfo.h"
+
+#include "appframework/IAppSystem.h"
+#include "bitmap/ImageFormat.h"
+#include "Vector2D.h" // must be before the namespace line
+
+#ifdef CreateFont
+#undef CreateFont
+#endif
+
+#ifdef PlaySound
+#undef PlaySound
+#endif
+
+class Color;
+
+namespace vgui
+{
+
+ class Image;
+ class Point;
+
+ // handles
+ typedef unsigned long HCursor;
+ typedef unsigned long HTexture;
+ typedef unsigned long HFont;
+}
+
+
+
+namespace SurfaceV30
+{
+
+ //SRC only defines
+
+
+ struct Vertex_t
+ {
+ Vertex_t() {}
+ Vertex_t( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
+ {
+ m_Position = pos;
+ m_TexCoord = coord;
+ }
+ void Init( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) )
+ {
+ m_Position = pos;
+ m_TexCoord = coord;
+ }
+
+ Vector2D m_Position;
+ Vector2D m_TexCoord;
+ };
+
+
+ enum FontDrawType_t
+ {
+ // Use the "additive" value from the scheme file
+ FONT_DRAW_DEFAULT = 0,
+
+ // Overrides
+ FONT_DRAW_NONADDITIVE,
+ FONT_DRAW_ADDITIVE,
+
+ FONT_DRAW_TYPE_COUNT = 2,
+ };
+
+
+ // Refactor these two
+ struct CharRenderInfo
+ {
+ // In:
+ FontDrawType_t drawType;
+ wchar_t ch;
+
+ // Out
+ bool valid;
+
+ // In/Out (true by default)
+ bool shouldclip;
+ // Text pos
+ int x, y;
+ // Top left and bottom right
+ Vertex_t verts[ 2 ];
+ int textureId;
+ int abcA;
+ int abcB;
+ int abcC;
+ int fontTall;
+ vgui::HFont currentFont;
+ };
+
+
+ struct IntRect
+ {
+ int x0;
+ int y0;
+ int x1;
+ int y1;
+ };
+
+
+ //-----------------------------------------------------------------------------
+ // Purpose: Wraps contextless windows system functions
+ //-----------------------------------------------------------------------------
+ class ISurface : public IAppSystem
+ {
+ public:
+ // call to Shutdown surface; surface can no longer be used after this is called
+ virtual void Shutdown() = 0;
+
+ // frame
+ virtual void RunFrame() = 0;
+
+ // hierarchy root
+ virtual vgui::VPANEL GetEmbeddedPanel() = 0;
+ virtual void SetEmbeddedPanel( vgui::VPANEL pPanel ) = 0;
+
+ // drawing context
+ virtual void PushMakeCurrent(vgui::VPANEL panel, bool useInsets) = 0;
+ virtual void PopMakeCurrent(vgui::VPANEL panel) = 0;
+
+ // rendering functions
+ virtual void DrawSetColor(int r, int g, int b, int a) = 0;
+ virtual void DrawSetColor(Color col) = 0;
+
+ virtual void DrawFilledRect(int x0, int y0, int x1, int y1) = 0;
+ virtual void DrawFilledRectArray( IntRect *pRects, int numRects ) = 0;
+ virtual void DrawOutlinedRect(int x0, int y0, int x1, int y1) = 0;
+
+ virtual void DrawLine(int x0, int y0, int x1, int y1) = 0;
+ virtual void DrawPolyLine(int *px, int *py, int numPoints) = 0;
+
+ virtual void DrawSetTextFont(vgui::HFont font) = 0;
+ virtual void DrawSetTextColor(int r, int g, int b, int a) = 0;
+ virtual void DrawSetTextColor(Color col) = 0;
+ virtual void DrawSetTextPos(int x, int y) = 0;
+ virtual void DrawGetTextPos(int& x,int& y) = 0;
+ virtual void DrawPrintText(const wchar_t *text, int textLen, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
+ virtual void DrawUnicodeChar(wchar_t wch, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
+
+ virtual void DrawFlushText() = 0; // flushes any buffered text (for rendering optimizations)
+ virtual vgui::IHTML *CreateHTMLWindow(vgui::IHTMLEvents *events,vgui::VPANEL context)=0;
+ virtual void PaintHTMLWindow(vgui::IHTML *htmlwin) =0;
+ virtual void DeleteHTMLWindow(vgui::IHTML *htmlwin)=0;
+
+ virtual int DrawGetTextureId( char const *filename ) = 0;
+ virtual bool DrawGetTextureFile(int id, char *filename, int maxlen ) = 0;
+ virtual void DrawSetTextureFile(int id, const char *filename, int hardwareFilter, bool forceReload) = 0;
+ virtual void DrawSetTextureRGBA(int id, const unsigned char *rgba, int wide, int tall, int hardwareFilter, bool forceReload)=0;
+ virtual void DrawSetTexture(int id) = 0;
+ virtual void DrawGetTextureSize(int id, int &wide, int &tall) = 0;
+ virtual void DrawTexturedRect(int x0, int y0, int x1, int y1) = 0;
+ virtual bool IsTextureIDValid(int id) = 0;
+
+ virtual int CreateNewTextureID( bool procedural = false ) = 0;
+#ifdef _XBOX
+ virtual void DestroyTextureID( int id ) = 0;
+ virtual bool IsCachedForRendering( int id, bool bSyncWait ) = 0;
+ virtual void CopyFrontBufferToBackBuffer() = 0;
+ virtual void UncacheUnusedMaterials() = 0;
+#endif
+
+ virtual void GetScreenSize(int &wide, int &tall) = 0;
+ virtual void SetAsTopMost(vgui::VPANEL panel, bool state) = 0;
+ virtual void BringToFront(vgui::VPANEL panel) = 0;
+ virtual void SetForegroundWindow (vgui::VPANEL panel) = 0;
+ virtual void SetPanelVisible(vgui::VPANEL panel, bool state) = 0;
+ virtual void SetMinimized(vgui::VPANEL panel, bool state) = 0;
+ virtual bool IsMinimized(vgui::VPANEL panel) = 0;
+ virtual void FlashWindow(vgui::VPANEL panel, bool state) = 0;
+ virtual void SetTitle(vgui::VPANEL panel, const wchar_t *title) = 0;
+ virtual void SetAsToolBar(vgui::VPANEL panel, bool state) = 0; // removes the window's task bar entry (for context menu's, etc.)
+
+ // windows stuff
+ virtual void CreatePopup(vgui::VPANEL panel, bool minimised, bool showTaskbarIcon = true, bool disabled = false, bool mouseInput = true , bool kbInput = true) = 0;
+ virtual void SwapBuffers(vgui::VPANEL panel) = 0;
+ virtual void Invalidate(vgui::VPANEL panel) = 0;
+ virtual void SetCursor(vgui::HCursor cursor) = 0;
+ virtual bool IsCursorVisible() = 0;
+ virtual void ApplyChanges() = 0;
+ virtual bool IsWithin(int x, int y) = 0;
+ virtual bool HasFocus() = 0;
+
+ // returns true if the surface supports minimize & maximize capabilities
+ enum SurfaceFeature_e
+ {
+ ANTIALIASED_FONTS = 1,
+ DROPSHADOW_FONTS = 2,
+ ESCAPE_KEY = 3,
+ OPENING_NEW_HTML_WINDOWS = 4,
+ FRAME_MINIMIZE_MAXIMIZE = 5,
+ OUTLINE_FONTS = 6,
+ DIRECT_HWND_RENDER = 7,
+ };
+ virtual bool SupportsFeature(SurfaceFeature_e feature) = 0;
+
+ // restricts what gets drawn to one panel and it's children
+ // currently only works in the game
+ virtual void RestrictPaintToSinglePanel(vgui::VPANEL panel) = 0;
+
+ // these two functions obselete, use IInput::SetAppModalSurface() instead
+ virtual void SetModalPanel(vgui::VPANEL ) = 0;
+ virtual vgui::VPANEL GetModalPanel() = 0;
+
+ virtual void UnlockCursor() = 0;
+ virtual void LockCursor() = 0;
+ virtual void SetTranslateExtendedKeys(bool state) = 0;
+ virtual vgui::VPANEL GetTopmostPopup() = 0;
+
+ // engine-only focus handling (replacing WM_FOCUS windows handling)
+ virtual void SetTopLevelFocus(vgui::VPANEL panel) = 0;
+
+ // fonts
+ // creates an empty handle to a vgui font. windows fonts can be add to this via SetFontGlyphSet().
+ virtual vgui::HFont CreateFont() = 0;
+
+ // adds to the font
+ enum EFontFlags
+ {
+ FONTFLAG_NONE,
+ FONTFLAG_ITALIC = 0x001,
+ FONTFLAG_UNDERLINE = 0x002,
+ FONTFLAG_STRIKEOUT = 0x004,
+ FONTFLAG_SYMBOL = 0x008,
+ FONTFLAG_ANTIALIAS = 0x010,
+ FONTFLAG_GAUSSIANBLUR = 0x020,
+ FONTFLAG_ROTARY = 0x040,
+ FONTFLAG_DROPSHADOW = 0x080,
+ FONTFLAG_ADDITIVE = 0x100,
+ FONTFLAG_OUTLINE = 0x200,
+ FONTFLAG_CUSTOM = 0x400, // custom generated font - never fall back to asian compatibility mode
+ FONTFLAG_BITMAP = 0x800, // compiled bitmap font - no fallbacks
+ };
+
+ virtual bool SetFontGlyphSet(vgui::HFont font, const char *windowsFontName, int tall, int weight, int blur, int scanlines, int flags) = 0;
+
+ // adds a custom font file (only supports true type font files (.ttf) for now)
+ virtual bool AddCustomFontFile(const char *fontName, const char *fontFileName) = 0;
+
+ // returns the details about the font
+ virtual int GetFontTall(vgui::HFont font) = 0;
+ virtual int GetFontAscent(vgui::HFont font, wchar_t wch) = 0;
+ virtual bool IsFontAdditive(vgui::HFont font) = 0;
+ virtual void GetCharABCwide(vgui::HFont font, int ch, int &a, int &b, int &c) = 0;
+ virtual int GetCharacterWidth(vgui::HFont font, int ch) = 0;
+ virtual void GetTextSize(vgui::HFont font, const wchar_t *text, int &wide, int &tall) = 0;
+
+ // notify icons?!?
+ virtual vgui::VPANEL GetNotifyPanel() = 0;
+ virtual void SetNotifyIcon(vgui::VPANEL context, vgui::HTexture icon, vgui::VPANEL panelToReceiveMessages, const char *text) = 0;
+
+ // plays a sound
+ virtual void PlaySound(const char *fileName) = 0;
+
+ //!! these functions should not be accessed directly, but only through other vgui items
+ //!! need to move these to seperate interface
+ virtual int GetPopupCount() = 0;
+ virtual vgui::VPANEL GetPopup(int index) = 0;
+ virtual bool ShouldPaintChildPanel(vgui::VPANEL childPanel) = 0;
+ virtual bool RecreateContext(vgui::VPANEL panel) = 0;
+ virtual void AddPanel(vgui::VPANEL panel) = 0;
+ virtual void ReleasePanel(vgui::VPANEL panel) = 0;
+ virtual void MovePopupToFront(vgui::VPANEL panel) = 0;
+ virtual void MovePopupToBack(vgui::VPANEL panel) = 0;
+
+ virtual void SolveTraverse(vgui::VPANEL panel, bool forceApplySchemeSettings = false) = 0;
+ virtual void PaintTraverse(vgui::VPANEL panel) = 0;
+
+ virtual void EnableMouseCapture(vgui::VPANEL panel, bool state) = 0;
+
+ // returns the size of the workspace
+ virtual void GetWorkspaceBounds(int &x, int &y, int &wide, int &tall) = 0;
+
+ // gets the absolute coordinates of the screen (in windows space)
+ virtual void GetAbsoluteWindowBounds(int &x, int &y, int &wide, int &tall) = 0;
+
+ // gets the base resolution used in proportional mode
+ virtual void GetProportionalBase( int &width, int &height ) = 0;
+
+ virtual void CalculateMouseVisible() = 0;
+ virtual bool NeedKBInput() = 0;
+
+ virtual bool HasCursorPosFunctions() = 0;
+ virtual void SurfaceGetCursorPos(int &x, int &y) = 0;
+ virtual void SurfaceSetCursorPos(int x, int y) = 0;
+
+
+ // SRC only functions!!!
+ virtual void DrawTexturedLine( const Vertex_t &a, const Vertex_t &b ) = 0;
+ virtual void DrawOutlinedCircle(int x, int y, int radius, int segments) = 0;
+ virtual void DrawTexturedPolyLine( const Vertex_t *p,int n ) = 0; // (Note: this connects the first and last points).
+ virtual void DrawTexturedSubRect( int x0, int y0, int x1, int y1, float texs0, float text0, float texs1, float text1 ) = 0;
+ virtual void DrawTexturedPolygon(int n, Vertex_t *pVertices) = 0;
+ virtual const wchar_t *GetTitle(vgui::VPANEL panel) = 0;
+ virtual bool IsCursorLocked( void ) const = 0;
+ virtual void SetWorkspaceInsets( int left, int top, int right, int bottom ) = 0;
+
+ // Lower level char drawing code, call DrawGet then pass in info to DrawRender
+ virtual bool DrawGetUnicodeCharRenderInfo( wchar_t ch, CharRenderInfo& info ) = 0;
+ virtual void DrawRenderCharFromInfo( const CharRenderInfo& info ) = 0;
+
+ // global alpha setting functions
+ // affect all subsequent draw calls - shouldn't normally be used directly, only in Panel::PaintTraverse()
+ virtual void DrawSetAlphaMultiplier( float alpha /* [0..1] */ ) = 0;
+ virtual float DrawGetAlphaMultiplier() = 0;
+
+ // web browser
+ virtual void SetAllowHTMLJavaScript( bool state ) = 0;
+
+ // video mode changing
+ virtual void OnScreenSizeChanged( int nOldWidth, int nOldHeight ) = 0;
+#if !defined( _XBOX )
+ virtual vgui::HCursor CreateCursorFromFile( char const *curOrAniFile, char const *pPathID = 0 ) = 0;
+#endif
+ // create IVguiMatInfo object ( IMaterial wrapper in VguiMatSurface, NULL in CWin32Surface )
+ virtual IVguiMatInfo *DrawGetTextureMatInfoFactory( int id ) = 0;
+
+ virtual void PaintTraverseEx(vgui::VPANEL panel, bool paintPopups = false ) = 0;
+
+ virtual float GetZPos() const = 0;
+
+ // From the Xbox
+ virtual void SetPanelForInput( vgui::VPANEL vpanel ) = 0;
+ virtual void DrawFilledRectFade( int x0, int y0, int x1, int y1, unsigned int alpha0, unsigned int alpha1, bool bHorizontal ) = 0;
+ virtual void DrawSetTextureRGBAEx(int id, const unsigned char *rgba, int wide, int tall, ImageFormat imageFormat ) = 0;
+ virtual void DrawSetTextScale(float sx, float sy) = 0;
+ virtual bool SetBitmapFontGlyphSet(vgui::HFont font, const char *windowsFontName, float scalex, float scaley, int flags) = 0;
+ // adds a bitmap font file
+ virtual bool AddBitmapFontFile(const char *fontFileName) = 0;
+ // sets a symbol for the bitmap font
+ virtual void SetBitmapFontName( const char *pName, const char *pFontFilename ) = 0;
+ // gets the bitmap font filename
+ virtual const char *GetBitmapFontName( const char *pName ) = 0;
+
+ virtual vgui::IImage *GetIconImageForFullPath( char const *pFullPath ) = 0;
+ virtual void DrawUnicodeString( const wchar_t *pwString, FontDrawType_t drawType = FONT_DRAW_DEFAULT ) = 0;
+ };
+
+} // end namespace
+
+//-----------------------------------------------------------------------------
+// FIXME: This works around using scoped interfaces w/ EXPOSE_SINGLE_INTERFACE
+//-----------------------------------------------------------------------------
+class ISurfaceV30 : public SurfaceV30::ISurface
+{
+public:
+};
+
+
+#define VGUI_SURFACE_INTERFACE_VERSION_30 "VGUI_Surface030"
+
+#endif // ISURFACE_V30_H
diff --git a/mp/src/public/vgui/ISystem.h b/mp/src/public/vgui/ISystem.h
index d64f33d6..1ae15ec6 100644
--- a/mp/src/public/vgui/ISystem.h
+++ b/mp/src/public/vgui/ISystem.h
@@ -1,134 +1,134 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef ISYSTEM_H
-#define ISYSTEM_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "tier1/interface.h"
-#include <vgui/VGUI.h>
-#include <vgui/KeyCode.h>
-
-#ifdef PlaySound
-#undef PlaySound
-#endif
-
-class KeyValues;
-
-namespace vgui
-{
-
-//-----------------------------------------------------------------------------
-// Purpose: Wraps contextless windows system functions
-//-----------------------------------------------------------------------------
-class ISystem : public IBaseInterface
-{
-public:
- // call when done with ISystem to clean up any memory allocation
- virtual void Shutdown() = 0;
-
- // called every frame
- virtual void RunFrame() = 0;
-
- // use this with the "open" command to launch web browsers/explorer windows, eg. ShellExecute("open", "www.valvesoftware.com")
- virtual void ShellExecute(const char *command, const char *file) = 0;
-
- // returns the time at the start of the frame, in seconds
- virtual double GetFrameTime() = 0;
-
- // returns the current time, in seconds
- virtual double GetCurrentTime() = 0;
-
- // returns the current time, in milliseconds
- virtual long GetTimeMillis() = 0;
-
- // clipboard access
- virtual int GetClipboardTextCount() = 0;
- virtual void SetClipboardText(const char *text, int textLen) = 0;
- virtual void SetClipboardText(const wchar_t *text, int textLen) = 0;
- virtual int GetClipboardText(int offset, char *buf, int bufLen) = 0;
- virtual int GetClipboardText(int offset, wchar_t *buf, int bufLen) = 0;
-
- // windows registry
- virtual bool SetRegistryString(const char *key, const char *value) = 0;
- virtual bool GetRegistryString(const char *key, char *value, int valueLen) = 0;
- virtual bool SetRegistryInteger(const char *key, int value) = 0;
- virtual bool GetRegistryInteger(const char *key, int &value) = 0;
-
- // user config
- virtual KeyValues *GetUserConfigFileData(const char *dialogName, int dialogID) = 0;
- // sets the name of the config file to save/restore from. Settings are loaded immediately.
- virtual void SetUserConfigFile(const char *fileName, const char *pathName) = 0;
- // saves all the current settings to the user config file
- virtual void SaveUserConfigFile() = 0;
-
- // sets the watch on global computer use
- // returns true if supported
- virtual bool SetWatchForComputerUse(bool state) = 0;
- // returns the time, in seconds, since the last computer use.
- virtual double GetTimeSinceLastUse() = 0;
-
- // Get a string containing the available drives
- // If the function succeeds, the return value is the length, in characters,
- // of the strings copied to the buffer,
- // not including the terminating null character.
- virtual int GetAvailableDrives(char *buf, int bufLen) = 0;
-
- // exe command line options accessors
- // returns whether or not the parameter was on the command line
- virtual bool CommandLineParamExists(const char *paramName) = 0;
-
- // returns the full command line, including the exe name
- virtual const char *GetFullCommandLine() = 0;
-
- // Convert a windows virtual key code to a VGUI key code.
- virtual KeyCode KeyCode_VirtualKeyToVGUI( int keyCode ) = 0;
-
- // returns the current local time and date
- // fills in every field that a pointer is given to it for
- virtual bool GetCurrentTimeAndDate(int *year, int *month, int *dayOfWeek, int *day, int *hour, int *minute, int *second) = 0;
-
- // returns the amount of available disk space, in bytes, on the drive
- // path can be any path, drive letter is stripped out
- virtual double GetFreeDiskSpace(const char *path) = 0;
-
- // shortcut (.lnk) modification functions
- virtual bool CreateShortcut(const char *linkFileName, const char *targetPath, const char *arguments, const char *workingDirectory, const char *iconFile) = 0;
- virtual bool GetShortcutTarget(const char *linkFileName, char *targetPath, char *arguments, int destBufferSizes) = 0;
- virtual bool ModifyShortcutTarget(const char *linkFileName, const char *targetPath, const char *arguments, const char *workingDirectory) = 0;
-
- // gets the string following a command line param
- //!! move this function up on changing interface version number
- virtual bool GetCommandLineParamValue(const char *paramName, char *value, int valueBufferSize) = 0;
-
- // recursively deletes a registry key and all it's subkeys
- //!! move this function next to other registry function on changing interface version number
- virtual bool DeleteRegistryKey(const char *keyName) = 0;
-
- virtual const char *GetDesktopFolderPath() = 0;
-
- // use this with the "open" command to launch web browsers/explorer windows, eg. ShellExecute("open", "www.valvesoftware.com")
- virtual void ShellExecuteEx( const char *command, const char *file, const char *pParams ) = 0;
-
- // Copy a portion of the application client area to the clipboard
- // (x1,y1) specifies the top-left corner of the client rect to copy
- // (x2,y2) specifies the bottom-right corner of the client rect to copy
- // Requires: x2 > x1 && y2 > y1
- // Dimensions of the copied rectangle are (x2 - x1) x (y2 - y1)
- // Pixel at (x1,y1) is copied, pixels at column x2 and row y2 are *not* copied
- virtual void SetClipboardImage( void *pWnd, int x1, int y1, int x2, int y2 ) = 0;
-};
-
-}
-
-#define VGUI_SYSTEM_INTERFACE_VERSION "VGUI_System010"
-
-
-#endif // ISYSTEM_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef ISYSTEM_H
+#define ISYSTEM_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier1/interface.h"
+#include <vgui/VGUI.h>
+#include <vgui/KeyCode.h>
+
+#ifdef PlaySound
+#undef PlaySound
+#endif
+
+class KeyValues;
+
+namespace vgui
+{
+
+//-----------------------------------------------------------------------------
+// Purpose: Wraps contextless windows system functions
+//-----------------------------------------------------------------------------
+class ISystem : public IBaseInterface
+{
+public:
+ // call when done with ISystem to clean up any memory allocation
+ virtual void Shutdown() = 0;
+
+ // called every frame
+ virtual void RunFrame() = 0;
+
+ // use this with the "open" command to launch web browsers/explorer windows, eg. ShellExecute("open", "www.valvesoftware.com")
+ virtual void ShellExecute(const char *command, const char *file) = 0;
+
+ // returns the time at the start of the frame, in seconds
+ virtual double GetFrameTime() = 0;
+
+ // returns the current time, in seconds
+ virtual double GetCurrentTime() = 0;
+
+ // returns the current time, in milliseconds
+ virtual long GetTimeMillis() = 0;
+
+ // clipboard access
+ virtual int GetClipboardTextCount() = 0;
+ virtual void SetClipboardText(const char *text, int textLen) = 0;
+ virtual void SetClipboardText(const wchar_t *text, int textLen) = 0;
+ virtual int GetClipboardText(int offset, char *buf, int bufLen) = 0;
+ virtual int GetClipboardText(int offset, wchar_t *buf, int bufLen) = 0;
+
+ // windows registry
+ virtual bool SetRegistryString(const char *key, const char *value) = 0;
+ virtual bool GetRegistryString(const char *key, char *value, int valueLen) = 0;
+ virtual bool SetRegistryInteger(const char *key, int value) = 0;
+ virtual bool GetRegistryInteger(const char *key, int &value) = 0;
+
+ // user config
+ virtual KeyValues *GetUserConfigFileData(const char *dialogName, int dialogID) = 0;
+ // sets the name of the config file to save/restore from. Settings are loaded immediately.
+ virtual void SetUserConfigFile(const char *fileName, const char *pathName) = 0;
+ // saves all the current settings to the user config file
+ virtual void SaveUserConfigFile() = 0;
+
+ // sets the watch on global computer use
+ // returns true if supported
+ virtual bool SetWatchForComputerUse(bool state) = 0;
+ // returns the time, in seconds, since the last computer use.
+ virtual double GetTimeSinceLastUse() = 0;
+
+ // Get a string containing the available drives
+ // If the function succeeds, the return value is the length, in characters,
+ // of the strings copied to the buffer,
+ // not including the terminating null character.
+ virtual int GetAvailableDrives(char *buf, int bufLen) = 0;
+
+ // exe command line options accessors
+ // returns whether or not the parameter was on the command line
+ virtual bool CommandLineParamExists(const char *paramName) = 0;
+
+ // returns the full command line, including the exe name
+ virtual const char *GetFullCommandLine() = 0;
+
+ // Convert a windows virtual key code to a VGUI key code.
+ virtual KeyCode KeyCode_VirtualKeyToVGUI( int keyCode ) = 0;
+
+ // returns the current local time and date
+ // fills in every field that a pointer is given to it for
+ virtual bool GetCurrentTimeAndDate(int *year, int *month, int *dayOfWeek, int *day, int *hour, int *minute, int *second) = 0;
+
+ // returns the amount of available disk space, in bytes, on the drive
+ // path can be any path, drive letter is stripped out
+ virtual double GetFreeDiskSpace(const char *path) = 0;
+
+ // shortcut (.lnk) modification functions
+ virtual bool CreateShortcut(const char *linkFileName, const char *targetPath, const char *arguments, const char *workingDirectory, const char *iconFile) = 0;
+ virtual bool GetShortcutTarget(const char *linkFileName, char *targetPath, char *arguments, int destBufferSizes) = 0;
+ virtual bool ModifyShortcutTarget(const char *linkFileName, const char *targetPath, const char *arguments, const char *workingDirectory) = 0;
+
+ // gets the string following a command line param
+ //!! move this function up on changing interface version number
+ virtual bool GetCommandLineParamValue(const char *paramName, char *value, int valueBufferSize) = 0;
+
+ // recursively deletes a registry key and all it's subkeys
+ //!! move this function next to other registry function on changing interface version number
+ virtual bool DeleteRegistryKey(const char *keyName) = 0;
+
+ virtual const char *GetDesktopFolderPath() = 0;
+
+ // use this with the "open" command to launch web browsers/explorer windows, eg. ShellExecute("open", "www.valvesoftware.com")
+ virtual void ShellExecuteEx( const char *command, const char *file, const char *pParams ) = 0;
+
+ // Copy a portion of the application client area to the clipboard
+ // (x1,y1) specifies the top-left corner of the client rect to copy
+ // (x2,y2) specifies the bottom-right corner of the client rect to copy
+ // Requires: x2 > x1 && y2 > y1
+ // Dimensions of the copied rectangle are (x2 - x1) x (y2 - y1)
+ // Pixel at (x1,y1) is copied, pixels at column x2 and row y2 are *not* copied
+ virtual void SetClipboardImage( void *pWnd, int x1, int y1, int x2, int y2 ) = 0;
+};
+
+}
+
+#define VGUI_SYSTEM_INTERFACE_VERSION "VGUI_System010"
+
+
+#endif // ISYSTEM_H
diff --git a/mp/src/public/vgui/IVGui.h b/mp/src/public/vgui/IVGui.h
index e512538a..18d90bd8 100644
--- a/mp/src/public/vgui/IVGui.h
+++ b/mp/src/public/vgui/IVGui.h
@@ -1,109 +1,109 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef IVGUI_H
-#define IVGUI_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "tier1/interface.h"
-#include <vgui/VGUI.h>
-
-#include "appframework/IAppSystem.h"
-
-class KeyValues;
-
-namespace vgui
-{
-
-// safe handle to a panel - can be converted to and from a VPANEL
-typedef unsigned long HPanel;
-typedef int HContext;
-
-enum
-{
- DEFAULT_VGUI_CONTEXT = ((vgui::HContext)~0)
-};
-
-// safe handle to a panel - can be converted to and from a VPANEL
-typedef unsigned long HPanel;
-
-//-----------------------------------------------------------------------------
-// Purpose: Interface to core vgui components
-//-----------------------------------------------------------------------------
-class IVGui : public IAppSystem
-{
-public:
- // activates vgui message pump
- virtual void Start() = 0;
-
- // signals vgui to Stop running
- virtual void Stop() = 0;
-
- // returns true if vgui is current active
- virtual bool IsRunning() = 0;
-
- // runs a single frame of vgui
- virtual void RunFrame() = 0;
-
- // broadcasts "ShutdownRequest" "id" message to all top-level panels in the app
- virtual void ShutdownMessage(unsigned int shutdownID) = 0;
-
- // panel allocation
- virtual VPANEL AllocPanel() = 0;
- virtual void FreePanel(VPANEL panel) = 0;
-
- // debugging prints
- virtual void DPrintf(PRINTF_FORMAT_STRING const char *format, ...) = 0;
- virtual void DPrintf2(PRINTF_FORMAT_STRING const char *format, ...) = 0;
- virtual void SpewAllActivePanelNames() = 0;
-
- // safe-pointer handle methods
- virtual HPanel PanelToHandle(VPANEL panel) = 0;
- virtual VPANEL HandleToPanel(HPanel index) = 0;
- virtual void MarkPanelForDeletion(VPANEL panel) = 0;
-
- // makes panel receive a 'Tick' message every frame (~50ms, depending on sleep times/framerate)
- // panel is automatically removed from tick signal list when it's deleted
- virtual void AddTickSignal(VPANEL panel, int intervalMilliseconds = 0 ) = 0;
- virtual void RemoveTickSignal(VPANEL panel) = 0;
-
- // message sending
- virtual void PostMessage(VPANEL target, KeyValues *params, VPANEL from, float delaySeconds = 0.0f) = 0;
-
- // Creates/ destroys vgui contexts, which contains information
- // about which controls have mouse + key focus, for example.
- virtual HContext CreateContext() = 0;
- virtual void DestroyContext( HContext context ) = 0;
-
- // Associates a particular panel with a vgui context
- // Associating NULL is valid; it disconnects the panel from the context
- virtual void AssociatePanelWithContext( HContext context, VPANEL pRoot ) = 0;
-
- // Activates a particular context, use DEFAULT_VGUI_CONTEXT
- // to get the one normally used by VGUI
- virtual void ActivateContext( HContext context ) = 0;
-
- // whether to sleep each frame or not, true = sleep
- virtual void SetSleep( bool state) = 0;
-
- // data accessor for above
- virtual bool GetShouldVGuiControlSleep() = 0;
-
- // enables VR mode
- virtual void SetVRMode( bool bVRMode ) = 0;
- virtual bool GetVRMode() = 0;
-};
-
-#define VGUI_IVGUI_INTERFACE_VERSION "VGUI_ivgui008"
-
-};
-
-
-#endif // IVGUI_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef IVGUI_H
+#define IVGUI_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier1/interface.h"
+#include <vgui/VGUI.h>
+
+#include "appframework/IAppSystem.h"
+
+class KeyValues;
+
+namespace vgui
+{
+
+// safe handle to a panel - can be converted to and from a VPANEL
+typedef unsigned long HPanel;
+typedef int HContext;
+
+enum
+{
+ DEFAULT_VGUI_CONTEXT = ((vgui::HContext)~0)
+};
+
+// safe handle to a panel - can be converted to and from a VPANEL
+typedef unsigned long HPanel;
+
+//-----------------------------------------------------------------------------
+// Purpose: Interface to core vgui components
+//-----------------------------------------------------------------------------
+class IVGui : public IAppSystem
+{
+public:
+ // activates vgui message pump
+ virtual void Start() = 0;
+
+ // signals vgui to Stop running
+ virtual void Stop() = 0;
+
+ // returns true if vgui is current active
+ virtual bool IsRunning() = 0;
+
+ // runs a single frame of vgui
+ virtual void RunFrame() = 0;
+
+ // broadcasts "ShutdownRequest" "id" message to all top-level panels in the app
+ virtual void ShutdownMessage(unsigned int shutdownID) = 0;
+
+ // panel allocation
+ virtual VPANEL AllocPanel() = 0;
+ virtual void FreePanel(VPANEL panel) = 0;
+
+ // debugging prints
+ virtual void DPrintf(PRINTF_FORMAT_STRING const char *format, ...) = 0;
+ virtual void DPrintf2(PRINTF_FORMAT_STRING const char *format, ...) = 0;
+ virtual void SpewAllActivePanelNames() = 0;
+
+ // safe-pointer handle methods
+ virtual HPanel PanelToHandle(VPANEL panel) = 0;
+ virtual VPANEL HandleToPanel(HPanel index) = 0;
+ virtual void MarkPanelForDeletion(VPANEL panel) = 0;
+
+ // makes panel receive a 'Tick' message every frame (~50ms, depending on sleep times/framerate)
+ // panel is automatically removed from tick signal list when it's deleted
+ virtual void AddTickSignal(VPANEL panel, int intervalMilliseconds = 0 ) = 0;
+ virtual void RemoveTickSignal(VPANEL panel) = 0;
+
+ // message sending
+ virtual void PostMessage(VPANEL target, KeyValues *params, VPANEL from, float delaySeconds = 0.0f) = 0;
+
+ // Creates/ destroys vgui contexts, which contains information
+ // about which controls have mouse + key focus, for example.
+ virtual HContext CreateContext() = 0;
+ virtual void DestroyContext( HContext context ) = 0;
+
+ // Associates a particular panel with a vgui context
+ // Associating NULL is valid; it disconnects the panel from the context
+ virtual void AssociatePanelWithContext( HContext context, VPANEL pRoot ) = 0;
+
+ // Activates a particular context, use DEFAULT_VGUI_CONTEXT
+ // to get the one normally used by VGUI
+ virtual void ActivateContext( HContext context ) = 0;
+
+ // whether to sleep each frame or not, true = sleep
+ virtual void SetSleep( bool state) = 0;
+
+ // data accessor for above
+ virtual bool GetShouldVGuiControlSleep() = 0;
+
+ // enables VR mode
+ virtual void SetVRMode( bool bVRMode ) = 0;
+ virtual bool GetVRMode() = 0;
+};
+
+#define VGUI_IVGUI_INTERFACE_VERSION "VGUI_ivgui008"
+
+};
+
+
+#endif // IVGUI_H
diff --git a/mp/src/public/vgui/IVguiMatInfo.h b/mp/src/public/vgui/IVguiMatInfo.h
index 8d425bb1..2bfbe2d3 100644
--- a/mp/src/public/vgui/IVguiMatInfo.h
+++ b/mp/src/public/vgui/IVguiMatInfo.h
@@ -1,30 +1,30 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IVGUIMATINFO_H
-#define IVGUIMATINFO_H
-
-#include "IVguiMatInfoVar.h"
-
-// wrapper for IMaterial
-class IVguiMatInfo
-{
-public:
- // Add a virtual destructor to silence the clang warning.
- // This is harmless but not important since the only derived class
- // doesn't have a destructor.
- virtual ~IVguiMatInfo() {}
-
- // make sure to delete the returned object after use!
- virtual IVguiMatInfoVar* FindVarFactory ( const char *varName, bool *found ) = 0;
-
- virtual int GetNumAnimationFrames ( ) = 0;
-
- // todo: if you need to add more IMaterial functions add them here
-};
-
-#endif //IVGUIMATINFO_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IVGUIMATINFO_H
+#define IVGUIMATINFO_H
+
+#include "IVguiMatInfoVar.h"
+
+// wrapper for IMaterial
+class IVguiMatInfo
+{
+public:
+ // Add a virtual destructor to silence the clang warning.
+ // This is harmless but not important since the only derived class
+ // doesn't have a destructor.
+ virtual ~IVguiMatInfo() {}
+
+ // make sure to delete the returned object after use!
+ virtual IVguiMatInfoVar* FindVarFactory ( const char *varName, bool *found ) = 0;
+
+ virtual int GetNumAnimationFrames ( ) = 0;
+
+ // todo: if you need to add more IMaterial functions add them here
+};
+
+#endif //IVGUIMATINFO_H
diff --git a/mp/src/public/vgui/IVguiMatInfoVar.h b/mp/src/public/vgui/IVguiMatInfoVar.h
index d4adb8f8..319d39de 100644
--- a/mp/src/public/vgui/IVguiMatInfoVar.h
+++ b/mp/src/public/vgui/IVguiMatInfoVar.h
@@ -1,27 +1,27 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef IVGUIMATINFOVAR_H
-#define IVGUIMATINFOVAR_H
-
-
-// wrapper for IMaterialVar
-class IVguiMatInfoVar
-{
-public:
- // Add a virtual destructor to silence the clang warning.
- // This is harmless but not important since the only derived class
- // doesn't have a destructor.
- virtual ~IVguiMatInfoVar() {}
-
- virtual int GetIntValue ( void ) const = 0;
- virtual void SetIntValue ( int val ) = 0;
-
- // todo: if you need to add more IMaterialVar functions add them here
-};
-
-#endif //IVGUIMATINFOVAR_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IVGUIMATINFOVAR_H
+#define IVGUIMATINFOVAR_H
+
+
+// wrapper for IMaterialVar
+class IVguiMatInfoVar
+{
+public:
+ // Add a virtual destructor to silence the clang warning.
+ // This is harmless but not important since the only derived class
+ // doesn't have a destructor.
+ virtual ~IVguiMatInfoVar() {}
+
+ virtual int GetIntValue ( void ) const = 0;
+ virtual void SetIntValue ( int val ) = 0;
+
+ // todo: if you need to add more IMaterialVar functions add them here
+};
+
+#endif //IVGUIMATINFOVAR_H
diff --git a/mp/src/public/vgui/KeyCode.h b/mp/src/public/vgui/KeyCode.h
index 54eb0520..0e58a5c4 100644
--- a/mp/src/public/vgui/KeyCode.h
+++ b/mp/src/public/vgui/KeyCode.h
@@ -1,24 +1,24 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: this is a map for virtual key codes
-// virtual key codes may exist outside this range for other languages
-// NOTE: Button codes also contain mouse codes, but we won't worry about that
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef KEYCODE_H
-#define KEYCODE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "inputsystem/ButtonCode.h"
-
-namespace vgui
-{
-typedef ButtonCode_t KeyCode;
-}
-
-#endif // KEYCODE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: this is a map for virtual key codes
+// virtual key codes may exist outside this range for other languages
+// NOTE: Button codes also contain mouse codes, but we won't worry about that
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef KEYCODE_H
+#define KEYCODE_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "inputsystem/ButtonCode.h"
+
+namespace vgui
+{
+typedef ButtonCode_t KeyCode;
+}
+
+#endif // KEYCODE_H
diff --git a/mp/src/public/vgui/MouseCode.h b/mp/src/public/vgui/MouseCode.h
index 59e72a81..7ba16214 100644
--- a/mp/src/public/vgui/MouseCode.h
+++ b/mp/src/public/vgui/MouseCode.h
@@ -1,23 +1,23 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: names mouse button inputs
-// NOTE: Button codes also contain key codes, but we won't worry about that
-//
-// $NoKeywords: $
-//===========================================================================//
-
-#ifndef MOUSECODE_H
-#define MOUSECODE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "inputsystem/ButtonCode.h"
-
-namespace vgui
-{
-typedef ButtonCode_t MouseCode;
-}
-
-#endif // MOUSECODE_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: names mouse button inputs
+// NOTE: Button codes also contain key codes, but we won't worry about that
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#ifndef MOUSECODE_H
+#define MOUSECODE_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "inputsystem/ButtonCode.h"
+
+namespace vgui
+{
+typedef ButtonCode_t MouseCode;
+}
+
+#endif // MOUSECODE_H
diff --git a/mp/src/public/vgui/Point.h b/mp/src/public/vgui/Point.h
index 8e23f022..96cd64d1 100644
--- a/mp/src/public/vgui/Point.h
+++ b/mp/src/public/vgui/Point.h
@@ -1,61 +1,61 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef POINT_H
-#define POINT_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include <vgui/VGUI.h>
-
-namespace vgui
-{
-
-//-----------------------------------------------------------------------------
-// Purpose: Basic handler for a Points in 2 dimensions
-// This class is fully inline
-//-----------------------------------------------------------------------------
-class Point
-{
-public:
- // constructors
- Point()
- {
- SetPoint(0, 0);
- }
- Point(int x,int y)
- {
- SetPoint(x,y);
- }
-
- void SetPoint(int x1, int y1)
- {
- x=x1;
- y=y1;
- }
-
- void GetPoint(int &x1, int &y1) const
- {
- x1 = x;
- y1 = y;
-
- }
-
- bool operator == (Point &rhs) const
- {
- return (x == rhs.x && y == rhs.y);
- }
-
-private:
- int x, y;
-};
-
-} // namespace vgui
-
-#endif // POINT_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef POINT_H
+#define POINT_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <vgui/VGUI.h>
+
+namespace vgui
+{
+
+//-----------------------------------------------------------------------------
+// Purpose: Basic handler for a Points in 2 dimensions
+// This class is fully inline
+//-----------------------------------------------------------------------------
+class Point
+{
+public:
+ // constructors
+ Point()
+ {
+ SetPoint(0, 0);
+ }
+ Point(int x,int y)
+ {
+ SetPoint(x,y);
+ }
+
+ void SetPoint(int x1, int y1)
+ {
+ x=x1;
+ y=y1;
+ }
+
+ void GetPoint(int &x1, int &y1) const
+ {
+ x1 = x;
+ y1 = y;
+
+ }
+
+ bool operator == (Point &rhs) const
+ {
+ return (x == rhs.x && y == rhs.y);
+ }
+
+private:
+ int x, y;
+};
+
+} // namespace vgui
+
+#endif // POINT_H
diff --git a/mp/src/public/vgui/VGUI.h b/mp/src/public/vgui/VGUI.h
index 706e4cb0..cd2e9650 100644
--- a/mp/src/public/vgui/VGUI.h
+++ b/mp/src/public/vgui/VGUI.h
@@ -1,81 +1,81 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Basic header for using vgui
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef VGUI_H
-#define VGUI_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#define null 0L
-
-#ifndef NULL
-#ifdef __cplusplus
-#define NULL 0
-#else
-#define NULL ((void *)0)
-#endif
-#endif
-
-#pragma warning( disable: 4800 ) // disables 'performance warning converting int to bool'
-#pragma warning( disable: 4786 ) // disables 'identifier truncated in browser information' warning
-#pragma warning( disable: 4355 ) // disables 'this' : used in base member initializer list
-#pragma warning( disable: 4097 ) // warning C4097: typedef-name 'BaseClass' used as synonym for class-name
-#pragma warning( disable: 4514 ) // warning C4514: 'Color::Color' : unreferenced inline function has been removed
-#pragma warning( disable: 4100 ) // warning C4100: 'code' : unreferenced formal parameter
-#pragma warning( disable: 4127 ) // warning C4127: conditional expression is constant
-
-typedef unsigned char uchar;
-typedef unsigned short ushort;
-typedef unsigned int uint;
-typedef unsigned long ulong;
-
-#ifndef _WCHAR_T_DEFINED
-// DAL - wchar_t is a built in define in gcc 3.2 with a size of 4 bytes
-#if !defined( __x86_64__ ) && !defined( __WCHAR_TYPE__ )
-typedef unsigned short wchar_t;
-#define _WCHAR_T_DEFINED
-#endif
-#endif
-
-// do this in GOLDSRC only!!!
-//#define Assert assert
-
-namespace vgui
-{
-// handle to an internal vgui panel
-// this is the only handle to a panel that is valid across dll boundaries
-typedef unsigned int VPANEL;
-
-// handles to vgui objects
-// NULL values signify an invalid value
-typedef unsigned long HScheme;
-// Both -1 and 0 are used for invalid textures. Be careful.
-typedef unsigned long HTexture;
-typedef unsigned long HCursor;
-typedef unsigned long HPanel;
-const HPanel INVALID_PANEL = 0xffffffff;
-typedef unsigned long HFont;
-const HFont INVALID_FONT = 0; // the value of an invalid font handle
-}
-
-#include "tier1/strtools.h"
-
-#if defined( OSX ) // || defined( LINUX )
-// Set to 1 to use GetKernedCharWidth() instead of GetCharABCwide(). Alfred
-// initially started using that code on the Mac because it did better
-// kerning, but he was a leery about switching win32 over. I enabled this
-// for Linux, but it causes some strings to look different than Windows. So
-// I've disabled it for now. mikesart - 12/2012.
-#define USE_GETKERNEDCHARWIDTH 1
-#else
-#define USE_GETKERNEDCHARWIDTH 0
-#endif
-
-
-#endif // VGUI_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Basic header for using vgui
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef VGUI_H
+#define VGUI_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#define null 0L
+
+#ifndef NULL
+#ifdef __cplusplus
+#define NULL 0
+#else
+#define NULL ((void *)0)
+#endif
+#endif
+
+#pragma warning( disable: 4800 ) // disables 'performance warning converting int to bool'
+#pragma warning( disable: 4786 ) // disables 'identifier truncated in browser information' warning
+#pragma warning( disable: 4355 ) // disables 'this' : used in base member initializer list
+#pragma warning( disable: 4097 ) // warning C4097: typedef-name 'BaseClass' used as synonym for class-name
+#pragma warning( disable: 4514 ) // warning C4514: 'Color::Color' : unreferenced inline function has been removed
+#pragma warning( disable: 4100 ) // warning C4100: 'code' : unreferenced formal parameter
+#pragma warning( disable: 4127 ) // warning C4127: conditional expression is constant
+
+typedef unsigned char uchar;
+typedef unsigned short ushort;
+typedef unsigned int uint;
+typedef unsigned long ulong;
+
+#ifndef _WCHAR_T_DEFINED
+// DAL - wchar_t is a built in define in gcc 3.2 with a size of 4 bytes
+#if !defined( __x86_64__ ) && !defined( __WCHAR_TYPE__ )
+typedef unsigned short wchar_t;
+#define _WCHAR_T_DEFINED
+#endif
+#endif
+
+// do this in GOLDSRC only!!!
+//#define Assert assert
+
+namespace vgui
+{
+// handle to an internal vgui panel
+// this is the only handle to a panel that is valid across dll boundaries
+typedef unsigned int VPANEL;
+
+// handles to vgui objects
+// NULL values signify an invalid value
+typedef unsigned long HScheme;
+// Both -1 and 0 are used for invalid textures. Be careful.
+typedef unsigned long HTexture;
+typedef unsigned long HCursor;
+typedef unsigned long HPanel;
+const HPanel INVALID_PANEL = 0xffffffff;
+typedef unsigned long HFont;
+const HFont INVALID_FONT = 0; // the value of an invalid font handle
+}
+
+#include "tier1/strtools.h"
+
+#if defined( OSX ) // || defined( LINUX )
+// Set to 1 to use GetKernedCharWidth() instead of GetCharABCwide(). Alfred
+// initially started using that code on the Mac because it did better
+// kerning, but he was a leery about switching win32 over. I enabled this
+// for Linux, but it causes some strings to look different than Windows. So
+// I've disabled it for now. mikesart - 12/2012.
+#define USE_GETKERNEDCHARWIDTH 1
+#else
+#define USE_GETKERNEDCHARWIDTH 0
+#endif
+
+
+#endif // VGUI_H
diff --git a/mp/src/public/vgui/ipainthtml.h b/mp/src/public/vgui/ipainthtml.h
index 35718fc1..f30892e3 100644
--- a/mp/src/public/vgui/ipainthtml.h
+++ b/mp/src/public/vgui/ipainthtml.h
@@ -1,54 +1,54 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-#ifndef IPAINTHTML_H
-#define IPAINTHTML_H
-
-class IPaintHTML
-{
-public:
- enum EPaintTarget
- {
- ePaintBrowser,
- ePaintPopup,
- ePaintMAX
- };
- // returns the texture id used, pass in -1 to create a new texture
- virtual int DrawSubTextureRGBA( EPaintTarget eTarget, int textureID, int x, int y, const unsigned char *pRGBA, int wide, int tall ) = 0;
- virtual void DeleteTexture( EPaintTarget eTarget, int textureID ) = 0;
-};
-
-class IInputEventHTML
-{
-public:
- enum EMouseButton
- {
- eButtonLeft,
- eButtonMiddle,
- eButtonRight
- };
-
- virtual bool ChromeHandleMouseClick( EMouseButton eButton, bool bUp, int nClickCount ) = 0;
- virtual bool ChromeHandleMouseMove( int x, int y ) = 0;
- virtual bool ChromeHandleMouseWheel( int delta ) = 0;
-
- enum EKeyType
- {
- KeyDown,
- KeyUp,
- Char
- };
- enum EKeyModifier
- {
- AltDown = 1,
- CrtlDown = 2,
- ShiftDown = 4,
- };
-
- virtual bool ChromeHandleKeyEvent( EKeyType type, int key, int modifiers, bool bKeyUp ) = 0;
-};
-
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+#ifndef IPAINTHTML_H
+#define IPAINTHTML_H
+
+class IPaintHTML
+{
+public:
+ enum EPaintTarget
+ {
+ ePaintBrowser,
+ ePaintPopup,
+ ePaintMAX
+ };
+ // returns the texture id used, pass in -1 to create a new texture
+ virtual int DrawSubTextureRGBA( EPaintTarget eTarget, int textureID, int x, int y, const unsigned char *pRGBA, int wide, int tall ) = 0;
+ virtual void DeleteTexture( EPaintTarget eTarget, int textureID ) = 0;
+};
+
+class IInputEventHTML
+{
+public:
+ enum EMouseButton
+ {
+ eButtonLeft,
+ eButtonMiddle,
+ eButtonRight
+ };
+
+ virtual bool ChromeHandleMouseClick( EMouseButton eButton, bool bUp, int nClickCount ) = 0;
+ virtual bool ChromeHandleMouseMove( int x, int y ) = 0;
+ virtual bool ChromeHandleMouseWheel( int delta ) = 0;
+
+ enum EKeyType
+ {
+ KeyDown,
+ KeyUp,
+ Char
+ };
+ enum EKeyModifier
+ {
+ AltDown = 1,
+ CrtlDown = 2,
+ ShiftDown = 4,
+ };
+
+ virtual bool ChromeHandleKeyEvent( EKeyType type, int key, int modifiers, bool bKeyUp ) = 0;
+};
+
#endif // IPAINTHTML_H \ No newline at end of file
diff --git a/mp/src/public/vgui/keyrepeat.h b/mp/src/public/vgui/keyrepeat.h
index 0198a007..874cc033 100644
--- a/mp/src/public/vgui/keyrepeat.h
+++ b/mp/src/public/vgui/keyrepeat.h
@@ -1,47 +1,47 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-//=============================================================================
-
-#ifndef KEYREPEAT_H
-#define KEYREPEAT_H
-#ifdef _WIN32
-#pragma once
-#endif
-
-namespace vgui
-{
-
-enum KEYREPEAT_ALIASES
-{
- KR_ALIAS_UP,
- KR_ALIAS_DOWN,
- KR_ALIAS_LEFT,
- KR_ALIAS_RIGHT,
-
- FM_NUM_KEYREPEAT_ALIASES,
-};
-
-class CKeyRepeatHandler
-{
-public:
- CKeyRepeatHandler();
-
- void Reset();
- void KeyDown( vgui::KeyCode code );
- void KeyUp( vgui::KeyCode code );
- vgui::KeyCode KeyRepeated();
- void SetKeyRepeatTime( vgui::KeyCode code, float flRepeat );
-
-private:
- bool m_bAliasDown[MAX_JOYSTICKS][FM_NUM_KEYREPEAT_ALIASES];
- float m_flRepeatTimes[FM_NUM_KEYREPEAT_ALIASES];
- float m_flNextKeyRepeat[MAX_JOYSTICKS];
- bool m_bHaveKeyDown;
-};
-
-
-} // namespace vgui
-
-#endif // KEYREPEAT_H
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+#ifndef KEYREPEAT_H
+#define KEYREPEAT_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+namespace vgui
+{
+
+enum KEYREPEAT_ALIASES
+{
+ KR_ALIAS_UP,
+ KR_ALIAS_DOWN,
+ KR_ALIAS_LEFT,
+ KR_ALIAS_RIGHT,
+
+ FM_NUM_KEYREPEAT_ALIASES,
+};
+
+class CKeyRepeatHandler
+{
+public:
+ CKeyRepeatHandler();
+
+ void Reset();
+ void KeyDown( vgui::KeyCode code );
+ void KeyUp( vgui::KeyCode code );
+ vgui::KeyCode KeyRepeated();
+ void SetKeyRepeatTime( vgui::KeyCode code, float flRepeat );
+
+private:
+ bool m_bAliasDown[MAX_JOYSTICKS][FM_NUM_KEYREPEAT_ALIASES];
+ float m_flRepeatTimes[FM_NUM_KEYREPEAT_ALIASES];
+ float m_flNextKeyRepeat[MAX_JOYSTICKS];
+ bool m_bHaveKeyDown;
+};
+
+
+} // namespace vgui
+
+#endif // KEYREPEAT_H