tvplanit: Fixing errors in shape editor's control positions for gtk2/qt.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5010 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-07-20 15:50:18 +00:00
parent 3068e728b5
commit dbe08a2511
2 changed files with 92 additions and 51 deletions

View File

@ -2,52 +2,61 @@ object frmEditShape: TfrmEditShape
Left = 772
Height = 243
Top = 248
Width = 363
Width = 426
HorzScrollBar.Page = 362
VertScrollBar.Page = 313
BorderStyle = bsDialog
Caption = 'Edit Shape'
ClientHeight = 243
ClientWidth = 363
ClientWidth = 426
OnCreate = FormCreate
OnDestroy = FormDestroy
Position = poScreenCenter
ShowHint = True
LCLVersion = '1.7'
object btnOk: TButton
Left = 192
AnchorSideBottom.Control = gbPen
AnchorSideBottom.Side = asrBottom
Left = 253
Height = 25
Top = 203
Width = 75
Anchors = [akLeft, akBottom]
Caption = 'OK'
Default = True
OnClick = btnOkClick
TabOrder = 3
end
object btnCancel: TButton
Left = 272
AnchorSideBottom.Control = gbPen
AnchorSideBottom.Side = asrBottom
Left = 333
Height = 25
Top = 203
Width = 75
Anchors = [akLeft, akBottom]
BorderSpacing.Right = 8
Cancel = True
Caption = 'Cancel'
OnClick = btnCancelClick
TabOrder = 4
end
object gbBrush: TGroupBox
Left = 186
Left = 216
Height = 86
Top = 88
Width = 165
Width = 192
BorderSpacing.Right = 8
Caption = ' Brush '
ClientHeight = 66
ClientWidth = 161
ClientWidth = 188
TabOrder = 2
object lblBrushStyle: TLabel
Left = 8
Height = 15
Top = 35
Width = 28
BorderSpacing.Left = 8
Caption = 'Style:'
FocusControl = cbBrushStyle
ParentColor = False
@ -56,7 +65,9 @@ object frmEditShape: TfrmEditShape
Left = 52
Height = 23
Top = 32
Width = 97
Width = 129
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
ItemHeight = 15
OnChange = cbBrushStyleChange
OnDrawItem = cbBrushStyleDrawItem
@ -67,6 +78,7 @@ object frmEditShape: TfrmEditShape
Height = 15
Top = 5
Width = 32
BorderSpacing.Left = 8
Caption = 'Color:'
FocusControl = cbBrushColor
ParentColor = False
@ -75,8 +87,9 @@ object frmEditShape: TfrmEditShape
Left = 52
Height = 22
Top = 1
Width = 97
Width = 124
Style = [cbStandardColors, cbExtendedColors, cbPrettyNames, cbCustomColors]
BorderSpacing.Right = 8
ItemHeight = 16
OnChange = cbBrushColorChange
TabOrder = 1
@ -86,16 +99,19 @@ object frmEditShape: TfrmEditShape
Left = 8
Height = 140
Top = 88
Width = 165
Width = 192
BorderSpacing.Left = 8
BorderSpacing.Bottom = 8
Caption = ' Pen '
ClientHeight = 120
ClientWidth = 161
ClientWidth = 188
TabOrder = 1
object lblPenStyle: TLabel
Left = 8
Height = 15
Top = 35
Width = 28
BorderSpacing.Left = 8
Caption = 'Style:'
FocusControl = cbPenStyle
ParentColor = False
@ -105,6 +121,7 @@ object frmEditShape: TfrmEditShape
Height = 15
Top = 64
Width = 35
BorderSpacing.Left = 8
Caption = 'Width:'
FocusControl = edPenWidth
ParentColor = False
@ -114,6 +131,7 @@ object frmEditShape: TfrmEditShape
Height = 15
Top = 92
Width = 34
BorderSpacing.Left = 8
Caption = 'Mode:'
FocusControl = cbPenMode
ParentColor = False
@ -122,7 +140,8 @@ object frmEditShape: TfrmEditShape
Left = 52
Height = 23
Top = 32
Width = 97
Width = 124
BorderSpacing.Right = 8
ItemHeight = 15
OnChange = cbPenStyleChange
OnDrawItem = cbPenStyleDrawItem
@ -132,7 +151,9 @@ object frmEditShape: TfrmEditShape
Left = 52
Height = 23
Top = 88
Width = 97
Width = 124
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
ItemHeight = 15
TabOrder = 4
end
@ -160,8 +181,9 @@ object frmEditShape: TfrmEditShape
Left = 52
Height = 22
Top = 1
Width = 97
Width = 124
Style = [cbStandardColors, cbExtendedColors, cbPrettyNames, cbCustomColors]
BorderSpacing.Right = 8
ItemHeight = 16
OnChange = cbPenColorChange
TabOrder = 0
@ -171,6 +193,7 @@ object frmEditShape: TfrmEditShape
Height = 15
Top = 5
Width = 29
BorderSpacing.Left = 8
Caption = 'Color'
FocusControl = cbPenColor
ParentColor = False
@ -180,66 +203,71 @@ object frmEditShape: TfrmEditShape
Left = 8
Height = 67
Top = 8
Width = 324
Width = 400
BorderSpacing.Right = 8
Caption = 'gbShapes'
ClientHeight = 47
ClientWidth = 320
ClientWidth = 396
TabOrder = 0
object SpeedButton1: TSpeedButton
Left = 12
Height = 32
Top = 7
Top = 4
Width = 32
BorderSpacing.Left = 8
BorderSpacing.Bottom = 8
Down = True
GroupIndex = 1
end
object SpeedButton2: TSpeedButton
Left = 49
Height = 32
Top = 7
Top = 4
Width = 32
GroupIndex = 1
end
object SpeedButton3: TSpeedButton
Left = 86
Height = 32
Top = 7
Top = 4
Width = 32
GroupIndex = 1
end
object SpeedButton4: TSpeedButton
Left = 123
Height = 32
Top = 7
Top = 4
Width = 32
GroupIndex = 1
end
object SpeedButton5: TSpeedButton
Left = 160
Height = 32
Top = 7
Top = 4
Width = 32
GroupIndex = 1
end
object SpeedButton6: TSpeedButton
Left = 197
Height = 32
Top = 7
Top = 4
Width = 32
GroupIndex = 1
end
object SpeedButton7: TSpeedButton
Left = 234
Height = 32
Top = 7
Top = 4
Width = 32
GroupIndex = 1
end
object SpeedButton8: TSpeedButton
Left = 271
Height = 32
Top = 7
Top = 4
Width = 32
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
GroupIndex = 1
end
end

