Category Archives: General

New releases of gtkmm and gnomemm

New releases of gtkmm and gnomemm, and
a first version of Bakery for GNOME2. I also
submitted a first draft of my gtkmm2 talk for
GUADEC3 in April in Seville, though at the moment it’s just a
combination of our FAQ and the gtkmm2 CHANGES file.

The #c++ channel on irc.gnome.org is a modest success.
It’s definitely helping us to work by providing a place to
discuss all the tiny details.

On Monday I’m heading to Thailand for 2 weeks,
possibly longer if it’s not too dull.

First versions of gnomemm

I just released the first versions of our gnomemm libraries – libgnomemm, libgnomecanvasmm,
and libgnomeuimm. They aren’t perfect yet, but we can’t wait
forever. I also released gtkmm 1.3.3 for them.

I’m also making slight progress with the ORBit2 C++
branch. It’s my priority at the moment, but it’s very
difficult to get up to speed.

I forgot to mention that
Bradley Bell recently revived GtkExtra–. I
hadn’t bothered
with it for a while, because it’s been ‘stable real soon
now’ for the last 2 years while making huge API changes, and
because GtkSheet shouldn’t be needed with gtkmm2. But some
people are using the Plot widgets, and they have Bradley to
thank for bringing it up-to-date.

There’s still very little work out there. It’s incredible
how the market has gone from surplus to scarcity. I’m
thinking of wandering around Thailand for a few weeks in the
meantime, so I got some immunisation shots today.

We released gtkmm 1.3.2 for gtk+ 1.3.12

We released gtkmm 1.3.2 for gtk+ 1.3.12, which has kenelson‘s new signals/properties accessor
API and reworked code generator. His latest libsigc++
bugfixes also eradicated the mysterious segfaults that were
bothering me. We should release the gnomemm stuff soon. I’ve
already started porting Bakery across.

In real life, I’m back from Eilat, Israel, where I spent
the non-christmas holidays. The diving was nice enough but
the city of Eilat is an awful overpriced hole. I also
visited Petra which was almost completely deserted due to
everybody’s fear of flying.

I then spent New Year (aka Sylvester) skiing with some
friends in Neukirchen, Austria. New Year’s Eve was much more
fun there than it seems to be in most big cities.

The Euro is here, allowing us to spend money from Austria
back in Germany. It feels like a great step forward, and I
hope it shows people that big projects can succeed.

gtkmm2 work is moving along nicely.

gtkmm2 work is moving along nicely. kenelson has made some nice
changes to
our code generator, speeding it up, and making it complain
about any GTK+2 functions that we haven’t wrapped yet.

The various libgnome*mm wrapper libraries are gradually
taking shape, and it’s now possible to build and install
them all from the top-level gnomemm module, using the same
system as the one-big-tarball gtk+-enterprise-edition
module. Paul Davis is getting up to speed on the gtkmm
system and is helping out with libgnomecanvasmm. Hopefully
he can soon take it over completely.

I am very pleased that ORBitC++ has been merged into a
branch of ORBit2, to be merged for real one day. This is
good news for a C++ Bonobo future.

I fly to Eilat, Israel in a few days to escape the Xmas
gloom and to do some more Scuba. I have to stop over in Tel
Aviv for 1 day, which should be interesting.

C++ wrappers for libgnomeui and libgnomecanvas

I started C++ wrappers for libgnomeui and libgnomecanvas for GNOME2 – libgnomeuimm and libgnomecanvasmm. The
shouldn’t take long as we just need to update the stuff from
gnome– 1.2,x. However, I’m hoping that somebody will step
up to take over maintainership of at least libgnomecanvasmm.

I also put together a quick gtkmm_hello external example
to help the newbies.

All of this is in the gnomemm module in cvs, so people
should be able to get a good idea of the GNOME2 C++
situation by just glancing there.

Back from Egypt and the Red Sea.

I’m back from Egypt and the Red Sea. Diving was an
incredibly relaxing experience and I met some wonderful
people that I was very sorry to say goodbye to. I’m trying
to hang on to that less frantic attitude even as I restart
the forlorn search for a new contract.

We just released gtkmm 1.3.1 aimed at the new gtk+
1.3.11. We’ve done a lot of work this month since
gtkmm-1.3.0. In particular we have done a lot of API review
and we are keeping good track of that. The code is also
being tested by our version of gtk-demo.

gtkmm 1.3 is going very well.

gtkmm 1.3 is going very well. We’ll release a new
version to show the new stuff after gtk+1.3.11 is released,
which should be soon.

Most of the big architectural stuff has been done. In
particular I spent a long time figuring out a way to wrap
GTK+ interfaces into C++ MI. That’s done now, though only
for existing implementations. Ideally we would be able to
make the underlying GTK+ instance implement a GTK+ interface
just by additionally inheriting from our wrapper of the
interface, but that will require some extra tricks. The
problem is that every class derived from one of our GTK+
wrappers shares the same GTK+ gtype at the moment.

kenelson has started to rework the
signal connection stuff. I
worried that our developers would object to a change to the
signal API, but we had a vote and they voted overwhelmingly
for the change, which was refreshing.

I discovered some very strange window self-destruction in
gtkmm-1.2 that we’ve inherited from the C API, and which has
obiously confused a lot of people for a while. Daniel came
up with a great fix for this, and I took the opportunity to
add a MainWindow concept to gtkmm. Together these should
remove some really funny-looking code from people’s apps.
This is some of the first code that people see in the
examples, so fixing it so well makes me very happy.

We are well into the API review now, which is approx 80%
done, not including the additional STL-style
container/iterator interface that will be needed for
TreeView and TextView. I’ve done some of the more fun parts
of gtk-demo in C++, which should be good advertising.

I also had to take some time to fix some GTK+ code to
make it construct-time-properties compliant. Writing GTK+ C
code is immensly tedious and it’s even worse if it’s
internals. I wanted to fix libgnomeui too, but that doesn’t
seem possible, mostly because the idea of a constructor is
not as full-featured in GTK+ as in real O-O languages. At
least it’s good enough for libgnomeuimm, which I will start
soon. It will probably be finished quickly as there’s still
no sign of a job on the horizon.

Tomorrow I’m off to Dahab, Egypt for a week to do the
scuba course that I had to cancel at the start of the year
when I broke my ankle. That much sun will feel very strange
after several weeks of night and day gtkmm hacking.

Initial version of gtkmm for GTK+ 1.3

We released an initial version of gtkmm for GTK+ 1.3 – a
major event that represents a lot of time, effort, and
figuring things out. We’re well underway now.

I’m gradually converting the gtk-demo metademo to C++,
adding wrappers where I find it necessary. These TreeView
and TextView and associated objects introduce a couple of
huge new APIs. C coders are going to take a while to get
used to it.

I just finished the properties wrapper mechanism which,
of course, will be much clearer and type-safe than the C
version.

Strangely, I am now comfortable with adding wrapper
mechanisms by modifying some perl code that reads a gtkmm
.hg format and a GTK+ defs format, then modifying the m4
code that is used by the output of that perl code.

Someone on gnotices pointed out that we have almost 500
messages on the list this month, which has got to indicate
that things are going well. The cvs changelog is also huge.