lazarus/gtk/gtk1memostringsh.inc
marc 722563eac0 Start of gtk1-gtk2 separation
git-svn-id: branches/gtk-splitup@25851 -
2010-06-02 22:46:14 +00:00

65 lines
2.8 KiB
PHP

{%mainunit gtkwsstdctrls.pp}
{ $Id$}
{
*****************************************************************************
* *
* This file is part of the Lazarus Component Library (LCL) *
* *
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
}
type
PGtkTextInsertEvent = ^TGtkTextInsertEvent;
TGtkTextInsertEvent = procedure (NewText: pgchar; NewTextLength: gint; position: pgint) of object;
PGtkTextDeleteEvent = ^TGtkTextDeleteEvent;
TGtkTextDeleteEvent = procedure(StartPos, EndPos: gint) of object;
{ TGtkMemoStrings }
TGtkMemoStrings = class(TStrings)
private
FGtkText : PGtkText;
FFreezed: boolean;
FOwner: TWinControl;
fTextInsertEvent: TGtkTextInsertEvent;
fTextDeleteEvent: TGtkTextDeleteEvent;
FCachedCount: Integer;
FLineStartCapacity: Integer;
FLineStartPos: array of Integer;
protected
fModified: Boolean;
fDeleting: Boolean;
function GetTextStr: string; override;
function GetCount: integer; override;
function Get(Index : Integer) : string; override;
procedure AdjustIndices(FromIndex, ToIndex: Integer; ACount: Integer; Back: Boolean);
procedure InsertIndices(StartIndex: Integer; AValue: array of Integer; ACount: Integer);
procedure DeleteIndices(StartIndex, ACount: Integer);
procedure SetCachedCount(AValue: Integer);
procedure TextInserted(NewText: pgchar; NewTextLength: gint; position: pgint);
procedure TextDeleted(StartPos, EndPos: gint);
function PositionToLine(Position: Integer; StartLine: Integer = 0): Integer;
procedure SetUpdateState(Updating: Boolean); override;
//procedure SetSorted(Val : boolean); virtual;
public
constructor Create(GtkText : PGtkText; TheOwner: TWinControl);
destructor Destroy; override;
procedure Assign(Source : TPersistent); override;
procedure Clear; override;
procedure Delete(Index : integer); override;
procedure Insert(Index : integer; const S: string); override;
procedure SetText(TheText: PChar); override;
//procedure Sort; virtual;
public
//property Sorted: boolean read FSorted write SetSorted;
property Owner: TWinControl read FOwner;
end;