Browse Source

* Lot of renamings

sg 25 years ago
parent
commit
7878572843
1 changed files with 109 additions and 118 deletions
  1. 109 118
      fcl/shedit/gtkshedit.pp

+ 109 - 118
fcl/shedit/gtkshedit.pp

@@ -1,24 +1,18 @@
 {
-  $Id$
+    $Id$
 
-  GTK implementation for shedit
-  Copyright (C) 1999  Sebastian Guenther ([email protected])
+    GTK implementation for SHEdit
+    Copyright (C) 1999  Sebastian Guenther ([email protected])
 
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
+    See the file COPYING.FPC, 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.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program; if not, write to the Free Software
-  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+    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.
 }
-unit gtkshedit;
+
+unit GtkSHEdit;
 interface
 
 {$MODE objfpc}
@@ -65,9 +59,9 @@ type
   PSHStyleArray = ^TSHStyleArray;
 
 
-  {This class is a kind of widget class which implements the ISHRenderer
+  {This class is a kind of widget class which implements the ISHWidget
    interface for drawing syntax highlighted text}
-  TGtkSHEdit = class(ISHRenderer)
+  TGtkSHWidget = class(ISHWidget)
   protected
     SHStyles: PSHStyleArray;
     SHStyleCount: Integer;              // # of currently registered styles
@@ -76,17 +70,16 @@ type
 
     hadj, vadj: PGtkAdjustment;
     PaintBox: PGtkWidget;
-    Edit: TSHTextEdit;
+    FEdit: TSHTextEdit;
     LeftIndent: Integer;
     CharW, CharH: Integer;
     Font: array[TSHFontStyle] of PGdkFont; // Fonts for content drawing
     gc: PGdkGC;
     GdkWnd: PGdkWindow;
 
-    procedure SetEdit(AEdit: TSHTextEdit);
     procedure SetGCColor(AColor: LongWord);
 
-    // ISHRenderer Implemenation:
+    // ISHWidget Implemenation:
 
     procedure InvalidateRect(x1, y1, x2, y2: Integer); override;
     procedure InvalidateLines(y1, y2: Integer); override;
@@ -118,12 +111,13 @@ type
   public
     Widget: PGtkWidget;  // this is the outer editor widget
 
-    constructor Create;
+    constructor Create(ADoc: TTextDoc; AEditClass: TSHTextEditClass);
 
     procedure SetFocus;
 
     function  AddSHStyle(AName: String; AColor, ABackground: LongWord;
       AStyle: TSHFontStyle): Integer;
+    property Edit: TSHTextEdit read FEdit;
   end;
 
 
@@ -134,32 +128,34 @@ implementation
                               GTK/GDK Callbacks
 *****************************************************************************}
 
-procedure TGtkSHEdit_Expose(GtkWidget: PGtkWidget; event: PGdkEventExpose; edit: TGtkSHEdit); cdecl;
+procedure TGtkSHWidget_Expose(GtkWidget: PGtkWidget; event: PGdkEventExpose;
+  widget: TGtkSHWidget); cdecl;
 var
   x1, y1, x2, y2: Integer;
 begin
   x1 := event^.area.x;
   if x1 > 0 then
-    Dec(x1, edit.LeftIndent);
+    Dec(x1, widget.LeftIndent);
   x2 := x1 + event^.area.width - 1;
