Exemple #1
0
 def override (key, modifier, movement, step, select):
     gtk.binding_entry_remove (gtk.TextView, key, modifier)
     gtk.binding_entry_add_signal (gtk.TextView, key, modifier,
                                   "move_cursor",
                                   gobject.TYPE_ENUM, movement,
                                   gobject.TYPE_INT,  step,
                                   gobject.TYPE_BOOLEAN, select)
Exemple #2
0
 def __init__(self):
     gobject.GObject.__init__(self)
     gtk.TextView.__init__(self)
     gtk.binding_entry_add_signal(self, gtk.keysyms.KP_Enter, 0,
                                  'message-send')
     gtk.binding_entry_add_signal(self, gtk.keysyms.Return, 0,
                                  'message-send')
Exemple #3
0
    def build_ui(self):
        self.window = gtk.ScrolledWindow()
        self.window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)

        self.icons = {}
        self.icons['device'] = _geticon('upnp-device.png')
        self.icons['mediaserver'] = _geticon('network-server.png')
        self.icons['mediarenderer'] = _geticon('media-renderer.png')
        self.icons['binarylight'] = _geticon('network-light.png')
        self.icons['dimmablelight'] = self.icons['binarylight']
        self.icons['digitalsecuritycamera'] = _geticon('camera-web.png')
        self.icons['printer'] = _geticon('printer.png')

        self.folder_icon = _geticon('folder.png')
        self.service_icon = _geticon('upnp-service.png')
        self.action_icon = _geticon('upnp-action.png')
        self.action_arg_in_icon = _geticon('upnp-action-arg-in.png')
        self.action_arg_out_icon = _geticon('upnp-action-arg-out.png')
        self.state_variable_icon = _geticon('upnp-state-variable.png')

        self.store = gtk.TreeStore(int,  # 0: type
                                   str,  # 1: name
                                   str,  # 2: device udn
                                   gtk.gdk.Pixbuf,
                                   object
                                )

        self.treeview = gtk.TreeView(self.store)
        self.column = gtk.TreeViewColumn('Devices')
        self.treeview.append_column(self.column)

        # create a CellRenderers to render the data
        icon_cell = gtk.CellRendererPixbuf()
        text_cell = gtk.CellRendererText()

        self.column.pack_start(icon_cell, False)
        self.column.pack_start(text_cell, True)

        self.column.set_attributes(text_cell, text=1)
        self.column.add_attribute(icon_cell, "pixbuf", 3)
        #self.column.set_cell_data_func(self.cellpb, get_icon)

        self.treeview.connect("button_press_event", self.button_action)
        self.treeview.connect("row-activated", self.activated)
        self.treeview.connect("move_cursor", self.moved_cursor)

        gtk.binding_entry_add_signal(self.treeview, gtk.keysyms.Left, 0,
                                     "expand-collapse-cursor-row",
                                     bool, False, bool, False, bool, False)
        gtk.binding_entry_add_signal(self.treeview, gtk.keysyms.Right, 0,
                                     "expand-collapse-cursor-row",
                                     bool, False, bool, True, bool, False)

        selection = self.treeview.get_selection()
        selection.set_mode(gtk.SELECTION_SINGLE)

        self.window.add(self.treeview)

        self.windows = {}
Exemple #4
0
    def __init__(self):
        gobject.GObject.__init__(self)
        gtk.Notebook.__init__(self)

        gtk.binding_entry_add_signal(self, gtk.keysyms.Tab,
                                     gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK,
                                     'prev-page')
        gtk.binding_entry_add_signal(self, gtk.keysyms.Tab,
                                     gtk.gdk.CONTROL_MASK, 'next-page')
 def connect_with_chat_control(self, control):
     self.chat_control = control
     base = Base(self, self.chat_control)
     self.controls.append(base)
     if self.first_run:
         # ALT + U
         gtk.binding_entry_add_signal(control.msg_textview,
             gtk.keysyms.u, gtk.gdk.MOD1_MASK, 'mykeypress',
             int, gtk.keysyms.u, gtk.gdk.ModifierType, gtk.gdk.MOD1_MASK)
         self.first_run = False
     self.update_button_state(self.chat_control)
