~ubuntu-branches/ubuntu/saucy/lazarus/saucy

« back to all changes in this revision

Viewing changes to lcl/interfaces/carbon/carbonproc.pp

  • Committer: Package Import Robot
  • Author(s): Paul Gevers, Abou Al Montacir, Bart Martens, Paul Gevers
  • Date: 2013-06-08 14:12:17 UTC
  • mfrom: (1.1.9)
  • Revision ID: package-import@ubuntu.com-20130608141217-7k0cy9id8ifcnutc
Tags: 1.0.8+dfsg-1
[ Abou Al Montacir ]
* New upstream major release and multiple maintenace release offering many
  fixes and new features marking a new milestone for the Lazarus development
  and its stability level.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch
* LCL changes:
  - LCL is now a normal package.
      + Platform independent parts of the LCL are now in the package LCLBase
      + LCL is automatically recompiled when switching the target platform,
        unless pre-compiled binaries for this target are already installed.
      + No impact on existing projects.
      + Linker options needed by LCL are no more added to projects that do
        not use the LCL package.
  - Minor changes in LCL basic classes behaviour
      + TCustomForm.Create raises an exception if a form resource is not
        found.
      + TNotebook and TPage: a new implementation of these classes was added.
      + TDBNavigator: It is now possible to have focusable buttons by setting
        Options = [navFocusableButtons] and TabStop = True, useful for
        accessibility and for devices with neither mouse nor touch screen.
      + Names of TControlBorderSpacing.GetSideSpace and GetSpace were swapped
        and are now consistent. GetSideSpace = Around + GetSpace.
      + TForm.WindowState=wsFullscreen was added
      + TCanvas.TextFitInfo was added to calculate how many characters will
        fit into a specified Width. Useful for word-wrapping calculations.
      + TControl.GetColorResolvingParent and
        TControl.GetRGBColorResolvingParent were added, simplifying the work
        to obtain the final color of the control while resolving clDefault
        and the ParentColor.
      + LCLIntf.GetTextExtentExPoint now has a good default implementation
        which works in any platform not providing a specific implementation.
        However, Widgetset specific implementation is better, when available.
      + TTabControl was reorganized. Now it has the correct class hierarchy
        and inherits from TCustomTabControl as it should.
  - New unit in the LCL:
      + lazdialogs.pas: adds non-native versions of various native dialogs,
        for example TLazOpenDialog, TLazSaveDialog, TLazSelectDirectoryDialog.
        It is used by widgetsets which either do not have a native dialog, or
        do not wish to use it because it is limited. These dialogs can also be
        used by user applications directly.
      + lazdeviceapis.pas: offers an interface to more hardware devices such
        as the accelerometer, GPS, etc. See LazDeviceAPIs
      + lazcanvas.pas: provides a TFPImageCanvas descendent implementing
        drawing in a LCL-compatible way, but 100% in Pascal.
      + lazregions.pas. LazRegions is a wholly Pascal implementation of
        regions for canvas clipping, event clipping, finding in which control
        of a region tree one an event should reach, for drawing polygons, etc.
      + customdrawncontrols.pas, customdrawndrawers.pas,
        customdrawn_common.pas, customdrawn_android.pas and
        customdrawn_winxp.pas: are the Lazarus Custom Drawn Controls -controls
        which imitate the standard LCL ones, but with the difference that they
        are non-native and support skinning.
  - New APIs added to the LCL to improve support of accessibility software
    such as screen readers.
* IDE changes:
  - Many improvments.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/New_IDE_features_since#v1.0_.282012-08-29.29
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes#IDE_Changes
* Debugger / Editor changes:
  - Added pascal sources and breakpoints to the disassembler
  - Added threads dialog.
