Re: Glib::Object how can I register properties, types... in the Gobject type system?
- From: "Philip Kovacs" <phil kovacs gmail com>
- To: "Germán Diago" <germandiago gmail com>
- Cc: gtkmm-list gnome org
- Subject: Re: Glib::Object how can I register properties, types... in the Gobject type system?
- Date: Mon, 8 Dec 2008 18:11:15 -0500
Sure, below I have pasted a sample.cc program that demonstrates the relevant GObject concepts, implemented with C++ and Gtkmm/Glibmm/Sigc.
Compile with:
g++ `pkg-config --cflags --libs gtkmm-2.4` -o sample sample.cc
===== sample.c =====
#include <iostream>
#include <gtkmm.h>
using namespace std;
class Sample : public ::Glib::Object
{
public:
// Construction
Sample () :
::Glib::ObjectBase (typeid (Sample)), // inform GObject of your type
m_propertyWeight (*this, "sample-weight"),
m_signalPropertyWeight (this, "sample-weight")
{
// Connect sample-weight change signal to our handler
m_signalPropertyWeight.connect (
::sigc::mem_fun (this, &Sample::onPropertyWeight));
}
virtual ~Sample () {}
public:
// Property "sample-weight" is an int
::Glib::PropertyProxy<int> propertyWeight (void)
{
return ::Glib::PropertyProxy<int> (this, "sample-weight");
}
protected:
void onPropertyWeight (void)
{
// display something when property changes
cout << "property weight changed to " << propertyWeight () << endl;
}
private:
// property weight
::Glib::Property<int> m_propertyWeight;
// signal to inform you of changes to property weight
::Glib::SignalProxyProperty m_signalPropertyWeight;
};
int main (int argc, char* argv[])
{
// most importantly in this example, this step initializes the gobject type system.
::Gtk::Main (argc, argv);
Sample s;
for (int i=1; i<10; i++)
{
s.propertyWeight () = i;
}
}
On Mon, Dec 8, 2008 at 7:21 AM, Germán Diago
<germandiago gmail com> wrote:
Hello. I'm looking at the gtkmm documentation. I would like to know if
it's possible to register signals, GType and properties for types from the
c++ bindings, or if I need to use c directly to do it. I'm new to GObject, so
I don't know very well what I'm doing. What I would like to do is to
get introspection
capabilities at least for signals, types and properties, and I would like them
to be registered in the Gobject type system. Thanks in advance.
_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]