On Thu, Sep 27, 2012 at 1:56 PM, Ping Cheng <pingli...@gmail.com> wrote:
> 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

Not to get off-topic, but do we want to consider revising this
interface to make it more logical? Having the "first" ring/strip being
controlled by the "second" LED control (and vice versa) rubs me the
wrong way. I'd consider it a bug, except that its the documented
behavior. I'm not sure it qualifies as a "grave error" that Dmitry
would allow to be changed, but it'd make more sense to fix it in the
kernel than to rely on libwacom to describe the quirk.

Jason

---
When you're rife with devastation / There's a simple explanation:
You're a toymaker's creation / Trapped inside a crystal ball.
And whichever way he tilts it / Know that we must be resilient
We won't let them break our spirits / As we sing our silly song.

------------------------------------------------------------------------------
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