summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2013-12-01 15:55:43 +0100
committerDavid Lamparter <equinox@diac24.net>2013-12-01 15:55:43 +0100
commit0516ad0b6adc3f53e62746177788ac79f1b1ada2 (patch)
tree5b7c0bb6921f93660901dc7f8eb0e417126811a5
parent89a838c7180835fd32072d98f8554a09786a1e8d (diff)
support copies, add feed+cut switch
-rw-r--r--ptgui.glade78
-rw-r--r--ptgui.py23
-rw-r--r--pttarget.py7
3 files changed, 93 insertions, 15 deletions
diff --git a/ptgui.glade b/ptgui.glade
index 8170616..8715537 100644
--- a/ptgui.glade
+++ b/ptgui.glade
@@ -10,6 +10,11 @@
<column type="GObject"/>
</columns>
</object>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-cut</property>
+ </object>
<object class="GtkWindow" id="mainwnd">
<property name="can_focus">False</property>
<child>
@@ -39,6 +44,7 @@
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">3</property>
<child>
<object class="GtkLabel" id="statuslabel">
<property name="visible">True</property>
@@ -54,18 +60,86 @@
</packing>
</child>
<child>
+ <object class="GtkSeparator" id="separator2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="numcopies">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="width_chars">3</property>
+ <property name="text" translatable="yes">1</property>
+ <property name="xalign">1</property>
+ <property name="input_purpose">digits</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-copy</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="cuttoggle">
+ <property name="label" translatable="yes">feed &amp; cut last</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="image">image1</property>
+ <property name="active">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkButton" id="printbtn">
<property name="label">gtk-print</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
+ <property name="focus_on_click">False</property>
<signal name="clicked" handler="on_print" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">6</property>
</packing>
</child>
</object>
@@ -91,7 +165,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkDrawingArea" id="resultimg">
+ <object class="GtkDrawingArea" id="img">
<property name="height_request">128</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/ptgui.py b/ptgui.py
index 4478493..3c5aaa9 100644
--- a/ptgui.py
+++ b/ptgui.py
@@ -20,13 +20,11 @@ class MainWindow(object):
self.wnd = builder.get_object('mainwnd')
self.wnd.connect("delete-event", Gtk.main_quit)
- self.statuslabel = builder.get_object('statuslabel')
- tabviewport = builder.get_object('tabviewport')
+ for name in ['statuslabel', 'tabviewport', 'img', 'printbtn',
+ 'color_fg', 'color_bg', 'numcopies', 'cuttoggle', 'devbox']:
+ self.__dict__[name] = builder.get_object(name)
self.ctlgrid = Gtk.Table()
- tabviewport.add(self.ctlgrid)
- self.printbtn = builder.get_object('printbtn')
- self.color_fg = builder.get_object('color_fg')
- self.color_bg = builder.get_object('color_bg')
+ self.tabviewport.add(self.ctlgrid)
self.layout = ptlayout.PTLHSeq()
self.layout.spacing = 0
@@ -58,13 +56,11 @@ class MainWindow(object):
self.layout.add(PTLText())
self.layout_put_controls()
- self.img = builder.get_object('resultimg')
self.sizing_apply()
self.img.connect('draw', self.draw)
# help(self.img)
self.devlist = Gtk.ListStore(str, object)
- self.devbox = builder.get_object('devbox')
self.devbox.set_model(self.devlist)
self.scan()
self.dev_select()
@@ -259,11 +255,20 @@ class MainWindow(object):
if self.label_surface is None:
return
+
+ copies = self.numcopies.get_buffer().get_text()
+ if copies.strip() == '':
+ copies = 1
+ else:
+ copies = int(copies)
+ feedlast = self.cuttoggle.get_active()
+
data = pttarget.PTLabelData()
data.addcairo(self.label_surface, offset = self.tape.offset)
itr = self.devbox.get_active_iter()
dev = self.devlist[itr][1]
- dev.send(data.get())
+ for i in range(0, copies):
+ dev.send(data.get(feedlast and i == copies - 1))
mw = MainWindow()
Gtk.main()
diff --git a/pttarget.py b/pttarget.py
index e0bf7ac..37f6509 100644
--- a/pttarget.py
+++ b/pttarget.py
@@ -183,8 +183,6 @@ class PTLabelData(object):
# margins: '\x1bid\x00\x00' +
self.init = '\x1biR\x01' + '\x1biM\x40' + '\x1bid\x00\x00' + '\x1biK\x00'
self.raw = ''
- # self.fini = '\x1a' # Z / feed ?
- self.fini = '\x0c'
def addpixels(self, raw):
row = 'G' + struct.pack('<H', len(raw)) + raw
@@ -215,8 +213,9 @@ class PTLabelData(object):
pixels[py / 8] |= 1 << (7 - (py & 7))
self.addpixels(pixels)
- def get(self):
- return self.init + self.raw + self.fini
+ def get(self, feedncut = True):
+ fini = '\x1a' if feedncut else '\x0c'
+ return self.init + self.raw + fini
class PTTape(object):
tapes = []