mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-10 09:39:25 +02:00
IDE: saving key scheme
git-svn-id: trunk@16763 -
This commit is contained in:
parent
f0a7f0e032
commit
5c92367f38
@ -1535,7 +1535,7 @@ begin
|
||||
fEditorFontHeight := SynDefaultFontHeight;
|
||||
|
||||
// Key Mappings
|
||||
fKeyMappingScheme := 'default';
|
||||
fKeyMappingScheme := KeyMapSchemeNames[kmsLazarus];
|
||||
fKeyMap := TKeyCommandRelationList.Create;
|
||||
|
||||
// Color options
|
||||
@ -1680,7 +1680,7 @@ begin
|
||||
// Key Mappings options
|
||||
fKeyMappingScheme :=
|
||||
XMLConfig.GetValue('EditorOptions/KeyMapping/Scheme',
|
||||
StrToValidXMLName(fKeyMappingScheme));
|
||||
StrToValidXMLName(KeyMapSchemeNames[kmsLazarus]));
|
||||
fKeyMap.LoadFromXMLConfig(XMLConfig
|
||||
, 'EditorOptions/KeyMapping/' + fKeyMappingScheme + '/');
|
||||
|
||||
@ -1811,7 +1811,8 @@ begin
|
||||
,FDoNotWarnForFont, '');
|
||||
|
||||
// Key Mappings options
|
||||
XMLConfig.SetValue('EditorOptions/KeyMapping/Scheme', fKeyMappingScheme);
|
||||
XMLConfig.SetDeleteValue('EditorOptions/KeyMapping/Scheme', fKeyMappingScheme,
|
||||
KeyMapSchemeNames[kmsLazarus]);
|
||||
fKeyMap.SaveToXMLConfig(
|
||||
XMLConfig, 'EditorOptions/KeyMapping/' + fKeyMappingScheme + '/');
|
||||
|
||||
@ -2916,8 +2917,10 @@ procedure TEditorOptionsForm.KeyMappingChooseSchemeButtonClick(
|
||||
var
|
||||
NewScheme: String;
|
||||
begin
|
||||
NewScheme:=EditorOpts.KeyMappingScheme;
|
||||
if ShowChooseKeySchemeDialog(NewScheme) <> mrOk then
|
||||
exit;
|
||||
EditorOpts.KeyMappingScheme:=NewScheme;
|
||||
EditingKeyMap.LoadScheme(NewScheme);
|
||||
FillKeyMappingTreeView;
|
||||
end;
|
||||
|
@ -47,6 +47,16 @@ type
|
||||
kmsCustom
|
||||
);
|
||||
|
||||
const
|
||||
KeyMapSchemeNames: array[TKeyMapScheme] of string = (
|
||||
'default',
|
||||
'Classic',
|
||||
'MacOSXApple',
|
||||
'MacOSXLaz',
|
||||
'Custom'
|
||||
);
|
||||
|
||||
type
|
||||
//---------------------------------------------------------------------------
|
||||
// TKeyCommandCategory is used to divide the key commands in handy packets
|
||||
TKeyCommandCategory = class(TIDECommandCategory)
|
||||
@ -1406,16 +1416,13 @@ end;
|
||||
|
||||
function KeySchemeNameToSchemeType(const SchemeName: string): TKeyMapScheme;
|
||||
begin
|
||||
if (SchemeName='') or (CompareText(SchemeName,'Default')=0) then
|
||||
Result:=kmsLazarus
|
||||
else if (CompareText(SchemeName,'Classic')=0) then
|
||||
Result:=kmsClassic
|
||||
else if (CompareText(SchemeName,'Mac OS X (Apple style)')=0) then
|
||||
Result:=kmsMacOSXApple
|
||||
else if (CompareText(SchemeName,'Mac OS X (Lazarus style)')=0) then
|
||||
Result:=kmsMacOSXLaz
|
||||
else
|
||||
Result:=kmsCustom;
|
||||
if SchemeName='' then
|
||||
exit(kmsLazarus);
|
||||
for Result:=Low(TKeyMapScheme) to High(TKeyMapScheme) do begin
|
||||
if CompareText(SchemeName,KeyMapSchemeNames[Result])=0 then
|
||||
exit;
|
||||
end;
|
||||
Result:=kmsCustom;
|
||||
end;
|
||||
|
||||
function ShiftStateToStr(Shift:TShiftState):string;
|
||||
|
@ -1,44 +1,107 @@
|
||||
object ChooseKeySchemeDlg: TChooseKeySchemeDlg
|
||||
Left = 406
|
||||
Height = 219
|
||||
Height = 283
|
||||
Top = 307
|
||||
Width = 400
|
||||
Width = 450
|
||||
HelpContext = 0
|
||||
ActiveControl = SchemeRadiogroup.RadioButton0
|
||||
Align = alNone
|
||||
AllowDropFiles = False
|
||||
AutoScroll = True
|
||||
AutoSize = False
|
||||
BorderIcons = [biSystemMenu, biMinimize, biMaximize]
|
||||
BorderStyle = bsSizeable
|
||||
Caption = 'ChooseKeySchemeDlg'
|
||||
ClientHeight = 219
|
||||
ClientWidth = 400
|
||||
ChildSizing.LeftRightSpacing = 0
|
||||
ChildSizing.TopBottomSpacing = 0
|
||||
ChildSizing.HorizontalSpacing = 0
|
||||
ChildSizing.VerticalSpacing = 0
|
||||
ChildSizing.ControlsPerLine = 0
|
||||
ClientHeight = 283
|
||||
ClientWidth = 450
|
||||
DockSite = False
|
||||
DragKind = dkDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
Font.Height = 0
|
||||
Font.Style = []
|
||||
FormStyle = fsNormal
|
||||
OnCreate = ChooseKeySchemeDlgCREATE
|
||||
ParentBiDiMode = True
|
||||
ParentFont = False
|
||||
Position = poScreenCenter
|
||||
LCLVersion = '0.9.25'
|
||||
ShowInTaskBar = stDefault
|
||||
UseDockManager = False
|
||||
LCLVersion = '0.9.27'
|
||||
WindowState = wsNormal
|
||||
object NoteLabel: TLabel
|
||||
Left = 8
|
||||
Height = 44
|
||||
Top = 10
|
||||
Width = 382
|
||||
Width = 432
|
||||
HelpContext = 0
|
||||
Align = alNone
|
||||
Alignment = taLeftJustify
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
AutoSize = False
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 0
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
Caption = 'NoteLabel'
|
||||
DragCursor = crDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
Layout = tlTop
|
||||
ParentBidiMode = True
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
ShowAccelChar = True
|
||||
Transparent = True
|
||||
Visible = True
|
||||
WordWrap = True
|
||||
OptimalFill = False
|
||||
end
|
||||
object SchemeRadiogroup: TRadioGroup
|
||||
Left = 8
|
||||
Height = 116
|
||||
Height = 180
|
||||
Top = 56
|
||||
Width = 384
|
||||
Width = 434
|
||||
HelpContext = 0
|
||||
Align = alNone
|
||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||
AutoFill = True
|
||||
AutoSize = False
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 0
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
Caption = 'Scheme'
|
||||
ChildSizing.LeftRightSpacing = 6
|
||||
ChildSizing.TopBottomSpacing = 6
|
||||
ChildSizing.HorizontalSpacing = 0
|
||||
ChildSizing.VerticalSpacing = 0
|
||||
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
|
||||
ChildSizing.EnlargeVertical = crsHomogenousChildResize
|
||||
ChildSizing.ShrinkHorizontal = crsScaleChilds
|
||||
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 1
|
||||
ClientHeight = 98
|
||||
ClientWidth = 380
|
||||
ClientHeight = 161
|
||||
ClientWidth = 430
|
||||
ColumnLayout = clHorizontalThenVertical
|
||||
Columns = 1
|
||||
Ctl3D = False
|
||||
DragCursor = crDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'Default (Lazarus)'
|
||||
@ -46,28 +109,117 @@ object ChooseKeySchemeDlg: TChooseKeySchemeDlg
|
||||
'Mac OS X (Apple style)'
|
||||
'Mac OS X (Lazarus style)'
|
||||
)
|
||||
ParentFont = True
|
||||
ParentColor = True
|
||||
ParentCtl3D = True
|
||||
ParentShowHint = True
|
||||
TabOrder = 0
|
||||
TabStop = True
|
||||
Visible = True
|
||||
end
|
||||
object CancelButton: TBitBtn
|
||||
Left = 216
|
||||
Height = 25
|
||||
Top = 186
|
||||
Width = 75
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
NumGlyphs = 0
|
||||
object BtnPanel: TPanel
|
||||
Left = 0
|
||||
Height = 41
|
||||
Top = 242
|
||||
Width = 450
|
||||
HelpContext = 0
|
||||
Align = alBottom
|
||||
Alignment = taCenter
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 0
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
BevelInner = bvNone
|
||||
BevelOuter = bvNone
|
||||
BevelWidth = 1
|
||||
BorderWidth = 0
|
||||
BorderStyle = bsNone
|
||||
ChildSizing.LeftRightSpacing = 0
|
||||
ChildSizing.TopBottomSpacing = 0
|
||||
ChildSizing.HorizontalSpacing = 0
|
||||
ChildSizing.VerticalSpacing = 0
|
||||
ChildSizing.ControlsPerLine = 0
|
||||
ClientHeight = 41
|
||||
ClientWidth = 450
|
||||
DockSite = False
|
||||
DragCursor = crDrag
|
||||
DragKind = dkDrag
|
||||
DragMode = dmManual
|
||||
Enabled = True
|
||||
FullRepaint = True
|
||||
ParentColor = True
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object OkButton: TBitBtn
|
||||
Left = 108
|
||||
Height = 25
|
||||
Top = 186
|
||||
Width = 75
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Ok'
|
||||
ModalResult = 1
|
||||
NumGlyphs = 0
|
||||
TabOrder = 2
|
||||
TabStop = False
|
||||
Visible = True
|
||||
object CancelButton: TBitBtn
|
||||
Left = 369
|
||||
Height = 29
|
||||
Top = 6
|
||||
Width = 75
|
||||
HelpContext = 0
|
||||
Align = alRight
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
Cancel = False
|
||||
Caption = 'Cancel'
|
||||
Constraints.MinWidth = 75
|
||||
Default = False
|
||||
Enabled = True
|
||||
Kind = bkCustom
|
||||
Layout = blGlyphLeft
|
||||
Margin = -1
|
||||
ModalResult = 2
|
||||
NumGlyphs = 0
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
Spacing = 3
|
||||
TabOrder = 0
|
||||
TabStop = True
|
||||
Visible = True
|
||||
end
|
||||
object OkButton: TBitBtn
|
||||
Left = 288
|
||||
Height = 29
|
||||
Top = 6
|
||||
Width = 75
|
||||
HelpContext = 0
|
||||
Align = alRight
|
||||
AutoSize = True
|
||||
BorderSpacing.Left = 0
|
||||
BorderSpacing.Top = 0
|
||||
BorderSpacing.Right = 0
|
||||
BorderSpacing.Bottom = 0
|
||||
BorderSpacing.Around = 6
|
||||
BorderSpacing.CellAlignHorizontal = ccaFill
|
||||
BorderSpacing.CellAlignVertical = ccaFill
|
||||
Cancel = False
|
||||
Caption = 'Ok'
|
||||
Constraints.MinWidth = 75
|
||||
Default = False
|
||||
Enabled = True
|
||||
Kind = bkCustom
|
||||
Layout = blGlyphLeft
|
||||
Margin = -1
|
||||
ModalResult = 1
|
||||
NumGlyphs = 0
|
||||
ParentFont = True
|
||||
ParentShowHint = True
|
||||
Spacing = 3
|
||||
TabOrder = 1
|
||||
TabStop = True
|
||||
Visible = True
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -2,26 +2,76 @@
|
||||
|
||||
LazarusResources.Add('TChooseKeySchemeDlg','FORMDATA',[
|
||||
'TPF0'#19'TChooseKeySchemeDlg'#18'ChooseKeySchemeDlg'#4'Left'#3#150#1#6'Heigh'
|
||||
+'t'#3#219#0#3'Top'#3'3'#1#5'Width'#3#144#1#7'Caption'#6#18'ChooseKeySchemeDl'
|
||||
+'g'#12'ClientHeight'#3#219#0#11'ClientWidth'#3#144#1#8'OnCreate'#7#24'Choose'
|
||||
+'KeySchemeDlgCREATE'#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'#10'LC'
|
||||
+'LVersion'#6#6'0.9.25'#0#6'TLabel'#9'NoteLabel'#4'Left'#2#8#6'Height'#2','#3
|
||||
+'Top'#2#10#5'Width'#3'~'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'A'
|
||||
+'utoSize'#8#7'Caption'#6#9'NoteLabel'#11'ParentColor'#8#8'WordWrap'#9#0#0#11
|
||||
+'TRadioGroup'#16'SchemeRadiogroup'#4'Left'#2#8#6'Height'#2't'#3'Top'#2'8'#5
|
||||
+'Width'#3#128#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8
|
||||
+'AutoFill'#9#7'Caption'#6#6'Scheme'#28'ChildSizing.LeftRightSpacing'#2#6#28
|
||||
+'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'cr'
|
||||
+'sHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousC'
|
||||
+'hildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildS'
|
||||
+'izing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclL'
|
||||
+'eftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHei'
|
||||
+'ght'#2'b'#11'ClientWidth'#3'|'#1#9'ItemIndex'#2#0#13'Items.Strings'#1#6#17
|
||||
+'Default (Lazarus)'#6#12'Classic (TP)'#6#22'Mac OS X (Apple style)'#6#24'Mac'
|
||||
+' OS X (Lazarus style)'#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#12'CancelButton'#4
|
||||
+'Left'#3#216#0#6'Height'#2#25#3'Top'#3#186#0#5'Width'#2'K'#7'Anchors'#11#6'a'
|
||||
+'kLeft'#8'akBottom'#0#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#9'NumGlyphs'
|
||||
+#2#0#8'TabOrder'#2#1#0#0#7'TBitBtn'#8'OkButton'#4'Left'#2'l'#6'Height'#2#25#3
|
||||
+'Top'#3#186#0#5'Width'#2'K'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'
|
||||
+#6#2'Ok'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#8'TabOrder'#2#2#0#0#0
|
||||
+'t'#3#27#1#3'Top'#3'3'#1#5'Width'#3#194#1#11'HelpContext'#2#0#13'ActiveContr'
|
||||
+'ol'#7#29'SchemeRadiogroup.RadioButton0'#5'Align'#7#6'alNone'#14'AllowDropFi'
|
||||
+'les'#8#10'AutoScroll'#9#8'AutoSize'#8#11'BorderIcons'#11#12'biSystemMenu'#10
|
||||
+'biMinimize'#10'biMaximize'#0#11'BorderStyle'#7#10'bsSizeable'#7'Caption'#6
|
||||
+#18'ChooseKeySchemeDlg'#28'ChildSizing.LeftRightSpacing'#2#0#28'ChildSizing.'
|
||||
+'TopBottomSpacing'#2#0#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildSizing.'
|
||||
+'VerticalSpacing'#2#0#27'ChildSizing.ControlsPerLine'#2#0#12'ClientHeight'#3
|
||||
+#27#1#11'ClientWidth'#3#194#1#8'DockSite'#8#8'DragKind'#7#6'dkDrag'#8'DragMo'
|
||||
+'de'#7#8'dmManual'#7'Enabled'#9#11'Font.Height'#2#0#10'Font.Style'#11#0#9'Fo'
|
||||
+'rmStyle'#7#8'fsNormal'#8'OnCreate'#7#24'ChooseKeySchemeDlgCREATE'#14'Parent'
|
||||
+'BiDiMode'#9#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'#13'ShowInTask'
|
||||
+'Bar'#7#9'stDefault'#14'UseDockManager'#8#10'LCLVersion'#6#6'0.9.27'#11'Wind'
|
||||
+'owState'#7#8'wsNormal'#0#6'TLabel'#9'NoteLabel'#4'Left'#2#8#6'Height'#2','#3
|
||||
+'Top'#2#10#5'Width'#3#176#1#11'HelpContext'#2#0#5'Align'#7#6'alNone'#9'Align'
|
||||
+'ment'#7#13'taLeftJustify'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'A'
|
||||
+'utoSize'#8#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSp'
|
||||
+'acing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0
|
||||
+'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlign'
|
||||
+'Vertical'#7#7'ccaFill'#7'Caption'#6#9'NoteLabel'#10'DragCursor'#7#6'crDrag'
|
||||
+#8'DragMode'#7#8'dmManual'#7'Enabled'#9#6'Layout'#7#5'tlTop'#14'ParentBidiMo'
|
||||
+'de'#9#11'ParentColor'#8#10'ParentFont'#9#14'ParentShowHint'#9#13'ShowAccelC'
|
||||
+'har'#9#11'Transparent'#9#7'Visible'#9#8'WordWrap'#9#11'OptimalFill'#8#0#0#11
|
||||
+'TRadioGroup'#16'SchemeRadiogroup'#4'Left'#2#8#6'Height'#3#180#0#3'Top'#2'8'
|
||||
+#5'Width'#3#178#1#11'HelpContext'#2#0#5'Align'#7#6'alNone'#7'Anchors'#11#5'a'
|
||||
+'kTop'#6'akLeft'#7'akRight'#8'akBottom'#0#8'AutoFill'#9#8'AutoSize'#8#18'Bor'
|
||||
+'derSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0
|
||||
+#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.Ce'
|
||||
+'llAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'cca'
|
||||
+'Fill'#7'Caption'#6#6'Scheme'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildS'
|
||||
+'izing.TopBottomSpacing'#2#6#29'ChildSizing.HorizontalSpacing'#2#0#27'ChildS'
|
||||
+'izing.VerticalSpacing'#2#0#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomoge'
|
||||
+'nousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildRes'
|
||||
+'ize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.S'
|
||||
+'hrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRi'
|
||||
+'ghtThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#3
|
||||
+#161#0#11'ClientWidth'#3#174#1#12'ColumnLayout'#7#24'clHorizontalThenVertica'
|
||||
+'l'#7'Columns'#2#1#5'Ctl3D'#8#10'DragCursor'#7#6'crDrag'#8'DragMode'#7#8'dmM'
|
||||
+'anual'#7'Enabled'#9#9'ItemIndex'#2#0#13'Items.Strings'#1#6#17'Default (Laza'
|
||||
+'rus)'#6#12'Classic (TP)'#6#22'Mac OS X (Apple style)'#6#24'Mac OS X (Lazaru'
|
||||
+'s style)'#0#10'ParentFont'#9#11'ParentColor'#9#11'ParentCtl3D'#9#14'ParentS'
|
||||
+'howHint'#9#8'TabOrder'#2#0#7'TabStop'#9#7'Visible'#9#0#0#6'TPanel'#8'BtnPan'
|
||||
+'el'#4'Left'#2#0#6'Height'#2')'#3'Top'#3#242#0#5'Width'#3#194#1#11'HelpConte'
|
||||
+'xt'#2#0#5'Align'#7#8'alBottom'#9'Alignment'#7#8'taCenter'#8'AutoSize'#9#18
|
||||
+'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2#0#19'BorderSpacing.Right'#2
|
||||
+#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing.Around'#2#0'!BorderSpacing.'
|
||||
+'CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpacing.CellAlignVertical'#7#7'c'
|
||||
+'caFill'#10'BevelInner'#7#6'bvNone'#10'BevelOuter'#7#6'bvNone'#10'BevelWidth'
|
||||
+#2#1#11'BorderWidth'#2#0#11'BorderStyle'#7#6'bsNone'#28'ChildSizing.LeftRigh'
|
||||
+'tSpacing'#2#0#28'ChildSizing.TopBottomSpacing'#2#0#29'ChildSizing.Horizonta'
|
||||
+'lSpacing'#2#0#27'ChildSizing.VerticalSpacing'#2#0#27'ChildSizing.ControlsPe'
|
||||
+'rLine'#2#0#12'ClientHeight'#2')'#11'ClientWidth'#3#194#1#8'DockSite'#8#10'D'
|
||||
+'ragCursor'#7#6'crDrag'#8'DragKind'#7#6'dkDrag'#8'DragMode'#7#8'dmManual'#7
|
||||
+'Enabled'#9#11'FullRepaint'#9#11'ParentColor'#9#10'ParentFont'#9#14'ParentSh'
|
||||
+'owHint'#9#8'TabOrder'#2#1#7'TabStop'#8#7'Visible'#9#0#7'TBitBtn'#12'CancelB'
|
||||
+'utton'#4'Left'#3'q'#1#6'Height'#2#29#3'Top'#2#6#5'Width'#2'K'#11'HelpContex'
|
||||
+'t'#2#0#5'Align'#7#7'alRight'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'Bo'
|
||||
+'rderSpacing.Top'#2#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2
|
||||
+#0#20'BorderSpacing.Around'#2#6'!BorderSpacing.CellAlignHorizontal'#7#7'ccaF'
|
||||
+'ill'#31'BorderSpacing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'
|
||||
+#6#6'Cancel'#20'Constraints.MinWidth'#2'K'#7'Default'#8#7'Enabled'#9#4'Kind'
|
||||
+#7#8'bkCustom'#6'Layout'#7#11'blGlyphLeft'#6'Margin'#2#255#11'ModalResult'#2
|
||||
+#2#9'NumGlyphs'#2#0#10'ParentFont'#9#14'ParentShowHint'#9#7'Spacing'#2#3#8'T'
|
||||
+'abOrder'#2#0#7'TabStop'#9#7'Visible'#9#0#0#7'TBitBtn'#8'OkButton'#4'Left'#3
|
||||
,' '#1#6'Height'#2#29#3'Top'#2#6#5'Width'#2'K'#11'HelpContext'#2#0#5'Align'#7
|
||||
+#7'alRight'#8'AutoSize'#9#18'BorderSpacing.Left'#2#0#17'BorderSpacing.Top'#2
|
||||
+#0#19'BorderSpacing.Right'#2#0#20'BorderSpacing.Bottom'#2#0#20'BorderSpacing'
|
||||
+'.Around'#2#6'!BorderSpacing.CellAlignHorizontal'#7#7'ccaFill'#31'BorderSpac'
|
||||
+'ing.CellAlignVertical'#7#7'ccaFill'#6'Cancel'#8#7'Caption'#6#2'Ok'#20'Const'
|
||||
+'raints.MinWidth'#2'K'#7'Default'#8#7'Enabled'#9#4'Kind'#7#8'bkCustom'#6'Lay'
|
||||
+'out'#7#11'blGlyphLeft'#6'Margin'#2#255#11'ModalResult'#2#1#9'NumGlyphs'#2#0
|
||||
+#10'ParentFont'#9#14'ParentShowHint'#9#7'Spacing'#2#3#8'TabOrder'#2#1#7'TabS'
|
||||
+'top'#9#7'Visible'#9#0#0#0#0
|
||||
]);
|
||||
|
@ -32,7 +32,7 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
||||
ExtCtrls, Buttons, LazarusIDEStrConsts;
|
||||
ExtCtrls, Buttons, KeyMapping, LazarusIDEStrConsts;
|
||||
|
||||
type
|
||||
|
||||
@ -42,25 +42,29 @@ type
|
||||
CancelButton: TBitBtn;
|
||||
NoteLabel: TLABEL;
|
||||
OkButton: TBitBtn;
|
||||
BtnPanel: TPanel;
|
||||
SchemeRadiogroup: TRADIOGROUP;
|
||||
procedure ChooseKeySchemeDlgCREATE(Sender: TObject);
|
||||
private
|
||||
public
|
||||
function GetKeymapScheme: string;
|
||||
procedure SetKeymapScheme(const AValue: string);
|
||||
public
|
||||
property KeymapScheme: string read GetKeymapScheme write SetKeymapScheme;// untranslated
|
||||
end;
|
||||
|
||||
function ShowChooseKeySchemeDialog(out NewScheme: string): TModalResult;
|
||||
function ShowChooseKeySchemeDialog(var NewScheme: string): TModalResult;
|
||||
|
||||
implementation
|
||||
|
||||
function ShowChooseKeySchemeDialog(out NewScheme: string): TModalResult;
|
||||
function ShowChooseKeySchemeDialog(var NewScheme: string): TModalResult;
|
||||
var
|
||||
ChooseKeySchemeDlg: TChooseKeySchemeDlg;
|
||||
begin
|
||||
ChooseKeySchemeDlg:=TChooseKeySchemeDlg.Create(nil);
|
||||
ChooseKeySchemeDlg.KeymapScheme:=NewScheme;
|
||||
Result:=ChooseKeySchemeDlg.ShowModal;
|
||||
if Result=mrOk then
|
||||
NewScheme:=ChooseKeySchemeDlg.GetKeymapScheme;
|
||||
NewScheme:=ChooseKeySchemeDlg.KeymapScheme;
|
||||
ChooseKeySchemeDlg.Free;
|
||||
end;
|
||||
|
||||
@ -75,16 +79,42 @@ begin
|
||||
CancelButton.Caption:=dlgCancel;
|
||||
OkButton.LoadGlyphFromLazarusResource('btn_ok');
|
||||
CancelButton.LoadGlyphFromLazarusResource('btn_cancel');
|
||||
|
||||
with SchemeRadiogroup.Items do begin
|
||||
BeginUpdate;
|
||||
Clear;
|
||||
// keep order of TKeyMapScheme
|
||||
Add(lisKMLazarusDefault);
|
||||
Add(lisKMClassic);
|
||||
Add(lisKMMacOSXApple);
|
||||
Add(lisKMMacOSXLaz);
|
||||
// do not add custom
|
||||
EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TChooseKeySchemeDlg.GetKeymapScheme: string;
|
||||
begin
|
||||
case SchemeRadiogroup.ItemIndex of
|
||||
1: Result:=lisKMClassic;
|
||||
2: Result:=lisKMMacOSXApple;
|
||||
3: Result:=lisKMMacOSXLaz;
|
||||
else Result:='';
|
||||
if SchemeRadiogroup.ItemIndex<0 then
|
||||
Result:=KeyMapSchemeNames[kmsLazarus]
|
||||
else if SchemeRadiogroup.ItemIndex<ord(kmsCustom) then
|
||||
Result:=KeyMapSchemeNames[TKeyMapScheme(SchemeRadiogroup.ItemIndex)]
|
||||
else
|
||||
Result:=SchemeRadiogroup.Items[SchemeRadiogroup.ItemIndex];
|
||||
end;
|
||||
|
||||
procedure TChooseKeySchemeDlg.SetKeymapScheme(const AValue: string);
|
||||
var
|
||||
kms: TKeyMapScheme;
|
||||
begin
|
||||
kms:=KeySchemeNameToSchemeType(AValue);
|
||||
if kms=kmsCustom then begin
|
||||
if SchemeRadiogroup.Items.Count<=ord(kms) then
|
||||
SchemeRadiogroup.Items.Add(AValue)
|
||||
else
|
||||
SchemeRadiogroup.Items[SchemeRadiogroup.Items.Count-1]:=AValue;
|
||||
end;
|
||||
SchemeRadiogroup.ItemIndex:=ord(kms);
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -890,6 +890,7 @@ resourcestring
|
||||
dlgCancel = 'Cancel';
|
||||
lisSAMSelectNone = 'Select none';
|
||||
lisKMClassic = 'Classic';
|
||||
lisKMLazarusDefault = 'Lazarus (default)';
|
||||
lisKMMacOSXApple = 'Mac OS X (Apple style)';
|
||||
lisKMMacOSXLaz = 'Mac OS X (Lazarus style)';
|
||||
lisPEFilename = 'Filename:';
|
||||
|
@ -7291,12 +7291,12 @@ begin
|
||||
|
||||
// free sources
|
||||
if (ActiveUnitInfo.Source<>nil) then begin
|
||||
ActiveUnitInfo.Source.IsDeleted:=true;
|
||||
if (Project1.MainUnitInfo=ActiveUnitInfo)
|
||||
and (not (cfProjectClosing in Flags)) then begin
|
||||
// lpr file closed in editor, but project kept open -> revert lpr file
|
||||
Project1.MainUnitInfo.Revert;
|
||||
end else
|
||||
ActiveUnitInfo.Source.IsDeleted:=true;
|
||||
Project1.MainUnitInfo.Source.Revert;
|
||||
end;
|
||||
end;
|
||||
|
||||
// close form soft (keep it if used by another component)
|
||||
|
Loading…
Reference in New Issue
Block a user