mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 07:59:43 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			406 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			406 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
{
 | 
						|
 ***************************************************************************
 | 
						|
 *                                                                         *
 | 
						|
 *   This source is free software; you can redistribute it and/or modify   *
 | 
						|
 *   it under the terms of the GNU General Public License as published by  *
 | 
						|
 *   the Free Software Foundation; either version 2 of the License, or     *
 | 
						|
 *   (at your option) any later version.                                   *
 | 
						|
 *                                                                         *
 | 
						|
 *   This code is distributed in the hope that it will be useful, but      *
 | 
						|
 *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
 | 
						|
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
 | 
						|
 *   General Public License for more details.                              *
 | 
						|
 *                                                                         *
 | 
						|
 *   A copy of the GNU General Public License is available on the World    *
 | 
						|
 *   Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also      *
 | 
						|
 *   obtain it by writing to the Free Software Foundation,                 *
 | 
						|
 *   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.        *
 | 
						|
 *                                                                         *
 | 
						|
 ***************************************************************************
 | 
						|
}
 | 
						|
unit editor_mouseaction_options;
 | 
						|
 | 
						|
{$mode objfpc}{$H+}
 | 
						|
 | 
						|
interface
 | 
						|
 | 
						|
uses
 | 
						|
  math, EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf, SynEdit,
 | 
						|
  StdCtrls, ExtCtrls, Classes, LCLProc, editor_mouseaction_options_advanced, Controls, Forms;
 | 
						|
 | 
						|
type
 | 
						|
 | 
						|
  { TEditorMouseOptionsFrame }
 | 
						|
 | 
						|
  TEditorMouseOptionsFrame = class(TAbstractIDEOptionsEditor)
 | 
						|
    BottomDivider: TBevel;
 | 
						|
    chkPredefinedScheme: TCheckBox;
 | 
						|
    CtrLLeftLabel: TLabel;
 | 
						|
    CtrlLeftRadio1: TRadioButton;
 | 
						|
    CtrlLeftRadio2: TRadioButton;
 | 
						|
    CtrlLeftRadio3: TRadioButton;
 | 
						|
    DiffLabel: TLabel;
 | 
						|
    dropUserSchemes: TComboBox;
 | 
						|
    GenericDividerLabel: TLabel;
 | 
						|
    GenericDividerLeft: TBevel;
 | 
						|
    GenericDividerRight: TBevel;
 | 
						|
    GutterDividerLabel: TLabel;
 | 
						|
    GutterDividerLeft: TBevel;
 | 
						|
    GutterDividerRight: TBevel;
 | 
						|
    GutterLeftRadio1: TRadioButton;
 | 
						|
    GutterLeftRadio2: TRadioButton;
 | 
						|
    HideMouseCheckBox: TCheckBox;
 | 
						|
    MiddleBtnLabel: TLabel;
 | 
						|
    pnlBottom: TPanel;
 | 
						|
    PanelGutter: TPanel;
 | 
						|
    PanelTextCheckBox: TPanel;
 | 
						|
    PanelTextCtrlLeft: TPanel;
 | 
						|
    PanelTextMiddle: TPanel;
 | 
						|
    pnlAllGutter: TPanel;
 | 
						|
    pnlAllText: TPanel;
 | 
						|
    pnlUserSchemes: TPanel;
 | 
						|
    ResetAllButton: TButton;
 | 
						|
    ResetGutterButton: TButton;
 | 
						|
    ResetTextButton: TButton;
 | 
						|
    RightMoveCaret: TCheckBox;
 | 
						|
    ScrollBox1: TScrollBox;
 | 
						|
    TextAltMode: TCheckBox;
 | 
						|
    TextDividerLabel: TLabel;
 | 
						|
    TextDividerLeft: TBevel;
 | 
						|
    TextDividerRight: TBevel;
 | 
						|
    TextDoubleSelLine: TCheckBox;
 | 
						|
    TextDrag: TCheckBox;
 | 
						|
    TextMidRadio1: TRadioButton;
 | 
						|
    TextMidRadio2: TRadioButton;
 | 
						|
    TextMidRadio3: TRadioButton;
 | 
						|
    RadioGroup1: TRadioGroup;
 | 
						|
    TextLeft: TCheckGroup;
 | 
						|
    TextMiddle: TRadioGroup;
 | 
						|
    GutterLeft: TRadioGroup;
 | 
						|
    WarnLabel: TLabel;
 | 
						|
    procedure CheckOrRadioChange(Sender: TObject);
 | 
						|
    procedure chkPredefinedSchemeChange(Sender: TObject);
 | 
						|
    procedure dropUserSchemesChange(Sender: TObject);
 | 
						|
    procedure dropUserSchemesKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
 | 
						|
    procedure ResetGutterButtonClick(Sender: TObject);
 | 
						|
    procedure ResetTextButtonClick(Sender: TObject);
 | 
						|
    procedure ResetAllButtonClick(Sender: TObject);
 | 
						|
  private
 | 
						|
    FDialog: TAbstractOptionsEditorDialog;
 | 
						|
    FOptions: TAbstractIDEOptions;
 | 
						|
    FTempMouseSettings: TEditorMouseOptions;
 | 
						|
    FInClickHandler: Integer;
 | 
						|
    procedure UpdateButtons;
 | 
						|
    function  IsUserSchemeChanged: Boolean;
 | 
						|
    function  IsTextSettingsChanged: Boolean;
 | 
						|
    function  IsGutterSettingsChanged: Boolean;
 | 
						|
    procedure SaveUserScheme;
 | 
						|
    procedure SaveTextSettings;
 | 
						|
    procedure SaveGutterSettings;
 | 
						|
  protected
 | 
						|
    procedure SetVisible(Value: Boolean); override;
 | 
						|
  public
 | 
						|
    //constructor Create(AOwner: TComponent); override;
 | 
						|
    //destructor Destroy; override;
 | 
						|
    function GetTitle: String; override;
 | 
						|
    procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
 | 
						|
    procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
 | 
						|
    procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
 | 
						|
    class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
 | 
						|
    class function DefaultCollapseChildNodes: Boolean; override;
 | 
						|
  end;
 | 
						|
 | 
						|
