implemented character map

git-svn-id: trunk@4498 -
This commit is contained in:
mattias 2003-08-18 18:07:53 +00:00
parent 823a00d090
commit 26c5eba0d4
10 changed files with 1192 additions and 20 deletions

3
.gitattributes vendored
View File

@ -308,6 +308,9 @@ ide/aboutfrm.pas svneol=native#text/pascal
ide/addtoprojectdlg.pas svneol=native#text/pascal
ide/basedebugmanager.pas svneol=native#text/pascal
ide/buildlazdialog.pas svneol=native#text/pascal
ide/charactermapdlg.lfm svneol=native#text/plain
ide/charactermapdlg.lrs svneol=native#text/pascal
ide/charactermapdlg.pas svneol=native#text/pascal
ide/checkcompileropts.lfm svneol=native#text/plain
ide/checkcompileropts.lrs svneol=native#text/pascal
ide/checkcompileropts.pas svneol=native#text/pascal

View File

@ -54,7 +54,7 @@ type
fTokenEnd: LongInt; // end of current token
fTextAttri: TSynHighlighterAttributes;
fTokenPos: Integer;
FTokenID: integer;
fTokenArrayPos: integer;
FTokenKind: TtkTokenKind;
fTokens: TList; // list of PPositionTokens
function GetTokens(TheLineNumber: integer): PPositionTokens;
@ -227,13 +227,13 @@ begin
fTokenKind := tkNone;
exit;
end;
inc(fTokenID);
inc(fTokenArrayPos);
p:=Tokens[fLineNumber];
if (p<>nil) and (p^.Count>fTokenID) then begin
fTokenEnd := p^.Tokens[fTokenID].Column+1;
if (p<>nil) and (p^.Count>fTokenArrayPos) then begin
fTokenKind := p^.Tokens[fTokenArrayPos].Kind;
fTokenEnd := p^.Tokens[fTokenArrayPos].Column+1;
if fTokenEnd>fLineLen+1 then
fTokenEnd := fLineLen+1;
fTokenKind := p^.Tokens[fTokenID].Kind;
if fTokenEnd=fTokenPos then
Next;
end else begin
@ -255,7 +255,7 @@ begin
fLine := NewValue;
fLineLen := length(fLine);
fLineNumber := LineNumber;
FTokenID := 0;
fTokenArrayPos := 0;
fTokenPos := 1;
p:=Tokens[fLineNumber];
if p<>nil then begin
@ -292,6 +292,7 @@ var
p: PPositionTokens;
TokenIndex, TokenCount: integer;
begin
if Col<1 then exit;
// fill up lines
while (Line>=fTokens.Count) do fTokens.Add(nil);
// resize Token array

761
ide/charactermapdlg.lfm Normal file
View File