View File

@ -303,6 +303,10 @@ var
DELTA: Integer = 8;
VDIST: Integer = 4;
begin
AutoSize := false;
gbPen.AutoSize := false;
gbBrush.AutoSize := false;
// This is needed as workaround for the combobox height at higher dpi.
// We design it with Style csDropdown where the height is correct, and then
// use the corresponding, correct ItemHeight after switching to csOwnerDrawFixed
@ -316,7 +320,7 @@ begin
DELTA := round(DELTA * Screen.PixelsPerInch / DesignTimeDPI);
VDIST := round(VDIST * Screen.PixelsPerInch / DesignTimeDPI);
// Horizontal alignment
{ gbPen - hor }
w := MaxValue([GetLabelWidth(lblPenColor), GetLabelWidth(lblPenStyle),
GetLabelWidth(lblPenWidth), GetLabelWidth(lblPenMode)]) + 2 * DELTA;
cbPenColor.Left := w;
@ -327,27 +331,55 @@ begin
lblPenStyle.Left := cbPenColor.Left - GetLabelWidth(lblPenStyle) - DELTA;
lblPenWidth.Left := cbPenColor.Left - GetLabelWidth(lblPenWidth) - DELTA;
lblPenMode.Left := cbPenColor.Left - GetLabelWidth(lblPenMode) - DELTA;
gbPen.Width := RightOf(cbPenColor) + DELTA;
udPenWidth.Left := RightOf(edPenWidth);
{ gbPen - vert }
lblPenColor.Top := cbPenColor.Top + (cbPenColor.Height - lblPenColor.Height) div 2;
cbPenStyle.Top := BottomOf(cbPenColor) + VDIST;
lblPenstyle.Top := cbPenStyle.Top + (cbPenStyle.Height - lblPenStyle.Height) div 2;
edPenWidth.Top := BottomOf(cbPenStyle) + VDIST;
udPenWidth.Top := edPenWidth.Top;
lblPenWidth.Top := edPenWidth.Top + (edPenWidth.Height - lblPenWidth.Height) div 2;
cbPenMode.Top := BottomOf(edPenWidth) + VDIST;
lblPenMode.Top := cbPenMode.Top + (cbPenMode.Height - lblPenMode.Height) div 2;
{ gpPen - set size }
gbPen.AutoSize := true;
{ gbBrush - hor }
w := MaxValue([GetLabelWidth(lblBrushColor), GetLabelWidth(lblBrushStyle)]) + 2*DELTA;
cbBrushColor.Left := w;
cbBrushStyle.Left := w;
cbBrushColor.Width := cbPenColor.Width;
cbBrushStyle.Width := cbPenStyle.Width;
lblBrushColor.Left := cbBrushColor.Left - GetLabelWidth(lblBrushColor) - DELTA;
lblBrushStyle.Left := cbBrushColor.Left - GetLabelWidth(lblBrushStyle) - DELTA;
gbBrush.Left := RightOf(gbPen) + 16;
gbBrush.Width := RightOf(cbBrushColor) + DELTA;
{ gbBrush - ver }
lblBrushColor.Top := lblPenColor.Top;
cbBrushStyle.Top := cbPenStyle.Top;
lblBrushStyle.Top := lblPenStyle.Top;
{ gbBrush - set size }
gbBrush.AutoSize := true;
{ Buttons - hor }
btnOK.Width := Max(GetButtonWidth(btnOK), GetButtonWidth(btnCancel));
btnCancel.Width := btnOK.Width;
if btnOK.Width + DELTA + btnCancel.Width > gbBrush.Width then
gbBrush.Width := btnOK.Width + DELTA + btnCancel.Width;
if btnOK.Width + DELTA + btnCancel.Width > gbBrush.Width then begin
cbBrushColor.Width := cbBrushColor.Width + btnOK.Width + DELTA + btnCancel.Width - gbBrush.Width;
cbBrushStyle.Width := cbBrushColor.Width;
end;
btnCancel.Left := RightOf(gbBrush) - btnCancel.Width;
btnOK.Left := btnCancel.Left - DELTA - btnOK.Width;
ClientWidth := RightOf(gbBrush) + gbPen.Left;
{ Buttons - vert }
btnOK.Top := BottomOf(gbPen) - btnOK.Height;
btnCancel.Top := btnOK.Top;
gbShapes.Width := ClientWidth - gbShapes.Left * 2;
{ shapes - hor }
gbShapes.Width := RightOf(gbBrush) - gbShapes.Left;
w := (gbShapes.ClientWidth - 11 * DELTA) div 8;
for shape := Low(TVpShapeType) to High(TVpShapeType) do begin
if shape = Low(TVpShapeType) then
@ -356,26 +388,7 @@ begin
FShapeButtons[shape].Width := w;
end;
// Vertical alignment
lblPenColor.Top := cbPenColor.Top + (cbPenColor.Height - lblPenColor.Height) div 2;
lblBrushColor.Top := lblPenColor.Top;
cbPenStyle.Top := BottomOf(cbPenColor) + VDIST;
cbBrushStyle.Top := cbPenStyle.Top;
lblPenstyle.Top := cbPenStyle.Top + (cbPenStyle.Height - lblPenStyle.Height) div 2;
lblBrushStyle.Top := lblPenStyle.Top;
edPenWidth.Top := BottomOf(cbPenStyle) + VDIST;
udPenWidth.Top := edPenWidth.Top;
lblPenWidth.Top := edPenWidth.Top + (edPenWidth.Height - lblPenWidth.Height) div 2;
cbPenMode.Top := BottomOf(edPenWidth) + VDIST;
lblPenMode.Top := cbPenMode.Top + (cbPenMode.Height - lblPenMode.Height) div 2;
gbPen.ClientHeight := BottomOf(cbPenMode) + DELTA;
gbBrush.ClientHeight := BottomOf(cbBrushStyle) + DELTA;
btnOK.Top := BottomOf(gbPen) - btnOK.Height;
btnCancel.Top := btnOK.Top;
ClientHeight := BottomOf(btnOK) + DELTA;
AutoSize := true;
end;
procedure TfrmEditShape.SaveData(AShape: TVpPrintShape);