More typing
Daniel van Vugt
daniel.van.vugt at canonical.com
Fri Jan 23 02:01:51 UTC 2015
dandrada:
Yeah the separation of touch from mouse events doubles the number of
functions, but that's probably useful in the long run. Only dumb legacy
apps want to treat them as the same thing. Any modern app will see them
as different (e.g. drag with a finger scrolls, but not with the mouse).
racarr:
My personal preference for clarifying this is to ensure each "class"
name is usually a single noun where possible. Hence:
mir_input_event_get_touch_input_event
mir_input_get_touch
Where not possible, you could consider dropping underscores in places:
mir_input_event_get_touch_input_event
mir_inputevent_gettouchinputevent
Although we've never done that, and in the wider world seems uncommon.
As a compromise, I suggest that we can at least change:
MirTouchInputEvent -> MirTouchEvent
_touch_input_event -> _touch_event
I would like to go further (and the opacity of the API actually supports
this more than the old API):
MirTouchInputEvent -> MirTouch
_touch_input_event -> _touch
Because everything's opaque, there's no need to mention that the touch
is an "Event" once you have a pointer to it. The conversions are one-way
so we don't need to advertise any kind of inheritance from *Event once
we have a MirTouch.
This shortest form only creates a design problem for:
MirPointerInputEvent -> ? (MirMotion?)
If "pointer" events always represent a synthesised "cooked" event
originating from something that could be (usually) a relative input
device, then maybe it too could be used to represent a touch and solve
dandrada's issue: mir_touch_event_to_pointer_event()
On 23/01/15 02:53, Robert Carr wrote:
> Hi Daniel, Daniel! (:p)
>
> First w.r.t duflus concerns:
>
> I guess I tend to shy away from these sort of abbreviated API's as a
> habit I picked up from the GLib programming days.
>
> My concern is that once you choose abbreviations you have to remember
> which abbreviation you chose, on the other hand if the
> function is always of canonical forms:
>
> NamespaceClassFoo namespace_class_get_foo(NamespaceClass instance,
> size_t foo_index)
>
> etc
>
> You have a fair amount of repeating yourself but each type name is easy
> to guess...I guess to me this is a pretty significant advantage and im
> inclined to keep it. Interested in more feedback I guess.
> On Thu, Jan 22, 2015 at 12:35 AM, Daniel van Vugt
> <daniel.van.vugt at canonical.com <mailto:daniel.van.vugt at canonical.com>>
> wrote:
>
> Initial thoughts:
>
> "InputEvent/input_event" is mentioned too much. So:
>
> MirInputEvent* input = mir_event_get_input_event(__event);
> MirTouchInputEvent* touch =
> mir_input_event_get_touch___input_event(input);
> x = mir_touch_input_event_get___touch_axis_value(
> touch, 0, mir_touch_input_axis_x);
>
> could be easily renamed to something like:
>
> MirInput* input = mir_event_get_input(event);
> MirTouch* touch = mir_input_get_touch(input);
> x = mir_touch_get_axis(touch, 0, mir_touch_axis_x);
>
> I'm not sure if we really need MirInput(Event) in there either. So
> it could be simpler again:
>
> MirTouch* touch = mir_event_get_touch(event);
> x = mir_touch_get_axis(touch, 0, mir_touch_axis_x);
>
> - Daniel
>
>
> On 22/01/15 16:23, Daniel van Vugt wrote:
>
> Looking at an example of changing from the old input event API
> to the
> new one in Mir 0.10:
>
> http://bazaar.launchpad.net/~__mir-team/mir/development-__branch/revision/2246?compare___revid=2128#examples/__fingerpaint.c
> <http://bazaar.launchpad.net/~mir-team/mir/development-branch/revision/2246?compare_revid=2128#examples/fingerpaint.c>
>
>
> You can see it requires a lot more code now.
>
> I'm wondering if anyone has any thoughts on how we might make things
> simpler for users again before this becomes the norm...?
>
> - Daniel
>
>
> --
> Mir-devel mailing list
> Mir-devel at lists.ubuntu.com <mailto:Mir-devel at lists.ubuntu.com>
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/__mailman/listinfo/mir-devel
> <https://lists.ubuntu.com/mailman/listinfo/mir-devel>
>
>
More information about the Mir-devel
mailing list