Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More gesture support #387

Merged
merged 7 commits into from Sep 26, 2011
Merged

More gesture support #387

merged 7 commits into from Sep 26, 2011

Conversation

Memphiz
Copy link
Member

@Memphiz Memphiz commented Aug 29, 2011

This PR will add the following:

  1. Add a method HasInertialGestures to the WindowSystem. This can be overwritten for each plattforms windowing for letting InertialScrollingHandler know if inertia is supported by plattform API or if the InertialScrollingHandler should emulate it (on Windows the API will be used because - it has inertia)
  2. Add EVENT_RESULT_PAN_VERTICAL_WITHOUT_INERTIAL and EVENT_RESULT_PAN_HORIZONTAL_WITHOUT_INERTIAL for letting controls decide if they want inertial scrolling or not
  3. Make the scrollbar and slider gesture aware (without inertia)
  4. Adding pinch gesture to ios gesture controller (for zooming)
  5. Make slideshow gesture aware (until now it was uncontrollable on touch devices)
  6. swipe left and right - next/prev slide
  7. pinch - zoom (yeah this is still a bit twonky wonky)
  8. when zoomed in - pan for moving inside the picture

@jmarshallnz
Copy link
Contributor

Looks fine for the most part. I wonder whether the sendmessage inside the intertial handler could be done at the start (i.e. the initial GESTURE_NOTIFY message) or not - we're kinda abusing the notion of GESTURE_NOTIFY here (as we're not notifying the control that a gesture is about to start, rather we're using it to query what the current gesture is).

@Memphiz
Copy link
Member Author

Memphiz commented Sep 1, 2011

Not quiet sure. TBH i rape the GESTURE_NOTIFY not for query what the current gesture is, but if the control wants inertia. So this is an abuse 100% ;). But i thought it was not intended to getting the control aware of the fact that a gesture would follow but for knowing if panning in horizontal or vertical axis is supported by the control no?

Don't know how to ask it in a clean way. TBH i hope this inertia stuff will go into the new CScroller class which pieh implemented with his tweeners - someday ;).

Well open for suggestions as usual for the NOTIFY abuse ...

@Memphiz
Copy link
Member Author

Memphiz commented Sep 15, 2011

@jm

Well i tried to send the GESTURE_NOTIFY message on ACTION_GESTURE_BEGIN in InertialScrollingHander. But the message isn't passed to the control at that time.

That is because in EVENT_RESULT CGUIWindow::OnMouseAction(const CAction &action) the m_exclusiveMouseControl is false. Exclusive Mouse Control isn't enabled until the ACTION_GESTURE_BEGIN made it to the control.

So its tricky because ACTION_GESTURE_BEGIN is send to the control after CInertialScrollingHandler::CheckForInertialScrolling is finished. So it is impossible to send the NOTIFY before ACTION_GESTURE_BEGIN is completly through the chain ...

@Memphiz
Copy link
Member Author

Memphiz commented Sep 26, 2011

If no other complains or solutions are comming in - i'll rebase and merge it ...

…ERTIA" returns on ACTION_GESTURE_NOTIFY - and deactivate inertia of the win32 api in that case
…ch have native inertial panning support (only win32 for now...)
- make guislidercontrol gesture pan aware (without intertial scrolling)
- swipe left and right - next/prev slide
- pinch - zoom
- when zoomed in - pan for moving inside the picture
Memphiz added a commit that referenced this pull request Sep 26, 2011
@Memphiz Memphiz merged commit b02366e into xbmc:master Sep 26, 2011
HolgerW1 pushed a commit to HolgerW1/xbmc that referenced this pull request Sep 26, 2014
Update to allow for Newzbin merging H.264 and x264 attributes into a …  …single H.264/x264 attribute.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants