RVDataList.pas
上传用户:daoqigc
上传日期:2021-04-20
资源大小:2795k
文件大小:10k
源码类别:

RichEdit

开发平台:

Delphi

  1. {*******************************************************}
  2. {                                                       }
  3. {       RichView                                        }
  4. {       Some classes used as ancestors for classes      }
  5. {       representing RichView document not linked with  }
  6. {       RichView control (table cells)                  }
  7. {                                                       }
  8. {       Copyright (c) Sergey Tkachenko                  }
  9. {       svt@trichview.com                               }
  10. {       http://www.trichview.com                        }
  11. {                                                       }
  12. {*******************************************************}
  13. unit RVDataList;
  14. interface
  15. uses Classes, Windows, Graphics, Controls,
  16.      RVClasses, CRVData, CRVFData, RVBack,
  17.      RVItem, RVStyle, RVScroll;
  18. {$I RV_Defs.inc}
  19. type
  20.   TRVDataList = class;
  21.   TRVItemFormattedData  = class (TCustomRVFormattedData)
  22.     protected
  23.       FList: TRVDataList;
  24.     public
  25.       constructor Create(AList: TRVDataList);
  26.       procedure ShowRectangle(Left, Top, Width, Height: Integer); override;
  27.       procedure ScrollTo(Y: Integer; Redraw: Boolean); override;
  28.       procedure HScrollTo(X: Integer); override;
  29.       function GetVSmallStep: Integer; override;
  30.       function GetParentData: TCustomRVData; override;
  31.       function GetRootData: TCustomRVData; override;
  32.       function GetAbsoluteParentData: TCustomRVData; override;
  33.       function GetAbsoluteRootData: TCustomRVData; override;
  34.       function GetURL(id: Integer): String; override;
  35.       function GetAreaWidth: Integer; override;
  36.       function GetAreaHeight: Integer; override;
  37.       function GetMinTextWidth: Integer; override;
  38.       function GetMaxTextWidth: Integer; override;
  39.       function GetLeftMargin: Integer; override;
  40.       function GetRightMargin: Integer; override;
  41.       function GetTopMargin: Integer; override;
  42.       function GetBottomMargin: Integer; override;
  43.       function GetFlags: TRVFlags; override;
  44.       procedure SetFlags(const Value: TRVFlags); override;
  45.       procedure AdjustVScrollUnits; override;
  46.       procedure SetDocumentAreaSize(Width,Height: Integer; UpdateH: Boolean); override;
  47.       function GetBackground: TRVBackground; override;
  48.       function IsAssignedRVMouseDown: Boolean; override;
  49.       function IsAssignedRVMouseUp: Boolean; override;
  50.       function IsAssignedJump: Boolean; override;
  51.       function IsAssignedCheckpointVisible: Boolean; override;
  52.       function  GetFirstItemVisible: Integer; override;
  53.       function  GetLastItemVisible: Integer; override;
  54.       procedure DoRVMouseMove(id: Integer); override;
  55.       procedure DoRVMouseDown(Button: TMouseButton; Shift: TShiftState; ItemNo, X, Y: Integer); override;
  56.       procedure DoRVMouseUp(Button: TMouseButton; Shift: TShiftState; ItemNo, X, Y: Integer); override;
  57.       procedure DoCheckpointVisible(CheckpointData: TCheckpointData); override;
  58.       procedure ControlAction2(ControlAction: TRVControlAction; ItemNo: Integer;
  59.                               var Control: TControl); override;
  60.       procedure DoJump(id: Integer); override;
  61.       function GetNormalCursor: TCursor; override;
  62.   end;
  63.   TRVDataList = class (TRVList)
  64.     protected
  65.       Flags: TRVFlags;
  66.       function GetParentRVData: TCustomRVData; virtual;
  67.     public
  68.       constructor Create(AParentRVData: TCustomRVData);
  69.   end;
  70. implementation
  71. uses RVStr;
  72. procedure RaiseNS;
  73. begin
  74.   raise ERichViewError.Create(errTRVItemFormattedDataNS);
  75. end;
  76. {================================ TRVItemFormattedData ========================}
  77. constructor TRVItemFormattedData.Create(AList: TRVDataList);
  78. begin
  79.   inherited Create;
  80.   FList := AList;
  81. end;
  82. {------------------------------------------------------------------------------}
  83. function TRVItemFormattedData.GetParentData: TCustomRVData;
  84. begin
  85.   Result := FList.GetParentRVData;
  86. end;
  87. {------------------------------------------------------------------------------}
  88. function TRVItemFormattedData.GetRootData: TCustomRVData;
  89. begin
  90.   Result := GetParentData.GetRootData;
  91. end;
  92. {------------------------------------------------------------------------------}
  93. function TRVItemFormattedData.GetAbsoluteParentData: TCustomRVData;
  94. begin
  95.   Result := FList.GetParentRVData;
  96. end;
  97. {------------------------------------------------------------------------------}
  98. function TRVItemFormattedData.GetAbsoluteRootData: TCustomRVData;
  99. begin
  100.   Result := GetAbsoluteParentData.GetAbsoluteRootData;
  101. end;
  102. {------------------------------------------------------------------------------}
  103. procedure TRVItemFormattedData.ShowRectangle(Left, Top, Width,
  104.   Height: Integer);
  105. var RVData: TCustomRVData;
  106.     x,y: Integer;
  107. begin
  108.   RVData := GetRootData;
  109.   if (RVData<>nil) and (RVData is TCustomRVFormattedData) then begin
  110.     GetOrigin(x,y);
  111.     TCustomRVFormattedData(RVData).ShowRectangle(x+Left,y+Top,Width,Height);
  112.   end;
  113. end;
  114. {------------------------------------------------------------------------------}
  115. procedure TRVItemFormattedData.AdjustVScrollUnits;
  116. begin
  117.    // ?
  118. end;
  119. {------------------------------------------------------------------------------}
  120. procedure TRVItemFormattedData.DoCheckpointVisible(
  121.   CheckpointData: TCheckpointData);
  122. begin
  123.   // ?
  124. end;
  125. {------------------------------------------------------------------------------}
  126. procedure TRVItemFormattedData.DoJump(id: Integer);
  127. begin
  128.   // ?
  129. end;
  130. {------------------------------------------------------------------------------}
  131. procedure TRVItemFormattedData.DoRVMouseDown(Button: TMouseButton;
  132.   Shift: TShiftState; ItemNo, X, Y: Integer);
  133. begin
  134.   // ?
  135. end;
  136. {------------------------------------------------------------------------------}
  137. procedure TRVItemFormattedData.DoRVMouseMove(id: Integer);
  138. begin
  139.   // ?
  140. end;
  141. {------------------------------------------------------------------------------}
  142. procedure TRVItemFormattedData.DoRVMouseUp(Button: TMouseButton;
  143.   Shift: TShiftState; ItemNo, X, Y: Integer);
  144. begin
  145.   // ?
  146. end;
  147. {------------------------------------------------------------------------------}
  148. function TRVItemFormattedData.GetFlags: TRVFlags;
  149. begin
  150.   Result := FList.Flags;
  151. end;
  152. {------------------------------------------------------------------------------}
  153. procedure TRVItemFormattedData.SetFlags(const Value: TRVFlags);
  154. begin
  155.   RaiseNS;
  156. end;
  157. {------------------------------------------------------------------------------}
  158. function TRVItemFormattedData.GetLeftMargin: Integer;
  159. begin
  160.   // ?
  161.   Result := 0;
  162. end;
  163. {------------------------------------------------------------------------------}
  164. function TRVItemFormattedData.GetTopMargin: Integer;
  165. begin
  166.   // ?
  167.   Result := 0;
  168. end;
  169. {------------------------------------------------------------------------------}
  170. function TRVItemFormattedData.GetRightMargin: Integer;
  171. begin
  172.   // ?
  173.   Result := 0;
  174. end;
  175. {------------------------------------------------------------------------------}
  176. function TRVItemFormattedData.GetBottomMargin: Integer;
  177. begin
  178.   // ?
  179.   Result := 0;
  180. end;
  181. {------------------------------------------------------------------------------}
  182. function TRVItemFormattedData.GetAreaWidth: Integer;
  183. begin
  184.   Result := 0;
  185. end;
  186. function TRVItemFormattedData.GetAreaHeight: Integer;
  187. begin
  188.   Result := 0;
  189. end;
  190. function TRVItemFormattedData.GetBackground: TRVBackground;
  191. begin
  192.   //?
  193.   Result := nil;
  194. end;
  195. function TRVItemFormattedData.GetMaxTextWidth: Integer;
  196. begin
  197.   Result := 0;
  198. end;
  199. function TRVItemFormattedData.GetMinTextWidth: Integer;
  200. begin
  201.   Result := 0;
  202. end;
  203. function TRVItemFormattedData.GetNormalCursor: TCursor;
  204. begin
  205.     Result := TCustomRVFormattedData(GetRootData).GetNormalCursor;
  206. end;
  207. function TRVItemFormattedData.GetURL(id: Integer): String;
  208. begin
  209.   Result := TRVItemFormattedData(GetRootData).GetURL(id);
  210. end;
  211. function TRVItemFormattedData.IsAssignedCheckpointVisible: Boolean;
  212. begin
  213.   Result := False;
  214. end;
  215. function TRVItemFormattedData.IsAssignedJump: Boolean;
  216. begin
  217.   Result := False;
  218. end;
  219. function TRVItemFormattedData.IsAssignedRVMouseDown: Boolean;
  220. begin
  221.   Result := False;
  222. end;
  223. function TRVItemFormattedData.IsAssignedRVMouseUp: Boolean;
  224. begin
  225.   Result := False;
  226. end;
  227. procedure TRVItemFormattedData.ScrollTo(Y: Integer; Redraw: Boolean);
  228. begin
  229. end;
  230. function TRVItemFormattedData.GetVSmallStep: Integer;
  231. begin
  232.   Result := 0;
  233. end;
  234. procedure TRVItemFormattedData.HScrollTo(X: Integer);
  235. begin
  236. end;
  237. procedure TRVItemFormattedData.SetDocumentAreaSize(Width, Height: Integer;
  238.   UpdateH: Boolean);
  239. begin
  240. end;
  241. procedure TRVItemFormattedData.ControlAction2(
  242.   ControlAction: TRVControlAction; ItemNo: Integer;
  243.   var Control: TControl);
  244. begin
  245. end;
  246. {------------------------------------------------------------------------------}
  247. function TRVItemFormattedData.GetFirstItemVisible: Integer;
  248. begin
  249.   Result := 0;
  250. end;
  251. {------------------------------------------------------------------------------}
  252. function TRVItemFormattedData.GetLastItemVisible: Integer;
  253. begin
  254.   Result := Items.Count-1;
  255. end;
  256. {================================= TRVDataList ================================}
  257. constructor TRVDataList.Create(AParentRVData: TCustomRVData);
  258. begin
  259.   inherited Create;
  260.   Flags := [ {rvflUseJumps, rvflShareContents, rvflUseExternalLeading,} rvflTrim,
  261.               rvflMouseXYAlwaysCorrect, rvflCanUseCustomPPI ];
  262. end;
  263. {------------------------------------------------------------------------------}
  264. function TRVDataList.GetParentRVData: TCustomRVData;
  265. begin
  266.   Result := nil;
  267. end;
  268. end.