VCL Aqua Port

Functional Groups And Corresponding Methods. Contents .... optimize Begin/EndGraphics – ok, except drawing modes are not supported yet. 2.2 Clipping.
167KB taille 7 téléchargements 313 vues
VCL Aqua Port Functional Groups And Corresponding Methods

Contents 1 Graphics primitives................................................................................................................................1 1.1 Pixel (read/write)............................................................................................................................1 1.2 Line.................................................................................................................................................1 1.3 Rectangle........................................................................................................................................1 1.4 Polygon...........................................................................................................................................1 1.5 Beziers.............................................................................................................................................1 1.6 Bitmap (read/write, support masks)...............................................................................................1 1.7 Font/text handling...........................................................................................................................1 1.8 Native Widget Rendering...............................................................................................................2 2 Graphics functionality (SalGraphics).....................................................................................................2 2.1 Graphics context.............................................................................................................................2 2.2 Clipping..........................................................................................................................................2 2.3 Colors (line/fill)..............................................................................................................................2 2.4 Drawing modes (XOR, ROP).........................................................................................................2 3 Virtual devices (SalVirtualDevice)........................................................................................................2 4 Event loop (SalInstance)........................................................................................................................2 5 Window handling (SalFrame)................................................................................................................2 6 Printing (SalPrinter/SalInfoPrinter).......................................................................................................3 7 Menu (SalMenu).....................................................................................................................................3

1 Graphics primitives Interface

Class

Header

SalGraphics

inc/salgraphics.hxx

Implementation AquaSalGraphics

1.1 Pixel (read/write) void drawPixel(x, y) - ok void drawPixel(x, y, color) – ok SalColor getPixel(x, y) Do we need it ?

1.2 Line void drawLine(x1, y1, x2, y2) - ok

1.3 Rectangle void drawRect(x, y, width, height) - ok

1.4 Polygon void drawPolyLine(nPoints, ) ok

aqua/inc/salgdi.h

Source

aqua/source/gdi/salgdi.cxx

void drawPolygon() ok void drawPolyPolygon()

ok

1.5 Beziers Nothing ?

1.6 Bitmap (read/write, support masks) copyArea

ok

drawBitmap

partially ok ?

drawMask

ok

getBitmap

ok

1.7 Invert In AquaSalGraphics : invert( long nX, long nY, long nWidth, long nHeight, SalInvert nFlags ) ok ( maybe verify SAL_INVERT_TRACKFRAME ) invert( ULONG nPoints, const SalPoint* pPtAry, SalInvert nSalFlags ) Not OK

1.8 Font/text handling Font Selection - ongoing Text Layout (ATSUI) – ongoing GetFontMetric GetKernPairs GetGlyphBoundRect GetGlyphOutline

1.9 Native Widget Rendering

Pushbutton RadioButton CheckBox ComboBox EditBox EditBoxNoborder MultiLineEditBox Listbox SpinBox SpinButton Tab_Item Tab_Pane Tab_Body Scrollbar GroupBox FixedLine FixedBorder Toolbar MenuBar StatusBar Tooltip

Implemented Tested Issues X X X HIView / No text inside yet

Don't know

? ? Appearance only Buggy ? Buggy ? Works Works Works X ? ? ? Needed ? Works ? Works

2 Graphics functionality (SalGraphics) 2.1 Graphics context – –

maintain state optimize Begin/EndGraphics – ok, except drawing modes are not supported yet

2.2 Clipping Looks ok, but why clipping in AquaSalGraphics class and one in Aquasalframe class ?

2.3 Colors (line/fill) ok

2.4 Drawing modes (XOR, ROP) Needed ? ( since invert() works )

2.5 Get Device Resolution/Bitcount void AquaSalGraphics::GetResolution( long& rDPIX, long& rDPIY ) USHORT AquaSalGraphics::GetBitCount()

?

?

3 Virtual devices (SalVirtualDevice) –

bitblt

Ok since isOffscreen works

4 Event loop (SalInstance) – –

threading support (yield mutex) - ok timer - ok

5 Window handling (SalFrame) –

– –





– –

– – –

To be discussed

window creation – application windows - ok – dialogs - ? Ismael proposed utility windows – floating windows - ok window set size/position - ok window display – show/hide – totop – activate – enable/disable – fullscreen - ok – window state resources – mouse pointer ok – icons ok keyboard – key names – input language system integration (read settings: colors, fonts, etc.) - AquaSalFrame::UpdateSettings() notifications – focus change – window activation – window closing – window paint - ok – window resize - ok – window move pb : listboxes do not close when we click on window header – mouse enter/leave – mouse – move – drag – buttons - ok – wheel – key input ok – input language change – input context/extended key input (IME) – system settings change partial ( arrows together or separated, from (system preferences ) – user events – menu messages - ongoing reparent system child windows (SalObject) screen – size – multi monitor

6 Printing (SalPrinter/SalInfoPrinter) – – – –

printer list/default printer device capabilities start/end pages and print jobs print dialog

7 Menu (SalMenu) – –

Activation – ongoing items - ongoing – states – accelerators – submenus

Pb : every windows does own its own menu -> menu can disappear