mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-08 01:41:22 +02:00
added WithThemSpace parameter to GetPreferredSize
git-svn-id: trunk@9331 -
This commit is contained in:
parent
16ad053d50
commit
e81c0f77a0
@ -1414,10 +1414,6 @@ begin
|
||||
Caption := dlgCOChecks;
|
||||
ChildSizing.Layout:=cclTopToBottomThenLeftToRight;
|
||||
ChildSizing.ControlsPerLine:=2;
|
||||
ChildSizing.LeftRightSpacing:=6;
|
||||
ChildSizing.TopBottomSpacing:=6;
|
||||
ChildSizing.HorizontalSpacing:=6;
|
||||
ChildSizing.VerticalSpacing:=6;
|
||||
end;
|
||||
|
||||
chkChecksIO := TCheckBox.Create(Self);
|
||||
@ -1460,8 +1456,6 @@ begin
|
||||
Width := 100;
|
||||
Caption := dlgHeapSize +' (-Ch):';
|
||||
ChildSizing.Layout:=cclTopToBottomThenLeftToRight;
|
||||
ChildSizing.LeftRightSpacing:=6;
|
||||
ChildSizing.TopBottomSpacing:=6;
|
||||
end;
|
||||
|
||||
edtHeapSize := TEdit.Create(grpHeapSize);
|
||||
@ -1469,7 +1463,6 @@ begin
|
||||
begin
|
||||
Parent := grpHeapSize;
|
||||
Caption := dlgHeapSize;
|
||||
BorderSpacing.Around:=3;
|
||||
Text := '';
|
||||
end;
|
||||
|
||||
@ -1485,9 +1478,6 @@ begin
|
||||
Width := 150;
|
||||
Caption := dlgCOGenerate;
|
||||
ChildSizing.Layout:=cclLeftToRightThenTopToBottom;
|
||||
ChildSizing.LeftRightSpacing:=6;
|
||||
ChildSizing.TopBottomSpacing:=6;
|
||||
ChildSizing.VerticalSpacing:=6;
|
||||
end;
|
||||
|
||||
radGenNormal := TRadioButton.Create(grpGenerate);
|
||||
@ -1631,9 +1621,6 @@ begin
|
||||
Width := 360;
|
||||
Caption := dlgOptimiz;
|
||||
ChildSizing.Layout:=cclLeftToRightThenTopToBottom;
|
||||
ChildSizing.LeftRightSpacing:=6;
|
||||
ChildSizing.TopBottomSpacing:=6;
|
||||
ChildSizing.VerticalSpacing:=6;
|
||||
AutoSize:=true;
|
||||
end;
|
||||
|
||||
|
@ -132,7 +132,8 @@ type
|
||||
procedure Loaded; override;
|
||||
procedure UpdateHandleObject(PanelIndex: integer); virtual;
|
||||
procedure CalculatePreferredSize(
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
|
||||
//added.
|
||||
function CreatePanel: TStatusPanel; virtual;
|
||||
|
@ -725,7 +725,7 @@ type
|
||||
TControlShowHintEvent = procedure(Sender: TObject; HintInfo: PHintInfo) of object;
|
||||
TContextPopupEvent = procedure(Sender: TObject; MousePos: TPoint;
|
||||
var Handled: Boolean) of object;
|
||||
|
||||
|
||||
TControlFlag = (
|
||||
cfRequestAlignNeeded,
|
||||
cfAutoSizeNeeded,
|
||||
@ -832,8 +832,8 @@ type
|
||||
FParentFont: Boolean;
|
||||
FParentShowHint: Boolean;
|
||||
FPopupMenu: TPopupMenu;
|
||||
FPreferredWidth: integer;
|
||||
FPreferredHeight: integer;
|
||||
FPreferredWidth: integer;// with theme space
|
||||
FPreferredHeight: integer;// with theme space
|
||||
FReadBounds: TRect;
|
||||
FSessionProperties: string;
|
||||
FShowHint: Boolean;
|
||||
@ -922,7 +922,8 @@ type
|
||||
procedure ConstrainedResize(var MinWidth, MinHeight,
|
||||
MaxWidth, MaxHeight: TConstraintSize); virtual;
|
||||
procedure CalculatePreferredSize(
|
||||
var PreferredWidth, PreferredHeight: integer); virtual;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); virtual;
|
||||
procedure DoOnResize; virtual;
|
||||
procedure DoOnChangeBounds; virtual;
|
||||
procedure Resize; virtual;
|
||||
@ -1122,7 +1123,8 @@ type
|
||||
procedure SetBoundsKeepBase(aLeft, aTop, aWidth, aHeight: integer;
|
||||
Lock: boolean = true); virtual;
|
||||
procedure GetPreferredSize(var PreferredWidth, PreferredHeight: integer;
|
||||
Raw: boolean = false); virtual;
|
||||
Raw: boolean = false;
|
||||
WithThemeSpace: boolean = true); virtual;
|
||||
procedure CNPreferredSizeChanged;
|
||||
procedure InvalidatePreferredSize; virtual;
|
||||
function GetBoundsDependingOnParent(WithNormalAnchors: Boolean): TAnchors;
|
||||
@ -1516,7 +1518,8 @@ type
|
||||
procedure DoSetBounds(ALeft, ATop, AWidth, AHeight: integer); override;
|
||||
procedure DoAutoSize; override;
|
||||
procedure CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer); override;
|
||||
PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
procedure GetChildBounds(var ChildBounds: TRect; WithBorderSpace: boolean); virtual;
|
||||
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); override;
|
||||
function ChildClassAllowed(ChildClass: TClass): boolean; override;
|
||||
|
@ -805,7 +805,7 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TControl.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer);
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
|
||||
Calculates the default/preferred width and height for a control, which is used
|
||||
by the LCL autosizing algorithms as default size. Only positive values are
|
||||
@ -813,9 +813,14 @@ end;
|
||||
instead.
|
||||
TWinControl overrides this and asks the interface for theme dependent values.
|
||||
See TWinControl.GetPreferredSize for more information.
|
||||
|
||||
WithThemeSpace: If true, adds space for stacking. For example: TRadioButton
|
||||
has a minimum size. But for staking multiple TRadioButtons there should be
|
||||
some space around. This space is theme dependent, so it passed parameter to
|
||||
the widgetset.
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TControl.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer);
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
PreferredWidth:=0;
|
||||
PreferredHeight:=0;
|
||||
@ -3670,22 +3675,30 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TControl.GetPreferredSize(
|
||||
var PreferredWidth, PreferredHeight: integer; Raw: boolean);
|
||||
var PreferredWidth, PreferredHeight: integer; Raw: boolean;
|
||||
WithThemeSpace: Boolean);
|
||||
|
||||
Returns the default/preferred width and height for a control, which is used
|
||||
by the LCL autosizing algorithms as default size. Only positive values are
|
||||
valid. Negative or 0 are treated as undefined and the LCL uses other sizes
|
||||
instead.
|
||||
If not Raw then the values will be adjusted by the constraints and undefined
|
||||
values will be replaced by the current width and height.
|
||||
|
||||
Raw: If not Raw then the values will be adjusted by the constraints and
|
||||
undefined values will be replaced by the current width and height.
|
||||
|
||||
WithThemeSpace: If true, adds space for stacking. For example: TRadioButton
|
||||
has a minimum size. But for staking multiple TRadioButtons there should be
|
||||
some space around. This space is theme dependent, so it passed parameter to
|
||||
the widgetset.
|
||||
|
||||
TWinControl overrides this and asks the interface for theme dependent values.
|
||||
See TWinControl.GetPreferredSize for more information.
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TControl.GetPreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer; Raw: boolean);
|
||||
PreferredHeight: integer; Raw: boolean; WithThemeSpace: boolean);
|
||||
begin
|
||||
if not (cfPreferredSizeValid in FControlFlags) then begin
|
||||
CalculatePreferredSize(FPreferredWidth,FPreferredHeight);
|
||||
CalculatePreferredSize(FPreferredWidth,FPreferredHeight,WithThemeSpace);
|
||||
Include(FControlFlags,cfPreferredSizeValid);
|
||||
end;
|
||||
PreferredWidth:=FPreferredWidth;
|
||||
|
@ -19,9 +19,9 @@
|
||||
}
|
||||
|
||||
procedure TCustomEdit.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer);
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
inherited CalculatePreferredSize(PreferredWidth, PreferredHeight);
|
||||
inherited CalculatePreferredSize(PreferredWidth,PreferredHeight,WithThemeSpace);
|
||||
// ignore width
|
||||
PreferredWidth:=0;
|
||||
end;
|
||||
|
@ -131,9 +131,9 @@ begin
|
||||
end;
|
||||
|
||||
procedure TStatusBar.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer);
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
inherited CalculatePreferredSize(PreferredWidth, PreferredHeight);
|
||||
inherited CalculatePreferredSize(PreferredWidth,PreferredHeight,WithThemeSpace);
|
||||
PreferredWidth:=0;
|
||||
if PreferredHeight<=0 then PreferredHeight:=25;
|
||||
end;
|
||||
|
@ -1860,7 +1860,7 @@ begin
|
||||
|
||||
// autosize control to preferred size
|
||||
if (not WidthIsFixed) or (not HeightIsFixed) then begin
|
||||
GetPreferredSize(PreferredWidth,PreferredHeight,false);
|
||||
GetPreferredSize(PreferredWidth,PreferredHeight);
|
||||
//if ControlCount>0 then
|
||||
// DebugLn('TWinControl.DoAutoSize ',DbgSName(Self),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
end else begin
|
||||
@ -5595,7 +5595,7 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TWinControl.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer);
|
||||
PreferredHeight: integer; WithThemeSpace" Boolean);
|
||||
|
||||
Calculates the default/preferred width and height for a TWinControl, which is
|
||||
used by the LCL autosizing algorithms as default size. Only positive values
|
||||
@ -5610,9 +5610,14 @@ end;
|
||||
|
||||
This value is independent of constraints and siblings, only the inner parts
|
||||
are relevant.
|
||||
|
||||
WithThemeSpace: If true, adds space for stacking. For example: TRadioButton
|
||||
has a minimum size. But for staking multiple TRadioButtons there should be
|
||||
some space around. This space is theme dependent, so it passed parameter to
|
||||
the widgetset.
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TWinControl.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer);
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
ChildBounds: TRect;
|
||||
NewClientWidth: Integer;
|
||||
@ -5622,10 +5627,11 @@ var
|
||||
NewWidth: Integer;
|
||||
NewHeight: Integer;
|
||||
begin
|
||||
inherited CalculatePreferredSize(PreferredWidth, PreferredHeight);
|
||||
inherited CalculatePreferredSize(PreferredWidth,PreferredHeight,WithThemeSpace);
|
||||
|
||||
if HandleAllocated then begin
|
||||
TWSWinControlClass(WidgetSetClass).GetPreferredSize(Self,
|
||||
PreferredWidth, PreferredHeight);
|
||||
PreferredWidth, PreferredHeight, WithThemeSpace);
|
||||
if (PreferredWidth>0) then
|
||||
inc(PreferredWidth,BorderSpacing.InnerBorder*2);
|
||||
if PreferredHeight>0 then
|
||||
@ -5708,7 +5714,7 @@ begin
|
||||
if a in FixatedAnchors then FixateSide(a);
|
||||
|
||||
if AControl.AutoSize then
|
||||
AControl.GetPreferredSize(ChildWidth,ChildHeight,false)
|
||||
AControl.GetPreferredSize(ChildWidth,ChildHeight)
|
||||
else begin
|
||||
ChildWidth:=AControl.Width;
|
||||
ChildHeight:=AControl.Height;
|
||||
|
@ -118,7 +118,7 @@ type
|
||||
class procedure SetText(const AWinControl: TWinControl; const AText: String); override;
|
||||
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TCarbonWSCustomMemo }
|
||||
@ -445,7 +445,8 @@ begin
|
||||
CFRelease(Pointer(CFString));
|
||||
end;
|
||||
|
||||
procedure TCarbonWSCustomEdit.GetPreferredSize(const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer);
|
||||
procedure TCarbonWSCustomEdit.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
//TODO
|
||||
end;
|
||||
@ -555,4 +556,4 @@ initialization
|
||||
// RegisterWSComponent(TCustomStaticText, TCarbonWSCustomStaticText);
|
||||
// RegisterWSComponent(TStaticText, TCarbonWSStaticText);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -6182,7 +6182,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure GetGTKDefaultWidgetSize(AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
Widget: PGtkWidget;
|
||||
Requisition: TGtkRequisition;
|
||||
@ -6194,6 +6194,9 @@ begin
|
||||
gtk_widget_size_request(Widget,@Requisition);
|
||||
PreferredWidth:=Requisition.width;
|
||||
PreferredHeight:=Requisition.height;
|
||||
if not WithThemeSpace then begin
|
||||
// TODO
|
||||
end;
|
||||
// set new size
|
||||
gtk_widget_set_usize(Widget,AWinControl.Width,AWinControl.Height);
|
||||
//debugln('GetGTKDefaultSize PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
|
@ -728,7 +728,7 @@ procedure SaveSizeNotification(Widget: PGtkWidget);
|
||||
procedure SaveClientSizeNotification(FixWidget: PGtkWidget);
|
||||
function CreateTopologicalSortedWidgets(HashArray: TDynHashArray): TFPList;
|
||||
procedure GetGTKDefaultWidgetSize(AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
|
||||
Procedure ReportNotObsolete(const Texts: String);
|
||||
|
||||
|
@ -65,7 +65,8 @@ type
|
||||
class procedure SetColor(const AWinControl: TWinControl); override;
|
||||
class procedure SetFont(const AWinControl: TWinControl; const AFont : tFont); override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TGtkWSBitBtn }
|
||||
@ -234,9 +235,10 @@ end;
|
||||
|
||||
|
||||
procedure TGtkWSButton.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight);
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight,
|
||||
WithThemeSpace);
|
||||
//debugln('TGtkWSButton.GetPreferredSize ',DbgSName(AWinControl),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
end;
|
||||
|
||||
@ -579,4 +581,4 @@ initialization
|
||||
RegisterWSComponent(TCustomBitBtn, TGtkWSBitBtn); // register it to fallback to default
|
||||
// RegisterWSComponent(TCustomSpeedButton, TGtkWSSpeedButton);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -51,7 +51,8 @@ type
|
||||
class procedure SetPanelText(const AStatusBar: TStatusBar; PanelIndex: integer); override;
|
||||
class procedure Update(const AStatusBar: TStatusBar); override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TGtkWSTabSheet }
|
||||
@ -423,7 +424,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TGtkWSStatusBar.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
StatusBarWidget: PGtkWidget;
|
||||
Requisition: TGtkRequisition;
|
||||
@ -459,4 +460,4 @@ initialization
|
||||
// RegisterWSComponent(TCustomTreeView, TGtkWSCustomTreeView);
|
||||
// RegisterWSComponent(TCustomTreeView, TGtkWSTreeView);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -55,7 +55,8 @@ type
|
||||
protected
|
||||
public
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TGtkWSGroupBox }
|
||||
@ -148,7 +149,8 @@ type
|
||||
class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
|
||||
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
class procedure SetColor(const AWinControl: TWinControl); override;
|
||||
end;
|
||||
|
||||
@ -204,7 +206,8 @@ type
|
||||
class procedure SetAlignment(const ACustomStaticText: TCustomStaticText;
|
||||
const NewAlignment: TAlignment); override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TGtkWSStaticText }
|
||||
@ -235,7 +238,8 @@ type
|
||||
const OldShortCut, NewShortCut: TShortCut); override;
|
||||
class procedure SetState(const ACB: TCustomCheckBox; const ANewState: TCheckBoxState); override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
class procedure SetFont(const AWinControl: TWinControl; const AFont : tFont); override;
|
||||
|
||||
end;
|
||||
@ -842,9 +846,10 @@ begin
|
||||
end;
|
||||
|
||||
procedure TGtkWSCustomEdit.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight);
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight,
|
||||
WithThemeSpace);
|
||||
//debugln('TGtkWSCustomEdit.GetPreferredSize ',DbgSName(AWinControl),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
end;
|
||||
|
||||
@ -866,9 +871,10 @@ begin
|
||||
end;
|
||||
|
||||
procedure TGtkWSCustomStaticText.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight);
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight,
|
||||
WithThemeSpace);
|
||||
//debugln('TGtkWSCustomStaticText.GetPreferredSize ',DbgSName(AWinControl),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
end;
|
||||
|
||||
@ -915,9 +921,10 @@ begin
|
||||
end;
|
||||
|
||||
procedure TGtkWSCustomCheckBox.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight);
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight,
|
||||
WithThemeSpace);
|
||||
//debugln('TGtkWSCustomCheckBox.GetPreferredSize ',DbgSName(AWinControl),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
end;
|
||||
|
||||
@ -1094,29 +1101,33 @@ end;
|
||||
{ TGtkWSCustomGroupBox }
|
||||
|
||||
procedure TGtkWSCustomGroupBox.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
Widget: PGtkWidget;
|
||||
border_width: Integer;
|
||||
begin
|
||||
Widget:=PGtkWidget(AWinControl.Handle);
|
||||
|
||||
border_width:=(PGtkContainer(Widget)^.flag0 and bm_TGtkContainer_border_width)
|
||||
shr bp_TGtkContainer_border_width;
|
||||
PreferredWidth := (border_width + gtk_widget_get_xthickness(Widget)) * 2
|
||||
{$ifdef gtk1}
|
||||
PreferredWidth := (gtk_widget_get_xthickness(Widget)) * 2
|
||||
{$ifdef gtk1}
|
||||
+PGtkFrame(Widget)^.label_width;
|
||||
{$else}
|
||||
{$else}
|
||||
+gtk_widget_get_xthickness(PGtkFrame(Widget)^.label_widget);
|
||||
{$endif}
|
||||
{$endif}
|
||||
PreferredHeight := Max(gtk_widget_get_ythickness(Widget),
|
||||
{$ifdef gtk1}
|
||||
{$ifdef gtk1}
|
||||
PGtkFrame(Widget)^.label_height)
|
||||
{$else}
|
||||
{$else}
|
||||
gtk_widget_get_ythickness(PGtkFrame(Widget)^.label_widget))
|
||||
{$endif}
|
||||
+ gtk_widget_get_ythickness(Widget)
|
||||
+ 2*border_width;
|
||||
{$endif}
|
||||
+ gtk_widget_get_ythickness(Widget);
|
||||
|
||||
if WithThemeSpace then begin
|
||||
border_width:=(PGtkContainer(Widget)^.flag0 and bm_TGtkContainer_border_width)
|
||||
shr bp_TGtkContainer_border_width;
|
||||
inc(PreferredWidth, border_width);
|
||||
inc(PreferredHeight,2*border_width);
|
||||
end;
|
||||
//debugln('TGtkWSCustomGroupBox.GetPreferredSize ',DbgSName(AWinControl),' PreferredWidth=',dbgs(PreferredWidth),' PreferredHeight=',dbgs(PreferredHeight));
|
||||
end;
|
||||
|
||||
@ -1145,4 +1156,4 @@ initialization
|
||||
RegisterWSComponent(TCustomStaticText, TGtkWSCustomStaticText);
|
||||
// RegisterWSComponent(TStaticText, TGtkWSStaticText);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -1162,6 +1162,7 @@ begin
|
||||
TQtDeviceContext(DC).setBrushOrigin(NewX, NewY);
|
||||
if OldPoint <> nil then TQtDeviceContext(DC).brushOrigin(OldPoint);
|
||||
end;
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
@ -57,7 +57,8 @@ type
|
||||
class function CreateHandle(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams): HWND; override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
class procedure SetBounds(const AWinControl: TWinControl;
|
||||
const ALeft, ATop, AWidth, AHeight: integer); override;
|
||||
class procedure SetFont(const AWinControl: TWinControl; const AFont: TFont); override;
|
||||
@ -471,7 +472,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TWin32WSBitBtn.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
BitmapInfo: BITMAP; // Buffer for bitmap
|
||||
BitBtn: TBitBtn absolute AWinControl;
|
||||
@ -563,4 +564,4 @@ initialization
|
||||
RegisterWSComponent(TCustomBitBtn, TWin32WSBitBtn);
|
||||
// RegisterWSComponent(TCustomSpeedButton, TWin32WSSpeedButton);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -55,7 +55,8 @@ type
|
||||
class procedure SetBounds(const AWinControl: TWinControl; const ALeft, ATop,
|
||||
AWidth, AHeight: integer); override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TWin32WSTabSheet }
|
||||
@ -326,7 +327,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TWin32WSStatusBar.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
R: TRect;
|
||||
begin
|
||||
@ -585,4 +586,4 @@ initialization
|
||||
// RegisterWSComponent(TCustomTreeView, TWin32WSCustomTreeView);
|
||||
// RegisterWSComponent(TCustomTreeView, TWin32WSTreeView);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -219,7 +219,8 @@ type
|
||||
protected
|
||||
public
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TWin32WSCustomCheckBox }
|
||||
@ -231,7 +232,8 @@ type
|
||||
class function CreateHandle(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams): HWND; override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
class function RetrieveState(const ACustomCheckBox: TCustomCheckBox): TCheckBoxState; override;
|
||||
class procedure SetShortCut(const ACustomCheckBox: TCustomCheckBox;
|
||||
const OldShortCut, NewShortCut: TShortCut); override;
|
||||
@ -986,12 +988,16 @@ end;
|
||||
{ TWin32WSButtonControl }
|
||||
|
||||
procedure TWin32WSButtonControl.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
if MeasureText(AWinControl, AWinControl.Caption, PreferredWidth, PreferredHeight) then
|
||||
begin
|
||||
Inc(PreferredWidth, 20);
|
||||
Inc(PreferredHeight, 12);
|
||||
if WithThemeSpace then begin
|
||||
Inc(PreferredWidth, 6);
|
||||
Inc(PreferredHeight, 6);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1020,7 +1026,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TWin32WSCustomCheckBox.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
iconHeight: integer;
|
||||
begin
|
||||
@ -1031,6 +1037,10 @@ begin
|
||||
iconHeight := GetSystemMetrics(SM_CYMENUCHECK);
|
||||
if iconHeight > PreferredHeight then
|
||||
PreferredHeight := iconHeight;
|
||||
if WithThemeSpace then begin
|
||||
Inc(PreferredWidth, 6);
|
||||
Inc(PreferredHeight, 6);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1138,4 +1148,4 @@ initialization
|
||||
RegisterWSComponent(TCustomStaticText, TWin32WSCustomStaticText);
|
||||
// RegisterWSComponent(TStaticText, TWin32WSStaticText);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
@ -62,7 +62,8 @@ type
|
||||
class function CreateHandle(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams): HWND;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
class procedure SetBounds(const AWinControl: TWinControl;
|
||||
const ALeft, ATop, AWidth, AHeight: integer); override;
|
||||
class procedure SetFont(const AWinControl: TWinControl; const AFont: TFont); override;
|
||||
@ -532,7 +533,7 @@ end;
|
||||
|
||||
|
||||
class procedure TWinCEWSBitBtn.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
BitmapInfo: BITMAP; // Buffer for bitmap
|
||||
BitBtn: TBitBtn absolute AWinControl;
|
||||
|
@ -53,7 +53,8 @@ type
|
||||
class procedure SetBounds(const AWinControl: TWinControl; const ALeft, ATop,
|
||||
AWidth, AHeight: integer); override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TWinCEWSTabSheet }
|
||||
@ -335,7 +336,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TWinCEWSStatusBar.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
R: TRect;
|
||||
begin
|
||||
|
@ -216,7 +216,8 @@ type
|
||||
protected
|
||||
public
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TWinCEWSCustomCheckBox }
|
||||
@ -228,7 +229,8 @@ type
|
||||
class function CreateHandle(const AWinControl: TWinControl;
|
||||
const AParams: TCreateParams): HWND; override;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer); override;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
class function RetrieveState(const ACustomCheckBox: TCustomCheckBox): TCheckBoxState; override;
|
||||
class procedure SetShortCut(const ACustomCheckBox: TCustomCheckBox;
|
||||
const OldShortCut, NewShortCut: TShortCut); override;
|
||||
@ -981,7 +983,7 @@ end;
|
||||
{ TWin32WSButtonControl }
|
||||
|
||||
procedure TWinCEWSButtonControl.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
if MeasureText(AWinControl, AWinControl.Caption, PreferredWidth, PreferredHeight) then
|
||||
begin
|
||||
@ -1021,7 +1023,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TWinCEWSCustomCheckBox.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
var
|
||||
iconHeight: integer;
|
||||
begin
|
||||
|
@ -608,7 +608,8 @@ type
|
||||
procedure SetPasswordChar(const AValue: Char);
|
||||
procedure SetReadOnly(Value: Boolean);
|
||||
protected
|
||||
procedure CalculatePreferredSize(var PreferredWidth, PreferredHeight: integer); override;
|
||||
procedure CalculatePreferredSize(var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
procedure CreateWnd; override;
|
||||
procedure TextChanged; override;
|
||||
procedure Change; dynamic;
|
||||
|
@ -75,7 +75,7 @@ type
|
||||
TWSWinControl = class(TWSControl)
|
||||
class function GetClientBounds(const AWincontrol: TWinControl; var ARect: TRect): Boolean; virtual;
|
||||
class function GetClientRect(const AWincontrol: TWinControl; var ARect: TRect): Boolean; virtual;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer); virtual;
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean); virtual;
|
||||
class function GetText(const AWinControl: TWinControl; var AText: String): Boolean; virtual;
|
||||
class function GetTextLen(const AWinControl: TWinControl; var ALength: Integer): Boolean; virtual;
|
||||
|
||||
@ -185,7 +185,7 @@ begin
|
||||
end;
|
||||
|
||||
procedure TWSWinControl.GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer);
|
||||
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
@ -253,4 +253,4 @@ initialization
|
||||
// RegisterWSComponent(TCustomControl, TWSCustomControl);
|
||||
// RegisterWSComponent(TImageList, TWSImageList);
|
||||
////////////////////////////////////////////////////
|
||||
end.
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user