Exemple #1
0
int main(int argc, char* argv[])
{
    PG_Application app(argv[0]);
    app.LoadTheme("default");
    if (!app.InitScreen(500, 300, 16, 0))
        return -1;

    PG_Widget widget(0, PG_Rect(0, 0, 500, 300));

    PG_DropDown d(&widget, PG_Rect(20, 40, 200, 30));
    d.AddItem("test");
    d.AddItem("test2");

//    d.DeleteAll();
d.RemoveAll();

    d.AddItem("test");
    d.AddItem("test2");
    d.AddItem("test3");

    widget.Show();

    app.Run();
    
    return 0;
}
Exemple #2
0
int main(int argc, char* argv[]) {
    PG_Application app(argv[0]);
    app.LoadTheme("default");
    app.InitScreen(640, 480, 16, SDL_SWSURFACE);

    PG_Button myButton(NULL,PG_Rect(260, 100, 120, 50),"Exit!");
    myButton.sigClick.connect( SigC::slot(exit_handler), (PG_Pointer)&app);
    myButton.Show();

    PG_WidgetList list(NULL,PG_Rect(10,10,150,150));
    list.EnableScrollBar(true, PG_ScrollBar::VERTICAL);
    list.SetTransparency(0);
    list.Show();

    PG_Button myButtonHide(NULL,PG_Rect(260, 0, 120, 50),"Hide!");
    myButtonHide.sigClick.connect( SigC::slot(hide_handler), (PG_Pointer)&list);
    myButtonHide.Show();

    PG_Button myButtonShow(NULL,PG_Rect(260, 50, 120, 50),"Show!");
    myButtonShow.sigClick.connect( SigC::slot(show_handler), (PG_Pointer)&list);
    myButtonShow.Show();

    PG_Button myButtonAdd(NULL,PG_Rect(260, 150, 120, 50),"Add!");
    myButtonAdd.sigClick.connect( SigC::slot(add_handler), (PG_Pointer)&list);
    myButtonAdd.Show();

    app.Run();
    return 0;
}
Exemple #3
0
bool handleBigFatButton(PG_Button* b) {
	PG_Window wnd(NULL, PG_Rect(200,200,350,100), "Message");
	PG_Label l(&wnd, PG_Rect(5,40,340,25), "You pressed the 'Big Fat Button'");
	l.SetAlignment(PG_TA_CENTER);
	
	wnd.Show(true);
	wnd.RunModal();
	
	return true;
}
Exemple #4
0
GUI_ResultsMenu::GUI_ResultsMenu(): GUI_BaseMenu(GUI_RESULTS, PG_Rect(RM_PX,RM_PY,RM_VX,RM_VY)) 
{
  int px, py;
  lResultsMenu = new PG_Label(this, PG_Rect(1,4,RM_VX-2,25), "RESULTS", "GUI_Label");
  lLabel1 = new PG_Label(this, PG_Rect(1,30,RM_VX-2,20), "Press SPACE to continue", "GUI_Label");
  px = 0; py = 59;
  lNameTitle = new PG_Label(this, PG_Rect(px, py, RM_VX/2 + 20, 20), "NAME", "GUI_ResultTitle");
  lFragsTitle = new PG_Label(this, PG_Rect(px + 20 + RM_VX/2, py, 60, 20), "FRAGS", "GUI_ResultTitle");
  lPointsTitle = new PG_Label(this, PG_Rect(px + 20+60 + RM_VX/2, py, RM_VX/2-60 - 20, 20), "POINTS", "GUI_ResultTitle");
  
  lResultsMenu->SetFont(MainFont);
  
  px = 0;
  py = 59+19;
  for (int i=0; i<RM_MAX_NAMES; i++)
  {
    lName[i] = new PG_Label(this, PG_Rect(px, py + i*19, RM_VX/2 + 20, 20), "", "GUI_ResultLine");
    lName[i]->SetAlignment(PG_TA_LEFT);
    lFrags[i] = new PG_Label(this, PG_Rect(px + 20 + RM_VX/2, py + i*19, 60, 20), "", "GUI_ResultLine");
    lFrags[i]->SetAlignment(PG_TA_LEFT);
    lPoints[i] = new PG_Label(this, PG_Rect(px + 20 + 60 + RM_VX/2, py + i*19, RM_VX/2-60 - 20, 20), "", "GUI_ResultLine");
    lPoints[i]->SetAlignment(PG_TA_LEFT);
  }

  Default();
  
  LoadThemeStyle("GUI_Results");
}
Exemple #5
0
GUI_SkinCtrl::GUI_SkinCtrl(PG_Widget* parent, const PG_Rect& r) : PG_Widget(parent, r, true) {
	bNext = new PG_Button(this, 2, PG_Rect(17, 33, 16, 16));
	bPrev = new PG_Button(this, 1, PG_Rect(1, 33, 16, 16));
	SkinPic = new GUI_SkinPic(this, PG_Rect(1, 1, 32, 32));

	c = GUI_Gray64;
	drawbackground = true;

	bPrev->LoadThemeStyle("GUI_PrevSkinButton");
	bNext->LoadThemeStyle("GUI_NextSkinButton");
}
Exemple #6
0
GUI_OKDialog1::GUI_OKDialog1(char* title, char* line1, char* line2) : GUI_BaseMenu(GUI_OKDIALOG1, PG_Rect(OKD1_PX,OKD1_PY,OKD1_VX,OKD1_VY)){

	OKDialog1 = new PG_Label(this, PG_Rect(1,4,OKD1_VX-2,25), title, "GUI_Label");
	lPrompt1 = new PG_Label(this, PG_Rect(1,35, OKD1_VX-2,20), line1, "GUI_Label");
	bOK = new GUI_ButtonSmall(this, 1, PG_Rect(105,65,150,25), "OK");

	Default();
  
	OKDialog1->SetFont(MainFont);
  
	lPrompt1->SetAlignment(PG_TA_CENTER);
	LoadThemeStyle("GUI_Board");
}
Exemple #7
0
int main(int argc, char* argv[]) {
	char theme[20];
	strcpy(theme, "simple");

	// initial flags for screensurface
	Uint32 flags = SDL_SWSURFACE|SDL_HWPALETTE;
	int bpp = 16;

	// construct the application object
	PG_Application app;
	
	if(!app.LoadTheme(theme)) {
	    printf("Unable to load theme \"%s\"", theme);
	    return -1;
	}
	
	if(!app.InitScreen(640, 480, bpp, flags)){
		printf("Resolution not supported\n");
		exit(-1);
	}

	PG_ColorSelector colorsel1(NULL, PG_Rect(10,10,300,150));
	colorsel1.Show();

	PG_Gradient g;
	g.colors[0].r = 255;
	g.colors[0].g = 0;
	g.colors[0].b = 0;
	
	g.colors[1].r = 0;
	g.colors[1].g = 255;
	g.colors[1].b = 0;
	
	g.colors[2].r = 0;
	g.colors[2].g = 0;
	g.colors[2].b = 255;
	
	g.colors[3].r = 255;
	g.colors[3].g = 255;
	g.colors[3].b = 255;
	
	PG_ColorSelector colorsel2(NULL, PG_Rect(10,170,300,150));
	colorsel2.SetColorGradient(g);
	colorsel2.Show();
	
	app.SetEmergencyQuit(true);
    app.Run();

	return EXIT_SUCCESS;
}
Exemple #8
0
int main( int argc, char **argv ) {

    // create custom factory. key is "unsigned long"
    typedef PG_FactoryHolder<unsigned long> MyFactory;

    PG_Application app(argv[0]);

    app.LoadTheme( "default" );
    app.InitScreen( 640, 480, 0 );
    app.SetEmergencyQuit(true);

    // register classes (default factory, key "std::string")
    PG_Factory::RegisterClass<PG_ThemeWidget>("themewidget");
    PG_Factory::RegisterClass<PG_Button>("button");
    PG_Factory::RegisterClass<PG_Window>("window");
    PG_Factory::RegisterClass<PG_Label>("label");

    // register classes (custom factory)
    MyFactory::RegisterClass<PG_Label>(1);
    
    // create PG_ThemeWidget object
    PG_Widget* w = PG_Factory::CreateObject("themewidget");
    w->MoveWidget(PG_Rect(10,10,300,200));
    w->Show();

    // create PG_Button object
    PG_Widget* b = PG_Factory::CreateObject("button", w);
    b->MoveWidget(PG_Rect(100,100,150,30));
    b->SetText("Factory");
    b->Show();

    // create PG_Window object
    PG_Widget* wnd = PG_Factory::CreateObject("window");
    wnd->MoveWidget(PG_Rect(100,100,200,300));
    wnd->SetText("Window");

    // create PG_Label object (custom factory)
    PG_Widget* l = MyFactory::CreateObject(1, wnd);
    l->MoveWidget(PG_Rect(50,50,100,20));
    l->SetText("Label");
	
    wnd->Show();
	
    app.Run();

    return 0;
}
Exemple #9
0
int main(int argc, char* argv[]) {
   putenv("SDL_VIDEO_CENTERED=\"\"");
   
   PG_Application app(argv[0]);

   if (!app.LoadTheme("default") || !app.InitScreen(800, 600, 32, SDL_SWSURFACE | SDL_NOFRAME)) {
       std::cout << "error, aborting" << std::endl;
       return EXIT_FAILURE;
   }

   PG_Window window(NULL, PG_Rect(0, 0, 800, 600), "Infinite Loop Application", PG_Window::DEFAULT);
   CentralWidget centralWidget(&window, PG_Rect(200, 100, 400, 400));
   centralWidget.SetBorderSize(1);
   centralWidget.Show(false);
   window.Show(false);
   SDL_WarpMouse(centralWidget.my_xpos + 20, centralWidget.my_ypos + 20);
   window.RunModal();
   return EXIT_SUCCESS;
}
Exemple #10
0
void GUI_Input::eventBlit(SDL_Surface* surface, const PG_Rect& src, const PG_Rect& dst) {
	if (waiting) {
		textcolor = GUI_InputActive;
	}
	else {
		textcolor = GUI_InputInactive;
	}

	PG_StaticFrame::eventBlit(surface, src, dst);

	DrawText();
	DrawBorder(PG_Rect(0,0,my_width,my_height), 1, false);
}
Exemple #11
0
int main(int argc,char *argv[])

