9and3r 11 år sedan
förälder
incheckning
8cd99fa2af

+ 67 - 111
mopidy_touchscreen/.idea/workspace.xml

@@ -26,8 +26,8 @@
       <file leaf-file-name="touch_screen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/touch_screen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="616" max-vertical-offset="1035">
-              <caret line="62" column="0" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="571" max-vertical-offset="1080">
+              <caret line="54" column="22" selection-start-line="54" selection-start-column="22" selection-end-line="54" selection-end-column="22" />
               <folding />
             </state>
           </provider>
@@ -36,11 +36,9 @@
       <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="0.0" vertical-offset="0" max-vertical-offset="1620">
-              <caret line="21" column="31" selection-start-line="21" selection-start-column="31" selection-end-line="21" selection-end-column="31" />
-              <folding>
-                <element signature="e#0#35#0" expanded="true" />
-              </folding>
+            <state vertical-scroll-proportion="0.0" vertical-offset="899" max-vertical-offset="1695">
+              <caret line="61" column="0" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
+              <folding />
             </state>
           </provider>
         </entry>
@@ -48,18 +46,18 @@
       <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="76" max-vertical-offset="495">
-              <caret line="27" column="47" selection-start-line="27" selection-start-column="47" selection-end-line="27" selection-end-column="47" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" 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" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="list_view.py" pinned="false" current="false" current-in-tab="false">
+      <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.0" vertical-offset="0" max-vertical-offset="1290">
-              <caret line="50" column="0" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
+            <state vertical-scroll-proportion="0.59359604" vertical-offset="224" max-vertical-offset="1350">
+              <caret line="31" column="48" selection-start-line="31" selection-start-column="48" selection-end-line="31" selection-end-column="48" />
               <folding>
                 <element signature="e#0#48#0" expanded="true" />
               </folding>
@@ -67,14 +65,12 @@
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="screen_objects.py" pinned="false" current="true" current-in-tab="true">
+      <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="-1.2911694" vertical-offset="2821" max-vertical-offset="3735">
-              <caret line="152" column="21" selection-start-line="152" selection-start-column="21" selection-end-line="152" selection-end-column="21" />
-              <folding>
-                <element signature="e#0#13#0" expanded="true" />
-              </folding>
+            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3405">
+              <caret line="19" column="48" selection-start-line="19" selection-start-column="48" selection-end-line="19" selection-end-column="48" />
+              <folding />
             </state>
           </provider>
         </entry>
@@ -82,11 +78,9 @@
       <file leaf-file-name="main_screen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/main_screen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="405" max-vertical-offset="1980">
-              <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
-              <folding>
-                <element signature="e#0#13#0" expanded="true" />
-              </folding>
+            <state vertical-scroll-proportion="0.0" vertical-offset="180" max-vertical-offset="1980">
+              <caret line="28" column="55" selection-start-line="28" selection-start-column="55" selection-end-line="28" selection-end-column="55" />
+              <folding />
             </state>
           </provider>
         </entry>
@@ -106,10 +100,11 @@
         <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$/touch_screen.py" />
         <option value="$PROJECT_DIR$/main_screen.py" />
-        <option value="$PROJECT_DIR$/screen_manager.py" />
+        <option value="$PROJECT_DIR$/dynamic_background.py" />
         <option value="$PROJECT_DIR$/screen_objects.py" />
+        <option value="$PROJECT_DIR$/screen_manager.py" />
+        <option value="$PROJECT_DIR$/touch_screen.py" />
         <option value="$PROJECT_DIR$/list_view.py" />
       </list>
     </option>
@@ -146,6 +141,7 @@
       <sortByType />
     </navigator>
     <panes>
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <PATH>
@@ -166,7 +162,6 @@
           </PATH>
         </subPane>
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -337,7 +332,7 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="65" y="24" width="1301" height="744" extended-state="6" />
-    <editor active="true" />
+    <editor active="false" />
     <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" />
