]> git.tdb.fi Git - libs/gltk.git/commitdiff
Update helloworld to compile again
authorMikko Rasa <tdb@tdb.fi>
Fri, 12 Nov 2010 21:43:58 +0000 (21:43 +0000)
committerMikko Rasa <tdb@tdb.fi>
Fri, 12 Nov 2010 21:43:58 +0000 (21:43 +0000)
helloworld.cpp

index b7fa6eed4690d5a8b42ea65568bc5b06ea8aa313..e41361f2fbb523841ff5b5b6d00e5cbcdd79d9d4 100644 (file)
@@ -11,14 +11,9 @@ Demonstrates some of the most common widget types.
 */
 
 #include <msp/core/application.h>
-#include <msp/core/refptr.h>
-#include <msp/gbase/display.h>
-#include <msp/gbase/glcontext.h>
-#include <msp/gbase/window.h>
+#include <msp/gbase/simplewindow.h>
 #include <msp/gl/blend.h>
 #include <msp/gl/matrix.h>
-#include <msp/gl/misc.h>
-#include <msp/gl/projection.h>
 #include <msp/gltk/button.h>
 #include <msp/gltk/entry.h>
 #include <msp/gltk/label.h>
@@ -32,14 +27,12 @@ using namespace Msp;
 class HelloWorld: public Msp::Application
 {
 private:
-       // Objects for setting up an OpenGL window
-       Graphics::Display dpy;
-       Graphics::Window wnd;
-       Graphics::GLContext glc;
+       // An OpenGL window to display our widgets in
+       Graphics::SimpleGLWindow wnd;
 
        // GLtk resources and widgets
        GLtk::Resources res;
-       RefPtr<GLtk::Root> root;
+       GLtk::Root root;
        GLtk::Entry *ent_name;
        GLtk::Label *lbl_hello;
 
@@ -53,58 +46,51 @@ private:
        void show_hello();
 };
 
-Application::RegApp<HelloWorld> HelloWorld::reg;
 
+Application::RegApp<HelloWorld> HelloWorld::reg;
 
 HelloWorld::HelloWorld(int, char **):
-       wnd(dpy, 200, 200),
-       glc(wnd)
+       wnd(200, 200),
+       // Load resources.  This must be done before the root widget is created.
+       res("basic.skin"),
+       // A Root receives input from a Graphics::Window and passes it on
+       root(res, wnd)
 {
        wnd.set_title("Hello World");
        wnd.signal_close.connect(sigc::bind(sigc::mem_fun(this, &HelloWorld::exit), 0));
 
-       // Load resources.  This must be done before any widgets are created.
-       DataFile::load(res, "basic.skin");
-
-       // A Root receives input from a Graphics::Window and passes it on
-       root=new GLtk::Root(res, wnd);
-
        /* Container widgets will delete their contents upon destruction so we can
        safely forget about the pointers after setting the widgets up. */
 
        // Panels can be used to divide the window into sub-areas
-       GLtk::Panel *panel=new GLtk::Panel(res);
-       root->add(*panel);
+       GLtk::Panel *panel = new GLtk::Panel;
+       root.add(*panel);
        panel->set_geometry(GLtk::Geometry(20, 20, 160, 160));
 
        GLtk::Label *lbl;
        // Prompts can be displayed with Labels
-       panel->add(*(lbl=new GLtk::Label(res, "Type your name below:")));
+       panel->add(*(lbl = new GLtk::Label("Type your name below:")));
        lbl->set_geometry(GLtk::Geometry(10, 130, 140, 20));
 
        // The user can type text into an Entry
-       panel->add(*(ent_name=new GLtk::Entry(res)));
+       panel->add(*(ent_name = new GLtk::Entry));
        ent_name->set_geometry(GLtk::Geometry(10, 110, 140, 20));
 
        GLtk::Button *btn;
        // Buttons can be wired to cause things to happen
-       panel->add(*(btn=new GLtk::Button(res, "Hello")));
+       panel->add(*(btn = new GLtk::Button("Hello")));
        btn->set_geometry(GLtk::Geometry(10, 85, 140, 20));
        btn->signal_clicked.connect(sigc::mem_fun(this, &HelloWorld::show_hello));
 
        // Another label for displaying some information
-       panel->add(*(lbl_hello=new GLtk::Label(res)));
+       panel->add(*(lbl_hello = new GLtk::Label));
        lbl_hello->set_geometry(GLtk::Geometry(10, 65, 140, 20));
 
        // The user might want to exit the program (*gasp*)
-       panel->add(*(btn=new GLtk::Button(res, "Exit")));
+       panel->add(*(btn = new GLtk::Button("Exit")));
        btn->set_geometry(GLtk::Geometry(50, 10, 100, 20));
        btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(this, &HelloWorld::exit), 0));
 
-       // Font rendering requires blending
-       GL::enable(GL::BLEND);
-       GL::blend_func(GL::SRC_ALPHA, GL::ONE_MINUS_SRC_ALPHA);
-
        // Done with setting things up, show the window!
        wnd.show();
 }
@@ -112,18 +98,18 @@ HelloWorld::HelloWorld(int, char **):
 // This function will be called periodically from the main loop
 void HelloWorld::tick()
 {
-       dpy.tick();
+       wnd.tick();
 
        // Set up an orthogonal projection matching the root widget
-       GL::matrix_mode(GL::PROJECTION);
-       GL::load_identity();
-       GL::ortho_bottomleft(200, 200);
-       GL::matrix_mode(GL::MODELVIEW);
-       GL::load_identity();
+       GL::MatrixStack::projection() = GL::Matrix::ortho_bottomleft(200, 200);
+       GL::MatrixStack::modelview() = GL::Matrix();
+
+       // Font rendering requires blending
+       GL::Bind bind_blend(GL::Blend::alpha());
 
-       root->render();
+       root.render();
 
-       glc.swap_buffers();
+       wnd.swap_buffers();
 }
 
 // Displays a greeting to the user