Hello World!

The title applies in two senses:

  1. This is my introductory post. Something traditionally deserving of the moniker.
  2. The subject of the post will refer to a Hello World! of another sort

A little bit later than I would have liked, I found out about the Ubuntu App Showdown. It is likely the content of that URL will change, but the short version is that they’re running a contest, starting on June 18th, and ending July 9th, to promote the Ubuntu App Store, and also Quickly, their Rapid Application Development tool.

My first impression ofQuickly was that for something built to create GTK applications, it is itself lacking an GTK interface. I set myself to the task of usingQuickly to generate a frontend for itself.

The naive method is simply to stick a bunch of buttons in a window and make them launch external processes. This was how I started out, just to get something up and running. It makes far too many assumptions, and is prone to having things go terribly wrong.

Ideally, I’d like to embed the gedit and glade windows inside my “frontend,” but for the life of me, I cannot figure out how to do it. At least not by the contest’s deadline.

 

I really would like to finish up and make a proper submission. I think Quickly might be on to something. I just feel that “something” could go much further with a UI attached.

Some of the more specific details: The two methods I can find to embed a gtk window inside another are 1) gtk.gdk.window.reparent() and 2) GtkPlug/GtkSocket.

Both of these have problems for me:

The reparent() call isn’t available through gi-repository, which is the normal method for GTK3 / Quickly projects, and when I try to use it anyway, I have all sorts of issues, and no luck.

GtkPlug/GtkSocket seems to require the embedded window / application to expose a “plug” to put in my window’s “socket.” Some applications do this, many don’t. I could embed gvim, and xterm, but not gedit or gnome-terminal. (However gnome-terminal is another story, because it looks like it should be accessible through libvte)

While I seem to be on to something with gedit, I have even less of an idea as to how I would embed a Glade window: I can fool Quickly into outputting a list of files to edit, by setting $EDITOR to ‘echo’ but the same trick won’t work with Glade.

 

So okay: Let’s move on and stop trying to embed the spawned applications. Let’s just try to prevent them from being launched if they’re already running: Oh, crazy, that’s not going to work right, either. Argh…

One Comment

  • Aaron Haviland says:

    I never did much more with this… turns out there was another person working on a Quickly front-end, and it was much further along than mine. (And so I lost interest)