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 TOOLWINDOWFACTORY_H
#define TOOLWINDOWFACTORY_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui_controls/ToolWindow.h"
#include "vgui/IInput.h"
#define TOOLWINDOW_DEFAULT_WIDTH 640
#define TOOLWINDOW_DEFAULT_HEIGHT 480
#define TOOLWINDOW_MIN_WIDTH 120
#define TOOLWINDOW_MIN_HEIGHT 80
template < class T > class CToolWindowFactory : public vgui::IToolWindowFactory { public: virtual vgui::ToolWindow *InstanceToolWindow ( vgui::Panel *parent, bool contextLabel, // Tool window shows context button for pages with context menus?
vgui::Panel *firstPage, char const *title, bool contextMenu // Page has context menu
); };
//-----------------------------------------------------------------------------
// Methods related to CToolWindowFactory
//-----------------------------------------------------------------------------
template < class T > vgui::ToolWindow *CToolWindowFactory<T>::InstanceToolWindow( vgui::Panel *parent, bool contextLabel, vgui::Panel *firstPage, char const *title, bool contextMenu ) { Assert( parent ); if ( !parent ) return NULL;
int mx, my; vgui::input()->GetCursorPos( mx, my ); parent->ScreenToLocal( mx, my );
T *container = new T( parent, contextLabel, this, firstPage, title, contextMenu ); Assert( container ); if ( container ) { container->SetBounds( mx, my, TOOLWINDOW_DEFAULT_WIDTH, TOOLWINDOW_DEFAULT_HEIGHT ); container->SetMinimumSize( TOOLWINDOW_MIN_WIDTH, TOOLWINDOW_MIN_HEIGHT ); } return container; }
#endif // TOOLWINDOWFACTORY_H
|