diff options
| author | David Lamparter <equinox@diac24.net> | 2013-12-01 15:55:43 +0100 | 
|---|---|---|
| committer | David Lamparter <equinox@diac24.net> | 2013-12-01 15:55:43 +0100 | 
| commit | 0516ad0b6adc3f53e62746177788ac79f1b1ada2 (patch) | |
| tree | 5b7c0bb6921f93660901dc7f8eb0e417126811a5 | |
| parent | 89a838c7180835fd32072d98f8554a09786a1e8d (diff) | |
support copies, add feed+cut switch
| -rw-r--r-- | ptgui.glade | 78 | ||||
| -rw-r--r-- | ptgui.py | 23 | ||||
| -rw-r--r-- | pttarget.py | 7 | 
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 & 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> @@ -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 = [] | 