Exemple #6
0
 def connect_with_chat_control(self, control):
     if not isinstance(control, chat_control.ChatControl):
         return
     self.chat_control = control
     base = Base(self, self.chat_control)
     self.controls.append(base)
     if self.first_run:
         # ALT + L
         gtk.binding_entry_add_signal(control.msg_textview,
             gtk.keysyms.l, gtk.gdk.MOD1_MASK, 'mykeypress',
             int, gtk.keysyms.l, gtk.gdk.ModifierType, gtk.gdk.MOD1_MASK)
         self.first_run = False
Exemple #7
0
 def connect_with_chat_control(self, chat_control):
     #if not dbus_support.supported:
         #return
     if self.first_run:
         # ALT + N
         gtk.binding_entry_add_signal(chat_control.msg_textview,
             gtk.keysyms.n, gtk.gdk.MOD1_MASK, 'mykeypress',
             int, gtk.keysyms.n, gtk.gdk.ModifierType, gtk.gdk.MOD1_MASK)
         self.first_run = False
     self.chat_control = chat_control
     control = Base(self, self.chat_control)
     self.controls.append(control)
Exemple #8
0
 def connect_with_chat_control(self, control):
     if not isinstance(control, chat_control.ChatControl):
         return
     self.chat_control = control
     base = Base(self, self.chat_control)
     self.controls.append(base)
     if self.first_run:
         # ALT + L
         gtk.binding_entry_add_signal(control.msg_textview, gtk.keysyms.l,
                                      gtk.gdk.MOD1_MASK, 'mykeypress', int,
                                      gtk.keysyms.l, gtk.gdk.ModifierType,
                                      gtk.gdk.MOD1_MASK)
         self.first_run = False
 def connect_with_chat_control(self, chat_control):
     #if not dbus_support.supported:
     #return
     if self.first_run:
         # ALT + N
         gtk.binding_entry_add_signal(chat_control.msg_textview,
                                      gtk.keysyms.n, gtk.gdk.MOD1_MASK,
                                      'mykeypress', int, gtk.keysyms.n,
                                      gtk.gdk.ModifierType,
                                      gtk.gdk.MOD1_MASK)
         self.first_run = False
     self.chat_control = chat_control
     control = Base(self, self.chat_control)
     self.controls.append(control)
Exemple #10
0
def test_bool_arg_binding():
    """
    Ensure that a keybinding signal with a boolean argument is
    emitted.
    """

    class Test(gtk.Button):
        __gsignals__ = {"sig": (gobject.SIGNAL_ACTION | gobject.SIGNAL_RUN_LAST, None, (bool,))}

        def __init__(self):
            super(gtk.Button, self).__init__()

        def do_sig(self, val):
            self.val = val

    test = Test()
    gtk.binding_entry_add_signal(Test, gtk.keysyms.r, 0, "sig", bool, True)
    gtk.bindings_activate(test, gtk.keysyms.r, 0)
    assert test.val
    gtk.binding_entry_add_signal(Test, gtk.keysyms.k, 0, "sig", bool, False)
    gtk.bindings_activate(test, gtk.keysyms.k, 0)
    assert not test.val
Exemple #11
0
 def __init__(self):
     gobject.GObject.__init__(self)
     gtk.binding_entry_add_signal(self, gtk.keysyms.KP_Enter, 0,
                                  'message-send')
     gtk.binding_entry_add_signal(self, gtk.keysyms.Return, 0,
                                  'message-send')
     gtk.binding_entry_add_signal(self, gtk.keysyms.Escape, 0,
                                  'escape-pressed')
