Difference between revisions of "Mac OS X Porting - Work Areas/Todo's"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Areas and ToDo's Aqua Version)
m
Line 1: Line 1:
This page is intended to serve as a living ToDo's list for the OpenOffice.org Mac OS X port. To keep things simple it contains the ToDo's for both the X11 version and the upcoming Aqua version of OpenOffice.org for Mac OS X. The page is divided into different work areas which either assigned to a person in charge or are unassigned yet. Below each area there is a detailed list of todo's which has to be maintained by the respective people himself.
+
This page is intended to serve as a living ToDo list for the OpenOffice.org Mac OS X port. To keep things simple it contains the ToDos for both the X11 version and the upcoming Aqua version of OpenOffice.org for Mac OS X. The page is divided into different work areas which either assigned to a person in charge or are unassigned yet. Below each area there is a detailed list of todos which has to be maintained by the respective people himself.
 
Persons who are in charge of a certain area are responsible for keeping their respective part of the page up-to-date.
 
Persons who are in charge of a certain area are responsible for keeping their respective part of the page up-to-date.
  
 
If you're interested in contributing to the project please coordinate with Eric Bachard [mailto:ericb@openoffice.org]
 
If you're interested in contributing to the project please coordinate with Eric Bachard [mailto:ericb@openoffice.org]
  
== Areas and ToDo's Aqua Version ==
+
== Areas and ToDos Aqua Version ==
 
<br>
 
<br>
  
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
 
|- style="background-color:#99CCFF; font-weight:bold;"  
 
|- style="background-color:#99CCFF; font-weight:bold;"  
| Messaging || Tino Rachui [mailto: [tra@openoffice.org]
+
| Messaging || Tino Rachui [mailto:tra@openoffice.org]
 
|}
 
|}
  
Line 23: Line 23:
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
 
|- style="background-color:#99CCFF; font-weight:bold;"  
 
|- style="background-color:#99CCFF; font-weight:bold;"  
| Windowing || Tino Rachui [mailto: [tra@openoffice.org]
+
| Windowing || Tino Rachui [mailto:tra@openoffice.org]
 
|}
 
|}
  
Line 69: Line 69:
 
|}
 
|}
  
Work in progress, see : http://wiki.services.openoffice.org/wiki/Mac_OS_X_Porting_-_Native_Printing
+
Work in progress, see: [[Mac_OS_X_Porting_-_Native_Printing]]
  
Description :
+
Description:
  
'''OpenOffice.org side''' :  
+
'''OpenOffice.org side''':  
  
 
AquaSalPrinter class is located in aqua/source/gdi/salprn.cxx
 
AquaSalPrinter class is located in aqua/source/gdi/salprn.cxx
  
Headers are in :
+
Headers are in:
  vcl/inc/salinst.hxx
+
  vcl/inc/salinst.hxx  
  vcl/inc/salgdi.hxx  
+
  vcl/inc/salgdi.hxx
 
  vcl/inc/salprn.hxx
 
  vcl/inc/salprn.hxx
  
  Aqua implementation :
+
  Aqua implementation:
  aqua/inc/salprn.h (AquaSalPrinter class implementation, inherits from SalPrinter)
+
  aqua/inc/salprn.h (AquaSalPrinter class implementation, inherits from SalPrinter)
  
  
 
'''Mac OS X API side''':
 
'''Mac OS X API side''':
  
Todo : implement missing methods, using Carbon API
+
Todo: implement missing methods, using Carbon API
  
Link for Mac OS X API documentation :  
+
Link for Mac OS X API documentation:  
  
 
http://developer.apple.com/documentation/Carbon/Reference/CarbonPrintingManager_Ref/index.html
 
http://developer.apple.com/documentation/Carbon/Reference/CarbonPrintingManager_Ref/index.html
Line 127: Line 127:
 
New page has been updated.
 
New page has been updated.
  
See : http://wiki.services.openoffice.org/wiki/Native_Sound_Implementation_on_Mac_OS_X
+
See: [[Native Sound Implementation on Mac OS X]]
  
