(vb_clicked): Add method to restore pressed view if same button is
repeteadely clicked. svn: r7164
This commit is contained in:
parent
5fde6c6e50
commit
db8d1dabcb
@ -7,6 +7,8 @@
|
|||||||
* src/ViewManager.py (_connect_signals): Connect to the proper
|
* src/ViewManager.py (_connect_signals): Connect to the proper
|
||||||
event to cleanly quit on window manager's close action.
|
event to cleanly quit on window manager's close action.
|
||||||
(quit): Allow variable number of args (to work with signals).
|
(quit): Allow variable number of args (to work with signals).
|
||||||
|
(vb_clicked): Add method to restore pressed view if same button is
|
||||||
|
repeteadely clicked.
|
||||||
* src/DataViews/_MediaView.py (drag_data_received): Stop emission.
|
* src/DataViews/_MediaView.py (drag_data_received): Stop emission.
|
||||||
|
|
||||||
2006-08-12 Don Allingham <don@gramps-project.org>
|
2006-08-12 Don Allingham <don@gramps-project.org>
|
||||||
|
@ -215,6 +215,7 @@ class ViewManager:
|
|||||||
self.ebox = gtk.EventBox()
|
self.ebox = gtk.EventBox()
|
||||||
self.bbox = gtk.VBox()
|
self.bbox = gtk.VBox()
|
||||||
self.buttons = []
|
self.buttons = []
|
||||||
|
self.button_handlers = []
|
||||||
self.ebox.add(self.bbox)
|
self.ebox.add(self.bbox)
|
||||||
hbox.pack_start(self.ebox, False)
|
hbox.pack_start(self.ebox, False)
|
||||||
hbox.show_all()
|
hbox.show_all()
|
||||||
@ -652,13 +653,12 @@ class ViewManager:
|
|||||||
button.add(hbox)
|
button.add(hbox)
|
||||||
button.set_relief(gtk.RELIEF_NONE)
|
button.set_relief(gtk.RELIEF_NONE)
|
||||||
button.set_alignment(0, 0.5)
|
button.set_alignment(0, 0.5)
|
||||||
button.connect('clicked',
|
handler_id = button.connect('clicked',self.vb_clicked,index)
|
||||||
lambda x, y : self.notebook.set_current_page(y),
|
|
||||||
index)
|
|
||||||
button.show()
|
button.show()
|
||||||
index += 1
|
index += 1
|
||||||
self.bbox.pack_start(button, False)
|
self.bbox.pack_start(button, False)
|
||||||
self.buttons.append(button)
|
self.buttons.append(button)
|
||||||
|
self.button_handlers.append(handler_id)
|
||||||
|
|
||||||
current = Config.get(Config.LAST_VIEW)
|
current = Config.get(Config.LAST_VIEW)
|
||||||
if current > len(self.pages):
|
if current > len(self.pages):
|
||||||
@ -669,6 +669,23 @@ class ViewManager:
|
|||||||
self.active_page.set_active()
|
self.active_page.set_active()
|
||||||
self.notebook.set_current_page(current)
|
self.notebook.set_current_page(current)
|
||||||
|
|
||||||
|
def vb_clicked(self,button,index):
|
||||||
|
self.vb_handlers_block()
|
||||||
|
self.notebook.set_current_page(index)
|
||||||
|
# If the click is on the same view we're in,
|
||||||
|
# restore the button state to active
|
||||||
|
if not button.get_active():
|
||||||
|
button.set_active(True)
|
||||||
|
self.vb_handlers_unblock()
|
||||||
|
|
||||||
|
def vb_handlers_block(self):
|
||||||
|
for ix in range(len(self.buttons)):
|
||||||
|
self.buttons[ix].handler_block(self.button_handlers[ix])
|
||||||
|
|
||||||
|
def vb_handlers_unblock(self):
|
||||||
|
for ix in range(len(self.buttons)):
|
||||||
|
self.buttons[ix].handler_unblock(self.button_handlers[ix])
|
||||||
|
|
||||||
def change_page(self, obj, page, num=-1):
|
def change_page(self, obj, page, num=-1):
|
||||||
if num == -1:
|
if num == -1:
|
||||||
num = self.notebook.get_current_page()
|
num = self.notebook.get_current_page()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user