Exemple #12
0
            line_count = 1
            self.modify_text(gtk.STATE_NORMAL,
                             self.get_style().text[gtk.STATE_INSENSITIVE])
        
        # Get Font Height
        font = self.create_pango_context().get_font_description()
        layout = self.create_pango_layout(UNSET_TEXT)
        layout.set_markup('WTF?!')
        layout.set_font_description(font)
        text_size = layout.get_pixel_size()[1]
        
        # Resize
        lines = line_count if self.has_focus else 1
        input_size = int((text_size + (6 if lines == 1 else 1.5)) * lines)
        self.gui.text_scroll.set_size_request(0, input_size)
        
        if lines == 1:
            self.gui.progress.set_size_request(0, input_size)
        
        if not self.initiated:
            self.initiated = True
            self.loose_focus()
        
        if not self.main.any_status(ST_LOGIN_SUCCESSFUL, ST_CONNECT):
            self.gui.hide_all()


gtk.binding_entry_add_signal(TextInput, gtk.keysyms.Return, 0, 'submit')
gtk.binding_entry_add_signal(TextInput, gtk.keysyms.KP_Enter, 0, 'submit')

Exemple #13
0
      self.pango_overlay = self.create_pango_layout("")
    self.pango_overlay.set_markup(self.overlay_text % (self.overlay_color, text))

  def on_size_allocate(self, *args):
    if self.drawable: self.drawable.show()

  def expose_view(self, window, event):
    if not self.drawable:
      self.drawable = self.get_window(gtk.TEXT_WINDOW_TEXT)
      self.pango_overlay = self.create_pango_layout("")
      self.set_overlay_text(MAX_MESSAGE_LENGTH)

    gc = self.drawable.new_gc()
    ww, wh = self.drawable.get_size()
    tw, th = self.pango_overlay.get_pixel_size()
    self.drawable.draw_layout(gc, ww - tw - 2, wh - th, self.pango_overlay)

  def on_text_changed(self, w):
    chars = self.get_char_count()
    color = self.error_color if chars > MAX_MESSAGE_LENGTH else self.base_color
    self.modify_base(gtk.STATE_NORMAL, color)

  def on_connection_online(self, *args):
    self.set_sensitive(True)

  def on_connection_offline(self, *args):
    self.set_sensitive(False)

gtk.binding_entry_add_signal(InputTextView, gtk.keysyms.Return, 0, "submit")
gtk.binding_entry_add_signal(InputTextView, gtk.keysyms.KP_Enter, 0, "submit")
Exemple #14
0
        
    def show_options(self, widget, event=None):
        self.url.set_text('')
        self.url.grab_focus()

class MessageTextView(gtk.TextView):
    '''Class for the message textview (where user writes new messages)
    for chat/groupchat windows'''
    __gsignals__ = dict(mykeypress=(gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, None, (int, gtk.gdk.ModifierType)))
        
    def __init__(self):
        gtk.TextView.__init__(self)
        
        self.set_border_width(2)
        self.set_left_margin(2)
        self.set_right_margin(2)
        self.set_wrap_mode(gtk.WRAP_WORD)

    def destroy(self):
        import gc
        gobject.idle_add(lambda:gc.collect())

    def clear(self, widget=None):
        self.get_buffer().set_text('')
        
if gobject.pygtk_version < (2, 8, 0):
    gobject.type_register(MessageTextView)

gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Return, 0, 'mykeypress', int, gtk.keysyms.Return, gtk.gdk.ModifierType, 0)
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Escape, 0, 'mykeypress', int, gtk.keysyms.Escape, gtk.gdk.ModifierType, 0)
Exemple #15
0
        if self.mode < 2: return
        
        w, h = self.get_size()
        
        if self.workspace == 'single':
            if (w, h) == self.single_win_size: return
            self.single_win_size = (w, h)
        else:
            if (w, h) == self.wide_win_size: return
            self.wide_win_size = (w, h)
        
        self.win_pos = self.get_position()
        
        self.contenido.update_wrap(w, self.workspace)
        
        return
    
    def move_event(self, widget, event):
        self.win_pos = self.get_position()
        
    def __on_key_press(self, widget, keycomb):
        if self.mode < 2: return
        if keycomb == 'ctrl+n':
            self.show_update_box()
        
#if gobject.pygtk_version < (2, 8, 0):
gobject.type_register(Main)