Estimation of code remaining to write : 40% ( macosxplayer.cxx mainly)
+
Estimation of code remaining to write: 40% (macosxplayer.cxx mainly)
 
+
 
+
<br>
+
  
  
Line 147: Line 144:
 
|}
 
|}
  
'''See''' : [http://wiki.services.openoffice.org/wiki/Mac_OS_X_Porting_-_Data_Acquisition Data_Acquisition on Mac OS X]
+
'''See''': [[Mac_OS_X_Porting_-_Data_Acquisition Data_Acquisition on Mac OS X]]
  
 
<br>
 
<br>
Line 164: Line 161:
 
|}
 
|}
  
salatslayout.cxx License origin is justified here : http://qa.openoffice.org/issues/show_bug.cgi?id=23283]
+
salatslayout.cxx License origin is justified here: http://qa.openoffice.org/issues/show_bug.cgi?id=23283]
  
'''OpenOffice.org side''' :  
+
'''OpenOffice.org side''':  
  
 
  1) Headers
 
  1) Headers
 
   
 
   
  1.1) '''vcl/inc/salgdi.hxx''', including definition of :
+
  1.1) '''vcl/inc/salgdi.hxx''', including definition of:
 
  SalGraphics class  
 
  SalGraphics class  
  
  1.2) '''vcl/inc/sallayout.hxx''', including definitions of :
+
  1.2) '''vcl/inc/sallayout.hxx''', including definitions of:
  classes :
+
  classes:
 
  ImplLayoutRuns
 
  ImplLayoutRuns
 
  ImplLayoutArgs
 
  ImplLayoutArgs
Line 186: Line 183:
 
   
 
   
 
  1.3) '''vcl/aqua/inc/salgdi.h''', including definitions of  
 
  1.3) '''vcl/aqua/inc/salgdi.h''', including definitions of  
 
+
  classes :  
+
  classes:  
 
  ImplMacFontData (inherits of ImplFontData)
 
  ImplMacFontData (inherits of ImplFontData)
 
   
 
   
Line 196: Line 193:
 
  2.1) vcl/aqua/source/inc/salatslayout.cxx
 
  2.1) vcl/aqua/source/inc/salatslayout.cxx
 
   
 
   
  Implements the classes :
+
  Implements the classes:
 
+
 
  ATSLayout (inherits of SalLayout)
 
  ATSLayout (inherits of SalLayout)
 
   
 
   
  existing ATSLayout methods are :
+
  existing ATSLayout methods are:
 
  bool ATSLayout::LayoutText()
 
  bool ATSLayout::LayoutText()
 
  void ATSLayout::AdjustLayout()
 
  void ATSLayout::AdjustLayout()
Line 212: Line 209:
 
  bool ATSLayout::InitGIA()
 
  bool ATSLayout::InitGIA()
  
  Other class : PolyArgs, implementing :
+
  Other class: PolyArgs, implementing:
 
  void PolyArgs::Init()
 
  void PolyArgs::Init()
 
  void PolyArgs::AddPoint()
 
  void PolyArgs::AddPoint()
Line 226: Line 223:
 
Carbon API implementation (binding) is made in salatslayout.cxx
 
Carbon API implementation (binding) is made in salatslayout.cxx
  
ATS and ATSUI starting point : http://developer.apple.com/documentation/Carbon/Conceptual/ATS_Concepts/atsfonts_intro/chapter_1_section_1.html
+
ATS and ATSUI starting point: http://developer.apple.com/documentation/Carbon/Conceptual/ATS_Concepts/atsfonts_intro/chapter_1_section_1.html
  
 
Apple's starting page leading to deeper docs: http://developer.apple.com/documentation/TextFonts/Typography-date.html
 
Apple's starting page leading to deeper docs: http://developer.apple.com/documentation/TextFonts/Typography-date.html
  
  
'''Todo-list for native font implementation :'''
+
'''Todo-list for native font implementation:'''
 
   
 
   
  - missing methods (to be implemented) :
+
  - missing methods (to be implemented):
  
 
  '''bool ATSLayout::GetGlyphOutlines()'''
 
  '''bool ATSLayout::GetGlyphOutlines()'''
