mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-03 00:38:15 +02:00
Finishes separating TGtk2WSCustomMemo from the gtk1 counterpart.
git-svn-id: trunk@14863 -
This commit is contained in:
parent
58d9858249
commit
e8e001fd1d
@ -58,6 +58,8 @@ uses
|
||||
|
||||
gtk2callback.inc headers
|
||||
}
|
||||
const
|
||||
gtkevent_window_state_event = 'window-state-event';
|
||||
|
||||
function GTKWindowStateEventCB(widget: PGtkWidget;
|
||||
state: PGdkEventWindowState;
|
||||
|
@ -246,6 +246,40 @@ begin
|
||||
// not supported
|
||||
end;
|
||||
|
||||
class procedure TGtk2WSCustomMemo.SetCharCase(const ACustomEdit: TCustomEdit;
|
||||
NewCase: TEditCharCase);
|
||||
begin
|
||||
// TODO: implement me!
|
||||
end;
|
||||
|
||||
class procedure TGtk2WSCustomMemo.SetMaxLength(const ACustomEdit: TCustomEdit;
|
||||
NewLength: integer);
|
||||
var
|
||||
Widget: PGtkWidget;
|
||||
begin
|
||||
Widget:=PGtkWidget(ACustomEdit.Handle);
|
||||
if GtkWidgetIsA(Widget, GTK_TYPE_ENTRY) then
|
||||
gtk_entry_set_max_length(GTK_ENTRY(Widget), guint16(NewLength));
|
||||
end;
|
||||
|
||||
class procedure TGtk2WSCustomMemo.SetReadOnly(const ACustomEdit: TCustomEdit;
|
||||
NewReadOnly: boolean);
|
||||
var
|
||||
Widget: PGtkWidget;
|
||||
begin
|
||||
Widget:=PGtkWidget(ACustomEdit.Handle);
|
||||
if GtkWidgetIsA(Widget, GTK_TYPE_ENTRY) then
|
||||
gtk_entry_set_editable(GTK_ENTRY(Widget), not ACustomEdit.ReadOnly);
|
||||
end;
|
||||
|
||||
class procedure TGtk2WSCustomMemo.GetPreferredSize(
|
||||
const AWinControl: TWinControl; var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean);
|
||||
begin
|
||||
GetGTKDefaultWidgetSize(AWinControl,PreferredWidth,PreferredHeight,
|
||||
WithThemeSpace);
|
||||
end;
|
||||
|
||||
class function TGtk2WSCustomMemo.GetSelStart(const ACustomEdit: TCustomEdit
|
||||
): integer;
|
||||
var
|
||||
|
@ -139,7 +139,7 @@ begin
|
||||
SetCallback(LM_VSCROLL, PGtkObject(AWidget), AWidgetInfo^.LCLObject);
|
||||
end;
|
||||
|
||||
g_signal_connect(PGtkObject(AWidgetInfo^.CoreWidget), 'window-state-event',
|
||||
g_signal_connect(PGtkObject(AWidgetInfo^.CoreWidget), gtkevent_window_state_event,
|
||||
gtk_signal_func(@GTKWindowStateEventCB), AWidgetInfo^.LCLObject);
|
||||
end;
|
||||
|
||||
@ -186,11 +186,7 @@ begin
|
||||
else AResizable := FormResizableMap[ABorderStyle];
|
||||
|
||||
// gtk_window_set_policy is deprecated in Gtk2
|
||||
{$IFDEF Gtk2}
|
||||
gtk_window_set_resizable(GTK_WINDOW(P), gboolean(AResizable));
|
||||
{$ELSE}
|
||||
gtk_window_set_policy(GTK_WINDOW(P), AResizable, AResizable, 0);
|
||||
{$ENDIF}
|
||||
gtk_window_set_resizable(GTK_WINDOW(P), gboolean(AResizable));
|
||||
|
||||
// Sets the title
|
||||
gtk_window_set_title(PGtkWindow(P), AParams.Caption);
|
||||
@ -210,10 +206,8 @@ begin
|
||||
Box := CreateFormContents(ACustomForm, P);
|
||||
gtk_container_add(PGtkContainer(P), Box);
|
||||
|
||||
{$IfDef GTK2}
|
||||
//so we can double buffer ourselves, eg, the Form Designer
|
||||
gtk_widget_set_double_buffered(Box, False);
|
||||
{$EndIf}
|
||||
//so we can double buffer ourselves, eg, the Form Designer
|
||||
gtk_widget_set_double_buffered(Box, False);
|
||||
|
||||
gtk_widget_show(Box);
|
||||
|
||||
|
@ -24,19 +24,16 @@ unit Gtk2WSStdCtrls;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$PACKRECORDS c}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Math, Controls, Graphics,
|
||||
////////////////////////////////////////////////////
|
||||
// I M P O R T A N T
|
||||
////////////////////////////////////////////////////
|
||||
// To get as little as posible circles,
|
||||
// uncomment only when needed for registration
|
||||
////////////////////////////////////////////////////
|
||||
StdCtrls, LMessages, LCLType, LCLProc,
|
||||
////////////////////////////////////////////////////
|
||||
// Bindings
|
||||
glib2, gdk2, gtk2, Pango,
|
||||
// RTL, FCL, LCL
|
||||
Classes, SysUtils, Math, Controls, Graphics,
|
||||
StdCtrls, LMessages, LCLType, LCLProc,
|
||||
// Widgetset
|
||||
WSControls, WSProc, WSStdCtrls, WSLCLClasses, GtkWSStdCtrls, Gtk2Int, GtkDef,
|
||||
Gtk2CellRenderer, GTKWinApiWindow, GtkGlobals, GtkProc, InterfaceBase,
|
||||
GtkWSPrivate, Gtk2WSPrivate, GtkExtra;
|
||||
@ -197,23 +194,33 @@ type
|
||||
|
||||
{ TGtk2WSCustomMemo }
|
||||
|
||||
TGtk2WSCustomMemo = class(TGtkWSCustomMemo)
|
||||
TGtk2WSCustomMemo = class(TWSCustomMemo)
|
||||
private
|
||||
protected
|
||||
class procedure SetCallbacks(const AGtkWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo); virtual;
|
||||
public
|
||||
class function CreateHandle(const AWinControl: TWinControl; const AParams: TCreateParams): TLCLIntfHandle; override;
|
||||
|
||||
class function GetSelStart(const ACustomEdit: TCustomEdit): integer; override;
|
||||
class function GetSelLength(const ACustomEdit: TCustomEdit): integer; override;
|
||||
class function GetStrings(const ACustomMemo: TCustomMemo): TStrings; override;
|
||||
|
||||
class procedure SetAlignment(const ACustomMemo: TCustomMemo; const AAlignment: TAlignment); override;
|
||||
class procedure SetColor(const AWinControl: TWinControl);override;
|
||||
class procedure SetFont(const AWinControl: TWinControl;const AFont : TFont);override;
|
||||
class procedure SetColor(const AWinControl: TWinControl); override;
|
||||
class procedure SetFont(const AWinControl: TWinControl;const AFont : TFont); override;
|
||||
class procedure SetSelStart(const ACustomEdit: TCustomEdit; NewStart: integer); override;
|
||||
class procedure SetSelLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
|
||||
class procedure SetWantTabs(const ACustomMemo: TCustomMemo; const NewWantTabs: boolean); override;
|
||||
class procedure SetEchoMode(const ACustomEdit: TCustomEdit; NewMode: TEchoMode); override;
|
||||
class procedure SetPasswordChar(const ACustomEdit: TCustomEdit; NewChar: char); override;
|
||||
|
||||
class procedure SetCharCase(const ACustomEdit: TCustomEdit; NewCase: TEditCharCase); override;
|
||||
class procedure SetMaxLength(const ACustomEdit: TCustomEdit; NewLength: integer); override;
|
||||
class procedure SetReadOnly(const ACustomEdit: TCustomEdit; NewReadOnly: boolean); override;
|
||||
|
||||
class procedure GetPreferredSize(const AWinControl: TWinControl;
|
||||
var PreferredWidth, PreferredHeight: integer;
|
||||
WithThemeSpace: Boolean); override;
|
||||
end;
|
||||
|
||||
{ TGtk2WSEdit }
|
||||
|
Loading…
Reference in New Issue
Block a user