Editing PyMaemo/HildonDesktop
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 6: | Line 6: | ||
* hildon-desktop-python-loader: this is a Hildon Desktop loader for Python plugins. | * hildon-desktop-python-loader: this is a Hildon Desktop loader for Python plugins. | ||
- | == Migrating old Widgets to Maemo 5 == | + | === Migrating old Widgets to Maemo 5 === |
The libhildondesktop version in Maemo 5 contains some API changes that also reflect on the Python bindings. Namely, you should pay attention to the following differences when migrating Home/Status Widgets from older Maemo releases to Fremantle: | The libhildondesktop version in Maemo 5 contains some API changes that also reflect on the Python bindings. Namely, you should pay attention to the following differences when migrating Home/Status Widgets from older Maemo releases to Fremantle: | ||
Line 19: | Line 19: | ||
* Remove the "hd_plugin_get_object" function and instead add a "hd_plugin_type" variable that points to the plugin main class. | * Remove the "hd_plugin_get_object" function and instead add a "hd_plugin_type" variable that points to the plugin main class. | ||
- | == Example - Home widgets (Fremantle only) == | + | === Example - Home widgets (Fremantle only) === |
<pre> | <pre> | ||
Line 97: | Line 97: | ||
[[Image:Hello_world_home_python2.png]] | [[Image:Hello_world_home_python2.png]] | ||
- | == Example - Status menu widgets (Fremantle only) == | + | === Example - Status menu widgets (Fremantle only) === |
The code below was based on the C example that can be found on the Maemo 5 Developer Guide [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets#Status_Menu_widgets]. | The code below was based on the C example that can be found on the Maemo 5 Developer Guide [http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Application_Development/Writing_Desktop_Widgets#Status_Menu_widgets]. | ||
<pre> | <pre> | ||
+ | import gobject | ||
import gtk | import gtk | ||
import hildondesktop | import hildondesktop | ||
class ExampleStatusPlugin(hildondesktop.StatusMenuItem): | class ExampleStatusPlugin(hildondesktop.StatusMenuItem): | ||
+ | __gtype_name__ = 'ExampleStatusPlugin' | ||
+ | |||
def __init__(self): | def __init__(self): | ||
hildondesktop.StatusMenuItem.__init__(self) | hildondesktop.StatusMenuItem.__init__(self) | ||
- | + | ||
+ | STATUS_AREA_EXAMPLE_ICON_SIZE = 22 | ||
icon_theme = gtk.icon_theme_get_default() | icon_theme = gtk.icon_theme_get_default() | ||
- | pixbuf = icon_theme.load_icon("general_email", | + | pixbuf = icon_theme.load_icon("general_email", STATUS_AREA_EXAMPLE_ICON_SIZE, gtk.ICON_LOOKUP_NO_SVG) |
self.set_status_area_icon(pixbuf) | self.set_status_area_icon(pixbuf) | ||
- | + | ||
label = gtk.Label("Example message") | label = gtk.Label("Example message") | ||
self.add(label) | self.add(label) | ||
self.show_all() | self.show_all() | ||
- | + | def hd_plugin_get_object(): | |
+ | return gobject.new(ExampleStatusPlugin, plugin_id="example_status_plugin") | ||
+ | |||
+ | if __name__ == "__main__": | ||
+ | obj = hd_plugin_get_object() | ||
+ | obj.show_all() | ||
+ | gtk.main() | ||
</pre> | </pre> | ||
Learn more about Contributing to the wiki.