gtk.binding_entry_add_signal(Main, gtk.keysyms.n, gtk.gdk.CONTROL_MASK, 'mykeypress', str, 'ctrl+n')

        primary_markup = "<b>%s</b>" % primary_text
        primary_label = gtk.Label(primary_markup)
        primary_label.set_use_markup(True)
        primary_label.set_line_wrap(True)
        primary_label.set_alignment(0, 0.5)
        primary_label.set_flags(gtk.CAN_FOCUS)
        primary_label.set_selectable(True)
        primary_label.show()

        vbox.pack_start(primary_label, True, True)

        if secondary_text:
            secondary_markup = "<small>%s</small>" % secondary_text
            secondary_label = gtk.Label(secondary_markup)
            secondary_label.set_flags(gtk.CAN_FOCUS)
            secondary_label.set_use_markup(True)
            secondary_label.set_line_wrap(True)
            secondary_label.set_selectable(True)
            secondary_label.set_alignment(0, 0.5)
            secondary_label.show()

            vbox.pack_start(secondary_label, True, True)

        if additionnal_widget:
            vbox.pack_start(additionnal_widget, True, True)

        self.set_contents(hbox_content)


gtk.binding_entry_add_signal(MessageArea, gtk.gdk.keyval_from_name("Escape"), 0, "close")
Exemple #17
0
    if not pixbuf:
        return
    dest = pixbuf.rotate_simple(rot)
    view.set_pixbuf(dest)


# Create a rotation signal with an associated keybinding.
gobject.signal_new(
    "rotate",
    gtkimageview.AnimView,
    gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION,
    gobject.TYPE_NONE,
    (gobject.TYPE_INT,),
)
gtk.binding_entry_add_signal(
    gtkimageview.AnimView, gtk.keysyms.e, 0, "rotate", int, gtk.gdk.PIXBUF_ROTATE_COUNTERCLOCKWISE
)
gtk.binding_entry_add_signal(gtkimageview.AnimView, gtk.keysyms.r, 0, "rotate", int, gtk.gdk.PIXBUF_ROTATE_CLOCKWISE)

view = gtkimageview.AnimView()
view.connect("rotate", rotate_cb)
view.set_anim(anim)

scroll_win = gtkimageview.ImageScrollWin(view)

win = gtk.Window()
win.set_default_size(600, 400)
win.add(scroll_win)
win.show_all()

gtk.main()
Exemple #18
0
            now = self.get_cursor()
            if not now == (None,None):
                self.set_cursor(len(self.liststore)-1)

        elif what == "a":
            self.client.post_window.show_up()

        elif what == "h":
            self.client.lines_note_book.prev_page()

        elif what == "l":
            self.client.lines_note_book.next_page()


# when j is pressed,call keypressed event.
gtk.binding_entry_add_signal(Eventline,gtk.keysyms.J,
        0,"keypressed",str,"j")

# when k is pressed,call keypressed event.
gtk.binding_entry_add_signal(Eventline,gtk.keysyms.K,
        0,"keypressed",str,"k")

# when g is pressed,call keypressed event.
gtk.binding_entry_add_signal(Eventline,gtk.keysyms.G,
        0,"keypressed",str,"g")

# when G is pressed,call keypressed event.
# Shift_Mask.not g but G.
gtk.binding_entry_add_signal(Eventline,gtk.keysyms.G,
        gtk.gdk.SHIFT_MASK,"keypressed",str,"G")

# when r is pressed,call keypressed event.
    def __init__(self):
        gobject.GObject.__init__(self)
        gtk.Notebook.__init__(self)

        gtk.binding_entry_add_signal(self, gtk.keysyms.Tab, gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK, "prev-page")
        gtk.binding_entry_add_signal(self, gtk.keysyms.Tab, gtk.gdk.CONTROL_MASK, "next-page")
Exemple #20
0
        w, h = self.get_size()

        if self.workspace == 'single':
            if (w, h) == self.single_win_size: return
            self.single_win_size = (w, h)
        else:
            if (w, h) == self.wide_win_size: return
            self.wide_win_size = (w, h)

        self.win_pos = self.get_position()

        self.contenido.update_wrap(w, self.workspace)

        return

    def move_event(self, widget, event):
        self.win_pos = self.get_position()

    def __on_key_press(self, widget, keycomb):
        if self.mode < 2: return
        if keycomb == 'ctrl+n':
            self.show_update_box()


