#include <fastgl/fastgl.h>
fgl::FGWindow *w2Ptr;
fgl::FGWindow *w1Ptr;
fgl::FGWindow *Info_WindowPtr;
static fgl::FGButtonGroup *bgPtr0;
static fgl::FGButtonGroup *bgPtr1;
static fgl::FGButtonGroup *bgPtr2;
static void info(fgl::CallBack cb)
{
Info_WindowPtr->SetColors();
Info_WindowPtr->printf("CallBack Procedure 'info'\n");
Info_WindowPtr->printf(" ACCEL ID = %d\n", cb->GetId());
Info_WindowPtr->printf(" ACCEL LOCAL ID = %d\n", cb->GetLocalId());
Info_WindowPtr->printf(" ACCEL NAME = %s\n", cb->GetName());
Info_WindowPtr->printf(" OWNER NAME = %s\n\n", cb->GetOwner()->GetName());
}
static void w2Proc(fgl::FGEvent *p)
{
switch(p->GetType()) {
case fgl::INITEVENT:
fgl::FGControl *tmpCtrlPtr;
tmpCtrlPtr = p->wnd->AddPointButton(40, 24, "point A 1", 0, 0, info);
bgPtr1->AddToGroup(tmpCtrlPtr, 1);
tmpCtrlPtr = p->wnd->AddPointButton(40, 48, "point A 2", 0, 0, info);
bgPtr1->AddToGroup(tmpCtrlPtr);
tmpCtrlPtr = p->wnd->AddPointButton(72, 80, "point B 1", 0, 0, info);
bgPtr2->AddToGroup(tmpCtrlPtr);
tmpCtrlPtr = p->wnd->AddPointButton(72, 104, "point B 2", 0, 0, info);
bgPtr2->AddToGroup(tmpCtrlPtr, 1);
break;
}
}
static void w1Proc(fgl::FGEvent *p)
{
switch(p->GetType()) {
case fgl::INITEVENT:
fgl::FGControl *tmpCtrlPtr;
tmpCtrlPtr = p->wnd->AddPushButton(8, 8, 80, 21, "button 1", 0, info);
bgPtr0->AddToGroup(tmpCtrlPtr, 1);
tmpCtrlPtr = p->wnd->AddPushButton(96, 48, 80, 21, "button 2", 0, info);
bgPtr0->AddToGroup(tmpCtrlPtr);
tmpCtrlPtr = p->wnd->AddPushButton(192, 88, 80, 21, "button 3", 0, info);
bgPtr0->AddToGroup(tmpCtrlPtr);
break;
}
}
static void Info_WindowProc(fgl::FGEvent *p)
{
switch(p->GetType()) {
case fgl::TERMINATEEVENT:
fgl::FGApp::AppDone();
break;
}
}
int main(int argc, char **argv)
{
fgl::FGApp MyApp(fgl::G800x600, argc, argv, fgl::CBLACK, fgl::APP_ENABLEALTX);
bgPtr0 = new fgl::FGButtonGroup();
bgPtr1 = new fgl::FGButtonGroup();
bgPtr2 = new fgl::FGButtonGroup();
w1Ptr = new fgl::FGWindow(&w1Ptr, 24, 152, 294, 152, "w1", w1Proc, fgl::CBLACK, fgl::CGRAYED, fgl::WFRAMED|fgl::WTITLED|fgl::WNOPICTO);
w2Ptr = new fgl::FGWindow(&w2Ptr, 48, 336, 225, 168, "w2", w2Proc, fgl::CYELLOW, fgl::CBLUE, fgl::WFRAMED|fgl::WTITLED|fgl::WNOPICTO);
Info_WindowPtr = new fgl::FGWindow(&Info_WindowPtr, 336, 32, 332, 520, "Info Window", Info_WindowProc, fgl::CWHITED, fgl::CBLACK, fgl::WFRAMED|fgl::WTITLED|fgl::WESCAPE);
MyApp.Run();
if (w2Ptr) delete w2Ptr;
if (w1Ptr) delete w1Ptr;
if (Info_WindowPtr) delete Info_WindowPtr;
delete bgPtr0;
delete bgPtr1;
delete bgPtr2;
return 0;
}