diff options
Diffstat (limited to 'scene/gui/button.cpp')
-rw-r--r-- | scene/gui/button.cpp | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/scene/gui/button.cpp b/scene/gui/button.cpp index f28595b622..de2ccfb0b5 100644 --- a/scene/gui/button.cpp +++ b/scene/gui/button.cpp @@ -74,17 +74,21 @@ void Button::_notification(int p_what) { //print_line(get_text()+": "+itos(is_flat())+" hover "+itos(get_draw_mode())); + Ref<StyleBox> style = get_stylebox("normal"); + switch( get_draw_mode() ) { case DRAW_NORMAL: { + style = get_stylebox("normal"); if (!flat) - get_stylebox("normal" )->draw( ci, Rect2(Point2(0,0), size) ); + style->draw( ci, Rect2(Point2(0,0), size) ); color=get_color("font_color"); } break; case DRAW_PRESSED: { - get_stylebox("pressed" )->draw( ci, Rect2(Point2(0,0), size) ); + style = get_stylebox("pressed"); + style->draw( ci, Rect2(Point2(0,0), size) ); if (has_color("font_color_pressed")) color=get_color("font_color_pressed"); else @@ -93,13 +97,15 @@ void Button::_notification(int p_what) { } break; case DRAW_HOVER: { - get_stylebox("hover" )->draw( ci, Rect2(Point2(0,0), size) ); + style = get_stylebox("hover"); + style->draw( ci, Rect2(Point2(0,0), size) ); color=get_color("font_color_hover"); } break; case DRAW_DISABLED: { - get_stylebox("disabled" )->draw( ci, Rect2(Point2(0,0), size) ); + style = get_stylebox("disabled"); + style->draw( ci, Rect2(Point2(0,0), size) ); color=get_color("font_color_disabled"); } break; @@ -111,7 +117,6 @@ void Button::_notification(int p_what) { style->draw(ci,Rect2(Point2(),size)); } - Ref<StyleBox> style = get_stylebox("normal" ); Ref<Font> font=get_font("font"); Ref<Texture> _icon; if (icon.is_null() && has_icon("icon")) @@ -223,26 +228,26 @@ Button::TextAlign Button::get_text_align() const { void Button::_bind_methods() { - ClassDB::bind_method(_MD("set_text","text"),&Button::set_text); - ClassDB::bind_method(_MD("get_text"),&Button::get_text); - ClassDB::bind_method(_MD("set_button_icon","texture:Texture"),&Button::set_icon); - ClassDB::bind_method(_MD("get_button_icon:Texture"),&Button::get_icon); - ClassDB::bind_method(_MD("set_flat","enabled"),&Button::set_flat); - ClassDB::bind_method(_MD("set_clip_text","enabled"),&Button::set_clip_text); - ClassDB::bind_method(_MD("get_clip_text"),&Button::get_clip_text); - ClassDB::bind_method(_MD("set_text_align","align"),&Button::set_text_align); - ClassDB::bind_method(_MD("get_text_align"),&Button::get_text_align); - ClassDB::bind_method(_MD("is_flat"),&Button::is_flat); + ClassDB::bind_method(D_METHOD("set_text","text"),&Button::set_text); + ClassDB::bind_method(D_METHOD("get_text"),&Button::get_text); + ClassDB::bind_method(D_METHOD("set_button_icon","texture:Texture"),&Button::set_icon); + ClassDB::bind_method(D_METHOD("get_button_icon:Texture"),&Button::get_icon); + ClassDB::bind_method(D_METHOD("set_flat","enabled"),&Button::set_flat); + ClassDB::bind_method(D_METHOD("set_clip_text","enabled"),&Button::set_clip_text); + ClassDB::bind_method(D_METHOD("get_clip_text"),&Button::get_clip_text); + ClassDB::bind_method(D_METHOD("set_text_align","align"),&Button::set_text_align); + ClassDB::bind_method(D_METHOD("get_text_align"),&Button::get_text_align); + ClassDB::bind_method(D_METHOD("is_flat"),&Button::is_flat); BIND_CONSTANT( ALIGN_LEFT ); BIND_CONSTANT( ALIGN_CENTER ); BIND_CONSTANT( ALIGN_RIGHT ); - ADD_PROPERTYNZ( PropertyInfo( Variant::STRING, "text", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_DEFAULT_INTL ), _SCS("set_text"),_SCS("get_text") ); - ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture" ), _SCS("set_button_icon"),_SCS("get_button_icon") ); - ADD_PROPERTY( PropertyInfo( Variant::BOOL, "flat" ), _SCS("set_flat"),_SCS("is_flat") ); - ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "clip_text" ), _SCS("set_clip_text"),_SCS("get_clip_text") ); - ADD_PROPERTYNO( PropertyInfo( Variant::INT, "align",PROPERTY_HINT_ENUM,"Left,Center,Right" ), _SCS("set_text_align"),_SCS("get_text_align") ); + ADD_PROPERTYNZ( PropertyInfo( Variant::STRING, "text", PROPERTY_HINT_NONE,"",PROPERTY_USAGE_DEFAULT_INTL ), "set_text","get_text") ; + ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "icon", PROPERTY_HINT_RESOURCE_TYPE, "Texture" ), "set_button_icon","get_button_icon") ; + ADD_PROPERTY( PropertyInfo( Variant::BOOL, "flat" ), "set_flat","is_flat") ; + ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "clip_text" ), "set_clip_text","get_clip_text") ; + ADD_PROPERTYNO( PropertyInfo( Variant::INT, "align",PROPERTY_HINT_ENUM,"Left,Center,Right" ), "set_text_align","get_text_align") ; } |