]> git.tdb.fi Git - libs/gltk.git/commitdiff
Add API declarations
authorMikko Rasa <tdb@tdb.fi>
Fri, 18 Aug 2023 21:22:14 +0000 (00:22 +0300)
committerMikko Rasa <tdb@tdb.fi>
Fri, 18 Aug 2023 21:22:44 +0000 (00:22 +0300)
36 files changed:
source/arrangement.h
source/button.h
source/column.h
source/container.h
source/dialog.h
source/draghandle.h
source/dropdown.h
source/entry.h
source/floatingarrangement.h
source/geometry.h
source/graphic.h
source/grid.h
source/image.h
source/indicator.h
source/inputmethod.h
source/label.h
source/layout.h
source/lineararrangement.h
source/list.h
source/listdata.h
source/mspgltk_api.h [new file with mode: 0644]
source/panel.h
source/part.h
source/partcache.h
source/progressbar.h
source/resources.h
source/root.h
source/row.h
source/slider.h
source/stack.h
source/state.h
source/style.h
source/systemkeyboardinput.h
source/text.h
source/toggle.h
source/widget.h

index 7028aed4ecfd868b0ccfedb56e58194094179e02..31001c4d081686e8932e68acf541f1a0b6fb957e 100644 (file)
@@ -4,20 +4,21 @@
 #include <list>
 #include <stdexcept>
 #include "layout.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
 class Widget;
 
-class arrangement_error: public std::logic_error
+class MSPGLTK_API arrangement_error: public std::logic_error
 {
 public:
        arrangement_error(const std::string &w): std::logic_error(w) { }
        virtual ~arrangement_error() throw() { }
 };
 
