button.cpp

This example shows you how to create Buttons and ImageButtons as well as using different borders

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 

Generated on Thu Dec 13 18:13:09 2007 for SkyGI by  doxygen 1.5.1-p1