{
	// init application, pretty usual
	PG_Application app;
	app.SetEmergencyQuit(true);
	app.LoadTheme("default");
	app.InitScreen(800,600,32,SDL_SWSURFACE);

	// init cairo, more interesting
	cr = cairo_create();
	char* image = (char*)PG_Application::GetScreen()->pixels;
	int width = PG_Application::GetScreenWidth();
	int height = PG_Application::GetScreenHeight();
	int stride = PG_Application::GetScreen()->pitch;
	
	cairo_set_target_image(cr, image, CAIRO_FORMAT_ARGB32, width, height, stride);
	
	// connect PG_Button::sigBlit to cairoBlitButton
	PG_Button::sigBlit.connect(slot(cairoBlitButton));

	PG_Button btn1(NULL, PG_Rect(300,400,200,50), "Button 1");
	btn1.Show();

	CMyWindow win1(NULL, PG_Rect(200,200,360,290), "CAIRO sample", PG_Window::DEFAULT);
	win1.Show();

	CMyWindow win2(NULL, PG_Rect(50,50,200,350), "CAIRO sample", PG_Window::DEFAULT);
	win2.Show();

	CMyWindow win3(NULL, PG_Rect(100,80,400,200), "CAIRO sample", PG_Window::DEFAULT);
	win3.Show();

	app.Run();
	
	return 0;
}
Exemple #12
0
int main( int argc, char **argv )
{
    PG_Application app(argv[0]);
    app.LoadTheme( "default" );
    app.InitScreen( 640, 480 );

    PG_DropDown *dd1, *dd2;

    dd1 = new PG_DropDown(NULL, PG_Rect( 10, 10, 100, 20 ));
    dd2 = new PG_DropDown(NULL, PG_Rect( 120, 10,100, 20 ));

    for( int i = 0; i < 10; i++ )
    {
        dd1->AddItem( "poop" );
        dd2->AddItem( "yeah" );
    }

    dd1->Show();
    dd2->Show();

    app.Run();

    return 0;
}
Exemple #13
0
int main( int argc, char **argv )
{
	PG_Application app(argv[0]);
	
	app.LoadTheme( "default" );
	
	app.InitScreen( 640, 480, 0 );
	app.SetEmergencyQuit(true);
	
	PG_ArrayWidget* a = new PG_ArrayWidget(NULL, PG_Rect(50,50,150,250));	
	a->Show();
	app.Run();
	delete a;
	
	return 0;
}
Exemple #14
0
int main(int argc,char *argv[])
{
	PG_Application app(argv[0]);
	app.SetEmergencyQuit(true);
	app.LoadTheme("simple");
	app.InitScreen(800,600,0,SDL_SWSURFACE);

	MyWindow* window = new MyWindow( NULL,PG_Rect(200,200,350,300));
	new PG_Label( window, PG_Rect(20, 30,300,30), "not overlapping the button" );
	new PG_Label( window, PG_Rect(20,100,300,30), "behind button" );
	PG_Button* button = new PG_Button( window, PG_Rect(60,70,250,100), "Button" );
	button->SetTransparency(40,40,40);
	new PG_Label( window, PG_Rect(20,130,300,30), "in front of button" );
	new PG_Label( window, PG_Rect(20,180,300,30), "not overlapping the button" );
	PG_CheckButton* c = new PG_CheckButton( window, PG_Rect( 20, 220, 300, 30 ), "UpdateOverlappingSiblings" );
	c->SetPressed();
	c->sigClick.connect( SigC::slot( *window, &MyWindow::click ));
	window->Show();
	
	app.Run();
}
Exemple #15
0
int main(int argc, char* argv[]) {

	// every ParaGUI application need an application-object
	PG_Application app(argv[0]);

	// let us escape with "ESC"
	app.SetEmergencyQuit(true);
	
	// every application needs a theme (the look & feel of the widgets)
	//app.LoadTheme("default");
	app.LoadTheme("simple");

	// we must initialize the screen where we want to draw on

	// 640 - screen width
	// 480 - screen height
	// 0 - use screen bitdepth
	// SDL_SWSURFACE - PG_ option to generate surface in system memory

	app.InitScreen(800, 600, 0, SDL_SWSURFACE);

	// ok - now we have a nice 640x480x16 window on the screen :)

	PG_Rect rect(0, 0, 80, 30);

	PG_Button myButton(
		NULL,		// an optional parent widget for our button - NULL for no parent
		rect,		// the screen position where the button should appear
		"Quit"		// some textlabel for the button
		);

	// this defines our callback handler for the message MSG_BUTTONCLICK,
	// we pass a pointer to the app object as userdata

	PG_MenuBar menubar(NULL, PG_Rect(100, 0, 400, 30));
	PG_PopupMenu   popmenu(NULL, 425, 140, "File");

	popmenu.addMenuItem("Nail", 99, SigC::slot(handle_menu_click)).
        addMenuItem("Quit", ID_APP_EXIT, SigC::slot(handle_menu_click), &app);
 
	menubar.Add("File", &popmenu);

	menubar.Show();

	myButton.sigClick.connect( SigC::slot(exit_handler), (PG_Pointer)&app);

	// now we have to make the button visible

	myButton.Show();

	// Every ParaGUI application is event driven, so we need a loop where
	// we process all events (like mouse handling, keystrokes,...)

	// usually this is done with PG_Application::Run()

	PG_Rect sc_rect(50, 50, 100, 300);
	PG_ScrollBar myscroll(NULL, sc_rect, PG_ScrollBar::VERTICAL);
	myscroll.Show();

	PG_Rect sc_rect2(200, 200, 300, 100);
	PG_ScrollBar myscroll2(NULL, sc_rect2, PG_ScrollBar::HORIZONTAL);

	myscroll2.SetRange(0, 100);
	myscroll2.SetPageSize(10);
	myscroll2.SetLineSize(5);

	myscroll2.Show();

	// Attempt to get animation
	PlayField anim_test(
		// still no parent widget
		NULL,
		// a static function to create rects
		PG_Rect(260,120,120,50)
		);

	anim_test.AddTimer(400);
	anim_test.Show();

    PlayField2 anim_test2(
	  NULL,
	  PG_Rect(260, 300, 120, 100)
	  );
	  
	anim_test2.AddTimer(40);
	anim_test2.AddTimer(20);
	anim_test2.Show();

	app.Run();

	// this function will only exit when the application was closed

	return 0;
}
Exemple #16
0
CentralWidget::CentralWidget(PG_Widget *parent, const PG_Rect &rect) : PG_ThemeWidget(parent, rect) {
    innerWidget = new PG_ThemeWidget(this, PG_Rect(rect.w / 2 - 40, rect.h / 2 - 10, 80, 20));
    innerWidget->SetBorderSize(1);
    innerWidget->Show(false);
}
Exemple #17
0
	PG_ArrayWidget(PG_Widget* parent, const PG_Rect& r) : PG_ThemeWidget(parent, r) {
		for(int i=0; i<50; i++) {
			lines[i] = new PG_Label(this, PG_Rect(0,i*25,150,25), "line");
		}
	}
