summaryrefslogtreecommitdiff
path: root/utils/hlfaceposer/tabwindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/hlfaceposer/tabwindow.h')
-rw-r--r--utils/hlfaceposer/tabwindow.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/utils/hlfaceposer/tabwindow.h b/utils/hlfaceposer/tabwindow.h
new file mode 100644
index 0000000..28a0447
--- /dev/null
+++ b/utils/hlfaceposer/tabwindow.h
@@ -0,0 +1,102 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef TABWINDOW_H
+#define TABWINDOW_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <mxtk/mx.h>
+#include "utlvector.h"
+
+class CChoreoWidgetDrawHelper;
+
+//-----------------------------------------------------------------------------
+// Purpose: A custom tab control for handling expression class strings
+//-----------------------------------------------------------------------------
+class CTabWindow : public mxWindow
+{
+public:
+ enum
+ {
+ COLOR_BG = 0,
+ COLOR_FG,
+ COLOR_FG_SELECTED,
+ COLOR_HILITE,
+ COLOR_HILITE_SELECTED,
+ COLOR_TEXT,
+ COLOR_TEXT_SELECTED,
+
+ NUM_COLORS
+ };
+
+ CTabWindow( mxWindow *parent, int x, int y, int w, int h, int id = 0, int style = 0 );
+ virtual ~CTabWindow ( void );
+
+ virtual void redraw( void );
+ virtual int handleEvent (mxEvent *event);
+
+ // MANIPULATORS
+ virtual void add (const char *item);
+ virtual void select (int index);
+ virtual void remove (int index);
+ virtual void removeAll ();
+ virtual void setPrefix( int item, char const *prefix );
+
+ // ACCESSORS
+ virtual int getItemCount () const;
+ virtual int getSelectedIndex () const;
+
+ virtual char const *getLabel( int item );
+ virtual char const *getPrefix( int item );
+ virtual void ShowRightClickMenu( int mx, int my ) = 0;
+
+ void SetColor( int index, COLORREF clr );
+
+ void SetInverted( bool invert );
+ void SetRightJustify( bool rightjustify );
+
+ int GetBestHeight( int width );
+ void SetRowHeight( int rowheight );
+
+protected:
+ void GetTabRect( const RECT& rcClient, RECT& tabRect, int tabNum );
+ virtual void DrawTab( CChoreoWidgetDrawHelper& drawHelper, RECT& rcClient, int tabnum, bool selected = false );
+
+ int RecomputeLayout( int windowWidth, bool dolayout = true );
+
+ class CETItem
+ {
+ public:
+ enum
+ {
+ MAX_ET_STRING_LENGTH = 64
+ };
+
+ char m_szString[ MAX_ET_STRING_LENGTH ];
+ char m_szPrefix[ MAX_ET_STRING_LENGTH ];
+ RECT rect;
+ };
+
+ int GetItemUnderMouse( int mx, int my );
+
+ CUtlVector <CETItem> m_Items;
+ int m_nRowsRequired;
+
+ int m_nSelected;
+
+ int m_nTabWidth;
+ int m_nPixelDelta;
+ bool m_bInverted;
+ bool m_bRightJustify;
+
+ COLORREF m_Colors[ NUM_COLORS ];
+
+ int m_nRowHeight;
+};
+#endif // TABWINDOW_H