Difference between revisions of "Computing screen"

From LinuxMCE
Jump to: navigation, search
(Computing_ObjectSelected callback method)
Line 1: Line 1:
<table width="100%"> <tr><td bgcolor="#FFCFCF">This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007.  In general any information should apply to LinuxMCE.  However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.</td></tr> </table>== Introduction ==
+
== Introduction ==
  
The Computing screen allows you to use external applications, like Mozilla or MythTV Setup. There are two datagrids on the screen, one with installed programs and one with web bookmarks.
+
The Computing screen allows you to use external applications, like Mozilla or MythTV Setup. There are two data-grids on the screen, one with installed programs and one with web bookmarks.
  
 
== Specifications ==
 
== Specifications ==
Line 7: Line 7:
 
=== For OnScreen Orbiters ===
 
=== For OnScreen Orbiters ===
  
Clicking one of the cells of the datagrids will bring you to a new screen, called "Application Desktop" screen.  
+
Clicking one of the cells of the data-grids will bring you to a new screen, called "Application Desktop" screen.  
If you click on a web bookmark, firefox will start and it will positionated to fill the whole screen, except "Home" and "Stop" buttons, situated on the bottom of the screen. In this screen, Firefox will receive both keyboard and mouse events and orbiter will ignore keyboard events.
+
If you click on a web bookmark, Firefox will start and it will positionate to fill the whole screen, except "Home" and "Stop" buttons, situated on the bottom of the screen. In this screen, Firefox will receive both keyboard and mouse events and orbiter will ignore keyboard events.
 
If you'll click on home button, the application will remain opened and you'll be able to go back to Computing screen and press "Desktop". Below "Desktop" button a label will indicate the name of the external application opened. To close the external application, you can press "Exit" button. If no external application is running, the label, "Desktop" and "Exit" buttons will be hidden.
 
If you'll click on home button, the application will remain opened and you'll be able to go back to Computing screen and press "Desktop". Below "Desktop" button a label will indicate the name of the external application opened. To close the external application, you can press "Exit" button. If no external application is running, the label, "Desktop" and "Exit" buttons will be hidden.
  
 
=== For non-OSD Orbiters ===
 
=== For non-OSD Orbiters ===
Clicking on the cell from the datagrid will bring you to a "application desktop remote" screen, from where you will be able to control the external application running on the OSD Orbiter from the same room. Pressing "stop" button will close the external application.
+
Clicking on the cell from the data-grid will bring you to an "application desktop remote" screen, from where you will be able to control the external application running on the OSD Orbiter from the same room. Pressing "stop" button will close the external application.
  
 
Note: if xine or other player is also running, while playing with Computing features, xine window shouldn't be visible. Also, if an external application is running and you are going to media and you will play a movie, only xine should be visible and Orbiter.
 
Note: if xine or other player is also running, while playing with Computing features, xine window shouldn't be visible. Also, if an external application is running and you are going to media and you will play a movie, only xine should be visible and Orbiter.
Line 18: Line 18:
 
== Implementation details ==
 
== Implementation details ==
  
To encapsulate the logic for Computing screen, a screen handler is being used, overriden in ScreenHandler the method SCREEN_Computing.  
+
To encapsulate the logic for Computing screen, a screen handler is being used, overridden in ScreenHandler the method SCREEN_Computing.  
  
 
=== SCREEN_Computing method ===
 
=== SCREEN_Computing method ===
Line 32: Line 32:
 
=== Computing_ObjectSelected callback method ===
 
=== Computing_ObjectSelected callback method ===
  
If the user presses "Exit" button, orbiter will send a "kill application" command to App_Server and it goes to main menu. Also, any information related to an exteral application running is being reseted.
+
If the user presses "Exit" button, orbiter will send a "kill application" command to App_Server and it goes to main menu. Also, any information related to an external application running is being reseted.
  
 
If the user presses "Remote" button, the controlled Orbiter is sent to "Application Desktop" screen and an "Activate Window" with the window class of the external application as parameter is sent to controlled Orbiter. Orbiter already has all the information about external application.
 
If the user presses "Remote" button, the controlled Orbiter is sent to "Application Desktop" screen and an "Activate Window" with the window class of the external application as parameter is sent to controlled Orbiter. Orbiter already has all the information about external application.
Line 38: Line 38:
 
