Difference between revisions of "Multi screen support"

(Resources)
(Resources)
 
(67 intermediate revisions by 6 users not shown)
Line 6: Line 6:
  
 
=Resources=
 
=Resources=
[http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen_members.aspx C# screen class interface]
+
*In order to be able to change the library code you have to delete the 'readonly="True"' in the library tags of the project's acex file or just click on the project settings in the Eiffel Studio and change it there.
  
Gdk - Resources:
+
*[http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen_members.aspx C# screen class interface]
* class GdkDisplay
+
* class GdkScreen
+
  
WEL - Resources:
+
 
 +
*Gdk - Resources:
 +
** class GdkDisplay
 +
** class GdkScreen
 +
 
 +
 
 +
*WEL - Resources:
 +
** NONE
 +
 
 +
 
 +
*Win32 API - Resources:
 +
** look at the platform SDK under 'Win32 API'
 +
** Wel uses a callback function to get access to all fonts (it's pretty much the same that we have to do)
 +
*** see the [http://origo.ethz.ch/pipermail/es-ui/2006-June/000016.html mail from manu] (see also the following mails)
 +
*** in the SDK you find the EnumFontFamilies function under 'Graphics Device Interface' -> 'Fonts and Text' -> '... Reference' -> '... Functions'
 +
*** look at %Eiffel%\library\wel\clib\enumfold.c
 +
*** look at class wel_font_family_enumerator - especially at feature cwin_enum_font_families
 +
 
 +
 
 +
*Team SVN Rep: You need to backup and remove the directories 'vison2' and 'wel' in your '/Eiffel57/library/' directory and run a svn checkout from https://svn.eiffel.com/eiffelstudio/branches/eth/soft-arch/TeamMultiScreenSupport .
 +
 
 +
=Implementation=
 +
 
 +
=== Vision2 ===
 +
 
 +
class EV_SCREEN:
 +
* allscreenslist [EV_MONITOR]
 +
* primaryscreen : EV_MONITOR
 +
 
 +
class EV_MONITOR:
 +
* create class
 +
* width, height, vertical_resolution, horzintal_resolution
 +
* monitor_at_position (pos: EV_COORDINATE): INTEGER
 +
* get_global_coordinate (pos: EV_COORDINATE; screen_nr: INTEGER): EV_COORDINATE
 +
 
 +
class EV_MONITOR_IMP :
 +
* add multiscreen features as needed
 +
* Windows: is client of WEL_MONITORS_DC
 +
 
 +
class EV_MONITOR_I:
 +
* add new deferred features from EV_MONITOR_IMP
 +
 
 +
class GDK_EXTERNALS:
 +
* add multiscreen features as needed
 +
 
 +
=== Wel ===
 +
 
 +
class WEL_MONITOR_ENUMERATOR:
 +
* deferred feature action
 +
* accesses C functions to enumerate all monitors
 +
 
 +
 
 +
class WEL_MONITORS_DC (inherits: WEL_MONITOR_ENUMERATOR):
 +
* defines deferred feature action from WEL_MONITOR_ENUMERATOR
 +
* gives acces to the DC of all monitors
  
 
=Milestones=
 
=Milestones=
  
==M1: April 25th==
+
==M1: June 1st==
 +
 
 +
* needed gdk features
 +
* decide upon implementation
  
 
==M2: May ??? ==
 
==M2: May ??? ==
 
* To be completed by the team
 
* To be completed by the team
 +
 +
=To do=
 +
*Fabio:
 +
 +
 +
 +
*Pascal:
 +
**look at Win32API and get dummy prog to work (see resources)
 +
 +
 +
*Pawi
 +
**find out how to do the docu (take a look at [[Downloads#Doc_Builder| Doc builder]])
 +
 +
 +
*Dario
 +
**find out how works 'external' (done.)
 +
**create Class EV_MONITOR(inherits EV_SCREEN) (done; see svn)
 +
**implement linux version of EV_MONITOR_IMP (done.)
 +
 +
=Documentation=
 +
 +
The documentation for this projet can be found [http://funky-monkey.ch/vision2 here].
  
 
=Team=
 
=Team=
Line 25: Line 102:
 
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui| es-ui@origo.ethz.ch]
 
Everyone interested in this project is welcome to join our mailinglist [http://origo.ethz.ch/cgi-bin/mailman/listinfo/es-ui| es-ui@origo.ethz.ch]
  
* TODO add project members
 
 
* Project Leader: [[User:Dartzki| Dario]]
 
* Project Leader: [[User:Dartzki| Dario]]
* [[User:Serafin| Serafin]]
 
 
* [[User:Bayt| Bayt]]
 
* [[User:Bayt| Bayt]]
 
* [[User:fabio| Fabio]]
 
* [[User:fabio| Fabio]]
* Pawi
+
* [[User:Pawi| Pawi]]
* Pascal
+
* [[User:Pascal| Pascal]]

Latest revision as of 14:05, 1 November 2007


Overview

The aim of this project is to enhance Vision with a support for multiple screens.

Resources

  • In order to be able to change the library code you have to delete the 'readonly="True"' in the library tags of the project's acex file or just click on the project settings in the Eiffel Studio and change it there.


  • Gdk - Resources:
    • class GdkDisplay
    • class GdkScreen


  • WEL - Resources:
    • NONE


  • Win32 API - Resources:
    • look at the platform SDK under 'Win32 API'
    • Wel uses a callback function to get access to all fonts (it's pretty much the same that we have to do)
      • see the mail from manu (see also the following mails)
      • in the SDK you find the EnumFontFamilies function under 'Graphics Device Interface' -> 'Fonts and Text' -> '... Reference' -> '... Functions'
      • look at %Eiffel%\library\wel\clib\enumfold.c
      • look at class wel_font_family_enumerator - especially at feature cwin_enum_font_families


Implementation

Vision2

class EV_SCREEN:

  • allscreenslist [EV_MONITOR]
  • primaryscreen : EV_MONITOR

class EV_MONITOR:

  • create class
  • width, height, vertical_resolution, horzintal_resolution
  • monitor_at_position (pos: EV_COORDINATE): INTEGER
  • get_global_coordinate (pos: EV_COORDINATE; screen_nr: INTEGER): EV_COORDINATE

class EV_MONITOR_IMP :

  • add multiscreen features as needed
  • Windows: is client of WEL_MONITORS_DC

class EV_MONITOR_I:

  • add new deferred features from EV_MONITOR_IMP

class GDK_EXTERNALS:

  • add multiscreen features as needed

Wel

class WEL_MONITOR_ENUMERATOR:

  • deferred feature action
  • accesses C functions to enumerate all monitors


class WEL_MONITORS_DC (inherits: WEL_MONITOR_ENUMERATOR):

  • defines deferred feature action from WEL_MONITOR_ENUMERATOR
  • gives acces to the DC of all monitors

Milestones

M1: June 1st

  • needed gdk features
  • decide upon implementation

M2: May ???

  • To be completed by the team

To do

  • Fabio:


  • Pascal:
    • look at Win32API and get dummy prog to work (see resources)


  • Pawi


  • Dario
    • find out how works 'external' (done.)
    • create Class EV_MONITOR(inherits EV_SCREEN) (done; see svn)
    • implement linux version of EV_MONITOR_IMP (done.)

Documentation

The documentation for this projet can be found here.

Team

Everyone interested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch