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