summaryrefslogtreecommitdiff
path: root/src/corelib/fpg_base.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/fpg_base.pas')
-rw-r--r--src/corelib/fpg_base.pas81
1 files changed, 44 insertions, 37 deletions
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas
index ff4230e8..c81d9cd8 100644
--- a/src/corelib/fpg_base.pas
+++ b/src/corelib/fpg_base.pas
@@ -628,9 +628,9 @@ type
end;
- TfpgMimeDataStruct = class(TObject)
+ TfpgMimeDataItem = class(TObject)
public
- format: TfpgString;
+ format: TfpgString; { mime string type }
data: Variant;
constructor Create(const AFormat: TfpgString; const AData: variant); reintroduce;
end;
@@ -641,13 +641,14 @@ type
{ TODO: This is wrong, we must have one Data Storage object }
FDataList: TObjectList;
FUrlList: TList;
+ function GetItem(AIndex: Integer): TfpgMimeDataItem;
function Geturls: TList;
procedure Seturls(const AValue: TList);
function GetText: TfpgString;
procedure SetText(const AValue: TfpgString);
function GetHTML: TfpgString;
procedure SetHTML(const AValue: TfpgString);
- function GetFormatCout: integer;
+ function GetCount: integer;
public
constructor Create;
destructor Destroy; override;
@@ -656,10 +657,11 @@ type
function Formats: TStrings;
function GetData(const AMimeType: TfpgString): Variant;
procedure SetData(const AMimeType: TfpgString; const AData: Variant);
+ property Items[AIndex: Integer]: TfpgMimeDataItem read GetItem; default;
property urls: TList read Geturls write Seturls;
property Text: TfpgString read GetText write SetText;
property HTML: TfpgString read GetHTML write SetHTML;
- property FormatCount: integer read GetFormatCout;
+ property Count: integer read GetCount;
end;
TfpgDragBase = class(TObject)
@@ -2751,9 +2753,9 @@ begin
FTagPointer := nil;
end;
-{ TfpgMimeDataStruct }
+{ TfpgMimeDataItem }
-constructor TfpgMimeDataStruct.Create(const AFormat: TfpgString; const AData: variant);
+constructor TfpgMimeDataItem.Create(const AFormat: TfpgString; const AData: variant);
begin
inherited Create;
format := AFormat;
@@ -2769,6 +2771,11 @@ begin
Result := nil;
end;
+function TfpgMimeDataBase.GetItem(AIndex: Integer): TfpgMimeDataItem;
+begin
+ Result := TfpgMimeDataItem(FDataList[AIndex]);
+end;
+
procedure TfpgMimeDataBase.Seturls(const AValue: TList);
begin
if AValue = nil then
@@ -2789,11 +2796,11 @@ var
s: string;
begin
{ TODO: if no text/plain, but we have HTML, we must strip all tags and return that }
- for i := 0 to FDataList.Count-1 do
+ for i := 0 to Count-1 do
begin
- if TfpgMimeDataStruct(FDataList[i]).format = 'text/plain' then
+ if Items[i].format = 'text/plain' then
begin
- s := TfpgMimeDataStruct(FDataList[i]).data;
+ s := Items[i].data;
Result := s;
break;
end;
@@ -2803,20 +2810,20 @@ end;
procedure TfpgMimeDataBase.SetText(const AValue: TfpgString);
var
i: integer;
- r: TfpgMimeDataStruct;
+ r: TfpgMimeDataItem;
begin
{ remove existing 'text/plain' first }
- for i := FDataList.Count-1 downto 0 do
+ for i := Count-1 downto 0 do
begin
- r := TfpgMimeDataStruct(FDataList[i]);
+ r := Items[i];
if r.format = 'text/plain' then
begin
- FDataList.Remove(FDataList[i]);
+ FDataList.Remove(r);
break;
end;
end;
{ now add new structure }
- r := TfpgMimeDataStruct.Create('text/plain', AValue);
+ r := TfpgMimeDataItem.Create('text/plain', AValue);
FDataList.Add(r);
end;
@@ -2826,11 +2833,11 @@ var
s: string;
begin
{ TODO: if data was HTML, we must strip all tags - regex will make this easy }
- for i := 0 to FDataList.Count-1 do
+ for i := 0 to Count-1 do
begin
- if TfpgMimeDataStruct(FDataList[i]).format = 'text/html' then
+ if Items[i].format = 'text/html' then
begin
- s := TfpgMimeDataStruct(FDataList[i]).data;
+ s := Items[i].data;
Result := s;
break;
end;
@@ -2840,24 +2847,24 @@ end;
procedure TfpgMimeDataBase.SetHTML(const AValue: TfpgString);
var
i: integer;
- r: TfpgMimeDataStruct;
+ r: TfpgMimeDataItem;
begin
{ remove existing 'text/html' first }
- for i := FDataList.Count-1 downto 0 do
+ for i := Count-1 downto 0 do
begin
- r := TfpgMimeDataStruct(FDataList[i]);
+ r := Items[i];
if r.format = 'text/html' then
begin
- FDataList.Remove(FDataList[i]);
+ FDataList.Remove(r);
break;
end;
end;
{ now add new structure }
- r := TfpgMimeDataStruct.Create('text/html', AValue);
+ r := TfpgMimeDataItem.Create('text/html', AValue);
FDataList.Add(r);
end;
-function TfpgMimeDataBase.GetFormatCout: integer;
+function TfpgMimeDataBase.GetCount: integer;
begin
Result := FDataList.Count;
end;
@@ -2885,9 +2892,9 @@ var
i: integer;
begin
Result := False;
- for i := 0 to FDataList.Count-1 do
+ for i := 0 to Count-1 do
begin
- Result := TfpgMimeDataStruct(FDataList[i]).format = AMimeType;
+ Result := Items[i].format = AMimeType;
if Result then
break;
end;
@@ -2896,17 +2903,17 @@ end;
function TfpgMimeDataBase.Formats: TStrings;
var
i: integer;
- r: TfpgMimeDataStruct;
+ r: TfpgMimeDataItem;
s: string;
begin
- if FDataList.Count = 0 then
+ if Count = 0 then
Result := nil
else
begin
Result := TStringList.Create;
- for i := 0 to FDataList.Count-1 do
+ for i := 0 to Count-1 do
begin
- s := TfpgMimeDataStruct(FDataList[i]).format;
+ s := Items[i].format;
Result.Add(s);
end;
end;
@@ -2916,11 +2923,11 @@ function TfpgMimeDataBase.GetData(const AMimeType: TfpgString): Variant;
var
i: integer;
begin
- for i := 0 to FDataList.Count-1 do
+ for i := 0 to Count-1 do
begin
- if TfpgMimeDataStruct(FDataList[i]).format = AMimeType then
+ if Items[i].format = AMimeType then
begin
- Result := TfpgMimeDataStruct(FDataList[i]).data;
+ Result := Items[i].data;
break;
end;
end;
@@ -2929,20 +2936,20 @@ end;
procedure TfpgMimeDataBase.SetData(const AMimeType: TfpgString; const AData: Variant);
var
i: integer;
- r: TfpgMimeDataStruct;
+ r: TfpgMimeDataItem;
begin
{ remove existing mime type first }
- for i := FDataList.Count-1 downto 0 do
+ for i := Count-1 downto 0 do
begin
- r := TfpgMimeDataStruct(FDataList[i]);
+ r := Items[i];
if r.format = AMimeType then
begin
- FDataList.Remove(FDataList[i]);
+ FDataList.Remove(r);
break;
end;
end;
{ now add new structure }
- r := TfpgMimeDataStruct.Create(AMimeType, AData);
+ r := TfpgMimeDataItem.Create(AMimeType, AData);
FDataList.Add(r);
end;