Line 239: Line 236:
 
  '''ATSLayout::MoveGlyph()'''
 
  '''ATSLayout::MoveGlyph()'''
 
  '''ATSLayout::DropGlyph()'''
 
  '''ATSLayout::DropGlyph()'''
  '''ATSLayout::Simplify( )'''
+
  '''ATSLayout::Simplify()'''
  
  - Fix known bugs :
+
  - Fix known bugs:
    MultiLine does not work (writer cannot be used, because)
+
  MultiLine does not work (writer cannot be used, because)
    Bad keyboard/charset ? (missig chars)
+
  Bad keyboard/charset ? (missig chars)
    When redrawing, everything is redrawn using the most little font size -> even the dialog boxes on menu bars
+
  When redrawing, everything is redrawn using the most little font size -> even the dialog boxes on menu bars
    Bad values returned  
+
  Bad values returned  
  
 
  - Implement MultiSalLayout
 
  - Implement MultiSalLayout
  - Complete implementation  
+
  - Complete implementation
 
  - read Apple API [ Work in progress]
 
  - read Apple API [ Work in progress]
  - describe current implementation : organisation / design [work in progress]
+
  - describe current implementation: organisation / design [work in progress]
 
  - design of new implementation [FIXME] find examples
 
  - design of new implementation [FIXME] find examples
  
Estimation of code remaining to write ~40 %
+
Estimation of code remaining to write ~40 %
  
'''Done''' ( mainly Stephan Schaefer, with initial salatslayout.cxx file written by Herbert Duerr)
+
'''Done''' (mainly Stephan Schaefer, with initial salatslayout.cxx file written by Herbert Duerr)
  
 
0.4
 
0.4
 
  - adapt salatslayout.cxx to make it match with sallayout.hxx, and salgdi.hxx, saldata.hxx .etc  
 
  - adapt salatslayout.cxx to make it match with sallayout.hxx, and salgdi.hxx, saldata.hxx .etc  
  to make it build with aquavlcl01, and do some tests :
+
  to make it build with aquavlcl01, and do some tests:
  - verify this server can be initialized inside OpenOffice.org (needs a CFRunLoop working to be correctly initialized )
+
  - verify this server can be initialized inside OpenOffice.org (needs a CFRunLoop working to be correctly initialized)
 
  - run it and fix instant crashs and verity there is no freeze
 
  - run it and fix instant crashs and verity there is no freeze
  
