lazarus/lcl/interfaces/carbon/carbonint.pas
andrew fc03d1600d Some 64bit changes for TWS.Create Timer
Fixed gtk2 listbox events
Partially fixed gtk2 painting issues  bug #964
Fixed bug #7067
Gtk2 Opendialogs now use GtkFileChooserDialog
Added a check for the clipboard in case it get stuck in a repeat loop
lclgtkcellrenderer now knows the itemindex to paint correctly

git-svn-id: trunk@10067 -
2006-10-15 13:27:27 +00:00

159 lines
4.4 KiB
ObjectPascal

{
/***************************************************************************
CarbonInt.pas - CarbonInterface Object
----------------------------------------
Initial Revision : Mon August 6th CST 2004
***************************************************************************/
*****************************************************************************
* *
* This file is part of the Lazarus Component Library (LCL) *
* *
* See the file COPYING.modifiedLGPL, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
}
unit CarbonInt;
{$mode objfpc}{$H+}
interface
{$ifdef Trace}
{$ASSERTIONS ON}
{$endif}
uses
// rtl+ftl
Types, Classes, SysUtils, Math, FPCAdds,
// interfacebase
InterfaceBase,
// carbon bindings
FPCMacOSAll, CarbonUtils, CarbonExtra,
// LCL
Controls, Forms, Dialogs, LCLStrConsts, LMessages, LCLProc, LCLIntf, LCLType,
GraphType, GraphMath, Graphics, Menus;
type
{ TCarbonWidgetSet }
TCarbonWidgetSet = class(TWidgetSet)
private
// Set when the QuitEventHandler terminates
FTerminating: Boolean;
fMainEventQueue: EventQueueRef;
protected
procedure PassCmdLineOptions; override;
procedure SendCheckSynchronizeMessage;
procedure OnWakeMainThread(Sender: TObject);
public
constructor Create;
destructor Destroy; override;
procedure AppInit(var ScreenInfo: TScreenInfo); override;
procedure AppRun(const ALoop: TApplicationMainLoop); override;
procedure AppWaitMessage; override;
procedure AppProcessMessages; override;
procedure AppTerminate; override;
procedure AppMinimize; override;
procedure AppBringToFront; override;
function DCGetPixel(CanvasHandle: HDC; X, Y: integer): TGraphicsColor; override;
procedure DCSetPixel(CanvasHandle: HDC; X, Y: integer; AColor: TGraphicsColor); override;
procedure DCRedraw(CanvasHandle: HDC); override;
procedure SetDesigning(AComponent: TComponent); override;
// create and destroy
function CreateComponent(Sender : TObject): THandle; override;
function CreateTimer(Interval: integer; TimerFunc: TFNTimerProc) : THandle; override;
function DestroyTimer(TimerHandle: THandle) : boolean; override;
// the winapi compatibility methods
{$I carbonwinapih.inc}
// the extra LCL interface methods
{$I carbonlclintfh.inc}
public
end;
var
CarbonWidgetSet: TCarbonWidgetSet;
implementation
uses
////////////////////////////////////////////////////
// I M P O R T A N T
////////////////////////////////////////////////////
// To get as little as possible circles,
// uncomment only those units with implementation
////////////////////////////////////////////////////
// CarbonWSActnList,
// CarbonWSArrow,
CarbonWSButtons,
// CarbonWSCalendar,
// CarbonWSCheckLst,
// CarbonWSCListBox,
// CarbonWSComCtrls,
CarbonWSControls,
// CarbonWSDbCtrls,
// CarbonWSDBGrids,
// CarbonWSDialogs,
// CarbonWSDirSel,
// CarbonWSEditBtn,
// CarbonWSExtCtrls,
// CarbonWSExtDlgs,
// CarbonWSFileCtrl,
CarbonWSForms,
// CarbonWSGrids,
// CarbonWSImgList,
// CarbonWSMaskEdit,
// CarbonWSMenus,
// CarbonWSPairSplitter,
// CarbonWSSpin,
CarbonWSStdCtrls,
// CarbonWSToolwin,
////////////////////////////////////////////////////
CarbonDef, CarbonProc,
Buttons, StdCtrls, PairSplitter, ComCtrls, CListBox, Calendar, Arrow,
Spin, CommCtrl, ExtCtrls, FileCtrl, LResources;
// the implementation of the utility methods
{$I carbonobject.inc}
// the implementation of the winapi compatibility methods
{$I carbonwinapi.inc}
// the implementation of the extra LCL interface methods
{$I carbonlclintf.inc}
procedure InternalInit;
begin
end;
procedure InternalFinal;
begin
end;
initialization
{$I carbonimages.lrs}
InternalInit;
finalization
InternalFinal;
end.