@ -0,0 +1,761 @@
object CharacterMapDialog: TCharacterMapDialog
CAPTION = 'CharacterMapDialog'
CLIENTHEIGHT = 405
CLIENTWIDTH = 412
KEYPREVIEW = True
ONCREATE = CharacterMapDialogCREATE
ONDESTROY = CharacterMapDialogDESTROY
ONKEYDOWN = CharacterMapDialogKEYDOWN
POSITION = poscreencenter
HORZSCROLLBAR.PAGE = 413
VERTSCROLLBAR.PAGE = 406
LEFT = 379
HEIGHT = 405
TOP = 278
WIDTH = 412
object OkButton: TBUTTON
ANCHORS = [akleft, akbottom]
MODALRESULT = 1
CAPTION = 'Ok'
TABSTOP = True
TABORDER = 0
LEFT = 112
HEIGHT = 25
TOP = 374
WIDTH = 75
end
object CancelButton: TBUTTON
ANCHORS = [akleft, akbottom]
MODALRESULT = 2
CAPTION = 'Cancel'
TABSTOP = True
TABORDER = 1
LEFT = 224
HEIGHT = 25
TOP = 374
WIDTH = 75
end
object CharactersGroupbox: TGROUPBOX
ANCHORS = [aktop, akleft, akright, akbottom]
CAPTION = 'Characters'
CLIENTHEIGHT = 271
CLIENTWIDTH = 393
PARENTCTL3D = False
TABORDER = 2
LEFT = 8
HEIGHT = 288
TOP = 8
WIDTH = 397
object CharMapSynedit: TSYNEDIT
ALIGN = altop
ANCHORS = [aktop, akleft, akright, akbottom]
COLOR = 16777215
FONT.HEIGHT = -15
FONT.NAME = 'courier'
HEIGHT = 248
NAME = 'CharMapSynedit'
PARENTCTL3D = False
TABORDER = 0
WIDTH = 393
ONMOUSEDOWN = CharMapSyneditMOUSEDOWN
ONMOUSEMOVE = CharMapSyneditMOUSEMOVE
BOOKMARKOPTIONS.ONCHANGE = nil
GUTTER.VISIBLE = False
GUTTER.ONCHANGE = nil
KEYSTROKES = <
item
COMMAND = 3
SHORTCUT = 38
end
item
COMMAND = 103
SHORTCUT = 8230
end
item
COMMAND = 211
SHORTCUT = 16422
end
item
COMMAND = 4
SHORTCUT = 40
end
item
COMMAND = 104
SHORTCUT = 8232
end
item
COMMAND = 212
SHORTCUT = 16424
end
item
COMMAND = 1
SHORTCUT = 37
end
item
COMMAND = 101
SHORTCUT = 8229
end
item
COMMAND = 5
SHORTCUT = 16421
end
item
COMMAND = 105
SHORTCUT = 24613
end
item
COMMAND = 2
SHORTCUT = 39
end
item
COMMAND = 102
SHORTCUT = 8231
end
item
COMMAND = 6
SHORTCUT = 16423
end
item
COMMAND = 106
SHORTCUT = 24615
end
item
COMMAND = 10
SHORTCUT = 34
end
item
COMMAND = 110
SHORTCUT = 8226
end
item
COMMAND = 14
SHORTCUT = 16418
end
item
COMMAND = 114
SHORTCUT = 24610
end
item
COMMAND = 9
SHORTCUT = 33
end
item
COMMAND = 109
SHORTCUT = 8225
end
item
COMMAND = 13
SHORTCUT = 16417
end
item
COMMAND = 113
SHORTCUT = 24609
end
item
COMMAND = 7
SHORTCUT = 36
end
item
COMMAND = 107
SHORTCUT = 8228
end
item
COMMAND = 15
SHORTCUT = 16420
end
item
COMMAND = 115
SHORTCUT = 24612
end
item
COMMAND = 8
SHORTCUT = 35
end
item
COMMAND = 108
SHORTCUT = 8227
end
item
COMMAND = 16
SHORTCUT = 16419
end
item
COMMAND = 116
SHORTCUT = 24611
end
item
COMMAND = 223
SHORTCUT = 45
end
item
COMMAND = 201
SHORTCUT = 16429
end
item
COMMAND = 604
SHORTCUT = 8237
end
item
COMMAND = 502
SHORTCUT = 46
end
item
COMMAND = 603
SHORTCUT = 8238
end
item
COMMAND = 501
SHORTCUT = 8
end
item
COMMAND = 501
SHORTCUT = 8200
end
item
COMMAND = 504
SHORTCUT = 16392
end
item
COMMAND = 601
SHORTCUT = 32776
end
item
COMMAND = 602
SHORTCUT = 40968
end
item
COMMAND = 509
SHORTCUT = 13
end
item
COMMAND = 199
SHORTCUT = 16449
end
item
COMMAND = 201
SHORTCUT = 16451
end
item
COMMAND = 610
SHORTCUT = 24649
end
item
COMMAND = 509
SHORTCUT = 16461
end
item
COMMAND = 510
SHORTCUT = 16462
end
item
COMMAND = 503
SHORTCUT = 16468
end
item
COMMAND = 611
SHORTCUT = 24661
end
item
COMMAND = 604
SHORTCUT = 16470
end
item
COMMAND = 603
SHORTCUT = 16472
end
item
COMMAND = 507
SHORTCUT = 16473
end
item
COMMAND = 506
SHORTCUT = 24665
end
item
COMMAND = 601
SHORTCUT = 16474
end
item
COMMAND = 602
SHORTCUT = 24666
end
item
COMMAND = 301
SHORTCUT = 16432
end
item
COMMAND = 302
SHORTCUT = 16433
end
item
COMMAND = 303
SHORTCUT = 16434
end
item
COMMAND = 304
SHORTCUT = 16435
end
item
COMMAND = 305
SHORTCUT = 16436
end
item
COMMAND = 306
SHORTCUT = 16437
end
item
COMMAND = 307
SHORTCUT = 16438
end
item
COMMAND = 308
SHORTCUT = 16439
end
item
COMMAND = 309
SHORTCUT = 16440
end
item
COMMAND = 310
SHORTCUT = 16441
end
item
COMMAND = 351
SHORTCUT = 24624
end
item
COMMAND = 352
SHORTCUT = 24625
end
item
COMMAND = 353
SHORTCUT = 24626
end
item
COMMAND = 354
SHORTCUT = 24627
end
item
COMMAND = 355
SHORTCUT = 24628
end
item
COMMAND = 356
SHORTCUT = 24629
end
item
COMMAND = 357
SHORTCUT = 24630
end
item
COMMAND = 358
SHORTCUT = 24631
end
item
COMMAND = 359
SHORTCUT = 24632
end
item
COMMAND = 360
SHORTCUT = 24633
end
item
COMMAND = 231
SHORTCUT = 24654
end
item
COMMAND = 232
SHORTCUT = 24643
end
item
COMMAND = 233
SHORTCUT = 24652
end
item
COMMAND = 612
SHORTCUT = 9
end
item
COMMAND = 613
SHORTCUT = 8201
end
item
COMMAND = 250
SHORTCUT = 24642
end>
LINES.Strings = (
'CharMapSynedit'
)
OPTIONS = [eoautoindent, eonocaret, eonoselection, eoscrollpasteol, eoshowscrollhint, eosmarttabs, eotabstospaces, eotrimtrailingspaces]
READONLY = True
SELECTEDCOLOR.ONCHANGE = nil
CURSOR = 65532
HEIGHT = 248
WIDTH = 393
end
object CharInfoLabel: TLABEL
ALIGN = albottom
ANCHORS = [akleft, akright, akbottom]
CAPTION = 'CharInfoLabel'
LAYOUT = tltop
HEIGHT = 20
TOP = 251
WIDTH = 393
end
end
object TextGroupbox: TGROUPBOX
ANCHORS = [akleft, akright, akbottom]
CAPTION = 'Text'
CLIENTHEIGHT = 53
CLIENTWIDTH = 393
PARENTCTL3D = False
TABORDER = 3
LEFT = 8
HEIGHT = 70
TOP = 296
WIDTH = 397
object TextSynedit: TSYNEDIT
ALIGN = alclient
COLOR = 16777215
FONT.HEIGHT = -15
FONT.NAME = 'courier'
HEIGHT = 53
NAME = 'TextSynedit'
PARENTCTL3D = False
TABORDER = 0
WIDTH = 393
BOOKMARKOPTIONS.ONCHANGE = nil
GUTTER.VISIBLE = False
GUTTER.ONCHANGE = nil
KEYSTROKES = <
item
COMMAND = 3
SHORTCUT = 38
end
item
COMMAND = 103
SHORTCUT = 8230
end
item
COMMAND = 211
SHORTCUT = 16422
end
item
COMMAND = 4
SHORTCUT = 40
end
item
COMMAND = 104
SHORTCUT = 8232
end
item
COMMAND = 212
SHORTCUT = 16424
end
item
COMMAND = 1
SHORTCUT = 37
end
item
COMMAND = 101
SHORTCUT = 8229
end
item
COMMAND = 5
SHORTCUT = 16421
end
item
COMMAND = 105
SHORTCUT = 24613
end
item
COMMAND = 2
SHORTCUT = 39
end
item
COMMAND = 102
SHORTCUT = 8231
end
item
COMMAND = 6
SHORTCUT = 16423
end
item
COMMAND = 106
SHORTCUT = 24615
end
item
COMMAND = 10
SHORTCUT = 34
end
item
COMMAND = 110
SHORTCUT = 8226
end
item
COMMAND = 14
SHORTCUT = 16418
end
item
COMMAND = 114
SHORTCUT = 24610
end
item
COMMAND = 9
SHORTCUT = 33
end
item
COMMAND = 109
SHORTCUT = 8225
end
item
COMMAND = 13
SHORTCUT = 16417
end
item
COMMAND = 113
SHORTCUT = 24609
end
item
COMMAND = 7
SHORTCUT = 36
end
item
COMMAND = 107
SHORTCUT = 8228
end
item
COMMAND = 15
SHORTCUT = 16420
end
item
COMMAND = 115
SHORTCUT = 24612
end
item
COMMAND = 8
SHORTCUT = 35
end
item
COMMAND = 108
SHORTCUT = 8227
end
item
COMMAND = 16
SHORTCUT = 16419
end
item
COMMAND = 116
SHORTCUT = 24611
end
item
COMMAND = 223
SHORTCUT = 45
end
item
COMMAND = 201
SHORTCUT = 16429
end
item
COMMAND = 604
SHORTCUT = 8237
end
item
COMMAND = 502
SHORTCUT = 46
end
item
COMMAND = 603
SHORTCUT = 8238
end
item
COMMAND = 501
SHORTCUT = 8
end
item
COMMAND = 501
SHORTCUT = 8200
end
item
COMMAND = 504
SHORTCUT = 16392
end
item
COMMAND = 601
SHORTCUT = 32776
end
item
COMMAND = 602
SHORTCUT = 40968
end
item
COMMAND = 509
SHORTCUT = 13
end
item
COMMAND = 199
SHORTCUT = 16449
end
item
COMMAND = 201
SHORTCUT = 16451
end
item
COMMAND = 610
SHORTCUT = 24649
end
item
COMMAND = 509
SHORTCUT = 16461
end
item
COMMAND = 510
SHORTCUT = 16462
end
item
COMMAND = 503
SHORTCUT = 16468
end
item
COMMAND = 611
SHORTCUT = 24661
end
item
COMMAND = 604
SHORTCUT = 16470
end
item
COMMAND = 603
SHORTCUT = 16472
end
item
COMMAND = 507
SHORTCUT = 16473
end
item
COMMAND = 506
SHORTCUT = 24665
end
item
COMMAND = 601
SHORTCUT = 16474
end
item
COMMAND = 602
SHORTCUT = 24666
end
item
COMMAND = 301
SHORTCUT = 16432
end
item
COMMAND = 302
SHORTCUT = 16433
end
item
COMMAND = 303
SHORTCUT = 16434
end
item
COMMAND = 304
SHORTCUT = 16435
end
item
COMMAND = 305
SHORTCUT = 16436
end
item
COMMAND = 306
SHORTCUT = 16437
end
item
COMMAND = 307
SHORTCUT = 16438
end
item
COMMAND = 308
SHORTCUT = 16439
end
item
COMMAND = 309
SHORTCUT = 16440
end
item
COMMAND = 310
SHORTCUT = 16441
end
item
COMMAND = 351
SHORTCUT = 24624
end
item
COMMAND = 352
SHORTCUT = 24625
end
item
COMMAND = 353
SHORTCUT = 24626
end
item
COMMAND = 354
SHORTCUT = 24627
end
item
COMMAND = 355
SHORTCUT = 24628
end
item
COMMAND = 356
SHORTCUT = 24629
end
item
COMMAND = 357
SHORTCUT = 24630
end
item
COMMAND = 358
SHORTCUT = 24631
end
item
COMMAND = 359
SHORTCUT = 24632
end
item
COMMAND = 360
SHORTCUT = 24633
end
item
COMMAND = 231
SHORTCUT = 24654
end
item
COMMAND = 232
SHORTCUT = 24643
end
item
COMMAND = 233
SHORTCUT = 24652
end
item
COMMAND = 612
SHORTCUT = 9
end
item
COMMAND = 613
SHORTCUT = 8201
end
item
COMMAND = 250
SHORTCUT = 24642
end>
LINES.Strings = (
'TextSynedit'
)
OPTIONS = [eoautoindent, eobrackethighlight, eodragdropediting, eoscrollpasteol, eoshowscrollhint, eosmarttabs, eotabstospaces, eotrimtrailingspaces]
SELECTEDCOLOR.ONCHANGE = nil
CURSOR = 65532
HEIGHT = 53
WIDTH = 393
end
end
end

