diff options
author | Daniele E. Domenichelli <daniele.domenichelli@iit.it> | 2013-08-06 09:33:59 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-08 14:47:06 (GMT) |
commit | 7efef02df29399d37b692e01fb69de63e558585b (patch) | |
tree | 5faedaafc63060018e252aa8c5f876a3ad9fca7b /Tests/FindGTK2/gobject | |
parent | 95fc47aa49515d45afcfb609262bd85025fb4a3d (diff) | |
download | CMake-7efef02df29399d37b692e01fb69de63e558585b.zip CMake-7efef02df29399d37b692e01fb69de63e558585b.tar.gz CMake-7efef02df29399d37b692e01fb69de63e558585b.tar.bz2 |
FindGTK2: Add tests for components and targets in gtk and gtkmm modules
Diffstat (limited to 'Tests/FindGTK2/gobject')
-rw-r--r-- | Tests/FindGTK2/gobject/CMakeLists.txt | 10 | ||||
-rw-r--r-- | Tests/FindGTK2/gobject/main.c | 72 |
2 files changed, 82 insertions, 0 deletions
diff --git a/Tests/FindGTK2/gobject/CMakeLists.txt b/Tests/FindGTK2/gobject/CMakeLists.txt new file mode 100644 index 0000000..c51fd4d --- /dev/null +++ b/Tests/FindGTK2/gobject/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 2.8) + +project(gobject C) + +find_package(GTK2 COMPONENTS gtk REQUIRED) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +add_executable(gobject WIN32 main.c) +target_link_libraries(gobject GTK2::gobject) diff --git a/Tests/FindGTK2/gobject/main.c b/Tests/FindGTK2/gobject/main.c new file mode 100644 index 0000000..d3e13f9 --- /dev/null +++ b/Tests/FindGTK2/gobject/main.c @@ -0,0 +1,72 @@ +/* Taken from https://developer.gnome.org/gobject/stable/chapter-gobject.html */ + + +#include <glib-object.h> + + +#define MAMAN_TYPE_BAR (maman_bar_get_type ()) +#define MAMAN_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_BAR, MamanBar)) +#define MAMAN_IS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_TYPE_BAR)) +#define MAMAN_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAMAN_TYPE_BAR, MamanBarClass)) +#define MAMAN_IS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAMAN_TYPE_BAR)) +#define MAMAN_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAMAN_TYPE_BAR, MamanBarClass)) + +typedef struct _MamanBar MamanBar; +typedef struct _MamanBarClass MamanBarClass; + +struct _MamanBar +{ + GObject parent_instance; + + /* instance members */ +}; + +struct _MamanBarClass +{ + GObjectClass parent_class; + + /* class members */ +}; + +/* will create maman_bar_get_type and set maman_bar_parent_class */ +G_DEFINE_TYPE (MamanBar, maman_bar, G_TYPE_OBJECT); + +static GObject * +maman_bar_constructor (GType gtype, + guint n_properties, + GObjectConstructParam *properties) +{ + GObject *obj; + + { + /* Always chain up to the parent constructor */ + obj = G_OBJECT_CLASS (maman_bar_parent_class)->constructor (gtype, n_properties, properties); + } + + /* update the object state depending on constructor properties */ + + return obj; +} + +static void +maman_bar_class_init (MamanBarClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->constructor = maman_bar_constructor; +} + +static void +maman_bar_init (MamanBar *self) +{ + /* initialize the object */ +} + + +int +main(int argc, char *argv[]) +{ + MamanBar *bar = g_object_new (MAMAN_TYPE_BAR, NULL); + g_object_unref(bar); + return 0; +} |