#if gobject.pygtk_version < (2, 8, 0):
gobject.type_register(Main)

gtk.binding_entry_add_signal(Main, gtk.keysyms.n, gtk.gdk.CONTROL_MASK,
                             'mykeypress', str, 'ctrl+n')
Exemple #21
0
            icon.set_tooltip_text("wallet is unencrypted")


def add_help_button(hbox, message):
    button = gtk.Button("?")
    button.connect("clicked", lambda x: show_message(message))
    button.show()
    hbox.pack_start(button, False, False)


class MyWindow(gtk.Window):
    __gsignals__ = dict(mykeypress=(gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, None, (str,)))


gobject.type_register(MyWindow)
gtk.binding_entry_add_signal(MyWindow, gtk.keysyms.W, gtk.gdk.CONTROL_MASK, "mykeypress", str, "ctrl+W")
gtk.binding_entry_add_signal(MyWindow, gtk.keysyms.Q, gtk.gdk.CONTROL_MASK, "mykeypress", str, "ctrl+Q")


class ElectrumWindow:
    def show_message(self, msg):
        show_message(msg, self.window)

    def __init__(self, wallet, config):
        self.config = config
        self.wallet = wallet
        self.funds_error = False  # True if not enough funds

        self.window = MyWindow(gtk.WINDOW_TOPLEVEL)
        title = "Electrum " + self.wallet.electrum_version + "  -  " + self.config.path
        if not self.wallet.seed:
Exemple #22
0
if gobject.pygtk_version < (2, 8, 0):
	gobject.type_register(MessageTextView)


# We register depending on keysym and modifier some bindings
# but we also pass those as param so we can construct fake Event
# Here we register bindings for those combinations that there is NO DEFAULT
# action to be done by gtk TextView. In such case we should not add a binding
# as the default action comes first and our bindings is useless. In that case
# we catch and do stuff before default action in normal key_press_event
# and we also return True there to stop the default action from running

# CTRL + SHIFT + TAB
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.ISO_Left_Tab,
	gtk.gdk.CONTROL_MASK, 'mykeypress', int, gtk.keysyms.ISO_Left_Tab,
	gtk.gdk.ModifierType, gtk.gdk.CONTROL_MASK)

# CTRL + TAB
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Tab, 
	gtk.gdk.CONTROL_MASK, 'mykeypress', int, gtk.keysyms.Tab,
	gtk.gdk.ModifierType, gtk.gdk.CONTROL_MASK)
	
# TAB
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Tab, 
	0, 'mykeypress', int, gtk.keysyms.Tab,	gtk.gdk.ModifierType, 0)

# CTRL + UP
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Up, 
	gtk.gdk.CONTROL_MASK, 'mykeypress', int, gtk.keysyms.Up,
	gtk.gdk.ModifierType, gtk.gdk.CONTROL_MASK)
Exemple #23
0
 def __init__(self):
     gobject.GObject.__init__(self)
     gtk.binding_entry_add_signal(self, gtk.keysyms.KP_Enter, 0, 'message-send')
     gtk.binding_entry_add_signal(self, gtk.keysyms.Return, 0, 'message-send')
     gtk.binding_entry_add_signal(self, gtk.keysyms.Escape, 0, 'escape-pressed')
Exemple #24
0
        hbox_content.pack_start(vbox, True, True)

        primary_markup = "<b>%s</b>" % primary_text
        primary_label = gtk.Label(primary_markup)
        primary_label.set_use_markup(True)
        primary_label.set_line_wrap(True)
        primary_label.set_alignment(0, 0.5)
        primary_label.set_flags(gtk.CAN_FOCUS)
        primary_label.set_selectable(True)
        primary_label.show()

        vbox.pack_start(primary_label, True, True)

        if secondary_text:
            secondary_markup = "<small>%s</small>" % secondary_text
            secondary_label = gtk.Label(secondary_markup)
            secondary_label.set_flags(gtk.CAN_FOCUS)
            secondary_label.set_use_markup(True)
            secondary_label.set_line_wrap(True)
            secondary_label.set_selectable(True)
            secondary_label.set_alignment(0, 0.5)
            secondary_label.show()

            vbox.pack_start(secondary_label, True, True)

        self.set_contents(hbox_content)


