lo guys, i just started "playing" with SDL Library (dont ask me why, cuz i cant give you a decent answer-> its open source, seemed easy, and i need to work a bit more with GUI)
anywayz,
how can i make a class container that contains some other classes (widgets - windows) - ( these widgets contain some buttons that call my other functions - i have to send/receive data to/from IO serial COM - where my micro-controler is connected to )
so i ll have to make class hirarchy where the class cointainer will contain classes widgets (new window, send, receive, quit, and so on)
to make it a bit easier to understand my question, here is the code how to make new widget with a button
Code:
make_widgets.cpp
/*
* The application processes only the event SDL_QUIT.
* The WidgetClass processes the SDL_EXPOSE event via
* the OnPaint() member function.
*
*/
#include "widget.h" // Here is where the widgets are declared
#include "button.h"
#include "canvas.h"
#include <iostream>
using namespace std;
class Container:public Canvas
{
};
class Label:public Widget
{
public:
Label(Object* Parent=NULL, int x=0, int y=0, int w=320, int h=120):Widget(Parent, x,y,w,h)
{
setCaption("Label");
cout <<"Constructor Label is called !!!"<< endl;
}
};
class Btn : public Button
{
public:
Btn(Object* Parent=NULL, int x=0, int y=0, int w=0, int h=0);
virtual void clicked()
{
cout << "Virtual void clicked() is called" << endl;
exit(0);
}
};
Btn::Btn(Object* Parent, int x, int y, int w, int h):Button(Parent, x,y,w,h)
{
setCaption("YES");
cout <<"Constructor Btn is called !!!"<< endl;
}
int main()
{
SDL_Event event; // A structure containing event information
Label MainWindow; // Create the MainWindow.
Btn QuitButtonYes(&MainWindow, 0,0,80,25);
// Set the background color of the window
MainWindow.setBgColorRGB(192,192,192); // The color is red=255,
// blue = 0, and green = 0
QuitButtonYes.setBgColorRGB(192,192,192);
bool done = false; // Flag showing whether we have to quit
while ( SDL_WaitEvent(&event) && !done) {
switch (event.type) {
case SDL_QUIT:
done = true;
break;
default:
MainWindow.handleEvent(event);
QuitButtonYes.handleEvent(event);
break;
}
}/*while*/
return 0;
}