[gtkmm/use-dllexport: 5/12] gdk/src/*.hg: Mark classes and APIs with GDKMM_API



commit 80369423271a050d61a62be1b9be4129635f0b37
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Fri Jun 5 12:32:38 2020 +0800

    gdk/src/*.hg: Mark classes and APIs with GDKMM_API
    
    This will mark the classes, along with the APIs and generated methods, with
    GDKMM_API, as appropriate, so that we can export the gdkmm APIs with compiler
    directives instead of using gendef.exe on Visual Studio.

 gdk/src/applaunchcontext.hg      |  8 +++++---
 gdk/src/cairocontext.hg          |  4 ++--
 gdk/src/clipboard.hg             |  8 ++++----
 gdk/src/contentformats.hg        |  8 +++++---
 gdk/src/contentformatsbuilder.hg |  4 ++--
 gdk/src/contentprovider.hg       |  6 +++---
 gdk/src/cursor.hg                |  4 ++--
 gdk/src/device.hg                | 18 +++++++++---------
 gdk/src/devicepad.hg             |  8 +++++---
 gdk/src/devicetool.hg            |  6 +++---
 gdk/src/display.hg               | 16 ++++++++--------
 gdk/src/displaymanager.hg        |  4 ++--
 gdk/src/drag.hg                  | 16 ++++++++--------
 gdk/src/dragsurface.hg           |  6 ++++--
 gdk/src/drawcontext.hg           | 10 ++++++----
 gdk/src/drop.hg                  | 18 +++++++++---------
 gdk/src/enums.hg                 | 18 ++++++++++--------
 gdk/src/event.hg                 | 18 +++++++++---------
 gdk/src/frameclock.hg            |  6 +++---
 gdk/src/frametimings.hg          |  6 ++++--
 gdk/src/glcontext.hg             |  6 +++---
 gdk/src/gltexture.hg             |  6 +++---
 gdk/src/monitor.hg               |  8 ++++----
 gdk/src/paintable.hg             | 11 +++++++----
 gdk/src/pixbuf.hg                | 12 ++++++------
 gdk/src/pixbufanimation.hg       |  4 ++--
 gdk/src/pixbufanimationiter.hg   |  4 ++--
 gdk/src/pixbufformat.hg          |  4 ++--
 gdk/src/pixbufloader.hg          |  4 ++--
 gdk/src/popup.hg                 |  4 ++--
 gdk/src/popuplayout.hg           |  6 +++---
 gdk/src/rectangle.hg             |  9 +++++++--
 gdk/src/rgba.hg                  |  8 +++++---
 gdk/src/seat.hg                  | 12 ++++++------
 gdk/src/snapshot.hg              |  6 ++++--
 gdk/src/surface.hg               | 23 ++++++++++++-----------
 gdk/src/texture.hg               |  6 +++---
 gdk/src/timecoord.hg             |  4 +++-
 gdk/src/toplevel.hg              |  4 ++--
 gdk/src/toplevellayout.hg        |  4 ++--
 gdk/src/types.hg                 |  8 +++++---
 41 files changed, 188 insertions(+), 157 deletions(-)
---
diff --git a/gdk/src/applaunchcontext.hg b/gdk/src/applaunchcontext.hg
index de948e10..8471a61f 100644
--- a/gdk/src/applaunchcontext.hg
+++ b/gdk/src/applaunchcontext.hg
@@ -15,6 +15,8 @@
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <giomm/appinfo.h>
 
 _DEFS(gdkmm,gdk)
@@ -22,7 +24,7 @@ _PINCLUDE(giomm/private/applaunchcontext_p.h)
 
 namespace Gdk
 {
-class Display;
+class GDKMM_API Display;
 
 /** This is an implementation of Gio::AppLaunchContext that
  * handles launching an application in a graphical context. It provides
@@ -31,9 +33,9 @@ class Display;
  *
  * @newin{3,4}
  */
