MG: further clientrect bugfixes

git-svn-id: trunk@864 -
This commit is contained in:
lazarus 2002-02-09 01:47:09 +00:00
parent 533f898524
commit 6578a2dd47

View File

@ -18,7 +18,7 @@
***************************************************************************/ ***************************************************************************/
} }
unit gtkint; unit GtkInt;
{$mode objfpc} {$mode objfpc}
{$LONGSTRINGS ON} {$LONGSTRINGS ON}
@ -38,8 +38,8 @@ interface
uses uses
InterfaceBase, gtk, gdk, glib, SysUtils, LMessages, Classes, Controls, InterfaceBase, gtk, gdk, glib, SysUtils, LMessages, Classes, Controls,
ExtCtrls,Forms,Dialogs, VclGlobals, StdCtrls, ComCtrls, LCLLinux, LCLType, Forms, VclGlobals, LCLLinux, LCLType, gtkDef, DynHashArray, LazQueue,
gtkDef, DynHashArray, LazQueue, Calendar, Arrow, GraphType,Spin, CommCtrl; GraphType;
type type
TgtkObject = class(TInterfaceBase) TgtkObject = class(TInterfaceBase)
@ -49,6 +49,9 @@ type
FGDIObjects: TDynHashArray; // hasharray of PGdiObject FGDIObjects: TDynHashArray; // hasharray of PGdiObject
FMessageQueue: TLazQueue; // queue of PMsg FMessageQueue: TLazQueue; // queue of PMsg
FPaintMessages: TDynHashArray; // hasharray of PLazQueueItem FPaintMessages: TDynHashArray; // hasharray of PLazQueueItem
{$IFDEF ClientRectBugFix}
FWidgetsWithResizeRequest: TDynHashArray; // hasharray of PGtkWidget
{$ENDIF}
FGTKToolTips: PGtkToolTips; FGTKToolTips: PGtkToolTips;
FAccelGroup: PgtkAccelGroup; FAccelGroup: PgtkAccelGroup;
FTimerData : TList; // keeps track of timer event structures FTimerData : TList; // keeps track of timer event structures
@ -60,8 +63,10 @@ type
FStockGrayBrush: HBRUSH; FStockGrayBrush: HBRUSH;
FStockDkGrayBrush: HBRUSH; FStockDkGrayBrush: HBRUSH;
FStockWhiteBrush: HBRUSH; FStockWhiteBrush: HBRUSH;
Procedure HookSignals(Sender : TObject); //hooks all signals for controls Procedure HookSignals(Sender : TObject); //hooks all signals for controls
procedure CreateComponent(Sender : TObject); procedure CreateComponent(Sender : TObject);
procedure DestroyLCLControl(Sender : TObject);
procedure AddChild(Parent,Child : Pointer; Left,Top: Integer); procedure AddChild(Parent,Child : Pointer; Left,Top: Integer);
procedure ResizeChild(Sender : TObject; Left,Top,Width,Height : Integer); procedure ResizeChild(Sender : TObject; Left,Top,Width,Height : Integer);
function GetLabel(CompStyle: Integer; P : Pointer) : String; function GetLabel(CompStyle: Integer; P : Pointer) : String;
@ -95,6 +100,14 @@ type
function HashPaintMessage(p: pointer): integer; function HashPaintMessage(p: pointer): integer;
function FindPaintMessage(HandleWnd: HWnd): PLazQueueItem; function FindPaintMessage(HandleWnd: HWnd): PLazQueueItem;
{$IFDEF ClientRectBugFix}
procedure SetResizeRequest(Widget: PGtkWidget);
procedure SaveSizeNotification(Widget: PGtkWidget);
procedure SaveClientSizeNotification(FixWidget: PGtkWidget);
{$ENDIF}
procedure SendCachedLCLMessages;
procedure SetCallback(Msg : LongInt; Sender : TObject); procedure SetCallback(Msg : LongInt; Sender : TObject);
procedure RemoveCallbacks(Sender : TObject); procedure RemoveCallbacks(Sender : TObject);
protected protected
@ -117,7 +130,10 @@ type
function GetText(Sender: TControl; var Text: String): Boolean; override; function GetText(Sender: TControl; var Text: String): Boolean; override;
procedure SetLabel(Sender : TObject; Data : Pointer); procedure SetLabel(Sender : TObject; Data : Pointer);
function IntSendMessage3(LM_Message : Integer; Sender : TObject; data : pointer) : integer; override; function IntSendMessage3(LM_Message : Integer; Sender : TObject; data : pointer) : integer; override;
procedure DoEvents; override; {$IFDEF ClientRectBugFix}
{$ELSE}
procedure DoEvents; override; // use HandleEvents instead
{$ENDIF}
procedure HandleEvents; override; procedure HandleEvents; override;
procedure WaitMessage; override; procedure WaitMessage; override;
procedure AppTerminate; override; procedure AppTerminate; override;
@ -133,7 +149,8 @@ type
implementation implementation
uses uses
Graphics, Buttons, Menus, GTKWinApiWindow, CListBox, KeyMap; Graphics, Buttons, Menus, GTKWinApiWindow, StdCtrls, ComCtrls, CListBox,
KeyMap, Calendar, Arrow, Spin, CommCtrl, ExtCtrls, Dialogs;
{$I gtklistsl.inc} {$I gtklistsl.inc}
@ -160,7 +177,6 @@ var
const const
KEYMAP_VKUNKNOWN = $10000; KEYMAP_VKUNKNOWN = $10000;
KEYMAP_TOGGLE = $20000; KEYMAP_TOGGLE = $20000;
KEYMAP_EXTENDED = $40000; KEYMAP_EXTENDED = $40000;
@ -258,8 +274,15 @@ var
// lists of supported targets // lists of supported targets
ClipboardTargetEntries: array[TClipboardType] of PGtkTargetEntry; ClipboardTargetEntries: array[TClipboardType] of PGtkTargetEntry;
ClipboardTargetEntryCnt: array[TClipboardType] of integer; ClipboardTargetEntryCnt: array[TClipboardType] of integer;
//ClipboardIgnoreLossCount: array[TClipboardType] of integer;
{$IFDEF ClientRectBugFix}
// each main widget that was resized by the gtk is stored here
// (hasharray of PGtkWidget)
FWidgetsResized: TDynHashArray;
// each fixed widget that was resized by the gtk is stored here
// (hasharray of PGtkWidget)
FFixWidgetsResized: TDynHashArray;
{$ENDIF}
{$I dragicons.inc} {$I dragicons.inc}
{$I gtkproc.inc} {$I gtkproc.inc}
@ -334,6 +357,9 @@ end.
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.37 2002/05/09 12:41:29 lazarus
MG: further clientrect bugfixes
Revision 1.36 2002/05/06 08:50:36 lazarus Revision 1.36 2002/05/06 08:50:36 lazarus
MG: replaced logo, increased version to 0.8.3a and some clientrectbugfix MG: replaced logo, increased version to 0.8.3a and some clientrectbugfix