127
ide/charactermapdlg.lrs Normal file
View File

@ -0,0 +1,127 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCharacterMapDialog','FORMDATA',[
'TPF0'#19'TCharacterMapDialog'#18'CharacterMapDialog'#7'CAPTION'#6#18'Charact'
+'erMapDialog'#12'CLIENTHEIGHT'#3#149#1#11'CLIENTWIDTH'#3#156#1#10'KEYPREVIEW'
+#9#8'ONCREATE'#7#24'CharacterMapDialogCREATE'#9'ONDESTROY'#7#25'CharacterMap'
+'DialogDESTROY'#9'ONKEYDOWN'#7#25'CharacterMapDialogKEYDOWN'#8'POSITION'#7#14
+'poscreencenter'#18'HORZSCROLLBAR.PAGE'#3#157#1#18'VERTSCROLLBAR.PAGE'#3#150
+#1#4'LEFT'#3'{'#1#6'HEIGHT'#3#149#1#3'TOP'#3#22#1#5'WIDTH'#3#156#1#0#7'TBUTT'
+'ON'#8'OkButton'#7'ANCHORS'#11#6'akleft'#8'akbottom'#0#11'MODALRESULT'#2#1#7
+'CAPTION'#6#2'Ok'#7'TABSTOP'#9#8'TABORDER'#2#0#4'LEFT'#2'p'#6'HEIGHT'#2#25#3
+'TOP'#3'v'#1#5'WIDTH'#2'K'#0#0#7'TBUTTON'#12'CancelButton'#7'ANCHORS'#11#6'a'
+'kleft'#8'akbottom'#0#11'MODALRESULT'#2#2#7'CAPTION'#6#6'Cancel'#7'TABSTOP'#9
+#8'TABORDER'#2#1#4'LEFT'#3#224#0#6'HEIGHT'#2#25#3'TOP'#3'v'#1#5'WIDTH'#2'K'#0
+#0#9'TGROUPBOX'#18'CharactersGroupbox'#7'ANCHORS'#11#5'aktop'#6'akleft'#7'ak'
+'right'#8'akbottom'#0#7'CAPTION'#6#10'Characters'#12'CLIENTHEIGHT'#3#15#1#11
+'CLIENTWIDTH'#3#137#1#11'PARENTCTL3D'#8#8'TABORDER'#2#2#4'LEFT'#2#8#6'HEIGHT'
+#3' '#1#3'TOP'#2#8#5'WIDTH'#3#141#1#0#8'TSYNEDIT'#14'CharMapSynedit'#5'ALIGN'
+#7#5'altop'#7'ANCHORS'#11#5'aktop'#6'akleft'#7'akright'#8'akbottom'#0#5'COLO'
+'R'#4#255#255#255#0#11'FONT.HEIGHT'#2#241#9'FONT.NAME'#6#7'courier'#6'HEIGHT'
+#3#248#0#4'NAME'#6#14'CharMapSynedit'#11'PARENTCTL3D'#8#8'TABORDER'#2#0#5'WI'
+'DTH'#3#137#1#11'ONMOUSEDOWN'#7#23'CharMapSyneditMOUSEDOWN'#11'ONMOUSEMOVE'#7
+#23'CharMapSyneditMOUSEMOVE'#24'BOOKMARKOPTIONS.ONCHANGE'#13#14'GUTTER.VISIB'
+'LE'#8#15'GUTTER.ONCHANGE'#13#10'KEYSTROKES'#14#1#7'COMMAND'#2#3#8'SHORTCUT'
+#2'&'#0#1#7'COMMAND'#2'g'#8'SHORTCUT'#3'& '#0#1#7'COMMAND'#3#211#0#8'SHORTCU'
+'T'#3'&@'#0#1#7'COMMAND'#2#4#8'SHORTCUT'#2'('#0#1#7'COMMAND'#2'h'#8'SHORTCUT'
+#3'( '#0#1#7'COMMAND'#3#212#0#8'SHORTCUT'#3'(@'#0#1#7'COMMAND'#2#1#8'SHORTCU'
+'T'#2'%'#0#1#7'COMMAND'#2'e'#8'SHORTCUT'#3'% '#0#1#7'COMMAND'#2#5#8'SHORTCUT'
+#3'%@'#0#1#7'COMMAND'#2'i'#8'SHORTCUT'#3'%`'#0#1#7'COMMAND'#2#2#8'SHORTCUT'#2
+''''#0#1#7'COMMAND'#2'f'#8'SHORTCUT'#3''' '#0#1#7'COMMAND'#2#6#8'SHORTCUT'#3
+'''@'#0#1#7'COMMAND'#2'j'#8'SHORTCUT'#3'''`'#0#1#7'COMMAND'#2#10#8'SHORTCUT'
+#2'"'#0#1#7'COMMAND'#2'n'#8'SHORTCUT'#3'" '#0#1#7'COMMAND'#2#14#8'SHORTCUT'#3
+'"@'#0#1#7'COMMAND'#2'r'#8'SHORTCUT'#3'"`'#0#1#7'COMMAND'#2#9#8'SHORTCUT'#2
+'!'#0#1#7'COMMAND'#2'm'#8'SHORTCUT'#3'! '#0#1#7'COMMAND'#2#13#8'SHORTCUT'#3
+'!@'#0#1#7'COMMAND'#2'q'#8'SHORTCUT'#3'!`'#0#1#7'COMMAND'#2#7#8'SHORTCUT'#2
+'$'#0#1#7'COMMAND'#2'k'#8'SHORTCUT'#3'$ '#0#1#7'COMMAND'#2#15#8'SHORTCUT'#3
+'$@'#0#1#7'COMMAND'#2's'#8'SHORTCUT'#3'$`'#0#1#7'COMMAND'#2#8#8'SHORTCUT'#2
+'#'#0#1#7'COMMAND'#2'l'#8'SHORTCUT'#3'# '#0#1#7'COMMAND'#2#16#8'SHORTCUT'#3
+'#@'#0#1#7'COMMAND'#2't'#8'SHORTCUT'#3'#`'#0#1#7'COMMAND'#3#223#0#8'SHORTCUT'
+#2'-'#0#1#7'COMMAND'#3#201#0#8'SHORTCUT'#3'-@'#0#1#7'COMMAND'#3'\'#2#8'SHORT'
+'CUT'#3'- '#0#1#7'COMMAND'#3#246#1#8'SHORTCUT'#2'.'#0#1#7'COMMAND'#3'['#2#8
+'SHORTCUT'#3'. '#0#1#7'COMMAND'#3#245#1#8'SHORTCUT'#2#8#0#1#7'COMMAND'#3#245
+#1#8'SHORTCUT'#3#8' '#0#1#7'COMMAND'#3#248#1#8'SHORTCUT'#3#8'@'#0#1#7'COMMAN'
+'D'#3'Y'#2#8'SHORTCUT'#4#8#128#0#0#0#1#7'COMMAND'#3'Z'#2#8'SHORTCUT'#4#8#160
+#0#0#0#1#7'COMMAND'#3#253#1#8'SHORTCUT'#2#13#0#1#7'COMMAND'#3#199#0#8'SHORTC'
+'UT'#3'A@'#0#1#7'COMMAND'#3#201#0#8'SHORTCUT'#3'C@'#0#1#7'COMMAND'#3'b'#2#8
+'SHORTCUT'#3'I`'#0#1#7'COMMAND'#3#253#1#8'SHORTCUT'#3'M@'#0#1#7'COMMAND'#3
+#254#1#8'SHORTCUT'#3'N@'#0#1#7'COMMAND'#3#247#1#8'SHORTCUT'#3'T@'#0#1#7'COMM'
+'AND'#3'c'#2#8'SHORTCUT'#3'U`'#0#1#7'COMMAND'#3'\'#2#8'SHORTCUT'#3'V@'#0#1#7
+'COMMAND'#3'['#2#8'SHORTCUT'#3'X@'#0#1#7'COMMAND'#3#251#1#8'SHORTCUT'#3'Y@'#0
+#1#7'COMMAND'#3#250#1#8'SHORTCUT'#3'Y`'#0#1#7'COMMAND'#3'Y'#2#8'SHORTCUT'#3
+'Z@'#0#1#7'COMMAND'#3'Z'#2#8'SHORTCUT'#3'Z`'#0#1#7'COMMAND'#3'-'#1#8'SHORTCU'
+'T'#3'0@'#0#1#7'COMMAND'#3'.'#1#8'SHORTCUT'#3'1@'#0#1#7'COMMAND'#3'/'#1#8'SH'
+'ORTCUT'#3'2@'#0#1#7'COMMAND'#3'0'#1#8'SHORTCUT'#3'3@'#0#1#7'COMMAND'#3'1'#1
+#8'SHORTCUT'#3'4@'#0#1#7'COMMAND'#3'2'#1#8'SHORTCUT'#3'5@'#0#1#7'COMMAND'#3
+'3'#1#8'SHORTCUT'#3'6@'#0#1#7'COMMAND'#3'4'#1#8'SHORTCUT'#3'7@'#0#1#7'COMMAN'
+'D'#3'5'#1#8'SHORTCUT'#3'8@'#0#1#7'COMMAND'#3'6'#1#8'SHORTCUT'#3'9@'#0#1#7'C'
+'OMMAND'#3'_'#1#8'SHORTCUT'#3'0`'#0#1#7'COMMAND'#3'`'#1#8'SHORTCUT'#3'1`'#0#1
+#7'COMMAND'#3'a'#1#8'SHORTCUT'#3'2`'#0#1#7'COMMAND'#3'b'#1#8'SHORTCUT'#3'3`'
+#0#1#7'COMMAND'#3'c'#1#8'SHORTCUT'#3'4`'#0#1#7'COMMAND'#3'd'#1#8'SHORTCUT'#3
+'5`'#0#1#7'COMMAND'#3'e'#1#8'SHORTCUT'#3'6`'#0#1#7'COMMAND'#3'f'#1#8'SHORTCU'
+'T'#3'7`'#0#1#7'COMMAND'#3'g'#1#8'SHORTCUT'#3'8`'#0#1#7'COMMAND'#3'h'#1#8'SH'
+'ORTCUT'#3'9`'#0#1#7'COMMAND'#3#231#0#8'SHORTCUT'#3'N`'#0#1#7'COMMAND'#3#232
+#0#8'SHORTCUT'#3'C`'#0#1#7'COMMAND'#3#233#0#8'SHORTCUT'#3'L`'#0#1#7'COMMAND'
+#3'd'#2#8'SHORTCUT'#2#9#0#1#7'COMMAND'#3'e'#2#8'SHORTCUT'#3#9' '#0#1#7'COMMA'
+'ND'#3#250#0#8'SHORTCUT'#3'B`'#0#0#13'LINES.Strings'#1#6#14'CharMapSynedit'#0
+#7'OPTIONS'#11#12'eoautoindent'#9'eonocaret'#13'eonoselection'#15'eoscrollpa'
,'steol'#16'eoshowscrollhint'#11'eosmarttabs'#14'eotabstospaces'#20'eotrimtra'
+'ilingspaces'#0#8'READONLY'#9#22'SELECTEDCOLOR.ONCHANGE'#13#6'CURSOR'#4#252
+#255#0#0#6'HEIGHT'#3#248#0#5'WIDTH'#3#137#1#0#0#6'TLABEL'#13'CharInfoLabel'#5
+'ALIGN'#7#8'albottom'#7'ANCHORS'#11#6'akleft'#7'akright'#8'akbottom'#0#7'CAP'
+'TION'#6#13'CharInfoLabel'#6'LAYOUT'#7#5'tltop'#6'HEIGHT'#2#20#3'TOP'#3#251#0
+#5'WIDTH'#3#137#1#0#0#0#9'TGROUPBOX'#12'TextGroupbox'#7'ANCHORS'#11#6'akleft'
+#7'akright'#8'akbottom'#0#7'CAPTION'#6#4'Text'#12'CLIENTHEIGHT'#2'5'#11'CLIE'
+'NTWIDTH'#3#137#1#11'PARENTCTL3D'#8#8'TABORDER'#2#3#4'LEFT'#2#8#6'HEIGHT'#2
+'F'#3'TOP'#3'('#1#5'WIDTH'#3#141#1#0#8'TSYNEDIT'#11'TextSynedit'#5'ALIGN'#7#8
+'alclient'#5'COLOR'#4#255#255#255#0#11'FONT.HEIGHT'#2#241#9'FONT.NAME'#6#7'c'
+'ourier'#6'HEIGHT'#2'5'#4'NAME'#6#11'TextSynedit'#11'PARENTCTL3D'#8#8'TABORD'
+'ER'#2#0#5'WIDTH'#3#137#1#24'BOOKMARKOPTIONS.ONCHANGE'#13#14'GUTTER.VISIBLE'
+#8#15'GUTTER.ONCHANGE'#13#10'KEYSTROKES'#14#1#7'COMMAND'#2#3#8'SHORTCUT'#2'&'
+#0#1#7'COMMAND'#2'g'#8'SHORTCUT'#3'& '#0#1#7'COMMAND'#3#211#0#8'SHORTCUT'#3
+'&@'#0#1#7'COMMAND'#2#4#8'SHORTCUT'#2'('#0#1#7'COMMAND'#2'h'#8'SHORTCUT'#3'('
+' '#0#1#7'COMMAND'#3#212#0#8'SHORTCUT'#3'(@'#0#1#7'COMMAND'#2#1#8'SHORTCUT'#2
+'%'#0#1#7'COMMAND'#2'e'#8'SHORTCUT'#3'% '#0#1#7'COMMAND'#2#5#8'SHORTCUT'#3'%'
+'@'#0#1#7'COMMAND'#2'i'#8'SHORTCUT'#3'%`'#0#1#7'COMMAND'#2#2#8'SHORTCUT'#2
+''''#0#1#7'COMMAND'#2'f'#8'SHORTCUT'#3''' '#0#1#7'COMMAND'#2#6#8'SHORTCUT'#3
+'''@'#0#1#7'COMMAND'#2'j'#8'SHORTCUT'#3'''`'#0#1#7'COMMAND'#2#10#8'SHORTCUT'
+#2'"'#0#1#7'COMMAND'#2'n'#8'SHORTCUT'#3'" '#0#1#7'COMMAND'#2#14#8'SHORTCUT'#3
+'"@'#0#1#7'COMMAND'#2'r'#8'SHORTCUT'#3'"`'#0#1#7'COMMAND'#2#9#8'SHORTCUT'#2
+'!'#0#1#7'COMMAND'#2'm'#8'SHORTCUT'#3'! '#0#1#7'COMMAND'#2#13#8'SHORTCUT'#3
+'!@'#0#1#7'COMMAND'#2'q'#8'SHORTCUT'#3'!`'#0#1#7'COMMAND'#2#7#8'SHORTCUT'#2
+'$'#0#1#7'COMMAND'#2'k'#8'SHORTCUT'#3'$ '#0#1#7'COMMAND'#2#15#8'SHORTCUT'#3
+'$@'#0#1#7'COMMAND'#2's'#8'SHORTCUT'#3'$`'#0#1#7'COMMAND'#2#8#8'SHORTCUT'#2
+'#'#0#1#7'COMMAND'#2'l'#8'SHORTCUT'#3'# '#0#1#7'COMMAND'#2#16#8'SHORTCUT'#3
+'#@'#0#1#7'COMMAND'#2't'#8'SHORTCUT'#3'#`'#0#1#7'COMMAND'#3#223#0#8'SHORTCUT'
+#2'-'#0#1#7'COMMAND'#3#201#0#8'SHORTCUT'#3'-@'#0#1#7'COMMAND'#3'\'#2#8'SHORT'
+'CUT'#3'- '#0#1#7'COMMAND'#3#246#1#8'SHORTCUT'#2'.'#0#1#7'COMMAND'#3'['#2#8
+'SHORTCUT'#3'. '#0#1#7'COMMAND'#3#245#1#8'SHORTCUT'#2#8#0#1#7'COMMAND'#3#245
+#1#8'SHORTCUT'#3#8' '#0#1#7'COMMAND'#3#248#1#8'SHORTCUT'#3#8'@'#0#1#7'COMMAN'
+'D'#3'Y'#2#8'SHORTCUT'#4#8#128#0#0#0#1#7'COMMAND'#3'Z'#2#8'SHORTCUT'#4#8#160
+#0#0#0#1#7'COMMAND'#3#253#1#8'SHORTCUT'#2#13#0#1#7'COMMAND'#3#199#0#8'SHORTC'
+'UT'#3'A@'#0#1#7'COMMAND'#3#201#0#8'SHORTCUT'#3'C@'#0#1#7'COMMAND'#3'b'#2#8
+'SHORTCUT'#3'I`'#0#1#7'COMMAND'#3#253#1#8'SHORTCUT'#3'M@'#0#1#7'COMMAND'#3
+#254#1#8'SHORTCUT'#3'N@'#0#1#7'COMMAND'#3#247#1#8'SHORTCUT'#3'T@'#0#1#7'COMM'
+'AND'#3'c'#2#8'SHORTCUT'#3'U`'#0#1#7'COMMAND'#3'\'#2#8'SHORTCUT'#3'V@'#0#1#7
+'COMMAND'#3'['#2#8'SHORTCUT'#3'X@'#0#1#7'COMMAND'#3#251#1#8'SHORTCUT'#3'Y@'#0
+#1#7'COMMAND'#3#250#1#8'SHORTCUT'#3'Y`'#0#1#7'COMMAND'#3'Y'#2#8'SHORTCUT'#3
+'Z@'#0#1#7'COMMAND'#3'Z'#2#8'SHORTCUT'#3'Z`'#0#1#7'COMMAND'#3'-'#1#8'SHORTCU'
+'T'#3'0@'#0#1#7'COMMAND'#3'.'#1#8'SHORTCUT'#3'1@'#0#1#7'COMMAND'#3'/'#1#8'SH'
+'ORTCUT'#3'2@'#0#1#7'COMMAND'#3'0'#1#8'SHORTCUT'#3'3@'#0#1#7'COMMAND'#3'1'#1
+#8'SHORTCUT'#3'4@'#0#1#7'COMMAND'#3'2'#1#8'SHORTCUT'#3'5@'#0#1#7'COMMAND'#3
+'3'#1#8'SHORTCUT'#3'6@'#0#1#7'COMMAND'#3'4'#1#8'SHORTCUT'#3'7@'#0#1#7'COMMAN'
+'D'#3'5'#1#8'SHORTCUT'#3'8@'#0#1#7'COMMAND'#3'6'#1#8'SHORTCUT'#3'9@'#0#1#7'C'
+'OMMAND'#3'_'#1#8'SHORTCUT'#3'0`'#0#1#7'COMMAND'#3'`'#1#8'SHORTCUT'#3'1`'#0#1
+#7'COMMAND'#3'a'#1#8'SHORTCUT'#3'2`'#0#1#7'COMMAND'#3'b'#1#8'SHORTCUT'#3'3`'
+#0#1#7'COMMAND'#3'c'#1#8'SHORTCUT'#3'4`'#0#1#7'COMMAND'#3'd'#1#8'SHORTCUT'#3
+'5`'#0#1#7'COMMAND'#3'e'#1#8'SHORTCUT'#3'6`'#0#1#7'COMMAND'#3'f'#1#8'SHORTCU'
+'T'#3'7`'#0#1#7'COMMAND'#3'g'#1#8'SHORTCUT'#3'8`'#0#1#7'COMMAND'#3'h'#1#8'SH'
+'ORTCUT'#3'9`'#0#1#7'COMMAND'#3#231#0#8'SHORTCUT'#3'N`'#0#1#7'COMMAND'#3#232
+#0#8'SHORTCUT'#3'C`'#0#1#7'COMMAND'#3#233#0#8'SHORTCUT'#3'L`'#0#1#7'COMMAND'
+#3'd'#2#8'SHORTCUT'#2#9#0#1#7'COMMAND'#3'e'#2#8'SHORTCUT'#3#9' '#0#1#7'COMMA'
+'ND'#3#250#0#8'SHORTCUT'#3'B`'#0#0#13'LINES.Strings'#1#6#11'TextSynedit'#0#7
+'OPTIONS'#11#12'eoautoindent'#18'eobrackethighlight'#17'eodragdropediting'#15
+'eoscrollpasteol'#16'eoshowscrollhint'#11'eosmarttabs'#14'eotabstospaces'#20
+'eotrimtrailingspaces'#0#22'SELECTEDCOLOR.ONCHANGE'#13#6'CURSOR'#4#252#255#0
+#0#6'HEIGHT'#2'5'#5'WIDTH'#3#137#1#0#0#0#0
]);