gtk.binding_entry_add_signal(MessageArea, gtk.gdk.keyval_from_name("Escape"),
                             0, "close")
Exemple #25
0
 def __init__(self):
     gobject.GObject.__init__(self)
     gtk.TextView.__init__(self)
     gtk.binding_entry_add_signal(self, gtk.keysyms.KP_Enter, 0, 'message-send')
     gtk.binding_entry_add_signal(self, gtk.keysyms.Return, 0, 'message-send')
Exemple #26
0
        buffer = self.get_buffer()
        start, end = buffer.get_bounds()
        buffer.delete(start, end)


# We register depending on keysym and modifier some bindings
# but we also pass those as param so we can construct fake Event
# Here we register bindings for those combinations that there is NO DEFAULT
# action to be done by gtk TextView. In such case we should not add a binding
# as the default action comes first and our bindings is useless. In that case
# we catch and do stuff before default action in normal key_press_event
# and we also return True there to stop the default action from running

# CTRL + SHIFT + TAB
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.ISO_Left_Tab,
                             gtk.gdk.CONTROL_MASK, 'mykeypress', int,
                             gtk.keysyms.ISO_Left_Tab, gtk.gdk.ModifierType,
                             gtk.gdk.CONTROL_MASK)

# CTRL + TAB
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Tab,
                             gtk.gdk.CONTROL_MASK, 'mykeypress', int,
                             gtk.keysyms.Tab, gtk.gdk.ModifierType,
                             gtk.gdk.CONTROL_MASK)

# TAB
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Tab, 0, 'mykeypress',
                             int, gtk.keysyms.Tab, gtk.gdk.ModifierType, 0)

# CTRL + UP
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Up,
                             gtk.gdk.CONTROL_MASK, 'mykeypress', int,
Exemple #27
0
import gtk
import threading
import gobject
from settings import *


class PostView(gtk.TextView):
    __gsignals__= {
            "keypressed":(gobject.SIGNAL_RUN_LAST|gobject.SIGNAL_ACTION,
                         None,
                         (str,),)
            }


gtk.binding_entry_add_signal(PostView,gtk.keysyms.Escape,
        0,"keypressed",str,"esc")

gtk.binding_entry_add_signal(PostView,gtk.keysyms.Return,
        gtk.gdk.CONTROL_MASK,"keypressed",str,"C-Enter")


class PostBox(gtk.HBox):
    def __init__(self,client):
        gtk.HBox.__init__(self)
        self.client = client

        post_view = PostView()
        post_view.connect("keypressed",self.keypressed)
        post_view.set_wrap_mode(gtk.WRAP_CHAR)

        self.post_buffer = post_view.get_buffer()
        self.set_accepts_tab(True)
        self.set_editable(True)
        self.set_cursor_visible(True)
        self.set_wrap_mode(gtk.WRAP_WORD_CHAR)
        self.set_left_margin(2)
        self.set_right_margin(2)
        self.set_pixels_above_lines(2)
        self.set_pixels_below_lines(2)

    def destroy(self):
        import gc
        gobject.idle_add(lambda: gc.collect())

    def clear(self, widget=None):
        '''clear text in the textview'''
        buffer = self.get_buffer()
        start, end = buffer.get_bounds()
        buffer.delete(start, end)


gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Return, 0,
                             'mykeypress', int, gtk.keysyms.Return,
                             gtk.gdk.ModifierType, 0)
gtk.binding_entry_add_signal(MessageTextView, gtk.keysyms.Escape, 0,
                             'mykeypress', int, gtk.keysyms.Escape,
                             gtk.gdk.ModifierType, 0)

if gobject.pygtk_version < (2, 8):
    gobject.type_register(MessageTextView)
    gobject.type_register(HtmlTextView)
Exemple #29
0
            icon.set_tooltip_text('wallet is encrypted')
        else:
            icon.set_tooltip_text('wallet is unencrypted')


