<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bloggo ergo sum &#187; gtk</title>
	<atom:link href="http://bloggoergosum.com/tag/gtk/feed/" rel="self" type="application/rss+xml" />
	<link>http://bloggoergosum.com</link>
	<description></description>
	<lastBuildDate>Thu, 15 Mar 2012 05:47:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Ok, I get it (or: Gtk+ is better than I thought).</title>
		<link>http://bloggoergosum.com/2007/05/14/ok-i-get-it-or-gtk-is-better-than-i-thought/</link>
		<comments>http://bloggoergosum.com/2007/05/14/ok-i-get-it-or-gtk-is-better-than-i-thought/#comments</comments>
		<pubDate>Mon, 14 May 2007 18:50:17 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[glade]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://bloggoergosum.us/2007/05/14/ok-i-get-it-or-gtk-is-better-than-i-thought/</guid>
		<description><![CDATA[In my last post, I kinda whined about the awkwardness of the Gtkmm API. At least, it seemed that way at the time. I toyed with libglade and Gtk+ for a while first and everything seemed very straightforward and easy. Gtkmm and libglademm are different. They seemed awkward at first, but after further investigation, I <a href="http://bloggoergosum.com/2007/05/14/ok-i-get-it-or-gtk-is-better-than-i-thought/"> read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In my last post, I kinda whined about the awkwardness of the Gtkmm API.  At least, it seemed that way at the time.  I toyed with libglade and Gtk+ for a while first and everything seemed very straightforward and easy.  </p>
<p>Gtkmm and libglademm are different.  They seemed awkward at first, but after further investigation, I like their designs much better, and the advantages presented by C++ seem obvious.  One of my primary objections was that it didn&#8217;t seem that I could hook up the default signal handlers because they were made protected members of the widget classes.  At the time, it seemed to me that the only way that the default signal handlers could be used at all was by deriving classes and overriding the handlers (which are virtual, by the way).  I have since discovered that the default handlers are connected by default.  Also, the &#8220;slotting&#8221; mechanism used for signals &#8212; whereby signal handlers can be chained together and all executed on a single event &#8212; is pretty nifty.</p>
<p>Speaking strictly of Gtkmm, this doesn&#8217;t seem so bad, but I was using glade to put my UI skeleton together, and I very much liked the idea of dynamically building your UI from an XML file at program startup, rather than coding <em>all</em> the tedium that goes along with UI development.  I also prefer C++ to C whenever possible (actually, I prefer C++ to any other language whenever remotely appropriate), which is how I got here in the first place.  Anyway, glade-2 &#8212; in my opinion &#8212; isn&#8217;t very good at dealing with &#8220;custom widgets&#8221;, which includes widgets that are derived from and substantially the same as the stock widgets.  One caveat I should include here is that I haven&#8217;t really gone through this whole process with glade-3 yet.  Maybe it&#8217;s better.  I don&#8217;t know.</p>
<p>Offhand, I&#8217;d say one thing that could be better in glade-2 is if, once you placed some stock widget, you could edit the classname and let glade-2 assume that the user-entered classname is the name of a class that derives from the stock widget you originally placed.  Then, maybe it could support all the properties of the original widget, but actually use your derived widget at runtime when the UI is built.  This would be pretty much what I want, because thus far, the only use I have for writing custom widgets is to override the default signal handlers.</p>
]]></content:encoded>
			<wfw:commentRss>http://bloggoergosum.com/2007/05/14/ok-i-get-it-or-gtk-is-better-than-i-thought/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