246
ide/charactermapdlg.pas Normal file
View File

@ -0,0 +1,246 @@
{
/***************************************************************************
charactermapdlg.pas
-------------------
***************************************************************************/
***************************************************************************
* *
* 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. *
* *
***************************************************************************
Author: Mattias Gaertner
Abstract:
Dialog for character map.
}
unit CharacterMapDlg;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
SynEdit, StdCtrls, LCLType, GraphType, LazarusIDEStrConsts, EditorOptions,
SynEditHighlighter, SynHighlighterPosition;
type
TCharacterMapDialog = class(TForm)
CharactersGroupbox: TGROUPBOX;
CharInfoLabel: TLABEL;
TextSynedit: TSYNEDIT;
TextGroupbox: TGROUPBOX;
OkButton: TBUTTON;
CancelButton: TBUTTON;
CharMapSynedit: TSYNEDIT;
procedure CharMapSyneditMOUSEDOWN(Sender: TOBject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure CharMapSyneditMOUSEMOVE(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure CharacterMapDialogCREATE(Sender: TObject);
procedure CharacterMapDialogDESTROY(Sender: TObject);
procedure CharacterMapDialogKEYDOWN(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
FPositionHighlighter: TSynPositionHighlighter;
FCharacters: string;
FHighlightAttr: TSynHighlighterAttributes;
FHighlightAttrID: Integer;
FTextAttrID: Integer;
procedure FillCharMap;
procedure SelectCharacter(Row, Col: integer);
procedure HighlightCharacter(Row, Col: integer);
function GetCharacterInfo(Row, Col: integer): string;
procedure SetCharacters(const AValue: string);
procedure SetSynEditSettings;
function RowColValid(Row, Col: integer): boolean;
function GetCharOrd(Row, Col: integer): integer;
function RowColToSynEditRowCol(Row, Col: integer): TPoint;
procedure SynEditXYToRowCol(X, Y: integer; var Row, Col: integer);
public
property Characters: string read FCharacters write SetCharacters;
end;
function ShowCharacterMap(var s: string): boolean;
implementation
function ShowCharacterMap(var s: string): boolean;
var
CharacterMapDialog: TCharacterMapDialog;
begin
CharacterMapDialog:=TCharacterMapDialog.Create(Application);
Result:=CharacterMapDialog.ShowModal=mrOk;
if Result then
s:=CharacterMapDialog.Characters;
CharacterMapDialog.Free;
end;
{ TCharacterMapDialog }
procedure TCharacterMapDialog.CharacterMapDialogKEYDOWN(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key=VK_ESCAPE then ModalResult:=mrCancel;
end;
procedure TCharacterMapDialog.CharMapSyneditMOUSEMOVE(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
Row: Integer;
Col: Integer;
begin
SynEditXYToRowCol(X,Y,Row,Col);
HighlightCharacter(Row,Col);
end;
procedure TCharacterMapDialog.FillCharMap;
var
y: Integer;
x: Integer;
CurLine: String;
CharOrd: Integer;
CurChar: string;
begin
CharMapSynedit.Lines.Clear;
for y:=0 to 13 do begin
CurLine:='';
for x:=0 to 15 do begin
CharOrd:=(y+2)*16+x;
CurChar:=chr(CharOrd)+' ';
CurLine:=CurLine+CurChar;
end;
CharMapSynedit.Lines.Add(CurLine);
end;
end;
procedure TCharacterMapDialog.SelectCharacter(Row, Col: integer);
begin
end;
procedure TCharacterMapDialog.HighlightCharacter(Row, Col: integer);
var
s: String;
HighlightPos: TPoint;
begin
s:=GetCharacterInfo(Row,Col);
//writeln('TCharacterMapDialog.HighlightCharacter Row=',Row,' Col=',Col,' ',s);
CharInfoLabel.Caption:=s;
FPositionHighlighter.ClearAllTokens;
if RowColValid(Row,Col) then begin
HighlightPos:=RowColToSynEditRowCol(Row,Col);
FPositionHighlighter.AddToken(HighlightPos.Y-1,HighlightPos.X-1,
FTextAttrID);
FPositionHighlighter.AddToken(HighlightPos.Y-1,HighlightPos.X+1,
FHighlightAttrID);
end;
end;
function TCharacterMapDialog.GetCharacterInfo(Row, Col: integer): string;
var
CharOrd: Integer;
begin
if RowColValid(Row,Col) then begin
CharOrd:=GetCharOrd(Row,Col);
Result:='Dezimal='+IntToStr(CharOrd)+' Hex='+HexStr(CharOrd,2);
end else begin
Result:='-';
end;
end;
procedure TCharacterMapDialog.SetCharacters(const AValue: string);
begin
if FCharacters=AValue then exit;
FCharacters:=AValue;
TextSynedit.Lines.Text:=AValue;
end;
procedure TCharacterMapDialog.SetSynEditSettings;
begin
EditorOpts.GetSynEditSettings(CharMapSynedit);
EditorOpts.GetSynEditSettings(TextSynedit);
end;
function TCharacterMapDialog.RowColValid(Row, Col: integer): boolean;
begin
Result:=(Row>=1) and (Row<=14) and (Col>=1) and (Col<=16);
end;
function TCharacterMapDialog.GetCharOrd(Row, Col: integer): integer;
begin
Result:=(Row+1)*16+Col-1;
end;
function TCharacterMapDialog.RowColToSynEditRowCol(Row, Col: integer): TPoint;
begin
Result.X:=Col*2-1;
Result.Y:=Row;
end;
procedure TCharacterMapDialog.SynEditXYToRowCol(X, Y: integer; var Row,
Col: integer);
var
RowColumn: TPoint;
begin
RowColumn:=CharMapSynedit.PixelsToRowColumn(Point(X,Y));
Row:=RowColumn.Y;
Col:=RowColumn.X div 2;
end;
procedure TCharacterMapDialog.CharacterMapDialogCREATE(Sender: TObject);
begin
Caption:=lisCharacterMap;
FHighlightAttr:=TSynHighlighterAttributes.Create('Highlight');
with FHighlightAttr do begin
Foreground:=clBlue;
Style:=Style+[fsBold];
end;
FPositionHighlighter:=TSynPositionHighlighter.Create(Self);
FHighlightAttrID:=FPositionHighlighter.GetCopiedTokenID(FHighlightAttr);
FTextAttrID:=
FPositionHighlighter.GetCopiedTokenID(FPositionHighlighter.TextAttri);
CharMapSynedit.Highlighter:=FPositionHighlighter;
SetSynEditSettings;
FillCharMap;
TextSynedit.Lines.Clear;
end;
procedure TCharacterMapDialog.CharMapSyneditMOUSEDOWN(Sender: TOBject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Row: Integer;
Col: Integer;
begin
SynEditXYToRowCol(X,Y,Row,Col);
if not RowColValid(Row,Col) then exit;
Characters:=Characters+chr(GetCharOrd(Row,Col));
end;
procedure TCharacterMapDialog.CharacterMapDialogDESTROY(Sender: TObject);
begin
FreeAndNil(FPositionHighlighter);
FreeAndNil(FHighlightAttr);
end;
initialization
{$I charactermapdlg.lrs}
end.

View File

@ -90,19 +90,20 @@ const
ecSelectParagraph = ecUserFirst + 60;
// insert text
ecInsertGPLNotice = ecUserFirst + 80;
ecInsertLGPLNotice = ecUserFirst + 81;
ecInsertUserName = ecUserFirst + 82;
ecInsertDateTime = ecUserFirst + 83;
ecInsertChangeLogEntry = ecUserFirst + 84;
ecInsertCVSAuthor = ecUserFirst + 85;
ecInsertCVSDate = ecUserFirst + 86;
ecInsertCVSHeader = ecUserFirst + 87;
ecInsertCVSID = ecUserFirst + 88;
ecInsertCVSLog = ecUserFirst + 89;
ecInsertCVSName = ecUserFirst + 90;
ecInsertCVSRevision = ecUserFirst + 91;
ecInsertCVSSource = ecUserFirst + 92;
ecInsertCharacter = ecUserFirst + 80;
ecInsertGPLNotice = ecUserFirst + 81;
ecInsertLGPLNotice = ecUserFirst + 82;
ecInsertUserName = ecUserFirst + 83;
ecInsertDateTime = ecUserFirst + 84;
ecInsertChangeLogEntry = ecUserFirst + 85;
ecInsertCVSAuthor = ecUserFirst + 86;
ecInsertCVSDate = ecUserFirst + 87;
ecInsertCVSHeader = ecUserFirst + 88;
ecInsertCVSID = ecUserFirst + 89;
ecInsertCVSLog = ecUserFirst + 90;
ecInsertCVSName = ecUserFirst + 91;
ecInsertCVSRevision = ecUserFirst + 92;
ecInsertCVSSource = ecUserFirst + 93;
// codetools
ecWordCompletion = ecUserFirst + 100;
@ -556,6 +557,7 @@ begin
ecSelectCodeBlock : Result:= lismenuselectcodeblock;
ecSelectLine : Result:= lismenuselectline;
ecSelectParagraph : Result:= lismenuselectparagraph;
ecInsertCharacter : Result:= srkmecInsertCharacter;
ecInsertGPLNotice : Result:= srkmecInsertGPLNotice;
ecInsertLGPLNotice : Result:= srkmecInsertLGPLNotice;
ecInsertUserName : Result:= srkmecInsertUserName;
@ -1335,6 +1337,7 @@ begin
Add(C,'Delete whole text',ecClearAll,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Break line and move cursor',ecLineBreak,VK_RETURN,[],VK_UNKNOWN,[]);
Add(C,'Break line, leave cursor',ecInsertLine,VK_N,[ssCtrl],VK_UNKNOWN,[]);
Add(C,'Insert from Character Map',ecInsertCharacter,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Insert GPL notice',ecInsertGPLNotice,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Insert LGPL notice',ecInsertLGPLNotice,VK_UNKNOWN,[],VK_UNKNOWN,[]);
Add(C,'Insert username',ecInsertUserName,VK_UNKNOWN,[],VK_UNKNOWN,[]);

View File

@ -137,6 +137,7 @@ resourcestring
lisMenuSelectCodeBlock = 'Select code block';
lisMenuSelectLine = 'Select line';
lisMenuSelectParagraph = 'Select paragraph';
lisMenuInsertCharacter = 'Insert from Character Map';
lisMenuInsertText = 'Insert text';
lisMenuInsertCVSKeyword = 'CVS keyword';
lisMenuInsertGeneral = 'General';
@ -1084,6 +1085,7 @@ resourcestring
// edit menu
srkmecSelectionTabs2Spaces = 'Convert tabs to spaces in selection';
srkmecInsertCharacter = 'Insert from Charactermap';
srkmecInsertGPLNotice = 'Insert GPL notice';
srkmecInsertLGPLNotice = 'Insert LGPL notice';
srkmecInsertUserName = 'Insert current username';
@ -2212,6 +2214,7 @@ resourcestring
lisMenuTemplateContents = 'Contents';
lisMenuTemplateTutorial = 'Tutorial';
lisMenuTemplateAbout = 'About';
lisCharacterMap = 'Character Map';
implementation
end.

View File

@ -131,6 +131,7 @@ type
procedure mnuEditSelectLineClick(Sender: TObject);
procedure mnuEditSelectParagraphClick(Sender: TObject);
procedure mnuEditCompleteCodeClicked(Sender: TObject);
procedure mnuEditInsertCharacterClicked(Sender: TObject);
// edit->insert text->CVS keyword
procedure mnuEditInsertCVSAuthorClick(Sender: TObject);
@ -1444,6 +1445,7 @@ begin
itmEditSelectLine.OnClick:=@mnuEditSelectLineClick;
itmEditSelectParagraph.OnClick:=@mnuEditSelectParagraphClick;
itmEditCompleteCode.OnClick:=@mnuEditCompleteCodeClicked;
itmEditInsertCharacter.OnClick:=@mnuEditInsertCharacterClicked;
// insert text->CVS keyword
itmEditInsertCVSAuthor.OnClick:=@mnuEditInsertCVSAuthorClick;
@ -9287,6 +9289,11 @@ begin
DoCompleteCodeAtCursor;
end;
procedure TMainIDE.mnuEditInsertCharacterClicked(Sender: TObject);
begin
DoEditMenuCommand(ecInsertCharacter);
end;
procedure TMainIDE.mnuEditInsertCVSAuthorClick(Sender: TObject);
begin
DoEditMenuCommand(ecInsertCVSAuthor);
@ -9426,6 +9433,9 @@ end.
{ =============================================================================
$Log$
Revision 1.640 2003/08/18 18:07:53 mattias
implemented character map
Revision 1.639 2003/08/18 10:02:36 mattias
fixed win32 lazconf and improved enclose selection

View File

@ -225,6 +225,7 @@ type
itmEditSelectCodeBlock: TMenuItem;
itmEditSelectLine: TMenuItem;
itmEditSelectParagraph: TMenuItem;
itmEditInsertCharacter: TMenuItem;
itmEditInsertText: TMenuItem;
itmEditCompleteCode: TMenuItem;
@ -750,6 +751,11 @@ begin
itmEditSelect.Add(itmEditSelectParagraph);
end;
itmEditInsertCharacter := TMenuItem.Create(Self);
itmEditInsertCharacter.Name:='itmEditInsertCharacter';
itmEditInsertCharacter.Caption := lisMenuInsertCharacter;
mnuEdit.Add(itmEditInsertCharacter);
itmEditInsertText := TMenuItem.Create(Self);
itmEditInsertText.Name:='itmEditInsertText';
itmEditInsertText.Caption := lisMenuInsertText;

View File

@ -55,7 +55,7 @@ uses
MsgView, InputHistory, LazarusIDEStrConsts, BaseDebugManager, Debugger,
TypInfo, LResources, LazConf, EnvironmentOpts, Compiler,
SortSelectionDlg, EncloseSelectionDlg, ClipBoardHistory, DiffDialog,
SourceEditProcs, SourceMarks;
SourceEditProcs, SourceMarks, CharacterMapDlg;
type
TSourceNoteBook = class;
@ -240,6 +240,7 @@ type
procedure SelectLine;
procedure SelectParagraph;
function CommentText(const Txt: string; CommentType: TCommentType): string;
procedure InsertCharacterFromMap;
procedure InsertGPLNotice(CommentType: TCommentType);
procedure InsertLGPLNotice(CommentType: TCommentType);
procedure InsertUsername;
@ -1082,6 +1083,9 @@ Begin
ecSelectParagraph:
SelectParagraph;
ecInsertCharacter:
InsertCharacterFromMap;
ecInsertGPLNotice:
InsertGPLNotice(comtDefault);
@ -1321,6 +1325,14 @@ begin
Result:=IDEProcs.CommentText(Txt,CommentType);
end;
procedure TSourceEditor.InsertCharacterFromMap;
var
NewChars: string;
begin
if not ShowCharacterMap(NewChars) then exit;
FEditor.SelText:=NewChars;
end;
procedure TSourceEditor.InsertGPLNotice(CommentType: TCommentType);
var
Txt: string;