added WithThemSpace parameter to GetPreferredSize

git-svn-id: trunk@9331 -
This commit is contained in:
mattias 2006-05-21 15:47:28 +00:00
parent 16ad053d50
commit e81c0f77a0
22 changed files with 141 additions and 95 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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.

View File

@ -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));

View File

@ -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);

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -1162,6 +1162,7 @@ begin
TQtDeviceContext(DC).setBrushOrigin(NewX, NewY);
if OldPoint <> nil then TQtDeviceContext(DC).brushOrigin(OldPoint);
end;
Result:=0;
end;
{------------------------------------------------------------------------------

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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.