tuna/oscilloscope-move-from-pygt...

157 lines
6.3 KiB
Diff

From 4511a331b8ea986b0026277e4753538b749c0a29 Mon Sep 17 00:00:00 2001
From: Jiri Kastner <jkastner@redhat.com>
Date: Mon, 7 Jan 2019 21:57:56 +0100
Subject: [PATCH] oscilloscope: move from pygtk2 to gtk3 gobject
oscilloscope migration from pygtk2 to gtk3 + python
gobject introspection
Signed-off-by: Jiri Kastner <jkastner@redhat.com>
---
oscilloscope-cmd.py | 5 ++++-
tuna/oscilloscope.py | 47 ++++++++++++++++++++++++--------------------
2 files changed, 30 insertions(+), 22 deletions(-)
diff --git a/oscilloscope-cmd.py b/oscilloscope-cmd.py
index 753b879..b9c24b4 100755
--- a/oscilloscope-cmd.py
+++ b/oscilloscope-cmd.py
@@ -20,7 +20,10 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
-import getopt, sys, gtk
+import getopt, sys
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk as gtk
from tuna import oscilloscope
def usage():
diff --git a/tuna/oscilloscope.py b/tuna/oscilloscope.py
index b26f903..af54d83 100755
--- a/tuna/oscilloscope.py
+++ b/tuna/oscilloscope.py
@@ -23,16 +23,21 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
-import gobject, gtk, os, sys
-from matplotlib.backends.backend_gtkagg import \
- FigureCanvasGTKAgg as figure_canvas
+import os, sys, gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk as gtk
+from gi.repository import Gdk as gdk
+from gi.repository import GObject as gobject
+
+from matplotlib.backends.backend_gtk3agg import \
+ FigureCanvasGTK3Agg as figure_canvas
import matplotlib.figure, matplotlib.ticker, numpy
class histogram_frame(gtk.Frame):
def __init__(self, title = "Statistics", width = 780, height = 100,
max_value = 500, nr_entries = 10,
facecolor = "white"):
- gtk.Frame.__init__(self, title)
+ gtk.Frame.__init__(self)
self.fraction = int(max_value / nr_entries)
if self.fraction == 0:
@@ -69,7 +74,7 @@ class histogram_frame(gtk.Frame):
label.set_alignment(0, 1)
table.attach(self.buckets_counter[bucket], 2, 3, bucket, bucket + 1, 0, 0, 0, 0)
- self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(facecolor))
+ self.modify_bg(gtk.StateFlags.NORMAL, gdk.color_parse(facecolor))
def add_sample(self, sample):
if sample > self.max_value:
@@ -97,7 +102,7 @@ class oscilloscope_frame(gtk.Frame):
bg_color = "darkgreen", facecolor = "white",
ylabel = "Latency", picker = None):
- gtk.Frame.__init__(self, title)
+ gtk.Frame.__init__(self)
self.font = { 'fontname' : 'Liberation Sans',
'color' : 'b',
@@ -113,7 +118,7 @@ class oscilloscope_frame(gtk.Frame):
facecolor = facecolor)
ax = figure.add_subplot(111)
self.ax = ax
- ax.set_axis_bgcolor(bg_color)
+ ax.set_facecolor(bg_color)
self.on_screen_samples = ax.plot(self.ind, self.samples, graph_type,
color = plot_color,
@@ -132,7 +137,7 @@ class oscilloscope_frame(gtk.Frame):
self.canvas.set_size_request(width, height)
self.add(self.canvas)
- self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(facecolor))
+ self.modify_bg(gtk.StateFlags.NORMAL, gdk.color_parse(facecolor))
self.nr_samples = 0
def add_sample(self, sample):
@@ -164,9 +169,9 @@ def add_table_row(table, row, label_text, label_value = "0"):
class system_info_frame(gtk.Frame):
def __init__(self, title = "System", facecolor = "white"):
- gtk.Frame.__init__(self, title)
+ gtk.Frame.__init__(self)
- self.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(facecolor))
+ self.modify_bg(gtk.StateFlags.NORMAL, gdk.color_parse(facecolor))
table = gtk.Table(3, 2, False)
table.set_border_width(5)
@@ -209,8 +214,8 @@ class oscilloscope(gtk.Window):
vbox.set_border_width(8)
self.add(vbox)
- stats_frame = gtk.Frame("Statistics")
- stats_frame.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(facecolor))
+ stats_frame = gtk.Frame.new("Statistics")
+ stats_frame.modify_bg(gtk.StateFlags.NORMAL, gdk.color_parse(facecolor))
table = gtk.Table(3, 2, False)
table.set_border_width(5)
@@ -222,8 +227,8 @@ class oscilloscope(gtk.Window):
self.avg_label = add_table_row(table, 1, "Avg")
self.max_label = add_table_row(table, 2, "Max")
- help_frame = gtk.Frame("Help")
- help_frame.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(facecolor))
+ help_frame = gtk.Frame.new("Help")
+ help_frame.modify_bg(gtk.StateFlags.NORMAL, gdk.color_parse(facecolor))
table = gtk.Table(4, 2, False)
table.set_border_width(5)
@@ -251,15 +256,15 @@ class oscilloscope(gtk.Window):
info_frame = system_info_frame()
vbox_help_info = gtk.VBox()
- vbox_help_info.pack_start(info_frame, False, False)
- vbox_help_info.pack_end(help_frame, False, False)
+ vbox_help_info.pack_start(info_frame, False, False, 0)
+ vbox_help_info.pack_end(help_frame, False, False, 0)
hbox = gtk.HBox()
- hbox.pack_start(vbox_help_info, False, False)
- hbox.pack_start(stats_frame, False, False)
- hbox.pack_end(self.hist, True, True)
+ hbox.pack_start(vbox_help_info, False, False, 0)
+ hbox.pack_start(stats_frame, False, False, 0)
+ hbox.pack_end(self.hist, True, True, 0)
- vbox.pack_start(self.scope, True, True)
- vbox.pack_end(hbox, True, False)
+ vbox.pack_start(self.scope, True, True, 0)
+ vbox.pack_end(hbox, True, False, 0)
self.show_all()
--
2.20.1