mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
//========= 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 CDrawHelper;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// 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( CDrawHelper& 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
|
||||
Reference in New Issue
Block a user