Difference between revisions of "Multi screen support"
(→Eiffel Studio) |
(→Resources) |
||
(29 intermediate revisions by 5 users not shown) | |||
Line 4: | Line 4: | ||
=Overview= | =Overview= | ||
The aim of this project is to enhance Vision with a support for multiple screens. | The aim of this project is to enhance Vision with a support for multiple screens. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=Resources= | =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 | + | *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. |
*[http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen_members.aspx C# screen class interface] | *[http://msdn2.microsoft.com/en-us/library/system.windows.forms.screen_members.aspx C# screen class interface] | ||
Line 71: | Line 22: | ||
*Win32 API - Resources: | *Win32 API - Resources: | ||
** look at the platform SDK under 'Win32 API' | ** look at the platform SDK under 'Win32 API' | ||
− | ** Wel uses a | + | ** 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' | *** 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 %Eiffel%\library\wel\clib\enumfold.c | ||
Line 77: | Line 29: | ||
− | *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:// | + | *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= | =Implementation= | ||
+ | |||
+ | === Vision2 === | ||
class EV_SCREEN: | class EV_SCREEN: | ||
− | * allscreenslist [ | + | * allscreenslist [EV_MONITOR] |
− | * primaryscreen : | + | * primaryscreen : EV_MONITOR |
− | class | + | class EV_MONITOR: |
* create class | * 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 | + | class EV_MONITOR_IMP : |
* add multiscreen features as needed | * add multiscreen features as needed | ||
+ | * Windows: is client of WEL_MONITORS_DC | ||
− | class | + | class EV_MONITOR_I: |
− | * add new deferred features from | + | * add new deferred features from EV_MONITOR_IMP |
class GDK_EXTERNALS: | class GDK_EXTERNALS: | ||
* add multiscreen features as needed | * 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= | ||
Line 110: | Line 78: | ||
=To do= | =To do= | ||
*Fabio: | *Fabio: | ||
− | + | ||
− | + | ||
− | + | ||
Line 120: | Line 86: | ||
*Pawi | *Pawi | ||
− | **find out how to do the docu | + | **find out how to do the docu (take a look at [[Downloads#Doc_Builder| Doc builder]]) |
*Dario | *Dario | ||
− | **find out how works 'external' (done. | + | **find out how works 'external' (done.) |
− | **create Class | + | **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= |
Latest revision as of 14:05, 1 November 2007
Contents
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
- 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
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
- find out how to do the docu (take a look at 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 here.
Team
Everyone interested in this project is welcome to join our mailinglist es-ui@origo.ethz.ch