You've already forked lazarus-ccr
richmemo: loading tab offsets for a paragraph
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7314 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -69,8 +69,10 @@ type
|
|||||||
fnum : Integer; // font index in the font table
|
fnum : Integer; // font index in the font table
|
||||||
|
|
||||||
prev : TRTFParams;
|
prev : TRTFParams;
|
||||||
|
tabs : TTabStopList;
|
||||||
constructor Create(aprev: TRTFParams);
|
constructor Create(aprev: TRTFParams);
|
||||||
procedure ResetDefault;
|
procedure ResetDefault;
|
||||||
|
procedure AddTab(AOffset: double; ta: TTabAlignment);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TRTFMemoParser = class(TRTFParser)
|
TRTFMemoParser = class(TRTFParser)
|
||||||
@ -283,6 +285,18 @@ begin
|
|||||||
pm.SpaceBefore:=0;
|
pm.SpaceBefore:=0;
|
||||||
pm.SpaceAfter:=0;
|
pm.SpaceAfter:=0;
|
||||||
pm.LineSpacing:=0;
|
pm.LineSpacing:=0;
|
||||||
|
tabs.Count:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRTFParams.AddTab(AOffset: double; ta: TTabAlignment);
|
||||||
|
begin
|
||||||
|
if tabs.Count=length(tabs.Tabs) then begin
|
||||||
|
if tabs.Count=0 then SetLength(tabs.Tabs, 4)
|
||||||
|
else SetLength(tabs.Tabs, tabs.Count*2);
|
||||||
|
end;
|
||||||
|
tabs.Tabs[tabs.Count].Offset:=AOffset;
|
||||||
|
tabs.Tabs[tabs.Count].Align:=ta;
|
||||||
|
inc(tabs.Count);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TRTFMemoParserr }
|
{ TRTFMemoParserr }
|
||||||
@ -415,6 +429,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRTFMemoParser.doChangePara(aminor, aparam: Integer);
|
procedure TRTFMemoParser.doChangePara(aminor, aparam: Integer);
|
||||||
|
const
|
||||||
|
TabAl : array [rtfTabPos..rtfTabDecimal] of TTabAlignment = (
|
||||||
|
tabLeft, tabRight, tabCenter, tabDecimal);
|
||||||
begin
|
begin
|
||||||
case aminor of
|
case aminor of
|
||||||
rtfParDef: prm.ResetDefault; // reset clear formatting
|
rtfParDef: prm.ResetDefault; // reset clear formatting
|
||||||
@ -437,6 +454,11 @@ begin
|
|||||||
rtfLanguage: begin
|
rtfLanguage: begin
|
||||||
SetLanguage(rtfParam);
|
SetLanguage(rtfParam);
|
||||||
end;
|
end;
|
||||||
|
rtfTabPos,//; rtfKstr : 'tx'; rtfkHash : 0),
|
||||||
|
rtfTabRight, // rtfKstr : 'tqr'; rtfkHash : 0),
|
||||||
|
rtfTabCenter, //; rtfKstr : 'tqc'; rtfkHash : 0),
|
||||||
|
rtfTabDecimal: //; rtfKstr : 'tqdec'; rtfkHash : 0),
|
||||||
|
prm.AddTab(aparam / 20, TabAl[aminor]);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -569,6 +591,9 @@ begin
|
|||||||
prm.pm.FirstLine:=prm.pm.FirstLine-prm.pm.HeadIndent;
|
prm.pm.FirstLine:=prm.pm.FirstLine-prm.pm.HeadIndent;
|
||||||
|
|
||||||
Memo.SetParaAlignment(selst, 1, prm.pa );
|
Memo.SetParaAlignment(selst, 1, prm.pa );
|
||||||
|
|
||||||
|
if prm.tabs.Count>0 then
|
||||||
|
Memo.SetParaTabs(selst, 1, prm.tabs);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// Memo.GetTextAttributes(selst, font);
|
// Memo.GetTextAttributes(selst, font);
|
||||||
|
Reference in New Issue
Block a user