initial
This commit is contained in:
96
utils/hlfaceposer/mxbitmapbutton.cpp
Normal file
96
utils/hlfaceposer/mxbitmapbutton.cpp
Normal file
@@ -0,0 +1,96 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#include "mxBitmapButton.h"
|
||||
#include "hlfaceposer.h"
|
||||
|
||||
|
||||
mxBitmapButton::mxBitmapButton( mxWindow *parent, int x, int y, int w, int h, int id /*= 0*/, const char *bitmap /* = 0 */ )
|
||||
: mxWindow( parent, x, y, w, h, "" )
|
||||
{
|
||||
setId( id );
|
||||
|
||||
m_bmImage.valid = false;
|
||||
|
||||
SetImage( bitmap );
|
||||
|
||||
HWND wnd = (HWND)getHandle();
|
||||
|
||||
DWORD style = GetWindowLong( wnd, GWL_STYLE );
|
||||
style |= WS_CLIPSIBLINGS;
|
||||
SetWindowLong( wnd, GWL_STYLE, style );
|
||||
}
|
||||
|
||||
mxBitmapButton::~mxBitmapButton( void )
|
||||
{
|
||||
DeleteImage();
|
||||
}
|
||||
|
||||
void mxBitmapButton::redraw()
|
||||
{
|
||||
HWND wnd = (HWND)getHandle();
|
||||
if ( !wnd )
|
||||
return;
|
||||
|
||||
if ( !m_bmImage.valid )
|
||||
return;
|
||||
|
||||
RECT rc;
|
||||
GetClientRect( wnd, &rc );
|
||||
|
||||
HDC dc = GetDC( wnd );
|
||||
|
||||
DrawBitmapToDC( dc, 0, 0, w(), h(), m_bmImage );
|
||||
|
||||
ReleaseDC( wnd, dc );
|
||||
|
||||
ValidateRect( wnd, &rc );
|
||||
}
|
||||
|
||||
int mxBitmapButton::handleEvent( mxEvent * event )
|
||||
{
|
||||
int iret = 0;
|
||||
|
||||
switch (event->event)
|
||||
{
|
||||
case mxEvent::MouseUp:
|
||||
// Send message to parent
|
||||
HWND parent = (HWND)( getParent() ? getParent()->getHandle() : NULL );
|
||||
if ( parent )
|
||||
{
|
||||
LPARAM lp;
|
||||
WPARAM wp;
|
||||
|
||||
wp = MAKEWPARAM( getId(), BN_CLICKED );
|
||||
lp = (long)getHandle();
|
||||
|
||||
SendMessage( parent, WM_COMMAND, wp, lp );
|
||||
iret = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return iret;
|
||||
}
|
||||
|
||||
void mxBitmapButton::SetImage( const char *bitmapname )
|
||||
{
|
||||
if ( m_bmImage.valid )
|
||||
{
|
||||
DeleteImage();
|
||||
}
|
||||
|
||||
LoadBitmapFromFile( bitmapname, m_bmImage );
|
||||
}
|
||||
|
||||
void mxBitmapButton::DeleteImage( void )
|
||||
{
|
||||
if ( m_bmImage.valid )
|
||||
{
|
||||
DeleteObject( m_bmImage.image );
|
||||
m_bmImage.valid = false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user