@@ -351,11 +346,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="true" 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="true" 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">
@@ -380,16 +375,6 @@
     </breakpoint-manager>
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/screen_objects.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="2205" max-vertical-offset="2940">
-          <caret line="147" column="70" selection-start-line="147" selection-start-column="70" selection-end-line="147" selection-end-column="70" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </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="0" max-vertical-offset="975">
@@ -409,9 +394,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="1470" max-vertical-offset="2775">
           <caret line="98" column="45" selection-start-line="98" selection-start-column="45" selection-end-line="98" selection-end-column="45" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -419,9 +402,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1290">
           <caret line="62" column="61" selection-start-line="62" selection-start-column="61" selection-end-line="62" selection-end-column="61" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -451,9 +432,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="2190" max-vertical-offset="2775">
           <caret line="146" column="36" selection-start-line="146" selection-start-column="36" selection-end-line="146" selection-end-column="36" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -461,9 +440,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="570" max-vertical-offset="1065">
           <caret line="57" column="93" selection-start-line="57" selection-start-column="93" selection-end-line="57" selection-end-column="93" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -485,9 +462,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="2610" max-vertical-offset="2775">
           <caret line="174" column="33" selection-start-line="174" selection-start-column="33" selection-end-line="174" selection-end-column="33" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -495,9 +470,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="464" max-vertical-offset="1020">
           <caret line="54" column="29" selection-start-line="54" selection-start-column="29" selection-end-line="54" selection-end-column="29" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -527,9 +500,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="2190" max-vertical-offset="2490">
           <caret line="146" column="30" selection-start-line="146" selection-start-column="30" selection-end-line="146" selection-end-column="30" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -537,9 +508,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="540">
           <caret line="13" column="25" selection-start-line="13" selection-start-column="25" selection-end-line="13" selection-end-column="25" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -562,9 +531,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="1193" max-vertical-offset="2490">
           <caret line="146" column="30" selection-start-line="146" selection-start-column="30" selection-end-line="146" selection-end-column="30" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -572,9 +539,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="360" max-vertical-offset="540">
           <caret line="24" column="53" selection-start-line="24" selection-start-column="53" selection-end-line="24" selection-end-column="53" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -604,9 +569,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="1193" max-vertical-offset="2490">
           <caret line="146" column="30" selection-start-line="146" selection-start-column="30" selection-end-line="146" selection-end-column="30" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -614,9 +577,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="360" max-vertical-offset="540">
           <caret line="24" column="53" selection-start-line="24" selection-start-column="53" selection-end-line="24" selection-end-column="53" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -646,9 +607,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="330" max-vertical-offset="450">
           <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -671,9 +630,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="330" max-vertical-offset="450">
           <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -696,9 +653,7 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="330" max-vertical-offset="450">
           <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+          <folding />
         </state>
       </provider>
     </entry>
@@ -753,58 +708,59 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/screen_manager.py">
+    <entry file="file://$PROJECT_DIR$/dynamic_background.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1620">
-          <caret line="21" column="31" selection-start-line="21" selection-start-column="31" selection-end-line="21" selection-end-column="31" />
-          <folding>
-            <element signature="e#0#35#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.9517766" vertical-offset="0" max-vertical-offset="495">
+          <caret line="25" column="0" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tracklist.py">
+    <entry file="file://$PROJECT_DIR$/main_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="76" max-vertical-offset="495">
-          <caret line="27" column="47" selection-start-line="27" selection-start-column="47" selection-end-line="27" selection-end-column="47" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="180" max-vertical-offset="1980">
+          <caret line="28" column="55" selection-start-line="28" selection-start-column="55" selection-end-line="28" selection-end-column="55" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/main_screen.py">
+    <entry file="file://$PROJECT_DIR$/touch_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1980">
-          <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
-          <folding>
-            <element signature="e#0#13#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.0" vertical-offset="571" max-vertical-offset="1080">
+          <caret line="54" column="22" selection-start-line="54" selection-start-column="22" selection-end-line="54" selection-end-column="22" />
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/list_view.py">
+    <entry file="file://$PROJECT_DIR$/screen_manager.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="1290">
-          <caret line="50" column="0" selection-start-line="50" selection-start-column="0" selection-end-line="50" selection-end-column="0" />
-          <folding>
-            <element signature="e#0#48#0" expanded="true" />
-          </folding>
+        <state vertical-scroll-proportion="0.0" vertical-offset="764" max-vertical-offset="1695">
+          <caret line="61" column="0" selection-start-line="61" selection-start-column="0" selection-end-line="61" selection-end-column="0" />
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/touch_screen.py">
+    <entry file="file://$PROJECT_DIR$/tracklist.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="571" max-vertical-offset="1035">
-          <caret line="62" column="0" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
+        <state vertical-scroll-proportion="0.0" 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" />
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/screen_objects.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="-1.2911694" vertical-offset="2821" max-vertical-offset="3735">
-          <caret line="152" column="21" selection-start-line="152" selection-start-column="21" selection-end-line="152" selection-end-column="21" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="3435">
+          <caret line="19" column="48" selection-start-line="19" selection-start-column="48" selection-end-line="19" selection-end-column="48" />
+          <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.59359604" vertical-offset="224" max-vertical-offset="1350">
+          <caret line="31" column="48" selection-start-line="31" selection-start-column="48" selection-end-line="31" selection-end-column="48" />
           <folding>
