major update

This was SVN commit r290.
This commit is contained in:
Gee
2004-05-29 04:06:50 +00:00
parent 1343010185
commit e326ebae46
31 changed files with 2891 additions and 901 deletions
+69 -25
View File
@@ -22,38 +22,26 @@ IGUIButtonBehavior::~IGUIButtonBehavior()
void IGUIButtonBehavior::HandleMessage(const SGUIMessage &Message)
{
// TODO Gee: easier access functions
switch (Message.type)
{
case GUIM_PREPROCESS:
m_Pressed = false;
break;
/* case GUIM_POSTPROCESS:
// Check if button has been pressed
if (m_Pressed)
{
// Now check if mouse is released, that means
// it's released outside, since GUIM_MOUSE_RELEASE_LEFT
// would've handled m_Pressed and reset it already
// Get input structure
/// if (GetGUI()->GetInput()->mRelease(NEMM_BUTTON1))
{
// Reset
m_Pressed = false;
}
}
break;
*/
case GUIM_MOUSE_PRESS_LEFT:
if (!GetBaseSettings().m_Enabled)
{
bool enabled;
GUI<bool>::GetSetting(this, "enabled", enabled);
if (!enabled)
break;
m_Pressed = true;
break;
} break;
case GUIM_MOUSE_RELEASE_LEFT:
if (!GetBaseSettings().m_Enabled)
{
bool enabled;
GUI<bool>::GetSetting(this, "enabled", enabled);
if (!enabled)
break;
if (m_Pressed)
@@ -62,7 +50,7 @@ void IGUIButtonBehavior::HandleMessage(const SGUIMessage &Message)
// BUTTON WAS CLICKED
HandleMessage(GUIM_PRESSED);
}
break;
} break;
case GUIM_SETTINGS_UPDATED:
// If it's hidden, then it can't be pressed
@@ -74,3 +62,59 @@ void IGUIButtonBehavior::HandleMessage(const SGUIMessage &Message)
break;
}
}
CColor IGUIButtonBehavior::ChooseColor()
{
CColor color, color_over, color_pressed, color_disabled;
// Yes, the object must possess these settings. They are standard
GUI<CColor>::GetSetting(this, "textcolor", color);
GUI<CColor>::GetSetting(this, "textcolor-over", color_over);
GUI<CColor>::GetSetting(this, "textcolor-pressed", color_pressed);
GUI<CColor>::GetSetting(this, "textcolor-disabled", color_disabled);
bool enabled;
GUI<bool>::GetSetting(this, "enabled", enabled);
if (!enabled)
{
return GUI<>::FallBackColor(color_disabled, color);
}
else
if (m_MouseHovering)
{
if (m_Pressed)
return GUI<>::FallBackColor(color_pressed, color);
else
return GUI<>::FallBackColor(color_over, color);
}
else return color;
}
void IGUIButtonBehavior::DrawButton(const CRect &rect,
const float &z,
const CStr &sprite,
const CStr &sprite_over,
const CStr &sprite_pressed,
const CStr &sprite_disabled)
{
if (GetGUI())
{
bool enabled;
GUI<bool>::GetSetting(this, "enabled", enabled);
if (!enabled)
{
GetGUI()->DrawSprite(GUI<>::FallBackSprite(sprite_disabled, sprite), z, rect);
}
else
if (m_MouseHovering)
{
if (m_Pressed)
GetGUI()->DrawSprite(GUI<>::FallBackSprite(sprite_pressed, sprite), z, rect);
else
GetGUI()->DrawSprite(GUI<>::FallBackSprite(sprite_over, sprite), z, rect);
}
else GetGUI()->DrawSprite(sprite, z, rect);
}
}