summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graeme@mastermaths.co.za>2009-07-28 15:25:09 +0200
committerGraeme Geldenhuys <graeme@mastermaths.co.za>2009-07-28 15:25:09 +0200
commitf4d2d2acddc0d1631155d99e3380cc6f1139245f (patch)
tree3316da2efb633cf391ba54d1fdbdfc8a9a9c08ea
parentf69268b8187afdcfe13cd89f55fa5100c9935b34 (diff)
downloadfpGUI-f4d2d2acddc0d1631155d99e3380cc6f1139245f.tar.xz
Add new method InsertAtCursorPos() to TfpgBaseEdit
This allows you to insert text at the current cursor location. This just makes it easier for the user and reused the DoPaste which was initially for Clipboard support. The is work towards the Character Map support in TfpgEdit popup menu. Signed-off-by: Graeme Geldenhuys <graeme@mastermaths.co.za>
-rw-r--r--src/gui/fpg_edit.pas19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/gui/fpg_edit.pas b/src/gui/fpg_edit.pas
index 8a5e18a4..3494169c 100644
--- a/src/gui/fpg_edit.pas
+++ b/src/gui/fpg_edit.pas
@@ -60,7 +60,7 @@ type
// function PointToCharPos(x, y: integer): integer;
procedure DeleteSelection;
procedure DoCopy;
- procedure DoPaste;
+ procedure DoPaste(const AText: TfpgString);
procedure SetAutoSelect(const AValue: Boolean);
procedure SetBorderStyle(const AValue: TfpgEditBorderStyle);
procedure SetHideSelection(const AValue: Boolean);
@@ -121,12 +121,13 @@ type
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function SelectionText: string;
+ function GetClientRect: TfpgRect; override;
procedure SelectAll;
procedure Clear;
procedure ClearSelection;
procedure CopyToClipboard;
procedure CutToClipboard;
- function GetClientRect: TfpgRect; override;
+ procedure InsertAtCursorPos(const AText: TfpgString);
procedure PasteFromClipboard;
property Font: TfpgFont read FFont;
property SideMargin: integer read FSideMargin write SetSideMargin default 3;
@@ -748,7 +749,7 @@ begin
end;
ckPaste:
begin
- DoPaste;
+ DoPaste(fpgClipboard.Text);
hasChanged := True;
end;
ckCut:
@@ -1231,14 +1232,14 @@ begin
fpgClipboard.Text := SelectionText;
end;
-procedure TfpgBaseEdit.DoPaste;
+procedure TfpgBaseEdit.DoPaste(const AText: TfpgString);
var
s: string;
prevval: TfpgString;
begin
prevval := FText;
DeleteSelection;
- s := fpgClipboard.Text;
+ s := AText;
if (FMaxLength > 0) then
if UTF8Length(FText) + UTF8Length(s) > FMaxLength then
@@ -1298,6 +1299,12 @@ begin
RePaint;
end;
+procedure TfpgBaseEdit.InsertAtCursorPos(const AText: TfpgString);
+begin
+ if AText <> '' then
+ DoPaste(AText);
+end;
+
function TfpgBaseEdit.GetClientRect: TfpgRect;
begin
case BorderStyle of
@@ -1309,7 +1316,7 @@ end;
procedure TfpgBaseEdit.PasteFromClipboard;
begin
- DoPaste;
+ DoPaste(fpgClipboard.Text);
end;
{ TfpgBaseTextEdit }