implementation
 | 
						|
 | 
						|
{$R *.lfm}
 | 
						|
 | 
						|
{ TEditorMouseOptionsFrame }
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.CheckOrRadioChange(Sender: TObject);
 | 
						|
begin
 | 
						|
  if FInClickHandler > 0 then exit;
 | 
						|
  Inc(FInClickHandler);
 | 
						|
  try
 | 
						|
    if FTempMouseSettings.IsPresetEqualToMouseActions then begin
 | 
						|
      // write settings to conf (and reset conf to settings)
 | 
						|
      SaveGutterSettings;
 | 
						|
      SaveTextSettings;
 | 
						|
    end;
 | 
						|
    UpdateButtons;
 | 
						|
  finally
 | 
						|
    Dec(FInClickHandler);
 | 
						|
  end;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.UpdateButtons;
 | 
						|
begin
 | 
						|
    if FTempMouseSettings.IsPresetEqualToMouseActions then begin
 | 
						|
      ResetTextButton.Visible   := False;
 | 
						|
      ResetGutterButton.Visible := False;
 | 
						|
      ResetAllButton.Visible    := False;
 | 
						|
      WarnLabel.Visible := False;
 | 
						|
      DiffLabel.Visible := False;
 | 
						|
      BottomDivider.Visible := False;
 | 
						|
    end
 | 
						|
    else begin
 | 
						|
      ResetTextButton.Visible   := (FTempMouseSettings.SelectedUserScheme = '') and IsTextSettingsChanged;
 | 
						|
      ResetGutterButton.Visible := (FTempMouseSettings.SelectedUserScheme = '') and IsGutterSettingsChanged;
 | 
						|
      ResetAllButton.Visible    := True; // ResetTextButton.Enabled or ResetGutterButton.Enabled;
 | 
						|
      WarnLabel.Visible := (IsTextSettingsChanged or IsGutterSettingsChanged) and
 | 
						|
                           ( (FTempMouseSettings.SelectedUserScheme = '') or
 | 
						|
                             IsUserSchemeChanged );
 | 
						|
      DiffLabel.Visible := (not WarnLabel.Visible);
 | 
						|
      BottomDivider.Visible := True;
 | 
						|
    end;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.dropUserSchemesChange(Sender: TObject);
 | 
						|
