Index: ui/views/controls/button/custom_button.cc |
diff --git a/ui/views/controls/button/custom_button.cc b/ui/views/controls/button/custom_button.cc |
index 4a15975d5b836c3816a20cf8688530db10390ce7..3259f9df375b2903db9211a019a455d8c32f660b 100644 |
--- a/ui/views/controls/button/custom_button.cc |
+++ b/ui/views/controls/button/custom_button.cc |
@@ -9,6 +9,13 @@ |
#include "ui/events/keycodes/keyboard_codes.h" |
#include "ui/gfx/animation/throb_animation.h" |
#include "ui/gfx/screen.h" |
+#include "ui/views/controls/button/blue_button.h" |
+#include "ui/views/controls/button/checkbox.h" |
+#include "ui/views/controls/button/image_button.h" |
+#include "ui/views/controls/button/label_button.h" |
+#include "ui/views/controls/button/menu_button.h" |
+#include "ui/views/controls/button/radio_button.h" |
+#include "ui/views/controls/button/text_button.h" |
#include "ui/views/widget/widget.h" |
namespace views { |
@@ -22,6 +29,27 @@ const char CustomButton::kViewClassName[] = "CustomButton"; |
//////////////////////////////////////////////////////////////////////////////// |
// CustomButton, public: |
+// static |
+const CustomButton* CustomButton::AsCustomButton(const views::View* view) { |
+ return AsCustomButton(const_cast<views::View*>(view)); |
+} |
+ |
+CustomButton* CustomButton::AsCustomButton(views::View* view) { |
+ if (view) { |
+ const char* classname = view->GetClassName(); |
+ if (!strcmp(classname, Checkbox::kViewClassName) || |
+ !strcmp(classname, CustomButton::kViewClassName) || |
+ !strcmp(classname, ImageButton::kViewClassName) || |
+ !strcmp(classname, LabelButton::kViewClassName) || |
+ !strcmp(classname, RadioButton::kViewClassName) || |
+ !strcmp(classname, MenuButton::kViewClassName) || |
+ !strcmp(classname, TextButton::kViewClassName)) { |
+ return static_cast<CustomButton*>(view); |
+ } |
+ } |
+ return NULL; |
+} |
+ |
CustomButton::~CustomButton() { |
} |