unity-design team mailing list archive
-
unity-design team
-
Mailing list archive
-
Message #06220
Re: Place "Shut Down" as the last entry in the Sessions-Menu for Oneiric and beyond
> One project that is already sort of doing this is Wireshark.
> Individual protocols (TCP, IP, etc.) register their settings with very
> simple API calls along the lines of
>
> register_boolean(&bool, "Name", "Description").
>
> Wireshark does the rest behind the scenes.
>
> The result is certainly usable, although probably not as usable as it
> could be. They're located under Edit->Preferences->Protocols in
> Wireshark if anyone actually wants to take a look.
Many applications and systems work in a similar way. Telepathy, for
instance. You have a set of protocol implementations, a set of
handlers and an unlimited set of clients. If my application wants to
make a phone call, I will request an audio channel. Then the
registered handler will handle it, presenting a GUI. If the user
replaces the phone call widget, then my application will just use it
without noticing any change. This is a good thing.
The indicators work the same way. I will request a menu and add
entries to it. How the menu is actually implemented, is completely
uninteresting to my application. I don't have to worry about which
desktop environment it's being run in either, as long as they provide
the appropriate service.
Both Evolution and Akonadi use the same desktopcouch database and
record types for contacts, as I understand it. This means that I can
write a a contact application, use that database and record type, and
it'll be useful to both Evolution and Akonadi. There are so many
examples of situations where this would be useful. Bookmarks, for
instance. How much different information can you provide about a
bookmark for a web browser? If they used the same database for their
bookmarks, then I could easily provide a custom GUI to edit and
display bookmarks, and it would automatically work with all browsers.
As a bonus, I can easily synchronize data between these applications
and between computers. So I could close Firefox and open Chrome and
the history and bookmarks would be the same. I take my laptop and go
outside, and I continue from where I was. No fuzz.
This is infrastructure. This is good.
Jo-Erlend Schinstad
References