-            <element signature="e#0#13#0" expanded="true" />
+            <element signature="e#0#48#0" expanded="true" />
           </folding>
         </state>
       </provider>

+ 20 - 18
mopidy_touchscreen/dynamic_background.py

@@ -2,24 +2,26 @@ import random
 
 class DynamicBackground():
 
-	def __init__(self):
-		self.current=[0,0,0]
-		self.target=[0,0,0]
-		for x in range(0, 3):
-			self.target[x]=random.randint(0,255)
+    def __init__(self):
+        self.current=[0,0,0]
+        for x in range(0, 3):
+            self.current[x]=random.randint(0,255)
+        self.target=[0,0,0]
+        for x in range(0, 3):
+            self.target[x]=random.randint(0,255)
 
-	def drawBackground(self,surface):
-		same = True
-		for x in range(0, 3):
-			if self.current[x]> self.target[x]:
-				self.current[x]=self.current[x]-1
-			elif self.current[x]<self.target[x]:
-				self.current[x]=self.current[x]+1
-			if(self.current != self.target):
-				same = False
-		if same:
-			for x in range(0, 3):
-				self.target[x]=random.randint(0,255)
-		surface.fill(self.current)
+    def drawBackground(self,surface):
+        same = True
+        for x in range(0, 3):
+            if self.current[x]> self.target[x]:
+                self.current[x]=self.current[x]-1
+            elif self.current[x]<self.target[x]:
+                self.current[x]=self.current[x]+1
+            if(self.current != self.target):
+                same = False
+        if same:
+            for x in range(0, 3):
+                self.target[x]=random.randint(0,255)
+        surface.fill(self.current)
 
 		

+ 12 - 8
mopidy_touchscreen/list_view.py

@@ -3,16 +3,18 @@ import logging
 import pygame
 from .touch_manager import TouchManager
 from .touch_manager import TouchEvent
+from .screen_objects import *
 
 logger = logging.getLogger(__name__)
 
+
 class ListView():
 
     def __init__(self, pos, size, base_size,fonts):
         self.size = size
         self.pos = pos
         self.base_size = base_size
-        self.screen_objects = ScreenObjectsManager(self.base_size)
+        self.screen_objects = ScreenObjectsManager()
         self.max_rows = self.size[1] / self.base_size
         self.current_item = 0
         self.fonts = fonts
@@ -21,14 +23,14 @@ class ListView():
         self.scrollbar = False
         self.set_list([])
 
-
-
     def set_list(self, item_list):
         self.list = item_list
         self.list_size = len(item_list)
         if self.max_rows < self.list_size:
             self.scrollbar = True
-            self.screen_objects.add_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.add_touch_object("scrollbar", scroll_bar)
+            logger.error("hemen nao")
         else:
             self.scrollbar = False
         self.load_new_item_position(0)
