<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dowster</id>
	<title>LinuxMCE - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dowster"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php/Special:Contributions/Dowster"/>
	<updated>2026-05-11T05:23:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Computing_screen&amp;diff=36924</id>
		<title>Computing screen</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Computing_screen&amp;diff=36924"/>
		<updated>2017-03-10T23:03:26Z</updated>

		<summary type="html">&lt;p&gt;Dowster: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Programmer&#039;s Guide]]&lt;br /&gt;
[[Category: Tutorials| Computing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The Computing screen allows you to use external applications, like Mozilla Firefox or MythTV Setup. There are two columns on the screen -- one for installed programs and one for web bookmarks.&lt;br /&gt;
&lt;br /&gt;
== How to add &amp;quot;installed programs&amp;quot;==&lt;br /&gt;
The &amp;quot;Computing&amp;quot; button on the Orbiter menu brings up a list of &amp;quot;installed programs&amp;quot; and &amp;quot;Web bookmarks.&amp;quot;&lt;br /&gt;
[[Adding new computing apps]]&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
&lt;br /&gt;
=== For OnScreen Orbiters ===&lt;br /&gt;
The on-screen Orbiter menu is used by a [[Media Director]].&lt;br /&gt;
&lt;br /&gt;
On the on-screen Orbiter main menu, click the &amp;quot;Computing&amp;quot; button. This will bring up a screen displaying &amp;quot;Installed programs&amp;quot; and &amp;quot;Web bookmarks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you click on a web bookmark, Firefox be used to start the webpage in fullscreen mode (except the &amp;quot;Home&amp;quot; and &amp;quot;Stop&amp;quot; buttons, which will be displayed at the bottom of the screen). The keyboard and mouse will control Firefox; events and orbiter will ignore the keyboard until Firefox is closed.&lt;br /&gt;
&lt;br /&gt;
If you click on an Installed Program, the &amp;quot;Application Desktop&amp;quot; will appear, running the installed program. Below the &amp;quot;Desktop&amp;quot; button will be a label that indicates the name of the external application running. To close the external application, press the &amp;quot;Exit&amp;quot; button. (If no external application is running, the label, &amp;quot;Desktop&amp;quot; and &amp;quot;Exit&amp;quot; buttons will be hidden.)&lt;br /&gt;
&lt;br /&gt;
Whenever you then click the home button, the main menu will reappear.&lt;br /&gt;
&lt;br /&gt;
=== For other Orbiters ===&lt;br /&gt;
For Orbiters that do not use the on-screen Orbiter menu (such as webpads, mobile phones, and PDAs), the procedure is similar.&lt;br /&gt;
&lt;br /&gt;
*If xine or another media player is running while using the Computing features, the xine window won&#039;t be visible.&lt;br /&gt;
*If an external application is running and you wish play a movie, xine will be visible instead of the Orbiter menu.&lt;br /&gt;
&lt;br /&gt;
== Programming details ==&lt;br /&gt;
&lt;br /&gt;
To encapsulate the logic for the Computing screen, a Screen Handler is used. The ScreenHandler is overridden by the SCREEN_Computing method. &lt;br /&gt;
&lt;br /&gt;
=== SCREEN_Computing method ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Callbacks for cbObjectSelected and cbDataGridSelected events are registered.&lt;br /&gt;
&lt;br /&gt;
*Decide if this Orbiter is an on-screen OSD orbiter (in which case we will know the status of any external application that might be started) or not (in which case we will use &#039;Get Active Application&#039; to get the info from the Orbiter in use&lt;br /&gt;
&lt;br /&gt;
*If there is an external application running, show the &amp;quot;Desktop&amp;quot; and &amp;quot;Exit&amp;quot; buttons and the associated label; if not, these objects will be hidden.&lt;br /&gt;
&lt;br /&gt;
=== Computing_ObjectSelected callback method ===&lt;br /&gt;
&lt;br /&gt;
If the user presses &amp;quot;Exit&amp;quot; button, Orbiter will send a &amp;quot;kill application&amp;quot; command to App_Server and returns to the main menu display. Any information related to an external application running is reset.&lt;br /&gt;
&lt;br /&gt;
If the user presses &amp;quot;Remote&amp;quot; button, the controlled Orbiter is sent to the &amp;quot;Application Desktop&amp;quot; screen and an &amp;quot;Activate Window&amp;quot; (using the window class of the external application as a parameter) is sent to controlled Orbiter. The Orbiter already should have the information about the external application.&lt;br /&gt;
&lt;br /&gt;
=== Computing_DatagridSelected callback method ===&lt;br /&gt;
&lt;br /&gt;
Once a cell is clicked in the Computing screen menu, this callback method is invoked. The cell has embedded in its value variable a comma delimited list with parameters about the application to run (window class, description, etc.). A &amp;quot;Spawn Application&amp;quot; command is sent to App_Server and the controlled Orbiter will be notified so that a &amp;quot;Active Window&amp;quot; command about the external application is started.&lt;br /&gt;
&lt;br /&gt;
=== Activate Window command ===&lt;br /&gt;
&lt;br /&gt;
This command is implemented in the overridden version of OrbiterLinux. In here, a small module called &amp;quot;Windows List Manager&amp;quot; is notified about the application to activate. When Orbiter goes to the &amp;quot;Application Desktop&amp;quot; screen, RenderDesktop is called and OrbiterLinux will know that it&#039;s time to find the external application&#039;s window and to activate it and set its position.&lt;/div&gt;</summary>
		<author><name>Dowster</name></author>
	</entry>
</feed>