-  x1 := x1 div edit.CharW;
-  x2 := (x2 + edit.CharW - 1) div edit.CharW;
-  y1 := event^.area.y div edit.CharH;
-  y2 := (event^.area.y + event^.area.height - 1) div edit.CharH;
-//  WriteLn(Format('Expose(%d/%d - %d/%d) for %s', [x1, y1, x2, y2, edit.ClassName]));
-
-  edit.GdkWnd := edit.PaintBox^.window;
-  edit.GC := gdk_gc_new(edit.GdkWnd);
-  edit.CurGCColor := 0;         // Reset color, because we have a new GC!
-  gdk_gc_copy(edit.GC, PGtkStyle(edit.PaintBox^.thestyle)^.
-    fg_gc[edit.PaintBox^.state]);
-
-  edit.Edit.AdjustCursorToRange;
-  edit.Edit.DrawContent(x1, y1, x2, y2);
+  x1 := x1 div widget.CharW;
+  x2 := (x2 + widget.CharW - 1) div widget.CharW;
+  y1 := event^.area.y div widget.CharH;
+  y2 := (event^.area.y + event^.area.height - 1) div widget.CharH;
+//  WriteLn(Format('Expose(%d/%d - %d/%d) for %s', [x1, y1, x2, y2, FEdit.ClassName]));
+
+  widget.GdkWnd := widget.PaintBox^.window;
+  widget.GC := gdk_gc_new(widget.GdkWnd);
+  widget.CurGCColor := 0;         // Reset color, because we have a new GC!
+  gdk_gc_copy(widget.GC, PGtkStyle(widget.PaintBox^.thestyle)^.
+    fg_gc[widget.PaintBox^.state]);
+
+  widget.FEdit.AdjustCursorToRange;
+  widget.FEdit.DrawContent(x1, y1, x2, y2);
 end;
 
 
-function TGtkSHEdit_KeyPressed(GtkWidget: PGtkWidget; Event: PGdkEventKey; edit: TGtkSHEdit): Integer; cdecl;
+function TGtkSHWidget_KeyPressed(GtkWidget: PGtkWidget; Event: PGdkEventKey;
+  widget: TGtkSHWidget): Integer; cdecl;
 var
   KeyState,
   KeyCode: LongWord;
@@ -167,7 +163,7 @@ var
 begin
   Result := 1;
 
-  Case Event^.KeyVal of
+  case Event^.KeyVal of
     GDK_KP_Insert    : KeyCode:=GDK_Insert;
     GDK_KP_Home      : KeyCode:=GDK_Home;
     GDK_KP_Left      : KeyCode:=GDK_Left;
@@ -190,7 +186,7 @@ begin
   end;
   KeyState:=Event^.State;
 
-  WriteLn('KeyCode ', KeyCode,'   keystate ',KeyState);
+  // WriteLn('KeyCode ', KeyCode,'   keystate ',KeyState);
 
   // Calculate the Key modifiers (shiftstate)
   KeyMods := [];
@@ -206,40 +202,42 @@ begin
   if (KeyState and $400) <> 0 then KeyMods := KeyMods + [ssRight];
   if (KeyState and $2000) <> 0 then KeyMods := KeyMods + [ssAltGr];
 
-  edit.Edit.KeyPressed(KeyCode,KeyMods);
+  widget.FEdit.KeyPressed(KeyCode,KeyMods);
 end;
 
 
-function TGtkSHEdit_ButtonPressEvent(GtkWidget: PGtkWidget; event: PGdkEventButton; edit: TGtkSHEdit): Integer; cdecl;
+function TGtkSHWidget_ButtonPressEvent(GtkWidget: PGtkWidget;
+  event: PGdkEventButton; widget: TGtkSHWidget): Integer; cdecl;
 begin
-  edit.Edit.CursorX := Round((event^.x - edit.LeftIndent) / edit.CharW);
-  edit.Edit.CursorY := Trunc(event^.y) div edit.CharH;
-  edit.SetFocus;
+  widget.FEdit.CursorX := Round((event^.x - widget.LeftIndent) / widget.CharW);
+  widget.FEdit.CursorY := Trunc(event^.y) div widget.CharH;
+  widget.SetFocus;
   Result := 1;
 end;
 
 
-function TGtkShEdit_FocusInEvent(GtkWidget: PGtkWidget; event: PGdkEventFocus; edit: TGtkSHEdit): Integer; cdecl;
+function TGtkSHWidget_FocusInEvent(GtkWidget: PGtkWidget;
+  event: PGdkEventFocus; widget: TGtkSHWidget): Integer; cdecl;
 begin
 //  Writeln('focus in');
-  edit.Edit.FocusIn;
+  widget.FEdit.FocusIn;
   result:=1;
 end;
 
 