@@ -42,10 +44,13 @@ class ListView():
         i = self.current_item
         z = 0
         if self.scrollbar:
-            x2 = self.pos[0] + self.size[0] - self.base_size
-            x2 = self.pos[0] + self.size[0]
+            width = self.size[0] - self.base_size
+        else:
+            width = self.size[0]
         while i < self.list_size and z < self.max_rows:
-            self.screen_objects.add_touch_object(str(i),self.fonts['dejavusans'], self.list[i], (self.pos[0],self.pos[1]+self.base_size*z),(x2, self.pos[1]+self.base_size*(z+1)), (255, 255, 255))
+            logger.error("sartu naiz")
+            item = TouchAndTextItem(self.fonts['dejavusans'], self.list[i], (self.pos[0],self.pos[1]+self.base_size*z),(width, self.base_size))
+            self.screen_objects.add_touch_object(str(i), item)
             i += 1
             z += 1
 
@@ -62,7 +67,6 @@ class ListView():
                         if direction != 0:
                             self.move_to(direction)
 
-
     def move_to(self, direction):
         if direction == 1:
             self.current_item += self.max_rows

+ 1 - 1
mopidy_touchscreen/main_screen.py

@@ -26,7 +26,7 @@ class MainScreen():
         self.track = None
         self.cache = cache
         self.image = None
-        self.touch_text_manager = ScreenObjectsManager(self.base_size)
+        self.touch_text_manager = ScreenObjectsManager()
 
 
     def update(self, screen):

+ 22 - 9
mopidy_touchscreen/screen_manager.py

@@ -1,6 +1,6 @@
 from .main_screen import MainScreen
 from .touch_manager import TouchManager
-from .screen_objects import ScreenObjectsManager
+from .screen_objects import *
 from .tracklist import Tracklist
 from .dynamic_background import DynamicBackground
 import pygame
@@ -29,23 +29,36 @@ class ScreenManager():
             traceback.print_exc()
         self.track = None
         self.touch_manager = TouchManager(size)
-        self.screen_objects_manager = ScreenObjectsManager(self.base_size)
-        x = self.screen_objects_manager.add_touch_object("pause_play",self.fonts['dejavusans']," ll",(0,0), None, (255,255,255))
-        x = x + self.base_size / 2
-        x = self.screen_objects_manager.add_touch_object("random",self.fonts['dejavuserif'],u"\u2928",(x,0),None,(255,255,255))
-        x = x + self.base_size / 2
-        x = self.screen_objects_manager.add_touch_object("repeat",self.fonts['dejavuserif'],u"\u27F21",(x,0),None,(255,255,255))
+        self.screen_objects_manager = ScreenObjectsManager()
+        button = TouchAndTextItem(self.fonts['dejavusans']," ll",(0, 0), None)
+        self.screen_objects_manager.add_touch_object("pause_play", button)
+        x = button.get_right_pos() + self.base_size / 2
+        button = TouchAndTextItem(self.fonts['dejavuserif'],u"\u2928",(x,0),None)
+        self.screen_objects_manager.add_touch_object("random",button)
+        x = button.get_right_pos()
+        button = TouchAndTextItem(self.fonts['dejavuserif'],u"\u27F21",(x,0),None)
+        self.screen_objects_manager.add_touch_object("repeat",button)
+        x = button.get_right_pos() + self.base_size / 2
+        button = TouchAndTextItem(self.fonts['dejavusans'],"Mute",(x,0),None)
+        self.screen_objects_manager.add_touch_object("mute",button)
+        x = button.get_right_pos() + self.base_size / 2
+        '''
+
         x = x + self.base_size / 2
         x = self.screen_objects_manager.add_touch_object("mute",self.fonts['dejavusans'],"Mute",(x,0),None,(255,255,255))
         x = x + self.base_size / 2
         self.screen_objects_manager.add_progressbar("volume",self.fonts['dejavusans'],"100", (x,0), (self.size[0],self.base_size),100, True)
         self.screen_objects_manager.get_touch_object("volume").set_value(self.core.playback.volume.get())
+
+        self.playback_state_changed(mopidy.core.PlaybackState.STOPPED, self.core.playback.state.get())
+
+        x = self.screen_objects_manager.add_touch_object("menu_main",self.fonts['dejavusans'],"Main",(0,self.base_size*7),None,(255,255,255))
+        '''
         self.top_bar = pygame.Surface((self.size[0],self.base_size),pygame.SRCALPHA)
         self.top_bar.fill((0,0,0,128))
