00001 #include <gui/MessageBox.h>
00002 #include <gui/MessageQueue.h>
00003 #include <gui/Button.h>
00004 #include <gui/Button.h>
00005 #include <gui/TopView.h>
00006 #include <gui/Exceptions.h>
00007 #include <gui/Window.h>
00008 #include <gui/StringView.h>
00009 #include <gui/ApplicationWindow.h>
00010 #include <gui/Application.h>
00011 #include <gui/Menu.h>
00012 #include <gui/StatusBar.h>
00013 #include <gui/ImageButton.h>
00014 #include <iostream>
00015
00016 using namespace SkyGI;
00017
00018 class MyButton : public View
00019 {
00020 public:
00021 MyButton(Window *pParent, const Rect &rFrame, unsigned int nWindowLayoutFlags);
00022
00023 void ButtonClicked()
00024 {
00025 printf("Button clicked!!\n");
00026 }
00027
00028 };
00029
00030
00031 MyButton::MyButton(Window *pParent, const Rect &rFrame, unsigned int nWindowLayoutFlags) : View(pParent, rFrame, nWindowLayoutFlags)
00032 {
00033 Button *pButton;
00034 ImageButton *pImageButton;
00035 BorderSolid *pBorder;
00036
00037 pButton = new Button(this, Point(10,10), "Button", 0, 0);
00038 pButton->Clicked.Connect(this, &MyButton::ButtonClicked);
00039
00040 pButton = new Button(this, Point(10,40), "A rather long button text", 0, 0);
00041
00042 pButton = new Button(this, Point(10,70), "Different height and brush", 0, 0);
00043
00044 pBorder = new BorderSolid(0x00FF0000);
00045 pBorder->SetTransparency(true);
00046 pButton->SetBorder(pBorder, BORDER_TYPE_ALL);
00047
00048 pBorder = new BorderSolid(0x0000FF00);
00049 pBorder->SetTransparency(true);
00050 pButton->SetBorder(pBorder, BORDER_TYPE_PRESSED);
00051
00052 pButton->SetBackgroundStyle(BACKGROUND_STYLE_BRUSH);
00053 pButton->SetBackgroundBrush(new BrushImageScale(new Image("/boot/addon/icons/skyos.ico")));
00054
00055
00056 pImageButton = new ImageButton(this, Rect(), NULL, 0, 0);
00057 pImageButton->SetImage(new Image("/boot/addon/icons/up.ico"));
00058 pImageButton->SetDownImage(new Image("/boot/addon/icons/down.ico"));
00059
00060 pImageButton->SetBorder(new BorderSolid(0x000000FF));
00061 pImageButton->SetBorder(new BorderSolid(0x0000FF00), BORDER_TYPE_HOVER);
00062 pImageButton->SetBorder(new BorderSolid(0x00FF0000), BORDER_TYPE_PRESSED);
00063
00064 Image *pHover = new Image("/boot/addon/icons/up.ico");
00065 if (pHover->Colorize(0xA0FFFFFF) == false)
00066 printf("faild\n");
00067 pImageButton->SetHoverImage(pHover);
00068
00069 pImageButton->SetRect(Point(10, 170), Point(16,16));
00070
00071
00072 }
00073
00074 void ButtonTest()
00075 {
00076 Rect r(Point(100, 100), Point(400, 440));
00077
00078 ApplicationWindow* pApplicationWindow = new ApplicationWindow(r, "Button", WINDOW_LAYOUT_NOTHING, APPLICATION_WINDOW_NO_VIEW);
00079
00080 pApplicationWindow->GetTitleWindow()->SetFlags( (TitleWindowFlags)(pApplicationWindow->GetTitleWindow()->GetFlags() ));
00081 pApplicationWindow->AttachView(new MyButton(pApplicationWindow, pApplicationWindow->GetClientRect(), WINDOW_LAYOUT_NOTHING));
00082 pApplicationWindow->Show();
00083 }
00084