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 OP_OUTPUT_H
#define OP_OUTPUT_H
#pragma once
#include "ObjectPage.h"
#include "Resource.h"
#include "TargetNameCombo.h"
#include "MapEntity.h"
#include "ToolPickEntity.h"
#include "AutoSelCombo.h"
#include "AnchorMgr.h"
#define OUTPUT_LIST_NUM_COLUMNS 6
class COP_Output;
enum SortDirection_t;
//-----------------------------------------------------------------------------
// Purpose: A little glue object that connects the entity picker tool to our dialog.
//-----------------------------------------------------------------------------
class COP_OutputPickEntityTarget : public IPickEntityTarget { public:
void AttachEntityDlg(COP_Output *pDlg) { m_pDlg = pDlg; } void OnNotifyPickEntity(CToolPickEntity *pTool); void AttachDlgItem( int nItem ) { m_nDlgItem = nItem; }
private: int m_nDlgItem; COP_Output *m_pDlg; };
//-----------------------------------------------------------------------------
// Purpose: A list of connections and entites that send them.
//-----------------------------------------------------------------------------
class COutputConnection { public: CEntityConnectionList* m_pConnList; CMapEntityList* m_pEntityList; bool m_bIsValid; bool m_bOwnedByAll; // Connection used by all selected entities
};
class COP_Output : public CObjectPage, public CFilteredComboBox::ICallbacks { public: static CImageList *m_pImageList; static CEntityConnectionList* m_pConnectionBuffer; // Stores connections for copy/pasting
static void EmptyCopyBuffer(void);
public:
DECLARE_DYNCREATE(COP_Output)
// Construction
COP_Output(void); ~COP_Output(void);
virtual void UpdateData( int Mode, PVOID pData, bool bCanEdit ); void SetSelectedConnection(CEntityConnection *pConnection); bool ShouldShowHiddenTargets();
protected:
virtual void OnTextChanged( const char *pText );
void AddEntityConnections(CMapEntity *pEntity, bool bFirst); void AddConnection(CEntityConnection *pConnection); void RemoveAllEntityConnections(void); void UpdateConnectionList(void); void ResizeColumns(void);
void SetSelectedItem(int nItem); void SetSelectedConnections(CEntityConnectionList &List);
// Validation functions
bool ValidateConnections(COutputConnection *pOutputConn, bool bVisibilityCheck); void UpdateValidityButton(void);
// Edit controls
void UpdateEditControls(void); void EnableEditControls(bool bValue = true); void UpdateItemValidity(int nItem); void EnableTarget(bool bEnable); void EnableParam(bool bEnable); bool bSkipEditControlRefresh;
// Functions for updating edited connections
void UpdateEditedInputs(void); void UpdateEditedOutputs(void); void UpdateEditedTargets(void); void UpdateEditedDelays(void); void UpdateEditedFireOnce(void); void UpdateEditedParams(void);
// Fuctions for reacting to combo box changes
void OutputChanged(void); void InputChanged(void);
void SortListByColumn(int nColumn, SortDirection_t eDirection); void SetSortColumn(int nColumn, SortDirection_t eDirection); void UpdateColumnHeaderText(int nColumn, bool bIsSortColumn, SortDirection_t eDirection);
CMapEntityList m_EntityList; // Filtered m_pObjectList that only includes map entities
const CMapEntityList* m_pMapEntityList; // List of all entities in the map.
CEntityConnectionList m_EditList; // List of selected connections being edited
void UpdateEntityList(); // Generates m_EntityList from m_pObjectList
protected: CAnchorMgr m_AnchorMgr; CEditGameClass *m_pEditGameClass; CMapEntity *m_pEntity; bool m_bNoParamEdit;
//
// Cached data for sorting the list view.
//
int m_nSortColumn; // Current column used for sorting.
SortDirection_t m_eSortDirection[OUTPUT_LIST_NUM_COLUMNS]; // Last sort direction per column.
bool m_bPickingEntities;
// ########################################
// Message editing
// ########################################
void SetConnection(CEntityConnectionList *pConnectionList);
void SetMapEntityList(const CMapEntityList *pMapEntityList);
void AddEntityOutputs(CMapEntity *pEntity);
void FillInputList(void); void FillOutputList(void); void FillTargetList(void);
void FilterInputList(void); void FilterOutputList(void); void FilterTargetList(void); void FilterEntityOutputs(CMapEntity *pEntity);
void StopPicking(void);
CClassInput* GetInput(char *szInput, int nSize); CClassOutput* GetOutput(char *szOutput, int nSize); CMapEntityList* GetTarget(char *szTarget, int nSize);
void UpdateCombosForSelectedInput(CClassInput *pInput); void UpdateCombosForSelectedOutput(CClassOutput *pOutput);
// #########################################
//{{AFX_DATA(COP_Output)
enum { IDD = IDD_OBJPAGE_OUTPUT }; CListCtrl m_ListCtrl; CAutoSelComboBox m_ComboOutput; CTargetNameComboBox m_ComboTarget; CAutoSelComboBox m_ComboInput; CButton m_CheckBoxFireOnce; CButton m_ctlShowHiddenTargetsAsBroken; CButton m_AddControl; CButton m_PasteControl; CButton m_DeleteControl;
CString m_strOutput; CString m_strTarget; CString m_strInput; CString m_strParam; float m_fDelay; BOOL m_bFireOnce; //}}AFX_DATA
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(COP_Output)
virtual void DoDataExchange(CDataExchange* pDX); virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT *pResult); virtual BOOL OnInitDialog(void); virtual void OnDestroy(void); //}}AFX_VIRTUAL
// Generated message map functions
//{{AFX_MSG(COP_Output)
afx_msg void OnAdd(void); afx_msg void OnCopy(void); afx_msg void OnPaste(void); afx_msg void OnSize( UINT nType, int cx, int cy ); afx_msg void OnDelete(void); afx_msg void OnMark(void); afx_msg void OnPickEntity(void); afx_msg void OnPickEntityParam(void); afx_msg void OnSelChangeInput(void); afx_msg void OnEditUpdateInput(void); afx_msg void OnSelChangeOutput(void); afx_msg void OnEditUpdateOutput(void); afx_msg void OnSelChangeParam(void); afx_msg void OnEditUpdateParam(void); afx_msg void OnEditDelay(void); afx_msg void OnFireOnce(void); afx_msg void OnShowHiddenTargetsAsBroken(); //}}AFX_MSG
DECLARE_MESSAGE_MAP()
private: bool m_bEntityParamTarget; COP_OutputPickEntityTarget m_PickEntityTarget; CString m_strLastParam; bool m_bIgnoreTextChanged;
friend class COP_OutputPickEntityTarget; public: };
#endif // OP_OUTPUT_H
|