-        self.playback_state_changed(mopidy.core.PlaybackState.STOPPED, self.core.playback.state.get())
+
         self.down_bar = pygame.Surface((self.size[0], self.base_size),pygame.SRCALPHA)
         self.down_bar.fill((0,0,0,128))
-        x = self.screen_objects_manager.add_touch_object("menu_main",self.fonts['dejavusans'],"Main",(0,self.base_size*7),None,(255,255,255))
 
     def update(self):
         surface = pygame.Surface(self.size)

+ 55 - 75
mopidy_touchscreen/screen_objects.py

@@ -7,30 +7,22 @@ logger = logging.getLogger(__name__)
 
 class ScreenObjectsManager():
 
-    def __init__(self, base_size):
-        self.base_size = base_size
+    def __init__(self):
         self.touch_objects = {}
         self.text_objects = {}
 
-    def add_object(self, key, font, text, pos, pos2, color):
-        self.text_objects[key] = TextItem(font, text, pos,pos2,color,self.base_size)
+    def add_object(self, key, add_object):
+        self.text_objects[key] = add_object
 
     def get_object(self, key):
         return self.text_objects[key]
 
-    def add_touch_object(self, key, font, text, pos, pos2, color):
-        self.touch_objects[key] = TouchAndTextItem(font, text, pos, pos2, color, self.base_size)
-        return self.touch_objects[key].get_right_pos()
+    def add_touch_object(self, key, add_object):
+        self.touch_objects[key] = add_object
 
-    def get_touch_object(self,key):
+    def get_touch_object(self, key):
         return self.touch_objects[key]
 
-    def add_progressbar(self, key, font, text, pos, pos2, max,value_text):
-        self.touch_objects[key] = Progressbar(font, text,pos,pos2,max,self.base_size,value_text)
-
-    def add_scroll_bar(self, key, pos, size, max, items_on_screen):
-        self.touch_objects[key] = ScrollBar(pos,size,max,items_on_screen)
-
     def render(self, surface):
         for key in self.text_objects:
             self.text_objects[key].update()
@@ -40,11 +32,11 @@ class ScreenObjectsManager():
             self.touch_objects[key].render(surface)
 
     def get_touch_objects_in_pos(self, pos):
-        objects = []
+        touched_objects = []
         for key in self.touch_objects:
             if self.touch_objects[key].is_pos_inside(pos):
-                objects.append(key)
-        return objects
+                touched_objects.append(key)
+        return touched_objects
 
     def clear(self, mantain):
         if mantain is not None:
@@ -56,17 +48,14 @@ class ScreenObjectsManager():
 
 class BaseItem():
 
-    def __init__(self,pos,pos2):
+    def __init__(self, pos, size):
         self.pos = pos
-        self.pos2 = pos2
-        self.size=[0,0]
-        self.size[0] = self.pos2[0] - self.pos[0]
-        self.size[1] = self.pos2[1] - self.pos[1]
-        self.rect = pygame.Rect(0,0,self.size[0],self.size[1])
-        self.rect_in_pos = pygame.Rect(self.pos[0],self.pos[1],self.size[0],self.size[1])
+        self.size = size
+        self.rect = pygame.Rect(0, 0, self.size[0], self.size[1])
+        self.rect_in_pos = pygame.Rect(self.pos[0], self.pos[1], self.size[0], self.size[1])
 
     def get_right_pos(self):
-        return self.pos2[0]
+        return self.pos[0] + self.size[0]
 
     def update(self):
         pass