begin
 | 
						|
  if Sender <> nil then begin;
 | 
						|
    chkPredefinedScheme.Checked := dropUserSchemes.ItemIndex > 0;
 | 
						|
    if dropUserSchemes.ItemIndex > 0 then
 | 
						|
      dropUserSchemes.tag := dropUserSchemes.ItemIndex;
 | 
						|
  end;
 | 
						|
  pnlAllGutter.Enabled := dropUserSchemes.ItemIndex = 0;
 | 
						|
  pnlAllText.Enabled   := dropUserSchemes.ItemIndex = 0;
 | 
						|
  if FTempMouseSettings.IsPresetEqualToMouseActions then
 | 
						|
    SaveUserScheme;
 | 
						|
  UpdateButtons;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.dropUserSchemesKeyDown(Sender: TObject; var Key: Word;
 | 
						|
  Shift: TShiftState);
 | 
						|
begin
 | 
						|
  dropUserSchemesChange(Sender);
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.chkPredefinedSchemeChange(Sender: TObject);
 | 
						|
begin
 | 
						|
  if chkPredefinedScheme.Checked then
 | 
						|
    dropUserSchemes.ItemIndex := Max(dropUserSchemes.Tag, 1)
 | 
						|
  else
 | 
						|
    dropUserSchemes.ItemIndex := 0;
 | 
						|
  dropUserSchemesChange(nil);
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.ResetGutterButtonClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  SaveGutterSettings;
 | 
						|
  UpdateButtons;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.ResetTextButtonClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  SaveTextSettings;
 | 
						|
  UpdateButtons;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.ResetAllButtonClick(Sender: TObject);
 | 
						|
begin
 | 
						|
  SaveGutterSettings;
 | 
						|
  SaveTextSettings;
 | 
						|
  SaveUserScheme; // must be last
 | 
						|
  UpdateButtons;
 | 
						|
end;
 | 
						|
 | 
						|
function TEditorMouseOptionsFrame.IsUserSchemeChanged: Boolean;
 | 
						|
begin
 | 
						|
  Result := FTempMouseSettings.SelectedUserSchemeIndex <>
 | 
						|
    PtrInt(dropUserSchemes.Items.Objects[dropUserSchemes.ItemIndex]);
 | 
						|
end;
 | 
						|
 | 
						|
function TEditorMouseOptionsFrame.IsTextSettingsChanged: Boolean;
 | 
						|
begin
 | 
						|
  Result := not (
 | 
						|
    (FTempMouseSettings.AltColumnMode = TextAltMode.Checked) and
 | 
						|
    (FTempMouseSettings.TextDrag = TextDrag.Checked) and
 | 
						|
    (FTempMouseSettings.TextRightMoveCaret = RightMoveCaret.Checked) and
 | 
						|
    (FTempMouseSettings.TextDoubleSelLine = TextDoubleSelLine.Checked) and
 | 
						|
    ( (TextMidRadio1.Checked and (FTempMouseSettings.TextMiddleClick = moTMPaste)) or
 | 
						|
      (TextMidRadio2.Checked and (FTempMouseSettings.TextMiddleClick = moTMIgnore)) or
 | 
						|
      (TextMidRadio3.Checked and (FTempMouseSettings.TextMiddleClick = moTMDeclarationJump))
 | 
						|
    ) and
 | 
						|
    ( (CtrlLeftRadio1.Checked and (FTempMouseSettings.TextCtrlLeftClick = moTCLJump)) or
 | 
						|
      (CtrlLeftRadio2.Checked and (FTempMouseSettings.TextCtrlLeftClick = moTCLNone)) or
 | 
						|
      (CtrlLeftRadio3.Checked and (FTempMouseSettings.TextCtrlLeftClick = moTCLJumpOrBlock))
 | 
						|
    )
 | 
						|
  );
 | 
						|
