Multi screen support

From EiffelStudio: an EiffelSoftware project
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Overview

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

Eiffel Studio

  • I'll give you here a step for step instruction at how I got a vision2 project to work under windows

Download

MS Platform SDK Microsoft .NET Framework Version 2.0 Redistributable Package (x86) .NET 2.0 SDK for x86

How I chose the Directories (just change everywhere I use them adequatly) =

  • C:\Eiffel57\ - Eiffel instal directory
  • C:\Eiffel57\soft-arch\ - svn checkout
  • C:\Program Files\Microsoft.NET\ - Microsoft.NET Framework
  • C:\Program Files\Microsoft Platform SDK\ - Microsoft Platform SDK
  • C:\cygwin\ - Cygwin Installation

needed SVN checkout

Install Gobo

DOS

cd %EIFFEL_SRC%\library
tar xvfz %EIFFEL_SRC%\free_add_ons\gobo\gobo_34_win.tgz

Bash

cd $EIFFEL_SRC/library
tar xvzf $EIFFEL_SRC/free_add_ons/gobo/gobo_34_win.tgz

set Environment Variables

set PATH=C:\Programme\Microsoft.NET\SDK\v2.0\Bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Programme\Microsoft Platform SDK\bin;C:\Programme\Microsoft Visual Studio 8\VC\bin;C:\Programme\Microsoft Visual Studio 8\Common7\IDE;C:\Programme\Microsoft Visual Studio 8\VC\vcpackages;C:\Programme\Microsoft Platform SDK\Bin;C:\Programme\Microsoft Visual Studio 8\VC\bin;%PATH%;C:\cygwin\bin

set INCLUDE=C:\Programme\Microsoft.NET\SDK\v2.0\include;C:\Programme\Microsoft Platform SDK\Include;C:\Programme\Microsoft Platform SDK\Include\crt;C:\Programme\Microsoft Platform SDK\Include\crt\sys;C:\Programme\Microsoft Platform SDK\Include\mfc;C:\Programme\Microsoft Platform SDK\Include\atl;C:\Programme\Microsoft Visual Studio 8\VC\include

set LIB=C:\Programme\Microsoft.NET\SDK\v2.0\Lib;C:\Programme\Microsoft Platform SDK\Lib;C:\Programme\Microsoft Visual Studio 8\VC\lib;


set ISE_EIFFEL=C:\Eiffel57\

This last Variables I'm not sure are needed...

set EIFFEL_SRC=C:\Eiffel57\soft-arch\

set ISE_PLATFORM=windows

set ISE_C_COMPILER=msc

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


  • Gdk - Resources:
    • class GdkDisplay
    • class GdkScreen


  • WEL - Resources:
    • NONE


  • Win32 API - Resources:
    • look at the platform SDK under 'Win32 API'
    • Wel uses a loopback function to get access to all fonts (it's pretty much the same that we have to do)
      • 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

class EV_SCREEN:

  • allscreenslist [EV_MULTISCREEN]
  • primaryscreen : EV_MULTISCREEN

class EV_MULTISCREEN (inherits EV_SCREEN):

  • create class
  • redefine inherited features for mutliscreen as needed

class EV_SCREEN_IMP (inherits EV_SCREEN_I):

  • add multiscreen features as needed

class EV_SCREEN_I:

  • add new deferred features from EV_SCREEN_IMP

class GDK_EXTERNALS:

  • add multiscreen features as needed

Milestones

M1: June 1st

  • needed gdk features
  • decide upon implementation

M2: May ???

  • To be completed by the team

To do

  • Fabio:
    • find needed WEL features (and underlying routines - WIN32 API)
    • create svn-dir (done. see resources)
    • look at Win32API and get dummy prog to work (see resources)


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


  • Pawi
    • find out how to do the docu


  • Dario
    • find out how works 'external' (done. works under linux)
    • create Class EV_MULTISCREEN (inherits EV_SCREEN)
    • look at Win32API and get dummy prog to work (see resources)

Team

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