Difference between revisions of "Carbon interface internals"
From Free Pascal wiki
Jump to navigationJump to searchLine 21: | Line 21: | ||
For example TButton. | For example TButton. | ||
− | TButton is defined in lcl/buttons.pp | + | TButton is defined in lcl/buttons.pp. This is the platform independent part of the LCL, that is shown to the user. |
− | And its widgetset class in lcl/widgetset/wsbuttons.pp | + | And its widgetset class in lcl/widgetset/wsbuttons.pp. This is the platform independent base for all widgetsets (carbon, gtk, win32, ...). |
− | Its carbon interface class in lcl/interfaces/carbon/carbonwsbuttons.pp | + | Its carbon interface class in lcl/interfaces/carbon/carbonwsbuttons.pp: |
+ | |||
+ | TCarbonWSButton = class(TWSButton) | ||
+ | private | ||
+ | protected | ||
+ | public | ||
+ | class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override; | ||
+ | end; | ||
== Keys == | == Keys == |
Revision as of 20:41, 14 January 2006
This page gives an overview of the LCL carbon interface for MacOSX and will help new developers.
For installation and creating a first carbon application read first Carbon Interface.
What is already working ?
- Creating a TForm
- Creating and clicking on a TButton
- Creating TOpenGLControl with AGL context (see components/opengl/)
- Mouse events
What needs to be done next
- Create more controls (TLabel, TEdit, TCheckBox, TGroupBox)
- Keyboard events (KeyDown, KeyUp, Char)
- Resize events (when form has been resized by user)
- ShowModal (for dialogs)
How to add a new control
For example TButton.
TButton is defined in lcl/buttons.pp. This is the platform independent part of the LCL, that is shown to the user.
And its widgetset class in lcl/widgetset/wsbuttons.pp. This is the platform independent base for all widgetsets (carbon, gtk, win32, ...).
Its carbon interface class in lcl/interfaces/carbon/carbonwsbuttons.pp:
TCarbonWSButton = class(TWSButton) private protected public class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override; end;
Keys
- Apple Command key is mapped to ssCtrl due to Apple Guidelines
- Apple control key is mapped to ssMeta
- Apple option key is mapped to its inscription, i.e. ssAlt