Exemple #18
0
GUI_CreditsMenu::GUI_CreditsMenu() : GUI_BaseMenu(GUI_CREDITS, PG_Rect(CM_PX,CM_PY,CM_VX,CM_VY)) {

	mBack1 = new GUI_Bitmap(this, PG_Rect(1, 1, credits->w, credits->h), credits),
	CreditsMenu = new PG_Label(mBack1, PG_Rect(1,4,CM_VX-2,25), "Credits", "GUI_Label");
	lLine[0] = new PG_Label(mBack1, PG_Rect(CM_G1_PX,CM_G1_PY+35, CM_G1_VX-2,20), "Code by Antonin Hildebrand aka Woid", "GUI_LabelL");
	lLine[1] = new PG_Label(mBack1, PG_Rect(CM_G1_PX,CM_G1_PY+55, CM_G1_VX-2,20), "Graphics by Petr Stastny aka Raist", "GUI_LabelL");
	lLine[2] = new PG_Label(mBack1, PG_Rect(CM_G1_PX,CM_G1_PY+75, CM_G1_VX-2,20), "Music by Ondrej Broukal aka GameOver", "GUI_LabelL");
	lLine[3] = new PG_Label(mBack1, PG_Rect(CM_G1X_PX,CM_G1_PY+95, CM_G1_VX-50,20), "Petr Stastny aka Raist", "GUI_LabelL");
	lLine[4] = new PG_Label(mBack1, PG_Rect(CM_G1X_PX,CM_G1_PY+115, CM_G1_VX-50,20), "Pavel Mirejovsky aka Dusty", "GUI_LabelL");
	lLine[6] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+155, CM_G2_VX-2,20), "SDL library by Sam Latinga", "GUI_LabelL");
	lLine[7] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+175, CM_G2_VX-2,20), "SeeR scripting engine", "GUI_LabelL");
	lLine[5] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+195, CM_G2_VX-2,20), "by Przemek Podsiadly aka Theur", "GUI_LabelL");
	lLine[8] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+215, CM_G2_VX-2,20), "BASS sound system by Ian Luck", "GUI_LabelL");
	lLine[9] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+235, CM_G2_VX-2,20), "Mappy by Robin Burrows", "GUI_LabelL");
	lLine[10] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+255, CM_G2_VX-2,20), "ParaGUI by Alexander Pipelka", "GUI_LabelL");
	lLine[11] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+275, CM_G2_VX-2,20), "ImageMagick library by ImageMagick Studio", "GUI_LabelL");
	lLine[12] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+295, CM_G2_VX-2,20), "SDL: net, console, ttf, mixer and image libs", "GUI_LabelL");
	lLine[13] = new PG_Label(mBack1, PG_Rect(CM_G2_PX,CM_G2_PY+315, CM_G2_VX-2,20), "zlib, libpng, UPX packer", "GUI_LabelL");
	lLine[14] = new PG_Label(mBack1, PG_Rect(CM_G1_PX,CM_G1_PY+135, CM_G1_VX-2,20), "Linux & BeOS port by Alex Pipelka aka Braindead", "GUI_LabelL");
	lLine[15] = new PG_Label(mBack1, PG_Rect(4,235, CM_VX-2,20), "Thanks to SLiK, Mem, Lada, Tessien, Farey, Kerim, Garett Banuk, Nula, ...", "GUI_Label");
	lLine[17] = new PG_Label(mBack1, PG_Rect(4,315, CM_VX-2,25), "visit PW2 site at", "GUI_Label");
	lLine[16] = new PG_Label(mBack1, PG_Rect(CM_G1_PX,CM_G1_PY+175, CM_G1_VX-2,20), "Iain Syme author of the orignal PacWars", "GUI_LabelL");
	lLine[18] = new PG_Label(mBack1, PG_Rect(4,345, CM_VX-2,25), PW_WEBADDRESS, "GUI_Label");
	bOK = new GUI_ButtonSmall(this, 1, PG_Rect(155,390,150,25), "COOL");

	Default();

	CreditsMenu->SetFont(MainFont);
	lLine[17]->SetFont(MainFont);
	lLine[18]->SetFont(MainFont);
}
Exemple #19
0
CMyWindow::CMyWindow(PG_Widget *parent,const PG_Rect& r,char *text, WindowFlags flags,const std::string& style) : PG_Window(parent,r,text,flags,style) {
	mywidget = new CMyWidget(this, PG_Rect(5, 30, r.w-10, r.h-35));
	SetDirtyUpdate(false);
	SetTransparency(100);
}
Exemple #20
0
int main(int argc, char *argv[])
{

  app.SetEmergencyQuit(true);
  app.LoadTheme("default");
	int i;
	int rgb_size[3];
	int w = 640;
	int h = 480;
  int bpp=16;

	Uint32 video_flags;
	int value;

	if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
		fprintf(stderr,"Couldn't initialize SDL: %s\n",SDL_GetError());
		exit( 1 );
  }


	/* Set the flags we want to use for setting the video mode */
	video_flags = SDL_OPENGLBLIT;

	for ( i=1; argv[i]; ++i ) {
		if ( strcmp(argv[i], "-fullscreen") == 0 ) {
			video_flags |= SDL_FULLSCREEN;
		}
	}

	/* Initialize the display */
	switch (bpp) {
	    case 8:
		rgb_size[0] = 2;
		rgb_size[1] = 3;
		rgb_size[2] = 3;
		break;
	    case 15:
	    case 16:
		rgb_size[0] = 5;
		rgb_size[1] = 6;
		rgb_size[2] = 5;
		break;
		default:
		rgb_size[0] = 8;
		rgb_size[1] = 8;
		rgb_size[2] = 8;
		break;
	}
	SDL_GL_SetAttribute( SDL_GL_RED_SIZE, rgb_size[0] );
	SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, rgb_size[1] );
	SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, rgb_size[2] );
	SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
	SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );



  if (!app.InitScreen(640, 480, 0, video_flags)) {
      fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
     exit(1);
  }
	app.EnableBackground();
 	SDL_WM_SetCaption( "MadIVS", "madivs" );




  GLWidget gl_view1(NULL, PG_Rect(100,100,200,200));
	new PG_Label(&gl_view1, PG_Rect(0,0,90,20), "GL View 1");


    // now we have to make the button visible

  gl_view1.Show();

	PG_Button* btn1 = new PG_Button(NULL, 1, PG_Rect(30,30,100,50), "Quit");
	btn1->Show();


	PG_Rect rs(0,0, PG_Application::GetScreenWidth(), PG_Application::GetScreenHeight());
  PG_Widget::UpdateRect(rs);
  SDL_UpdateRects(SDL_GetVideoSurface(), 1, &rs);
	
  int done=0;	
	while( !done ) {
		GLenum gl_error;
		char* pg_error;
		SDL_Event event;


		gl_view1.Update();

		glRotatef(1, 1.0, 1.0, 1.0);

		SDL_GL_SwapBuffers( );

		/* Check for error conditions. */
		gl_error = glGetError( );

		if( gl_error != GL_NO_ERROR ) {
			fprintf( stderr, "testgl: OpenGL error: %d\n", gl_error );
		}

		pg_error = SDL_GetError( );

		if( pg_error[0] != '\0' ) {
			fprintf(stderr, "testgl: SDL error '%s'\n", pg_error);
			SDL_ClearError();
		}


		/* Check if there's a pending event. */
/*		if ( SDL_PollEvent( &event ) ) {
			HandleEvent(&event, &app);
		}*/
		

	}


	return(0);
}
Exemple #21
0
bool add_handler(PG_Pointer clientdata) {
    PG_WidgetList* list = (PG_WidgetList*) clientdata;
    new PG_Label(list, PG_Rect(0,0,200,100), "Blubber Bla Bla");
    std::cerr << "Add" << std::endl;
    return true;
}
Exemple #22
0
GUI_Help1Menu::GUI_Help1Menu():
GUI_BaseMenu(GUI_HELP1, PG_Rect(HM1_PX,HM1_PY,HM1_VX,HM1_VY)),
Board1(NULL, PG_Rect(HM1_PX,HM1_PY,HM1_VX,HM1_VY)),
mBack1(NULL, PG_Rect(HM1_PX+1, HM1_PY+1, help1->w, help1->h), help1),
Help1Menu(NULL, PG_Rect(HM1_PX+1,HM1_PY+4,HM1_VX-2,25), "Weapons & Bonuses", "GUI_Label"),
lLine1a(NULL, PG_Rect(HM1_G1_PX,HM1_G1_PY, HM1_G1_VX-2, 20), "SMALL PISTOL", "GUI_LabelL"),
lLine1b(NULL, PG_Rect(HM1_G1_PX,HM1_G1_PY+HM1_LY1, HM1_G1_VX-2, 20), "fires small slow projectiles", "GUI_LabelL"),
lLine1c(NULL, PG_Rect(HM1_G1_PX,HM1_G1_PY+2*HM1_LY1, HM1_G1_VX-2, 20), "bounces with shield and some kind of walls", "GUI_LabelL"),
lLine2a(NULL, PG_Rect(HM1_G2_PX,HM1_G2_PY, HM1_G2_VX-2, 20), "BECHEROMET", "GUI_LabelL"),
lLine2b(NULL, PG_Rect(HM1_G2_PX,HM1_G2_PY+HM1_LY1, HM1_G2_VX-2, 20), "fires high piercing shots in clusters", "GUI_LabelL"),
lLine2c(NULL, PG_Rect(HM1_G2_PX,HM1_G2_PY+2*HM1_LY1, HM1_G2_VX-2, 20), "loaded by becherovka bottles", "GUI_LabelL"),
lLine3a(NULL, PG_Rect(HM1_G3_PX,HM1_G3_PY, HM1_G3_VX-2, 20), "RAILGUN", "GUI_LabelL"),
lLine3b(NULL, PG_Rect(HM1_G3_PX,HM1_G3_PY+HM1_LY1, HM1_G3_VX-2, 20), "after small delay for charge fires long fireline", "GUI_LabelL"),
lLine3c(NULL, PG_Rect(HM1_G3_PX,HM1_G3_PY+2*HM1_LY1, HM1_G3_VX-2, 20), "works on basis of pressed alcohol gas", "GUI_LabelL"),
lLine4a(NULL, PG_Rect(HM1_G4_PX,HM1_G4_PY, HM1_G4_VX-2, 20), "RAPID BOMB", "GUI_LabelL"),
lLine4b(NULL, PG_Rect(HM1_G4_PX,HM1_G4_PY+HM1_LY1, HM1_G4_VX-2, 20), "droped bomb blows up after a period of time", "GUI_LabelL"),
lLine4c(NULL, PG_Rect(HM1_G4_PX,HM1_G4_PY+2*HM1_LY1, HM1_G4_VX-2, 20), "chemical modification of rapid drink", "GUI_LabelL"),
lLine5a(NULL, PG_Rect(HM1_G5_PX,HM1_G5_PY, HM1_G5_VX-2, 20), "BETON GRENADE", "GUI_LabelL"),
lLine5b(NULL, PG_Rect(HM1_G5_PX,HM1_G5_PY+HM1_LY1, HM1_G5_VX-2, 20), "after throwed detonates when stroked", "GUI_LabelL"),
lLine5c(NULL, PG_Rect(HM1_G5_PX,HM1_G5_PY+2*HM1_LY1, HM1_G5_VX-2, 20), "deadly modification of beton mixture", "GUI_LabelL"),
lI1a(NULL, PG_Rect(HM1_I1_PX,HM1_I1_PY, HM1_I1_VX-2, 20), "DIAMOND", "GUI_LabelL"),
lI1b(NULL, PG_Rect(HM1_I1_PX,HM1_I1_PY+HM1_LY2, HM1_I1_VX-2, 20), "80 points", "GUI_LabelL"),
lI2a(NULL, PG_Rect(HM1_I2_PX,HM1_I2_PY, HM1_I2_VX-2, 20), "DRINK", "GUI_LabelL"),
lI2b(NULL, PG_Rect(HM1_I2_PX,HM1_I2_PY+HM1_LY2, HM1_I2_VX-2, 20), "20 points", "GUI_LabelL"),
lI3a(NULL, PG_Rect(HM1_I3_PX,HM1_I3_PY, HM1_I3_VX-2, 20), "GOLD", "GUI_LabelL"),
lI3b(NULL, PG_Rect(HM1_I3_PX,HM1_I3_PY+HM1_LY2, HM1_I3_VX-2, 20), "6 points", "GUI_LabelL"),
lI4a(NULL, PG_Rect(HM1_I4_PX,HM1_I4_PY, HM1_I4_VX-2, 20), "GOLD", "GUI_LabelL"),
lI4b(NULL, PG_Rect(HM1_I4_PX,HM1_I4_PY+HM1_LY2, HM1_I4_VX-2, 20), "5 points", "GUI_LabelL"),
lI5a(NULL, PG_Rect(HM1_I5_PX,HM1_I5_PY, HM1_I5_VX-2, 20), "COCTAIL", "GUI_LabelL"),
lI5b(NULL, PG_Rect(HM1_I5_PX,HM1_I5_PY+HM1_LY2, HM1_I5_VX-2, 20), "11 points", "GUI_LabelL"),
lI6a(NULL, PG_Rect(HM1_I6_PX,HM1_I6_PY, HM1_I6_VX-2, 20), "COCTAIL", "GUI_LabelL"),
lI6b(NULL, PG_Rect(HM1_I6_PX,HM1_I6_PY+HM1_LY2, HM1_I6_VX-2, 20), "13 points", "GUI_LabelL"),
//bPrev(NULL, 2, PG_Rect(HM1_PX+5,HM1_PY+330,70,20), "PREV"),
bReturn(NULL, 1, PG_Rect(HM1_PX+(HM1_VX-100)/2,HM1_PY+330,100,20), "RETURN"),
bNext(NULL, 3, PG_Rect(HM1_PX+HM1_VX-5-70,HM1_PY+330,70,20), "NEXT")
{
  Default();

  Help1Menu.SetFont(MainFont);

  AddChild(&Board1);
  AddChild(&mBack1);

  AddChild(&Help1Menu);

  AddChild(&lLine1a);
  AddChild(&lLine1b);
  AddChild(&lLine1c);

  AddChild(&lLine2a);
  AddChild(&lLine2b);
  AddChild(&lLine2c);

  AddChild(&lLine3a);
  AddChild(&lLine3b);
  AddChild(&lLine3c);

  AddChild(&lLine4a);
  AddChild(&lLine4b);
  AddChild(&lLine4c);

  AddChild(&lLine5a);
  AddChild(&lLine5b);
  AddChild(&lLine5c);

  AddChild(&lI1a);
  AddChild(&lI1b);
  AddChild(&lI2a);
  AddChild(&lI2b);
  AddChild(&lI3a);
  AddChild(&lI3b);
  AddChild(&lI4a);
  AddChild(&lI4b);
  AddChild(&lI5a);
  AddChild(&lI5b);
  AddChild(&lI6a);
  AddChild(&lI6b);

  AddChild(&bReturn);
  AddChild(&bNext);
}
Exemple #23
0
GUI_ClientMenu::GUI_ClientMenu() : GUI_BaseMenu(GUI_CLIENT, PG_Rect(CMS_PX,CMS_PY,CMS_VX,CMS_VY)) {

	ClientMenu = new PG_Label(this, PG_Rect(1,4,CMS_VX-2,25), "CLIENT OPTIONS", "GUI_Label");
	lEffect = new PG_Label(this, PG_Rect(1,30,CMS_VX-2,20), "This settings will affect the client side of the game.", "GUI_Label");
	lClientName = new PG_Label(this, PG_Rect(1,65, 119,20), "Station name:", "GUI_Label");
	eClientName = new GUI_TextEdit(this, PG_Rect(120,65,215,20));
	lClientDesc = new PG_Label(this, PG_Rect(1,90, 119,20), "Station finger:", "GUI_Label");
	eClientDesc  = new GUI_TextEdit(this, PG_Rect(120,90,215,20));
	cDelTmps = new GUI_CheckBox(this, PG_Rect(25,115,310,CB_SIZEY), "delete temporary files after transmission", false, GUI_Gray64);
	cDRqs = new GUI_CheckBox(this, PG_Rect(25,140,310,CB_SIZEY), "allow download requests", false, GUI_Gray64);
	cURqs = new GUI_CheckBox(this, PG_Rect(25,165,310,CB_SIZEY), "allow upload requests", false, GUI_Gray64);
	bSet = new GUI_ButtonSmall(this, 1, PG_Rect(25,190,150, 25), "APPLY");
	bCancel = new GUI_ButtonSmall(this, 2, PG_Rect(25+150+10,190,150,25), "BACK");

	Default();

	ClientMenu->SetFont(MainFont);

	lClientName->SetAlignment(PG_TA_RIGHT);
	lClientDesc->SetAlignment(PG_TA_RIGHT);

	LoadThemeStyle("GUI_Board");
}
Exemple #24
0
GUI_Help2Menu::GUI_Help2Menu():
GUI_BaseMenu(GUI_HELP2, PG_Rect(HM2_PX,HM2_PY,HM2_VX,HM2_VY)),
Board1(NULL, PG_Rect(HM2_PX,HM2_PY,HM2_VX,HM2_VY)),
mBack1(NULL, PG_Rect(HM2_PX+1, HM2_PY+1, help2->w, help2->h), help2),
Help2Menu(NULL, PG_Rect(HM2_PX+1,HM2_PY+4,HM2_VX-2,25), "Items & Ammo", "GUI_Label"),
lI1a(NULL, PG_Rect(HM2_I1_PX,HM2_I1_PY, HM2_I1_VX-2, 20), "SPEED", "GUI_LabelL"),
lI1b(NULL, PG_Rect(HM2_I1_PX,HM2_I1_PY+HM2_LY1, HM2_I1_VX-2, 20), "faster moving", "GUI_LabelL"),
lI2a(NULL, PG_Rect(HM2_I2_PX,HM2_I2_PY, HM2_I2_VX-2, 20), "POWER", "GUI_LabelL"),
lI2b(NULL, PG_Rect(HM2_I2_PX,HM2_I2_PY+HM2_LY1, HM2_I2_VX-2, 20), "full bomb power", "GUI_LabelL"),
lI3a(NULL, PG_Rect(HM2_I3_PX,HM2_I3_PY, HM2_I3_VX-2, 20), "SHIELD", "GUI_LabelL"),
lI3b(NULL, PG_Rect(HM2_I3_PX,HM2_I3_PY+HM2_LY1, HM2_I3_VX-2, 20), "add shields", "GUI_LabelL"),
lI4a(NULL, PG_Rect(HM2_I4_PX,HM2_I4_PY, HM2_I4_VX-2, 20), "INVISIBILITY", "GUI_LabelL"),
lI4b(NULL, PG_Rect(HM2_I4_PX,HM2_I4_PY+HM2_LY1, HM2_I4_VX-2, 20), "", "GUI_LabelL"),
lI5a(NULL, PG_Rect(HM2_I5_PX,HM2_I5_PY, HM2_I5_VX-2, 20), "PUNCH", "GUI_LabelL"),
lI5b(NULL, PG_Rect(HM2_I5_PX,HM2_I5_PY+HM2_LY1, HM2_I5_VX-2, 20), "punching bombs", "GUI_LabelL"),
lI6a(NULL, PG_Rect(HM2_I6_PX,HM2_I6_PY, HM2_I6_VX-2, 20), "WARP", "GUI_LabelL"),
lI6b(NULL, PG_Rect(HM2_I6_PX,HM2_I6_PY+HM2_LY1, HM2_I6_VX-2, 20), "add warps", "GUI_LabelL"),
lI7a(NULL, PG_Rect(HM2_I7_PX,HM2_I7_PY, HM2_I7_VX-2, 20), "GLASSES", "GUI_LabelL"),
lI7b(NULL, PG_Rect(HM2_I7_PX,HM2_I7_PY+HM2_LY1, HM2_I7_VX-2, 20), "detecting invisibles", "GUI_LabelL"),
lJ1a(NULL, PG_Rect(HM2_J1_PX,HM2_J1_PY, HM2_J1_VX-2, 20), "BECHEROMET", "GUI_LabelL"),
lJ1b(NULL, PG_Rect(HM2_J1_PX,HM2_J1_PY+HM2_LY2, HM2_J1_VX-2, 20), "enable weapon", "GUI_LabelL"),
lJ2a(NULL, PG_Rect(HM2_J2_PX,HM2_J2_PY, HM2_J2_VX-2, 20), "RAILGUN", "GUI_LabelL"),
lJ2b(NULL, PG_Rect(HM2_J2_PX,HM2_J2_PY+HM2_LY2, HM2_J2_VX-2, 20), "enable weapon", "GUI_LabelL"),
lJ3a(NULL, PG_Rect(HM2_J3_PX,HM2_J3_PY, HM2_J3_VX-2, 20), "BOMB", "GUI_LabelL"),
lJ3b(NULL, PG_Rect(HM2_J3_PX,HM2_J3_PY+HM2_LY2, HM2_J3_VX-2, 20), "enable weapon", "GUI_LabelL"),
lJ4a(NULL, PG_Rect(HM2_J4_PX,HM2_J4_PY, HM2_J4_VX-2, 20), "GRENADE", "GUI_LabelL"),
lJ4b(NULL, PG_Rect(HM2_J4_PX,HM2_J4_PY+HM2_LY2, HM2_J4_VX-2, 20), "enable weapon", "GUI_LabelL"),
lJ5a(NULL, PG_Rect(HM2_J5_PX,HM2_J5_PY, HM2_J5_VX-2, 20), "AMMO", "GUI_LabelL"),
lJ5b(NULL, PG_Rect(HM2_J5_PX,HM2_J5_PY+HM2_LY2, HM2_J5_VX-2, 20), "becheromet", "GUI_LabelL"),
lJ6a(NULL, PG_Rect(HM2_J6_PX,HM2_J6_PY, HM2_J6_VX-2, 20), "AMMO", "GUI_LabelL"),
lJ6b(NULL, PG_Rect(HM2_J6_PX,HM2_J6_PY+HM2_LY2, HM2_J6_VX-2, 20), "railgun", "GUI_LabelL"),
lJ7a(NULL, PG_Rect(HM2_J7_PX,HM2_J7_PY, HM2_J7_VX-2, 20), "AMMO", "GUI_LabelL"),
lJ7b(NULL, PG_Rect(HM2_J7_PX,HM2_J7_PY+HM2_LY2, HM2_J7_VX-2, 20), "bombs", "GUI_LabelL"),
lK1a(NULL, PG_Rect(HM2_K1_PX,HM2_K1_PY, HM2_K1_VX-2, 20), "AMMO", "GUI_LabelL"),
lK1b(NULL, PG_Rect(HM2_K1_PX,HM2_K1_PY+HM2_LY3, HM2_K1_VX-2, 20), "grenades", "GUI_LabelL"),
lK2a(NULL, PG_Rect(HM2_K2_PX,HM2_K2_PY, HM2_K2_VX-2, 20), "TURTLE", "GUI_LabelL"),
lK2b(NULL, PG_Rect(HM2_K2_PX,HM2_K2_PY+HM2_LY3, HM2_K2_VX-2, 20), "slower moving", "GUI_LabelL"),
lK3a(NULL, PG_Rect(HM2_K3_PX,HM2_K3_PY, HM2_K3_VX-2, 20), "GLUE", "GUI_LabelL"),
lK3b(NULL, PG_Rect(HM2_K3_PX,HM2_K3_PY+HM2_LY3, HM2_K3_VX-2, 20), "not able moving", "GUI_LabelL"),
lK4a(NULL, PG_Rect(HM2_K4_PX,HM2_K4_PY, HM2_K4_VX-2, 20), "REVERSE", "GUI_LabelL"),
lK4b(NULL, PG_Rect(HM2_K4_PX,HM2_K4_PY+HM2_LY3, HM2_K4_VX-2, 20), "reverse controls", "GUI_LabelL"),
lK5a(NULL, PG_Rect(HM2_K5_PX,HM2_K5_PY, HM2_K5_VX-2, 20), "LOST", "GUI_LabelL"),
lK5b(NULL, PG_Rect(HM2_K5_PX,HM2_K5_PY+HM2_LY3, HM2_K5_VX-2, 20), "disable weapons", "GUI_LabelL"),
lK6a(NULL, PG_Rect(HM2_K6_PX,HM2_K6_PY, HM2_K6_VX-2, 20), "BERSERK", "GUI_LabelL"),
lK6b(NULL, PG_Rect(HM2_K6_PX,HM2_K6_PY+HM2_LY3, HM2_K6_VX-2, 20), "kill by touch", "GUI_LabelL"),
lK7a(NULL, PG_Rect(HM2_K7_PX,HM2_K7_PY, HM2_K7_VX-2, 20), " ", "GUI_LabelL"),
lK7b(NULL, PG_Rect(HM2_K7_PX,HM2_K7_PY+HM2_LY3, HM2_K7_VX-2, 20), " ", "GUI_LabelL"),
bPrev(NULL, 2, PG_Rect(HM2_PX+5,HM2_PY+365,70,20), "PREV"),
bReturn(NULL, 1, PG_Rect(HM2_PX+(HM2_VX-100)/2,HM2_PY+365,100,20), "RETURN")
//bNext(NULL, 3, PG_Rect(HM2_PX+HM2_VX-5-70,HM2_PY+365,70,20), "NEXT")
{
  Default();

  Help2Menu.SetFont(MainFont);
  
  AddChild(&Board1);
  AddChild(&mBack1);

  AddChild(&Help2Menu);
  
  AddChild(&lI1a);
  AddChild(&lI1b);
  AddChild(&lI2a);
  AddChild(&lI2b);
  AddChild(&lI3a);
  AddChild(&lI3b);
  AddChild(&lI4a);
  AddChild(&lI4b);
  AddChild(&lI5a);
  AddChild(&lI5b);
  AddChild(&lI6a);
  AddChild(&lI6b);
  AddChild(&lI7a);
  AddChild(&lI7b);
  
  AddChild(&lJ1a);
  AddChild(&lJ1b);
  AddChild(&lJ2a);
  AddChild(&lJ2b);
  AddChild(&lJ3a);
  AddChild(&lJ3b);
  AddChild(&lJ4a);
  AddChild(&lJ4b);
  AddChild(&lJ5a);
  AddChild(&lJ5b);
  AddChild(&lJ6a);
  AddChild(&lJ6b);
  AddChild(&lJ7a);
  AddChild(&lJ7b);
  
  AddChild(&lK1a);
  AddChild(&lK1b);
  AddChild(&lK2a);
  AddChild(&lK2b);
  AddChild(&lK3a);
  AddChild(&lK3b);
  AddChild(&lK4a);
  AddChild(&lK4b);
  AddChild(&lK5a);
  AddChild(&lK5b);
  AddChild(&lK6a);
  AddChild(&lK6b);
  AddChild(&lK7a);
  AddChild(&lK7b);
  
  AddChild(&bReturn);
  AddChild(&bPrev);
}
Exemple #25
0
int main( int argc, char **argv )
{
	PG_Application app;
	
	app.LoadTheme( "default" );
	
	app.InitScreen( 640, 480, 0 );
	app.SetEmergencyQuit(true);
	
	PG_Label l( NULL, PG_Rect(10,50,250,25), NULL );
	l.Show();
	
	PG_TabBar bar( NULL, PG_Rect(10, 10, 300, 33) );
	bar.sigTabSelect.connect(slot(handleTab), &l);
	bar.Show();
	
	bar.AddTab("Tab1");
	bar.AddTab("Tab2");
	bar.AddTab("Tab3");
	bar.AddTab("MoreTab1");
	bar.AddTab("MoreTab2");
	bar.AddTab("MoreTab3");
	bar.AddTab("EvenLongerTab1");
	bar.AddTab("Tab4");
	
	PG_NoteBook notebook(NULL, PG_Rect(50, 100, 300, 200));
	
	notebook.sigPageSelect.connect(slot(handlePageSelect));
	
	PG_Button b(NULL, 1, PG_Rect(0,0,10,10), "Big fat button");
	b.sigButtonClick.connect(slot(handleBigFatButton));
	
	notebook.AddPage("button", &b, slot(handlePageButton));
	
	PG_Widget* custom = notebook.CreatePage("custom", slot(handlePageCustom));
	custom->SetID(2);
	PG_Label label(custom, PG_Rect(5,5,100,25), "My Page");
	PG_CheckButton check(custom, -1, PG_Rect(5,35,150,25), "Check me");
	
	PG_ListBox listpage(NULL, PG_Rect(0,0,300,100));
	listpage.AddItem(new PG_ListBoxItem(25, "Item1"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item2"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item3"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item4"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item5"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item6"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item7"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item8"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item9"));
	listpage.AddItem(new PG_ListBoxItem(25, "Item10"));
	listpage.SetID(3);
	
	notebook.AddPage("list", &listpage);

	PG_NoteBook subnotebook(NULL, PG_Rect(0,0,100,100));
	
	PG_Widget* complex = subnotebook.CreatePage("custom2");
	PG_Button b2(complex, -1, PG_Rect(10,10,100,25), "Button");
	
	subnotebook.AddPage("button2", new PG_Button(NULL, -1, 	PG_Rect(0,0,10,10), "Not so big button"));
	
	notebook.AddPage("complex", &subnotebook);
	
	notebook.Show();
	
	app.Run();
	
	return 0;
}
Exemple #26
0
PG_ListBoxBaseItem::PG_ListBoxBaseItem(PG_Widget* parent, Uint16 height, void* userdata) : PG_Label(parent, PG_Rect(0,0,0,height)) {
	my_userdata = userdata;
	my_selected = false;
	my_hover = false;
	//my_itemheight = height;

	if (parent != NULL) {
		SetIndent(GetParent()->GetIndent());
		SetAlignment(GetParent()->GetAlignment());
	}
}