mirror of
https://github.com/FWGS/hlsdk-xash3d
synced 2024-11-24 18:59:26 +01:00
ba2cab60df
* Get VGUI back (optionally) * Add some missing VGUI invocations * Update CMakeLists.txt to build with vgui for Windows * Move windows.h inclusions only to those places where it's really needed * Try fix mingw build * Update hud_spectator * Merge nekonomicon's vgui branch * Don't include vgui panel and app in cdll_int.cpp if vgui is real * Deduplicate scoreboard global variables * Add options to prefer non-vgui motd and scoreboard when vgui is enabled * Add vgui-dev as a submodule. Add building vith vgui to CI * Fix artifact uploading * Don't use global variable when not necessary * char* to const char* in CMenuHandler_StringCommand constructor * Fix 'format string is not a literal string' warnings * Fix 'always evaluate to true' warnings * Team Fortress classes to const char* * CreateCommandMenu accepts const char* * Fix printf formats. Turn some unsigned longs into unsigned ints since they use only 32 bits anyway * Explicit assignment result as condition * Prevent memory leak on menu reading * Localize button text * Create FileInputStream on stack avoiding the leak * Remove Servers Browser code * Arrow file names to const char* * Fix assignment to the wrong variable
98 lines
1.8 KiB
C++
98 lines
1.8 KiB
C++
//========= Copyright (c) 1996-2002, Valve LLC, All rights reserved. ============
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================
|
|
|
|
#include "vgui_ConsolePanel.h"
|
|
#include "hud.h"
|
|
#include <VGUI_ActionSignal.h>
|
|
#include <VGUI_TextGrid.h>
|
|
#include <VGUI_TextEntry.h>
|
|
#include <VGUI_EtchedBorder.h>
|
|
#include <VGUI_LoweredBorder.h>
|
|
|
|
using namespace vgui;
|
|
|
|
namespace
|
|
{
|
|
|
|
class Handler : public ActionSignal
|
|
{
|
|
private:
|
|
|
|
ConsolePanel *_consolePanel;
|
|
|
|
public:
|
|
|
|
Handler( ConsolePanel *consolePanel )
|
|
{
|
|
_consolePanel = consolePanel;
|
|
}
|
|
|
|
public:
|
|
|
|
virtual void actionPerformed( Panel *panel )
|
|
{
|
|
_consolePanel->doExecCommand();
|
|
}
|
|
};
|
|
|
|
}
|
|
|
|
ConsolePanel::ConsolePanel( int x, int y, int wide, int tall ) : Panel( x, y, wide, tall )
|
|
{
|
|
setBorder( new EtchedBorder() );
|
|
|
|
_textGrid = new TextGrid( 80, 21, 5, 5, 200, 100 );
|
|
_textGrid->setBorder( new LoweredBorder() );
|
|
_textGrid->setParent( this );
|
|
|
|
_textEntry=new TextEntry( "", 5, 5, 200, 20 );
|
|
_textEntry->setParent( this );
|
|
_textEntry->addActionSignal( new Handler( this ) );
|
|
}
|
|
|
|
int ConsolePanel::print( const char *text )
|
|
{
|
|
return _textGrid->printf( "%s", text );
|
|
}
|
|
|
|
int ConsolePanel::vprintf( const char *format, va_list argList )
|
|
{
|
|
return _textGrid->vprintf( format, argList );
|
|
}
|
|
|
|
int ConsolePanel::printf( const char* format, ... )
|
|
{
|
|
va_list argList;
|
|
va_start( argList, format );
|
|
int ret = vprintf( format, argList );
|
|
va_end( argList );
|
|
return ret;
|
|
}
|
|
|
|
void ConsolePanel::doExecCommand()
|
|
{
|
|
char buf[2048];
|
|
_textEntry->getText( 0, buf, sizeof buf );
|
|
_textEntry->setText( null, 0 );
|
|
gEngfuncs.pfnClientCmd( buf );
|
|
}
|
|
|
|
void ConsolePanel::setSize( int wide, int tall )
|
|
{
|
|
Panel::setSize( wide, tall );
|
|
|
|
getPaintSize( wide, tall );
|
|
|
|
_textGrid->setBounds( 5, 5, wide - 10, tall - 35 );
|
|
_textEntry->setBounds( 5, tall - 25, wide - 10, 20 );
|
|
}
|
|
|
|
|
|
|
|
|
|
|