end;
 | 
						|
 | 
						|
function TEditorMouseOptionsFrame.IsGutterSettingsChanged: Boolean;
 | 
						|
begin
 | 
						|
  Result := not (
 | 
						|
    ( (GutterLeftRadio1.Checked and (FTempMouseSettings.GutterLeft = moGLDownClick)) or
 | 
						|
      (GutterLeftRadio2.Checked and (FTempMouseSettings.GutterLeft = moglUpClickAndSelect))
 | 
						|
    )
 | 
						|
  );
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.SaveUserScheme;
 | 
						|
var
 | 
						|
  i: Integer;
 | 
						|
begin
 | 
						|
  i := PtrInt(dropUserSchemes.Items.Objects[dropUserSchemes.ItemIndex]);
 | 
						|
  FTempMouseSettings.SelectedUserSchemeIndex := i;
 | 
						|
  if i >= 0 then
 | 
						|
    FTempMouseSettings.ResetToUserScheme
 | 
						|
  else begin
 | 
						|
    FTempMouseSettings.ResetTextToDefault;
 | 
						|
    FTempMouseSettings.ResetGutterToDefault;
 | 
						|
  end;
 | 
						|
  if FDialog.FindEditor(TEditorMouseOptionsAdvFrame) <> nil then
 | 
						|
    TEditorMouseOptionsAdvFrame(FDialog.FindEditor(TEditorMouseOptionsAdvFrame)).RefreshSettings;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.SaveTextSettings;
 | 
						|
begin
 | 
						|
  FTempMouseSettings.AltColumnMode := TextAltMode.Checked;
 | 
						|
  FTempMouseSettings.TextDrag := TextDrag.Checked;
 | 
						|
  FTempMouseSettings.TextRightMoveCaret := RightMoveCaret.Checked;
 | 
						|
  FTempMouseSettings.TextDoubleSelLine := TextDoubleSelLine.Checked;
 | 
						|
 | 
						|
  if TextMidRadio3.Checked then
 | 
						|
    FTempMouseSettings.TextMiddleClick := moTMDeclarationJump
 | 
						|
  else if TextMidRadio2.Checked then
 | 
						|
    FTempMouseSettings.TextMiddleClick := moTMIgnore
 | 
						|
  else
 | 
						|
    FTempMouseSettings.TextMiddleClick := moTMPaste;
 | 
						|
 | 
						|
  if CtrlLeftRadio3.Checked then
 | 
						|
    FTempMouseSettings.TextCtrlLeftClick := moTCLJumpOrBlock
 | 
						|
  else if CtrlLeftRadio2.Checked then
 | 
						|
    FTempMouseSettings.TextCtrlLeftClick := moTCLNone
 | 
						|
  else
 | 
						|
    FTempMouseSettings.TextCtrlLeftClick := moTCLJump;
 | 
						|
 | 
						|
  FTempMouseSettings.ResetTextToDefault;
 | 
						|
  if FDialog.FindEditor(TEditorMouseOptionsAdvFrame) <> nil then
 | 
						|
    TEditorMouseOptionsAdvFrame(FDialog.FindEditor(TEditorMouseOptionsAdvFrame)).RefreshSettings;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.SaveGutterSettings;
 | 
						|
