summaryrefslogtreecommitdiff
path: root/libgtk_kylix/GTKControls.pas
diff options
context:
space:
mode:
Diffstat (limited to 'libgtk_kylix/GTKControls.pas')
-rw-r--r--libgtk_kylix/GTKControls.pas388
1 files changed, 149 insertions, 239 deletions
diff --git a/libgtk_kylix/GTKControls.pas b/libgtk_kylix/GTKControls.pas
index 82de154..4729266 100644
--- a/libgtk_kylix/GTKControls.pas
+++ b/libgtk_kylix/GTKControls.pas
@@ -1,6 +1,5 @@
(*
GTK-Kylix Library: GTKControls - Basic objects
- Version 0.6.23 (last updated 2008-11-11)
Copyright (C) 2007 Tomas Bzatek <tbzatek@users.sourceforge.net>
This library is free software; you can redistribute it and/or
@@ -24,7 +23,7 @@ unit GTKControls;
interface
-uses gtk2, gdk2, lazglib2, lazgobject2, Classes;
+uses lazglib2, lazgobject2, lazgdk3, lazgtk3, Classes;
const
@@ -58,14 +57,15 @@ type
type
TGTKShadowType = (stNone, stShadowIn, stShadowOut, stEtchedIn, stEtchedOut);
TGTKPosition = (poLeft, poRight, poTop, poBottom);
-
+ TGTKAlignment = (taLeftJustify, taRightJustify, taCenter, taFill);
+
(****************************************** TGTKCONTROL *************************************************************************)
TGDKMouseButton = (mbLeft, mbMiddle, mbRight, mbNoButton);
TGDKKeyEvent = procedure (Sender: TObject; Key: Word; Shift: TShiftState; var Accept: boolean) of object;
TGDKMouseEvent = procedure (Sender: TObject; Button: TGDKMouseButton; Shift: TShiftState; X, Y: Integer; var Accept: boolean) of object;
TGDKFocusEvent = procedure (Sender: TObject; var Accept: boolean) of object;
TGDKExposeEvent = procedure (Sender: TObject; const Rect: PGdkRectangle; var Accept: boolean) of object;
- TGTKControlState = (csNormal, csActive, csPrelight, csSelected, csInsensitive);
+ TGTKControlState = (csNormal, csActive, csPrelight, csSelected, csInsensitive, csInconsistent, csFocused, csBackdrop, csDirLTR, cdDirRTL, csLink, csVisited, csChecked, csDropActive);
TGTKControl = class(TComponent64)
private
FVisible: Boolean;
@@ -92,6 +92,12 @@ type
function GetFocused: boolean;
function GetDefault: boolean;
function GetControlState: TGTKControlState;
+ function GetHAlign: TGTKAlignment;
+ function GetVAlign: TGTKAlignment;
+ function GetMarginStart: Integer;
+ function GetMarginEnd: Integer;
+ function GetMarginTop: Integer;
+ function GetMarginBottom: Integer;
procedure SetHeight(const Value: Integer);
procedure SetVisible(const Value: Boolean);
procedure SetWidth(const Value: Integer);
@@ -111,6 +117,12 @@ type
procedure SetOnExpose(Value: TGDKExposeEvent);
procedure SetControlState(Value: TGTKControlState);
procedure SetOnMouseMove(Value: TGDKMouseEvent);
+ procedure SetHAlign(Value: TGTKAlignment);
+ procedure SetVAlign(Value: TGTKAlignment);
+ procedure SetMarginStart(Value: Integer);
+ procedure SetMarginEnd(Value: Integer);
+ procedure SetMarginTop(Value: Integer);
+ procedure SetMarginBottom(Value: Integer);
protected
procedure SetParent(const Value: TGTKControl); virtual;
public
@@ -118,7 +130,6 @@ type
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Hide;
- procedure HideAll;
procedure Show;
procedure ShowAll;
procedure SetSizeRequest(const Width, Height: Integer);
@@ -127,21 +138,7 @@ type
property Enabled: Boolean read GetEnabled write SetEnabled default True;
property PopupMenu: TGTKControl read FPopupMenu write SetPopupMenu;
procedure SetFocus;
- procedure SetForegroundColor(Red, Green, Blue: word); overload;
- procedure SetForegroundColor(State: integer; Red, Green, Blue: word); overload;
- procedure SetForegroundColor(State: integer; Color: PGdkColor); overload;
- procedure SetForegroundColor(Color: PGdkColor); overload;
- procedure SetBackgroundColor(Red, Green, Blue: word); overload;
- procedure SetBackgroundColor(State: integer; Red, Green, Blue: word); overload;
- procedure SetBackgroundColor(State: integer; Color: PGdkColor); overload;
- procedure SetBackgroundColor(Color: PGdkColor); overload;
- procedure SetTextColor(Red, Green, Blue: word); overload;
- procedure SetTextColor(State: integer; Red, Green, Blue: word); overload;
- procedure SetBaseColor(Red, Green, Blue: word); overload;
- procedure SetBaseColor(State: integer; Red, Green, Blue: word); overload;
procedure Invalidate;
- procedure SetAlignment(XAlign, YAlign: Double);
- procedure SetPadding(XPad, YPad: integer);
function GetData(Key: string): Pointer;
procedure SetData(Key: string; Value: Pointer);
published
@@ -164,6 +161,12 @@ type
property OnExpose: TGDKExposeEvent read FOnExpose write SetOnExpose;
property ComponentState;
property ControlState: TGTKControlState read GetControlState write SetControlState;
+ property HAlign: TGTKAlignment read GetHAlign write SetHAlign;
+ property VAlign: TGTKAlignment read GetVAlign write SetHAlign;
+ property MarginStart: Integer read GetMarginStart write SetMarginStart;
+ property MarginEnd: Integer read GetMarginEnd write SetMarginEnd;
+ property MarginTop: Integer read GetMarginTop write SetMarginTop;
+ property MarginBottom: Integer read GetMarginBottom write SetMarginBottom;
end;
(****************************************** TGTKCONTAINER ***********************************************************************)
@@ -234,46 +237,27 @@ type
destructor Destroy; override;
end;
-(****************************************** TGTKTOOLTIPS ************************************************************************)
- TGTKTooltips = class(TComponent)
- private
- function GetEnabled: boolean;
- procedure SetEnabled(Value: boolean);
- public
- FObject: PGtkTooltips;
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- published
- property Enabled: boolean read GetEnabled write SetEnabled;
- end;
-
-(****************************************** TGTKTABLE ***************************************************************************)
- TGTKTableAttachOptions = set of (taoExpand, taoShrink, taoFill);
- TGTKTable = class(TGTKContainer)
+(****************************************** TGTKGRID ****************************************************************************)
+ TGTKGridAttachOptions = set of (taoExpand, taoShrink, taoFill);
+ TGTKGrid = class(TGTKContainer)
private
- function GetRowCount: integer;
- procedure SetRowCount(Value: integer);
- function GetColCount: integer;
- procedure SetColCount(Value: integer);
function GetRowSpacing: integer;
procedure SetRowSpacing(Value: integer);
function GetColSpacing: integer;
procedure SetColSpacing(Value: integer);
- function GetHomogeneous: boolean;
- procedure SetHomogeneous(Value: boolean);
+ function GetRowHomogeneous: boolean;
+ function GetColHomogeneous: boolean;
+ procedure SetRowHomogeneous(Value: boolean);
+ procedure SetColHomogeneous(Value: boolean);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
- procedure SetRowColCount(Rows, Cols: integer);
- procedure AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XPadding, YPadding: integer);
- procedure AddControlEx(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XAttachOptions,
- YAttachOptions: TGTKTableAttachOptions; XPadding, YPadding: integer);
+ procedure AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl);
published
- property RowCount: integer read GetRowCount write SetRowCount;
- property ColCount: integer read GetColCount write SetColCount;
property RowSpacing: integer read GetRowSpacing write SetRowSpacing;
property ColSpacing: integer read GetColSpacing write SetColSpacing;
- property Homogeneous: boolean read GetHomogeneous write SetHomogeneous;
+ property RowHomogeneous: boolean read GetRowHomogeneous write SetRowHomogeneous;
+ property ColHomogeneous: boolean read GetColHomogeneous write SetColHomogeneous;
end;
@@ -289,7 +273,7 @@ uses GTKMenus, GTKForms, GTKUtils;
procedure Beep;
begin
- gdk_beep;
+ gdk_beep();
end;
@@ -334,13 +318,6 @@ begin
gtk_widget_hide(FWidget);
end;
-procedure TGTKControl.HideAll;
-begin
- if Parent <> nil then Parent.HideAll;
- FVisible := False;
- gtk_widget_hide_all(FWidget);
-end;
-
procedure TGTKControl.Show;
begin
FVisible := True;
@@ -362,7 +339,7 @@ begin
raise EInvalidOperation.Create('Invalid Operation');
FParent := Value;
try
- if Assigned(FWidget) and GTK_IS_WIDGET(FWidget) then
+ if Assigned(FWidget) then
if Assigned(Value)
then gtk_widget_set_parent(FWidget, Value.FWidget)
else gtk_widget_unparent(FWidget);
@@ -378,12 +355,12 @@ end;
function TGTKControl.GetWidth: Integer;
begin
- Result := FWidget^.allocation.width;
+ Result := gtk_widget_get_allocated_width(FWidget);
end;
function TGTKControl.GetHeight: Integer;
begin
- Result := FWidget^.allocation.height;
+ Result := gtk_widget_get_allocated_height(FWidget);
end;
procedure TGTKControl.SetWidth(const Value: Integer);
@@ -402,13 +379,17 @@ begin
end;
function TGTKControl.GetLeft: Integer;
+var A: TGtkAllocation;
begin
- Result := FWidget^.allocation.x;
+ gtk_widget_get_allocation(FWidget, @A);
+ Result := A.x;
end;
function TGTKControl.GetTop: Integer;
+var A: TGtkAllocation;
begin
- Result := FWidget^.allocation.y;
+ gtk_widget_get_allocation(FWidget, @A);
+ Result := A.y;
end;
function TGTKControl.GetEnabled: boolean;
@@ -429,13 +410,13 @@ var Shift: TShiftState;
Accept: boolean;
begin
Shift := [];
- if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift);
- if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl);
- if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt);
+ if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift);
+ if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl);
+ if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt);
Accept := True;
- if Assigned(TGTKControl(user_data).FOnMouseDown) and (event^._type = GDK_BUTTON_PRESS)
+ if Assigned(TGTKControl(user_data).FOnMouseDown) and (event^.type_ = GDK_BUTTON_PRESS)
then TGTKControl(user_data).FOnMouseDown(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept);
- if Assigned(TGTKControl(user_data).FOnDblClick) and (event^._type = GDK_2BUTTON_PRESS)
+ if Assigned(TGTKControl(user_data).FOnDblClick) and (event^.type_ = GDK_2BUTTON_PRESS)
then TGTKControl(user_data).FOnDblClick(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept);
Result := not Accept;
if Accept then
@@ -463,17 +444,13 @@ begin
end;
function TGTKControl.GetTooltip: string;
-var text: PChar;
begin
- text := nil;
- Result := '';
- g_object_get(PGObject(FWidget), 'tooltip-text', [@text, nil]);
- if text <> nil then Result := string(text);
+ Result := gtk_widget_get_tooltip_text(FWidget);
end;
procedure TGTKControl.SetTooltip(Value: string);
begin
- g_object_set(PGObject(FWidget), 'tooltip-text', [PChar(Value), nil])
+ gtk_widget_set_tooltip_text(FWidget, PChar(Value));
end;
procedure TGTKControl.SetFocus;
@@ -520,9 +497,9 @@ var Shift: TShiftState;
begin
Accept := True;
Shift := [];
- if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift);
- if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl);
- if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt);
+ if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift);
+ if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl);
+ if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt);
if KeyDown then begin
if Assigned(TGTKControl(user_data).FOnKeyDown) then TGTKControl(user_data).FOnKeyDown(TGTKControl(user_data), event^.keyval,
Shift, Accept);
@@ -597,66 +574,6 @@ begin
end;
end;
-procedure TGTKControl.SetForegroundColor(Red, Green, Blue: word);
-begin
- gtk_widget_modify_fg(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetForegroundColor(State: integer; Red, Green, Blue: word);
-begin
- gtk_widget_modify_fg(FWidget, State, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetForegroundColor(State: integer; Color: PGdkColor);
-begin
- gtk_widget_modify_fg(FWidget, State, Color);
-end;
-
-procedure TGTKControl.SetForegroundColor(Color: PGdkColor);
-begin
- gtk_widget_modify_fg(FWidget, 0, Color);
-end;
-
-procedure TGTKControl.SetBackgroundColor(Red, Green, Blue: word);
-begin
- gtk_widget_modify_bg(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetBackgroundColor(State: integer; Red, Green, Blue: word);
-begin
- gtk_widget_modify_bg(FWidget, State, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetBackgroundColor(State: integer; Color: PGdkColor);
-begin
- gtk_widget_modify_bg(FWidget, State, Color);
-end;
-
-procedure TGTKControl.SetBackgroundColor(Color: PGdkColor);
-begin
- gtk_widget_modify_bg(FWidget, 0, Color);
-end;
-
-procedure TGTKControl.SetTextColor(Red, Green, Blue: word);
-begin
- gtk_widget_modify_text(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetTextColor(State: integer; Red, Green, Blue: word);
-begin
- gtk_widget_modify_text(FWidget, State, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetBaseColor(Red, Green, Blue: word);
-begin
- gtk_widget_modify_base(FWidget, 0, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
-procedure TGTKControl.SetBaseColor(State: integer; Red, Green, Blue: word);
-begin
- gtk_widget_modify_base(FWidget, State, AllocateColor(FWidget, Red, Green, Blue));
-end;
-
procedure TGTKControl.SetOnMouseDown(Value: TGDKMouseEvent);
begin
if @FOnMouseDown <> @Value then begin
@@ -692,9 +609,9 @@ var Shift: TShiftState;
Accept: boolean;
begin
Shift := [];
- if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift);
- if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl);
- if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt);
+ if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift);
+ if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl);
+ if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt);
Accept := True;
if Assigned(TGTKControl(user_data).FOnMouseUp)
then TGTKControl(user_data).FOnMouseUp(TGTKControl(user_data), TGDKMouseButton(event^.button - 1), Shift, Trunc(event^.x), Trunc(event^.y), Accept);
@@ -719,12 +636,12 @@ begin
Result := False;
if event^.is_hint <> 0 then Exit;
Shift := [];
- if event^.state and GDK_SHIFT_MASK = GDK_SHIFT_MASK then Include(Shift, ssShift);
- if event^.state and GDK_CONTROL_MASK = GDK_CONTROL_MASK then Include(Shift, ssCtrl);
- if event^.state and GDK_MOD1_MASK = GDK_MOD1_MASK then Include(Shift, ssAlt);
- if event^.state and GDK_BUTTON1_MASK = GDK_BUTTON1_MASK then Button := mbLeft else
- if event^.state and GDK_BUTTON2_MASK = GDK_BUTTON2_MASK then Button := mbMiddle else
- if event^.state and GDK_BUTTON3_MASK = GDK_BUTTON3_MASK then Button := mbRight else
+ if GDK_SHIFT_MASK in event^.state then Include(Shift, ssShift);
+ if GDK_CONTROL_MASK in event^.state then Include(Shift, ssCtrl);
+ if GDK_MOD1_MASK in event^.state then Include(Shift, ssAlt);
+ if GDK_BUTTON1_MASK in event^.state then Button := mbLeft else
+ if GDK_BUTTON2_MASK in event^.state then Button := mbMiddle else
+ if GDK_BUTTON3_MASK in event^.state then Button := mbRight else
Button := mbNoButton;
if Assigned(TGTKControl(user_data).FOnMouseMove)
then TGTKControl(user_data).FOnMouseMove(TGTKControl(user_data), Button, Shift, Trunc(event^.x), Trunc(event^.y), Accept);
@@ -760,16 +677,6 @@ begin
gtk_widget_queue_draw(FWidget);
end;
-procedure TGTKControl.SetAlignment(XAlign, YAlign: Double);
-begin
- gtk_misc_set_alignment(PGtkMisc(FWidget), XAlign, YAlign);
-end;
-
-procedure TGTKControl.SetPadding(XPad, YPad: integer);
-begin
- gtk_misc_set_padding(PGtkMisc(FWidget), XPad, YPad);
-end;
-
function TGTKControl_expose_event(widget: PGtkWidget; event: PGdkEventExpose; user_data: gpointer):gboolean; cdecl;
var Accept: boolean;
begin
@@ -791,12 +698,12 @@ end;
function TGTKControl.GetControlState: TGTKControlState;
begin
- Result := TGTKControlState(FWidget^.state);
+ Result := TGTKControlState(gtk_widget_get_state_flags(FWidget));
end;
procedure TGTKControl.SetControlState(Value: TGTKControlState);
begin
- gtk_widget_set_state(FWidget, integer(Value));
+ gtk_widget_set_state_flags(FWidget, TGtkStateFlags(Value), True);
end;
function TGTKControl.GetData(Key: string): Pointer;
@@ -809,6 +716,67 @@ begin
g_object_set_data(PGObject(FWidget), PChar(Key), Value);
end;
+function TGTKControl.GetHAlign: TGTKAlignment;
+begin
+ Result := TGTKAlignment(gtk_widget_get_halign(FWidget));
+end;
+
+function TGTKControl.GetVAlign: TGTKAlignment;
+begin
+ Result := TGTKAlignment(gtk_widget_get_valign(FWidget));
+end;
+
+procedure TGTKControl.SetHAlign(Value: TGTKAlignment);
+begin
+ gtk_widget_set_halign(FWidget, TGtkAlign(Value));
+end;
+
+procedure TGTKControl.SetVAlign(Value: TGTKAlignment);
+begin
+ gtk_widget_set_valign(FWidget, TGtkAlign(Value));
+end;
+
+function TGTKControl.GetMarginStart: Integer;
+begin
+ Result := gtk_widget_get_margin_start(FWidget);
+end;
+
+function TGTKControl.GetMarginEnd: Integer;
+begin
+ Result := gtk_widget_get_margin_end(FWidget);
+end;
+
+function TGTKControl.GetMarginTop: Integer;
+begin
+ Result := gtk_widget_get_margin_top(FWidget);
+end;
+
+function TGTKControl.GetMarginBottom: Integer;
+begin
+ Result := gtk_widget_get_margin_bottom(FWidget);
+end;
+
+procedure TGTKControl.SetMarginStart(Value: Integer);
+begin
+ gtk_widget_set_margin_start(FWidget, Value);
+end;
+
+procedure TGTKControl.SetMarginEnd(Value: Integer);
+begin
+ gtk_widget_set_margin_end(FWidget, Value);
+end;
+
+procedure TGTKControl.SetMarginTop(Value: Integer);
+begin
+ gtk_widget_set_margin_top(FWidget, Value);
+end;
+
+procedure TGTKControl.SetMarginBottom(Value: Integer);
+begin
+ gtk_widget_set_margin_bottom(FWidget, Value);
+end;
+
+
(********************************************************************************************************************************)
(********************************************************************************************************************************)
constructor TGTKContainer.Create(AOwner: TComponent);
@@ -889,12 +857,12 @@ end;
procedure TGTKBox.AddControl(Control: TGTKControl);
begin
- gtk_box_pack_start_defaults(PGtkBox(FWidget), Control.FWidget);
+ gtk_box_pack_start(PGtkBox(FWidget), Control.FWidget, True, True, 0);
end;
procedure TGTKBox.AddControlEnd(Control: TGTKControl);
begin
- gtk_box_pack_end_defaults(PGtkBox(FWidget), Control.FWidget);
+ gtk_box_pack_end(PGtkBox(FWidget), Control.FWidget, True, True, 0);
end;
procedure TGTKBox.AddControlEx(Control: TGTKControl; Expand, Fill: boolean; Padding: integer);
@@ -933,7 +901,7 @@ constructor TGTKHBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if ClassName = 'TGTKHBox' then begin
- FWidget := gtk_hbox_new(True, 0);
+ FWidget := gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
Show;
end;
end;
@@ -949,7 +917,7 @@ constructor TGTKVBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if ClassName = 'TGTKVBox' then begin
- FWidget := gtk_vbox_new(False, 0);
+ FWidget := gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
Show;
end;
end;
@@ -961,32 +929,6 @@ end;
(********************************************************************************************************************************)
(********************************************************************************************************************************)
-constructor TGTKTooltips.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FObject := gtk_tooltips_new;
-end;
-
-destructor TGTKTooltips.Destroy;
-begin
- inherited Destroy;
-end;
-
-function TGTKTooltips.GetEnabled: boolean;
-begin
- // FIXME: This is horrible expression
- Result := Boolean(gtk2.enabled(FObject^));
-end;
-
-procedure TGTKTooltips.SetEnabled(Value: boolean);
-begin
- if Value then gtk_tooltips_enable(FObject)
- else gtk_tooltips_disable(FObject);
-end;
-
-
-(********************************************************************************************************************************)
-(********************************************************************************************************************************)
constructor TGTKEventBox.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
@@ -1001,95 +943,63 @@ end;
(********************************************************************************************************************************)
(********************************************************************************************************************************)
-constructor TGTKTable.Create(AOwner: TComponent);
+constructor TGTKGrid.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FWidget := gtk_table_new(0, 0, False);
+ FWidget := gtk_grid_new();
Show;
end;
-destructor TGTKTable.Destroy;
+destructor TGTKGrid.Destroy;
begin
inherited Destroy;
end;
-function TGTKTable.GetRowCount: integer;
-var nrows: guint;
-begin
- nrows := 1;
- g_object_get(PGObject(FWidget), 'n-rows', [@nrows, nil]);
- Result := nrows;
-end;
-
-procedure TGTKTable.SetRowCount(Value: integer);
-begin
- SetRowColCount(Value, ColCount);
-end;
-
-function TGTKTable.GetColCount: integer;
-var ncols: guint;
+function TGTKGrid.GetRowSpacing: integer;
begin
- ncols := 1;
- g_object_get(PGObject(FWidget), 'n-columns', [@ncols, nil]);
- Result := ncols;
+ Result := gtk_grid_get_row_spacing(PGtkGrid(FWidget));
end;
-procedure TGTKTable.SetColCount(Value: integer);
+procedure TGTKGrid.SetRowSpacing(Value: integer);
begin
- SetRowColCount(RowCount, Value);
+ gtk_grid_set_row_spacing(PGtkGrid(FWidget), Value);
end;
-procedure TGTKTable.SetRowColCount(Rows, Cols: integer);
+function TGTKGrid.GetColSpacing: integer;
begin
- gtk_table_resize(PGtkTable(FWidget), Rows, Cols);
+ Result := gtk_grid_get_column_spacing(PGtkGrid(FWidget));
end;
-function TGTKTable.GetRowSpacing: integer;
+procedure TGTKGrid.SetColSpacing(Value: integer);
begin
- Result := gtk_table_get_default_row_spacing(PGtkTable(FWidget));
+ gtk_grid_set_column_spacing(PGtkGrid(FWidget), Value);
end;
-procedure TGTKTable.SetRowSpacing(Value: integer);
+function TGTKGrid.GetRowHomogeneous: boolean;
begin
- gtk_table_set_row_spacings(PGtkTable(FWidget), Value);
+ Result := gtk_grid_get_row_homogeneous(PGtkGrid(FWidget));
end;
-function TGTKTable.GetColSpacing: integer;
+function TGTKGrid.GetColHomogeneous: boolean;
begin
- Result := gtk_table_get_default_col_spacing(PGtkTable(FWidget));
+ Result := gtk_grid_get_column_homogeneous(PGtkGrid(FWidget));
end;
-procedure TGTKTable.SetColSpacing(Value: integer);
+procedure TGTKGrid.SetRowHomogeneous(Value: boolean);
begin
- gtk_table_set_col_spacings(PGtkTable(FWidget), Value);
+ gtk_grid_set_row_homogeneous(PGtkGrid(FWidget), Value);
end;
-function TGTKTable.GetHomogeneous: boolean;
+procedure TGTKGrid.SetColHomogeneous(Value: boolean);
begin
- Result := gtk_table_get_homogeneous(PGtkTable(FWidget));
+ gtk_grid_set_column_homogeneous(PGtkGrid(FWidget), Value);
end;
-procedure TGTKTable.SetHomogeneous(Value: boolean);
+procedure TGTKGrid.AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl);
begin
- gtk_table_set_homogeneous(PGtkTable(FWidget), Value);
+ gtk_grid_attach(PGtkGrid(FWidget), Control.FWidget, Column, Row, NumCols, NumRows);
end;
-procedure TGTKTable.AddControl(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XPadding, YPadding: integer);
-begin
- gtk_table_attach(PGtkTable(FWidget), Control.FWidget, Column, Column + NumCols, Row, Row + NumRows,
- GTK_EXPAND or GTK_SHRINK or GTK_FILL, GTK_EXPAND or GTK_SHRINK or GTK_FILL, XPadding, YPadding);
-end;
-
-procedure TGTKTable.AddControlEx(Column, Row, NumCols, NumRows: integer; Control: TGTKControl; XAttachOptions,
- YAttachOptions: TGTKTableAttachOptions; XPadding, YPadding: integer);
-begin
- gtk_table_attach(PGtkTable(FWidget), Control.FWidget, Column, Column + NumCols, Row, Row + NumRows,
- (GTK_EXPAND*Ord(taoExpand in XAttachOptions)) or (GTK_SHRINK*Ord(taoShrink in XAttachOptions)) or (GTK_FILL*Ord(taoFill in XAttachOptions)),
- (GTK_EXPAND*Ord(taoExpand in YAttachOptions)) or (GTK_SHRINK*Ord(taoShrink in YAttachOptions)) or (GTK_FILL*Ord(taoFill in YAttachOptions)),
- XPadding, YPadding);
-end;
-
-
(********************************************************************************************************************************)
(********************************************************************************************************************************)