-class Arrangement
+class MSPGLTK_API Arrangement
 {
 protected:
        enum Side
index 844fe88c30fe786d9c460030f35a87ad11f78a10..2af9cf9d02c520b8cc1beb39f6b5f12230f249c5 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <sigc++/sigc++.h>
 #include <msp/gl/texture2d.h>
+#include "mspgltk_api.h"
 #include "text.h"
 #include "widget.h"
 
@@ -13,10 +14,10 @@ namespace GLtk {
 A clickable button widget.  Buttons can have a text label, which is displayed
 in a spacial part "text".
 */
-class Button: public Widget
+class MSPGLTK_API Button: public Widget
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Button, Widget::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Button, Widget::Loader>
        {
        public:
                Loader(Button &);
index 75ee1d334fd4c10ec135910669c3f454f5a4ebb1..6d6acd6148aae1960018955977bcec81f18d9ac2 100644 (file)
@@ -2,11 +2,12 @@
 #define MSP_GLTK_COLUMN_H_
 
 #include "lineararrangement.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class Column: public LinearArrangement
+class MSPGLTK_API Column: public LinearArrangement
 {
 public:
        Column(Layout &);
index a80cc4e214551cda4348ee10a2986024b030684c..4c38675ea85e4f1dbc2cab354feb183c2ef8b780 100644 (file)
@@ -4,12 +4,13 @@
 #include <list>
 #include <stdexcept>
 #include <sigc++/trackable.h>
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
 namespace GLtk {
 
-class hierarchy_error: public std::logic_error
+class MSPGLTK_API hierarchy_error: public std::logic_error
 {
 public:
        hierarchy_error(const std::string &);
@@ -17,7 +18,7 @@ public:
 };
 
 
-class Container: virtual public Widget
+class MSPGLTK_API Container: virtual public Widget
 {
 protected:
        struct Child: public sigc::trackable
index e910085ca19af8c0ae3c0cd49f927827ebcf6fe1..3eb3f98d2845cbe77a68f592ce418dc38103597d 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_GLTK_DIALOG_H_
 #define MSP_GLTK_DIALOG_H_
 
+#include "mspgltk_api.h"
 #include "panel.h"
 
 namespace Msp {
@@ -12,10 +13,10 @@ class Button;
 A Dialog is used for temporary interaction with the user.  When any of the
 Dialog's action buttons are clicked, it will emit a signal and delete itself.
 */
-class Dialog: public Panel
+class MSPGLTK_API Dialog: public Panel
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Dialog, Panel::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Dialog, Panel::Loader>
        {
        public:
                Loader(Dialog &, WidgetMap &);
index 5643df4a00c3f994e39db1f212898df9861ad3e3..0aae73231877a819cecff1aff7ed733d9d4f6d17 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_GLTK_DRAGHANDLE_H_
 #define MSP_GLTK_DRAGHANDLE_H_
 
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
@@ -10,7 +11,7 @@ namespace GLtk {
 Moves its parent widget when dragged.  This allows turning a Panel or Dialog
 into a movable window.
 */
-class DragHandle: public Widget
+class MSPGLTK_API DragHandle: public Widget
 {
 private:
        bool dragging;
index 2d3feb3ba236e314c4d767af0106a19575ae163e..2de7a87afc2126210c52cd81cec1cc96dee30394 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <sigc++/signal.h>
 #include "list.h"
+#include "mspgltk_api.h"
 #include "text.h"
 #include "widget.h"
 
@@ -11,10 +12,10 @@ namespace GLtk {
 
 class List;
 
-class Dropdown: virtual public Widget, private Container
+class MSPGLTK_API Dropdown: virtual public Widget, private Container
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Dropdown, Widget::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Dropdown, Widget::Loader>
        {
        public:
                Loader(Dropdown &);
index f7dd4ae8a76fe5489064ee9b4a613670ecaa016d..60beef78f80ab1f371d488c61778f1696a59ca78 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GLTK_ENTRY_H_
 
 #include "container.h"
+#include "mspgltk_api.h"
 #include "text.h"
 #include "widget.h"
 
@@ -19,10 +20,10 @@ Special parts:
   cursor  Indicates the current input position.  Fill_x is ignored.
   slider  A vertical slider for multiline entries.
 */
-class Entry: virtual public Widget, private Container
+class MSPGLTK_API Entry: virtual public Widget, private Container
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Entry, Widget::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Entry, Widget::Loader>
        {
        public:
                Loader(Entry &);
index a4ebdd73769a56086259466c805eea503970848e..8539b5964037e382a8f02019c998f3bb76af1868 100644 (file)
@@ -2,11 +2,12 @@
 #define FLOATINGARRANGEMENT_H_
 
 #include "arrangement.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class FloatingArrangement: public Arrangement
+class MSPGLTK_API FloatingArrangement: public Arrangement
 {
 public:
        FloatingArrangement(Layout &);
index 1451a0633e23b5b1107b1ae39f91338820e170ce..8c8c9897335caa0fd55ea79666c2f78de1a73db0 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GLTK_GEOMETRY_H_
 
 #include <msp/datafile/objectloader.h>
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -9,7 +10,7 @@ namespace GLtk {
 /**
 Specifies the position and size of a widget or graphic.
 */
-struct Geometry
+struct MSPGLTK_API Geometry
 {
        int x, y;
        unsigned w, h;
@@ -24,7 +25,7 @@ struct Geometry
 /**
 Specifies margins on the sides of an element.
 */
-struct Sides
+struct MSPGLTK_API Sides
 {
        class Loader: public DataFile::ObjectLoader<Sides>
        {
@@ -51,7 +52,7 @@ struct Sides
 /**
 Performs alignment of nested geometries, such as widgets and their parts.
 */
-struct Alignment
+struct MSPGLTK_API Alignment
 {
        float x, y;
        float w, h;
index 1ae0d5e22d8766a718bbd828329be7bb334663dd..4fed368938016e8613e4a6132155d932889d48a0 100644 (file)
@@ -5,6 +5,7 @@
 #include <msp/gl/texture2d.h>
 #include <msp/datafile/objectloader.h>
 #include "geometry.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -14,7 +15,7 @@ class Resources;
 /**
 Stores a single graphical element.  Graphics are used as parts of widgets.
 */
-class Graphic
+class MSPGLTK_API Graphic
 {
 public:
        class Loader: public DataFile::CollectionObjectLoader<Graphic, Resources>
index 621a29435318317be9aa7d00ea930b9efb93d3c2..29d7b6d37257686cfd0d56b8abb274a333c556f5 100644 (file)
@@ -3,11 +3,12 @@
 
 #include <msp/datafile/objectloader.h>
 #include "arrangement.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class Grid: public Arrangement
+class MSPGLTK_API Grid: public Arrangement
 {
 public:
        class Loader: public DataFile::ObjectLoader<Grid>
index 8b857f41c48ec051309584b2f3d629a6dd0f250e..77357561ead0a54fc147681e580bd67fa80c989c 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GLTK_IMAGE_H_
 
 #include <msp/gl/texture2d.h>
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
@@ -10,7 +11,7 @@ namespace GLtk {
 /**
 A widget for displaying images.
 */
-class Image: public Widget
+class MSPGLTK_API Image: public Widget
 {
 public:
        class Loader: public Msp::DataFile::DerivedObjectLoader<Image, Widget::Loader>
index 90c920c574100ea190166180ea7a3858dfa0888e..2b5b2a397f22cf79c11ec1e567fbaad6e9cf0d3a 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_GLTK_INDICATOR_H_
 #define MSP_GLTK_INDICATOR_H_
 
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
@@ -9,7 +10,7 @@ namespace GLtk {
 /**
 An Indicator visualizes a boolean state.  It can be either active or inactive.
 */
-class Indicator: public Widget
+class MSPGLTK_API Indicator: public Widget
 {
 public:
        virtual const char *get_class() const { return "indicator"; }
index 5d41f0a750991dddc157863bc501e3f3204179e3..1e0f613383392dae36e84dae944fe2a3115364be 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef INPUTMETHOD_H_
 #define INPUTMETHOD_H_
 
+#include "mspgltk_api.h"
+
 namespace Msp {
 namespace GLtk {
 
@@ -34,7 +36,7 @@ enum Navigation
        NAV_CANCEL
 };
 
-class InputMethod
+class MSPGLTK_API InputMethod
 {
 protected:
        Root &root;
index e3cff690005fd358a24b8088a7dc902701d96dbd..3275bca091962e4d77555c45590a733fab80f578 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_GLTK_LABEL_H_
 #define MSP_GLTK_LABEL_H_
 
+#include "mspgltk_api.h"
 #include "text.h"
 #include "widget.h"
 
@@ -10,7 +11,7 @@ namespace GLtk {
 /**
 Labels display static text.  There is one special part: "text".
 */
-class Label: public Widget
+class MSPGLTK_API Label: public Widget
 {
 public:
        class Loader: public DataFile::DerivedObjectLoader<Label, Widget::Loader>
index a13a0934a5761a962ca4eddd553d48c76476872f..7986686c86e440757cbe6d2172526fa8844b275e 100644 (file)
@@ -6,6 +6,7 @@
 #include <sigc++/trackable.h>
 #include <msp/strings/lexicalcast.h>
 #include "geometry.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -50,7 +51,7 @@ Since specifiyng constraints manually can be quite tedious, an Arrangement
 interface is provided to automatically arrange widgets.  See classes Row,
 Column and Grid for some commonly used arrangements.
 */
-class Layout
+class MSPGLTK_API Layout
 {
 private:
        enum
@@ -242,7 +243,7 @@ private:
        void solve_constraints(int, SolveMode);
 };
 
-void operator>>(const LexicalConverter &, Layout::ConstraintType &);
+MSPGLTK_API void operator>>(const LexicalConverter &, Layout::ConstraintType &);
 
 } // namespace GLtk
 } // namespace Msp
index ce49b34edf38c99d9618a2f424cbcc73bafb2adb..71ffcfeebe43314d30a75dbf80a218e6c2023bd9 100644 (file)
@@ -3,14 +3,15 @@
 
 #include <msp/datafile/objectloader.h>
 #include "arrangement.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class LinearArrangement: public Arrangement
+class MSPGLTK_API LinearArrangement: public Arrangement
 {
 public:
-       class Loader: public DataFile::ObjectLoader<LinearArrangement>
+       class MSPGLTK_API Loader: public DataFile::ObjectLoader<LinearArrangement>
        {
        public:
                Loader(LinearArrangement &);
index 19fdaa5df6f4592f2682b0c80982e62a8c697d62..68a96bf36cb65fb0c9361a0b1a156984cc1cd12f 100644 (file)
@@ -7,6 +7,7 @@
 #include "container.h"
 #include "label.h"
 #include "listdata.h"
+#include "mspgltk_api.h"
 #include "slider.h"
 
 namespace Msp {
@@ -15,7 +16,7 @@ namespace GLtk {
 /**
 Thrown if a list's item type is incompatible with its data.
 */
-class incompatible_data: public std::logic_error
+class MSPGLTK_API incompatible_data: public std::logic_error
 {
 public:
        incompatible_data(const std::type_info &);
@@ -27,7 +28,7 @@ public:
 Shows a list of items, allowing the user to select one.  A slider is included
 to allow scrolling through a long list.
 */
-class List: virtual public Widget, private Container
+class MSPGLTK_API List: virtual public Widget, private Container
 {
 public:
        enum ViewMode
@@ -246,7 +247,7 @@ private:
        static void adjust_index(int &, int, int);
 };
 
-void operator>>(const LexicalConverter &, List::ViewMode &);
+MSPGLTK_API void operator>>(const LexicalConverter &, List::ViewMode &);
 
 } // namespace GLtk
 } // namespace Msp
index 9d1a45704fea947c33f1168787c2154b87039da3..9f7d8ba850c7476e857dc911d60de5cd7e7e329c 100644 (file)
@@ -6,11 +6,12 @@
 #include <vector>
 #include <sigc++/signal.h>
 #include <msp/strings/lexicalcast.h>
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class ListData
+class MSPGLTK_API ListData
 {
 public:
        sigc::signal<void, unsigned> signal_item_added;
diff --git a/source/mspgltk_api.h b/source/mspgltk_api.h
new file mode 100644 (file)
index 0000000..745d5f3
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef MSP_GLTK_API_H_
+#define MSP_GLTK_API_H_
+
+#if defined(_WIN32)
+#if defined(MSPGLTK_BUILD)
+#define MSPGLTK_API __declspec(dllexport)
+#elif defined(MSPGLTK_IMPORT)
+#define MSPGLTK_API __declspec(dllimport)
+#else
+#define MSPGLTK_API
+#endif
+#elif defined(__GNUC__)
+#define MSPGLTK_API __attribute__((visibility("default")))
+#else
+#define MSPGLTK_API
+#endif
+
+#endif
index 09096f75c0b06855d3879f517702cde14245b4a2..22f03a22a7174cd32838e6eb7fed6b8f95d6bd5b 100644 (file)
@@ -4,6 +4,7 @@
 #include <msp/core/typeregistry.h>
 #include "container.h"
 #include "layout.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -13,7 +14,7 @@ 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 Container
+class MSPGLTK_API Panel: public Container
 {
 public:
        class Loader: public DataFile::DerivedObjectLoader<Panel, Widget::Loader>
index 252d5a3cbecad1d2fafe1eec17edbced1a592fdf..a8776c2924b8d03308e0c109a8fa6531ec3ca8e2 100644 (file)
@@ -4,6 +4,7 @@
 #include <string>
 #include <msp/datafile/objectloader.h>
 #include "geometry.h"
+#include "mspgltk_api.h"
 #include "state.h"
 
 namespace Msp {
@@ -16,7 +17,7 @@ class Resources;
 /**
 Defines a single graphical element of a widget style.
 */
-class Part
+class MSPGLTK_API Part
 {
 public:
        class Loader: public DataFile::CollectionObjectLoader<Part>
index 4eef1166d1d9e75f0bc39bd27b087350e8cbf3c1..9dc71bf184c8652de6b5e4939a8bab9224a2f512 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <msp/gl/mesh.h>
 #include <msp/gl/texture2d.h>
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -19,7 +20,7 @@ struct CachedPart
        ~CachedPart();
 };
 
-class PartCache
+class MSPGLTK_API PartCache
 {
 public:
        class Rebuild
index c1e17b56890a613d967e21550e0780a7082a2049..d167410028ac18716706f5a7bff92b81e06e0c2a 100644 (file)
@@ -1,12 +1,13 @@
 #ifndef MSP_GLTK_PROGRESSBAR_H_
 #define MSP_GLTK_PROGRESSBAR_H_
 
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
 namespace GLtk {
 
-class ProgressBar: public Widget
+class MSPGLTK_API ProgressBar: public Widget
 {
 private:
        float range;
index 772b72958735a6d34379ff3129204ab11249c27e..ce85b972aec6ecae2003054dc7cd8fa5a29176c0 100644 (file)
@@ -10,6 +10,7 @@
 #include <msp/datafile/directorysource.h>
 #include <msp/fs/path.h>
 #include "graphic.h"
+#include "mspgltk_api.h"
 #include "style.h"
 
 namespace Msp {
@@ -19,7 +20,7 @@ namespace GLtk {
 Stores resources such as styles and graphics.  All widgets require a Resources
 instance in constructor.
 */
-class Resources: public DataFile::Collection
+class MSPGLTK_API Resources: public DataFile::Collection
 {
 public:
        class Loader: public Collection::Loader
index b2e2409e71177734ee7996fd369c5a66c5b474ba..52e23cae677ee6f03df4ee48a8f25d35400954d9 100644 (file)
@@ -11,6 +11,7 @@
 #include <msp/input/mouse.h>
 #include <msp/input/touchscreen.h>
 #include <msp/time/timestamp.h>
+#include "mspgltk_api.h"
 #include "panel.h"
 
 namespace Msp {
@@ -24,7 +25,7 @@ input from keyboard and mouse.  It can be used by itself or in a GL::Pipeline.
 Due to its specialized nature it's recommended to not use it with Scenes or
 other containers.
 */
-class Root: public Panel, public GL::Renderable, public sigc::trackable
+class MSPGLTK_API Root: public Panel, public GL::Renderable, public sigc::trackable
 {
 public:
        sigc::signal<std::string, int, int> signal_tooltip;
index 4bf2d38d9e8d84918520715495789bff87d89732..849ba62bf6afd51de7a13171dcbbaae23cc4a105 100644 (file)
@@ -2,11 +2,12 @@
 #define MSP_GLTK_ROW_H_
 
 #include "lineararrangement.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class Row: public LinearArrangement
+class MSPGLTK_API Row: public LinearArrangement
 {
 public:
        Row(Layout &);
index 4260564a9f9985d80a0a7dc9171ae506beda6eaa..7b878d21fb2f1f6a32be486d4154c05e273c65ed 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GLTK_SLIDER_H_
 
 #include <sigc++/sigc++.h>
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
@@ -12,10 +13,10 @@ Sliders are used to adjust numeric values visually.  This class provides the
 common interface and logic for sliders but can't be instantiated.  Use HSlider
 or VSlider depending on which direction you want the slider to be in.
 */
-class Slider: public Widget
+class MSPGLTK_API Slider: public Widget
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Slider, Widget::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Slider, Widget::Loader>
        {
        public:
                Loader(Slider &);
@@ -71,7 +72,7 @@ protected:
 };
 
 
-class VSlider: public Slider
+class MSPGLTK_API VSlider: public Slider
 {
 public:
        VSlider(): Slider(VERTICAL) { }
@@ -79,7 +80,7 @@ public:
        virtual const char *get_class() const { return "vslider"; }
 };
 
-class HSlider: public Slider
+class MSPGLTK_API HSlider: public Slider
 {
 public:
        HSlider(): Slider(HORIZONTAL) { }
index fa4a44206d87668d0ce5fd5b05a162e64f9a2d4c..53943fda13f13b1d767f2b392947cf6f61e2fcec 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <msp/datafile/objectloader.h>
 #include "arrangement.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -11,7 +12,7 @@ namespace GLtk {
 Arranges widgets on top of one another.  This can be useful in implementing a
 tabbed view where only one tab is visible at a time.
 */
-class Stack: public Arrangement
+class MSPGLTK_API Stack: public Arrangement
 {
 public:
        class Loader: public DataFile::ObjectLoader<Stack>
index eb124691dfba756673b01b3718e1f8c6114062ee..51d17b2bb758fa14e08186c815fc565612148373 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <istream>
 #include <msp/datafile/value.h>
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
@@ -32,7 +33,7 @@ inline State operator&=(State &a, State b)
 inline State operator~(State a)
 { return static_cast<State>(~static_cast<int>(a)); }
 
-extern std::istream &operator>>(std::istream &, State &);
+MSPGLTK_API std::istream &operator>>(std::istream &, State &);
 
 } // namespace GLtk
 } // namespace Msp
index 1eb05c33a286111f5debc65e5f194c38bf3c1bb4..8a3e3a9958c1a3a86c9b0ba08c1316d7458999bb 100644 (file)
@@ -5,6 +5,7 @@
 #include <msp/gl/font.h>
 #include <msp/gl/sampler.h>
 #include <msp/datafile/objectloader.h>
+#include "mspgltk_api.h"
 #include "part.h"
 
 namespace Msp {
@@ -16,7 +17,7 @@ class Resources;
 Styles define what wigets look like.  They are made up of Parts and some
 generic properties.
 */
-class Style
+class MSPGLTK_API Style
 {
 public:
        class Loader: public DataFile::CollectionObjectLoader<Style, Resources>
index 1b37e543cbe7917199491bf5c5f49da4ef1d52a5..999c7ce7363439f8465d1669cf0c176125ff3fa7 100644 (file)
@@ -3,11 +3,12 @@
 
 #include <msp/input/keyboard.h>
 #include "inputmethod.h"
+#include "mspgltk_api.h"
 
 namespace Msp {
 namespace GLtk {
 
-class SystemKeyboardInput: public InputMethod, public sigc::trackable
+class MSPGLTK_API SystemKeyboardInput: public InputMethod, public sigc::trackable
 {
 private:
        Input::Keyboard &keyboard;
index 6ddbb231b37871089f90e6cc90ecfa3ba1a735e9..708380ab60f68734e126485f166bbb5ad0b93058 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <string>
 #include <vector>
+#include "mspgltk_api.h"
 #include "state.h"
 
 namespace Msp {
@@ -16,7 +17,7 @@ class Style;
 /**
 Stores and renders text.  Supports multiline text.
 */
-class Text
+class MSPGLTK_API Text
 {
 private:
        struct Line
index 4845796c854cfd882387f0e780d5b51585142a6e..0f6c610b00ffdd69a08b4fdd1bdf2e902711e7c8 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GLTK_TOGGLE_H_
 
 #include <sigc++/signal.h>
+#include "mspgltk_api.h"
 #include "text.h"
 #include "widget.h"
 
@@ -11,10 +12,10 @@ namespace GLtk {
 /**
 Allows toggling a value between two states.
 */
-class Toggle: public Widget
+class MSPGLTK_API Toggle: public Widget
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Toggle, Widget::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Toggle, Widget::Loader>
        {
        public:
                Loader(Toggle &);
index a94198416a29776bb6eecf6fe3a0305436d2b116..19db87985780223df3a85b51e6f1b5eae77aac72 100644 (file)
@@ -6,6 +6,7 @@
 #include <msp/gl/renderer.h>
 #include "geometry.h"
 #include "inputmethod.h"
+#include "mspgltk_api.h"
 #include "partcache.h"
 #include "state.h"
 
@@ -20,7 +21,7 @@ class Style;
 /**
 Base class for all widgets.
 */
-class Widget
+class MSPGLTK_API Widget
 {
        friend class Container;