Editing Documentation/Maemo 5 Developer Guide/Architecture/UI Framework

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 4: Line 4:
===Subsystems in UI framework domain===
===Subsystems in UI framework domain===
-
 
{| class="wikitable"
{| class="wikitable"
-
|+ Subsystems in UI framework domain
 
-
|-
 
! Subsystem !! Function
! Subsystem !! Function
|-
|-
-
| [[#hildon-desktop|hildon-desktop]] || OpenGL graphics API
+
|hildon-desktop||OpenGL graphics API
|-
|-
-
| [[#hildon-home|hildon-home]] || Home widget API and loading, notification service and plugins, background image and loading
+
|hildon-home||Home widget API and loading, notification service and plugins, background image and loading
|-
|-
-
| [[#hildon-status-menu|hildon-status-menu]] || X clipboard selection management
+
|hildon-status-menu||X clipboard selection management
|-
|-
-
| [[#Hildon Input Methods|Hildon Input Method]] || Localized text input UI
+
|Hildon Input Method||Localized text input UI
|-
|-
-
| Control Panel || Control Panel applet and loading
+
|Control Panel||Control Panel applet and loading
|-
|-
-
| Startup Wizard || first boot and system time setting
+
|Startup Wizard||first boot and system time setting
|-
|-
-
| Startup scripts || AF startup scripts
+
|Startup scripts||AF startup scripts
|-
|-
-
| RFS and CUD framework || Reset factory settings and clear user data
+
|RFS and CUD framework||Reset factory settings and clear user data
|-
|-
-
| i18n data || POSIX data
+
|I18 data||POSIX data
|}
|}
Line 38: Line 35:
-
[[Image:hildon-desktop_decomposition.png|800px|alt=UML diagram|Hildon-desktop descomposition]]
+
[[Image:hildon-desktop_decomposition.png|800px]]
====Low memory and background killing D-Bus signals====
====Low memory and background killing D-Bus signals====
-
The hildon-desktop process will listen to D-Bus signals warning about low-memory (RAM) situation (preventing starting of new applications) and signals suggesting starting background killing of applications that are running in the background. These signals are broadcast on the system bus by the hulda daemon (of [[Documentation/Maemo 5 Developer Guide/Architecture/Data Management|Data Management]]). Only the applications that have told hildon-desktop that they can be background killed are considered for background killing. The property is set with the <code>hildon_program_set_can_hibernate()</code> function in the libhildon1 library.
+
The hildon-desktop process will listen to D-Bus signals warning about low-memory (RAM) situation (preventing starting of new applications) and signals suggesting starting background killing of applications that are running in the background. These signals are broadcast on the system bus by the hulda daemon (of Data Management). Only the applications that have told hildon-desktop that they can be background killed are considered for background killing. The property is set with the <code>hildon_program_set_can_hibernate()</code> function in the libhildon1 library.
The background killing signals are defined as follows:
The background killing signals are defined as follows:
{| class="wikitable"
{| class="wikitable"
-
|+ Background kill state on
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.ke_recv.bgkill_on</code>
+
|interface||com.nokia.ke_recv.bgkill_on
|-
|-
-
| object path || <code>/com/nokia/ke-recv/bgkill_on</code>
+
|object path||/com/nokia/ke-recv/bgkill_on
|-
|-
-
| member || <code>bgkill_on</code>
+
|member||bgkill_on
|}
|}
{| class="wikitable"
{| class="wikitable"
-
|+ Background kill state off
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.ke_recv.bgkill_off</code>
+
|interface||com.nokia.ke_recv.bgkill_off
|-
|-
-
| object path || <code>/com/nokia/ke-recv/bgkill_off</code>
+
|object path||/com/nokia/ke-recv/bgkill_off
|-
|-
-
| member || <code>bgkill_off</code>
+
|member||bgkill_off
|}
|}
-
The low-memory signals are defined as follows. Notice that these low-memory signals are not meant to be used outside of the application framework, there are separate signals (user lowmem on and user lowmem off) for applications.  
+
The low-memory signals are defined as follows. Notice that these low-memory signals are not meant to be used outside of the application framework, there are separate signals (user lowmem on and user lowmem off ) for applications.  
{| class="wikitable"
{| class="wikitable"
-
|+ Low-memory background kill state on
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.ke_recv.lowmem_on</code>
+
|interface||com.nokia.ke_recv.lowmem_on
|-
|-
-
| object path || <code>/com/nokia/ke-recv/lowmem_on</code>
+
|object path||/com/nokia/ke-recv/lowmem_on
|-
|-
-
| member || <code>bgkill_off</code>
+
|member||bgkill_off
|}
|}
{| class="wikitable"
{| class="wikitable"
-
|+ Low-memory background kill state off
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.ke_recv.lowmem_off</code>
+
|interface||com.nokia.ke_recv.lowmem_off
|-
|-
-
| object path || <code>/com/nokia/ke-recv/lowmem_off</code>
+
|object path||/com/nokia/ke-recv/lowmem_off
|-
|-
-
| member || <code>bgkill_off</code>
+
|member||bgkill_off
|}
|}
====D-Bus signal for closing applications====
====D-Bus signal for closing applications====
-
The hildon-desktop process will listen to the <code>exit</code> D-Bus signal. When it catches the signal, it sends the (POSIX) <code>TERM</code> signal to all running windowed applications. This is used by the [[Documentation/Maemo 5 Developer Guide/Using Generic Platform Components/Using Backup Application|Backup application]] before restoring backed up data and settings, Backup itself can ignore the <code>TERM</code> signal. The signal is not meant to be used outside of the application framework.  
+
The hildon-desktop process will listen to the <code>exit</code> D-Bus signal. When it catches the signal, it sends the (POSIX) <code>TERM</code> signal to all running windowed applications. This is used by the Backup application before restoring backed up data and settings, Backup itself can ignore the <code>TERM</code> signal. The signal is not meant to be used outside of the application framework.  
{|class="wikitable"
{|class="wikitable"
-
|+ Exit signal
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.osso_app_killer</code>
+
|interface||com.nokia.osso_app_killer
|-
|-
-
| object path || <code>/com/nokia/osso_app_killer</code>
+
|object path||/com/nokia/osso_app_killer
|-
|-
-
| member || <code>exit</code>
+
|member||exit
|}
|}
Line 128: Line 115:
{| class="wikitable"
{| class="wikitable"
-
|+ Application died signal
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>org.maemo.launcher</code>
+
|interface||org.maemo.launcher
|-
|-
-
| object path || <code>org/maemo/launcher</code>
+
|object path||org/maemo/launcher
|-
|-
-
| member || Application Died
+
|member||Application Died
|}
|}
{| class="wikitable"
{| class="wikitable"
-
|+ Application died signal arguments
 
-
|-
 
! Argument # !! Mandatory !! Type !! Value
! Argument # !! Mandatory !! Type !! Value
|-
|-
-
| 1 || yes || <code>DBUS_TYPE_STRING</code> || file name of the executable
+
|1||yes||DBUS TYPE STRING||file name of the executable
|-
|-
-
| 2 || yes || <code>DBUS_TYPE_INT32</code> || PID of the died process
+
|2||yes||DBUS TYPE INT32||PID of the died process
|-
|-
-
| 3 || yes || <code>DBUS_TYPE_INT32</code> || exit code returned from <code>waitpid()</code>
+
|3||yes||DBUS TYPE INT32||exit code returned from waitpid()
|}
|}
Line 162: Line 145:
{| class="wikitable"
{| class="wikitable"
-
|+ D-Bus API to switch from fullscreen view to task switcher
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.hildon_desktop</code>
+
|interface||com.nokia.hildon_desktop
|-
|-
-
|| object path || (ignored)
+
||object path||(ignored)
|-
|-
-
| member || <code>exit_app_view</code>
+
|member||exit_app_view
|}
|}
Line 180: Line 161:
{| class="wikitable"
{| class="wikitable"
-
|+ Shutdown signal
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || (ignored)
+
|service||(ignored)
|-
|-
-
| interface || <code>com.nokia.mce.signal</code>
+
|interface||com.nokia.mce.signal
|-
|-
-
| object path || <code>com/nokia/mce/signal</code>
+
|object path||com/nokia/mce/signal
|-
|-
-
| member || <code>shutdown_ind</code>
+
|member||shutdown_ind
|}
|}
Line 201: Line 180:
====Hardware keyboard key bindings====
====Hardware keyboard key bindings====
-
In Diablo, there is a set of keys under the GConf path <code>/apps/osso/keybindings</code> to configure what hardware key (home, power, menu, fullscreen, etc.) shortcuts do in the desktop. In Fremantle, there are no key bindings for hildon-desktop.
+
In Diablo, there is a set of keys under the Gconf path <code>/apps/osso/keybindings</code> to configure what hardware key (home, power, menu, fullscreen, etc.) shortcuts do in the desktop. In Fremantle, there are no key bindings for hildon-desktop.
====Full screen mode====
====Full screen mode====
-
Applications can request to go in and out of the full screen mode by using the <code>gtk_window_fullscreen()</code> and <code>gtk_window_unfullscreen()</code> functions. The WM will see the desired mode from a window property. See the [http://library.gnome.org/devel/gtk/stable/GtkWindow.html#gtk-window-fullscreen GTK+ documentation] for more information.
+
Applications can request to go in and out of the full screen mode by using the <code>gtk window_fullscreen()</code> and <code>gtk window unfullscreen()</code> functions. The WM will see the desired mode from a window property. See the [http://library.gnome.org/devel/gtk/stable/GtkWindow.html#gtk-window-fullscreen Gtk+ documentation] for more information.
==hildon-home==
==hildon-home==
Line 216: Line 195:
-
[[Image:hildon-home_components.png|1000px|alt=UML diagram|hildon-home components]]
+
[[Image:hildon-home_components.png|1000px]]
Line 230: Line 209:
{| class="wikitable"
{| class="wikitable"
-
|+ System information banner D-Bus API
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || <code>org.freedesktop.Notifications</code>
+
|service||org.freedesktop.Notifications
|-
|-
-
| interface || <code>org.freedesktop.Notifications</code>
+
|interface||org.freedesktop.Notifications
|-
|-
-
| object path || <code>/org/freedesktop/Notifications</code>
+
|object path||/org/freedesktop/Notifications
|-
|-
-
| member || <code>SystemNoteInfoprint</code>
+
|member||SystemNoteInfoprint
|}
|}
{| class="wikitable"
{| class="wikitable"
-
|+ System information banner D-Bus API arguments
 
-
|-
 
! Argument # !! Mandatory !! Type !! Value
! Argument # !! Mandatory !! Type !! Value
|-
|-
-
| 1 || yes || <code>DBUS_TYPE_STRING</code> || message to show
+
|1||yes||DBUS TYPE STRING||message to show
|}
|}
-
The return value is of the type <code>DBUS_TYPE_UINT32</code>, it is the ID of the notification.
+
 
 +
The return value is of the type DBUS TYPE UINT32, it is the ID of the notification.
====System information note====
====System information note====
Line 258: Line 234:
{| class="wikitable"
{| class="wikitable"
-
|+ System information note D-Bus API
 
-
|-
 
! Attribute !! Value
! Attribute !! Value
|-
|-
-
| service || <code>org.freedesktop.Notifications</code>
+
|'''service'''||org.freedesktop.Notifications
|-
|-
-
| interface || <code>org.freedesktop.Notifications</code>
+
|'''interface'''||org.freedesktop.Notifications
|-
|-
-
| object path || <code>/org/freedesktop/Notifications</code>
+
|'''object path'''||/org/freedesktop/Notifications
|-
|-
-
| member || <code>SystemNoteDialog</code>
+
|'''member'''||SystemNoteDialog
|}
|}
 +
{| class="wikitable"
{| class="wikitable"
-
|+ System information note D-Bus API arguments
 
-
|-
 
! Argument # !! Mandatory !! Type !! Value
! Argument # !! Mandatory !! Type !! Value
|-
|-
-
| 1 || yes || <code>DBUS_TYPE_STRING</code> || message to show
+
|1||yes||DBUS TYPE STRING||message to show
|-
|-
-
| 2 || yes || <code>DBUS_TYPE_UNIT32</code> || type of dialog, one of <code>OSSO_GN_*</code>
+
|2||yes||DBUT_TYPE_UNIT32||type of dialog, one of OSSO_GN_*
|-
|-
-
| 3 || yes || <code>DBUS_TYPE_STRING</code> || label of the button
+
|3||yes||DBUS_TYPE_STRING||label of the button
|}
|}
-
The return value is of the type <code>DBUS_TYPE_UINT32</code>, it is the ID of the notification. The dialog’s return value can be retrieved by listening to the <code>NotificationClosed</code> signal that bears the ID.
+
The return value is of the type DBUS TYPE UINT32, it is the ID of the notification. The dialog’s return value can be retrieved by listening to the NotificationClosed signal that bears the ID.
===Notification plugin interface===
===Notification plugin interface===
Line 291: Line 264:
===Home plugin Public API===
===Home plugin Public API===
-
* Every Home applet inherits from <code>HDHomePluginItem</code> GObject class. <code>HDHomePluginItem</code> is a descendant of <code>GtkWindow</code>, so to add a widget to the Home applet, you should use the <code>gtk_container_add()</code> function.
+
* Every Home applet inherits from <code>HDHomePluginItem</code> GObject class. <code>HDHomePluginItem</code> is a descendant of <code>GtkWindow</code>, so to add a widget to the Home applet, you should use the <code>gtk_container_add()</code> function. *Visibility of the applet is handled by hildon-home.
-
*Visibility of the applet is handled by hildon-home.
+
* The applets can have only tap interaction (because of panning of Home screens)
* The applets can have only tap interaction (because of panning of Home screens)
* The applets cannot have focus (because of the "call from Home" feature)
* The applets cannot have focus (because of the "call from Home" feature)
Line 372: Line 344:
-
[[Image:hildon-statusmenu_decomposition.png|800px|alt=UML diagram|hison-status-menu decomposition]]
+
[[Image:hildon-statusmenu_decomposition.png|800px]]
==Hildon Input Methods==
==Hildon Input Methods==

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)