def add_help_button(hbox, message):
    button = gtk.Button('?')
    button.connect("clicked", lambda x: show_message(message))
    button.show()
    hbox.pack_start(button,False, False)


class MyWindow(gtk.Window): __gsignals__ = dict( mykeypress = (gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, None, (str,)) )

gobject.type_register(MyWindow)
gtk.binding_entry_add_signal(MyWindow, gtk.keysyms.W, gtk.gdk.CONTROL_MASK, 'mykeypress', str, 'ctrl+W')
gtk.binding_entry_add_signal(MyWindow, gtk.keysyms.Q, gtk.gdk.CONTROL_MASK, 'mykeypress', str, 'ctrl+Q')


class ElectrumWindow:

    def show_message(self, msg):
        show_message(msg, self.window)

    def __init__(self, wallet, config):
        self.config = config
        self.wallet = wallet
        self.funds_error = False # True if not enough funds
        self.num_zeros     = int(self.config.get('num_zeros',0))

        self.window = MyWindow(gtk.WINDOW_TOPLEVEL)
Exemple #30
0
class NullShaper(cairotool.ImageCairoShaper):
    def get_damage_area(self):
        return gdk.Rectangle(0, 0, 0, 0)
    def motion(self, x, y):
        pass
    def draw(self, cr):
        pass
    def reset(self):
        pass
    def start(self, x, y):
        pass

gobject.signal_new('toggle_overwrite', gtkimageview.ImageView,
                   gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION,
                   gobject.TYPE_NONE, ())
gtk.binding_entry_add_signal(gtkimageview.ImageView,
                             gtk.keysyms.t, 0, 'toggle_overwrite')

pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, 4000, 2000)
view = gtkimageview.ImageView()
view.set_interpolation(gdk.INTERP_NEAREST)
view.set_pixbuf(pixbuf)
tool = cairotool.ImageToolCairo(view, NullShaper())
view.set_tool(tool)

def toggle_cb(*args):
    tool.set_overwritable_pixbuf(not tool.get_overwritable_pixbuf())
view.connect('toggle_overwrite', toggle_cb)    

def do_rectangle_cb(*args):
    surface = tool.get_image_surface()
    width = surface.get_width()
Exemple #31
0

def add_help_button(hbox, message):
    button = gtk.Button('?')
    button.connect("clicked", lambda x: show_message(message))
    button.show()
    hbox.pack_start(button, False, False)


class MyWindow(gtk.Window):
    __gsignals__ = dict(mykeypress=(gobject.SIGNAL_RUN_LAST
                                    | gobject.SIGNAL_ACTION, None, (str, )))


gobject.type_register(MyWindow)
gtk.binding_entry_add_signal(MyWindow, gtk.keysyms.W, gtk.gdk.CONTROL_MASK,
                             'mykeypress', str, 'ctrl+W')
gtk.binding_entry_add_signal(MyWindow, gtk.keysyms.Q, gtk.gdk.CONTROL_MASK,
                             'mykeypress', str, 'ctrl+Q')


class ElectrumWindow:
    def show_message(self, msg):
        show_message(msg, self.window)

    def __init__(self, wallet, config):
        self.config = config
        self.wallet = wallet
        self.funds_error = False  # True if not enough funds

        self.window = MyWindow(gtk.WINDOW_TOPLEVEL)
        title = 'Electrum ' + self.wallet.electrum_version + '  -  ' + self.config.path
Exemple #32
-1
def test_keybinding_signal_on_gobject():
    """
    Attempt to bind a keybinding to a signal in a non-gtk class.

    Test should fail with a warning message because only gtk classes
    can have keybindings.
    """

    class Test47(gobject.GObject):
        pass

    gobject.type_register(Test47)

    # Add a signal to the class
    gobject.signal_new(
        "asignal", Test47, gobject.SIGNAL_RUN_LAST | gobject.SIGNAL_ACTION, gobject.TYPE_NONE, (gobject.TYPE_INT,)
    )
    gtk.binding_entry_add_signal(Test47, gtk.keysyms.x, 0, "asignal", int, 5)