First of all, thanks to everyone involved in developing the Ruby GTK+, XML
parser, and Glade stuff. Even though I have just got to the point of
getting the samples working (I had to go back and build various additional
GNU (versions of some) tools in order to build other pieces of this stuff
since I'm not using a Linux box), this sure looks like the start of a very
powerful set of tools. I'm impressed.

How soon will we see a Ruby entry on http://glade.pn.org/links.html and a
corresponding button on Glade itself (File --> Project Options --> Language
--> Ruby)? IIRC, one or more of the other supported languages started out
with preliminary translator modules, so I would recommend pursuing this as
soon as possible. (This is also another place that will get people asking,
"What's this Ruby language?". Also, since Ruby should excel at complex,
dynamic GUI development, in addition to making ordinary GUI development
easier, this would be a good place to indirectly call attention to Ruby.)

Is there some reason that glade2rb doesn't begin with
"#!/usr/local/bin/ruby" or with "#!/usr/bin/env ruby"?

It would be nice if "glade2rb input.glade output.rb" were in the README
file.

I encountered the following error:

    glade2rb smart.glade smart.rb
    /usr/local/bin/glade2rb:124:in `widgetDone': Unsuported widget:
GtkMenuBar (RuntimeError)

            from /usr/local/lib/ruby/1.4/gladeparser.rb:91:in `endElement'
            from /usr/local/bin/glade2rb:17:in `parse'
            from /usr/local/bin/glade2rb:17:in `generate'
            from /usr/local/bin/glade2rb:150

Is GtkMenuBar really unsupported or did I make some sort of "overlooking
the obvious" blunder?

Here is the file I used:

==== start of file smart.glade ====
<?xml version="1.0"?>
<GTK-Interface>

<project>
  <name>smart</name>
  <program_name>smart</program_name>
  <directory></directory>
  <source_directory>src</source_directory>
  <pixmaps_directory>pixmaps</pixmaps_directory>
  <language>Perl</language>
  <gnome_support>False</gnome_support>
  <gettext_support>False</gettext_support>
  <use_widget_names>False</use_widget_names>
  <output_main_file>True</output_main_file>
  <output_support_files>True</output_support_files>
  <output_build_files>True</output_build_files>
  <backup_source_files>True</backup_source_files>
  <main_source_file>interface.c</main_source_file>
  <main_header_file>interface.h</main_header_file>
  <handler_source_file>callbacks.c</handler_source_file>
  <handler_header_file>callbacks.h</handler_header_file>
  <support_source_file>support.c</support_source_file>
  <support_header_file>support.h</support_header_file>
  <translatable_strings_file></translatable_strings_file>
</project>

<widget>
  <class>GtkWindow</class>
  <name>window1</name>
  <title>window1</title>
  <type>GTK_WINDOW_TOPLEVEL</type>
  <position>GTK_WIN_POS_NONE</position>
  <modal>False</modal>
  <allow_shrink>False</allow_shrink>
  <allow_grow>True</allow_grow>
  <auto_shrink>False</auto_shrink>

  <widget>
    <class>GtkAlignment</class>
    <name>alignment1</name>
    <xalign>0.5</xalign>
    <yalign>0.5</yalign>
    <xscale>1</xscale>
    <yscale>1</yscale>

    <widget>
      <class>GtkMenuBar</class>
      <name>menubar1</name>
      <shadow_type>GTK_SHADOW_OUT</shadow_type>

      <widget>
        <class>GtkMenuItem</class>
        <name>file1</name>
        <signal>
          <name>activate</name>
          <handler>on_file1_activate</handler>
          <last_modification_time>Fri, 24 Mar 2000 21:08:51
GMT</last_modification_time>
        </signal>
        <label>File</label>
        <right_justify>False</right_justify>
      </widget>

      <widget>
        <class>GtkMenuItem</class>
        <name>edit1</name>
        <signal>
          <name>activate</name>
          <handler>on_edit1_activate</handler>
          <last_modification_time>Fri, 24 Mar 2000 21:09:06
GMT</last_modification_time>
        </signal>
        <label>Edit</label>
        <right_justify>False</right_justify>
      </widget>

      <widget>
        <class>GtkMenuItem</class>
        <name>view1</name>
        <signal>
          <name>activate</name>
          <handler>on_view1_activate</handler>
          <last_modification_time>Fri, 24 Mar 2000 21:09:12
GMT</last_modification_time>
        </signal>
        <label>View</label>
        <right_justify>False</right_justify>
      </widget>

      <widget>
        <class>GtkMenuItem</class>
        <name>tools1</name>
        <signal>
          <name>activate</name>
          <handler>on_tools1_activate</handler>
          <last_modification_time>Fri, 24 Mar 2000 21:09:19
GMT</last_modification_time>
        </signal>
        <label>Tools</label>
        <right_justify>False</right_justify>
      </widget>

      <widget>
        <class>GtkMenuItem</class>
        <name>help1</name>
        <signal>
          <name>activate</name>
          <handler>on_help1_activate</handler>
          <last_modification_time>Fri, 24 Mar 2000 21:09:25
GMT</last_modification_time>
        </signal>
        <label>Help</label>
        <right_justify>True</right_justify>
      </widget>
    </widget>
  </widget>
</widget>

</GTK-Interface>
==== end of file ====

Conrad Schneiker
(This note is unofficial and subject to improvement without notice.)