lazarus/lcl/interfaces/win32/win32int.pp
2005-05-05 14:51:05 +00:00

744 lines
24 KiB
ObjectPascal

{ $Id$ }
{
/***************************************************************************
WIN32INT.pp - Win32Interface Object
-------------------
***************************************************************************/
*****************************************************************************
* *
* This file is part of the Lazarus Component Library (LCL) *
* *
* See the file COPYING.LCL, 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 Win32Int;
{$mode objfpc}{$H+}
Interface
{$IFDEF Trace}
{$ASSERTIONS ON}
{$ENDIF}
// defining the following will print all messages as they are being handled
// valuable for investigation of message trees / interrelations
{ $define MSG_DEBUG}
{
When editing this unit list, be sure to keep Windows listed first to ensure
successful compilation.
}
Uses
Windows, Classes, ComCtrls, Controls, Buttons, Dialogs, DynHashArray,
ExtCtrls, Forms, GraphMath, GraphType, InterfaceBase, LCLIntf, LCLType,
LMessages, StdCtrls, SysUtils, Win32Def, Graphics, Menus;
const
IDC_ARROW = MakeIntResource(32512);
IDC_IBEAM = MakeIntResource(32513);
IDC_WAIT = MakeIntResource(32514);
IDC_CROSS = MakeIntResource(32515);
IDC_UPARROW = MakeIntResource(32516);
IDC_SIZE = MakeIntResource(32640);
IDC_ICON = MakeIntResource(32641);
IDC_SIZENWSE = MakeIntResource(32642);
IDC_SIZENESW = MakeIntResource(32643);
IDC_SIZEWE = MakeIntResource(32644);
IDC_SIZENS = MakeIntResource(32645);
IDC_SIZEALL = MakeIntResource(32646);
IDC_NO = MakeIntResource(32648);
IDC_HAND = MakeIntResource(32649);
IDC_APPSTARTING = MakeIntResource(32650);
IDC_HELP = MakeIntResource(32651);
{
These are add-ons, don't exist in windows itself!
IDC_NODROP = MakeIntResource(32767);
IDC_DRAG = MakeIntResource(32766);
IDC_HSPLIT = MakeIntResource(32765);
IDC_VSPLIT = MakeIntResource(32764);
IDC_MULTIDRAG = MakeIntResource(32763);
IDC_SQLWAIT = MakeIntResource(32762);
IDC_HANDPT = MakeIntResource(32761);
}
IDC_NODROP = IDC_NO;
IDC_DRAG = IDC_ARROW;
IDC_HSPLIT = IDC_SIZEWE;
IDC_VSPLIT = IDC_SIZENS;
IDC_MULTIDRAG = IDC_ARROW;
IDC_SQLWAIT = IDC_WAIT;
IDC_HANDPT = IDC_HAND;
LclCursorToWin32CursorMap: array[crLow..crHigh] of PChar = (
// uni-direction cursors are mapped to bidirection win32 cursors
IDC_SIZENWSE, IDC_SIZENS, IDC_SIZENESW, IDC_SIZEWE, IDC_SIZEWE,
IDC_SIZENESW, IDC_SIZENS, IDC_SIZENWSE, IDC_SIZEALL, IDC_HANDPT, IDC_HELP,
IDC_APPSTARTING, IDC_NO, IDC_SQLWAIT, IDC_MULTIDRAG, IDC_VSPLIT,
IDC_HSPLIT, IDC_NODROP, IDC_DRAG, IDC_WAIT, IDC_UPARROW, IDC_SIZEWE,
IDC_SIZENWSE, IDC_SIZENS, IDC_SIZENESW, IDC_SIZE, IDC_IBEAM, IDC_CROSS,
IDC_ARROW, IDC_ARROW, IDC_ARROW);
{ month picker, date picker, time picker, updown }
ICC_DATE_CLASSES = $00000100;
Type
PInitCommonControlsEx = ^TInitCommonControlsEx;
TInitCommonControlsEx = packed record
dwSize: dword;
dwICC: dword;
end;
{ Win32 interface-object class }
TWin32WidgetSet = Class(TWidgetSet)
Private
// The parent of all windows, represents the button of the taskbar
// This window is also the owner of the clipboard.
// Assoc. windowproc also acts as handler for popup menus
FAppHandle: HWND;
FMetrics: TNonClientMetrics;
FMetricsFailed: Boolean;
FStockNullBrush: HBRUSH;
FStockBlackBrush: HBRUSH;
FStockLtGrayBrush: HBRUSH;
FStockGrayBrush: HBRUSH;
FStockDkGrayBrush: HBRUSH;
FStockWhiteBrush: HBRUSH;
FStatusFont: HFONT;
FMessageFont: HFONT;
FThemesActive: boolean;
FThemeLibrary: HMODULE;
IsThemeActive: function: LongBool; stdcall;
IsAppThemed: function: LongBool; stdcall;
InitCommonControlsEx: function(ICC: PInitCommonControlsEx): LongBool; stdcall;
Procedure AssignSelf(Window: HWnd; Data: Pointer);
Procedure AllocAndCopy(const BitmapInfo: Windows.TBitmap; const SrcRect: TRect; var Data: PByte; var Size: Cardinal);
procedure FillRawImageDescriptionColors(Desc: PRawImageDescription);
procedure FillRawImageDescription(const BitmapInfo: Windows.TBitmap;
Desc: PRawImageDescription);
Function WinRegister: Boolean;
Procedure PaintPixmap(Surface: TObject; PixmapData: Pointer);
Procedure NormalizeIconName(Var IconName: String);
Procedure NormalizeIconName(Var IconName: PChar);
Public
{ Creates a callback of Lazarus message Msg for Sender }
Procedure SetCallback(Msg: LongInt; Sender: TObject); virtual;
{ Removes all callbacks for Sender }
Procedure RemoveCallbacks(Sender: TObject); virtual;
{ Constructor of the class }
Constructor Create;
{ Destructor of the class }
Destructor Destroy; Override;
{ Initialize the API }
procedure AppInit(var ScreenInfo: TScreenInfo); override;
procedure AppMinimize; override;
procedure AppBringToFront; override;
procedure DCSetPixel(CanvasHandle: HDC; X, Y: integer; AColor: TGraphicsColor); override;
function DCGetPixel(CanvasHandle: HDC; X, Y: integer): TGraphicsColor; override;
procedure DCRedraw(CanvasHandle: HDC); override;
procedure SetDesigning(AComponent: TComponent); override;
Procedure HandleEvents; Override;
Procedure WaitMessage; Override;
Procedure AppTerminate; Override;
procedure ShowHide(Sender: TObject);
Function InitHintFont(HintFont: TObject): Boolean; Override;
Function RecreateWnd(Sender: TWinControl): Integer; virtual;
Procedure AttachMenuToWindow(AMenuObject: TComponent); Override;
procedure UpdateThemesActive;
// procedures needed by interface methods
procedure ResizeChild(Sender: TWinControl; Left, Top, Width, Height: Integer);
// create and destroy
function CreateComponent(Sender : TObject): THandle; override;
function CreateTimer(Interval: integer; TimerFunc: TFNTimerProc) : integer; override;
function DestroyTimer(TimerHandle: Integer) : boolean; override;
// thread synchronize support
procedure HandleWakeMainThread(Sender: TObject);
{$I win32winapih.inc}
{$I win32lclintfh.inc}
property AppHandle: HWND read FAppHandle;
property MessageFont: HFONT read FMessageFont;
property ThemesActive: boolean read FThemesActive;
End;
{$I win32listslh.inc}
const
BOOL_RESULT: Array[Boolean] Of String = ('False', 'True');
ClsName: array[0..6] of char = 'Window'#0;
EditClsName: array[0..4] of char = 'Edit'#0;
ButtonClsName: array[0..6] of char = 'Button'#0;
ComboboxClsName: array[0..8] of char = 'ComboBox'#0;
TabControlClsName: array[0..15] of char = 'SysTabControl32'#0;
{ export for widgetset implementation }
function WindowProc(Window: HWnd; Msg: UInt; WParam: Windows.WParam;
LParam: Windows.LParam): LResult; stdcall;
function ComboBoxWindowProc(Window: HWnd; Msg: UInt; WParam: Windows.WParam;
LParam: Windows.LParam): LResult; stdcall;
function CallDefaultWindowProc(Window: HWnd; Msg: UInt; WParam: Windows.WParam;
LParam: Windows.LParam): LResult;
Implementation
Uses
Win32Proc,
////////////////////////////////////////////////////
// I M P O R T A N T
////////////////////////////////////////////////////
// To get as litle as posible circles,
// uncomment only those units with implementation
////////////////////////////////////////////////////
// Win32WSActnList,
Win32WSArrow,
Win32WSButtons,
Win32WSCalendar,
Win32WSCheckLst,
// Win32WSCListBox,
Win32WSComCtrls,
Win32WSControls,
// Win32WSDbCtrls,
// Win32WSDBGrids,
Win32WSDialogs,
// Win32WSDirSel,
// Win32WSEditBtn,
Win32WSExtCtrls,
// Win32WSExtDlgs,
// Win32WSFileCtrl,
Win32WSForms,
// Win32WSGrids,
// Win32WSImgList,
// Win32WSMaskEdit,
Win32WSMenus,
// Win32WSPairSplitter,
Win32WSSpin,
Win32WSStdCtrls,
// Win32WSToolwin,
////////////////////////////////////////////////////
Arrow, Calendar, CListBox, Spin, CheckLst, WinExt, LclProc;
type
{ Linked list of objects for events }
PLazObject = ^TLazObject;
TLazObject = Record
Parent: TObject;
Messages: TList;
Next: PLazObject;
End;
const
// needs to move
MCM_FIRST = $1000;
MCM_GETMINREQRECT = MCM_FIRST + 9;
type
TMouseDownFocusStatus = (mfNone, mfFocusSense, mfFocusChanged);
var
MouseDownTime: dword;
MouseDownWindow: HWND;
MouseDownFocusWindow: HWND;
MouseDownFocusStatus: TMouseDownFocusStatus;
OnClipBoardRequest: TClipboardRequestEvent;
{$I win32listsl.inc}
{$I win32callback.inc}
{$I win32object.inc}
{$I win32winapi.inc}
{$I win32lclintf.inc}
Initialization
Assert(False, 'Trace:win32int.pp - Initialization');
{$ifdef MSG_DEBUG}
MessageStackDepth := '';
{$endif}
EraseBkgndStack := 0;
{ initialize mousedownclick to far before double click time }
MouseDownFocusStatus := mfNone;
MouseDownTime := GetTickCount - 5000;
MouseDownWindow := 0;
{$ifndef VER1_0}
{ TThread.Synchronize support }
{$ifdef ver1_9_8}
SynchronizeMethodProc := @PrepareSynchronize;
{$endif}
{$endif}
Finalization
Assert(False, 'Trace:win32int.pp - Finalization');
End.
{ =============================================================================
$Log$
Revision 1.139 2005/05/05 14:51:05 micha
better looking arrow, not ideal, but better anyway (fixes 760)
Revision 1.138 2005/05/05 12:57:43 micha
improve click-focus-click implies doubleclick heuristic to check for focus change within handling of mouseclick
Revision 1.137 2005/04/29 11:53:25 micha
send double click to window, if pattern mouse-click, focus-change, mouse-click detected (fixes bug 794)
Revision 1.136 2005/04/07 15:52:31 micha
implement Ctrl+A to select all text for edit controls
Revision 1.135 2005/03/03 13:13:51 vincents
fixed thread synchronize support for fpc 1.9.9 using WakeMainThread
Revision 1.134 2005/02/23 01:12:47 marc
+ Added RemoveProp winapi call
* Some maintenace on winapi/lclintf files
Revision 1.133 2005/02/10 21:07:29 micha
let general WindowProc also handle childedit of combobox, reduces code duplication, implements doubleclick for combobox
Revision 1.132 2005/02/07 16:19:14 micha
force default width and height for calendar control
Revision 1.131 2005/01/15 10:09:23 micha
fix bug 558: title bar redraw (win32)
USE_SYNCHRONIZE enabled per default for 1.9.x
Revision 1.130 2005/01/14 12:16:39 vincents
added elements to LclCursorToWin32CursorMap for new crXXX constants
Revision 1.129 2004/12/27 10:18:21 micha
implement support for tthread.synchronize
Revision 1.128 2004/11/04 16:57:31 micha
remove obsolete and unused method twin32widgetset.settext
Revision 1.127 2004/10/29 09:52:08 micha
fix crash on showing tabpage
fix painting of radiobutton in groupbox (non-tabpage-parent)
Revision 1.126 2004/10/28 21:00:56 micha
convert GetProp and SetProp usage to one Atom pointing to a record of fields
Revision 1.125 2004/10/28 14:17:18 micha
remove obsolete message event array
Revision 1.124 2004/10/28 07:43:29 micha
experiment: use CS_SAVEBITS class style on tabpages to reduce flickering
Revision 1.123 2004/10/27 20:58:58 micha
fix winxp theming for tabcontrols (shaded background)
Revision 1.122 2004/10/16 10:17:21 micha
remove statusbar helper methods from general widgetset object
Revision 1.121 2004/10/15 09:51:09 micha
splitup of CreateComponent to widgetset CreateHandle methods
Revision 1.120 2004/10/06 10:52:46 micha
split up common dialogs code
Revision 1.119 2004/09/24 21:34:14 micha
convert LM_CREATE message to interface methods
remove SendMsgToInterface, CNSendMessage and related methods
remove TWidgetSet.IntSendMessage3; all LCL to interface messages have been converted
Revision 1.118 2004/09/24 14:50:57 micha
convert LM_SETDESIGNING message to TWidgetSet method
Revision 1.117 2004/09/24 07:52:35 micha
convert LM_SETPROPERTIES message to interface method for TCustomTrackBar
remove message LM_SETPROPERTIES, conversion done
Revision 1.116 2004/09/22 14:50:18 micha
convert LM_SETPROPERTIES message for tcustomlabel to interface methods
Revision 1.115 2004/09/19 18:50:28 micha
convert LM_SETVALUE message to interface methods
Revision 1.114 2004/09/18 17:07:58 micha
convert LM_GETVALUE message to interface method
Revision 1.113 2004/09/18 10:52:48 micha
convert LM_SCREENINIT message to interface method (integrated with TWidgetSet.AppInit(var ScreenInfo)
Revision 1.112 2004/09/15 17:21:22 micha
convert LM_GETITEMINDEX and LM_SETITEMINDEX messages to interface methods
Revision 1.111 2004/09/14 10:06:26 micha
convert LM_REDRAW message to interface method (in twidgetset)
Revision 1.110 2004/09/13 19:57:30 micha
convert LM_SHOWTABS message to interface method
Revision 1.109 2004/09/13 19:06:04 micha
convert LM_ADDPAGE and LM_REMOVEPAGE messages to new interface methods
Revision 1.108 2004/09/13 13:13:46 micha
convert LM_SHOWMODAL to interface methods
Revision 1.107 2004/09/12 19:50:36 micha
convert LM_SETSIZE message to new interface method
Revision 1.106 2004/09/12 13:11:50 micha
convert LM_GETPIXEL and LM_SETPIXEL to interface methods (of twidgetset, DCGetPixel and DCSetPixel)
Revision 1.105 2004/09/11 13:38:37 micha
convert LM_BRINGTOFRONT message to interface method
NOTE: was only used for tapplication, not from other controls
Revision 1.104 2004/09/11 13:06:49 micha
convert LM_ADDCHILD message to interface method
Revision 1.103 2004/09/10 20:19:13 micha
convert LM_CLB_G/SETCHECKED to interface methods
Revision 1.102 2004/09/10 18:58:22 micha
convert LM_ATTACHMENU to interface method
Revision 1.101 2004/09/10 14:38:29 micha
convert lm_gettext to new interface methods
remove lm_settext replacement settext methods in twidgetsets
Revision 1.100 2004/09/10 09:43:13 micha
convert LM_SETLABEL message to interface methods
Revision 1.99 2004/09/08 20:47:17 micha
convert LM_SHOWHIDE message to new intf method TWSWinControl.ShowHide
Revision 1.98 2004/09/08 19:09:34 micha
convert LM_SETCOLOR message to new intf method TWSWinControl.SetColor
Revision 1.97 2004/09/07 10:26:17 micha
fix logs to get rid of comment level 2 warning
Revision 1.96 2004/09/07 10:18:10 micha
fix win32 interface, remove lm_setlimittext (obsolete)
Revision 1.95 2004/09/07 09:44:46 micha
convert lcl messages to new interface using methods: LM_G/SETSELSTART, LM_G/SETSELLEN, LM_G/SETLIMITTEXT
Revision 1.94 2004/08/27 08:55:23 micha
implement tapplication.minimize for win32, stub for gtk
Revision 1.93 2004/08/25 15:04:44 micha
use new lcl interface methods instead of messages (for win32; twsbitbtn)
Revision 1.92 2004/08/18 09:31:21 mattias
removed obsolete unit vclglobals
Revision 1.91 2004/07/15 10:43:39 mattias
added TCustomButton, TCustomBitBtn, TCustomSpeedButton
Revision 1.90 2004/07/11 17:20:47 marc
* Implemented most of TListColoum/Item in the Ws for gtk and win32
Revision 1.89 2004/06/30 20:59:11 micha
initialize common controls: date picker
Revision 1.88 2004/06/29 08:03:08 micha
fix showtabs for win32 interface
Revision 1.87 2004/06/20 20:36:55 micha
remove old obsolete/commented toolbutton code
rename lazarusform classname to window, because we use it for panels, notebookpages, etc too
Revision 1.86 2004/06/18 20:47:34 vincents
fixed pasting from clipboard
Revision 1.85 2004/06/18 19:55:43 micha
fix xp themes drawing image on bitbtn
Revision 1.84 2004/06/13 14:32:15 micha
fix cursors to use what's available
Revision 1.83 2004/06/10 22:07:58 vincents
listbox style changes are notified to the widgetset
Revision 1.82 2004/06/10 18:14:09 vincents
converted win32proc.inc to unit
Revision 1.81 2004/06/09 20:51:45 vincents
implemented basic clipboard support for win32
Revision 1.80 2004/05/21 09:03:55 micha
implement new borderstyle
- centralize to twincontrol (protected)
- public expose at tcustomcontrol to let interface access it
Revision 1.79 2004/05/14 17:48:39 micha
fix itemheight of listbox, handle measureitem message
Revision 1.78 2004/05/12 09:46:25 micha
fix toolbar buttons by handling them as customcontrols
remove handledialogmessage, now handled in lcl
Revision 1.77 2004/04/11 10:19:28 micha
cursor management updated:
- lcl notifies interface via WSControl.SetCursor of changes
- fix win32 interface to respond to wm_setcursor callback and set correct cursor
Revision 1.76 2004/04/10 17:54:52 micha
- added: [win32] mousewheel default handler sends scrollbar messages
- fixed: lmsetcursor; partial todo
Revision 1.75 2004/03/26 21:20:54 vincents
Fixed line endings
Revision 1.74 2004/03/19 00:53:34 marc
* Removed all ComponentCreateHandle routines
Revision 1.73 2004/03/17 19:59:56 marc
* Fixes some typos and changes uses clause cases
Revision 1.72 2004/03/17 00:34:37 marc
* Interface reconstruction. Created skeleton units, classes and wscontrols
Revision 1.71 2004/03/05 01:04:21 marc
* Renamed TWin32Object to TWin32WidgetSet
Revision 1.70 2004/03/05 00:14:02 marc
* Renamed TInterfaceBase to TWidgetSet
Revision 1.69 2004/02/27 00:42:41 marc
* Interface CreateComponent splitup
* Implemented CreateButtonHandle on GTK interface
on win32 interface it still needs to be done
* Changed ApiWizz to support multilines and more interfaces
Revision 1.68 2004/02/23 08:19:04 micha
revert intf split
Revision 1.66 2004/02/21 13:35:15 micha
fixed: name clash SetCursor (message LM_SETCURSOR), and inherited SetCursor (winapi)
Revision 1.65 2004/01/12 08:36:34 micha
statusbar interface dependent reimplementation (from vincent)
Revision 1.64 2003/12/27 16:47:18 micha
fix dialogs owner handle, fixes focusing issue
Revision 1.63 2003/12/19 18:18:17 micha
fix window activation z-order
Revision 1.62 2003/12/18 10:17:00 micha
remove non-useful variable wndlist (thx vincent)
Revision 1.61 2003/12/18 08:51:01 micha
fix accelerators: now registered per window
Revision 1.60 2003/12/15 21:57:16 micha
checklistbox, implement object+checked; from vincent
Revision 1.59 2003/12/14 19:18:04 micha
hint fixes: parentfont, font itself, showing/hiding + more
Revision 1.58 2003/12/13 19:44:42 micha
hintwindow, color, rectangle size fixes
Revision 1.57 2003/11/27 23:02:30 mattias
removed menutype.pas
Revision 1.56 2003/11/26 21:55:15 mattias
fixed win32 TBaseMenuitem
Revision 1.55 2003/11/26 00:23:47 marc
* implemented new LCL(check|enable)Menuitem functions
* introduced the lclintf inc files to win32
Revision 1.54 2003/11/25 21:20:38 micha
implement tchecklistbox
Revision 1.53 2003/11/25 14:21:28 micha
new api lclenable,checkmenuitem according to list
Revision 1.52 2003/11/21 20:32:01 micha
cleanups; wm_hscroll/wm_vscroll fix
Revision 1.51 2003/11/14 20:23:31 micha
fpimage fixes
Revision 1.50 2003/11/10 16:15:32 micha
cleanups; win32 fpimage support
Revision 1.49 2003/11/08 17:41:03 micha
compiler warning cleanups
Revision 1.48 2003/10/28 14:25:37 mattias
fixed unit circle
Revision 1.47 2003/10/26 17:34:41 micha
new interface method to attach a menu to window
Revision 1.46 2003/10/23 07:45:49 micha
cleanups; single parent window (single taskbar button)
Revision 1.45 2003/10/21 15:06:27 micha
spinedit fix; variables cleanup
Revision 1.44 2003/09/30 13:05:59 mattias
removed FMainForm by Micha
Revision 1.43 2003/09/27 09:52:44 mattias
TScrollBox for win32 intf from Karl
Revision 1.42 2003/09/20 13:27:49 mattias
varois improvements for ParentColor from Micha
Revision 1.41 2003/09/18 09:21:03 mattias
renamed LCLLinux to LCLIntf
Revision 1.40 2003/09/14 09:43:45 mattias
fixed common dialogs from Karl
Revision 1.39 2003/09/08 13:24:17 mattias
removed class function
Revision 1.38 2003/09/08 12:21:48 mattias
added fpImage reader/writer hooks to TBitmap
Revision 1.37 2003/08/28 09:10:01 mattias
listbox and comboboxes now set sort and selection at handle creation
Revision 1.36 2003/08/27 09:33:26 mattias
implements SET_LABEL from Micha
Revision 1.35 2003/08/26 08:12:33 mattias
applied listbox/combobox patch from Karl
Revision 1.34 2003/08/26 07:04:04 mattias
fixed win32int
Revision 1.33 2003/08/21 06:52:47 mattias
size fixes from Karl
Revision 1.32 2003/08/17 12:51:35 mattias
added directory selection dialog from Vincent
Revision 1.31 2003/08/17 12:47:53 mattias
fixed mem leak
Revision 1.30 2003/08/17 12:26:00 mattias
fixed parts of the win32 intf size system
Revision 1.29 2003/03/13 19:57:38 mattias
added identcompletion context information and fixed win32 intf
Revision 1.28 2003/03/11 07:46:44 mattias
more localization for gtk- and win32-interface and lcl
Revision 1.27 2003/01/01 10:46:59 mattias
fixes for win32 listbox/combobox from Karl Brandt
Revision 1.26 2002/12/28 09:42:12 mattias
toolbutton patch from Martin Smat
Revision 1.25 2002/12/16 09:02:27 mattias
applied win32 notebook patch from Vincent
Revision 1.24 2002/02/09 01:48:23 mattias
renamed TinterfaceObject.Init to AppInit and TWinControls can now contain childs in gtk
Revision 1.23 2002/12/04 20:39:16 mattias
patch from Vincent: clean ups and fixed crash on destroying window
Revision 1.22 2002/12/03 09:15:15 mattias
cleaned up
Revision 1.21 2002/11/26 20:51:05 mattias
applied clipbrd patch from Vincent
Revision 1.20 2002/11/23 13:48:48 mattias
added Timer patch from Vincent Snijders
Revision 1.19 2002/11/15 23:43:54 mattias
applied patch from Karl Brandt
Revision 1.18 2002/10/27 19:59:03 lazarus
AJ: fixed compiling
Revision 1.17 2002/10/26 15:15:55 lazarus
MG: broke LCL<->interface circles
Revision 1.16 2002/08/08 18:05:48 lazarus
MG: added graphics extensions from Andrew Johnson
Revision 1.15 2002/05/31 13:10:49 lazarus
Keith: Code cleanup.
Revision 1.14 2002/05/10 07:43:48 lazarus
MG: updated licenses
Revision 1.13 2002/04/03 03:41:29 lazarus
Keith:
* Removed more obsolete code
* Compiles again!
Revision 1.12 2002/04/03 01:52:42 lazarus
Keith: Removed obsolete code, in preperation of a pending TWin32Object cleanup
Revision 1.11 2002/02/07 08:35:12 lazarus
Keith: Fixed persistent label captions and a few less noticable things
Revision 1.10 2002/02/03 06:06:25 lazarus
Keith: Fixed Win32 compilation problems
Revision 1.9 2002/02/01 10:13:09 lazarus
Keith: Fixes for Win32
Revision 1.8 2002/01/31 09:32:07 lazarus
Keith:
* Open and save dialogs can now coexist in apps (however, only one of each type of common dialog can be used per app :( )
* Fixed make all
* Fixed crash in Windows 98/ME
Revision 1.7 2002/01/25 19:42:56 lazarus
Keith: Improved events and common dialogs on Win32
Revision 1.6 2002/01/17 03:17:44 lazarus
Keith: Fixed TCustomPage creation
Revision 1.5 2002/01/05 13:16:09 lazarus
MG: win32 interface update from Keith Bowes
Revision 1.4 2001/11/01 22:40:13 lazarus
MG: applied Keith Bowes win32 interface updates
Revision 1.3 2001/08/02 12:58:35 lazarus
MG: win32 interface patch from Keith Bowes
Revision 1.2 2000/12/12 14:16:43 lazarus
Updated OI from Mattias
Shane
Revision 1.1 2000/07/13 10:28:29 michael
+ Initial import
}