Hi,

This question does concern an old (try of ) implementation of ATS server ( native Mac OS X font server). 

For native font server implementation in Mac OS X, Herbert Duerr ( see http://wiki.services.openoffice.org/wiki/Fonts_starting_point_and_documentation ) adviced me to use an old implementation of ATSUI server.

The initial file can be found on issue #i23183# ( http://www.openoffice.org/issues/show_bug.cgi?id=23283 ) , and after some effort, I think I have understood the logical behind all this code. 

Asap, I'll probably try to use a mix between Windows and Unix implementation and test  ... (keyboard events /management has to be completed before to really test). 
Of course, if ever I can build with my changes :-)


The current modification I did are some types modified like (copy paste from my version ), some obsolete names modified ... etc.

e.g.  (list not complete) :

 FillDXArray modified -> long* replaced with sal_Int32*

// GetNextGlyphs has been modified 
// virtual int GetNextGlyphs( int nLen, long* pGlyphs, Point& rPos, int&,
// long* pGlyphAdvances, int* pCharIndexes ) const;


// new implementation of GetNextGlyphs
// new parameters salInt32* replaces long* and pGlyphIdxAry replaces pGlyphs

...etc (a lot of other changes useless for my question).



The main problem I have is for ATSLayout constructor. ATSLayout simple inherits of SalLayout and does have a lot of similar methods, adapted to Apple API (using ATSUI functions).  


My problem is probably easy to solve, but after some days I found nothing interesting, and prefer ask : how initialize ATSLayout object ?

Currently, it's question of : ATSLayout( SalGraphicsData *pGraphicsData ) , but I found nothing in vcl I can directly use there as " SalGraphicsData ".

Does anyone have an idea of what exactly represents SalGraphicsData ? Probably a structure or a class .. but what exactly ?   

Waiting, if I follow current unx implementation, I could use :

class ATSLayout : public SalLayout
{
protected:
int mnMinCharPos;
int mnEndCharPos;
int mnLayoutFlags;
int mnUnitsPerPixel;
int mnOrientation;
mutable int     mnRefCount;
mutable Point   maDrawOffset;

... etc, like e.g. in sallayout.cxx, but a lot has to be modified in all ATSLayout methods, and I wonder if it does make sense to modify everything this way.


Thank's in advance for any help  :-)



Regards,
Eric Bachard


P.S. : for the curious, I have started a sort of documentation about vcl organisation on the wiki, and any help is welcome to fix mistakes, 
complete, add colors and informations ;-)











Reply via email to