richmemo: gtk2 imlpementation of CharAtPos

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4088 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
skalogryz
2015-04-19 03:50:37 +00:00
parent a32406dc1d
commit 3665dc7c3a

View File

@ -91,6 +91,7 @@ type
class function GetParaRange(const AWinControl: TWinControl; TextStart: Integer; var rng: TParaRange): Boolean; override;
class procedure InDelText(const AWinControl: TWinControl; const TextUTF8: String; DstStart, DstLen: Integer); override;
class function CharAtPos(const AWinControl: TWinControl; x,y: Integer): Integer; override;
class function Search(const AWinControl: TWinControl; const ANiddle: string; const SearchOpts: TIntSearchOpt): Integer; override;
@ -1199,6 +1200,23 @@ begin
gtk_text_buffer_insert(b, @istart, @textUTF8[1], length(TextUTF8));
end;
class function TGtk2WSCustomRichMemo.CharAtPos(const AWinControl: TWinControl;
x, y: Integer): Integer;
var
w : PGtkWidget;
b : PGtkTextBuffer;
istart : TGtkTextIter;
gx, gy : gint;
trailing: gint;
begin
GetWidgetBuffer(AWinControl, w, b);
if not Assigned(w) then Exit;
gtk_text_view_window_to_buffer_coords(PGtkTextView(w), GTK_TEXT_WINDOW_WIDGET, x, y, @gx, @gy);
gtk_text_view_get_iter_at_position(PGtkTextView(w), @istart, @trailing, gx,gy);
Result:=gtk_text_iter_get_offset(@istart)+trailing;
end;
procedure UTF8CharsToWideString(const p: Pchar; var w: WideString);
var
slen : Integer;