Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef BASEANIMSETCONTROLGROUPPANEL_H
#define BASEANIMSETCONTROLGROUPPANEL_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui_controls/EditablePanel.h"
#include "datamodel/dmehandle.h"
#include "tier1/utlntree.h"
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class CBaseAnimationSetEditor; class CDmeAnimationSet;
namespace vgui { class TreeView; class IScheme; class Menu; };
//-----------------------------------------------------------------------------
// Panel which shows a tree of controls
//-----------------------------------------------------------------------------
class CBaseAnimSetControlGroupPanel : public vgui::EditablePanel { DECLARE_CLASS_SIMPLE( CBaseAnimSetControlGroupPanel, EditablePanel ); public: CBaseAnimSetControlGroupPanel( vgui::Panel *parent, char const *className, CBaseAnimationSetEditor *editor ); virtual ~CBaseAnimSetControlGroupPanel();
void ChangeAnimationSet( CDmeAnimationSet *newAnimSet ); virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
protected:
MESSAGE_FUNC_INT( OnTreeViewItemSelected, "TreeViewItemSelected", itemIndex ); MESSAGE_FUNC_INT( OnTreeViewItemDeselected, "TreeViewItemDeselected", itemIndex ); MESSAGE_FUNC( OnTreeViewItemSelectionCleared, "TreeViewItemSelectionCleared" );
protected: enum { EP_EXPANDED = (1<<0), EP_SELECTED = (1<<1), };
struct TreeItem_t { TreeItem_t() : m_pAttributeName() {} CUtlString m_pAttributeName; };
// Used to build a list of open element for refresh
struct TreeInfo_t { TreeInfo_t() : m_nFlags( 0 ) {} TreeItem_t m_Item; // points to the element referenced in an element array
int m_nFlags; };
typedef CUtlNTree< TreeInfo_t, int > OpenItemTree_t; // Expands all items in the open item tree if they exist
void ExpandOpenItems( OpenItemTree_t &tree, int nOpenTreeIndex, int nItemIndex, bool makeVisible ); // Builds a list of open items
void BuildOpenItemList( OpenItemTree_t &tree, int nParent, int nItemIndex ); void FillInDataForItem( TreeItem_t &item, int nItemIndex ); // Finds the tree index of a child matching the particular element + attribute
int FindTreeItem( int nParentIndex, const TreeItem_t &info );
vgui::DHANDLE< CBaseAnimationSetEditor > m_hEditor;
vgui::DHANDLE< vgui::TreeView > m_hGroups; CUtlVector< int > m_hSelectableIndices;
CDmeHandle< CDmeAnimationSet > m_AnimSet;
bool m_bStartItemWasSelected; CUtlVector< int > m_SavedSelectedGroups; CUtlSymbolTable m_SliderNames; CUtlVector< CDmeHandle< CDmElement > > m_GroupList;
friend class CAnimGroupTree; };
#endif // BASEANIMSETCONTROLGROUPPANEL_H
|