Line 270: Line 267:
 
  - define correct naming convention
 
  - define correct naming convention
 
  - replace old SalGraphicsData object implementation (found in pre-aquavcl01 files, and now obsolete, because we won't use QDraw anymore)
 
  - replace old SalGraphicsData object implementation (found in pre-aquavcl01 files, and now obsolete, because we won't use QDraw anymore)
  - understand current font implementation ( using old salatslayout.cxx ) ( work in progress )
+
  - understand current font implementation (using old salatslayout.cxx) (work in progress)
  - analyse and describe Carbon binding in salatslayout.cxx [ 90% done]
+
  - analyse and describe Carbon binding in salatslayout.cxx (90% done)
  
  
'''Resources''' : use sample code to test/initialize ATS server ( using e.g. ATSUIDirectAccessDemo )
+
'''Resources''': use sample code to test/initialize ATS server (using e.g. ATSUIDirectAccessDemo)
  
For more informations, see : http://wiki.services.openoffice.org/wiki/Fonts_starting_point_and_documentation
+
For more informations, see: [[Fonts_starting_point_and_documentation]]
  
== Areas and ToDo's X11 Version ==
+
== Areas and ToDos X11 Version ==
  
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"
 
{| style="vertical-align:top; text-align:left; background-color:#F0F0F0;"

Revision as of 12:08, 14 October 2006

This page is intended to serve as a living ToDo list for the OpenOffice.org Mac OS X port. To keep things simple it contains the ToDos for both the X11 version and the upcoming Aqua version of OpenOffice.org for Mac OS X. The page is divided into different work areas which either assigned to a person in charge or are unassigned yet. Below each area there is a detailed list of todos which has to be maintained by the respective people himself. Persons who are in charge of a certain area are responsible for keeping their respective part of the page up-to-date.

If you're interested in contributing to the project please coordinate with Eric Bachard [1]

Areas and ToDos Aqua Version


Messaging Tino Rachui [2]
Todo Status Assigned to
Implement messaging infrastructure New Unassigned


Windowing Tino Rachui [3]
Todo Status Assigned to
Implement salframe.cxx New Unassigned


Drawing Stephan Schaefer
Todo Status Assigned to
Implement drawing support In progress Stephan Schaefer


Native Printing support Yvan BARTHÉLEMY
Todo Status Assigned to
Make some docs In progress Yvan BARTHÉLEMY
Native look & feel for Print and Print Setup New Unassigned
Panel for OpenOffice.org specific options New Unassigned
Implement native Print support New Unassigned
Implement native Print setup New Unassigned

Work in progress, see: Mac_OS_X_Porting_-_Native_Printing

Description:

OpenOffice.org side:

AquaSalPrinter class is located in aqua/source/gdi/salprn.cxx

Headers are in:

vcl/inc/salinst.hxx 
vcl/inc/salgdi.hxx  
vcl/inc/salprn.hxx
Aqua implementation:
aqua/inc/salprn.h (AquaSalPrinter class implementation, inherits from SalPrinter)


Mac OS X API side:

Todo: implement missing methods, using Carbon API

Link for Mac OS X API documentation:

http://developer.apple.com/documentation/Carbon/Reference/CarbonPrintingManager_Ref/index.html



Key input Unassigned [mailto: [???@openoffice.org]
Todo Status Assigned to
 ??? New Unassigned



Native sound support Eric Bachard [mailto: Name [4]
Todo Status Assigned to
Implement native sound support Started Eric Bachard


New page has been updated.

See: Native Sound Implementation on Mac OS X

Estimation of code remaining to write: 40% (macosxplayer.cxx mainly)


Image Acquisition Eric Bachard
Todo Status Assigned to Unassigned [mailto: [???@openoffice.org]
Implement Image Acquisition In progress Eric Bachard

See: Mac_OS_X_Porting_-_Data_Acquisition Data_Acquisition on Mac OS X



Native font support Eric Bachard [5]
Todo Status Assigned to
ATS Started Eric Bachard

salatslayout.cxx License origin is justified here: http://qa.openoffice.org/issues/show_bug.cgi?id=23283]

OpenOffice.org side:

1) Headers

1.1) vcl/inc/salgdi.hxx, including definition of:
SalGraphics class 
1.2) vcl/inc/sallayout.hxx, including definitions of:
classes:
ImplLayoutRuns
ImplLayoutArgs
SalLayout
MultiSalLayout (inherits of SalLayout)
GenericSalLayout

structures: 
struct GlyphItem


1.3) vcl/aqua/inc/salgdi.h, including definitions of 

classes: 
ImplMacFontData (inherits of ImplFontData)

AquaSalGraphics (inherits of SalGraphics, does have ATSLayout as friend class)

2) Implementation

2.1) vcl/aqua/source/inc/salatslayout.cxx

Implements the classes:

ATSLayout (inherits of SalLayout)

existing ATSLayout methods are:
bool ATSLayout::LayoutText()
void ATSLayout::AdjustLayout()
void ATSLayout::DrawText()
int ATSLayout::GetNextGlyphs()
long ATSLayout::GetTextWidth()
long ATSLayout::FillDXArray()
int ATSLayout::GetTextBreak()
void ATSLayout::GetCaretPositions()
bool ATSLayout::GetBoundRect() 
bool ATSLayout::InitGIA()
Other class: PolyArgs, implementing:
void PolyArgs::Init()
void PolyArgs::AddPoint()
void PolyArgs::ClosePolygon()
OSStatus MyATSCubicMoveToCallback()
OSStatus MyATSCubicLineToCallback()
OSStatus MyATSCubicCurveToCallback()
OSStatus MyATSCubicClosePathCallback ()

Mac OS X API side:

Carbon API implementation (binding) is made in salatslayout.cxx

