mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 15:56:10 +02:00
IDE: editor display options, allow to force pixel/point size for font (negative size). Issue #30085
git-svn-id: trunk@52408 -
This commit is contained in:
parent
3f338479ba
commit
91c8da3f8c
@ -25,7 +25,7 @@ unit editor_display_options;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Graphics, Dialogs, StdCtrls, Spin, LCLType, SynEdit,
|
||||
Classes, SysUtils, Graphics, Dialogs, StdCtrls, Spin, LCLType, Controls, LCLProc, SynEdit,
|
||||
SynEditMouseCmds, EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf,
|
||||
IDEUtils, editor_general_options, editor_color_options, IDEProcs,
|
||||
SynGutterLineNumber, SynGutterLineOverview, SynGutter, SourceSynEditor,
|
||||
@ -166,23 +166,35 @@ end;
|
||||
procedure TEditorDisplayOptionsFrame.EditorFontSizeSpinEditChange(Sender: TObject);
|
||||
var
|
||||
NewVal, a: Integer;
|
||||
s: TCaption;
|
||||
begin
|
||||
NewVal := EditorFontSizeSpinEdit.Value;
|
||||
if (NewVal < 0) and (NewVal > -EditorOptionsMinimumFontSize) then
|
||||
begin
|
||||
// Skip to minimum positive value. Will trigger OnChange again.
|
||||
SetEditorFontSizeSpinEditValue(EditorOptionsMinimumFontSize);
|
||||
s := EditorFontSizeSpinEdit.Text;
|
||||
if copy(trim(s),1,1) = '-' then begin
|
||||
if EditorFontSizeSpinEdit.MinValue > 0 then begin
|
||||
EditorFontSizeSpinEdit.MinValue := -100;
|
||||
EditorFontSizeSpinEdit.MaxValue := -EditorOptionsMinimumFontSize;
|
||||
EditorFontSizeSpinEdit.Text := s;
|
||||
end
|
||||
else
|
||||
if EditorFontSizeSpinEdit.Value > -EditorOptionsMinimumFontSize then
|
||||
EditorFontSizeSpinEdit.Value := -EditorOptionsMinimumFontSize;
|
||||
end
|
||||
else
|
||||
begin
|
||||
if (NewVal > 0) and not FUpdatingFontSizeRange then
|
||||
else begin
|
||||
if EditorFontSizeSpinEdit.MinValue < 0 then begin
|
||||
EditorFontSizeSpinEdit.MaxValue := 100;
|
||||
EditorFontSizeSpinEdit.MinValue := EditorOptionsMinimumFontSize;
|
||||
|
||||
with GeneralPage do
|
||||
for a := Low(PreviewEdits) to High(PreviewEdits) do
|
||||
if PreviewEdits[a] <> nil then
|
||||
PreviewEdits[a].Font.Size := NewVal;
|
||||
EditorFontSizeSpinEdit.Text := s;
|
||||
end
|
||||
else
|
||||
if EditorFontSizeSpinEdit.Value < EditorOptionsMinimumFontSize then
|
||||
EditorFontSizeSpinEdit.Value := EditorOptionsMinimumFontSize;
|
||||
end;
|
||||
|
||||
NewVal := EditorFontSizeSpinEdit.Value;
|
||||
with GeneralPage do
|
||||
for a := Low(PreviewEdits) to High(PreviewEdits) do
|
||||
if PreviewEdits[a] <> nil then
|
||||
PreviewEdits[a].Font.Size := NewVal;
|
||||
end;
|
||||
|
||||
procedure TEditorDisplayOptionsFrame.ComboboxOnExit(Sender: TObject);
|
||||
@ -319,10 +331,14 @@ end;
|
||||
procedure TEditorDisplayOptionsFrame.SetEditorFontSizeSpinEditValue(FontSize: Integer);
|
||||
begin
|
||||
FUpdatingFontSizeRange := True;
|
||||
if FontSize < 0 then
|
||||
EditorFontSizeSpinEdit.MinValue := -EditorFontSizeSpinEdit.MaxValue
|
||||
else
|
||||
if FontSize < 0 then begin
|
||||
EditorFontSizeSpinEdit.MinValue := -100;
|
||||
EditorFontSizeSpinEdit.MaxValue := -EditorOptionsMinimumFontSize;
|
||||
end
|
||||
else begin
|
||||
EditorFontSizeSpinEdit.MaxValue := 100;
|
||||
EditorFontSizeSpinEdit.MinValue := EditorOptionsMinimumFontSize;
|
||||
end;
|
||||
FUpdatingFontSizeRange := False;
|
||||
EditorFontSizeSpinEdit.Value := FontSize;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user