]> git.tdb.fi Git - libs/gltk.git/commitdiff
Reorder class members
authorMikko Rasa <tdb@tdb.fi>
Tue, 27 Nov 2007 08:41:36 +0000 (08:41 +0000)
committerMikko Rasa <tdb@tdb.fi>
Tue, 27 Nov 2007 08:41:36 +0000 (08:41 +0000)
Add Id tags to all files
Add basic documentation to all classes

33 files changed:
Build
source/alignment.cpp
source/alignment.h
source/button.cpp
source/button.h
source/entry.cpp
source/entry.h
source/geometry.cpp
source/geometry.h
source/graphic.cpp
source/graphic.h
source/hslider.cpp
source/hslider.h
source/indicator.cpp
source/indicator.h
source/label.cpp
source/label.h
source/panel.cpp
source/panel.h
source/part.cpp
source/part.h
source/resources.cpp
source/resources.h
source/root.cpp
source/root.h
source/slider.cpp
source/slider.h
source/state.cpp
source/state.h
source/style.cpp
source/style.h
source/widget.cpp
source/widget.h

diff --git a/Build b/Build
index b7bffe45fbee37e52760c9de3b138d27b2ad79e5..c0dcafcf6819d5d7d1d48477ebc17d841e44cf2e 100644 (file)
--- a/Build
+++ b/Build
@@ -1,3 +1,5 @@
+/* $Id$ */
+
 package "mspgltk"
 {
        require "mspgl";
index bb5d392b50bd5977c3dc6957548d7fd9f0cccaf2..110aa09e47d911d06a6574590020a0aa52f7170b 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <msp/gl/transform.h>
 #include "alignment.h"
 #include "geometry.h"
index c89148d1cadc826ac4db661780dfa823a08d5af9..56d6766b758512a4433f503c5b01b65b9d5f612e 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_ALIGNMENT_H_
 #define MSP_GLTK_ALIGNMENT_H_
 
index 543782e8306a448e616377b6d435c01ee185b218..f078ca6fcae2420ed88bdc8b41e32d786366d08e 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "button.h"
 #include "part.h"
 
index 841786c4def84f7795197dbfd623e182ed2a35df..bd818417c917802fd4b0f65cb1905f10ddfeb2e6 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_BUTTON_H_
 #define MSP_GLTK_BUTTON_H_
 
@@ -7,6 +14,10 @@
 namespace Msp {
 namespace GLtk {
 
+/**
+A clickable button widget.  Buttons can have a text label, which is displayed
+in a spacial part "text".
+*/
 class Button: public Widget
 {
 public:
@@ -17,6 +28,11 @@ public:
                Button &get_object() const;
        };
 
+private
+       std::string text;
+       bool pressed;
+
+public:
        sigc::signal<void> signal_clicked;
 
        Button(const Resources &, const std::string & =std::string());
@@ -26,9 +42,6 @@ public:
        void pointer_enter();
        void pointer_leave();
 private:
-       std::string text;
-       bool pressed;
-
        const char *get_class() const { return "button"; }
        void render_part(const Part &) const;
 };
index 65bae7214001e842929aab8618982dfbf11cdc84..2c9b9d68ce5caa5a9cf585ebb99f3879dc827603 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <SDL/SDL_keysym.h>
 #include <msp/gl/matrix.h>
 #include <msp/gl/texture.h>
index 2c9c31448cd4f2c6c3b6403297956109427b412e..bd986c2ca82c26f64daa9248a5f874045f1ecf18 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_ENTRY_H_
 #define MSP_GLTK_ENTRY_H_
 
 namespace Msp {
 namespace GLtk {
 
+/**
+Text entry field.
+
+Special parts:
+
+  text    The current text of the widget.  Graphics are ignored.
+  cursor  Indicates the current input position.  Fill_x is ignored.
+*/
 class Entry: public Widget
 {
+private:
+       std::string text;
+       unsigned edit_pos;
+
 public:
        Entry(const Resources &, const std::string & =std::string());
+
        void set_text(const std::string &);
        const std::string &get_text() const { return text; }
+
        void key_press(unsigned, unsigned, wchar_t);
        void focus_in();
        void focus_out();
 private:
-       std::string text;
-       unsigned edit_pos;
-
        const char *get_class() const { return "entry"; }
        void render_part(const Part &) const;
 };
index d7a0756d00652e37823be27f7cfd64b70c346073..6183928673f2e51b1344335550dfe76cf8d99b05 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "geometry.h"
 
 namespace Msp {
index fdef8ace97d45557d9450f4fca535c3fc2446e01..6dc982727070ed2f09dbd357f94963922ee8d8e1 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_GEOMETRY_H_
 #define MSP_GLTK_GEOMETRY_H_
 
index 01bfcdb6a177db0fc16d8acf04498fcb4db47124..0c874c8d1c0dd785e4bfe024822a35139c1fa801 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <msp/gl/immediate.h>
 #include "graphic.h"
 #include "resources.h"
index b93111348175874150190c1666c5d6896d6efe61..1647d2f811f49704ca3ce9795fdedaef637ebcb9 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_GRAPHIC_H_
 #define MSP_GLTK_GRAPHIC_H_
 
@@ -10,6 +17,9 @@ namespace GLtk {
 
 class Resources;
 
+/**
+Stores a single graphical element.  Graphics are used as parts of widgets.
+*/
 class Graphic
 {
 public:
@@ -31,6 +41,14 @@ public:
                void shadow();
        };
 
+private:
+       Sides border;
+       Sides shadow;
+       const GL::Texture2D *texture;
+       Geometry slice;
+       bool repeat;
+
+public:
        Graphic();
        const Sides &get_border() const { return border; }
        const Sides &get_shadow() const { return shadow; }
@@ -39,12 +57,6 @@ public:
        unsigned get_height() const { return slice.h; }
        void render(unsigned, unsigned) const;
 private:
-       Sides border;
-       Sides shadow;
-       const GL::Texture2D *texture;
-       Geometry slice;
-       bool repeat;
-
        void create_coords(float, float, float, float, float, std::vector<float> &) const;
        void create_texcoords(float, float, float, float, float, std::vector<float> &) const;
 };
index 8a9cbb86fdb4ef0615119cb694e932ce5bfb7ba7..f19eafee419db334409007df3eb1e02be402856a 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <msp/gl/matrix.h>
 #include <msp/gl/transform.h>
 #include "graphic.h"
index 25ad0b19e597061f856496ade7e8d4085bfce92d..0ce63770777580c0c7e5c67ae4d01a208f79e954 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_HSLIDER_H_
 #define MSP_GLTK_HSLIDER_H_
 
 namespace Msp {
 namespace GLtk {
 
+/**
+Horizontal slider widget.  A special part named "slider" will be positioned at
+the current value of the widget.  The fill_x attribute is ignored.
+*/
 class HSlider: public Slider
 {
+private:
+       bool dragging;
+       int drag_start_x;
+       double drag_start_value;
+
 public:
        HSlider(const Resources &);
        void button_press(int, int, unsigned);
        void button_release(int, int, unsigned);
        void pointer_motion(int, int);
 private:
-       bool dragging;
-       int drag_start_x;
-       double drag_start_value;
-
        const char *get_class() const { return "hslider"; }
        void render_part(const Part &) const;
        unsigned get_slider_width() const;
index 682837a6864d92fc1cd1051ce8031faf77a61feb..86c25247e28eee4d08e6e41938f58526317ee74c 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "indicator.h"
 
 namespace Msp {
index c8ecbc53ecae34dad48458a3441b87fd94ddf294..dd8a26e52ac06fa459370bf75331726fa1936316 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_INDICATOR_H_
 #define MSP_GLTK_INDICATOR_H_
 
@@ -6,6 +13,9 @@
 namespace Msp {
 namespace GLtk {
 
+/**
+An Indicator visualizes a boolean state.  It can be either active or inactive.
+*/
 class Indicator: public Widget
 {
 public:
index 9676fa37ab148bfaccb23d1ccc65b38f363d48d7..36637d0828e66995c8c8519b06c38e4cab48dbc6 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "label.h"
 #include "part.h"
 
index 8380ef0eaaa8676eca5b348790830690297b4924..373e4e4af095d4440875cebad70c8f7497cea279 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_LABEL_H_
 #define MSP_GLTK_LABEL_H_
 
@@ -6,6 +13,9 @@
 namespace Msp {
 namespace GLtk {
 
+/**
+Labels display static text.  There is one special part: "text".
+*/
 class Label: public Widget
 {
 public:
@@ -16,11 +26,14 @@ public:
                Label &get_object();
        };
 
-       Label(const Resources &, const std::string & =std::string());
-       void set_text(const std::string &);
 private:
        std::string text;
 
+public:
+       Label(const Resources &, const std::string & =std::string());
+       void set_text(const std::string &);
+
+private:
        const char *get_class() const { return "label"; }
        void render_part(const Part &) const;
 };
index c763e6e811afa5cd63926fb1971f047fb37e5c70..529ec199183d20e1b31cdb3675b3025450fb4ca5 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <msp/core/refptr.h>
 #include "button.h"
 #include "label.h"
@@ -24,6 +31,11 @@ Panel::~Panel()
                delete *i;
 }
 
+void Panel::add(Widget &wdg)
+{
+       children.push_back(&wdg);
+}
+
 void Panel::button_press(int x, int y, unsigned btn)
 {
        if(pointer_grab>0)
@@ -89,11 +101,6 @@ void Panel::focus_out()
        set_input_focus(0);
 }
 
-void Panel::add(Widget &wdg)
-{
-       children.push_back(&wdg);
-}
-
 void Panel::render_part(const Part &part) const
 {
        if(part.get_name()=="children")
index d922a991eb281b16017304786388d8915bc78170..b4fc0237f5a1b2d408a04cccc96fac975183e518 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_PANEL_H_
 #define MSP_GLTK_PANEL_H_
 
@@ -6,6 +13,11 @@
 namespace Msp {
 namespace GLtk {
 
+/**
+Panels are containers for other widgets.  Panel styles should have a special
+part "children" to render the child widgets.  All properties of this part are
+ignored.
+*/
 class Panel: public Widget
 {
 public:
@@ -23,10 +35,22 @@ public:
                void panel(const std::string &);
        };
 
+private:
+       typedef std::list<Widget *> ChildSeq;
+
+       ChildSeq children;
+       Widget *pointer_focus;
+       unsigned pointer_grab;
+       Widget *input_focus;
+
+       Panel(const Panel &);
+       Panel &operator=(const Panel &);
+public:
        Panel(const Resources &);
        ~Panel();
 
        void add(Widget &);
+
        void button_press(int, int, unsigned);
        void button_release(int, int, unsigned);
        void pointer_motion(int, int);
@@ -34,15 +58,6 @@ public:
        void key_release(unsigned, unsigned);
        void focus_out();
 private:
-       typedef std::list<Widget *> ChildSeq;
-
-       ChildSeq children;
-       Widget *pointer_focus;
-       unsigned pointer_grab;
-       Widget *input_focus;
-
-       Panel(const Panel &);
-       Panel &operator=(const Panel &);
        const char *get_class() const { return "panel"; }
        void render_part(const Part &) const;
        void set_pointer_focus(Widget *);
index d65fc2efd00e60686151ac1b6185b5e19dd9f3ed..f5e4b79ef5c36a674f329fd9ca3dbc9a575c5e1c 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "geometry.h"
 #include "part.h"
 #include "resources.h"
index 58386ca8f611560ad5fa21ba9cf28b8259dea365..5736f7a476d9a5d72b3ded4c040138b38ef0888c 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_PART_H_
 #define MSP_GLTK_PART_H_
 
@@ -13,6 +20,9 @@ namespace GLtk {
 class Graphic;
 class Resources;
 
+/**
+Defines a single graphical element of a widget style.
+*/
 class Part
 {
 public:
@@ -31,6 +41,16 @@ public:
                void fill(bool, bool);
        };
 
+private:
+       std::string name;
+       const Graphic *graphic[N_STATES_];
+       unsigned width;
+       unsigned height;
+       Alignment align;
+       bool fill_x;
+       bool fill_y;
+
+public:
        Part(const std::string &);
        const std::string &get_name() const { return name; }
        const Graphic *get_graphic(State) const;
@@ -40,14 +60,6 @@ public:
        bool get_fill_x() const { return fill_x; }
        bool get_fill_y() const { return fill_y; }
        void render(const Geometry &, State) const;
-private:
-       std::string name;
-       const Graphic *graphic[N_STATES_];
-       unsigned width;
-       unsigned height;
-       Alignment align;
-       bool fill_x;
-       bool fill_y;
 };
 typedef std::list<Part> PartSeq;
 
index 3b0f4f9154648b88d7254cb6f575854de341193b..35af009697647a8a2900718b46728ff3a0c8e2c3 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <msp/core/except.h>
 #include "resources.h"
 
index 3d39393bac979b144f54d152d73dc69563355c5e..8fb2185448b7d20c291b07e3560486a75660e779 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_RESOURCES_H_
 #define MSP_GLTK_RESOURCES_H_
 
 namespace Msp {
 namespace GLtk {
 
+/**
+Stores resources such as styles and graphics.  All widgets require a Resources
+instance in constructor.
+*/
 class Resources: public DataFile::Collection
 {
 private:
index 32cd87940fe22e71abcef2769f2c3b6516181005..a59c939b5b1415d1e918c7fe7c7a023652303ee6 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "root.h"
 
 namespace Msp {
index 809780cf291829720cf328fd5bfe9604cf63b01b..863f1f781eaaf486ac0bb84d847f80ca34bd9033 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_ROOT_H_
 #define MSP_GLTK_ROOT_H_
 
 namespace Msp {
 namespace GLtk {
 
+/**
+A Root is a special type of Panel that covers and entire Window and accepts
+input from it.  When created, a Root widget will take its size from the window
+it is created for.  The size can be changed, but a Root should always be
+rendered to fill the window in order to get coordinates mapped correctly.
+*/
 class Root: public Panel
 {
-public:
-       Root(Resources &, Window &);
 private:
        Window &window;
 
+public:
+       Root(Resources &, Window &);
+private:
        const char *get_class() const { return "root"; }
        void button_press_event(int, int, unsigned, unsigned);
        void button_release_event(int, int, unsigned, unsigned);
index 11e4c24dc6461c0c49910b030ee18a7a6240a00d..52a4b4d3b97ccf11d4209b767619018aec3d8674 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "slider.h"
 
 namespace Msp {
@@ -11,19 +18,6 @@ Slider::Slider(const Resources &r):
        step(0.1)
 { }
 
-void Slider::set_range(double a, double b)
-{
-       min=a;
-       max=b;
-       set_value(value);
-}
-
-void Slider::set_step(double s)
-{
-       step=s;
-       set_value(value);
-}
-
 void Slider::set_value(double v)
 {
        double old_value=value;
@@ -42,5 +36,18 @@ void Slider::set_value(double v)
                signal_value_changed.emit(value);
 }
 
+void Slider::set_range(double a, double b)
+{
+       min=a;
+       max=b;
+       set_value(value);
+}
+
+void Slider::set_step(double s)
+{
+       step=s;
+       set_value(value);
+}
+
 } // namespace GLtk
 } // namespace Msp
index d4ae46b632040fe9b6fb8dd8c90a21a7a5125af8..8eb373667405dbb17cc25bb22fc5f9167b985eb9 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_SLIDER_H_
 #define MSP_GLTK_SLIDER_H_
 
 namespace Msp {
 namespace GLtk {
 
+/**
+Sliders are used to adjust numeric values visually.  This class provides the
+common interface for sliders - see classes HSlider and VSlider (NYI) for
+concrete variations.
+*/
 class Slider: public Widget
 {
+protected:
+       double min, max;
+       double value;
+       double step;
+
 public:
        sigc::signal<void, double> signal_value_changed;
 
+protected:
+       Slider(const Resources &);
+public:
        void set_value(double);
        void set_range(double, double);
        void set_step(double);
        double get_value() const { return value; }
-protected:
-       double min, max;
-       double value;
-       double step;
-
-       Slider(const Resources &);
 };
 
 } // namespace GLtk
index 9e44e14d200ff00a3c9b804baf29d8af59ef94b8..368e69350156337f7e48d2c6a2aaaad8d4f2239a 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "state.h"
 
 using namespace std;
index 4e57990c9f015b9ddb2827d767322f188b2b6c3f..8e29ab063dde7cad948514005ff561f3e986a02a 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_STATE_H_
 #define MSP_GLTK_STATE_H_
 
index b4ee82d10eff5d1e454ebf767430d0edd941ed17..6c116570fe24677fbb9002eb3061d2e3f7f0c9c2 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include "resources.h"
 #include "style.h"
 
index bc210a23fd7ff00a251a9d58c91caa840bea782f..0bbdc21d23d59eb4269bee0dbed3888cc11d1412 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_STYLE_H_
 #define MSP_GLTK_STYLE_H_
 
@@ -11,6 +18,10 @@ namespace GLtk {
 
 class Resources;
 
+/**
+Styles define what wigets look like.  They are made up of Parts and some
+generic properties.
+*/
 class Style
 {
 public:
@@ -32,14 +43,16 @@ public:
                void part(const std::string &);
        };
 
-       Style();
-       const GL::Font *get_font() const  { return font; }
-       const GL::Color &get_font_color() const { return font_color; }
-       const PartSeq &get_parts() const { return parts; }
 private:
        const GL::Font *font;
        GL::Color font_color;
        PartSeq parts;
+
+public:
+       Style();
+       const GL::Font *get_font() const  { return font; }
+       const GL::Color &get_font_color() const { return font_color; }
+       const PartSeq &get_parts() const { return parts; }
 };
 
 } // namespace GLtk
index e1538dec221bedc9a190c5904421ce6e1d16d87c..e20ea82b56fcf085a2cab9a8eb7a1e0e96aaad19 100644 (file)
@@ -1,14 +1,27 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #include <msp/gl/matrix.h>
 #include <msp/gl/transform.h>
 #include "resources.h"
 #include "widget.h"
 
-#include <iostream>
 using namespace std;
 
 namespace Msp {
 namespace GLtk {
 
+Widget::Widget(const Resources &r):
+       res(r),
+       style(0),
+       state(NORMAL),
+       visible(true)
+{ }
+
 void Widget::set_position(int x, int y)
 {
        geom.x=x;
@@ -44,24 +57,6 @@ void Widget::render() const
        GL::pop_matrix();
 }
 
-Widget::Widget(const Resources &r):
-       res(r),
-       style(0),
-       state(NORMAL),
-       visible(true)
-{ }
-
-void Widget::update_style()
-{
-       string sname=get_class();
-       if(!style_name.empty())
-       {
-               sname+='-';
-               sname+=style_name;
-       }
-       style=res.get<Style>(sname);
-}
-
 void Widget::render_part(const Part &part) const
 {
        render_graphic(part);
@@ -94,6 +89,17 @@ void Widget::render_text(const Part &part, const string &text) const
        GL::pop_matrix();
 }
 
+void Widget::update_style()
+{
+       string sname=get_class();
+       if(!style_name.empty())
+       {
+               sname+='-';
+               sname+=style_name;
+       }
+       style=res.get<Style>(sname);
+}
+
 
 Widget::Loader::Loader(Widget &w):
        wdg(w)
index 557df434adcd34f98d858324ab753e8271b9a1a5..255f0425bcc719f3161ccb32e8aaa3b75888d1e5 100644 (file)
@@ -1,3 +1,10 @@
+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
 #ifndef MSP_GLTK_WIDGET_H_
 #define MSP_GLTK_WIDGET_H_
 
@@ -12,6 +19,10 @@ class Part;
 class Resources;
 class Style;
 
+/**
+Base class for all widgets.  Derived classes should call update_style in 
+constructor, because it can't be done correctly in the Widget constructor.
+*/
 class Widget
 {
 public:
@@ -29,14 +40,38 @@ public:
                void style(const std::string &);
        };
 
+protected:
+       const Resources &res;
+       Geometry geom;
+       std::string style_name;
+       const Style *style;
+       State state;
+       bool visible;
+
+       Widget(const Resources &);
+public:
        virtual ~Widget() { }
        void set_position(int, int);
        void set_size(unsigned, unsigned);
        void set_geometry(const Geometry &);
+
+       /**
+       Sets the widget style.  The final style name is constructed by concatenating
+       the widget class and the style name with a dash.
+       */
        void set_style(const std::string &);
+
        const Geometry &get_geometry() const { return geom; }
        bool is_visible() const { return visible; }
+
        void render() const;
+protected:
+       virtual void render_part(const Part &) const;
+       void render_graphic(const Part &) const;
+       void render_text(const Part &, const std::string &) const;
+
+public:
+       // Events
        virtual void button_press(int, int, unsigned) { }
        virtual void button_release(int, int, unsigned) { }
        virtual void pointer_motion(int, int) { }
@@ -46,20 +81,14 @@ public:
        virtual void key_release(unsigned, unsigned) { }
        virtual void focus_in() { }
        virtual void focus_out() { }
-protected:
-       const Resources &res;
-       Geometry geom;
-       std::string style_name;
-       const Style *style;
-       State state;
-       bool visible;
 
-       Widget(const Resources &);
+protected:
+       /**
+       Returns the name of the widget class.  Used for style lookup.
+       */
        virtual const char *get_class() const { return "widget"; }
+
        void update_style();
-       virtual void render_part(const Part &) const;
-       void render_graphic(const Part &) const;
-       void render_text(const Part &, const std::string &) const;
 };
 
 } // namespace GLtk