[pygtk] (no subject)
McBride, Nathan
NMcbride at geico.com
Fri Nov 16 03:15:35 WST 2007
run the program and the main window comes up with the status icon. When
I minimize the window, instead of minimizing it, it hides it. So the
window is gone but the icon is still in the tasktray. (minimizing to
tasktray) What I am trying to accomplish is that when you click the
tasktray icon then the window unhides and comes back.
everything works flawlessly except i can't get:
def activate_icon_cb(widget, data = None):
pass
to have access to self.window from the __init__ to run the
self.window.show(). I'have tried setting it up like:
def activate_icon_cb(self, widget, data = None):
pass
# statusIcon.set_from_stock(gtk.STOCK_HOME)
statusIcon.set_from_file("pixmaps/dmcal.png")
statusIcon.set_tooltip("DM-Crypt & LUKS Encryption Suite")
statusIcon.connect('activate', activate_icon_cb(self))
statusIcon.connect('popup-menu', popup_menu_cb, menu)
statusIcon.set_visible(True)
but it says self isn't defined. When I tried recalling the widget from
the glade file and showing it that way instead of showing it it just
made another. But I have to bring the first on back up not make a new
one.
Thanks for helping me with this.
Nate
Here is the majority of the code:
class dmcalGTK:
"""The DMCal Application"""
def __init__(self):
#Set the glade file
self.gladefile = "dmcal.glade"
self.wTree = gtk.glade.XML(self.gladefile, "dmcalMain")
self.window = self.wTree.get_widget("dmcalMain")
self.window.connect('window-state-event', self.window_event)
#Create our dictionary and connect it
dic = {"on_create_container_activate" :
self.create_container_activate,
"on_dmcalMain_destroy" : self.dmcalMain_destroy,
"on_aboutMenuItem_activate" : self.showAbout,
"on_quitButton_clicked" : self.dmcalMain_destroy,
"on_newButton_clicked" :
self.create_container_activate,
"on_addButton_clicked" : self.showFileSelection,
"on_quitmenuitem_activate" : self.dmcalMain_destroy,
"on_removeButton_clicked" : self.removecontainer,
"on_saveMenuItem_activate" : self.savelist}
self.wTree.signal_autoconnect(dic)
preferencesMI = self.wTree.get_widget("preferencesMenuItem")
preferencesMI.set_sensitive(0)
#Setup the treeview
self.treeview = self.wTree.get_widget('treeview2')
#Create the liststore model to use with the treeview
#Pattern: ICON, NAME TEXT, PATH TEXT
self.treelist = gtk.ListStore(gtk.gdk.Pixbuf, str, str, str)
#Attatch the liststore model to the treeview
self.treeview.set_model(self.treelist)
#Get the icons
self.yes = self.treeview.render_icon('gtk-yes',
gtk.ICON_SIZE_SMALL_TOOLBAR)
self.no = self.treeview.render_icon('gtk-no',
gtk.ICON_SIZE_SMALL_TOOLBAR)
#Setup the columns on the listview
column = gtk.TreeViewColumn('', gtk.CellRendererPixbuf(),
pixbuf=0)
self.treeview.append_column(column)
column = gtk.TreeViewColumn('Name', gtk.CellRendererText(),
text=1)
self.treeview.append_column(column)
column = gtk.TreeViewColumn('Location',
gtk.CellRendererText(), text=2)
self.treeview.append_column(column)
column = gtk.TreeViewColumn('Mount Point',
gtk.CellRendererText(), text=3)
self.treeview.append_column(column)
self.treelist.append([self.yes, 'container.enc',
'/home/nomb/container.enc', '/media/enc'])
self.treeselection = self.treeview.get_selection()
self.treeselection.select_path(0)
if commands.getoutput("whoami") != "root":
print "Non-Root - Limited functionality..."
#Disable create new container menu entry
newcontainerMenuItem =
self.wTree.get_widget("create_container")
newcontainerMenuItem.set_sensitive(0)
#Disable create new container button
newcontainerButton = self.wTree.get_widget("newButton")
newcontainerButton.set_sensitive(0)
#Disable mount button
mntButton = self.wTree.get_widget("mountButton")
mntButton.set_sensitive(0)
#Disable un-mount button
unmntButton = self.wTree.get_widget("unmountButton")
unmntButton.set_sensitive(0)
#Set alert message to status bar
statusbar = self.wTree.get_widget("statusbar1")
statusbarid = statusbar.get_context_id("need root")
statusbar.push(statusbarid, "Some functions require root
permissions and path... (su -)")
def quit_cb(widget, data = None):
if data:
data.set_visible(False)
gtk.main_quit()
def popup_menu_cb(widget, button, time, data = None):
if button == 3:
if data:
data.show_all()
data.popup(None, None, None, 3, time)
pass
def activate_icon_cb(widget, data = None):
pass
def icon_show_about(widget, data = None):
dmcalDialog = dmcalAbout()
result = dmcalDialog.run()
statusIcon = gtk.StatusIcon()
menu = gtk.Menu()
menuItem = gtk.ImageMenuItem(gtk.STOCK_ABOUT)
menuItem.connect('activate', icon_show_about)
menu.append(menuItem)
menuItem = gtk.SeparatorMenuItem()
menu.append(menuItem)
menuItem = gtk.ImageMenuItem(gtk.STOCK_QUIT)
menuItem.connect('activate', quit_cb, statusIcon)
menu.append(menuItem)
# statusIcon.set_from_stock(gtk.STOCK_HOME)
statusIcon.set_from_file("pixmaps/dmcal.png")
statusIcon.set_tooltip("DM-Crypt & LUKS Encryption Suite")
statusIcon.connect('activate', activate_icon_cb)
statusIcon.connect('popup-menu', popup_menu_cb, menu)
statusIcon.set_visible(True)
def window_event(self, widget, event):
#print event.new_window_state
if event.new_window_state == gtk.gdk.WINDOW_STATE_ICONIFIED:
self.window.hide()
====================
This email/fax message is for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
Any unauthorized review, use, disclosure or distribution of this
email/fax is prohibited. If you are not the intended recipient, please
destroy all paper and electronic copies of the original message.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.daa.com.au/pipermail/pygtk/attachments/20071115/adf452f9/attachment.htm
More information about the pygtk
mailing list