Files
befpc/bepascal/bepascal/be/interface/textview.pp
ocoursiere 4e55abc97d small fixes
2003-04-24 23:09:18 +00:00

850 lines
44 KiB
ObjectPascal

{ BePascal - A pascal wrapper around the BeOS API
Copyright (C) 2002 Olivier Coursiere
Eric Jourde
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit textview;
interface
uses
beobj, view, message, archivable, SupportDefs, rect, list,
handler, messenger,interfacedefs,font,graphicdefs;
type
Ttext_run = Record
offset : LongInt;
font : TFont;
color : Trgb_color;
end;
type
Ttext_run_array = Record
count : LongInt;
runs : Array[1..1] of Ttext_run ;
end;
type
Tundo_state =(undo_state_nil,
B_UNDO_UNAVAILABLE,
B_UNDO_TYPING,
B_UNDO_CUT,
B_UNDO_PASTE,
B_UNDO_CLEAR,
B_UNDO_DROP);
type
TTextView = class(TView)
private
public
constructor Create(frame : TRect; name : pchar;atextRect: TRect ; resizeMask, flags : cardinal); virtual;
// constructor Create(bounds : TRect; name : pchar; texte : pchar; resizeflags, flags : cardinal); virtual;
constructor Create(data : TMessage);virtual;
destructor Destroy;override;
function Instantiate(data : TMessage) : TArchivable;
function Archive(data : TMessage; deep : boolean) : TStatus_t;
procedure AttachedToWindow;override;
procedure DetachedFromWindow;override;
procedure Draw(inRect : TRect);override;
procedure MouseDown(where : TPoint);override;
procedure MouseUp(where : TPoint);override;
procedure MouseMoved(where : TPoint; code : Cardinal; message : TMessage);override;
procedure WindowActivated(state : boolean);override;
procedure KeyDown(bytes : PChar; numBytes : integer);override;
procedure Pulse;override;
procedure FrameResized(width : double; height : double);override;
procedure MakeFocus(focusState : boolean);
procedure MessageReceived(message : TMessage);override;
function ResolveSpecifier(message : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
function GetSupportedSuites(data : TMessage) : TStatus_t;
function Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
procedure SetText(inText : PChar; var inRuns : Ttext_run_array);
procedure SetText(inText : PChar; inLength : integer; var inRuns : Ttext_run_array);
// procedure SetText(inFile : TFile; startOffset : integer; inLength : integer; var inRuns : Ttext_run_array);
procedure Insert(inText : PChar; var inRuns : Ttext_run_array);
procedure Insert(inText : PChar; inLength : integer; var inRuns : Ttext_run_array);
procedure Insert(startOffset : integer; inText : PChar; inLength : integer;var inRuns : Ttext_run_array);
procedure Delete;
procedure Delete(startOffset : integer; endOffset : integer);
function aText : PChar;
function TextLength : integer;
procedure GetText(offset : integer; length : integer; buffer : PChar);
function ByteAt(offset : integer) : PChar;
function CountLines : integer;
function CurrentLine : integer;
procedure GoToLine(lineNum : integer);
{ procedure Cut(clipboard : TClipboard);
procedure Copy(clipboard : TClipboard);
procedure Paste(clipboard : TClipboard);
procedure Clear;
function AcceptsPaste(clipboard : TClipboard) : boolean;
} function AcceptsDrop(inMessage : TMessage) : boolean;
procedure Select(startOffset : integer; endOffset : integer);
procedure SelectAll;
// procedure GetSelection(outStart : integer; outEnd : integer);
procedure SetFontAndColor(inFont : TFont; inMode : Cardinal; var inColor : TRGB_color);
// procedure SetFontAndColor(inFont : TFont; inMode : Cardinal);
// procedure SetFontAndColor(inFont : TFont);
procedure SetFontAndColor(startOffset : Cardinal; endOffset : Cardinal; inFont : TFont; inMode : Cardinal; var inColor : Trgb_color);
procedure GetFontAndColor(inOffset : integer; outFont : TFont; outColor : Trgb_color);
procedure GetFontAndColor(outFont : TFont; outMode : integer; outColor : Trgb_color; outEqColor : boolean);
{ procedure SetRunArray(startOffset : integer; endOffset : integer; inRuns : Ttext_tun_array);
function RunArray(startOffset : integer; endOffset : integer; outSize : ^integer) : Ttext_run_array;
} function LineAt(offset : integer) : integer;
function LineAt(point : TPoint) : integer;
function PointAt(inOffset : integer; outHeight : double) : TPoint;
function OffsetAt(point : TPoint) : integer;
function OffsetAt(line : integer) : integer;
procedure FindWord(inOffset : integer; outFromOffset : integer; outToOffset : integer);
function CanEndLine(offset : integer) : boolean;
function LineWidth(lineNum : integer) : double;
function LineHeight(lineNum : integer) : double;
function TextHeight(startLine : integer; endLine : integer) : double;
// procedure GetTextRegion(startOffset : integer; endOffset : integer; outRegion : TRegion);
procedure ScrollToOffset(inOffset : integer);
procedure ScrollToSelection;
procedure Highlight(startOffset : integer; endOffset : integer);
procedure SetTextRect(rect : TRect);
function TextRect : TRect;
procedure SetStylable(stylable : boolean);
function IsStylable : boolean;
procedure SetTabWidth(width : double);
function TabWidth : double;
procedure MakeSelectable(selectable : boolean);
function IsSelectable : boolean;
procedure MakeEditable(editable : boolean);
function IsEditable : boolean;
procedure SetWordWrap(awrap : boolean);
function DoesWordWrap : boolean;
procedure SetMaxBytes(max : integer);
function MaxBytes : integer;
procedure DisallowChar(aChar : Cardinal);
procedure AllowChar(aChar : Cardinal);
procedure SetAlignment(flag : Talignment);
function Alignment : Talignment;
procedure SetAutoindent(state : boolean);
function DoesAutoindent : boolean;
{ procedure SetColorSpace(colors : TColor_Space);
function ColorSpace : TColor_Space;
} procedure MakeResizable(resize : boolean; resizeView : TView);
function IsResizable : boolean;
procedure SetDoesUndo(undo : boolean);
function DoesUndo : boolean;
procedure HideTyping(enabled : boolean);
function IsTypingHidden : boolean;
procedure ResizeToPreferred;override;
procedure GetPreferredSize(width : double; height : double);virtual;
procedure AllAttached;override;
procedure AllDetached;override;
{ function FlattenRunArray(inArray : Ttext_tun_array; outSize : ^integer) : Pointer;
function UnflattenRunArray(data : Pointer; outSize : ^integer) : Ttext_run_array;
procedure InsertText(inText : PChar; inLength : integer; inOffset : integer; inRuns : Ttext_tun_array);
}
// procedure Undo(clipboard : TClipboard);
// procedure GetDragParameters(drag : TMessage; bitmap : TBitmap; point : TPoint; handler : THandler);
// procedure InitObject(atextRect : TRect; initialFont : TFont; initialColor : Trgb_color);
end;
function BTextView_Create(AObject : TBeObject;frame : TCPlusObject; name : pchar; atextRect: TCPlusObject ; resizeMask, flags : cardinal): TCPlusObject; cdecl; external BePascalLibName name 'BTextView_Create';
function BTextView_Create(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BTextView_Create_1';
procedure BTextView_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_FREE';
function BTextView_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : TArchivable; cdecl; external BePascalLibName name 'BTextView_Instantiate';
function BTextView_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : TStatus_t; cdecl; external BePascalLibName name 'BTextView_Archive';
procedure BTextView_AttachedToWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_AttachedToWindow';
procedure BTextView_DetachedFromWindow(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_DetachedFromWindow';
procedure BTextView_Draw(AObject : TCPlusObject; inRect : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_Draw';
procedure BTextView_MouseDown(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_MouseDown';
procedure BTextView_MouseUp(AObject : TCPlusObject; where : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_MouseUp';
procedure BTextView_MouseMoved(AObject : TCPlusObject; where : TCPlusObject; code : Cardinal; message : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_MouseMoved';
procedure BTextView_WindowActivated(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BTextView_WindowActivated';
procedure BTextView_KeyDown(AObject : TCPlusObject; bytes : PChar; numBytes : integer); cdecl; external BePascalLibName name 'BTextView_KeyDown';
procedure BTextView_Pulse(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_Pulse';
procedure BTextView_FrameResized(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BTextView_FrameResized';
procedure BTextView_MakeFocus(AObject : TCPlusObject; focusState : boolean); cdecl; external BePascalLibName name 'BTextView_MakeFocus';
procedure BTextView_MessageReceived(AObject : TCPlusObject; message : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_MessageReceived';
function BTextView_ResolveSpecifier(AObject : TCPlusObject; message : TCPlusObject; index : integer; specifier : TCPlusObject; form : integer; properti : PChar) : THandler; cdecl; external BePascalLibName name 'BTextView_ResolveSpecifier';
function BTextView_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObject) : TStatus_t; cdecl; external BePascalLibName name 'BTextView_GetSupportedSuites';
function BTextView_Perform(AObject : TCPlusObject; d : TPerform_code; arg : Pointer) : TStatus_t; cdecl; external BePascalLibName name 'BTextView_Perform';
procedure BTextView_SetText(AObject : TCPlusObject; inText : PChar;var inRuns : Ttext_run_array); cdecl; external BePascalLibName name 'BTextView_SetText';
procedure BTextView_SetText(AObject : TCPlusObject; inText : PChar; inLength : integer;var inRuns : Ttext_run_array); cdecl; external BePascalLibName name 'BTextView_SetText_1';
//procedure BTextView_SetText(AObject : TCPlusObject; inFile : TFile; startOffset : integer; inLength : integer; inRuns : Ttext_tun_array); cdecl; external BePascalLibName name 'BTextView_SetText';
procedure BTextView_Insert(AObject : TCPlusObject; inText : PChar;var inRuns : Ttext_run_array); cdecl; external BePascalLibName name 'BTextView_Insert';
procedure BTextView_Insert(AObject : TCPlusObject; inText : PChar; inLength : integer;var inRuns : Ttext_run_array); cdecl; external BePascalLibName name 'BTextView_Insert_1';
procedure BTextView_Insert(AObject : TCPlusObject; startOffset : integer; inText : PChar; inLength : integer;var inRuns : Ttext_run_array); cdecl; external BePascalLibName name 'BTextView_Insert_2';
procedure BTextView_Delete(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_Delete';
procedure BTextView_Delete(AObject : TCPlusObject; startOffset : integer; endOffset : integer); cdecl; external BePascalLibName name 'BTextView_Delete_1';
function BTextView_Text(AObject : TCPlusObject) : PChar; cdecl; external BePascalLibName name 'BTextView_Text';
function BTextView_TextLength(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BTextView_TextLength';
procedure BTextView_GetText(AObject : TCPlusObject; offset : integer; length : integer; buffer : PChar); cdecl; external BePascalLibName name 'BTextView_GetText';
function BTextView_ByteAt(AObject : TCPlusObject; offset : integer) : PChar; cdecl; external BePascalLibName name 'BTextView_ByteAt';
function BTextView_CountLines(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BTextView_CountLines';
function BTextView_CurrentLine(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BTextView_CurrentLine';
procedure BTextView_GoToLine(AObject : TCPlusObject; lineNum : integer); cdecl; external BePascalLibName name 'BTextView_GoToLine';
//procedure BTextView_Cut(AObject : TCPlusObject; clipboard : TClipboard); cdecl; external BePascalLibName name 'BTextView_Cut';
//procedure BTextView_Copy(AObject : TCPlusObject; clipboard : TClipboard); cdecl; external BePascalLibName name 'BTextView_Copy';
//procedure BTextView_Paste(AObject : TCPlusObject; clipboard : TClipboard); cdecl; external BePascalLibName name 'BTextView_Paste';
procedure BTextView_Clear(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_Clear';
//function BTextView_AcceptsPaste(AObject : TCPlusObject; clipboard : TClipboard) : boolean; cdecl; external BePascalLibName name 'BTextView_AcceptsPaste';
function BTextView_AcceptsDrop(AObject : TCPlusObject; inMessage : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_AcceptsDrop';
procedure BTextView_Select(AObject : TCPlusObject; startOffset : integer; endOffset : integer); cdecl; external BePascalLibName name 'BTextView_Select';
procedure BTextView_SelectAll(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_SelectAll';
//procedure BTextView_GetSelection(AObject : TCPlusObject; outStart : ^integer; outEnd : ^integer); cdecl; external BePascalLibName name 'BTextView_GetSelection';
procedure BTextView_SetFontAndColor(AObject : TCPlusObject; inFont : TCPlusObject; inMode : Cardinal; var inColor : Trgb_color); cdecl; external BePascalLibName name 'BTextView_SetFontAndColor';
//procedure BTextView_SetFontAndColor(AObject : TCPlusObject; inFont : TCPlusObject; inMode : Cardinal); cdecl; external BePascalLibName name 'BTextView_SetFontAndColor_1';
//procedure BTextView_SetFontAndColor(AObject : TCPlusObject; inFont : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_SetFontAndColor_1';
procedure BTextView_SetFontAndColor(AObject : TCPlusObject; startOffset : cardinal; endOffset : cardinal; inFont : TCPlusObject; inMode : Cardinal; var inColor : Trgb_color); cdecl; external BePascalLibName name 'BTextView_SetFontAndColor_1';
procedure BTextView_GetFontAndColor(AObject : TCPlusObject; inOffset : cardinal; outFont : TCPlusObject; outColor : Trgb_color); cdecl; external BePascalLibName name 'BTextView_GetFontAndColor';
procedure BTextView_GetFontAndColor(AObject : TCPlusObject; outFont : TCPlusObject; outMode : integer; outColor : Trgb_color; outEqColor : boolean); cdecl; external BePascalLibName name 'BTextView_GetFontAndColor_1';
//procedure BTextView_SetRunArray(AObject : TCPlusObject; startOffset : integer; endOffset : integer; inRuns : Ttext_tun_array); cdecl; external BePascalLibName name 'BTextView_SetRunArray';
//function BTextView_RunArray(AObject : TCPlusObject; startOffset : integer; endOffset : integer; outSize : ^integer) : Ttext_run_array; cdecl; external BePascalLibName name 'BTextView_RunArray';
function BTextView_LineAt(AObject : TCPlusObject; offset : integer) : integer; cdecl; external BePascalLibName name 'BTextView_LineAt';
function BTextView_LineAt(AObject : TCPlusObject; point : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BTextView_LineAt_1';
function BTextView_PointAt(AObject : TCPlusObject; inOffset : integer; outHeight : double) : TPoint; cdecl; external BePascalLibName name 'BTextView_PointAt';
function BTextView_OffsetAt(AObject : TCPlusObject; point : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BTextView_OffsetAt';
function BTextView_OffsetAt(AObject : TCPlusObject; line : integer) : integer; cdecl; external BePascalLibName name 'BTextView_OffsetAt_1';
procedure BTextView_FindWord(AObject : TCPlusObject; inOffset : integer; outFromOffset : integer; outToOffset : integer); cdecl; external BePascalLibName name 'BTextView_FindWord';
function BTextView_CanEndLine(AObject : TCPlusObject; offset : integer) : boolean; cdecl; external BePascalLibName name 'BTextView_CanEndLine';
function BTextView_LineWidth(AObject : TCPlusObject; lineNum : integer) : double; cdecl; external BePascalLibName name 'BTextView_LineWidth';
function BTextView_LineHeight(AObject : TCPlusObject; lineNum : integer) : double; cdecl; external BePascalLibName name 'BTextView_LineHeight';
function BTextView_TextHeight(AObject : TCPlusObject; startLine : integer; endLine : integer) : double; cdecl; external BePascalLibName name 'BTextView_TextHeight';
//procedure BTextView_GetTextRegion(AObject : TCPlusObject; startOffset : integer; endOffset : integer; outRegion : TRegion); cdecl; external BePascalLibName name 'BTextView_GetTextRegion';
procedure BTextView_ScrollToOffset(AObject : TCPlusObject; inOffset : integer); cdecl; external BePascalLibName name 'BTextView_ScrollToOffset';
procedure BTextView_ScrollToSelection(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_ScrollToSelection';
procedure BTextView_Highlight(AObject : TCPlusObject; startOffset : integer; endOffset : integer); cdecl; external BePascalLibName name 'BTextView_Highlight';
procedure BTextView_SetTextRect(AObject : TCPlusObject; rect : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_SetTextRect';
function BTextView_TextRect(AObject : TCPlusObject) : TRect; cdecl; external BePascalLibName name 'BTextView_TextRect';
procedure BTextView_SetStylable(AObject : TCPlusObject; stylable : boolean); cdecl; external BePascalLibName name 'BTextView_SetStylable';
function BTextView_IsStylable(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_IsStylable';
procedure BTextView_SetTabWidth(AObject : TCPlusObject; width : double); cdecl; external BePascalLibName name 'BTextView_SetTabWidth';
function BTextView_TabWidth(AObject : TCPlusObject) : double; cdecl; external BePascalLibName name 'BTextView_TabWidth';
procedure BTextView_MakeSelectable(AObject : TCPlusObject; selectable : boolean); cdecl; external BePascalLibName name 'BTextView_MakeSelectable';
function BTextView_IsSelectable(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_IsSelectable';
procedure BTextView_MakeEditable(AObject : TCPlusObject; editable : boolean); cdecl; external BePascalLibName name 'BTextView_MakeEditable';
function BTextView_IsEditable(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_IsEditable';
procedure BTextView_SetWordWrap(AObject : TCPlusObject; wrap : boolean); cdecl; external BePascalLibName name 'BTextView_SetWordWrap';
function BTextView_DoesWordWrap(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_DoesWordWrap';
procedure BTextView_SetMaxBytes(AObject : TCPlusObject; max : integer); cdecl; external BePascalLibName name 'BTextView_SetMaxBytes';
function BTextView_MaxBytes(AObject : TCPlusObject) : integer; cdecl; external BePascalLibName name 'BTextView_MaxBytes';
procedure BTextView_DisallowChar(AObject : TCPlusObject; aChar : Cardinal); cdecl; external BePascalLibName name 'BTextView_DisallowChar';
procedure BTextView_AllowChar(AObject : TCPlusObject; aChar : Cardinal); cdecl; external BePascalLibName name 'BTextView_AllowChar';
procedure BTextView_SetAlignment(AObject : TCPlusObject; flag : Talignment); cdecl; external BePascalLibName name 'BTextView_SetAlignment';
function BTextView_Alignment(AObject : TCPlusObject) : Talignment; cdecl; external BePascalLibName name 'BTextView_Alignment';
procedure BTextView_SetAutoindent(AObject : TCPlusObject; state : boolean); cdecl; external BePascalLibName name 'BTextView_SetAutoindent';
function BTextView_DoesAutoindent(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_DoesAutoindent';
//procedure BTextView_SetColorSpace(AObject : TCPlusObject; colors : TColor_Space); cdecl; external BePascalLibName name 'BTextView_SetColorSpace';
//function BTextView_ColorSpace(AObject : TCPlusObject) : TColor_Space; cdecl; external BePascalLibName name 'BTextView_ColorSpace';
procedure BTextView_MakeResizable(AObject : TCPlusObject; resize : boolean; resizeView : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_MakeResizable';
function BTextView_IsResizable(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_IsResizable';
procedure BTextView_SetDoesUndo(AObject : TCPlusObject; undo : boolean); cdecl; external BePascalLibName name 'BTextView_SetDoesUndo';
function BTextView_DoesUndo(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_DoesUndo';
procedure BTextView_HideTyping(AObject : TCPlusObject; enabled : boolean); cdecl; external BePascalLibName name 'BTextView_HideTyping';
function BTextView_IsTypingHidden(AObject : TCPlusObject) : boolean; cdecl; external BePascalLibName name 'BTextView_IsTypingHidden';
procedure BTextView_ResizeToPreferred(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_ResizeToPreferred';
procedure BTextView_GetPreferredSize(AObject : TCPlusObject; width : double; height : double); cdecl; external BePascalLibName name 'BTextView_GetPreferredSize';
procedure BTextView_AllAttached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_AllAttached';
procedure BTextView_AllDetached(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_AllDetached';
//function BTextView_FlattenRunArray(AObject : TCPlusObject; inArray : Ttext_tun_array; outSize : ^integer) : Pointer; cdecl; external BePascalLibName name 'BTextView_FlattenRunArray';
//function BTextView_UnflattenRunArray(AObject : TCPlusObject; data : Pointer; outSize : ^integer) : Ttext_run_array; cdecl; external BePascalLibName name 'BTextView_UnflattenRunArray';
//procedure BTextView_InsertText(AObject : TCPlusObject; inText : PChar; inLength : integer; inOffset : integer; inRuns : Ttext_tun_array); cdecl; external BePascalLibName name 'BTextView_InsertText';
//procedure BTextView_Undo(AObject : TCPlusObject; clipboard : TClipboard); cdecl; external BePascalLibName name 'BTextView_Undo';
//function BTextView_UndoState(AObject : TCPlusObject; isRedo : boolean) : Tunde_state; cdecl; external BePascalLibName name 'BTextView_UndoState';
//procedure BTextView_GetDragParameters(AObject : TCPlusObject; drag : TMessage; bitmap : TBitmap; point : TPoint; handler : THandler); cdecl; external BePascalLibName name 'BTextView_GetDragParameters';
procedure BTextView__ReservedTextView3(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView3';
procedure BTextView__ReservedTextView4(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView4';
procedure BTextView__ReservedTextView5(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView5';
procedure BTextView__ReservedTextView6(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView6';
procedure BTextView__ReservedTextView7(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView7';
procedure BTextView__ReservedTextView8(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView8';
procedure BTextView__ReservedTextView9(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView9';
procedure BTextView__ReservedTextView10(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView10';
procedure BTextView__ReservedTextView11(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView11';
procedure BTextView__ReservedTextView12(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView__ReservedTextView12';
//procedure BTextView_InitObject(AObject : TCPlusObject; textRect : TRect; initialFont : TFont; initialColor : Trgb_color); cdecl; external BePascalLibName name 'BTextView_InitObject';
procedure BTextView_HandleBackspace(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_HandleBackspace';
procedure BTextView_HandleArrowKey(AObject : TCPlusObject; inArrowKey : Cardinal); cdecl; external BePascalLibName name 'BTextView_HandleArrowKey';
procedure BTextView_HandleDelete(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_HandleDelete';
procedure BTextView_HandlePageKey(AObject : TCPlusObject; inPageKey : Cardinal); cdecl; external BePascalLibName name 'BTextView_HandlePageKey';
procedure BTextView_HandleAlphaKey(AObject : TCPlusObject; bytes : PChar; numBytes : integer); cdecl; external BePascalLibName name 'BTextView_HandleAlphaKey';
procedure BTextView_Refresh(AObject : TCPlusObject; fromOffset : integer; toOffset : integer; erase : boolean; scroll : boolean); cdecl; external BePascalLibName name 'BTextView_Refresh';
//procedure BTextView_RecalLineBreaks(AObject : TCPlusObject; startLine : ^integer; endLine : ^integer); cdecl; external BePascalLibName name 'BTextView_RecalLineBreaks';
function BTextView_FindLineBreak(AObject : TCPlusObject; fromOffset : integer; outAscent : double; outDescent : double; ioWidth : double) : integer; cdecl; external BePascalLibName name 'BTextView_FindLineBreak';
function BTextView_StyledWidth(AObject : TCPlusObject; fromOffset : integer; length : integer; outAscent : double; outDescent : double) : double; cdecl; external BePascalLibName name 'BTextView_StyledWidth';
function BTextView_ActualTabWidth(AObject : TCPlusObject; location : double) : double; cdecl; external BePascalLibName name 'BTextView_ActualTabWidth';
//procedure BTextView_DoInsertText(AObject : TCPlusObject; inText : PChar; inLength : integer; inOffset : integer; inRuns : Ttext_tun_array; outResult : ); cdecl; external BePascalLibName name 'BTextView_DoInsertText';
//procedure BTextView_DoDeleteText(AObject : TCPlusObject; fromOffset : integer; toOffset : integer; outResult : ); cdecl; external BePascalLibName name 'BTextView_DoDeleteText';
procedure BTextView_DrawLines(AObject : TCPlusObject; startLine : integer; endLine : integer; startOffset : integer; erase : boolean); cdecl; external BePascalLibName name 'BTextView_DrawLines';
procedure BTextView_DrawCaret(AObject : TCPlusObject; offset : integer); cdecl; external BePascalLibName name 'BTextView_DrawCaret';
procedure BTextView_InvertCaret(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_InvertCaret';
procedure BTextView_DragCaret(AObject : TCPlusObject; offset : integer); cdecl; external BePascalLibName name 'BTextView_DragCaret';
procedure BTextView_StopMouseTracking(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_StopMouseTracking';
function BTextView_PerformMouseUp(AObject : TCPlusObject; where : TPoint) : boolean; cdecl; external BePascalLibName name 'BTextView_PerformMouseUp';
function BTextView_PerformMouseMoved(AObject : TCPlusObject; where : TPoint; code : Cardinal) : boolean; cdecl; external BePascalLibName name 'BTextView_PerformMouseMoved';
procedure BTextView_TrackMouse(AObject : TCPlusObject; where : TPoint; message : TMessage; force : boolean); cdecl; external BePascalLibName name 'BTextView_TrackMouse';
procedure BTextView_TrackDrag(AObject : TCPlusObject; where : TPoint); cdecl; external BePascalLibName name 'BTextView_TrackDrag';
procedure BTextView_InitiateDrag(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_InitiateDrag';
function BTextView_MessageDropped(AObject : TCPlusObject; inMessage : TMessage; where : TPoint; offset : TPoint) : boolean; cdecl; external BePascalLibName name 'BTextView_MessageDropped';
procedure BTextView_UpdateScrollbars(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_UpdateScrollbars';
procedure BTextView_AutoResize(AObject : TCPlusObject; doredraw : boolean); cdecl; external BePascalLibName name 'BTextView_AutoResize';
procedure BTextView_NewOffscreen(AObject : TCPlusObject; padding : double); cdecl; external BePascalLibName name 'BTextView_NewOffscreen';
procedure BTextView_DeleteOffscreen(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_DeleteOffscreen';
procedure BTextView_Activate(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_Activate';
procedure BTextView_Deactivate(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_Deactivate';
//procedure BTextView_NormalizeFont(AObject : TCPlusObject; font : TFont); cdecl; external BePascalLibName name 'BTextView_NormalizeFont';
function BTextView_CharClassification(AObject : TCPlusObject; offset : integer) : Cardinal; cdecl; external BePascalLibName name 'BTextView_CharClassification';
function BTextView_NextInitialByte(AObject : TCPlusObject; offset : integer) : integer; cdecl; external BePascalLibName name 'BTextView_NextInitialByte';
function BTextView_PreviousInitialByte(AObject : TCPlusObject; offset : integer) : integer; cdecl; external BePascalLibName name 'BTextView_PreviousInitialByte';
//function BTextView_GetProperty(AObject : TCPlusObject; specifier : TMessage; form : integer; property : PChar; reply : TMessage) : boolean; cdecl; external BePascalLibName name 'BTextView_GetProperty';
function BTextView_SetProperty(AObject : TCPlusObject; specifier : TMessage; form : integer; properti : PChar; reply : TMessage) : boolean; cdecl; external BePascalLibName name 'BTextView_SetProperty';
function BTextView_CountProperties(AObject : TCPlusObject; specifier : TMessage; form : integer; properti : PChar; reply : TMessage) : boolean; cdecl; external BePascalLibName name 'BTextView_CountProperties';
procedure BTextView_HandleInputMethodChanged(AObject : TCPlusObject; message : TMessage); cdecl; external BePascalLibName name 'BTextView_HandleInputMethodChanged';
procedure BTextView_HandleInputMethodLocationRequest(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_HandleInputMethodLocationRequest';
procedure BTextView_CancelInputMethod(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_CancelInputMethod';
procedure BTextView_LockWidthBuffer(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_LockWidthBuffer';
procedure BTextView_UnlockWidthBuffer(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BTextView_UnlockWidthBuffer';
implementation
constructor TTextView.Create(frame : TRect; name : pchar;atextRect: TRect ; resizeMask, flags : cardinal);
begin
CreatePas;
CPlusObject := BTextView_Create(Self, frame.CplusObject,name,atextRect.CPlusObject,resizeMask,flags);
end;
constructor TTextView.Create(data : TMessage);
begin
CreatePas;
CPlusObject := BTextView_Create(Self, data.CPlusObject);
end;
destructor TTextView.Destroy;
begin
BTextView_Free(CPlusObject);
inherited;
end;
function TTextView.Instantiate(data : TMessage) : TArchivable;
begin
Result := BTextView_Instantiate(CPlusObject, data.CPlusObject);
end;
function TTextView.Archive(data : TMessage; deep : boolean) : TStatus_t;
begin
Result := BTextView_Archive(CPlusObject, data.CPlusObject, deep);
end;
procedure TTextView.AttachedToWindow;
begin
// BTextView_AttachedToWindow(CPlusObject);
end;
procedure TTextView.DetachedFromWindow;
begin
// BTextView_DetachedFromWindow(CPlusObject);
end;
procedure TTextView.Draw(inRect : TRect);
begin
// BTextView_Draw(CPlusObject, inRect.CPlusObject);
end;
procedure TTextView.MouseDown(where : TPoint);
begin
// BTextView_MouseDown(CPlusObject, where.CPlusObject);
end;
procedure TTextView.MouseUp(where : TPoint);
begin
//BTextView_MouseUp(CPlusObject, where.CPlusObject);
end;
procedure TTextView.MouseMoved(where : TPoint; code : Cardinal; message : TMessage);
begin
//BTextView_MouseMoved(CPlusObject, where.CPlusObject, code, message);
end;
procedure TTextView.WindowActivated(state : boolean);
begin
//BTextView_WindowActivated(CPlusObject, state);
end;
procedure TTextView.KeyDown(bytes : PChar; numBytes : integer);
begin
//BTextView_KeyDown(CPlusObject, bytes, numBytes);
end;
procedure TTextView.Pulse;
begin
//BTextView_Pulse(CPlusObject);
end;
procedure TTextView.FrameResized(width : double; height : double);
begin
// BTextView_FrameResized(CPlusObject, width, height);
end;
procedure TTextView.MakeFocus(focusState : boolean);
begin
BTextView_MakeFocus(CPlusObject, focusState);
end;
procedure TTextView.MessageReceived(message : TMessage);
begin
inherited;
// BTextView_MessageReceived(CPlusObject, message.CPlusObject);
end;
function TTextView.ResolveSpecifier(message : TMessage; index : integer; specifier : TMessage; form : integer; properti : PChar) : THandler;
begin
//Result := BTextView_ResolveSpecifier(CPlusObject, message.CPlusObject, index, specifier.CPlusObject, form, properti);
end;
function TTextView.GetSupportedSuites(data : TMessage) : TStatus_t;
begin
Result := BTextView_GetSupportedSuites(CPlusObject, data.CPlusObject);
end;
function TTextView.Perform(d : TPerform_code; arg : Pointer) : TStatus_t;
begin
Result := BTextView_Perform(CPlusObject, d, arg);
end;
procedure TTextView.SetText(inText : PChar; var inRuns : Ttext_run_array);
begin
BTextView_SetText(CPlusObject, inText, inRuns);
end;
procedure TTextView.SetText(inText : PChar; inLength : integer; var inRuns : Ttext_run_array);
begin
BTextView_SetText(CPlusObject, inText, inLength, inRuns);
end;
{procedure TTextView.SetText(inFile : TFile; startOffset : integer; inLength : integer; inRuns : Ttext_run_array);
begin
BTextView_SetText(CPlusObject, inFile.CPlusObject, startOffset, inLength, inRuns);
end;
}
procedure TTextView.Insert(inText : PChar;var inRuns : Ttext_run_array);
begin
BTextView_Insert(CPlusObject, inText, inRuns);
end;
procedure TTextView.Insert(inText : PChar; inLength : integer; var inRuns : Ttext_run_array);
begin
BTextView_Insert(CPlusObject, inText, inLength, inRuns);
end;
procedure TTextView.Insert(startOffset : integer; inText : PChar; inLength : integer; var inRuns : Ttext_run_array);
begin
BTextView_Insert(CPlusObject, startOffset, inText, inLength, inRuns);
end;
procedure TTextView.Delete;
begin
BTextView_Delete(CPlusObject);
end;
procedure TTextView.Delete(startOffset : integer; endOffset : integer);
begin
BTextView_Delete(CPlusObject, startOffset, endOffset);
end;
function TTextView.aText : PChar;
begin
Result := BTextView_Text(CPlusObject);
end;
function TTextView.TextLength : integer;
begin
Result := BTextView_TextLength(CPlusObject);
end;
procedure TTextView.GetText(offset : integer; length : integer; buffer : PChar);
begin
BTextView_GetText(CPlusObject, offset, length, buffer);
end;
function TTextView.ByteAt(offset : integer) : PChar;
begin
Result := BTextView_ByteAt(CPlusObject, offset);
end;
function TTextView.CountLines : integer;
begin
Result := BTextView_CountLines(CPlusObject);
end;
function TTextView.CurrentLine : integer;
begin
Result := BTextView_CurrentLine(CPlusObject);
end;
procedure TTextView.GoToLine(lineNum : integer);
begin
BTextView_GoToLine(CPlusObject, lineNum);
end;
{procedure TTextView.Cut(clipboard : TClipboard);
begin
BTextView_Cut(CPlusObject, clipboard.CPlusObject);
end;
procedure TTextView.Copy(clipboard : TClipboard);
begin
BTextView_Copy(CPlusObject, clipboard.CPlusObject);
end;
procedure TTextView.Paste(clipboard : TClipboard);
begin
BTextView_Paste(CPlusObject, clipboard.CPlusObject);
end;
procedure TTextView.Clear;
begin
BTextView_Clear(CPlusObject);
end;
function TTextView.AcceptsPaste(clipboard : TClipboard) : boolean;
begin
Result := BTextView_AcceptsPaste(CPlusObject, clipboard.CPlusObject);
end;
}
function TTextView.AcceptsDrop(inMessage : TMessage) : boolean;
begin
Result := BTextView_AcceptsDrop(CPlusObject, inMessage);
end;
procedure TTextView.Select(startOffset : integer; endOffset : integer);
begin
BTextView_Select(CPlusObject, startOffset, endOffset);
end;
procedure TTextView.SelectAll;
begin
BTextView_SelectAll(CPlusObject);
end;
{procedure TTextView.GetSelection(outStart : integer; outEnd : integer);
begin
BTextView_GetSelection(CPlusObject, outStart, outEnd);
end;
}
procedure TTextView.SetFontAndColor(inFont : TFont; inMode : Cardinal; var inColor : Trgb_color);
begin
BTextView_SetFontAndColor(CPlusObject, inFont.CPlusObject, inMode, inColor);
end;
//procedure TTextView.SetFontAndColor(inFont : TFont; inMode : Cardinal);
//begin
// BTextView_SetFontAndColor(CPlusObject, inFont.CPlusObject, inMode);
//end;
//procedure TTextView.SetFontAndColor(inFont : TFont);
//begin
// BTextView_SetFontAndColor(CPlusObject, inFont.CPlusObject);
//end;
procedure TTextView.SetFontAndColor(startOffset : cardinal; endOffset : cardinal; inFont : TFont; inMode : Cardinal; var inColor : Trgb_color);
begin
BTextView_SetFontAndColor(CPlusObject, startOffset, endOffset, inFont.CPlusObject, inMode, inColor);
end;
procedure TTextView.GetFontAndColor(inOffset : integer; outFont : TFont; outColor : Trgb_color);
begin
BTextView_GetFontAndColor(CPlusObject, inOffset, outFont.CPlusObject, outColor);
end;
procedure TTextView.GetFontAndColor(outFont : TFont; outMode : integer; outColor : Trgb_color; outEqColor : boolean);
begin
BTextView_GetFontAndColor(CPlusObject, outFont.CPlusObject, outMode, outColor, outEqColor);
end;
{
procedure TTextView.SetRunArray(startOffset : integer; endOffset : integer; inRuns : Ttext_tun_array);
begin
BTextView_SetRunArray(CPlusObject, startOffset, endOffset, inRuns);
end;
function TTextView.RunArray(startOffset : integer; endOffset : integer; outSize : ^integer) : Ttext_run_array;
begin
Result := BTextView_RunArray(CPlusObject, startOffset, endOffset, outSize);
end;
}
function TTextView.LineAt(offset : integer) : integer;
begin
Result := BTextView_LineAt(CPlusObject, offset);
end;
function TTextView.LineAt(point : TPoint) : integer;
begin
Result := BTextView_LineAt(CPlusObject, point.CPlusObject);
end;
function TTextView.PointAt(inOffset : integer; outHeight : double) : TPoint;
begin
Result := BTextView_PointAt(CPlusObject, inOffset, outHeight);
end;
function TTextView.OffsetAt(point : TPoint) : integer;
begin
Result := BTextView_OffsetAt(CPlusObject, point.CPlusObject);
end;
function TTextView.OffsetAt(line : integer) : integer;
begin
Result := BTextView_OffsetAt(CPlusObject, line);
end;
procedure TTextView.FindWord(inOffset : integer; outFromOffset : integer; outToOffset : integer);
begin
BTextView_FindWord(CPlusObject, inOffset, outFromOffset, outToOffset);
end;
function TTextView.CanEndLine(offset : integer) : boolean;
begin
Result := BTextView_CanEndLine(CPlusObject, offset);
end;
function TTextView.LineWidth(lineNum : integer) : double;
begin
Result := BTextView_LineWidth(CPlusObject, lineNum);
end;
function TTextView.LineHeight(lineNum : integer) : double;
begin
Result := BTextView_LineHeight(CPlusObject, lineNum);
end;
function TTextView.TextHeight(startLine : integer; endLine : integer) : double;
begin
Result := BTextView_TextHeight(CPlusObject, startLine, endLine);
end;
{procedure TTextView.GetTextRegion(startOffset : integer; endOffset : integer; outRegion : TRegion);
begin
BTextView_GetTextRegion(CPlusObject, startOffset, endOffset, outRegion.CPlusObject);
end;
}
procedure TTextView.ScrollToOffset(inOffset : integer);
begin
BTextView_ScrollToOffset(CPlusObject, inOffset);
end;
procedure TTextView.ScrollToSelection;
begin
BTextView_ScrollToSelection(CPlusObject);
end;
procedure TTextView.Highlight(startOffset : integer; endOffset : integer);
begin
BTextView_Highlight(CPlusObject, startOffset, endOffset);
end;
procedure TTextView.SetTextRect(rect : TRect);
begin
BTextView_SetTextRect(CPlusObject, rect.CPlusObject);
end;
function TTextView.TextRect : TRect;
begin
Result := BTextView_TextRect(CPlusObject);
end;
procedure TTextView.SetStylable(stylable : boolean);
begin
BTextView_SetStylable(CPlusObject, stylable);
end;
function TTextView.IsStylable : boolean;
begin
Result := BTextView_IsStylable(CPlusObject);
end;
procedure TTextView.SetTabWidth(width : double);
begin
BTextView_SetTabWidth(CPlusObject, width);
end;
function TTextView.TabWidth : double;
begin
Result := BTextView_TabWidth(CPlusObject);
end;
procedure TTextView.MakeSelectable(selectable : boolean);
begin
BTextView_MakeSelectable(CPlusObject, selectable);
end;
function TTextView.IsSelectable : boolean;
begin
Result := BTextView_IsSelectable(CPlusObject);
end;
procedure TTextView.MakeEditable(editable : boolean);
begin
BTextView_MakeEditable(CPlusObject, editable);
end;
function TTextView.IsEditable : boolean;
begin
Result := BTextView_IsEditable(CPlusObject);
end;
procedure TTextView.SetWordWrap(awrap : boolean);
begin
BTextView_SetWordWrap(CPlusObject, awrap);
end;
function TTextView.DoesWordWrap : boolean;
begin
Result := BTextView_DoesWordWrap(CPlusObject);
end;
procedure TTextView.SetMaxBytes(max : integer);
begin
BTextView_SetMaxBytes(CPlusObject, max);
end;
function TTextView.MaxBytes : integer;
begin
Result := BTextView_MaxBytes(CPlusObject);
end;
procedure TTextView.DisallowChar(aChar : Cardinal);
begin
BTextView_DisallowChar(CPlusObject, aChar);
end;
procedure TTextView.AllowChar(aChar : Cardinal);
begin
BTextView_AllowChar(CPlusObject, aChar);
end;
procedure TTextView.SetAlignment(flag : Talignment);
begin
BTextView_SetAlignment(CPlusObject, flag);
end;
function TTextView.Alignment : Talignment;
begin
Result := BTextView_Alignment(CPlusObject);
end;
procedure TTextView.SetAutoindent(state : boolean);
begin
BTextView_SetAutoindent(CPlusObject, state);
end;
function TTextView.DoesAutoindent : boolean;
begin
Result := BTextView_DoesAutoindent(CPlusObject);
end;
{procedure TTextView.SetColorSpace(colors : TColor_Space);
begin
BTextView_SetColorSpace(CPlusObject, colors);
end;
function TTextView.ColorSpace : TColor_Space;
begin
Result := BTextView_ColorSpace(CPlusObject);
end;
}
procedure TTextView.MakeResizable(resize : boolean; resizeView : TView);
begin
BTextView_MakeResizable(CPlusObject, resize, resizeView.CPlusObject);
end;
function TTextView.IsResizable : boolean;
begin
Result := BTextView_IsResizable(CPlusObject);
end;
procedure TTextView.SetDoesUndo(undo : boolean);
begin
BTextView_SetDoesUndo(CPlusObject, undo);
end;
function TTextView.DoesUndo : boolean;
begin
Result := BTextView_DoesUndo(CPlusObject);
end;
procedure TTextView.HideTyping(enabled : boolean);
begin
BTextView_HideTyping(CPlusObject, enabled);
end;
function TTextView.IsTypingHidden : boolean;
begin
Result := BTextView_IsTypingHidden(CPlusObject);
end;
procedure TTextView.ResizeToPreferred;
begin
BTextView_ResizeToPreferred(CPlusObject);
end;
procedure TTextView.GetPreferredSize(width : double; height : double);
begin
BTextView_GetPreferredSize(CPlusObject, width, height);
end;
procedure TTextView.AllAttached;
begin
BTextView_AllAttached(CPlusObject);
end;
procedure TTextView.AllDetached;
begin
BTextView_AllDetached(CPlusObject);
end;
{function TTextView.FlattenRunArray(inArray : Ttext_tun_array; outSize : integer) : Pointer;
begin
Result := BTextView_FlattenRunArray(CPlusObject, inArray, outSize);
end;
function TTextView.UnflattenRunArray(data : Pointer; outSize : integer) : Ttext_run_array;
begin
Result := BTextView_UnflattenRunArray(CPlusObject, data, outSize);
end;
procedure TTextView.InsertText(inText : PChar; inLength : integer; inOffset : integer; inRuns : Ttext_tun_array);
begin
BTextView_InsertText(CPlusObject, inText, inLength, inOffset, inRuns);
end;
}
{procedure TTextView.Undo(clipboard : TClipboard);
begin
BTextView_Undo(CPlusObject, clipboard.CPlusObject);
end;
function TTextView.UndoState(isRedo : boolean) : Tundo_state;
begin
Result := BTextView_UndoState(CPlusObject, isRedo);
end;
procedure TTextView.GetDragParameters(drag : TMessage; bitmap : TBitmap; point : TPoint; handler : THandler);
begin
BTextView_GetDragParameters(CPlusObject, drag.CPlusObject, bitmap.CPlusObject, point.CPlusObject, handler.CPlusObject);
end;
}
end.