| 1 | //************************************ bs::framework - Copyright 2018 Marko Pintera **************************************// |
| 2 | //*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********// |
| 3 | #include "GUI/BsGUIButton.h" |
| 4 | #include "GUI/BsGUIDimensions.h" |
| 5 | #include "GUI/BsGUICommandEvent.h" |
| 6 | |
| 7 | namespace bs |
| 8 | { |
| 9 | const String& GUIButton::getGUITypeName() |
| 10 | { |
| 11 | static String name = "Button" ; |
| 12 | return name; |
| 13 | } |
| 14 | |
| 15 | GUIButton::GUIButton(const String& styleName, const GUIContent& content, const GUIDimensions& dimensions) |
| 16 | :GUIButtonBase(styleName, content, dimensions) |
| 17 | { } |
| 18 | |
| 19 | GUIButton* GUIButton::create(const HString& text, const String& styleName) |
| 20 | { |
| 21 | return create(GUIContent(text), styleName); |
| 22 | } |
| 23 | |
| 24 | GUIButton* GUIButton::create(const HString& text, const GUIOptions& options, const String& styleName) |
| 25 | { |
| 26 | return create(GUIContent(text), options, styleName); |
| 27 | } |
| 28 | |
| 29 | GUIButton* GUIButton::create(const GUIContent& content, const String& styleName) |
| 30 | { |
| 31 | return new (bs_alloc<GUIButton>()) GUIButton(getStyleName<GUIButton>(styleName), content, GUIDimensions::create()); |
| 32 | } |
| 33 | |
| 34 | GUIButton* GUIButton::create(const GUIContent& content, const GUIOptions& options, const String& styleName) |
| 35 | { |
| 36 | return new (bs_alloc<GUIButton>()) GUIButton(getStyleName<GUIButton>(styleName), content, GUIDimensions::create(options)); |
| 37 | } |
| 38 | |
| 39 | bool GUIButton::_commandEvent(const GUICommandEvent& ev) |
| 40 | { |
| 41 | const bool processed = GUIButtonBase::_commandEvent(ev); |
| 42 | |
| 43 | if(ev.getType() == GUICommandEventType::Confirm) |
| 44 | { |
| 45 | if(!_isDisabled()) |
| 46 | { |
| 47 | onClick(); |
| 48 | return true; |
| 49 | } |
| 50 | } |
| 51 | |
| 52 | return processed; |
| 53 | } |
| 54 | } |