/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ------------------------------------------------------------------------------*/ #include "ui/widget_check.h" using namespace GS; using namespace GS::S2D; //------------------------------------------------------------------------------ void CheckWidget::SetState(bool b_state) { state = b_state; // check_bitmap.SetPicture(state ? "scene2d/ui_check_true.tga" : "scene2d/ui_check_false.tga"); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ void CheckWidget::Refresh() { check_bitmap.Refresh(); label.Refresh(); dirty = check_bitmap.IsDirty() || label.IsDirty(); } void CheckWidget::Invalidate() { check_bitmap.Invalidate(); label.Invalidate(); Widget::Invalidate(); } void CheckWidget::Compose(Picture &output, const iRect &out_rect) { if (hidden || !dirty) return; rect = out_rect; rect.sy += (int)border_size.x; rect.ey -= (int)border_size.y; rect.sx += (int)border_size.z; rect.ex -= (int)border_size.w; // Compose check box and label. Rect check_rect(rect), label_rect(rect); if (check_bitmap.GetPicture()) { check_rect.ex = check_rect.sx + (check_bitmap.GetPicture()->GetWidth() * 3) / 2; label_rect.sx = check_rect.ex; } check_bitmap.Compose(output, check_rect); label.Compose(output, label_rect); dirty = false; } //------------------------------------------------------------------------------