Mouse wheel works as vertical swipe

This commit is contained in:
9and3r
2014-07-28 14:44:22 +02:00
parent a5a68ffebe
commit 83767e6ef9
5 changed files with 102 additions and 68 deletions

View File

@@ -23,41 +23,31 @@
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="touch_screen.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/touch_screen.py">
<file leaf-file-name="list_view.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/list_view.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="691" max-vertical-offset="1185">
<caret line="77" column="49" selection-start-line="77" selection-start-column="49" selection-end-line="77" selection-end-column="49" />
<state vertical-scroll-proportion="0.0" vertical-offset="719" max-vertical-offset="1515">
<caret line="85" column="45" selection-start-line="85" selection-start-column="45" selection-end-line="85" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="touch_manager.py" pinned="false" current="false" current-in-tab="false">
<file leaf-file-name="touch_manager.py" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/touch_manager.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="586" max-vertical-offset="1005">
<caret line="53" column="24" selection-start-line="53" selection-start-column="24" selection-end-line="53" selection-end-column="24" />
<state vertical-scroll-proportion="0.17661098" vertical-offset="286" max-vertical-offset="1140">
<caret line="25" column="33" selection-start-line="25" selection-start-column="33" selection-end-line="25" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="screen_objects.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/screen_objects.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1471" max-vertical-offset="3615">
<caret line="118" column="22" selection-start-line="118" selection-start-column="22" selection-end-line="118" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="screen_manager.py" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/screen_manager.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.1217184" vertical-offset="2281" max-vertical-offset="2700">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="1081" max-vertical-offset="2715">
<caret line="92" column="43" selection-start-line="92" selection-start-column="43" selection-end-line="92" selection-end-column="43" />
<folding>
<element signature="e#0#35#0" expanded="true" />
</folding>
@@ -65,11 +55,21 @@
</provider>
</entry>
</file>
<file leaf-file-name="__init__.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/__init__.py">
<file leaf-file-name="screen_objects.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/screen_objects.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="525">
<caret line="31" column="26" selection-start-line="31" selection-start-column="26" selection-end-line="31" selection-end-column="26" />
<state vertical-scroll-proportion="0.0" vertical-offset="2101" max-vertical-offset="3615">
<caret line="147" column="0" selection-start-line="147" selection-start-column="0" selection-end-line="147" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="tracklist.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/tracklist.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="90" max-vertical-offset="540">
<caret line="30" column="82" selection-start-line="30" selection-start-column="82" selection-end-line="30" selection-end-column="82" />
<folding />
</state>
</provider>
@@ -86,17 +86,17 @@
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/touch_text_manager.py" />
<option value="$PROJECT_DIR$/touch_manager.py" />
<option value="$PROJECT_DIR$/touch_screen_backend.py" />
<option value="$PROJECT_DIR$/tracklist.py" />
<option value="$PROJECT_DIR$/dynamic_background.py" />
<option value="$PROJECT_DIR$/list_view.py" />
<option value="$PROJECT_DIR$/main_screen.py" />
<option value="$PROJECT_DIR$/__init__.py" />
<option value="$PROJECT_DIR$/ext.conf" />
<option value="$PROJECT_DIR$/screen_objects.py" />
<option value="$PROJECT_DIR$/touch_screen.py" />
<option value="$PROJECT_DIR$/screen_manager.py" />
<option value="$PROJECT_DIR$/tracklist.py" />
<option value="$PROJECT_DIR$/list_view.py" />
<option value="$PROJECT_DIR$/touch_manager.py" />
</list>
</option>
</component>
@@ -324,7 +324,7 @@
</component>
<component name="ToolWindowManager">
<frame x="65" y="24" width="1301" height="744" extended-state="6" />
<editor active="false" />
<editor active="true" />
<layout>
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
@@ -338,11 +338,11 @@
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32884902" sideWeight="0.49961567" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32884902" sideWeight="0.49961567" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="Vcs.Log.UiProperties">
@@ -697,20 +697,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/list_view.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="525" max-vertical-offset="1215">
<caret line="40" column="57" selection-start-line="40" selection-start-column="57" selection-end-line="40" selection-end-column="57" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tracklist.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6778043" vertical-offset="76" max-vertical-offset="495">
<caret line="24" column="52" selection-start-line="24" selection-start-column="52" selection-end-line="24" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/dynamic_background.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="181" max-vertical-offset="705">
@@ -722,7 +708,6 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.2284264" vertical-offset="0" max-vertical-offset="394">
<caret line="6" column="45" selection-start-line="6" selection-start-column="45" selection-end-line="6" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
@@ -734,40 +719,56 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/screen_objects.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="1471" max-vertical-offset="3615">
<caret line="118" column="22" selection-start-line="118" selection-start-column="22" selection-end-line="118" selection-end-column="22" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/touch_manager.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="90" max-vertical-offset="1005">
<caret line="53" column="24" selection-start-line="53" selection-start-column="24" selection-end-line="53" selection-end-column="24" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/touch_screen.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="691" max-vertical-offset="1185">
<state vertical-scroll-proportion="0.92840093" vertical-offset="661" max-vertical-offset="1185">
<caret line="77" column="49" selection-start-line="77" selection-start-column="49" selection-end-line="77" selection-end-column="49" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tracklist.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="90" max-vertical-offset="540">
<caret line="30" column="82" selection-start-line="30" selection-start-column="82" selection-end-line="30" selection-end-column="82" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/screen_manager.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.1217184" vertical-offset="2281" max-vertical-offset="2700">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<state vertical-scroll-proportion="0.0" vertical-offset="1081" max-vertical-offset="2715">
<caret line="92" column="43" selection-start-line="92" selection-start-column="43" selection-end-line="92" selection-end-column="43" />
<folding>
<element signature="e#0#35#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/screen_objects.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="2101" max-vertical-offset="3615">
<caret line="147" column="0" selection-start-line="147" selection-start-column="0" selection-end-line="147" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/list_view.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0" vertical-offset="719" max-vertical-offset="1515">
<caret line="85" column="45" selection-start-line="85" selection-start-column="45" selection-end-line="85" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/touch_manager.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.17661098" vertical-offset="286" max-vertical-offset="1140">
<caret line="25" column="33" selection-start-line="25" selection-start-column="33" selection-end-line="25" selection-end-column="33" />
<folding />
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -22,6 +22,7 @@ class ListView():
self.list = []
self.scrollbar = False
self.set_list([])
self.selected = []
def set_list(self, item_list):
self.list = item_list
@@ -65,6 +66,11 @@ class ListView():
direction = self.screen_objects.get_touch_object(key).touch(touch_event.current_pos)
if direction != 0:
self.move_to(direction)
elif touch_event.type == TouchManager.swipe:
if touch_event.direction == TouchManager.up:
self.move_to(-1)
elif touch_event.direction == TouchManager.down:
self.move_to(1)
def move_to(self, direction):
if direction == 1:
@@ -78,4 +84,18 @@ class ListView():
if self.current_item < 0:
self.current_item = 0
self.load_new_item_position(self.current_item)
self.screen_objects.get_touch_object("scrollbar").set_item(self.current_item)
self.screen_objects.get_touch_object("scrollbar").set_item(self.current_item)
self.set_selected(self.selected)
def set_selected(self, selected):
for number in self.selected:
try:
self.screen_objects.get_touch_object(str(number)).set_active(False)
except KeyError:
pass
for number in selected:
try:
self.screen_objects.get_touch_object(str(number)).set_active(True)
except KeyError:
pass
self.selected = selected