begin
 | 
						|
  if GutterLeftRadio2.Checked then
 | 
						|
    FTempMouseSettings.GutterLeft := moglUpClickAndSelect
 | 
						|
  else
 | 
						|
    FTempMouseSettings.GutterLeft := moGLDownClick;
 | 
						|
  FTempMouseSettings.ResetGutterToDefault;
 | 
						|
  if FDialog.FindEditor(TEditorMouseOptionsAdvFrame) <> nil then
 | 
						|
    TEditorMouseOptionsAdvFrame(FDialog.FindEditor(TEditorMouseOptionsAdvFrame)).RefreshSettings;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.SetVisible(Value: Boolean);
 | 
						|
begin
 | 
						|
  inherited SetVisible(Value);
 | 
						|
  if Value and (FTempMouseSettings <> nil) then
 | 
						|
    UpdateButtons;
 | 
						|
end;
 | 
						|
 | 
						|
function TEditorMouseOptionsFrame.GetTitle: String;
 | 
						|
begin
 | 
						|
  Result := dlgMouseOptions;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
 | 
						|
begin
 | 
						|
  FDialog := ADialog;
 | 
						|
  chkPredefinedScheme.Caption := dlfMousePredefinedScheme;
 | 
						|
  GenericDividerLabel.Caption := dlfMouseSimpleGenericSect;
 | 
						|
  GutterDividerLabel.Caption := dlfMouseSimpleGutterSect;
 | 
						|
  GutterLeftRadio1.Caption := dlfMouseSimpleGutterLeftDown;
 | 
						|
  GutterLeftRadio2.Caption := dlfMouseSimpleGutterLeftUp;
 | 
						|
  TextDividerLabel.Caption := dlfMouseSimpleTextSect;
 | 
						|
  TextAltMode.Caption := dlfMouseSimpleTextSectAlt;
 | 
						|
  TextDrag.Caption := dlfMouseSimpleTextSectDrag;
 | 
						|
  TextDoubleSelLine.Caption := dlfMouseSimpleTextSectDoubleSelLine;
 | 
						|
  RightMoveCaret.Caption := dlfMouseSimpleRightMoveCaret;
 | 
						|
  MiddleBtnLabel.Caption := dlfMouseSimpleTextSectMidLabel;
 | 
						|
  TextMidRadio1.Caption := dlfMouseSimpleTextSectMidPaste;
 | 
						|
  TextMidRadio2.Caption := dlfMouseSimpleTextSectMidNone;
 | 
						|
  TextMidRadio3.Caption := dlfMouseSimpleTextSectMidGoto;
 | 
						|
  CtrLLeftLabel.Caption := dlfMouseSimpleTextSectCtrlLeftLabel;
 | 
						|
  CtrlLeftRadio1.Caption := dlfMouseSimpleTextSectCtrlLeftRJump;
 | 
						|
  CtrlLeftRadio2.Caption := dlfMouseSimpleTextSectCtrlLeftRNone;
 | 
						|
  CtrlLeftRadio3.Caption := dlfMouseSimpleTextSectCtrlLeftRJumpOrBlock;
 | 
						|
  WarnLabel.Caption := dlfMouseSimpleWarning;
 | 
						|
  DiffLabel.Caption := dlfMouseSimpleDiff;
 | 
						|
  ResetAllButton.Caption := dlfMouseResetAll;
 | 
						|
  ResetGutterButton.Caption := dlfMouseResetGutter;
 | 
						|
  ResetTextButton.Caption := dlfMouseResetText;
 | 
						|
  HideMouseCheckBox.Caption := dlgAutoHideCursor;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.ReadSettings(
 | 
						|
  AOptions: TAbstractIDEOptions);
 | 
						|
var
 | 
						|
  i: Integer;
 | 
						|
