project64/Source/Project64/UserInterface/WTLControls/ModifiedCheckBox.h

86 lines
2.0 KiB
C
Raw Normal View History

2012-12-19 09:30:18 +00:00
/****************************************************************************
* *
2015-11-10 05:21:49 +00:00
* Project64 - A Nintendo 64 emulator. *
2012-12-19 09:30:18 +00:00
* http://www.pj64-emu.com/ *
* Copyright (C) 2012 Project64. All rights reserved. *
* *
* License: *
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
* *
****************************************************************************/
#pragma once
class CModifiedButton :
public CButton
{
bool m_Changed;
bool m_Reset;
HFONT m_BoldFont;
HFONT m_OriginalFont;
public:
// Constructors
CModifiedButton(HWND hWnd = NULL) :
CButton(hWnd),
m_Changed(false),
m_Reset(false),
m_BoldFont(NULL),
m_OriginalFont(NULL)
{
}
~CModifiedButton()
{
if (m_BoldFont)
{
DeleteObject(m_BoldFont);
}
}
void SetReset (bool Reset)
{
m_Reset = Reset;
if (m_Reset)
{
SetChanged(false);
}
}
void SetChanged (bool Changed)
{
m_Changed = Changed;
if (m_Changed)
{
SetReset(false);
if (m_BoldFont == NULL)
{
m_OriginalFont = (HFONT)SendMessage(WM_GETFONT);
LOGFONT lfSystemVariableFont;
GetObject ( m_OriginalFont, sizeof(LOGFONT), &lfSystemVariableFont );
lfSystemVariableFont.lfWeight = FW_BOLD;
m_BoldFont = CreateFontIndirect ( &lfSystemVariableFont );
}
SendMessage(WM_SETFONT,(WPARAM)m_BoldFont);
InvalidateRect(NULL);
} else {
if (m_OriginalFont)
{
SendMessage(WM_SETFONT,(WPARAM)m_OriginalFont);
InvalidateRect(NULL);
}
}
}
inline bool IsChanged ( void ) const
{
return m_Changed;
}
inline bool IsReset ( void ) const
{
return m_Reset;
}
};