* Components changes:
  - TAChart: many fixes and new features
  - CodeTool: support Delphi style generics and new syntax extensions.
  - AggPas: removed to honor free licencing. (Closes: Bug#708695)
[Bart Martens]
* New debian/watch file fixing issues with upstream RC release.
[Abou Al Montacir]
* Avoid changing files in .pc hidden directory, these are used by quilt for
  internal purpose and could lead to surprises during build.
[Paul Gevers]
* Updated get-orig-source target and it compinion script orig-tar.sh so that they
  repack the source file, allowing bug 708695 to be fixed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{ $Id: carbonproc.pp 28827 2010-12-27 12:31:31Z vincents $
 
1
{ $Id: carbonproc.pp 37176 2012-05-06 07:26:39Z zeljko $
2
2
                  ----------------------------------------
3
3
                  carbonproc.pp  -  Carbon interface procs
4
4
                  ----------------------------------------
5
5
 
6
6
 @created(Wed Aug 26st WET 2005)
7
 
 @lastmod($Date: 2010-12-27 12:31:31 +0000 (Mon, 27 Dec 2010) $)
 
7
 @lastmod($Date: 2012-05-06 09:26:39 +0200 (Sun, 06 May 2012) $)
8
8
 @author(Marc Weustink <marc@@lazarus.dommelstein.net>)
9
9
 
10
10
 This unit contains procedures/functions needed for the Carbon <-> LCL interface
35
35
 
36
36
uses
37
37
  MacOSAll,
38
 
  Classes, SysUtils, Types, LCLType, LCLProc, LCLClasses, LMessages,
 
38
  Classes, SysUtils, Types, LCLType, LCLProc,
39
39
  Controls, Forms, Graphics, Math, GraphType;
40
40
 
41
41
function OSError(AResult: OSStatus; const AMethodName, ACallName: String;
648
648
 ------------------------------------------------------------------------------}
649
649
function GetCarbonThemeMetric(Metric: ThemeMetric; DefaultValue: Integer): Integer;
650
650
begin
651
 
  if OSError(GetThemeMetric(Metric, Result),
 
651
  if OSError(GetThemeMetric(Metric, Result{%H-}),
652
652
    'GetCarbonThemeMetric', 'GetThemeMetric') then Result := DefaultValue;
653
653
end;
654
654
 
701
701
  Data: Word;
702
702
  ControlSize: Integer;
703
703
begin
704
 
  FillChar(R, SizeOf(R), 0);
 
704
  FillChar(R{%H-}, SizeOf(R), 0);
705
705
  GetControlBounds(Control, R);
706
706
  if ControlHeight then ControlSize := R.Bottom - R.Top
707
707
  else ControlSize := R.Right - R.Left;
731
731
  mp    : MacOSAll.point;
732
732
begin
733
733
  Result := false;
734
 
  if CreateEvent(kCFAllocatorDefault, kEventClassControl, kEventControlHitTest, 0, 0, event) <> noErr then
 
734
  if CreateEvent(kCFAllocatorDefault, kEventClassControl, kEventControlHitTest, 0, 0, event{%H-}) <> noErr then
735
735
    Exit;
736
736
  mp.h := X;
737
737
  mp.v := Y;
814
814
    StrRange.length := CFStringGetLength(AString);
815
815
    
816
816
    CFStringGetBytes(AString, StrRange, Encoding,
817
 
      Ord('?'), False, nil, 0, StrSize);
 
817
      Ord('?'), False, nil, 0, StrSize{%H-});
818
818
    SetLength(Result, StrSize);
819
819
 
820
820
    if StrSize > 0 then
1191
1191
 ------------------------------------------------------------------------------}
1192
1192
function ColorToRGBColor(const AColor: TColor): RGBColor;
1193
1193
var
1194
 
  V: TColor;
 
1194
  V: TColorRef;
1195
1195
begin
1196
1196
  V := ColorToRGB(AColor);
1197
1197
  
1223
1223
 ------------------------------------------------------------------------------}
1224
1224
function CreateCGColor(const AColor: TColor): CGColorRef;
1225
1225
var
1226
 
  V: TColor;
 
1226
  V: TColorRef;
1227
1227
  F: Array [0..3] of Single;
1228
1228
begin
1229
1229
  V := ColorToRGB(AColor);
1294
1294
 ------------------------------------------------------------------------------}
1295
1295
function CustomControlHandler(ANextHandler: EventHandlerCallRef;
1296
1296
  AEvent: EventRef;
1297
 
  AData: Pointer): OSStatus; {$IFDEF darwin}mwpascal;{$ENDIF}
 
1297
  {%H-}AData: Pointer): OSStatus; {$IFDEF darwin}mwpascal;{$ENDIF}
1298
1298
var
1299
1299
  EventClass, EventKind: LongWord;
1300
1300
  Part: ControlPartCode;
1340
1340
  sz  : SInt16;
1341
1341
begin
1342
1342
  //Note: the GetThemeFont is deprecated in 10.5. CoreText functions should be used!
1343
 
  MacOSAll.GetThemeFont(kThemeSystemFont, GetApplicationScript, @s, sz, st);
 
1343
  MacOSAll.GetThemeFont(kThemeSystemFont, GetApplicationScript, @s, sz{%H-}, st{%H-});
1344
1344
  CarbonDefaultFont := s;
1345
1345
  CarbonDefaultFontSize := sz;
1346
1346
end;