begin
 | 
						|
  Inc(FInClickHandler);
 | 
						|
  FOptions := AOptions;
 | 
						|
  FTempMouseSettings := TEditorOptions(AOptions).TempMouseSettings;
 | 
						|
  FTempMouseSettings.Assign(TEditorOptions(AOptions).UserMouseSettings);
 | 
						|
 | 
						|
  pnlUserSchemes.Visible := FTempMouseSettings.UserSchemeCount > 0;
 | 
						|
  dropUserSchemes.Clear;
 | 
						|
  for i := 0 to FTempMouseSettings.UserSchemeCount - 1 do begin
 | 
						|
    dropUserSchemes.Items.AddObject(FTempMouseSettings.UserSchemeNames[i],
 | 
						|
                                    TObject(PtrUInt(i)) );
 | 
						|
  end;
 | 
						|
  dropUserSchemes.Sorted := True;
 | 
						|
  dropUserSchemes.Sorted := False;
 | 
						|
  dropUserSchemes.Items.InsertObject(0, dlfNoPredefinedScheme, TObject(PtrUInt(-1)));
 | 
						|
  dropUserSchemes.ItemIndex := dropUserSchemes.Items.IndexOfObject
 | 
						|
    ( TObject(PtrUInt(FTempMouseSettings.SelectedUserSchemeIndex)) );
 | 
						|
  dropUserSchemesChange(Self);
 | 
						|
 | 
						|
  case FTempMouseSettings.GutterLeft of
 | 
						|
    moGLDownClick: GutterLeftRadio1.Checked := True;
 | 
						|
    moglUpClickAndSelect: GutterLeftRadio2.Checked := True;
 | 
						|
  end;
 | 
						|
  TextAltMode.Checked := FTempMouseSettings.AltColumnMode;
 | 
						|
  TextDrag.Checked    := FTempMouseSettings.TextDrag;
 | 
						|
  RightMoveCaret.Checked := FTempMouseSettings.TextRightMoveCaret;
 | 
						|
  TextDoubleSelLine.Checked := FTempMouseSettings.TextDoubleSelLine;
 | 
						|
  case FTempMouseSettings.TextMiddleClick of
 | 
						|
    moTMPaste: TextMidRadio1.Checked := True;
 | 
						|
    moTMIgnore: TextMidRadio2.Checked := True;
 | 
						|
    moTMDeclarationJump: TextMidRadio3.Checked := True;
 | 
						|
  end;
 | 
						|
  case FTempMouseSettings.TextCtrlLeftClick of
 | 
						|
    moTCLJump: CtrlLeftRadio1.Checked := True;
 | 
						|
    moTCLNone: CtrlLeftRadio2.Checked := True;
 | 
						|
    moTCLJumpOrBlock: CtrlLeftRadio3.Checked := True;
 | 
						|
  end;
 | 
						|
  Dec(FInClickHandler);
 | 
						|
  UpdateButtons;
 | 
						|
 | 
						|
  HideMouseCheckBox.Checked := eoAutoHideCursor in TEditorOptions(AOptions).SynEditOptions2;
 | 
						|
end;
 | 
						|
 | 
						|
procedure TEditorMouseOptionsFrame.WriteSettings(
 | 
						|
  AOptions: TAbstractIDEOptions);
 | 
						|
begin
 | 
						|
  TEditorOptions(AOptions).UserMouseSettings.Assign(FTempMouseSettings);
 | 
						|
  with TEditorOptions(AOptions) do begin
 | 
						|
    if HideMouseCheckBox.Checked then
 | 
						|
      SynEditOptions2 := SynEditOptions2 + [eoAutoHideCursor]
 | 
						|
    else
 | 
						|
      SynEditOptions2 := SynEditOptions2 - [eoAutoHideCursor]
 | 
						|
  end;
 | 
						|
end;
 | 
						|
 | 
						|
class function TEditorMouseOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
 | 
						|
begin
 | 
						|
  Result := TEditorOptions;
 | 
						|
end;
 | 
						|
 | 
						|
class function TEditorMouseOptionsFrame.DefaultCollapseChildNodes: Boolean;
 | 
						|
begin
 | 
						|
  Result := True;
 | 
						|
end;
 | 
						|
 | 
						|
initialization
 | 
						|
  RegisterIDEOptionsEditor(GroupEditor, TEditorMouseOptionsFrame, EdtOptionsMouse);
 | 
						|
end.
 | 
						|
 |