Advertisement
Guest User

Untitled

a guest
Nov 28th, 2012
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <Application.h>
  2. #include <Window.h>
  3. #include <Button.h>
  4.  
  5. class Button : public BButton
  6. {
  7.     public:
  8.         Button(char *name, char *label, BMessage *message) : BButton(BRect(0,0,300,300), name, label, message, B_FOLLOW_ALL)
  9.         {
  10.         }
  11.        
  12.         void MessageReceived(BMessage *msg)
  13.         {
  14.             switch(msg->what)
  15.             {
  16.                 case 'STLB':
  17.                     char *label;
  18.                     if(msg->FindString((const char *)"label", (const char **)&label) == B_OK )
  19.                         SetLabel(label);
  20.                     break;
  21.             }
  22.         }
  23. };
  24.  
  25. class Win : public BWindow
  26. {
  27.     private:
  28.         Button *b;
  29.    
  30.     public:
  31.         Win() : BWindow(BRect(100,100,400,400),"App", B_TITLED_WINDOW, 0)
  32.         {
  33.             b = new Button((char *)"button",(char *)"Press me!", new BMessage('MSGB'));
  34.             AddChild(b);
  35.         }
  36.        
  37.         void ChangeLabel()
  38.         {
  39.             BMessage *mess = new BMessage('STLB');
  40.             mess->AddString("label","Hello world!");
  41.                 b->MessageReceived(mess);
  42.                 delete mess;
  43.         }
  44.        
  45.         void MessageReceived(BMessage *msg)
  46.         {
  47.             switch (msg->what)
  48.             {
  49.                 case 'MSGB':
  50.                     ChangeLabel();
  51.                     break;
  52.                 default:
  53.                     be_app->PostMessage(msg);
  54.                     break;
  55.             }
  56.         }
  57.        
  58.         bool QuitRequested()
  59.         {
  60.             be_app->PostMessage(B_QUIT_REQUESTED);
  61.             return true;
  62.         }
  63. };
  64.  
  65. class App : public BApplication
  66. {
  67.     private:
  68.         Win *w;
  69.    
  70.     public:
  71.         App() : BApplication("application/x-vnd.App")
  72.         {
  73.             w = new Win();
  74.             w->Show();
  75.         }
  76.        
  77.         ~App()
  78.         {
  79.             delete w;
  80.         }
  81. };
  82.  
  83. int main()
  84. {
  85.     App *a = new App();
  86.  
  87.     a->Run();
  88.     delete a;
  89.  
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement