Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2015
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. #include <SFGUI/SFGUI.hpp>
  2. #include <SFGUI/Widgets.hpp>
  3. #include <SFML/Graphics.hpp>
  4.  
  5. const int SCREEN_WIDTH = 800;
  6. const int SCREEN_HEIGHT = 600;
  7.  
  8. class Example {
  9. public:
  10. void OnButtonClick();
  11. void OnWindow2Close();
  12.  
  13. void Run();
  14.  
  15. private:
  16. sfg::SFGUI m_sfgui;
  17. sfg::Window::Ptr window2;
  18. };
  19.  
  20. void Example::OnButtonClick()
  21. {
  22. window2->Show( true );
  23. }
  24.  
  25. void Example::OnWindow2Close()
  26. {
  27. window2->Show( false );
  28. }
  29.  
  30. void Example::Run() {
  31. sf::RenderWindow render_window( sf::VideoMode( 800, 600 ), "SFML" );
  32. auto button = sfg::Button::Create( "Open Window" );
  33. button->GetSignal( sfg::Widget::OnLeftClick ).Connect( std::bind( &Example::OnButtonClick, this ) );
  34.  
  35. auto box = sfg::Box::Create( sfg::Box::Orientation::VERTICAL, 5.0f );
  36. box->Pack( button, false );
  37.  
  38. auto window = sfg::Window::Create();
  39. window->Add( box );
  40.  
  41. window2 = sfg::Window::Create();
  42. window2->SetTitle( "Close me" );
  43. window2->SetStyle( window2->GetStyle() | sfg::Window::CLOSE );
  44. window2->GetSignal( sfg::Window::OnCloseButton ).Connect( std::bind( &Example::OnWindow2Close, this ) );
  45. window2->SetRequisition( sf::Vector2f( 200, 200 ) );
  46. window2->SetPosition( sf::Vector2f( 200, 200 ) );
  47. window2->Show( false );
  48.  
  49. // Create a desktop and add the window to it.
  50. sfg::Desktop desktop;
  51. desktop.Add( window );
  52. desktop.Add( window2 );
  53.  
  54. // We're not using SFML to render anything in this program, so reset OpenGL
  55. // states. Otherwise we wouldn't see anything.
  56. render_window.resetGLStates();
  57.  
  58. // Main loop!
  59. sf::Event event;
  60. sf::Clock clock;
  61.  
  62. while( render_window.isOpen() ) {
  63. // Event processing.
  64. while( render_window.pollEvent( event ) ) {
  65. desktop.HandleEvent( event );
  66.  
  67. // If window is about to be closed, leave program.
  68. if( event.type == sf::Event::Closed ) {
  69. render_window.close();
  70. }
  71. }
  72.  
  73. // Update SFGUI with elapsed seconds since last call.
  74. desktop.Update( clock.restart().asSeconds() );
  75.  
  76. // Rendering.
  77. render_window.clear();
  78. m_sfgui.Display( render_window );
  79. render_window.display();
  80. }
  81. }
  82.  
  83. int main() {
  84. Example example;
  85. example.Run();
  86.  
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement