On Thu, Sep 27, 2012 at 2:32 AM, Olivier Fourdan <ofour...@redhat.com> wrote:
> Hi all,
>
> We have been discussing the need for an OSD window for some time.
>
> For GNOME, I made a simple implementation (see bug 679062 [1]) which seems
> to works quite well, but could be greatly improved with a more accurate
> representation of the actual device.
>
> I believe the requirements would be:
>
> * Format should allow for rotation along with the tablet orientation, and
> scale to match monitor's geometry
> * Button should change aspect when pressed (so a static image is not
> sufficient)
> * Description should be generic enough so that it can be (re)used in
> different apps/desktops if necessary
> * Description should include at the very least the button name matching the
> libwacom's buttonsX denomination, position, size and label location
>
> Expectations:
>
> * Keep it simple for developers to implement the code,
> * Keep it simple for artists to contribute new buttons/layouts when needed
>
> In the past we discussed the possibility to use the following formats for
> that representation:
>
> * json (http://www.json.org/)
>    pro: fairly common and standard
>    cons: not necessarily natural for artists
> * xkb_layout format
>    pro: already have a sample impl, in GNOME for keyboard layouts
>    cons: not exactly a standard and even less natural for artists
>
> Possible solution:
>
> * A set of buttons in SVG format - SVG in vector graphics so it can be
> easily scaled/rotated and can be modified using CSS (see gtk+ symbolic
> icon's routine) so it should be possible to create an image of the same
> button being pressed.
> * Tablet definitions include a description of the buttons present on the
> device which includes:
>
>  - Button name
>  - Button position
>  - Button size
>  - Label position
>  - Button image (is name of the corresponding SVG file)
>
> Advantage:
>
> * When different models of the same type of tablet use the same buttons, no
> need to recreate the SVG images,
> * The same SVG image of e.g. touchring button can be resused in a popup
> small OSD showing current mode when changing mode.
> * If someone does a purely symbolic representation fo the buttons, the SVG
> images could be simply ignored: From the button name, an apps can get the
> flags, deduce if it's a regular button, a toushstrip or a touch ring, its
> size and thus draw accordingly without even using the SVG image.
>
> Question:
>
> * Does any of the above makes sense? ;-)

Yes, it makes sense to me. I have no Gnome design or impl experience.
So, I can not tell which format is better. But your OSD video looks
good.

Can I assume?

1.  OSD can and will be enabled for tablets with and without LED, as
long as the tablet supports expresskeys;

2.  OSD can be disabled in g-c-c;

> * Is it simple enough? Or too simplistic?

I like simple solutions.

> * Is SVG appropriate for that? Do we actually need an accurate image of the
> buttons?

The images displayed in your video are very good. We know if they are
for the square or round buttons.

> * Assuming it makes sense, what unit should be used for the position/size of
> elements?

I guess it depends on the size of the screen? For opaque tablets, such
as Intuos and Bamboo series, your video of mapping it to the
screen/primary monitor is very good. For LCD tablets, such as Cintiq
series, OSD would be displayed close to the actual buttons, I think.

> * Should the representation be per tablet, or per side of tablet, ie one
> description for the left buttons with their relative position, same for
> right, top, etc?

Per side of tablet since users would most likely use different
settings for different side. Talking about per side, rotation should
be considered for all sides if there are more than one set of buttons.

> I would really like to move forward with this, while at the same time
> keeping things simple enough.

I am with you. I hope we can get something simple and straightforward
in Gnome soon.

Ping

BTW, this code from [1] does not fit what I understood

+        *  - First ring (group 0) uses LED 0
+        *  - Second ring (group 1) uses LED 1
+        *  - First touchstrip (group 2) uses LED 1
+        *  - Second touchstrip (group 3) uses LED 0

There are two cases, tablet has one set of expresskeys; and  tablet
has two sets of expresskeys.

If there is only one set of expresskeys, ring or touchstrip will and
can only use LED 0;
If there are two sets of expresskeys, the left set (i.e., your first
ring/touchstrip) uses LED 1; the right set, your second
ring/touchstrip, uses LED 0.

[1] https://bugzilla.gnome.org/attachment.cgi?id=214732&action=edit

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to