# A menubar for Shoes?

**URL:** <https://www.ruby-forum.com/t/a-menubar-for-shoes/148301>\
**Category:** Ruby\
**Created:** [September 11, 2008, 3:05pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301 "2008-09-11T15:05:07Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 11, 2008, 3:05pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/1 "2008-09-11T15:05:07Z")

</div>

I have just recently tarted to look at Shoes, after a quick dabble with  
Tk and Fox, and I really like its elegant style. However, there seems to  
be no menu widgets, either built-in or indeed anywhere on the web that I  
can find. This is a curious ommission.

Has anyone done this already? Can anyone point me in the right  
direction?

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 11, 2008, 4:01pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/2 "2008-09-11T16:01:10Z")

</div>

Andy J. wrote:

> I have just recently tarted to look at Shoes, after a quick dabble with  
> Tk and Fox, and I really like its elegant style. However, there seems to  
> be no menu widgets, either built-in or indeed anywhere on the web that I  
> can find. This is a curious ommission.
> 
> Has anyone done this already? Can anyone point me in the right  
> direction?

Shoes is a challenge to you: Don’t think inside the box. Don’t ask how  
to put a  
menu between your users and your engine. Think instead about what kind  
of new,  
beautiful GUI would display and animate your features the best.

(Just don’t try to test-first it;)

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 12, 2008, 1:01pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/3 "2008-09-12T13:01:20Z")

</div>

Phlip wrote:

> Andy J. wrote:
> 
> > I have just recently tarted to look at Shoes, after a quick dabble with  
> > Tk and Fox, and I really like its elegant style. However, there seems to  
> > be no menu widgets, either built-in or indeed anywhere on the web that I  
> > can find. This is a curious ommission.
> 
> Shoes is a challenge to you: Don’t think inside the box. Don’t ask how  
> to put a  
> menu between your users and your engine. Think instead about what kind  
> of new,  
> beautiful GUI would display and animate your features the best.

I prefer to be able to choose when I want to think outside the box.

Menus are a ubiquious part of GUIs; users know how to use them and what  
to expect. If they want to save, they already know how to do that in  
countless GUI applications across Windows and Mac (and I guess Linux  
too). But not for a Ruby Shoes application. There is a good reason why  
enus have been a part of GUIs for well over twenty years - they work  
very well. I think this is a serious ommission from the toolkit, and it  
surprises me that no one else on the web sees it that way.

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 12, 2008, 1:33pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/4 "2008-09-12T13:33:14Z")

</div>

On 12/09/2008, Andy J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > to put a  
> > menu between your users and your engine. Think instead about what kind  
> > of new,  
> > beautiful GUI would display and animate your features the best.
> 
> I prefer to be able to choose when I want to think outside the box.

Well, you chose that when you chose Shoes.

> Menus are a ubiquious part of GUIs; users know how to use them and what  
> to expect. If they want to save, they already know how to do that in  
> countless GUI applications across Windows and Mac (and I guess Linux  
> too). But not for a Ruby Shoes application. There is a good reason why  
> enus have been a part of GUIs for well over twenty years - they work  
> very well. I think this is a serious ommission from the toolkit, and it  
> surprises me that no one else on the web sees it that way.

And they are consistent hindrance in the user interaction for over  
twenty years. They are one of the poorest UI parts in use today.

There are other ways how to present a “Save” feature to the user.  
There are bazillions of applications out there that have a “Save”  
button on every graphics enabled platform I have seen.

And there are many applications that do not require you to save  
anything manually. They update your choices on the fly as you make  
them. And if the application is intended for editing complex data it  
should have undo history anyway, and you can automatically save that.

If you really feel like you absolutely need a menu there is about a  
dozen toolkits you can choose from, just choose the tool that fits  
your needs.

Thanks

Michal

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 12, 2008, 2:26pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/5 "2008-09-12T14:26:00Z")

</div>

Various combatants wrote:

> Menus are a ubiquious part of GUIs; users know how to use them and what  
> to expect.

Menus are a Help system that lets you actually do the helped thing. They  
should  
also display the keystroke shortcut for an action. But…

> There are other ways how to present a “Save” feature to the user.  
> There are bazillions of applications out there that have a “Save”  
> button on every graphics enabled platform I have seen.