ATS and ATSUI starting point: http://developer.apple.com/documentation/Carbon/Conceptual/ATS_Concepts/atsfonts_intro/chapter_1_section_1.html

Apple's starting page leading to deeper docs: http://developer.apple.com/documentation/TextFonts/Typography-date.html


Todo-list for native font implementation:

- missing methods (to be implemented):
bool ATSLayout::GetGlyphOutlines()
ATSLayout::InitFont()
ATSLayout::MoveGlyph()
ATSLayout::DropGlyph()
ATSLayout::Simplify()
- Fix known bugs:
 MultiLine does not work (writer cannot be used, because)
 Bad keyboard/charset ? (missig chars)
 When redrawing, everything is redrawn using the most little font size -> even the dialog boxes on menu bars
 Bad values returned 
- Implement MultiSalLayout
- Complete implementation  
- read Apple API [ Work in progress]
- describe current implementation: organisation / design [work in progress]
- design of new implementation [FIXME] find examples

Estimation of code remaining to write ~40 %

Done (mainly Stephan Schaefer, with initial salatslayout.cxx file written by Herbert Duerr)

0.4

- adapt salatslayout.cxx to make it match with sallayout.hxx, and salgdi.hxx, saldata.hxx .etc 
to make it build with aquavlcl01, and do some tests:
- verify this server can be initialized inside OpenOffice.org (needs a CFRunLoop working to be correctly initialized)
- run it and fix instant crashs and verity there is no freeze

0.3

- fix compilations issues
- rewrite complete salatslayout.cxx
- verify salatsfontutils.cxx definition does match with new salatslayout.cxx content
- define correct naming convention
- replace old SalGraphicsData object implementation (found in pre-aquavcl01 files, and now obsolete, because we won't use QDraw anymore)
- understand current font implementation (using old salatslayout.cxx) (work in progress)
- analyse and describe Carbon binding in salatslayout.cxx (90% done)


Resources: use sample code to test/initialize ATS server (using e.g. ATSUIDirectAccessDemo)

For more informations, see: Fonts_starting_point_and_documentation

Areas and ToDos X11 Version

Packaging
Packaging related tasks
Oliver Braun [6]
Todo Status Assigned to
Improved packaging for OOo Done Oliver Braun


Installation
Installation related tasks
Oliver Braun [7]
Todo Status Assigned to
Provide an improved installer for OOo New Oliver Braun
Error messages during installation when no X11 is installed Started (messages need to be localised and more info supplied) Unassigned
Support language pack instalation New Unassigned


Desktop Integration
Desktop integration related tasks
Oliver Braun [8]
Todo Status Assigned to
Allow opening of documents with path names that need to be escaped for shell scripts Needs Tested see [9] Shaun McDonald [10]
Save documents in ~/Documents by default New Unassigned
Use the Mac OS X key chain for document signing New Unassigned
Read proxy settings and user information from the system settings New Unassigned
Mac OS X address book integration New Unassigned
Make use of the Mac OS X spell checker New Unassigned
Improved clipboard support New Unassigned
Support for standard Mac OS X shortcuts according to HI guideline New Unassigned
Integrate native FileOpen/FileSave dialog into OOo Started Florian Heckl [11]


Printing Unassigned [mailto: Name [??@openoffice.org]
Todo Status Assigned to
Improved printing support (CUPS) Done Mox Soini, Oliver Braun
Use the native print dialog in OOo New Unassigned



Ease of use Unassigned [mailto: Name [??@openoffice.org]
Todo Status Assigned to
Reduce visible toolbars New Unassgined
Suppress icons in OOo menus by default New Unassigned
Suppress xterm window when launching OOo New Unassigned


Implement NeoLight plugin Unassigned [mailto: Name [??@openoffice.org]
Todo Status Assigned to
Implement NeoLight (spothlight plugin) in OpenOffice.org 2.0. For more informations, please have a look at [12] New Unassigned


Assurance Quality and Mac OS X port


Mac OS X QA unassigned
Todo Status Assigned to
Collect informations and manage Mac OS X QA on the wiki New Unassigned


Personal tools