View File

@@ -90,6 +90,7 @@ class ScreenManager():
def track_started(self, track):
self.track = track
self.screens[0].track_started(track.track)
self.screens[1].track_started(track)
def event(self, event):
touch_event = self.touch_manager.event(event)

View File

@@ -23,7 +23,16 @@ class TouchManager():
def event(self, event):
if event.type == pygame.MOUSEBUTTONUP:
return self.mouse_up(event)
if event.button == 4:
touch_event = TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
touch_event.direction = TouchManager.up
return touch_event
elif event.button == 5:
touch_event = TouchEvent(TouchManager.swipe, self.down_pos, self.up_pos, True)
touch_event.direction = TouchManager.down
return touch_event
else:
return self.mouse_up(event)
elif event.type == pygame.MOUSEBUTTONDOWN:
self.mouse_down(event)
return None
@@ -31,7 +40,7 @@ class TouchManager():
def mouse_down(self, event):
self.down_pos = event.pos
def mouse_up(self,event):
def mouse_up(self, event):
self.up_pos = event.pos
if abs(self.down_pos[0] - self.up_pos[0]) < self.max_move_margin:
if abs(self.down_pos[1] - self.up_pos[1]) < self.max_move_margin:

View File

@@ -25,4 +25,7 @@ class Tracklist():
self.list_view.set_list(self.tracks_strings)
def touch_event(self, touch_event):
self.list_view.touch_event(touch_event)
self.list_view.touch_event(touch_event)
def track_started(self, track):
self.list_view.set_selected([self.manager.core.tracklist.index(track).get()])