| Server IP : 182.53.201.61 / Your IP : 216.73.217.175 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/gnome-python2-libegg-2.25.3/recent/ |
Upload File : |
#
# Small example of the new GtkUIManager
#
# Johan Dahlin <johan@gnome.org>, 2004
#
# Modified to add recent files and gnomevfs
# Gustavo Carneiro <gjc@gnome.org>, 2004
#
import pygtk
pygtk.require('2.0')
import gtk
import egg.recent
import gnomevfs
ui_string = """<ui>
<menubar name='Menubar'>
<menu action='FileMenu'>
<menuitem action='New'/>
<menuitem action='Open'/>
<separator/>
<menuitem action='Close'/>
<menuitem action='Quit'/>
</menu>
<menu action='HelpMenu'>
<menuitem action='About'/>
</menu>
</menubar>
<toolbar name='Toolbar'>
<toolitem action='New'/>
<toolitem action='Open'/>
<separator/>
<toolitem action='Quit'/>
</toolbar>
</ui>"""
class Window(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.set_position(gtk.WIN_POS_CENTER)
self.set_title('GtkUIManager/RecentViewGtk test app')
self.connect('delete-event', self.delete_event_cb)
self.set_size_request(400, 200)
vbox = gtk.VBox()
self.add(vbox)
self.create_ui()
vbox.pack_start(self.ui.get_widget('/Menubar'), expand=False)
vbox.pack_start(self.ui.get_widget('/Toolbar'), expand=False)
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
vbox.pack_start(sw)
textview = gtk.TextView()
self.buffer = textview.get_buffer()
sw.add(textview)
status = gtk.Statusbar()
vbox.pack_end(status, expand=False)
## Now the important stuff: add recent files
model = egg.recent.RecentModel(egg.recent.RECENT_MODEL_SORT_MRU)
open = self.ui.get_widget("/ui/Menubar/FileMenu/Open")
self.recent = egg.recent.RecentViewGtk(open.parent, open)
self.recent.set_model(model)
self.recent.connect("activate", self.recent_activate_cb)
def recent_activate_cb(self, rview, item):
self.load_uri(item.get_uri())
def create_ui(self):
ag = gtk.ActionGroup('WindowActions')
actions = [
('FileMenu', None, '_File'),
('New', gtk.STOCK_NEW, '_New', '<control>N', 'Create a new file', self.file_new_cb),
('Open', gtk.STOCK_OPEN, '_Open', '<control>O', 'Open a file', self.file_open_cb),
('Close', gtk.STOCK_CLOSE, '_Close', '<control>W', 'Close the current window', self.file_close_cb),
('Quit', gtk.STOCK_QUIT, '_Quit', '<control>Q', 'Quit application', self.file_quit_cb),
('HelpMenu', None, '_Help'),
('About', None, '_About', None, 'About application', self.help_about_cb),
]
ag.add_actions(actions)
self.ui = gtk.UIManager()
self.ui.insert_action_group(ag, 0)
self.ui.add_ui_from_string(ui_string)
self.add_accel_group(self.ui.get_accel_group())
def file_new_cb(self, action):
w = Window()
w.show_all()
gtk.main()
def file_open_cb(self, action):
dialog = gtk.FileChooserDialog("Open..", self,
gtk.FILE_CHOOSER_ACTION_OPEN,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)
dialog.set_local_only(False)
filter = gtk.FileFilter()
filter.set_name("All files")
filter.add_pattern("*")
dialog.add_filter(filter)
dialog.hide()
if dialog.run() == gtk.RESPONSE_OK:
self.load_uri(dialog.get_uri())
dialog.destroy()
def load_uri(self, uri):
self.buffer.set_text(gnomevfs.read_entire_file(uri))
self.recent.get_model().add(uri)
def file_close_cb(self, action):
self.hide()
gtk.main_quit()
def file_quit_cb(self, action):
raise SystemExit
def help_about_cb(self, action):
dialog = gtk.MessageDialog(self,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
gtk.MESSAGE_INFO, gtk.BUTTONS_OK,
"Small example of the new GtkUIManger")
dialog.run()
dialog.destroy()
def delete_event_cb(self, window, event):
gtk.main_quit()
if __name__ == '__main__':
w = Window()
w.show_all()
gtk.main()