Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Application.h>
- #include <Window.h>
- #include <Button.h>
- class Button : public BButton
- {
- public:
- Button(char *name, char *label, BMessage *message) : BButton(BRect(0,0,300,300), name, label, message, B_FOLLOW_ALL)
- {
- }
- void MessageReceived(BMessage *msg)
- {
- switch(msg->what)
- {
- case 'STLB':
- char *label;
- if(msg->FindString((const char *)"label", (const char **)&label) == B_OK )
- SetLabel(label);
- break;
- }
- }
- };
- class Win : public BWindow
- {
- private:
- Button *b;
- public:
- Win() : BWindow(BRect(100,100,400,400),"App", B_TITLED_WINDOW, 0)
- {
- b = new Button((char *)"button",(char *)"Press me!", new BMessage('MSGB'));
- AddChild(b);
- }
- void ChangeLabel()
- {
- BMessage *mess = new BMessage('STLB');
- mess->AddString("label","Hello world!");
- b->MessageReceived(mess);
- delete mess;
- }
- void MessageReceived(BMessage *msg)
- {
- switch (msg->what)
- {
- case 'MSGB':
- ChangeLabel();
- break;
- default:
- be_app->PostMessage(msg);
- break;
- }
- }
- bool QuitRequested()
- {
- be_app->PostMessage(B_QUIT_REQUESTED);
- return true;
- }
- };
- class App : public BApplication
- {
- private:
- Win *w;
- public:
- App() : BApplication("application/x-vnd.App")
- {
- w = new Win();
- w->Show();
- }
- ~App()
- {
- delete w;
- }
- };
- int main()
- {
- App *a = new App();
- a->Run();
- delete a;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement