gs_ui_button.cpp
字号:
// GS_UI_Button.cpp: implementation of the GS_UI_Button class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GsUI.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
GS_UI_Button::GS_UI_Button(CGsUIPanel* pParent)
:CGsUIPanel(pParent)
{
m_key_style = "button";
// m_image_normal = NULL;
// m_image_normal_touch = NULL;
// m_image_press = NULL;
// m_image_press_touch = NULL;
}
GS_UI_Button::~GS_UI_Button()
{
}
BOOL GS_UI_Button::HitTest_Press(GPOINT point)
{
return is_point_in_rect(point, m_rcHeader);
}
ID GS_UI_Button::OnMouseMove( UINT nFlags, GPOINT point )
{
ID idRet = CGsUIPanel::OnMouseMove(nFlags, point);
return idRet;
}
ID GS_UI_Button::OnLButtonDown( UINT nFlags, GPOINT point )
{
BOOL bPress = m_isPress;
ID idRet = CGsUIPanel::OnLButtonDown(nFlags, point);
// m_isPress =
if(bPress!=m_isPress)
OnPress(m_isPress);
return idRet;
}
ID GS_UI_Button::OnLButtonUp( UINT nFlags, GPOINT point )
{
ID idRet = CGsUIPanel::OnLButtonUp(nFlags, point);
return idRet;
}
ID GS_UI_Button::OnLButtonDbClk(UINT nFlags, GPOINT point)
{
ID idRet = CGsUIPanel::OnLButtonDbClk(nFlags, point);
// if(HitTest_Press(point))
// {
// if(!m_isButtonOrCheckbox)
// {
// m_isChecked ^= 1;
// }
// OnClick();
// }
return idRet;
}
HRESULT GS_UI_Button::OnDraw(GPOINT point)
{
if(NULL==m_pEngine)
return E_FAIL;
if(m_pImage)
m_pImage->Draw(point.x, point.y, m_isBackLayer ? 1.0f : 0.0f);
return S_OK;
}
BOOL GS_UI_Button::Restore()
{
if(!CGsUIPanel::Restore())
return FALSE;
OnTouch(m_isTouch);
SetBackMost();
return TRUE;
}
BOOL GS_UI_Button::OnSaveConfig(CConfig &cfg)
{
BOOL bRet = CGsUIPanel::OnSaveConfig(cfg);
return bRet;
}
VOID GS_UI_Button::Cleanup()
{
CGsUIPanel::Cleanup();
}
LONG GS_UI_Button::OnUpdate()
{
// m_image_normal.Update();
// m_image_normal_touch.Update();
if(m_pImage)
m_pImage->Update();
return CGsUIPanel::OnUpdate();
}
VOID GS_UI_Button::OnTouch(BOOL bTouch)
{
if(m_isTouch)
{
if(m_isPress || m_isChecked)
{
if(m_image_press_touch.IsReady())
m_pImage = &m_image_press_touch;
}
else
{
if(m_image_normal_touch.IsReady())
m_pImage = &m_image_normal_touch;
}
}
else
{
if(m_isPress || m_isChecked)
{
if(m_image_press.IsReady())
m_pImage = &m_image_press_touch;
}
else
{
if(m_image_normal.IsReady())
m_pImage = &m_image_normal_touch;
}
}
if(m_pImage)
m_pImage->Play(GS_ANI_PLAY_LOOP);
//To do: sound...
}
VOID GS_UI_Button::OnPress(BOOL bPress)
{
if(m_isTouch)
{
if(m_isPress || m_isChecked)
{
if(m_image_press_touch.IsReady())
m_pImage = &m_image_press_touch;
}
else
{
if(m_image_normal_touch.IsReady())
m_pImage = &m_image_normal_touch;
}
}
else
{
if(m_isPress || m_isChecked)
{
if(m_image_press.IsReady())
m_pImage = &m_image_press_touch;
}
else
{
if(m_image_normal.IsReady())
m_pImage = &m_image_normal_touch;
}
}
if(m_pImage)
m_pImage->Play(GS_ANI_PLAY_LOOP);
//To do: sound...
}
/*
VOID GS_UI_Button::SetImage(const char *strKey, const char *strImage)
{
CGsUIPanel::SetImage(strKey, strImage);
if(strKey && KEY("press")==KEY(strKey))
{
m_image_press.SetGsEngine(m_pEngine);
m_image_press.Create(strImage);
return;
}
if(strKey && KEY("press_touch")==KEY(strKey))
{
m_image_press_touch.SetGsEngine(m_pEngine);
m_image_press_touch.Create(strImage);
return;
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -