mirror of
https://github.com/Febbweiss/mopidy-touchscreen.git
synced 2026-03-04 22:25:39 +00:00
Playlist first working version
This commit is contained in:
108
mopidy_touchscreen/.idea/workspace.xml
generated
108
mopidy_touchscreen/.idea/workspace.xml
generated
@@ -23,21 +23,11 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="list_view.py" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="touch_screen.py" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/list_view.py">
|
<entry file="file://$PROJECT_DIR$/touch_screen.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="719" max-vertical-offset="1515">
|
<state vertical-scroll-proportion="0.0" vertical-offset="766" max-vertical-offset="1230">
|
||||||
<caret line="85" column="45" selection-start-line="85" selection-start-column="45" selection-end-line="85" selection-end-column="45" />
|
<caret line="82" column="46" selection-start-line="82" selection-start-column="46" selection-end-line="82" selection-end-column="46" />
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<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.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 />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -46,8 +36,8 @@
|
|||||||
<file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/screen_manager.py">
|
<entry file="file://$PROJECT_DIR$/screen_manager.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="1081" max-vertical-offset="2715">
|
<state vertical-scroll-proportion="0.0" vertical-offset="2491" max-vertical-offset="2910">
|
||||||
<caret line="92" column="43" selection-start-line="92" selection-start-column="43" selection-end-line="92" selection-end-column="43" />
|
<caret line="182" column="40" selection-start-line="182" selection-start-column="40" selection-end-line="182" selection-end-column="40" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#35#0" expanded="true" />
|
<element signature="e#0#35#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -58,8 +48,28 @@
|
|||||||
<file leaf-file-name="screen_objects.py" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="screen_objects.py" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/screen_objects.py">
|
<entry file="file://$PROJECT_DIR$/screen_objects.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="2101" max-vertical-offset="3615">
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3675">
|
||||||
<caret line="147" column="0" selection-start-line="147" selection-start-column="0" selection-end-line="147" selection-end-column="0" />
|
<caret line="9" column="23" selection-start-line="9" selection-start-column="23" selection-end-line="9" selection-end-column="23" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="playlist_screen.py" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/playlist_screen.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.0" vertical-offset="61" max-vertical-offset="540">
|
||||||
|
<caret line="29" column="72" selection-start-line="29" selection-start-column="72" selection-end-line="29" selection-end-column="72" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="list_view.py" pinned="false" current="true" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/list_view.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="-0.25615764" vertical-offset="1124" max-vertical-offset="1530">
|
||||||
|
<caret line="73" column="31" selection-start-line="73" selection-start-column="31" selection-end-line="73" selection-end-column="31" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -68,8 +78,8 @@
|
|||||||
<file leaf-file-name="tracklist.py" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="tracklist.py" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/tracklist.py">
|
<entry file="file://$PROJECT_DIR$/tracklist.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="90" max-vertical-offset="540">
|
<state vertical-scroll-proportion="0.0" vertical-offset="121" 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" />
|
<caret line="30" column="85" selection-start-line="13" selection-start-column="4" selection-end-line="30" selection-end-column="85" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -91,12 +101,13 @@
|
|||||||
<option value="$PROJECT_DIR$/main_screen.py" />
|
<option value="$PROJECT_DIR$/main_screen.py" />
|
||||||
<option value="$PROJECT_DIR$/__init__.py" />
|
<option value="$PROJECT_DIR$/__init__.py" />
|
||||||
<option value="$PROJECT_DIR$/ext.conf" />
|
<option value="$PROJECT_DIR$/ext.conf" />
|
||||||
|
<option value="$PROJECT_DIR$/tracklist.py" />
|
||||||
|
<option value="$PROJECT_DIR$/touch_manager.py" />
|
||||||
<option value="$PROJECT_DIR$/screen_objects.py" />
|
<option value="$PROJECT_DIR$/screen_objects.py" />
|
||||||
<option value="$PROJECT_DIR$/touch_screen.py" />
|
<option value="$PROJECT_DIR$/touch_screen.py" />
|
||||||
<option value="$PROJECT_DIR$/screen_manager.py" />
|
<option value="$PROJECT_DIR$/screen_manager.py" />
|
||||||
<option value="$PROJECT_DIR$/tracklist.py" />
|
<option value="$PROJECT_DIR$/playlist_screen.py" />
|
||||||
<option value="$PROJECT_DIR$/list_view.py" />
|
<option value="$PROJECT_DIR$/list_view.py" />
|
||||||
<option value="$PROJECT_DIR$/touch_manager.py" />
|
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -367,13 +378,6 @@
|
|||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/touch_screen_backend.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="75" max-vertical-offset="345">
|
|
||||||
<caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/screen_objects.py">
|
<entry file="file://$PROJECT_DIR$/screen_objects.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="1470" max-vertical-offset="2775">
|
<state vertical-scroll-proportion="0.0" vertical-offset="1470" max-vertical-offset="2775">
|
||||||
@@ -719,26 +723,34 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/touch_screen.py">
|
<entry file="file://$PROJECT_DIR$/touch_manager.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.92840093" vertical-offset="661" max-vertical-offset="1185">
|
<state vertical-scroll-proportion="0.14319809" vertical-offset="0" max-vertical-offset="1140">
|
||||||
<caret line="77" column="49" selection-start-line="77" selection-start-column="49" selection-end-line="77" selection-end-column="49" />
|
<caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tracklist.py">
|
<entry file="file://$PROJECT_DIR$/tracklist.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="90" max-vertical-offset="540">
|
<state vertical-scroll-proportion="0.0" vertical-offset="121" 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" />
|
<caret line="30" column="85" selection-start-line="13" selection-start-column="4" selection-end-line="30" selection-end-column="85" />
|
||||||
|
<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="766" max-vertical-offset="1230">
|
||||||
|
<caret line="82" column="46" selection-start-line="82" selection-start-column="46" selection-end-line="82" selection-end-column="46" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/screen_manager.py">
|
<entry file="file://$PROJECT_DIR$/screen_manager.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="1081" max-vertical-offset="2715">
|
<state vertical-scroll-proportion="0.0" vertical-offset="2491" max-vertical-offset="2910">
|
||||||
<caret line="92" column="43" selection-start-line="92" selection-start-column="43" selection-end-line="92" selection-end-column="43" />
|
<caret line="182" column="40" selection-start-line="182" selection-start-column="40" selection-end-line="182" selection-end-column="40" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#35#0" expanded="true" />
|
<element signature="e#0#35#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -747,24 +759,24 @@
|
|||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/screen_objects.py">
|
<entry file="file://$PROJECT_DIR$/screen_objects.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="2101" max-vertical-offset="3615">
|
<state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3675">
|
||||||
<caret line="147" column="0" selection-start-line="147" selection-start-column="0" selection-end-line="147" selection-end-column="0" />
|
<caret line="9" column="23" selection-start-line="9" selection-start-column="23" selection-end-line="9" selection-end-column="23" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/playlist_screen.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state vertical-scroll-proportion="0.0" vertical-offset="61" max-vertical-offset="540">
|
||||||
|
<caret line="29" column="72" selection-start-line="29" selection-start-column="72" selection-end-line="29" selection-end-column="72" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/list_view.py">
|
<entry file="file://$PROJECT_DIR$/list_view.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state vertical-scroll-proportion="0.0" vertical-offset="719" max-vertical-offset="1515">
|
<state vertical-scroll-proportion="-0.25615764" vertical-offset="1124" max-vertical-offset="1530">
|
||||||
<caret line="85" column="45" selection-start-line="85" selection-start-column="45" selection-end-line="85" selection-end-column="45" />
|
<caret line="73" column="31" selection-start-line="73" selection-start-column="31" selection-end-line="73" selection-end-column="31" />
|
||||||
<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 />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ class ListView():
|
|||||||
self.scrollbar = True
|
self.scrollbar = True
|
||||||
scroll_bar = ScrollBar((self.pos[0]+self.size[0]-self.base_size,self.pos[1]), (self.base_size, self.size[1]),self.list_size,self.max_rows)
|
scroll_bar = ScrollBar((self.pos[0]+self.size[0]-self.base_size,self.pos[1]), (self.base_size, self.size[1]),self.list_size,self.max_rows)
|
||||||
self.screen_objects.set_touch_object("scrollbar", scroll_bar)
|
self.screen_objects.set_touch_object("scrollbar", scroll_bar)
|
||||||
logger.error("hemen nao")
|
|
||||||
else:
|
else:
|
||||||
self.scrollbar = False
|
self.scrollbar = False
|
||||||
self.load_new_item_position(0)
|
self.load_new_item_position(0)
|
||||||
@@ -49,7 +48,7 @@ class ListView():
|
|||||||
else:
|
else:
|
||||||
width = self.size[0]
|
width = self.size[0]
|
||||||
while i < self.list_size and z < self.max_rows:
|
while i < self.list_size and z < self.max_rows:
|
||||||
item = TouchAndTextItem(self.fonts['dejavusans'], self.list[i], (self.pos[0], self.pos[1]+self.base_size*z), (width, self.base_size))
|
item = TouchAndTextItem(self.fonts['dejavusans'], self.list[i], (self.pos[0], self.pos[1]+self.base_size*z), (width, -1))
|
||||||
self.screen_objects.set_touch_object(str(i), item)
|
self.screen_objects.set_touch_object(str(i), item)
|
||||||
i += 1
|
i += 1
|
||||||
z += 1
|
z += 1
|
||||||
@@ -66,6 +65,8 @@ class ListView():
|
|||||||
direction = self.screen_objects.get_touch_object(key).touch(touch_event.current_pos)
|
direction = self.screen_objects.get_touch_object(key).touch(touch_event.current_pos)
|
||||||
if direction != 0:
|
if direction != 0:
|
||||||
self.move_to(direction)
|
self.move_to(direction)
|
||||||
|
else:
|
||||||
|
return int(key)
|
||||||
elif touch_event.type == TouchManager.swipe:
|
elif touch_event.type == TouchManager.swipe:
|
||||||
if touch_event.direction == TouchManager.up:
|
if touch_event.direction == TouchManager.up:
|
||||||
self.move_to(-1)
|
self.move_to(-1)
|
||||||
|
|||||||
30
mopidy_touchscreen/playlist_screen.py
Normal file
30
mopidy_touchscreen/playlist_screen.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
from .list_view import ListView
|
||||||
|
|
||||||
|
|
||||||
|
class PlaylistScreen():
|
||||||
|
|
||||||
|
def __init__(self, size, base_size, manager):
|
||||||
|
self.size = size
|
||||||
|
self.base_size = base_size
|
||||||
|
self.manager = manager
|
||||||
|
self.list_view = ListView((0,self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts)
|
||||||
|
self.playlists_strings = []
|
||||||
|
self.playlists = []
|
||||||
|
self.playlists_loaded()
|
||||||
|
|
||||||
|
def update(self, screen):
|
||||||
|
self.list_view.render(screen)
|
||||||
|
|
||||||
|
def playlists_loaded(self):
|
||||||
|
self.playlists_strings = []
|
||||||
|
self.playlists = []
|
||||||
|
for playlist in self.manager.core.playlists.playlists.get():
|
||||||
|
self.playlists.append(playlist)
|
||||||
|
self.playlists_strings.append(playlist.name)
|
||||||
|
self.list_view.set_list(self.playlists_strings)
|
||||||
|
|
||||||
|
def touch_event(self, touch_event):
|
||||||
|
clicked = self.list_view.touch_event(touch_event)
|
||||||
|
if clicked is not None:
|
||||||
|
self.manager.core.tracklist.clear()
|
||||||
|
self.manager.core.tracklist.add(uri=self.playlists[clicked].uri)
|
||||||
@@ -2,6 +2,7 @@ from .main_screen import MainScreen
|
|||||||
from .touch_manager import TouchManager
|
from .touch_manager import TouchManager
|
||||||
from .screen_objects import *
|
from .screen_objects import *
|
||||||
from .tracklist import Tracklist
|
from .tracklist import Tracklist
|
||||||
|
from .playlist_screen import PlaylistScreen
|
||||||
from .dynamic_background import DynamicBackground
|
from .dynamic_background import DynamicBackground
|
||||||
import pygame
|
import pygame
|
||||||
import logging
|
import logging
|
||||||
@@ -24,7 +25,8 @@ class ScreenManager():
|
|||||||
self.fonts['dejavusans'] = pygame.font.SysFont("dejavusans", self.base_size)
|
self.fonts['dejavusans'] = pygame.font.SysFont("dejavusans", self.base_size)
|
||||||
try:
|
try:
|
||||||
self.screens = [MainScreen(size, self, "/home/ander", core, self.fonts),
|
self.screens = [MainScreen(size, self, "/home/ander", core, self.fonts),
|
||||||
Tracklist(size, self.base_size, self)]
|
Tracklist(size, self.base_size, self),
|
||||||
|
PlaylistScreen(size, self.base_size, self)]
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
self.track = None
|
self.track = None
|
||||||
@@ -64,12 +66,17 @@ class ScreenManager():
|
|||||||
|
|
||||||
#Main button
|
#Main button
|
||||||
button = TouchAndTextItem(self.fonts['dejavusans'], "Main", (0, self.base_size * 7), None)
|
button = TouchAndTextItem(self.fonts['dejavusans'], "Main", (0, self.base_size * 7), None)
|
||||||
self.screen_objects_manager.set_touch_object("menu_main", button)
|
self.screen_objects_manager.set_touch_object("menu_0", button)
|
||||||
x = button.get_right_pos()
|
x = button.get_right_pos()
|
||||||
|
|
||||||
#Tracklist button
|
#Tracklist button
|
||||||
button = TouchAndTextItem(self.fonts['dejavusans'], "Tracklist", (x, self.base_size * 7), None)
|
button = TouchAndTextItem(self.fonts['dejavusans'], "Tracklist", (x, self.base_size * 7), None)
|
||||||
self.screen_objects_manager.set_touch_object("menu_tracklist", button)
|
self.screen_objects_manager.set_touch_object("menu_1", button)
|
||||||
|
x = button.get_right_pos()
|
||||||
|
|
||||||
|
#Playlist button
|
||||||
|
button = TouchAndTextItem(self.fonts['dejavusans'], "Playlist", (x, self.base_size * 7), None)
|
||||||
|
self.screen_objects_manager.set_touch_object("menu_2", button)
|
||||||
|
|
||||||
#Down bar
|
#Down bar
|
||||||
self.down_bar = pygame.Surface((self.size[0], self.base_size), pygame.SRCALPHA)
|
self.down_bar = pygame.Surface((self.size[0], self.base_size), pygame.SRCALPHA)
|
||||||
@@ -77,6 +84,7 @@ class ScreenManager():
|
|||||||
|
|
||||||
self.options_changed()
|
self.options_changed()
|
||||||
self.playback_state_changed(self.core.playback.state.get(), self.core.playback.state.get())
|
self.playback_state_changed(self.core.playback.state.get(), self.core.playback.state.get())
|
||||||
|
self.change_screen(self.current_screen)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
surface = pygame.Surface(self.size)
|
surface = pygame.Surface(self.size)
|
||||||
@@ -121,10 +129,8 @@ class ScreenManager():
|
|||||||
self.options_changed()
|
self.options_changed()
|
||||||
elif key == "repeat":
|
elif key == "repeat":
|
||||||
self.change_repeat_single()
|
self.change_repeat_single()
|
||||||
elif key == "menu_main":
|
elif key[:-1] == "menu_":
|
||||||
self.current_screen = 0
|
self.change_screen(int(key[-1:]))
|
||||||
elif key == "menu_tracklist":
|
|
||||||
self.current_screen = 1
|
|
||||||
self.screens[self.current_screen].touch_event(touch_event)
|
self.screens[self.current_screen].touch_event(touch_event)
|
||||||
|
|
||||||
def volume_changed(self, volume):
|
def volume_changed(self, volume):
|
||||||
@@ -173,3 +179,11 @@ class ScreenManager():
|
|||||||
self.core.tracklist.set_repeat(repeat)
|
self.core.tracklist.set_repeat(repeat)
|
||||||
self.core.tracklist.set_single(single)
|
self.core.tracklist.set_single(single)
|
||||||
self.options_changed()
|
self.options_changed()
|
||||||
|
|
||||||
|
def change_screen(self, new_screen):
|
||||||
|
self.screen_objects_manager.get_touch_object("menu_"+str(self.current_screen)).set_active(False)
|
||||||
|
self.current_screen = new_screen
|
||||||
|
self.screen_objects_manager.get_touch_object("menu_"+str(new_screen)).set_active(True)
|
||||||
|
|
||||||
|
def playlists_loaded(self):
|
||||||
|
self.screens[2].playlists_loaded()
|
||||||
@@ -71,6 +71,9 @@ class TextItem(BaseItem):
|
|||||||
self.color = (255, 255, 255)
|
self.color = (255, 255, 255)
|
||||||
self.box = self.font.render(text, True, self.color)
|
self.box = self.font.render(text, True, self.color)
|
||||||
if size is not None:
|
if size is not None:
|
||||||
|
if size[1] == -1:
|
||||||
|
BaseItem.__init__(self, pos, (size[0], self.font.size(text)[1]))
|
||||||
|
else:
|
||||||
BaseItem.__init__(self, pos, size)
|
BaseItem.__init__(self, pos, size)
|
||||||
else:
|
else:
|
||||||
BaseItem.__init__(self, pos, self.font.size(text))
|
BaseItem.__init__(self, pos, self.font.size(text))
|
||||||
@@ -140,7 +143,7 @@ class TouchAndTextItem(TouchObject, TextItem):
|
|||||||
def __init__(self, font, text, pos, size):
|
def __init__(self, font, text, pos, size):
|
||||||
TextItem.__init__(self, font, text, pos, size)
|
TextItem.__init__(self, font, text, pos, size)
|
||||||
TouchObject.__init__(self, pos, self.size)
|
TouchObject.__init__(self, pos, self.size)
|
||||||
self.active_color = (255, 0, 255)
|
self.active_color = (0, 150, 255)
|
||||||
self.active_box = self.font.render(text, True, self.active_color)
|
self.active_box = self.font.render(text, True, self.active_color)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
@@ -159,6 +162,7 @@ class TouchAndTextItem(TouchObject, TextItem):
|
|||||||
else:
|
else:
|
||||||
surface.blit(self.box, self.pos, area=self.rect)
|
surface.blit(self.box, self.pos, area=self.rect)
|
||||||
|
|
||||||
|
|
||||||
class Progressbar(TouchObject):
|
class Progressbar(TouchObject):
|
||||||
|
|
||||||
def __init__(self, font, text, pos, size, max_value, value_text):
|
def __init__(self, font, text, pos, size, max_value, value_text):
|
||||||
@@ -211,15 +215,15 @@ class ScrollBar(TouchObject):
|
|||||||
self.max = max_value
|
self.max = max_value
|
||||||
self.items_on_screen = items_on_screen
|
self.items_on_screen = items_on_screen
|
||||||
self.current_item = 0
|
self.current_item = 0
|
||||||
self.back_bar = pygame.Surface(self.size)
|
self.back_bar = pygame.Surface(self.size, pygame.SRCALPHA)
|
||||||
self.back_bar.fill((255, 255, 255))
|
self.back_bar.fill((255, 255, 255, 128))
|
||||||
self.bar_pos = 0
|
self.bar_pos = 0
|
||||||
if self.max < 1:
|
if self.max < 1:
|
||||||
self.bar_size = self.size[1]
|
self.bar_size = self.size[1]
|
||||||
else:
|
else:
|
||||||
self.bar_size = math.ceil(float(self.items_on_screen)/float(self.max) * float(self.size[1]))
|
self.bar_size = math.ceil(float(self.items_on_screen)/float(self.max) * float(self.size[1]))
|
||||||
self.bar = pygame.Surface((self.size[0], self.bar_size))
|
self.bar = pygame.Surface((self.size[0], self.bar_size))
|
||||||
self.bar.fill((255, 255, 0))
|
self.bar.fill((255, 255, 255))
|
||||||
|
|
||||||
def render(self, surface):
|
def render(self, surface):
|
||||||
surface.blit(self.back_bar, self.pos)
|
surface.blit(self.back_bar, self.pos)
|
||||||
|
|||||||
@@ -78,3 +78,6 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
|
|||||||
self.screen_manager.options_changed()
|
self.screen_manager.options_changed()
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
|
def playlists_loaded(self):
|
||||||
|
self.screen_manager.playlists_loaded()
|
||||||
|
|||||||
Reference in New Issue
Block a user