-class AppLaunchContext : public Gio::AppLaunchContext
+class GDKMM_API AppLaunchContext : public Gio::AppLaunchContext
 {
-  _CLASS_GOBJECT(AppLaunchContext, GdkAppLaunchContext, GDK_APP_LAUNCH_CONTEXT, Gio::AppLaunchContext, 
GAppLaunchContext)
+  _CLASS_GOBJECT(AppLaunchContext, GdkAppLaunchContext, GDK_APP_LAUNCH_CONTEXT, Gio::AppLaunchContext, 
GAppLaunchContext, , , GDKMM_API)
 
 protected:
   _CTOR_DEFAULT()
diff --git a/gdk/src/cairocontext.hg b/gdk/src/cairocontext.hg
index 0c2c8baf..ef2420c0 100644
--- a/gdk/src/cairocontext.hg
+++ b/gdk/src/cairocontext.hg
@@ -33,9 +33,9 @@ namespace Gdk
  *
  * @newin{3,94}
  */
-class CairoContext : public Gdk::DrawContext
+class GDKMM_API CairoContext : public Gdk::DrawContext
 {
-  _CLASS_GOBJECT(CairoContext, GdkCairoContext, GDK_CAIRO_CONTEXT, Gdk::DrawContext, GdkDrawContext)
+  _CLASS_GOBJECT(CairoContext, GdkCairoContext, GDK_CAIRO_CONTEXT, Gdk::DrawContext, GdkDrawContext, , , 
GDKMM_API)
 
 protected:
   _CTOR_DEFAULT()
diff --git a/gdk/src/clipboard.hg b/gdk/src/clipboard.hg
index ff414920..3b0d1580 100644
--- a/gdk/src/clipboard.hg
+++ b/gdk/src/clipboard.hg
@@ -25,8 +25,8 @@ _PINCLUDE(glibmm/private/object_p.h)
 
 namespace Gio
 {
-class Cancellable;
-class InputStream;
+class GDKMM_API Cancellable;
+class GDKMM_API InputStream;
 }
 
 namespace Gdk
@@ -53,9 +53,9 @@ namespace Gdk
  *
  * @newin{3,94}
  */
-class Clipboard : public Glib::Object
+class GDKMM_API Clipboard : public Glib::Object
 {
-  _CLASS_GOBJECT(Clipboard, GdkClipboard, GDK_CLIPBOARD, Glib::Object, GObject)
+  _CLASS_GOBJECT(Clipboard, GdkClipboard, GDK_CLIPBOARD, Glib::Object, GObject, , , GDKMM_API)
 
 public:
   _WRAP_METHOD(Glib::RefPtr<Display> get_display(), gdk_clipboard_get_display, refreturn)
diff --git a/gdk/src/contentformats.hg b/gdk/src/contentformats.hg
index 0eb1da94..6f0454e4 100644
--- a/gdk/src/contentformats.hg
+++ b/gdk/src/contentformats.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 _DEFS(gdkmm,gdk)
 
 #include <glibmm/refptr.h>
@@ -60,11 +62,11 @@ namespace Gdk
  *
  * @newin{3,94}
  */
-class ContentFormats final
+class GDKMM_API ContentFormats final
 {
   // GdkContentFormats is actually registered as a boxed type, but it has custom
   // reference-counting instead of copy/free functions, so we use it via RefPtr.
-  _CLASS_OPAQUE_REFCOUNTED(ContentFormats, GdkContentFormats, NONE, gdk_content_formats_ref, 
gdk_content_formats_unref)
+  _CLASS_OPAQUE_REFCOUNTED(ContentFormats, GdkContentFormats, NONE, gdk_content_formats_ref, 
gdk_content_formats_unref, GDKMM_API)
   _IGNORE(gdk_content_formats_ref, gdk_content_formats_unref)
 public:
   /** Creates a new %Gdk::ContentFormats from an array of mime types.
@@ -154,7 +156,7 @@ namespace Glib
 // This is needed so Glib::RefPtr<Gdk::ContentFormats> can be used with
 // Glib::Value and _WRAP_PROPERTY in Gtk::TextBuffer.
 template <>
-class Value<Glib::RefPtr<Gdk::ContentFormats>> : public ValueBase_Boxed
+class GDKMM_API Value<Glib::RefPtr<Gdk::ContentFormats>> : public ValueBase_Boxed
 {
 public:
   typedef Glib::RefPtr<Gdk::ContentFormats> CppType;
diff --git a/gdk/src/contentformatsbuilder.hg b/gdk/src/contentformatsbuilder.hg
index 8d7ef0f0..5a432671 100644
--- a/gdk/src/contentformatsbuilder.hg
+++ b/gdk/src/contentformatsbuilder.hg
@@ -25,11 +25,11 @@ namespace Gdk
  *
  * @newin{3,94}
  */
-class ContentFormatsBuilder final
+class GDKMM_API ContentFormatsBuilder final
 {
   // ContentFormatsBuilder is registered as a boxed type, but it has custom
   // reference-counting instead of copy/free functions, so we use it via RefPtr.
-  _CLASS_OPAQUE_REFCOUNTED(ContentFormatsBuilder, GdkContentFormatsBuilder, NONE, 
gdk_content_formats_builder_ref, gdk_content_formats_builder_unref)
+  _CLASS_OPAQUE_REFCOUNTED(ContentFormatsBuilder, GdkContentFormatsBuilder, NONE, 
gdk_content_formats_builder_ref, gdk_content_formats_builder_unref, GDKMM_API)
   _IGNORE(gdk_content_formats_builder_ref, gdk_content_formats_builder_unref)
 
 public:
diff --git a/gdk/src/contentprovider.hg b/gdk/src/contentprovider.hg
index fbe5809b..de7a11f8 100644
--- a/gdk/src/contentprovider.hg
+++ b/gdk/src/contentprovider.hg
@@ -29,7 +29,7 @@ _CC_INCLUDE(gdk/gdk.h)
 
 namespace Gio
 {
-class OutputStream;
+class GDKMM_API OutputStream;
 }
 
 namespace Gdk
@@ -50,9 +50,9 @@ namespace Gdk
  *
  * @newin{3,94}
  */
-class ContentProvider : public Glib::Object
+class GDKMM_API ContentProvider : public Glib::Object
 {
-  _CLASS_GOBJECT(ContentProvider, GdkContentProvider, GDK_CONTENT_PROVIDER, Glib::Object, GObject)
+  _CLASS_GOBJECT(ContentProvider, GdkContentProvider, GDK_CONTENT_PROVIDER, Glib::Object, GObject, , , 
GDKMM_API)
 
 protected:
   _CTOR_DEFAULT()
diff --git a/gdk/src/cursor.hg b/gdk/src/cursor.hg
index b5e0b14f..05a25c45 100644
--- a/gdk/src/cursor.hg
+++ b/gdk/src/cursor.hg
@@ -26,9 +26,9 @@ namespace Gdk
 
 /** This represents a cursor.
  */
-class Cursor : public Glib::Object
+class GDKMM_API Cursor : public Glib::Object
 {
-  _CLASS_GOBJECT(Cursor, GdkCursor, GDK_CURSOR, Glib::Object, GObject)
+  _CLASS_GOBJECT(Cursor, GdkCursor, GDK_CURSOR, Glib::Object, GObject, , , GDKMM_API)
   _DO_NOT_DERIVE_GTYPE //We use DO_NOT_DERIVE_GTYPE because glib does not allow us to derive from a 
non-fundamental (abstract) type, for some reason.
 
 protected:
diff --git a/gdk/src/device.hg b/gdk/src/device.hg
index 98c0a274..1bdb8196 100644
--- a/gdk/src/device.hg
+++ b/gdk/src/device.hg
@@ -29,26 +29,26 @@ _PINCLUDE(glibmm/private/object_p.h)
 namespace Gdk
 {
 
-_WRAP_ENUM(InputSource, GdkInputSource)
+_WRAP_ENUM(InputSource, GdkInputSource, decl_prefix GDKMM_API)
 
-class DeviceTool;
-class DeviceWithPad;
-class Display;
-class Seat;
-class Surface;
+class GDKMM_API DeviceTool;
+class GDKMM_API DeviceWithPad;
+class GDKMM_API Display;
+class GDKMM_API Seat;
+class GDKMM_API Surface;
 
 /** A Gdk::Device instance contains a detailed description of an extended input device.
  */
-class Device : public Glib::Object
+class GDKMM_API Device : public Glib::Object
 {
-  _CLASS_GOBJECT(Device,GdkDevice,GDK_DEVICE,Glib::Object,GObject)
+  _CLASS_GOBJECT(Device,GdkDevice,GDK_DEVICE,Glib::Object,GObject, , , GDKMM_API)
   _CUSTOM_WRAP_NEW
 
 protected:
   _CTOR_DEFAULT()
 
 public:
-  _WRAP_ENUM(Type, GdkDeviceType)
+  _WRAP_ENUM(Type, GdkDeviceType, decl_prefix GDKMM_API)
 
   _WRAP_METHOD(Glib::ustring get_name() const, gdk_device_get_name)
   _WRAP_METHOD(bool get_has_cursor() const, gdk_device_get_has_cursor)
diff --git a/gdk/src/devicepad.hg b/gdk/src/devicepad.hg
index 9576f810..b88bb660 100644
--- a/gdk/src/devicepad.hg
+++ b/gdk/src/devicepad.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/interface.h>
 
 _DEFS(gdkmm,gdk)
@@ -51,12 +53,12 @@ namespace Gdk
  *
  * @newin{3,96}
  */
-class DevicePad : public Glib::Interface
+class GDKMM_API DevicePad : public Glib::Interface
 {
-  _CLASS_INTERFACE(DevicePad, GdkDevicePad, GDK_DEVICE_PAD, GdkDevicePadInterface)
+  _CLASS_INTERFACE(DevicePad, GdkDevicePad, GDK_DEVICE_PAD, GdkDevicePadInterface, , , GDKMM_API)
 
 public:
-  _WRAP_ENUM(Feature, GdkDevicePadFeature)
+  _WRAP_ENUM(Feature, GdkDevicePadFeature, decl_prefix GDKMM_API)
 
   _WRAP_METHOD(int get_n_groups() const, gdk_device_pad_get_n_groups)
   _WRAP_METHOD(int get_group_n_modes(int group_idx) const, gdk_device_pad_get_group_n_modes)
diff --git a/gdk/src/devicetool.hg b/gdk/src/devicetool.hg
index 9eb31a17..8cdb75b8 100644
--- a/gdk/src/devicetool.hg
+++ b/gdk/src/devicetool.hg
@@ -28,12 +28,12 @@ namespace Gdk
 /**
  * @newin{3,94}
  */
-class DeviceTool : public Glib::Object
+class GDKMM_API DeviceTool : public Glib::Object
 {
-  _CLASS_GOBJECT(DeviceTool, GdkDeviceTool, GDK_DEVICE_TOOL, Glib::Object, GObject)
+  _CLASS_GOBJECT(DeviceTool, GdkDeviceTool, GDK_DEVICE_TOOL, Glib::Object, GObject, , , GDKMM_API)
 
 public:
-  _WRAP_ENUM(Type, GdkDeviceToolType)
+  _WRAP_ENUM(Type, GdkDeviceToolType, decl_prefix GDKMM_API)
 
   _WRAP_METHOD(guint64 get_serial() const, gdk_device_tool_get_serial)
   _WRAP_METHOD(guint64 get_hardware_id() const, gdk_device_tool_get_hardware_id)
diff --git a/gdk/src/display.hg b/gdk/src/display.hg
index 6f8ef913..1b592c90 100644
--- a/gdk/src/display.hg
+++ b/gdk/src/display.hg
@@ -27,7 +27,7 @@ _PINCLUDE(glibmm/private/object_p.h)
 
 namespace Gio
 {
-class ListModel;
+class GDKMM_API ListModel;
 }
 
 namespace Gdk
@@ -35,11 +35,11 @@ namespace Gdk
 
 _CC_INCLUDE(gdk/gdk.h)
 
-class Clipboard;
-class Device;
-class Seat;
-class Monitor;
-class Surface;
+class GDKMM_API Clipboard;
+class GDKMM_API Device;
+class GDKMM_API Seat;
+class GDKMM_API Monitor;
+class GDKMM_API Surface;
 
  /** Gdk::Display object's purpose is two fold:
  *   To grab/ungrab keyboard focus and mouse pointer
@@ -50,9 +50,9 @@ class Surface;
  * various Gdk::Monitor objects currently instantiated by the application. It is also used to grab and 
release the keyboard
  * and the mouse pointer.
  */
-class Display : public Glib::Object
+class GDKMM_API Display : public Glib::Object
 {
-  _CLASS_GOBJECT(Display,GdkDisplay,GDK_DISPLAY,Glib::Object,GObject)
+  _CLASS_GOBJECT(Display,GdkDisplay,GDK_DISPLAY,Glib::Object,GObject, , , GDKMM_API)
 protected:
   _CTOR_DEFAULT
 
diff --git a/gdk/src/displaymanager.hg b/gdk/src/displaymanager.hg
index cbe54d7d..327af7ef 100644
--- a/gdk/src/displaymanager.hg
+++ b/gdk/src/displaymanager.hg
@@ -31,9 +31,9 @@ namespace Gdk
 /** The purpose of the GdkDisplayManager singleton object is to offer notification when displays appear or 
disappear or the
  * default display changes.
  */
-class DisplayManager : public Glib::Object
+class GDKMM_API DisplayManager : public Glib::Object
 {
-  _CLASS_GOBJECT(DisplayManager,GdkDisplayManager,GDK_DISPLAY_MANAGER,Glib::Object,GObject)
+  _CLASS_GOBJECT(DisplayManager,GdkDisplayManager,GDK_DISPLAY_MANAGER,Glib::Object,GObject, , , GDKMM_API)
 protected:
 
 public:
diff --git a/gdk/src/drag.hg b/gdk/src/drag.hg
index ae6476fa..51e62815 100644
--- a/gdk/src/drag.hg
+++ b/gdk/src/drag.hg
@@ -25,20 +25,20 @@ _PINCLUDE(glibmm/private/object_p.h)
 
 namespace Gdk
 {
-class ContentFormats;
-class ContentProvider;
-class Device;
-class Display;
-class Surface;
+class GDKMM_API ContentFormats;
+class GDKMM_API ContentProvider;
+class GDKMM_API Device;
+class GDKMM_API Display;
+class GDKMM_API Surface;
 
-_WRAP_ENUM(DragCancelReason, GdkDragCancelReason)
+_WRAP_ENUM(DragCancelReason, GdkDragCancelReason, decl_prefix GDKMM_API)
 
 /** A %Gdk::Drag holds information about a drag in progress.
  * It is used on both source and destination sides.
  */
-class Drag : public Glib::Object
+class GDKMM_API Drag : public Glib::Object
 {
-  _CLASS_GOBJECT(Drag, GdkDrag, GDK_DRAG, Glib::Object, GObject)
+  _CLASS_GOBJECT(Drag, GdkDrag, GDK_DRAG, Glib::Object, GObject, , , GDKMM_API)
 
 public:
   // The Gtk::DnD namespace contains functions that logically are Gdk::Drag methods.
diff --git a/gdk/src/dragsurface.hg b/gdk/src/dragsurface.hg
index 4a957f8b..ea2a75e7 100644
--- a/gdk/src/dragsurface.hg
+++ b/gdk/src/dragsurface.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/interface.h>
 
 _DEFS(gdkmm,gdk)
@@ -36,9 +38,9 @@ namespace Gdk
  *
  * @newin{3,98}
  */
-class DragSurface : public Glib::Interface
+class GDKMM_API DragSurface : public Glib::Interface
 {
-  _CLASS_INTERFACE(DragSurface, GdkDragSurface, GDK_DRAG_SURFACE, GdkDragSurfaceInterface)
+  _CLASS_INTERFACE(DragSurface, GdkDragSurface, GDK_DRAG_SURFACE, GdkDragSurfaceInterface, , , GDKMM_API)
 
 public:
   _WRAP_METHOD(bool present(int width, int height), gdk_drag_surface_present)
diff --git a/gdk/src/drawcontext.hg b/gdk/src/drawcontext.hg
index cc5c50ed..5995eafb 100644
--- a/gdk/src/drawcontext.hg
+++ b/gdk/src/drawcontext.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/object.h>
 #include <cairomm/region.h>
 
@@ -22,8 +24,8 @@ _PINCLUDE(glibmm/private/object_p.h)
 
 namespace Gdk
 {
-class Display;
-class Surface;
+class GDKMM_API Display;
+class GDKMM_API Surface;
 
 /** Drawing context base class.
  *
@@ -35,9 +37,9 @@ class Surface;
  *
  * @newin{3,90}
  */
-class DrawContext : public Glib::Object
+class GDKMM_API DrawContext : public Glib::Object
 {
-  _CLASS_GOBJECT(DrawContext, GdkDrawContext, GDK_DRAW_CONTEXT, Glib::Object, GObject)
+  _CLASS_GOBJECT(DrawContext, GdkDrawContext, GDK_DRAW_CONTEXT, Glib::Object, GObject, , , GDKMM_API)
 
 protected:
   /// This constructor is protected because only derived classes shall be instantiated.
diff --git a/gdk/src/drop.hg b/gdk/src/drop.hg
index c067d8eb..ded72b5a 100644
--- a/gdk/src/drop.hg
+++ b/gdk/src/drop.hg
@@ -23,26 +23,26 @@ _PINCLUDE(glibmm/private/object_p.h)
 
 namespace Gio
 {
-class Cancellable;
-class InputStream;
+class GDKMM_API Cancellable;
+class GDKMM_API InputStream;
 }
 
 namespace Gdk
 {
-class ContentFormats;
-class Device;
-class Drag;
-class Display;
-class Surface;
+class GDKMM_API ContentFormats;
+class GDKMM_API Device;
+class GDKMM_API Drag;
+class GDKMM_API Display;
+class GDKMM_API Surface;
 
 /** A %Gdk::Drop holds information about a drag in progress.
  * It is used on the destination side.
  *
  * @newin{3,94}
  */
-class Drop : public Glib::Object
+class GDKMM_API Drop : public Glib::Object
 {
-  _CLASS_GOBJECT(Drop, GdkDrop, GDK_DROP, Glib::Object, GObject)
+  _CLASS_GOBJECT(Drop, GdkDrop, GDK_DROP, Glib::Object, GObject, , , GDKMM_API)
 
 public:
   _WRAP_METHOD(Glib::RefPtr<Display> get_display(), gdk_drop_get_display, refreturn)
diff --git a/gdk/src/enums.hg b/gdk/src/enums.hg
index 3e563fc7..8d86b0a3 100644
--- a/gdk/src/enums.hg
+++ b/gdk/src/enums.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/value.h>
 #include <gdk/gdk.h>
 
@@ -21,13 +23,13 @@ _DEFS(gdkmm,gdk)
 
 namespace Gdk
 {
-_WRAP_ENUM(AxisFlags, GdkAxisFlags)
-_WRAP_ENUM(AxisUse, GdkAxisUse)
-_WRAP_ENUM(CrossingMode, GdkCrossingMode)
-_WRAP_ENUM(DragAction, GdkDragAction)
-_WRAP_ENUM(Gravity, GdkGravity)
-_WRAP_ENUM(NotifyType, GdkNotifyType)
-_WRAP_ENUM(ScrollDirection, GdkScrollDirection)
-_WRAP_ENUM(TouchpadGesturePhase, GdkTouchpadGesturePhase)
+_WRAP_ENUM(AxisFlags, GdkAxisFlags, decl_prefix GDKMM_API)
+_WRAP_ENUM(AxisUse, GdkAxisUse, decl_prefix GDKMM_API)
+_WRAP_ENUM(CrossingMode, GdkCrossingMode, decl_prefix GDKMM_API)
+_WRAP_ENUM(DragAction, GdkDragAction, decl_prefix GDKMM_API)
+_WRAP_ENUM(Gravity, GdkGravity, decl_prefix GDKMM_API)
+_WRAP_ENUM(NotifyType, GdkNotifyType, decl_prefix GDKMM_API)
+_WRAP_ENUM(ScrollDirection, GdkScrollDirection, decl_prefix GDKMM_API)
+_WRAP_ENUM(TouchpadGesturePhase, GdkTouchpadGesturePhase, decl_prefix GDKMM_API)
 
 } //namespace Gdk
diff --git a/gdk/src/event.hg b/gdk/src/event.hg
index 27a6dcfe..cc62defd 100644
--- a/gdk/src/event.hg
+++ b/gdk/src/event.hg
@@ -36,13 +36,13 @@ enum { DELETE = GTKMM_MACRO_DEFINITION_DELETE };
 
 namespace Gdk
 {
-class Device;
-class DeviceTool;
-class Display;
-class Drop;
-class Surface;
+class GDKMM_API Device;
+class GDKMM_API DeviceTool;
+class GDKMM_API Display;
+class GDKMM_API Drop;
+class GDKMM_API Surface;
 
-_WRAP_ENUM(KeyMatch, GdkKeyMatch)
+_WRAP_ENUM(KeyMatch, GdkKeyMatch, decl_prefix GDKMM_API)
 
 /** Representing an event sequence.
  * Used to differentiate between multiple touches on multitouch touchscreens.
@@ -57,15 +57,15 @@ struct EventSequence;
  * widgets and passed on to the event controllers of appropriate widgets,
  * so these functions are rarely needed.
  */
-class Event final
+class GDKMM_API Event final
 {
   // GdkEvent is registered as a fundamental type.
   // It has custom reference-counting, so we use it via RefPtr.
-  _CLASS_OPAQUE_REFCOUNTED(Event, GdkEvent, NONE, gdk_event_ref, gdk_event_unref)
+  _CLASS_OPAQUE_REFCOUNTED(Event, GdkEvent, NONE, gdk_event_ref, gdk_event_unref, GDKMM_API)
   _IGNORE(gdk_event_ref, gdk_event_unref)
 
 public:
-  _WRAP_ENUM(Type, GdkEventType)
+  _WRAP_ENUM(Type, GdkEventType, decl_prefix GDKMM_API)
 
   _WRAP_METHOD(Type get_event_type() const, gdk_event_get_event_type)
 
diff --git a/gdk/src/frameclock.hg b/gdk/src/frameclock.hg
index 10d3bf0c..747ffc7e 100644
--- a/gdk/src/frameclock.hg
+++ b/gdk/src/frameclock.hg
@@ -64,12 +64,12 @@ namespace Gdk
  *
  * @newin{3,24}
  */
-class FrameClock : public Glib::Object
+class GDKMM_API FrameClock : public Glib::Object
 {
-  _CLASS_GOBJECT(FrameClock, GdkFrameClock, GDK_FRAME_CLOCK, Glib::Object, GObject)
+  _CLASS_GOBJECT(FrameClock, GdkFrameClock, GDK_FRAME_CLOCK, Glib::Object, GObject, , , GDKMM_API)
 
 public:
-  _WRAP_ENUM(Phase, GdkFrameClockPhase)
+  _WRAP_ENUM(Phase, GdkFrameClockPhase, decl_prefix GDKMM_API)
 
   _WRAP_METHOD(gint64 get_frame_time() const, gdk_frame_clock_get_frame_time)
   _WRAP_METHOD(void request_phase(Phase phase), gdk_frame_clock_request_phase)
diff --git a/gdk/src/frametimings.hg b/gdk/src/frametimings.hg
index ef286f1b..6c5aba94 100644
--- a/gdk/src/frametimings.hg
+++ b/gdk/src/frametimings.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 _DEFS(gdkmm,gdk)
 
 #include <glibmm/refptr.h>
@@ -36,11 +38,11 @@ namespace Gdk
  *
  * @newin{3,24}
  */
-class FrameTimings final
+class GDKMM_API FrameTimings final
 {
   // GdkFrameTimings is registered as a boxed type, but it has custom
   // reference-counting instead of copy/free functions, so we use it via RefPtr.
-  _CLASS_OPAQUE_REFCOUNTED(FrameTimings, GdkFrameTimings, NONE, gdk_frame_timings_ref, 
gdk_frame_timings_unref)
+  _CLASS_OPAQUE_REFCOUNTED(FrameTimings, GdkFrameTimings, NONE, gdk_frame_timings_ref, 
gdk_frame_timings_unref, GDKMM_API)
   _IGNORE(gdk_frame_timings_ref, gdk_frame_timings_unref)
 public:
   _WRAP_METHOD(gint64 get_frame_counter() const, gdk_frame_timings_get_frame_counter)
diff --git a/gdk/src/glcontext.hg b/gdk/src/glcontext.hg
index 5a71c47f..13ecabfc 100644
--- a/gdk/src/glcontext.hg
+++ b/gdk/src/glcontext.hg
@@ -26,7 +26,7 @@ _PINCLUDE(gdkmm/private/drawcontext_p.h)
 namespace Gdk
 {
 
-_WRAP_GERROR(GLError, GdkGLError, GDK_GL_ERROR, newin "3,18")
+_WRAP_GERROR(GLError, GdkGLError, GDK_GL_ERROR, newin "3,18", decl_prefix GDKMM_API)
 
 /** A %Gdk::GLContext is an OpenGL context abstraction.
  *
@@ -34,9 +34,9 @@ _WRAP_GERROR(GLError, GdkGLError, GDK_GL_ERROR, newin "3,18")
  * as Gtk::GLArea on the GTK+ level.
  * @newin{3,18}
  */
-class GLContext : public DrawContext
+class GDKMM_API GLContext : public DrawContext
 {
-  _CLASS_GOBJECT(GLContext, GdkGLContext, GDK_GL_CONTEXT, Gdk::DrawContext, GdkDrawContext)
+  _CLASS_GOBJECT(GLContext, GdkGLContext, GDK_GL_CONTEXT, Gdk::DrawContext, GdkDrawContext, , , GDKMM_API)
 
 protected:
   _CTOR_DEFAULT
diff --git a/gdk/src/gltexture.hg b/gdk/src/gltexture.hg
index c1bb3e8b..10c2ea36 100644
--- a/gdk/src/gltexture.hg
+++ b/gdk/src/gltexture.hg
@@ -21,7 +21,7 @@ _PINCLUDE(gdkmm/private/texture_p.h)
 
 namespace Gdk
 {
-class GLContext;
+class GDKMM_API GLContext;
 
 /** Pixel data.
  *
@@ -36,9 +36,9 @@ class GLContext;
  *
  * @newin{3,94}
  */
-class GLTexture : public Gdk::Texture
+class GDKMM_API GLTexture : public Gdk::Texture
 {
-  _CLASS_GOBJECT(GLTexture, GdkGLTexture, GDK_GL_TEXTURE, Gdk::Texture, GdkTexture)
+  _CLASS_GOBJECT(GLTexture, GdkGLTexture, GDK_GL_TEXTURE, Gdk::Texture, GdkTexture, , , GDKMM_API)
 
 protected:
   _CTOR_DEFAULT()
diff --git a/gdk/src/monitor.hg b/gdk/src/monitor.hg
index a5834eae..e28ca9f1 100644
--- a/gdk/src/monitor.hg
+++ b/gdk/src/monitor.hg
@@ -22,9 +22,9 @@ _PINCLUDE(glibmm/private/object_p.h)
 
 namespace Gdk
 {
-_WRAP_ENUM(SubpixelLayout, GdkSubpixelLayout)
+_WRAP_ENUM(SubpixelLayout, GdkSubpixelLayout, decl_prefix GDKMM_API)
 
-class Display;
+class GDKMM_API Display;
 
 /** Object representing an output.
  *
@@ -35,9 +35,9 @@ class Display;
  *
  * @newin{3,22}
  */
-class Monitor : public Glib::Object
+class GDKMM_API Monitor : public Glib::Object
 {
-  _CLASS_GOBJECT(Monitor, GdkMonitor, GDK_MONITOR, Glib::Object, GObject)
+  _CLASS_GOBJECT(Monitor, GdkMonitor, GDK_MONITOR, Glib::Object, GObject, , , GDKMM_API)
 
 protected:
   _CTOR_DEFAULT()
diff --git a/gdk/src/paintable.hg b/gdk/src/paintable.hg
index 756f031c..5b849f15 100644
--- a/gdk/src/paintable.hg
+++ b/gdk/src/paintable.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/interface.h>
 
 _DEFS(gdkmm,gdk)
@@ -29,7 +31,7 @@ typedef struct _GdkPaintableInterface GdkPaintableInterface;
 
 namespace Gdk
 {
-class Snapshot;
+class GDKMM_API Snapshot;
 
 /** An interface for a paintable region.
  *
@@ -72,14 +74,15 @@ class Snapshot;
  *
  * @newin{3,94}
  */
-class Paintable : public Glib::Interface
+class GDKMM_API Paintable : public Glib::Interface
 {
-  _CLASS_INTERFACE(Paintable, GdkPaintable, GDK_PAINTABLE, GdkPaintableInterface)
+  _CLASS_INTERFACE(Paintable, GdkPaintable, GDK_PAINTABLE, GdkPaintableInterface, , , GDKMM_API)
 
 public:
   _WRAP_ENUM(Flags, GdkPaintableFlags,
     s#^CONTENTS$#STATIC_CONTENTS#,
-    s#^SIZE$#STATIC_SIZE#)
+    s#^SIZE$#STATIC_SIZE#,
+    decl_prefix GDKMM_API)
 
   _WRAP_METHOD(void snapshot(const Glib::RefPtr<Gdk::Snapshot>& snapshot, double width, double height), 
gdk_paintable_snapshot)
   _WRAP_METHOD(Glib::RefPtr<const Paintable> get_current_image() const, gdk_paintable_get_current_image)
diff --git a/gdk/src/pixbuf.hg b/gdk/src/pixbuf.hg
index 2fb2692e..eac2f497 100644
--- a/gdk/src/pixbuf.hg
+++ b/gdk/src/pixbuf.hg
@@ -41,19 +41,19 @@ namespace Gdk
 {
 
 _CC_INCLUDE(gdk-pixbuf/gdk-pixbuf.h)
-_WRAP_ENUM(Colorspace, GdkColorspace)
-_WRAP_ENUM(InterpType, GdkInterpType)
+_WRAP_ENUM(Colorspace, GdkColorspace, decl_prefix GDKMM_API)
+_WRAP_ENUM(InterpType, GdkInterpType, decl_prefix GDKMM_API)
 
 /** Exception class for Gdk::Pixbuf errors.
  */
-_WRAP_GERROR(PixbufError,GdkPixbufError,GDK_PIXBUF_ERROR)
+_WRAP_GERROR(PixbufError,GdkPixbufError,GDK_PIXBUF_ERROR, decl_prefix GDKMM_API)
 
-class Pixbuf
+class GDKMM_API Pixbuf
   : public Glib::Object,
     public Gio::Icon,
     public Gio::LoadableIcon
 {
-  _CLASS_GOBJECT(Pixbuf, GdkPixbuf, GDK_PIXBUF, Glib::Object, GObject)
+  _CLASS_GOBJECT(Pixbuf, GdkPixbuf, GDK_PIXBUF, Glib::Object, GObject, , , GDKMM_API)
   _IMPLEMENTS_INTERFACE(Gio::Icon)
   _IMPLEMENTS_INTERFACE(Gio::LoadableIcon)
   _IGNORE(gdk_pixbuf_ref, gdk_pixbuf_unref,  gdk_pixbuf_non_anim_new)
@@ -83,7 +83,7 @@ protected:
 
 public:
   // Used only internally in gdk-pixbuf: _WRAP_ENUM(AlphaMode, GdkPixbufAlphaMode)
-  _WRAP_ENUM(Rotation, GdkPixbufRotation)
+  _WRAP_ENUM(Rotation, GdkPixbufRotation, decl_prefix GDKMM_API)
 
   using SlotDestroyData = sigc::slot<void(const guint8*)>;
 
diff --git a/gdk/src/pixbufanimation.hg b/gdk/src/pixbufanimation.hg
index 7e503e8c..e555ce7f 100644
--- a/gdk/src/pixbufanimation.hg
+++ b/gdk/src/pixbufanimation.hg
@@ -35,9 +35,9 @@ namespace Gdk
  * To display an animation you don't need to understand its representation, however; you just ask
  * gdk-pixbuf what should be displayed at a given point in time.
  */
-class PixbufAnimation : public Glib::Object
+class GDKMM_API PixbufAnimation : public Glib::Object
 {
-  _CLASS_GOBJECT(PixbufAnimation, GdkPixbufAnimation, GDK_PIXBUF_ANIMATION, Glib::Object, GObject)
+  _CLASS_GOBJECT(PixbufAnimation, GdkPixbufAnimation, GDK_PIXBUF_ANIMATION, Glib::Object, GObject, , , 
GDKMM_API)
   _IGNORE(gdk_pixbuf_animation_ref, gdk_pixbuf_animation_unref)
 protected:
 
diff --git a/gdk/src/pixbufanimationiter.hg b/gdk/src/pixbufanimationiter.hg
index ed1d7746..6c225972 100644
--- a/gdk/src/pixbufanimationiter.hg
+++ b/gdk/src/pixbufanimationiter.hg
@@ -29,9 +29,9 @@ namespace Gdk
 
 /** An iterator which points to a certain position in a PixbufAnimation.
  */
-class PixbufAnimationIter : public Glib::Object
+class GDKMM_API PixbufAnimationIter : public Glib::Object
 {
-  _CLASS_GOBJECT(PixbufAnimationIter, GdkPixbufAnimationIter, GDK_PIXBUF_ANIMATION_ITER, Glib::Object, 
GObject)
+  _CLASS_GOBJECT(PixbufAnimationIter, GdkPixbufAnimationIter, GDK_PIXBUF_ANIMATION_ITER, Glib::Object, 
GObject, , , GDKMM_API)
 protected:
 
   //A constructor (if any) would go here, protected.
diff --git a/gdk/src/pixbufformat.hg b/gdk/src/pixbufformat.hg
index 650ebf03..fc586bec 100644
--- a/gdk/src/pixbufformat.hg
+++ b/gdk/src/pixbufformat.hg
@@ -24,9 +24,9 @@ _DEFS(gdkmm,gdk)
 namespace Gdk
 {
 
-class PixbufFormat
+class GDKMM_API PixbufFormat
 {
-  _CLASS_BOXEDTYPE(PixbufFormat, GdkPixbufFormat, NONE, gdk_pixbuf_format_copy, gdk_pixbuf_format_free)
+  _CLASS_BOXEDTYPE(PixbufFormat, GdkPixbufFormat, NONE, gdk_pixbuf_format_copy, gdk_pixbuf_format_free, 
GDKMM_API)
   _IGNORE(gdk_pixbuf_format_copy, gdk_pixbuf_format_free)
 
 public:
diff --git a/gdk/src/pixbufloader.hg b/gdk/src/pixbufloader.hg
index 3963e954..5de7e553 100644
--- a/gdk/src/pixbufloader.hg
+++ b/gdk/src/pixbufloader.hg
@@ -27,9 +27,9 @@ _PINCLUDE(glibmm/private/object_p.h)
 namespace Gdk
 {
 
-class PixbufLoader : public Glib::Object
+class GDKMM_API PixbufLoader : public Glib::Object
 {
-  _CLASS_GOBJECT(PixbufLoader, GdkPixbufLoader, GDK_PIXBUF_LOADER, Glib::Object, GObject)
+  _CLASS_GOBJECT(PixbufLoader, GdkPixbufLoader, GDK_PIXBUF_LOADER, Glib::Object, GObject, , , GDKMM_API)
 protected:
 
   /** Constructs a pixbuf loader object.
diff --git a/gdk/src/popup.hg b/gdk/src/popup.hg
index 268cd54e..289df73e 100644
--- a/gdk/src/popup.hg
+++ b/gdk/src/popup.hg
@@ -40,9 +40,9 @@ namespace Gdk
  *
  * @newin{3,98}
  */
-class Popup : public Glib::Interface
+class GDKMM_API Popup : public Glib::Interface
 {
-  _CLASS_INTERFACE(Popup, GdkPopup, GDK_POPUP, GdkPopupInterface)
+  _CLASS_INTERFACE(Popup, GdkPopup, GDK_POPUP, GdkPopupInterface, , , GDKMM_API)
 
 public:
   _WRAP_METHOD(bool present(int width, int height, const Glib::RefPtr<PopupLayout>& layout),
diff --git a/gdk/src/popuplayout.hg b/gdk/src/popuplayout.hg
index d0132d1b..f9a8fe12 100644
--- a/gdk/src/popuplayout.hg
+++ b/gdk/src/popuplayout.hg
@@ -25,7 +25,7 @@ _CC_INCLUDE(gdk/gdk.h)
 
 namespace Gdk
 {
-_WRAP_ENUM(AnchorHints, GdkAnchorHints)
+_WRAP_ENUM(AnchorHints, GdkAnchorHints, decl_prefix GDKMM_API)
 
 /** Information for presenting popups.
  *
@@ -35,11 +35,11 @@ _WRAP_ENUM(AnchorHints, GdkAnchorHints)
  *
  * @newin{3,98}
  */
-class PopupLayout final
+class GDKMM_API PopupLayout final
 {
   // GdkPopupLayout is actually registered as a boxed type, but it has custom
   // reference-counting instead of copy/free functions, so we use it via RefPtr.
-  _CLASS_OPAQUE_REFCOUNTED(PopupLayout, GdkPopupLayout, NONE, gdk_popup_layout_ref, gdk_popup_layout_unref)
+  _CLASS_OPAQUE_REFCOUNTED(PopupLayout, GdkPopupLayout, NONE, gdk_popup_layout_ref, gdk_popup_layout_unref, 
GDKMM_API)
   _IGNORE(gdk_popup_layout_ref, gdk_popup_layout_unref)
 public:
 
diff --git a/gdk/src/rectangle.hg b/gdk/src/rectangle.hg
index 8981a0ce..061d331e 100644
--- a/gdk/src/rectangle.hg
+++ b/gdk/src/rectangle.hg
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/value.h>
 #include <gdk/gdk.h>
 
@@ -28,9 +30,9 @@ namespace Gdk
  * The intersection of two rectangles can be computed with intersect().
  * To find the union of two rectangles use join().
  */
-class Rectangle
+class GDKMM_API Rectangle
 {
-  _CLASS_BOXEDTYPE_STATIC(Rectangle, GdkRectangle)
+  _CLASS_BOXEDTYPE_STATIC(Rectangle, GdkRectangle, GDKMM_API)
 public:
 
   /** Creates a new rectangle instance with these dimensions.
@@ -122,6 +124,7 @@ public:
  *
  * @relates Gdk::Rectangle
  */
+GDKMM_API
 Rectangle join(const Rectangle& src1, const Rectangle& src2);
 
 /** Calculates the intersection of two rectangles.
@@ -136,6 +139,7 @@ Rectangle join(const Rectangle& src1, const Rectangle& src2);
  *
  * @relates Gdk::Rectangle
  */
+GDKMM_API
 Rectangle intersect(const Rectangle& src1, const Rectangle& src2);
 
 /** Calculates the intersection of two rectangles.
@@ -152,6 +156,7 @@ Rectangle intersect(const Rectangle& src1, const Rectangle& src2);
  *
  * @relates Gdk::Rectangle
  */
+GDKMM_API
 Rectangle intersect(const Rectangle& src1, const Rectangle& src2, bool& rectangles_intersect);
 
 } // namespace Gdk
diff --git a/gdk/src/rgba.hg b/gdk/src/rgba.hg
index a0dfe30e..b4c71655 100644
--- a/gdk/src/rgba.hg
+++ b/gdk/src/rgba.hg
@@ -16,6 +16,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/value.h>
 #include <gdk/gdk.h> //Needed for our RGBATraits here.
 
@@ -31,9 +33,9 @@ namespace Gdk
  * So the color (0.0, 0.0, 0.0, 0.0) represents transparent black and (1.0, 1.0, 1.0, 1.0) is opaque white.
  * Other values will be clamped to this range when drawing.
  */
-class RGBA
+class GDKMM_API RGBA
 {
-  _CLASS_BOXEDTYPE(RGBA, GdkRGBA, NONE, gdk_rgba_copy, gdk_rgba_free)
+  _CLASS_BOXEDTYPE(RGBA, GdkRGBA, NONE, gdk_rgba_copy, gdk_rgba_free, GDKMM_API)
   _IGNORE(gdk_rgba_copy, gdk_rgba_free)
 public:
 
@@ -209,7 +211,7 @@ public:
   _WRAP_METHOD(bool is_opaque() const, gdk_rgba_is_opaque)
 
 #m4begin
-  _WRAP_EQUAL(gdk_rgba_equal)
+  _WRAP_EQUAL(gdk_rgba_equal,,GDKMM_API)
 #m4end
 };
 
diff --git a/gdk/src/seat.hg b/gdk/src/seat.hg
index 268cb0c7..a0b5aaed 100644
--- a/gdk/src/seat.hg
+++ b/gdk/src/seat.hg
@@ -26,23 +26,23 @@ _PINCLUDE(glibmm/private/object_p.h)
 namespace Gdk
 {
 
-class DeviceTool;
-class Display;
-class Surface;
+class GDKMM_API DeviceTool;
+class GDKMM_API Display;
+class GDKMM_API Surface;
 
 /** A Gdk::Seat object represents a collection of input devices that belong to a user.
  *
  * @newin{3,20}
  */
-class Seat : public Glib::Object
+class GDKMM_API Seat : public Glib::Object
 {
-  _CLASS_GOBJECT(Seat, GdkSeat, GDK_SEAT, Glib::Object, GObject)
+  _CLASS_GOBJECT(Seat, GdkSeat, GDK_SEAT, Glib::Object, GObject, , , GDKMM_API)
 
 protected:
   _CTOR_DEFAULT()
 
 public:
-  _WRAP_ENUM(Capabilities, GdkSeatCapabilities)
+  _WRAP_ENUM(Capabilities, GdkSeatCapabilities, decl_prefix GDKMM_API)
 
   _WRAP_METHOD(Glib::RefPtr<Display> get_display(), gdk_seat_get_display, refreturn)
   _WRAP_METHOD(Glib::RefPtr<const Display> get_display() const, gdk_seat_get_display, refreturn, 
constversion)
diff --git a/gdk/src/snapshot.hg b/gdk/src/snapshot.hg
index 9832a2c2..30e561f0 100644
--- a/gdk/src/snapshot.hg
+++ b/gdk/src/snapshot.hg
@@ -14,6 +14,8 @@
  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <glibmm/object.h>
 
 _DEFS(gdkmm,gdk)
@@ -28,9 +30,9 @@ namespace Gdk
  *
  * @newin{3,94}
  */
-class Snapshot : public Glib::Object
+class GDKMM_API Snapshot : public Glib::Object
 {
-  _CLASS_GOBJECT(Snapshot, GdkSnapshot, GDK_SNAPSHOT, Glib::Object, GObject)
+  _CLASS_GOBJECT(Snapshot, GdkSnapshot, GDK_SNAPSHOT, Glib::Object, GObject, , , GDKMM_API)
 
 public:
   // This class is almost empty
diff --git a/gdk/src/surface.hg b/gdk/src/surface.hg
index ccead682..2c98c671 100644
--- a/gdk/src/surface.hg
+++ b/gdk/src/surface.hg
@@ -34,31 +34,32 @@ _PINCLUDE(glibmm/private/object_p.h)
 namespace Gdk
 {
 
-_WRAP_ENUM(SurfaceEdge, GdkSurfaceEdge)
+_WRAP_ENUM(SurfaceEdge, GdkSurfaceEdge, decl_prefix GDKMM_API)
 _WRAP_ENUM(FullscreenMode, GdkFullscreenMode,
   s#^CURRENT_MONITOR$#ON_CURRENT_MONITOR#,
-  s#^ALL_MONITORS$#ON_ALL_MONITORS#)
+  s#^ALL_MONITORS$#ON_ALL_MONITORS#,
+  decl_prefix GDKMM_API)
 
-class ContentProvider;
-class Cursor;
-class CairoContext;
-class GLContext;
-class FrameClock;
-class Monitor;
+class GDKMM_API ContentProvider;
+class GDKMM_API Cursor;
+class GDKMM_API CairoContext;
+class GDKMM_API GLContext;
+class GDKMM_API FrameClock;
+class GDKMM_API Monitor;
 
 /** A Gdk::Surface is a rectangular region on the screen. It's a low-level object, used to implement 
high-level objects such
  * as Gtk::Widget and Gtk::Window on the GTK+ level. A Gtk::Window is a toplevel window, the thing a user 
might think of as
  * a "window" with a titlebar and so on; a Gtk::Window may contain many Gdk::Surfaces. For example, each 
Gtk::Button has a
  * Gdk::Surface associated with it.
  */
-class Surface : public Glib::Object
+class GDKMM_API Surface : public Glib::Object
 {
-  _CLASS_GOBJECT(Surface, GdkSurface, GDK_SURFACE, Glib::Object, GObject)
+  _CLASS_GOBJECT(Surface, GdkSurface, GDK_SURFACE, Glib::Object, GObject, , , GDKMM_API)
   _STRUCT_NOT_HIDDEN
   _IGNORE(gdk_surface_destroy, gdk_surface_is_destroyed)
 
 public:
-  _WRAP_ENUM(State, GdkSurfaceState)
+  _WRAP_ENUM(State, GdkSurfaceState, decl_prefix GDKMM_API)
 
   // _WRAP_CREATE() would not be very useful here.
   // The gdk_surface_new_*() functions do more than call g_object_new().
diff --git a/gdk/src/texture.hg b/gdk/src/texture.hg
index 6de7eba2..54a0d93d 100644
--- a/gdk/src/texture.hg
+++ b/gdk/src/texture.hg
@@ -27,7 +27,7 @@ class File;
 
 namespace Gdk
 {
-class Pixbuf;
+class GDKMM_API Pixbuf;
 
 /** Pixel data.
  *
@@ -42,9 +42,9 @@ class Pixbuf;
  *
  * @newin{3,94}
  */
-class Texture : public Glib::Object, public Paintable
+class GDKMM_API Texture : public Glib::Object, public Paintable
 {
-  _CLASS_GOBJECT(Texture, GdkTexture, GDK_TEXTURE, Glib::Object, GObject)
+  _CLASS_GOBJECT(Texture, GdkTexture, GDK_TEXTURE, Glib::Object, GObject, , , GDKMM_API)
   _IMPLEMENTS_INTERFACE(Paintable)
 
 protected:
diff --git a/gdk/src/timecoord.hg b/gdk/src/timecoord.hg
index 10d62863..9fbd5575 100644
--- a/gdk/src/timecoord.hg
+++ b/gdk/src/timecoord.hg
@@ -15,6 +15,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+_CONFIGINCLUDE(gdkmmconfig.h)
+
 #include <gdk/gdk.h>
 
 _DEFS(gdkmm,gdk)
@@ -25,7 +27,7 @@ namespace Gdk
 /** A Gdk::TimeCoord instance contains a single event of motion history.
  * You shouldn't be using it as a standalone object.
  */
-class TimeCoord
+class GDKMM_API TimeCoord
 {
   _CLASS_GENERIC(TimeCoord, GdkTimeCoord)
 public:
diff --git a/gdk/src/toplevel.hg b/gdk/src/toplevel.hg
index f39e1d6a..1478ebbc 100644
--- a/gdk/src/toplevel.hg
+++ b/gdk/src/toplevel.hg
@@ -40,9 +40,9 @@ namespace Gdk
  *
  * @newin{3,98}
  */
-class Toplevel : public Glib::Interface
+class GDKMM_API Toplevel : public Glib::Interface
 {
-  _CLASS_INTERFACE(Toplevel, GdkToplevel, GDK_TOPLEVEL, GdkToplevelInterface)
+  _CLASS_INTERFACE(Toplevel, GdkToplevel, GDK_TOPLEVEL, GdkToplevelInterface, , , GDKMM_API)
 
 public:
   _WRAP_METHOD(bool present(int width, int height, const Glib::RefPtr<ToplevelLayout>& layout),
diff --git a/gdk/src/toplevellayout.hg b/gdk/src/toplevellayout.hg
index 226f1deb..babd4397 100644
--- a/gdk/src/toplevellayout.hg
+++ b/gdk/src/toplevellayout.hg
@@ -34,11 +34,11 @@ namespace Gdk
  *
  * @newin{3,98}
  */
-class ToplevelLayout final
+class GDKMM_API ToplevelLayout final
 {
   // GdkToplevelLayout is actually registered as a boxed type, but it has custom
   // reference-counting instead of copy/free functions, so we use it via RefPtr.
-  _CLASS_OPAQUE_REFCOUNTED(ToplevelLayout, GdkToplevelLayout, NONE, gdk_toplevel_layout_ref, 
gdk_toplevel_layout_unref)
+  _CLASS_OPAQUE_REFCOUNTED(ToplevelLayout, GdkToplevelLayout, NONE, gdk_toplevel_layout_ref, 
gdk_toplevel_layout_unref, GDKMM_API)
   _IGNORE(gdk_toplevel_layout_ref, gdk_toplevel_layout_unref)
 public:
 
diff --git a/gdk/src/types.hg b/gdk/src/types.hg
index 4ffe58f4..4d83995f 100644
--- a/gdk/src/types.hg
+++ b/gdk/src/types.hg
@@ -34,13 +34,13 @@ enum { ERROR = GTKMM_MACRO_DEFINITION_ERROR };
 namespace Gdk
 {
 
-class Window;
+class GDKMM_API Window;
 
-_WRAP_ENUM(ModifierType, GdkModifierType)
+_WRAP_ENUM(ModifierType, GdkModifierType, decl_prefix GDKMM_API)
 
 /** This is a simple structure containing an x and y coordinate of a point.
  */
-class Point
+class GDKMM_API Point
 {
   _CLASS_GENERIC(Point, GdkPoint)
 
@@ -100,9 +100,11 @@ namespace Glib
 {
 
 /** @relates Gdk::Point */
+GDKMM_API
 Gdk::Point& wrap(GdkPoint* object);
 
 /** @relates Gdk::Point */
+GDKMM_API
 const Gdk::Point& wrap(const GdkPoint* object);
 
 } // namespace Glib



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]