-function TGtkShEdit_FocusOutEvent(GtkWidget: PGtkWidget; event: PGdkEventFocus; edit: TGtkSHEdit): Integer; cdecl;
+function TGtkSHWidget_FocusOutEvent(GtkWidget: PGtkWidget; event: PGdkEventFocus; widget: TGtkSHWidget): Integer; cdecl;
 begin
 //  Writeln('focus out');
-  edit.Edit.FocusOut;
+  widget.FEdit.FocusOut;
   result:=1;
 end;
 
 
 {*****************************************************************************
-                                 TGtkSHEdit
+                                 TGtkSHWidget
 *****************************************************************************}
 
-constructor TGtkSHEdit.Create;
+constructor TGtkSHWidget.Create(ADoc: TTextDoc; AEditClass: TSHTextEditClass);
 var
   lfd: String;    // Logical font descriptor
   i: Integer;
@@ -260,7 +258,6 @@ begin
 
   CharW := gdk_char_width(Font[fsBold], ' ');
   CharH := 14 {=FontHeight} + 3;   // *** find better way to determine max. cell height
-  Edit := nil;
 
   LeftIndent := CharW;
 
@@ -278,64 +275,61 @@ begin
   gtk_widget_set_flags(PGtkWidget(PaintBox),GTK_CAN_FOCUS);
 
   gtk_signal_connect(PGtkObject(PaintBox), 'expose-event',
-    GTK_SIGNAL_FUNC(@TGtkSHEdit_Expose), self);
+    GTK_SIGNAL_FUNC(@TGtkSHWidget_Expose), self);
   gtk_signal_connect_after(PGtkObject(PaintBox), 'key-press-event',
-    GTK_SIGNAL_FUNC(@TGtkSHEdit_Keypressed), self);
+    GTK_SIGNAL_FUNC(@TGtkSHWidget_Keypressed), self);
   gtk_signal_connect(PGtkObject(PaintBox), 'button-press-event',
-    GTK_SIGNAL_FUNC(@TGtkSHEdit_ButtonPressEvent), self);
+    GTK_SIGNAL_FUNC(@TGtkSHWidget_ButtonPressEvent), self);
   gtk_signal_connect_after(PGtkObject(PaintBox), 'focus-in-event',
-    GTK_SIGNAL_FUNC(@TGtkSHEdit_FocusInEvent), self);
+    GTK_SIGNAL_FUNC(@TGtkSHWidget_FocusInEvent), self);
   gtk_signal_connect_after(PGtkObject(PaintBox), 'focus-out-event',
-    GTK_SIGNAL_FUNC(@TGtkSHEdit_FocusOutEvent), self);
+    GTK_SIGNAL_FUNC(@TGtkSHWidget_FocusOutEvent), self);
 
   gtk_widget_set_events(PGtkWidget(Paintbox),
     GDK_EXPOSURE_MASK or GDK_KEY_PRESS_MASK or GDK_KEY_RELEASE_MASK or
     GDK_BUTTON_PRESS_MASK or GDK_ENTER_NOTIFY_MASK or GDK_LEAVE_NOTIFY_MASK);
 
   gtk_widget_show(Widget);
-end;
 
 
-procedure TGtkSHEdit.SetEdit(AEdit: TSHTextEdit);
-begin
-  Edit := AEdit;
+  FEdit := AEditClass.Create(ADoc, Self);
   shWhitespace      := AddSHStyle('Whitespace', colBlack, colWhite,    fsNormal);
-  Edit.shDefault    := AddSHStyle('Default',    colBlack, colWhite,    fsNormal);
-  Edit.shSelected   := AddSHStyle('Selected',   colWhite, colDarkBlue, fsNormal);
+  FEdit.shDefault    := AddSHStyle('Default',    colBlack, colWhite,    fsNormal);
+  FEdit.shSelected   := AddSHStyle('Selected',   colWhite, colDarkBlue, fsNormal);
 { Install keys }
