Esempio n. 1
0
    def __init__(self, app):
        Gtk.Window.__init__(self,
                            title="QR Encode",
                            type=Gtk.WindowType.TOPLEVEL,
                            application=app)
        self.set_border_width(0)
        self.set_size_request(500, 550)
        self.set_default_icon_name("qrencode-gtk")

        self.entry = TextEntry(self)
        self.entry.set_size_request(320, 20)

        # TODO: options menu for saving pixbuf to file using
        # TODO: pixbuf.savev(filename, type_, option_keys, option_values)
        #options = Gtk.Button.new_from_icon_name("emblem-system-symbolic",1)
        #options = Gtk.MenuButton()
        #options.set_image("emblem-system-symbolic")

        header = Gtk.HeaderBar(show_close_button=True, custom_title=self.entry)
        #header.pack_start(options)
        self.set_titlebar(header)

        self.image_widget = Gtk.Image()
        self.image_widget.modify_bg(Gtk.StateType.NORMAL,
                                    Gdk.Color.from_floats(1, 1, 1))
        self.box = Gtk.ScrolledWindow()
        self.box.set_policy(1, 1)
        self.box.add_with_viewport(self.image_widget)
        self.add(self.box)

        self.set_events(Gdk.EventMask.STRUCTURE_MASK)
        self.connect("configure-event", self.handle_resize_request)

        self.entry.grab_focus()

        self.resize_ready = True
Esempio n. 2
0
	def __init__(self, app):
		Gtk.Window.__init__(self,
			title="QR Encode",
			type=Gtk.WindowType.TOPLEVEL,
			application=app)
		self.set_border_width(0)
		self.set_size_request(500, 550)
		self.set_default_icon_name("qrencode-gtk")

		self.entry = TextEntry(self)
		self.entry.set_size_request(320,20)
		
		# TODO: options menu for saving pixbuf to file using
		# TODO: pixbuf.savev(filename, type_, option_keys, option_values)
		#options = Gtk.Button.new_from_icon_name("emblem-system-symbolic",1)
		#options = Gtk.MenuButton()
		#options.set_image("emblem-system-symbolic")
		
		header = Gtk.HeaderBar(show_close_button=True, custom_title=self.entry)
		#header.pack_start(options)
		self.set_titlebar(header)
		
		self.image_widget = Gtk.Image()
		self.image_widget.modify_bg(Gtk.StateType.NORMAL,
			Gdk.Color.from_floats(1, 1, 1))
		self.box = Gtk.ScrolledWindow()
		self.box.set_policy(1, 1)
		self.box.add_with_viewport(self.image_widget)
		self.add(self.box)
		
		self.set_events(Gdk.EventMask.STRUCTURE_MASK)
		self.connect("configure-event", self.handle_resize_request);
		
		self.entry.grab_focus()
		
		self.resize_ready = True
Esempio n. 3
0
class Window(Gtk.Window):
	def __init__(self, app):
		Gtk.Window.__init__(self,
			title="QR Encode",
			type=Gtk.WindowType.TOPLEVEL,
			application=app)
		self.set_border_width(0)
		self.set_size_request(500, 550)
		self.set_default_icon_name("qrencode-gtk")

		self.entry = TextEntry(self)
		self.entry.set_size_request(320,20)
		
		# TODO: options menu for saving pixbuf to file using
		# TODO: pixbuf.savev(filename, type_, option_keys, option_values)
		#options = Gtk.Button.new_from_icon_name("emblem-system-symbolic",1)
		#options = Gtk.MenuButton()
		#options.set_image("emblem-system-symbolic")
		
		header = Gtk.HeaderBar(show_close_button=True, custom_title=self.entry)
		#header.pack_start(options)
		self.set_titlebar(header)
		
		self.image_widget = Gtk.Image()
		self.image_widget.modify_bg(Gtk.StateType.NORMAL,
			Gdk.Color.from_floats(1, 1, 1))
		self.box = Gtk.ScrolledWindow()
		self.box.set_policy(1, 1)
		self.box.add_with_viewport(self.image_widget)
		self.add(self.box)
		
		self.set_events(Gdk.EventMask.STRUCTURE_MASK)
		self.connect("configure-event", self.handle_resize_request);
		
		self.entry.grab_focus()
		
		self.resize_ready = True
	
	def request_image(self,string):
		if self.encoder.lock.acquire(False):
			self.encoder.string = string
			self.encoder.doencode.set()
			self.encoder.lock.release()
		
	def update_image(self,pixbuf):
	
		#Gdk.threads_enter()
		self.image_widget.clear()
		self.image_widget.set_from_pixbuf(pixbuf)
		#Gdk.threads_leave()
		return False
		
	def handle_resize_request(self, action, parameter):
		
		# change entry bar size
		size = self.get_allocated_width()
		if size > 1000:
			self.entry.set_size_request(750,20)
		elif size < 900:
			self.entry.set_size_request(320,20)
		
		# change image size
		if self.resize_ready == True:
			self.resize_ready = False
			GLib.timeout_add(1000, self.do_resize_image, parameter)
	
	def do_resize_image(self,parameter):		
		#Gdk.threads_enter()
		pixbuf = self.image_widget.get_pixbuf()
		#Gdk.threads_leave()
		if pixbuf != None:
			size = self.get_width_height()
			pixbuf = pixbuf.scale_simple(size,size,
				GdkPixbuf.InterpType.NEAREST)
		if pixbuf != None:
			#Gdk.threads_enter()
			self.image_widget.set_from_pixbuf(pixbuf)
			#Gdk.threads_leave()
		self.resize_ready = True
		return False
		
	def get_width_height(self):
		Gdk.threads_enter()
		size = max(
			min(
				self.box.get_allocated_width(),
				self.box.get_allocated_height()	) - 100,
			100 )
		Gdk.threads_leave()
		return size
