mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 16:09:41 +02:00
MWE: Applied patch from "Andrew Johnson" <aj_genius@hotmail.com>
Here is the run down of what it includes - -Vasily Volchenko's Updated Russian Localizations -improvements to GTK Styles/SysColors -initial GTK Palette code - (untested, and for now useless) -Hint Windows and Modal dialogs now try to stay transient to the main program form, aka they stay on top of the main form and usually minimize/maximize with it. -fixes to Form BorderStyle code(tool windows needed a border) -fixes DrawFrameControl DFCS_BUTTONPUSH to match Win32 better when flat -fixes DrawFrameControl DFCS_BUTTONCHECK to match Win32 better and to match GTK theme better. It works most of the time now, but some themes, noteably Default, don't work. -fixes bug in Bitmap code which broke compiling in NoGDKPixbuf mode. -misc other cleanups/ fixes in gtk interface -speedbutton's should now draw correctly when flat in Win32 -I have included an experimental new CheckBox(disabled by default) which has initial support for cbGrayed(Tri-State), and WordWrap, and misc other improvements. It is not done, it is mostly a quick hack to test DrawFrameControl DFCS_BUTTONCHECK, however it offers many improvements which can be seen in cbsCheck/cbsCrissCross (aka non-themed) state. -fixes Message Dialogs to more accurately determine button Spacing/Size, and Label Spacing/Size based on current System font. -fixes MessageDlgPos, & ShowMessagePos in Dialogs -adds InputQuery & InputBox to Dialogs -re-arranges & somewhat re-designs Control Tabbing, it now partially works - wrapping around doesn't work, and subcontrols(Panels & Children, etc) don't work. TabOrder now works to an extent. I am not sure what is wrong with my code, based on my other tests at least wrapping and TabOrder SHOULD work properly, but.. Anyone want to try and fix? -SynEdit(Code Editor) now changes mouse cursor to match position(aka over scrollbar/gutter vs over text edit) -adds a TRegion property to Graphics.pp, and Canvas. Once I figure out how to handle complex regions(aka polygons) data properly I will add Region functions to the canvas itself (SetClipRect, intersectClipRect etc.) -BitBtn now has a Stored flag on Glyph so it doesn't store to lfm/lrs if Glyph is Empty, or if Glyph is not bkCustom(aka bkOk, bkCancel, etc.) This should fix most crashes with older GDKPixbuf libs. git-svn-id: trunk@2683 -
This commit is contained in:
parent
705e7f28b5
commit
4fc2617785
@ -168,6 +168,15 @@ begin
|
|||||||
SetTextColor(FHandle, Font.Color);
|
SetTextColor(FHandle, Font.Color);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Procedure TCanvas.CreateRegion;
|
||||||
|
var OldHandle: HRGN;
|
||||||
|
begin
|
||||||
|
OldHandle:=SelectObject(FHandle, Region.Handle);
|
||||||
|
if (OldHandle<>Region.Handle) and (FSavedRegionHandle=0) then
|
||||||
|
FSavedRegionHandle:=OldHandle;
|
||||||
|
Include(FState, csRegionValid);
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Function: TCanvas.GetPenPos
|
Function: TCanvas.GetPenPos
|
||||||
Params: None
|
Params: None
|
||||||
@ -237,6 +246,17 @@ begin
|
|||||||
FPen.Assign(Value);
|
FPen.Assign(Value);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Method: TCanvas.SetRegion
|
||||||
|
Params: Value
|
||||||
|
Returns: Nothing
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
Procedure TCanvas.SetRegion(value : TRegion);
|
||||||
|
begin
|
||||||
|
FRegion.Assign(Value);
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TCanvas.Arc
|
Method: TCanvas.Arc
|
||||||
Params: x,y,width,height,angle1,angle2
|
Params: x,y,width,height,angle1,angle2
|
||||||
@ -789,6 +809,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{------------------------------------------------------------------------------
|
||||||
|
Method: TCanvas.RegionChanged
|
||||||
|
Params: ARegion: The changed Region
|
||||||
|
Returns: Nothing
|
||||||
|
|
||||||
|
Notify proc for a region change
|
||||||
|
------------------------------------------------------------------------------}
|
||||||
|
procedure TCanvas.RegionChanged(ARegion: TObject);
|
||||||
|
begin
|
||||||
|
if csRegionValid in FState
|
||||||
|
then begin
|
||||||
|
Exclude(FState, csRegionValid);
|
||||||
|
//TODO: Select stock object;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
Method: TCanvas.Create
|
Method: TCanvas.Create
|
||||||
Params: none
|
Params: none
|
||||||
@ -809,6 +845,9 @@ begin
|
|||||||
FBrush := TBrush.Create;
|
FBrush := TBrush.Create;
|
||||||
FBrush.OnChange := @BrushChanged;
|
FBrush.OnChange := @BrushChanged;
|
||||||
FSavedBrushHandle := 0;
|
FSavedBrushHandle := 0;
|
||||||
|
FRegion := TRegion.Create;
|
||||||
|
FRegion.OnChange := @RegionChanged;
|
||||||
|
FSavedRegionHandle := 0;
|
||||||
FCopyMode := cmSrcCopy;
|
FCopyMode := cmSrcCopy;
|
||||||
FPenPos := Point(0, 0);
|
FPenPos := Point(0, 0);
|
||||||
FLockCount := 0;
|
FLockCount := 0;
|
||||||
@ -871,6 +910,7 @@ begin
|
|||||||
FFont.Free;
|
FFont.Free;
|
||||||
FPen.Free;
|
FPen.Free;
|
||||||
FBrush.Free;
|
FBrush.Free;
|
||||||
|
FRegion.Free;
|
||||||
if FLockCount <> 0 then
|
if FLockCount <> 0 then
|
||||||
DeleteCriticalSection(FLock);
|
DeleteCriticalSection(FLock);
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
@ -1064,6 +1104,69 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.29 2002/09/27 20:52:22 lazarus
|
||||||
|
MWE: Applied patch from "Andrew Johnson" <aj_genius@hotmail.com>
|
||||||
|
|
||||||
|
Here is the run down of what it includes -
|
||||||
|
|
||||||
|
-Vasily Volchenko's Updated Russian Localizations
|
||||||
|
|
||||||
|
-improvements to GTK Styles/SysColors
|
||||||
|
-initial GTK Palette code - (untested, and for now useless)
|
||||||
|
|
||||||
|
-Hint Windows and Modal dialogs now try to stay transient to
|
||||||
|
the main program form, aka they stay on top of the main form
|
||||||
|
and usually minimize/maximize with it.
|
||||||
|
|
||||||
|
-fixes to Form BorderStyle code(tool windows needed a border)
|
||||||
|
|
||||||
|
-fixes DrawFrameControl DFCS_BUTTONPUSH to match Win32 better
|
||||||
|
when flat
|
||||||
|
|
||||||
|
-fixes DrawFrameControl DFCS_BUTTONCHECK to match Win32 better
|
||||||
|
and to match GTK theme better. It works most of the time now,
|
||||||
|
but some themes, noteably Default, don't work.
|
||||||
|
|
||||||
|
-fixes bug in Bitmap code which broke compiling in NoGDKPixbuf
|
||||||
|
mode.
|
||||||
|
|
||||||
|
-misc other cleanups/ fixes in gtk interface
|
||||||
|
|
||||||
|
-speedbutton's should now draw correctly when flat in Win32
|
||||||
|
|
||||||
|
-I have included an experimental new CheckBox(disabled by
|
||||||
|
default) which has initial support for cbGrayed(Tri-State),
|
||||||
|
and WordWrap, and misc other improvements. It is not done, it
|
||||||
|
is mostly a quick hack to test DrawFrameControl
|
||||||
|
DFCS_BUTTONCHECK, however it offers many improvements which
|
||||||
|
can be seen in cbsCheck/cbsCrissCross (aka non-themed) state.
|
||||||
|
|
||||||
|
-fixes Message Dialogs to more accurately determine
|
||||||
|
button Spacing/Size, and Label Spacing/Size based on current
|
||||||
|
System font.
|
||||||
|
-fixes MessageDlgPos, & ShowMessagePos in Dialogs
|
||||||
|
-adds InputQuery & InputBox to Dialogs
|
||||||
|
|
||||||
|
-re-arranges & somewhat re-designs Control Tabbing, it now
|
||||||
|
partially works - wrapping around doesn't work, and
|
||||||
|
subcontrols(Panels & Children, etc) don't work. TabOrder now
|
||||||
|
works to an extent. I am not sure what is wrong with my code,
|
||||||
|
based on my other tests at least wrapping and TabOrder SHOULD
|
||||||
|
work properly, but.. Anyone want to try and fix?
|
||||||
|
|
||||||
|
-SynEdit(Code Editor) now changes mouse cursor to match
|
||||||
|
position(aka over scrollbar/gutter vs over text edit)
|
||||||
|
|
||||||
|
-adds a TRegion property to Graphics.pp, and Canvas. Once I
|
||||||
|
figure out how to handle complex regions(aka polygons) data
|
||||||
|
properly I will add Region functions to the canvas itself
|
||||||
|
(SetClipRect, intersectClipRect etc.)
|
||||||
|
|
||||||
|
-BitBtn now has a Stored flag on Glyph so it doesn't store to
|
||||||
|
lfm/lrs if Glyph is Empty, or if Glyph is not bkCustom(aka
|
||||||
|
bkOk, bkCancel, etc.) This should fix most crashes with older
|
||||||
|
GDKPixbuf libs.
|
||||||
|
|
||||||
Revision 1.28 2002/09/19 19:56:14 lazarus
|
Revision 1.28 2002/09/19 19:56:14 lazarus
|
||||||
MG: accelerated designer drawings
|
MG: accelerated designer drawings
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user