-  Edit.AddKeyDef(@Edit.CursorUp, selClear, 'Cursor up', GDK_Up, []);
-  Edit.AddKeyDef(@Edit.CursorDown, selClear, 'Cursor down', GDK_Down, []);
-  Edit.AddKeyDef(@Edit.CursorLeft, selClear, 'Cursor left', GDK_Left, []);
-  Edit.AddKeyDef(@Edit.CursorRight, selClear, 'Cursor right', GDK_Right, []);
-  Edit.AddKeyDef(@Edit.CursorHome, selClear, 'Cursor Home', GDK_Home, []);
-  Edit.AddKeyDef(@Edit.CursorEnd, selClear, 'Cursor Home', GDK_End, []);
-  Edit.AddKeyDef(@Edit.CursorPageUp, selClear, 'Cursor PageUp', GDK_Page_Up, []);
-  Edit.AddKeyDef(@Edit.CursorPageDown, selClear, 'Cursor PageDown', GDK_Page_Down, []);
-  Edit.AddKeyDef(@Edit.CursorDocBegin, selClear, 'Cursor Document Start', GDK_Page_Up, [ssCtrl]);
-  Edit.AddKeyDef(@Edit.CursorDocEnd, selClear, 'Cursor Document End', GDK_Page_Down, [ssCtrl]);
-
-  Edit.AddKeyDef(@Edit.CursorUp, selExtend, 'Selection up', GDK_Up, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorDown, selExtend, 'Selection down', GDK_Down, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorLeft, selExtend, 'Selection left', GDK_Left, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorRight, selExtend, 'Selection right', GDK_Right, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorHome, selExtend, 'Selection Home', GDK_Home, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorEnd, selExtend, 'Selection Home', GDK_End, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorPageUp, selExtend, 'Selection PageUp', GDK_Page_Up, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorPageDown, selExtend, 'Selection PageDown', GDK_Page_Down, [ssShift]);
-  Edit.AddKeyDef(@Edit.CursorDocBegin, selExtend, 'Selection Document Start', GDK_Page_Up, [ssCtrl,ssShift]);
-  Edit.AddKeyDef(@Edit.CursorDocEnd, selExtend, 'Selection Document End', GDK_Page_Down, [ssCtrl,ssShift]);
-
-  Edit.AddKeyDef(@Edit.ToggleOverwriteMode, selNothing, 'Toggle overwrite mode', GDK_Insert, []);
-  Edit.AddKeyDef(@Edit.EditDelLeft, selClear, 'Delete char left of cursor', GDK_Backspace, []);
-  Edit.AddKeyDef(@Edit.EditDelRight, selClear, 'Delete char right of cursor', GDK_Delete_Key, []);
-  Edit.AddKeyDef(@Edit.EditDelLine, selClear, 'Delete current line', Ord('Y'), [ssCtrl]);
-  Edit.AddKeyDef(@Edit.EditDelLine, selClear, 'Delete current line', Ord('y'), [ssCtrl]);
-  Edit.AddKeyDef(@Edit.EditUndo, selClear, 'Undo last action', GDK_Backspace, [ssAlt]);
-  Edit.AddKeyDef(@Edit.EditRedo, selClear, 'Redo last undone action', GDK_Backspace, [ssShift, ssAlt]);
+  FEdit.AddKeyDef(@FEdit.CursorUp, selClear, 'Cursor up', GDK_Up, []);
+  FEdit.AddKeyDef(@FEdit.CursorDown, selClear, 'Cursor down', GDK_Down, []);
+  FEdit.AddKeyDef(@FEdit.CursorLeft, selClear, 'Cursor left', GDK_Left, []);
+  FEdit.AddKeyDef(@FEdit.CursorRight, selClear, 'Cursor right', GDK_Right, []);
+  FEdit.AddKeyDef(@FEdit.CursorHome, selClear, 'Cursor Home', GDK_Home, []);
+  FEdit.AddKeyDef(@FEdit.CursorEnd, selClear, 'Cursor Home', GDK_End, []);
+  FEdit.AddKeyDef(@FEdit.CursorPageUp, selClear, 'Cursor PageUp', GDK_Page_Up, []);
+  FEdit.AddKeyDef(@FEdit.CursorPageDown, selClear, 'Cursor PageDown', GDK_Page_Down, []);
+  FEdit.AddKeyDef(@FEdit.CursorDocBegin, selClear, 'Cursor Document Start', GDK_Page_Up, [ssCtrl]);
+  FEdit.AddKeyDef(@FEdit.CursorDocEnd, selClear, 'Cursor Document End', GDK_Page_Down, [ssCtrl]);
+
+  FEdit.AddKeyDef(@FEdit.CursorUp, selExtend, 'Selection up', GDK_Up, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorDown, selExtend, 'Selection down', GDK_Down, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorLeft, selExtend, 'Selection left', GDK_Left, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorRight, selExtend, 'Selection right', GDK_Right, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorHome, selExtend, 'Selection Home', GDK_Home, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorEnd, selExtend, 'Selection Home', GDK_End, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorPageUp, selExtend, 'Selection PageUp', GDK_Page_Up, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorPageDown, selExtend, 'Selection PageDown', GDK_Page_Down, [ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorDocBegin, selExtend, 'Selection Document Start', GDK_Page_Up, [ssCtrl,ssShift]);
+  FEdit.AddKeyDef(@FEdit.CursorDocEnd, selExtend, 'Selection Document End', GDK_Page_Down, [ssCtrl,ssShift]);
+
+  FEdit.AddKeyDef(@FEdit.ToggleOverwriteMode, selNothing, 'Toggle overwrite mode', GDK_Insert, []);
+  FEdit.AddKeyDef(@FEdit.EditDelLeft, selClear, 'Delete char left of cursor', GDK_Backspace, []);
+  FEdit.AddKeyDef(@FEdit.EditDelRight, selClear, 'Delete char right of cursor', GDK_Delete_Key, []);
+  FEdit.AddKeyDef(@FEdit.EditDelLine, selClear, 'Delete current line', Ord('Y'), [ssCtrl]);
+  FEdit.AddKeyDef(@FEdit.EditDelLine, selClear, 'Delete current line', Ord('y'), [ssCtrl]);
+  FEdit.AddKeyDef(@FEdit.EditUndo, selClear, 'Undo last action', GDK_Backspace, [ssAlt]);
+  FEdit.AddKeyDef(@FEdit.EditRedo, selClear, 'Redo last undone action', GDK_Backspace, [ssShift, ssAlt]);
 end;
 
 
-function TGtkSHEdit.AddSHStyle(AName: String; AColor, ABackground: LongWord; AStyle: TSHFontStyle): Integer;
+function TGtkSHWidget.AddSHStyle(AName: String; AColor, ABackground: LongWord; AStyle: TSHFontStyle): Integer;
 begin
   ReAllocMem(SHStyles, SizeOf(TSHStyle) * (SHStyleCount + 1));
   Inc(SHStyleCount);
@@ -347,7 +341,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.SetGCColor(AColor: LongWord);
+procedure TGtkSHWidget.SetGCColor(AColor: LongWord);
 var
   c: TGdkColor;
 begin
@@ -363,7 +357,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.ClearRect(x1, y1, x2, y2: Integer);
+procedure TGtkSHWidget.ClearRect(x1, y1, x2, y2: Integer);
 begin
   SetGCColor(SHStyles^[shWhitespace].Background);
   gdk_draw_rectangle(PGdkDrawable(GdkWnd), GC, 1,
@@ -372,7 +366,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.InvalidateRect(x1, y1, x2, y2: Integer);
+procedure TGtkSHWidget.InvalidateRect(x1, y1, x2, y2: Integer);
 var
   r : TGdkRectangle;
 begin
@@ -384,7 +378,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.InvalidateLines(y1, y2: Integer);
+procedure TGtkSHWidget.InvalidateLines(y1, y2: Integer);
 var
   r : TGdkRectangle;
   w,h : integer;
@@ -398,7 +392,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.DrawTextLine(x1, x2, y: Integer; s: PChar);
+procedure TGtkSHWidget.DrawTextLine(x1, x2, y: Integer; s: PChar);
 var
   CurColor: LongWord;
   CurX1, CurX2: Integer;
@@ -490,13 +484,13 @@ begin
 end;
 
 
-procedure TGtkSHEdit.SetFocus;
+procedure TGtkSHWidget.SetFocus;
 begin
   gtk_window_set_focus(PGtkWindow(gtk_widget_get_toplevel(Paintbox)),Paintbox);
 end;
 
 
-procedure TGtkSHEdit.ShowCursor(x, y: Integer);
+procedure TGtkSHWidget.ShowCursor(x, y: Integer);
 begin
 //  writeln('Showcursor ',x,',',y);
   if assigned(GdkWnd) then
@@ -507,7 +501,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.HideCursor(x, y: Integer);
+procedure TGtkSHWidget.HideCursor(x, y: Integer);
 var
   r : TGdkRectangle;
 begin
@@ -520,13 +514,13 @@ begin
 end;
 
 
-function TGtkSHEdit.GetLineWidth: Integer;
+function TGtkSHWidget.GetLineWidth: Integer;
 begin
   Result := (Trunc(hadj^.upper)-LeftIndent) div CharW;
 end;
 
 
-procedure TGtkSHEdit.SetLineWidth(count: Integer);
+procedure TGtkSHWidget.SetLineWidth(count: Integer);
 begin
   hadj^.upper := count * CharW + LeftIndent;
   gtk_adjustment_changed(hadj);
@@ -534,13 +528,13 @@ begin
 end;
 
 
-function TGtkSHEdit.GetLineCount: Integer;
+function TGtkSHWidget.GetLineCount: Integer;
 begin
   Result := Trunc(vadj^.upper) div CharH;
 end;
 
 
-procedure TGtkSHEdit.SetLineCount(count: Integer);
+procedure TGtkSHWidget.SetLineCount(count: Integer);
 begin
   vadj^.upper := (count+1) * CharH;
   gtk_adjustment_changed(vadj);
@@ -548,7 +542,7 @@ begin
 end;
 
 
-function TGtkSHEdit.GetHorzPos: Integer;
+function TGtkSHWidget.GetHorzPos: Integer;
 begin
   Result := Trunc(hadj^.value);
   if Result>0 then
@@ -556,7 +550,7 @@ begin
 end;
 
 
-procedure TGtkSHEdit.SetHorzPos(x: Integer);
+procedure TGtkSHWidget.SetHorzPos(x: Integer);
 begin
   if x>0 then
    x:=x*CharW+LeftIndent;
@@ -564,38 +558,35 @@ begin
 end;
 
 
-function TGtkSHEdit.GetVertPos: Integer;
+function TGtkSHWidget.GetVertPos: Integer;
 begin
   Result := (Trunc(vadj^.value)+CharH-1) div CharH;
 end;
 
 
-procedure TGtkSHEdit.SetVertPos(y: Integer);
+procedure TGtkSHWidget.SetVertPos(y: Integer);
 begin
   gtk_adjustment_set_value(vadj, y*CharH);
 end;
 
 
-function TGtkSHEdit.GetPageWidth: Integer;
+function TGtkSHWidget.GetPageWidth: Integer;
 begin
   Result := Trunc(hadj^.page_size) div CharW;
 end;
 
 
-function TGtkSHEdit.GetPageHeight: Integer;
+function TGtkSHWidget.GetPageHeight: Integer;
 begin
   Result := Trunc(vadj^.page_size) div CharH;
 end;
 
 end.
+
 {
   $Log$
-  Revision 1.9  1999-12-23 09:52:42  sg
-  * Fixed cursor placement as reaction on a mouse click:
-    - x value: if the click is within the left half of a character cell, the
-      cursor will be set in front of this char; if the click is in the right
-      halft, the cursor must be set _behind_ this character!
-    - y value: don't subtract "LeftIndent" from the y pixel coordinate...
+  Revision 1.10  1999-12-30 21:05:08  sg
+  * Lot of renamings
 
   Revision 1.8  1999/12/22 22:28:08  peter
     * updates for cursor setting