@@ -74,28 +63,29 @@ class BaseItem():
 
 class TextItem(BaseItem):
 
-    def __init__(self, font, text, pos, pos2, color, text_size):
-        if pos2 is not None:
-            BaseItem.__init__(self,pos,pos2)
-        self.text_size = text_size
+    def __init__(self, font, text, pos, size):
         self.font = font
         self.text = text
-        self.color = color
+        self.color = (255, 255, 255)
         self.box = self.font.render(text, True, self.color)
-        if pos2 is not None:
-            if self.pos[0] + self.box.get_rect().width > pos2[0]:
+        if size is not None:
+            BaseItem.__init__(self, pos, size)
+        else:
+            BaseItem.__init__(self, pos, self.box.get_rect().size)
+        if size is not None:
+            if self.pos[0] + self.box.get_rect().width > pos[0] + size[0]:
                 self.fit_horizontal = False
-                self.text = self.text + "          "
+                self.text += "          "
                 self.original_text = self.text
                 self.step = 0
             else:
                 self.fit_horizontal = True
-            if self.pos[1] + self.box.get_rect().height > pos2[1]:
+            if self.pos[1] + self.box.get_rect().height > pos[1] + size[1]:
                 self.fit_vertical = False
             else:
                 self.fit_vertical = True
         else:
-            BaseItem.__init__(self,pos,(pos[0]+self.box.get_rect().width,pos[1]+self.box.get_rect().height))
+            BaseItem.__init__(self, pos, (pos[0] + self.box.get_rect().width, pos[1] + self.box.get_rect().height))
             self.fit_horizontal = True
             self.fit_vertical = True
 
@@ -108,7 +98,7 @@ class TextItem(BaseItem):
                     new_text = new_text + self.text[:1]
                     self.text = new_text
                 else:
-                    self.step = self.step + 1
+                    self.step += 1
             elif self.step > 5:
                 self.step = 0
                 new_text = self.text[1:]
@@ -117,24 +107,24 @@ class TextItem(BaseItem):
             else:
                 self.step += 1
 
-    def render(self,surface):
+    def render(self, surface):
         if self.fit_horizontal:
             self.box
         else:
             self.box = self.font.render(self.text, True, self.color)
-        surface.blit(self.box,self.pos,area=self.rect)
+        surface.blit(self.box, self.pos, area=self.rect)
 
     def set_text(self, text, same_size):
         if same_size:
-            TextItem.__init__(self, self.font, text, self.pos, None, self.color, self.text_size)
+            TextItem.__init__(self, self.font, text, self.pos, None)
         else:
-            TextItem.__init__(self, self.font, text, self.pos, self.pos2, self.color, self.text_size)
+            TextItem.__init__(self, self.font, text, self.pos, self.size)
 
 
 class TouchObject(BaseItem):
 
-    def __init__(self,pos,pos2):
-        BaseItem.__init__(self,pos,pos2)
+    def __init__(self, pos, size):
+        BaseItem.__init__(self, pos, size)
         self.active = False
 
     def is_pos_inside(self, pos):
@@ -146,45 +136,35 @@ class TouchObject(BaseItem):
 
 class TouchAndTextItem(TouchObject, TextItem):
 
-    def __init__(self, font, text, pos, pos2, color,text_size):
-        TextItem.__init__(self, font, text, pos, pos2, color,text_size)
-        TouchObject.__init__(self, pos, self.pos2)
+    def __init__(self, font, text, pos, size):
+        TextItem.__init__(self, font, text, pos, size)
+        TouchObject.__init__(self, pos, self.size)
 
     def update(self):
         TextItem.update(self)
 
-    def set_active(self, active):
-        self.active = active
-        if active:
-            color = (0,150,255)
-        else:
-            color = (255,255,255)
-        TextItem.__init__(self.font,self.text,self.pos,self.pos2,color,self.text_size)
 
+class Progressbar(TouchObject):
 
