]> git.alsa-project.org Git - alsa.git/commitdiff
hda-analyzer: fix digital category update, handle scroll events in graph win
authorJaroslav Kysela <perex@perex.cz>
Sun, 11 Jul 2010 08:13:45 +0000 (10:13 +0200)
committerJaroslav Kysela <perex@perex.cz>
Sun, 11 Jul 2010 08:13:45 +0000 (10:13 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
hda-analyzer/hda_graph.py
hda-analyzer/hda_guilib.py

index 0461b34c3a039e58cfee0dfd00784f313f6778be..06b5c9966509a1054087b55f42f5f2933142bbe2 100755 (executable)
@@ -25,6 +25,11 @@ from hda_codec import EAPDBTL_BITS, PIN_WIDGET_CONTROL_BITS, \
 
 GRAPH_WINDOWS = {}
 
+class DummyScrollEvent:
+
+  def __init__(self, dir):
+    self.direction = dir
+
 class Node:
 
   def __init__(self, codec, node, x, y, nodesize, extra):
@@ -442,12 +447,13 @@ class CodecGraphLayout(gtk.Layout):
     self.set_events(0)
     self.add_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.POINTER_MOTION_MASK |
                     gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK |
-                    gtk.gdk.LEAVE_NOTIFY_MASK)
+                    gtk.gdk.LEAVE_NOTIFY_MASK | gtk.gdk.SCROLL_MASK)
     self.expose_handler = self.connect("expose-event", self.expose)
     self.click_handler = self.connect("button-press-event", self.button_click)
     self.release_handler = self.connect("button-release-event", self.button_release)
     self.motion_handler = self.connect("motion-notify-event", self.mouse_move)
     self.mouse_leave_handler = self.connect("leave-notify-event", self.mouse_leave)
+    self.scroll_me_handler = self.connect("scroll-event", self.scroll_me)
 
     self.popup_win = None
     self.popup = None
@@ -764,6 +770,10 @@ class CodecGraphLayout(gtk.Layout):
     
   def button_click(self, widget, event):
     if event.button != 3:
+      if event.button == 8:
+        self.scroll_me(self, DummyScrollEvent(gtk.gdk.SCROLL_LEFT))
+      elif event.button == 9:
+        self.scroll_me(self, DummyScrollEvent(gtk.gdk.SCROLL_RIGHT))
       return False
     node, what = self.find_node(event)
     m = None
@@ -860,9 +870,22 @@ class CodecGraphLayout(gtk.Layout):
     return False 
     
   def button_release(self, widget, event):
-    
     pass
 
+  def scroll_me(self, widget, event):
+    if event.direction == gtk.gdk.SCROLL_UP:
+      adj = self.get_vadjustment()
+      adj.set_value(adj.get_value()-40)
+    elif event.direction == gtk.gdk.SCROLL_DOWN:
+      adj = self.get_vadjustment()
+      adj.set_value(adj.get_value()+40)
+    elif event.direction == gtk.gdk.SCROLL_LEFT:
+      adj = self.get_hadjustment()
+      adj.set_value(adj.get_value()-40)
+    elif event.direction == gtk.gdk.SCROLL_RIGHT:
+      adj = self.get_hadjustment()
+      adj.set_value(adj.get_value()+40)
+
 gobject.type_register(CodecGraphLayout)
 
 class CodecGraph(gtk.Window):
index 4fe84573c6a1410a0675bf377ce6f14ff1331bac..cdd12cb47353341ae511531b59b7ea1059d9beee 100644 (file)
@@ -463,7 +463,7 @@ class NodeGui(gtk.ScrolledWindow):
       hbox1.pack_start(frame)
       frame = gtk.Frame('Digital Converter Category')
       entry = gtk.Entry()
-      entry.set_text("0x%x" % node.dig1_category)
+      self.dig_category_entry = entry
       entry.set_width_chars(4)
       entry.connect("activate", self.__dig1_category_activate, node)
       frame.add(entry)
@@ -526,6 +526,7 @@ class NodeGui(gtk.ScrolledWindow):
           checkbutton = self.digital_checkbuttons[idx]
           checkbutton.set_active(node.digi1 & (1 << DIG1_BITS[name]))
           idx += 1
+        self.dig_category_entry.set_text("0x%x" % node.dig1_category)
     elif node.wtype_id == 'PIN':
       if 'EAPD' in node.pincap:
         idx = 0