GHelp Update

According to the schedule[1], the feature proposals discussion is
supposed to heat up today. I'd like to share the current status of
my dynamic help menus work.

There are instructions on how to build everything I've done on the
gitorious ghelp wiki:

The GHelp API in GIO is nearly complete, in terms of what I wanted
to accomplish with it. I have one more method I want to add to the
interface to activate a full text search. I've changed the API three
times now, and I'm happy with how it works now.

I know Ryan and others are working on proxying menus in GIO. I don't
think that work precludes what I've worked on. The GHelp API can be
reused in different ways. Ryan thinks it should return a GMenuModel,
but I'm hesitant to make it rely on an API that's not yet accepted.
Anyway, I think the current API is generic and can stay regardless.
Convenience functions to create a GMenuModel will be easy to add
on top.

There are some minor glitches in the way the help widgets work. The
help button looks kind of ugly in a GtkButtonBox. Maybe that's just
up to themes to fix. When you use the up and down arrow to navigate
the help menu, there's a sort of blank spot when you hit the search
entry. I posted a patch to GTK+ to make "selectable" a property of
GtkMenuItem[2]. Although now I think it's worthwhile for the search
entry to be activatable, for full text search activation. I'd just
need to have some kind of visual indication.

I've ported most of Nautilus to use this API, everything except the
preferences dialog. There are minor pain points that I think could
be made nicer with some convenience API, like adding a help button
to a GtkDialog and changing a help button's tag based on the current
tab in a GtkNotebook. Not blockers to me. I just think they'll be
common enough cases to be able to do them in one line.

I know some people think menus are dead. I don't agree, but it's not
really relevant to this proposal. This proposal is about bringing the
help closer to the user in the application. The button and menu are
just two implementations based on UI paradigms we're using today. We
can apply the same principles to other interfaces. GHelp is designed
to be generic enough to accommodate different interfaces.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]