-class Progressbar(TouchObject, TextItem):
-
-    def __init__(self,font,text, pos, pos2, max,size, value_text):
-        BaseItem.__init__(self, pos, pos2)
-        logger.error(pos2)
+    def __init__(self, font, text, pos,size, max_value, value_text):
+        BaseItem.__init__(self, pos, size)
         self.value = 0
-        self.max = max
-        self.back_color = (0,0,0,128)
-        self.main_color = (0,150,255)
+        self.max = max_value
+        self.back_color = (0, 0, 0, 128)
+        self.main_color = (0, 150, 255)
         self.surface = pygame.Surface(self.size, pygame.SRCALPHA)
         self.surface.fill(self.back_color)
         self.value_text = value_text
         if value_text:
-            self.text = TextItem(font,str(self.max),pos,None,(255,255,255),size)
-            self.text.set_text(str(self.value),True)
+            self.text = TextItem(font, str(self.max), pos, None, (255, 255, 255), size)
+            self.text.set_text(str(self.value), True)
         else:
-            self.text = TextItem(font,text,pos,None,(255,255,255),size)
-        self.text.pos = (self.pos[0] + self.size[0] / 2 - self.text.size[0] /2,self.text.pos[1])
+            self.text = TextItem(font, text, pos, None)
+        self.text.pos = (self.pos[0] + self.size[0] / 2 - self.text.size[0] / 2, self.text.pos[1])
 
     def update(self):
         pass
 
-
     def render(self, surface):
         surface.blit(self.surface, self.pos)
         self.text.render(surface)
@@ -196,7 +176,7 @@ class Progressbar(TouchObject, TextItem):
                 self.set_text(str(self.value))
             self.surface.fill(self.back_color)
             pos_pixel = value * self.size[0] / self.max
-            rect = pygame.Rect(0,0,pos_pixel,self.size[1])
+            rect = pygame.Rect(0,0, pos_pixel, self.size[1])
             self.surface.fill(self.main_color, rect)
 
     def get_pos_value(self, pos):
@@ -204,26 +184,26 @@ class Progressbar(TouchObject, TextItem):
         return x * self.max / self.size[0]
 
     def set_text(self, text):
-        self.text.set_text(text , True)
+        self.text.set_text(text, True)
 
 
 class ScrollBar(TouchObject):
 
-    def __init__(self, pos, size, max, items_on_screen):
-        BaseItem.__init__(self, pos, (pos[0]+size[0],pos[1]+size[1]))
+    def __init__(self, pos, size, max_value, items_on_screen):
+        BaseItem.__init__(self, pos, (pos[0]+size[0], pos[1]+size[1]))
         self.pos = pos
         self.size = size
-        self.max = max
+        self.max = max_value
         self.items_on_screen = items_on_screen
         self.current_item = 0
         self.back_bar = pygame.Surface(self.size)
-        self.back_bar.fill((255,255,255))
+        self.back_bar.fill((255, 255, 255))
         self.bar_pos = 0
         if self.max < 1:
-            self.barsize = self.size[1]
+            self.bar_size = self.size[1]
         else:
-            self.barsize = math.ceil(float(self.items_on_screen)/float(self.max) * float(self.size[1]))
-        self.bar = pygame.Surface((self.size[0],self.barsize))
+            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.fill((255, 255, 0))
 
     def render(self, surface):
@@ -233,7 +213,7 @@ class ScrollBar(TouchObject):
     def touch(self, pos):
         if pos[1] < self.pos[1]+self.bar_pos:
             return -1
-        elif pos[1] > self.pos[1] + self.bar_pos + self.barsize:
+        elif pos[1] > self.pos[1] + self.bar_pos + self.bar_size:
             return 1
         else:
             return 0

+ 4 - 1
mopidy_touchscreen/touch_screen.py

@@ -68,4 +68,7 @@ class TouchScreen(pykka.ThreadingActor, core.CoreListener):
         self.screen_manager.playback_state_changed(old_state, new_state)
 
     def tracklist_changed(self):
-        self.screen_manager.tracklist_changed()
+        try:
+            self.screen_manager.tracklist_changed()
+        except:
+            traceback.print_exc()