summaryrefslogtreecommitdiff
path: root/libgtk_kylix/GTKStdCtrls.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-11-17 16:18:15 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-11-17 16:18:15 +0100
commitd884d5168984d36a5c08f4814e81b070d7c964d3 (patch)
tree9743d99642487bececce0093866e71196a0731ba /libgtk_kylix/GTKStdCtrls.pas
parentcb5cb517c068a470662bd1d08bef61265376c802 (diff)
downloadtuxcmd-d884d5168984d36a5c08f4814e81b070d7c964d3.tar.xz
Use getters instead of direct access to structuresv0.6.71
This will hopefully fix remaining GUI issues on PPC64. Needs further testing! Also, libgtk_kylix sources have been altered for use with gtk2forpascal-1.0.7 for Kylix compilation.
Diffstat (limited to 'libgtk_kylix/GTKStdCtrls.pas')
-rw-r--r--libgtk_kylix/GTKStdCtrls.pas82
1 files changed, 46 insertions, 36 deletions
diff --git a/libgtk_kylix/GTKStdCtrls.pas b/libgtk_kylix/GTKStdCtrls.pas
index 34ab7bc..8f53f50 100644
--- a/libgtk_kylix/GTKStdCtrls.pas
+++ b/libgtk_kylix/GTKStdCtrls.pas
@@ -378,18 +378,18 @@ end;
procedure TGTKMisc.SetAlignment(XAlign, YAlign : Single);
begin
-// Writeln('gtk_misc_set_alignment, FWidget = ', integer(FWidget), ', XAlign = ', XAlign, ', YAlign = ', YAlign);
gtk_misc_set_alignment(PGtkMisc(FWidget), XAlign, YAlign);
end;
+procedure _gtk_misc_get_alignment(misc:PGtkMisc; xalign:Pgfloat; yalign:Pgfloat); cdecl; external gtklib name 'gtk_misc_get_alignment';
+procedure _gtk_misc_get_padding(misc:PGtkMisc; xpad:Pgint; ypad:Pgint); cdecl; external gtklib name 'gtk_misc_get_padding';
+
function TGTKMisc.GetXAlign: Single;
-{var xalign, yalign: pgfloat; }
+var xalign: gfloat;
begin
-{ gtk_misc_get_alignment(PGtkMisc(FWidget), xalign, yalign);
- if Assigned(xalign) then Result := Single(xalign^)
- else Result := 0; }
- if Assigned(FWidget) then Result := PGtkMisc(FWidget)^.xalign
- else Result := 0;
+ xalign := 0.0;
+ _gtk_misc_get_alignment(PGtkMisc(FWidget), @xalign, nil);
+ Result := xalign;
end;
procedure TGTKMisc.SetXAlign(Value: Single);
@@ -398,15 +398,11 @@ begin
end;
function TGTKMisc.GetYAlign: Single;
-{var xalign, yalign: Extended;
- x: Extended; }
+var yalign: gfloat;
begin
-{ gtk_misc_get_alignment(PGtkMisc(FWidget), @xalign, @yalign);
- writeln('yalign = ', integer(yalign));
- if Assigned(yalign) then Result := yalign
- else Result := 0; }
- if Assigned(FWidget) then Result := PGtkMisc(FWidget)^.yalign
- else Result := 0;
+ yalign := 0.0;
+ _gtk_misc_get_alignment(PGtkMisc(FWidget), nil, @yalign);
+ Result := yalign;
end;
procedure TGTKMisc.SetYAlign(Value: Single);
@@ -419,12 +415,11 @@ begin
gtk_misc_set_padding(PGtkMisc(FWidget), XPadding, YPadding);
end;
-procedure x_gtk_misc_get_padding(misc:PGtkMisc; xpad:Pgint; ypad:Pgint); cdecl; external gtklib name 'gtk_misc_get_padding';
-
function TGTKMisc.GetXPadding: integer;
-var xpad, ypad: gint;
+var xpad: gint;
begin
- x_gtk_misc_get_padding(PGtkMisc(FWidget), @xpad, @ypad);
+ xpad := 0;
+ _gtk_misc_get_padding(PGtkMisc(FWidget), @xpad, nil);
Result := xpad;
end;
@@ -434,9 +429,10 @@ begin
end;
function TGTKMisc.GetYPadding: integer;
-var xpad, ypad: gint;
+var ypad: gint;
begin
- x_gtk_misc_get_padding(PGtkMisc(FWidget), @xpad, @ypad);
+ ypad := 0;
+ _gtk_misc_get_padding(PGtkMisc(FWidget), nil, @ypad);
Result := ypad;
end;
@@ -751,8 +747,10 @@ begin
end;
procedure TGTKEditable.InsertText(AText: string; Position: integer);
+var pos: gint;
begin
- gtk_editable_insert_text(PGtkEditable(FWidget), StringToPgchar(AText), Length(AText), @Position);
+ pos := Position;
+ gtk_editable_insert_text(PGtkEditable(FWidget), StringToPgchar(AText), Length(AText), @pos);
end;
procedure TGTKEditable.DeleteText(StartPosition, EndPosition: integer);
@@ -831,7 +829,6 @@ end;
procedure TGTKEntry.SetVisibility(Value: boolean);
begin
-// g_object_set(FWidget, 'visibility', gboolean(Value), nil);
gtk_entry_set_visibility(PGtkEntry(FWidget), Value);
end;
@@ -864,23 +861,29 @@ begin
end;
function TGTKCombo.GetAllowEmpty: boolean;
+var b: gboolean;
begin
- Result := Boolean(ok_if_empty(PGtkCombo(FWidget)^));
+ b := False;
+ g_object_get(FWidget, 'allow-empty', @b, nil);
+ Result := b;
end;
procedure TGTKCombo.SetAllowEmpty(Value: boolean);
begin
- SetPolicy(GetMatchValue, Value);
+ g_object_set(FWidget, 'allow-empty', Ord(Value), nil);
end;
function TGTKCombo.GetMatchValue: boolean;
+var b: gboolean;
begin
- Result := Boolean(value_in_list(PGtkCombo(FWidget)^));
+ b := False;
+ g_object_get(FWidget, 'value-in-list', @b, nil);
+ Result := b;
end;
procedure TGTKCombo.SetMatchValue(Value: boolean);
begin
- SetPolicy(Value, GetAllowEmpty);
+ g_object_set(FWidget, 'value-in-list', Ord(Value), nil);
end;
procedure TGTKCombo.SetPolicy(MatchValue, AllowEmpty: boolean);
@@ -889,8 +892,11 @@ begin
end;
function TGTKCombo.GetCaseSensitive: boolean;
+var b: gboolean;
begin
- Result := Boolean(gtk2.case_sensitive(PGtkCombo(FWidget)^));
+ b := False;
+ g_object_get(FWidget, 'case-sensitive', @b, nil);
+ Result := b;
end;
procedure TGTKCombo.SetCaseSensitive(Value: boolean);
@@ -934,9 +940,10 @@ begin
end;
function TGTKSpinEdit.GetMin: Double;
-var amin, amax: Double;
+var amin: Double;
begin
- gtk_spin_button_get_range(PGtkSpinButton(FWidget), @amin, @amax);
+ amin := 0;
+ gtk_spin_button_get_range(PGtkSpinButton(FWidget), @amin, nil);
Result := amin;
end;
@@ -946,9 +953,10 @@ begin
end;
function TGTKSpinEdit.GetMax: Double;
-var amin, amax: Double;
+var amax: Double;
begin
- gtk_spin_button_get_range(PGtkSpinButton(FWidget), @amin, @amax);
+ amax := 1;
+ gtk_spin_button_get_range(PGtkSpinButton(FWidget), nil, @amax);
Result := amax;
end;
@@ -958,9 +966,10 @@ begin
end;
function TGTKSpinEdit.GetIncrementStep: Double;
-var astep, apage: Double;
+var astep: Double;
begin
- gtk_spin_button_get_increments(PGtkSpinButton(FWidget), @astep, @apage);
+ astep := 1;
+ gtk_spin_button_get_increments(PGtkSpinButton(FWidget), @astep, nil);
Result := astep;
end;
@@ -970,9 +979,10 @@ begin
end;
function TGTKSpinEdit.GetIncrementPage: Double;
-var astep, apage: Double;
+var apage: Double;
begin
- gtk_spin_button_get_increments(PGtkSpinButton(FWidget), @astep, @apage);
+ apage := 1;
+ gtk_spin_button_get_increments(PGtkSpinButton(FWidget), nil, @apage);
Result := apage;
end;