=== Computing_DatagridSelected callback method ===
 
=== Computing_DatagridSelected callback method ===
  
Once a cell is clicked in Computing screen, this callback method is being called. The cell has embedded in its value variable a comma delimited list will parameters about the application to run (window class, decription, etc.). Then, a "Spawn Application" command is sent to App_Server and the controlled Orbiter will notified with a "Active Window" command about to external application being started.
+
Once a cell is clicked in Computing screen, this callback method is being called. The cell has embedded in its value variable a comma delimited list will parameters about the application to run (window class, description, etc.). Then, a "Spawn Application" command is sent to App_Server and the controlled Orbiter will be notified with a "Active Window" command about the external application being started.
  
 
=== Activate Window command ===
 
=== Activate Window command ===
  
This command is implemented in its overriden version for OrbiterLinux. In here, a small module called "Windows List Manager" is being notified about the application to activate. When Orbiter goes to "Application Desktop" screen, RenderDesktop is called and OrbiterLinux will know that it's time to find the external application's window and to activate it / set its position.
+
This command is implemented in its overridden version for OrbiterLinux. In here, a small module called "Windows List Manager" is being notified about the application to activate. When Orbiter goes to "Application Desktop" screen, RenderDesktop is called and OrbiterLinux will know that it's time to find the external application's window and to activate it / set its position.

Revision as of 13:55, 16 March 2007

Introduction

The Computing screen allows you to use external applications, like Mozilla or MythTV Setup. There are two data-grids on the screen, one with installed programs and one with web bookmarks.

Specifications

For OnScreen Orbiters

Clicking one of the cells of the data-grids will bring you to a new screen, called "Application Desktop" screen. If you click on a web bookmark, Firefox will start and it will positionate to fill the whole screen, except "Home" and "Stop" buttons, situated on the bottom of the screen. In this screen, Firefox will receive both keyboard and mouse events and orbiter will ignore keyboard events. If you'll click on home button, the application will remain opened and you'll be able to go back to Computing screen and press "Desktop". Below "Desktop" button a label will indicate the name of the external application opened. To close the external application, you can press "Exit" button. If no external application is running, the label, "Desktop" and "Exit" buttons will be hidden.

For non-OSD Orbiters

Clicking on the cell from the data-grid will bring you to an "application desktop remote" screen, from where you will be able to control the external application running on the OSD Orbiter from the same room. Pressing "stop" button will close the external application.

Note: if xine or other player is also running, while playing with Computing features, xine window shouldn't be visible. Also, if an external application is running and you are going to media and you will play a movie, only xine should be visible and Orbiter.

Implementation details

To encapsulate the logic for Computing screen, a screen handler is being used, overridden in ScreenHandler the method SCREEN_Computing.

SCREEN_Computing method

In here:

- we are registering callbacks for cbObjectSelected and cbDataGridSelected events.

- then will we decide if this orbiter is a OSD orbiter (in which case we know the status of any external application that might be started) or not (in which case will use 'Get Active Application' and get the info from the right OSD Orbiter);

- if there is an external application running, we'll show "Desktop" and "Exit" buttons and the associated label; if not, these objects will be hidden.

Computing_ObjectSelected callback method

If the user presses "Exit" button, orbiter will send a "kill application" command to App_Server and it goes to main menu. Also, any information related to an external application running is being reseted.

If the user presses "Remote" button, the controlled Orbiter is sent to "Application Desktop" screen and an "Activate Window" with the window class of the external application as parameter is sent to controlled Orbiter. Orbiter already has all the information about external application.

Computing_DatagridSelected callback method

Once a cell is clicked in Computing screen, this callback method is being called. The cell has embedded in its value variable a comma delimited list will parameters about the application to run (window class, description, etc.). Then, a "Spawn Application" command is sent to App_Server and the controlled Orbiter will be notified with a "Active Window" command about the external application being started.

Activate Window command

This command is implemented in its overridden version for OrbiterLinux. In here, a small module called "Windows List Manager" is being notified about the application to activate. When Orbiter goes to "Application Desktop" screen, RenderDesktop is called and OrbiterLinux will know that it's time to find the external application's window and to activate it / set its position.