Esempio n. 4
0
class Window(Gtk.Window):
    def __init__(self, app):
        Gtk.Window.__init__(self,
                            title="QR Encode",
                            type=Gtk.WindowType.TOPLEVEL,
                            application=app)
        self.set_border_width(0)
        self.set_size_request(500, 550)
        self.set_default_icon_name("qrencode-gtk")

        self.entry = TextEntry(self)
        self.entry.set_size_request(320, 20)

        # TODO: options menu for saving pixbuf to file using
        # TODO: pixbuf.savev(filename, type_, option_keys, option_values)
        #options = Gtk.Button.new_from_icon_name("emblem-system-symbolic",1)
        #options = Gtk.MenuButton()
        #options.set_image("emblem-system-symbolic")

        header = Gtk.HeaderBar(show_close_button=True, custom_title=self.entry)
        #header.pack_start(options)
        self.set_titlebar(header)

        self.image_widget = Gtk.Image()
        self.image_widget.modify_bg(Gtk.StateType.NORMAL,
                                    Gdk.Color.from_floats(1, 1, 1))
        self.box = Gtk.ScrolledWindow()
        self.box.set_policy(1, 1)
        self.box.add_with_viewport(self.image_widget)
        self.add(self.box)

        self.set_events(Gdk.EventMask.STRUCTURE_MASK)
        self.connect("configure-event", self.handle_resize_request)

        self.entry.grab_focus()

        self.resize_ready = True

    def request_image(self, string):
        if self.encoder.lock.acquire(False):
            self.encoder.string = string
            self.encoder.doencode.set()
            self.encoder.lock.release()

    def update_image(self, pixbuf):

        #Gdk.threads_enter()
        self.image_widget.clear()
        self.image_widget.set_from_pixbuf(pixbuf)
        #Gdk.threads_leave()
        return False

    def handle_resize_request(self, action, parameter):

        # change entry bar size
        size = self.get_allocated_width()
        if size > 1000:
            self.entry.set_size_request(750, 20)
        elif size < 900:
            self.entry.set_size_request(320, 20)

        # change image size
        if self.resize_ready == True:
            self.resize_ready = False
            GLib.timeout_add(1000, self.do_resize_image, parameter)

    def do_resize_image(self, parameter):
        #Gdk.threads_enter()
        pixbuf = self.image_widget.get_pixbuf()
        #Gdk.threads_leave()
        if pixbuf != None:
            size = self.get_width_height()
            pixbuf = pixbuf.scale_simple(size, size,
                                         GdkPixbuf.InterpType.NEAREST)
        if pixbuf != None:
            #Gdk.threads_enter()
            self.image_widget.set_from_pixbuf(pixbuf)
            #Gdk.threads_leave()
        self.resize_ready = True
        return False

    def get_width_height(self):
        Gdk.threads_enter()
        size = max(
            min(self.box.get_allocated_width(),
                self.box.get_allocated_height()) - 100, 100)
        Gdk.threads_leave()
        return size