That’s because the Save concept is itself broken. A user saves to create  
a  
“checkpoint” they can revert to. If the program actually presented the  
Revert  
itself, as a kind of Undo, then every action should mirror on the hard  
drive,  
and the program would be less naive-user hostile.

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 12, 2008, 2:00pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/6 "2008-09-12T14:00:48Z")

</div>

I was going to disagree at first, but I realize how right you are. We  
all know that if a computer language allows you to write bad code, more  
people will write bad code and get away with it. Conversely, if people  
demand that every visual toolkit contains the same widgets, they will  
continue to even if some of the widgets are horrible UI design.

You don’t have to think outside the box, just consider UI elements that  
make sense. Menu bars have never made sense. In fact, Microsoft Office  
helped make them popular; with the new “ribbon”, they’ve killed off  
their original design and forced users to consider using something  
different.

Actually, a ribbon isn’t too bad of an idea. Can shoes do selections of  
buttons like that?

- Clinton

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 12, 2008, 9:16pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/7 "2008-09-12T21:16:43Z")

</div>

On 12/09/2008, Phlip [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Various combatants wrote:
> 
> > Menus are a ubiquious part of GUIs; users know how to use them and what  
> > to expect.
> 
> Menus are a Help system that lets you actually do the helped thing. They  
> should also display the keystroke shortcut for an action. But…

That one was hard to parse…

Yes, in some applications like the AutoCAD the menu is just an addon  
that lists some possible functions or makes them conveniently  
available (like the middle button menu). The commands performed using  
the menu are logged in the command window and can then be retyped by  
the user which tends to be much faster even for people who are not  
touch typists.

Unfortunately, most applications that do use menus use them as the  
primary place for activating the listed functions. Some are replicated  
as keyboard shortcuts or other UI elements but many are not, and the  
keyboard shortcuts are rarely configurable.

One notable exception used to be the GIMP - earlier versions of the  
program allowed the user to point at a menu item and define a keyboard  
shortcut by simply pressing the key combination. Currently you have to  
change an option hidden in a very complex dialog to activate this  
function.

Thanks

Michal

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 13, 2008, 8:01am UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/8 "2008-09-13T08:01:36Z")

</div>

On Fri, Sep 12, 2008 at 07:54:33PM +0900, Andy J. wrote:

> But not for a Ruby Shoes application. There is a good reason why  
> menus have been a part of GUIs for well over twenty years - they work  
> very well. I think this is a serious ommission from the toolkit, and it  
> surprises me that no one else on the web sees it that way.

I think Shoes will have menus before the end of the year. All  
arguments aside, my compelling reason for adding menus would be  
because OS X insists on giving every app a menu. And it hurts the  
app if you can’t customize that menu.

Yeah, I know it probably seems horrific that this isn’t done already.  
Shoes just isn’t a “GUI” toolkit. Not like wxWidgets or FOX or QT or  
any of those. I want to make it fun and light and easy to use.  
Whatever that means. And I just haven’t figured out how to fit  
menus into that yet.

\_why

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 14, 2008, 1:55am UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/9 "2008-09-14T01:55:27Z")

</div>

On 13 Sep 2008, at 06:26, \_why wrote:

> app if you can’t customize that menu.  
> Funnily enough that’s the main reason the lack of menus bugs me, but  
> given the pace at which Shoes is developing I’ve always thought it  
> churlish to pass comment 😉

> Yeah, I know it probably seems horrific that this isn’t done already.  
> Shoes just isn’t a “GUI” toolkit. Not like wxWidgets or FOX or QT or  
> any of those. I want to make it fun and light and easy to use.  
> Whatever that means. And I just haven’t figured out how to fit  
> menus into that yet.

One obvious side effect of introducing menus is that you’ll face  
pressure to support keyboard accelerators as well, which could  
interfere with the current method for handling key presses.

Ellie

## Eleanor McHugh Games With Brains [http://slides.games-with-brains.net](http://slides.games-with-brains.net)

raise ArgumentError unless @reality.responds\_to? :reason

---

<div class="post-metadata">

**Author:** ![f2andy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/7feea3/32.png) [@f2andy](https://www.ruby-forum.com/u/f2andy)\
**Post date:** [September 15, 2008, 2:32pm UTC](https://www.ruby-forum.com/t/a-menubar-for-shoes/148301/10 "2008-09-15T14:32:49Z")

</div>

Can I encourage you to keep a consistent vision for Shoes? I think it’s  
easy to make GUI toolkits more complicated than they need to be. I’m  
looking forward to the “easiness” of Shoes. 🙂
