Actually, it doesn't seem to be re-creating the window after all. However, I can't seem to figure out how to bring the window back.
I have tried: self.window.show() self.window.deiconify() self.window.ahow_all() What is the correct way to do this? -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Julio Carlos Menéndez Sent: Thursday, November 15, 2007 4:08 PM To: pygtk@daa.com.au Subject: Re: [pygtk] (no subject) If you put all this code: 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) inside the __init__ method and every method you create should have the syntax '<method_name>(self,<parameters>)' to make it an instance method. Doing all that you should be able to use any self.<whatever_you_want> The method should be like this: def activate_icon_cb(self, widget): if self.window.visible(): self.window.hide() else: self..window.show() Hope this works for you. On Thu, 15 Nov 2007 13:15:35 -0500 "McBride, Nathan" <[EMAIL PROTECTED]> wrote: > 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. -- Julio Carlos Menéndez GNU/Linux User #403551 http://deltha.uh.cu/~juliocarlos ==================== 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. _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/