| 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 : |
#!/usr/bin/env python
#
# hello.py
#
# A hello world application using the Bonobo UI handler
#
# Original Authors:
# Michael Meeks <michael@ximian.com>
# Murray Cumming <murrayc@usa.net>
# Havoc Pennington <hp@redhat.com>
#
# Converted to Python by:
# Johan Dahlin <jdahlin@telia.com>
#
# Recent file support by:
# Gustavo Carneiro <gjc@gnome.org>
#
import sys
import bonobo
import bonobo.ui
import gtk
import egg.recent
HELLO_UI_XML = "./Bonobo_Sample_Hello.xml"
# Keep a list of all open application windows
app_list = []
def strreverse (text):
l = list (text)
l.reverse ()
return ''.join (l)
def show_nothing_dialog (widget):
dialog = gtk.MessageDialog (widget,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
gtk.MESSAGE_INFO, gtk.BUTTONS_OK,
'This does nothing; it is only a demonstration')
dialog.run ()
dialog.destroy ()
def hello_on_menu_file_new (uic, verbname, win):
hello = hello_new ()
hello.show_all ()
def hello_on_menu_file_open (uic, verbname, win):
show_nothing_dialog (win)
def hello_on_menu_file_save (uic, verbname, win):
show_nothing_dialog (win)
def hello_on_menu_file_saveas (uic, verbname, win):
show_nothing_dialog (win)
def hello_on_menu_file_exit (uic, verbname, win):
sys.exit (0)
def hello_on_menu_file_close (uic, verbname, win):
app_list.remove (app)
app.destroy ()
if not app_list:
hello_on_menu_file_exit (uic, verbname, win)
def hello_on_menu_edit_undo (uic, verbname, win):
show_nothing_dialog (win)
def hello_on_menu_edit_redo (uic, verbname, win):
show_nothing_dialog (win)
def hello_on_menu_help_about (uic, verbname, win):
dialog = gtk.MessageDialog (win,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
gtk.MESSAGE_INFO, gtk.BUTTONS_OK,
'BonoboUI-Hello')
dialog.run ()
dialog.destroy ()
def hello_on_button_click (w, label):
text = label.get_text ()
label.set_text (strreverse (text))
# These verb names are standard, see libonobobui/doc/std-ui.xml
# to find a list of standard verb names.
# The menu items are specified in Bonobo_Sample_Hello.xml and
# given names which map to these verbs here.
hello_verbs = [
('FileNew', hello_on_menu_file_new),
('FileOpen', hello_on_menu_file_open),
('FileSave', hello_on_menu_file_save),
('FileSaveAs', hello_on_menu_file_saveas),
('FileClose', hello_on_menu_file_close),
('FileExit', hello_on_menu_file_exit),
('EditUndo', hello_on_menu_edit_undo),
('EditRedo', hello_on_menu_edit_redo),
('HelpAbout', hello_on_menu_help_about)
]
def open_recent_cb(recent_view, item):
dialog = gtk.MessageDialog (widget,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
gtk.MESSAGE_INFO, gtk.BUTTONS_OK,
'I have a feeling you want to open the following recent'
' file:\n%s' % item.get_uri())
dialog.run ()
dialog.destroy ()
def hello_create_main_window ():
window = bonobo.ui.Window ('Title', 'test')
window.show_all ()
ui_container = window.get_ui_container ()
engine = window.get_ui_engine ()
engine.config_set_path ('/hello-app/UIConfig/kvps')
ui_component = bonobo.ui.Component ('test')
ui_component.set_container (ui_container.corba_objref ())
bonobo.ui.util_set_ui (ui_component, '',
HELLO_UI_XML,
'bonobo-hello')
ui_component.add_verb_list (hello_verbs, window)
## *** Here's the important stuff, add recent files to the UI
## ----------------------------------------------------------
## Setup the EggRecentModel stuff
model = egg.recent.RecentModel(egg.recent.RECENT_MODEL_SORT_MRU)
#model.set_filter_groups(["Bonobo Test"])
# try these if you want
#model.set_filter_mime_types(["text/plain"])
#model.set_filter_uri_schemes(["mailto", "http", "ftp"])
view = egg.recent.RecentViewBonobo(ui_component,
"/menu/File/EggRecentDocuments/")
view.show_icons(True)
view.set_model(model)
view.connect("activate", open_recent_cb)
return window
def delete_event_cb (window, event):
return gtk.TRUE
def hello_new ():
win = hello_create_main_window ()
button = gtk.Button ()
button.set_border_width (10)
label = gtk.Label ('Hello World')
button.add (label)
button.connect ('clicked', hello_on_button_click, label)
win.set_size_request (250, 350)
win.set_resizable (gtk.TRUE)
win.set_property ('allow-shrink', False)
frame = gtk.Frame ()
frame.set_shadow_type (gtk.SHADOW_IN)
frame.add (button)
win.set_contents (frame)
win.connect ('delete_event', delete_event_cb)
app_list.append (win)
return win
if __name__ == '__main__':
app = hello_new ()
app.show_all ()
bonobo.main ()