- set trackbar digits to 0 (as all other widgetsets works)
- simplify some code

git-svn-id: trunk@15621 -
This commit is contained in:
paul 2008-06-30 08:26:27 +00:00
parent d07764681a
commit 4ae3fa27db

View File

@ -293,7 +293,8 @@ begin
Widget := gtk_hscale_new(Adjustment) Widget := gtk_hscale_new(Adjustment)
else else
Widget := gtk_vscale_new(Adjustment); Widget := gtk_vscale_new(Adjustment);
// gtk_scale_set_digits(PGtkScale(Widget), 0);
gtk_scale_set_digits(PGtkScale(Widget), 0);
end; end;
Result := TLCLIntfHandle(PtrUInt(Widget)); Result := TLCLIntfHandle(PtrUInt(Widget));
{$IFDEF DebugLCLComponents} {$IFDEF DebugLCLComponents}
@ -305,17 +306,27 @@ begin
end; end;
class procedure TGtk2WSTrackBar.ApplyChanges(const ATrackBar: TCustomTrackBar); class procedure TGtk2WSTrackBar.ApplyChanges(const ATrackBar: TCustomTrackBar);
const
ValuePositionMap: array[TTrackBarScalePos] of TGtkPositionType =
(
{ trLeft } GTK_POS_LEFT,
{ trRight } GTK_POS_RIGHT,
{ trTop } GTK_POS_TOP,
{ trBottom } GTK_POS_BOTTOM
);
var var
wHandle: HWND; wHandle: HWND;
Adjustment: PGtkAdjustment; Adjustment: PGtkAdjustment;
begin begin
if not WSCheckHandleAllocated(ATrackBar, 'ApplyChanges') then
Exit;
with ATrackBar do with ATrackBar do
begin begin
wHandle := Handle; wHandle := Handle;
Adjustment := gtk_range_get_adjustment (GTK_RANGE(Pointer(wHandle))); Adjustment := gtk_range_get_adjustment (GTK_RANGE(Pointer(wHandle)));
Adjustment^.lower := Min; Adjustment^.lower := Min;
Adjustment^.Upper := Max; Adjustment^.upper := Max;
Adjustment^.Value := Position; Adjustment^.value := Position;
Adjustment^.step_increment := LineSize; Adjustment^.step_increment := LineSize;
Adjustment^.page_increment := PageSize; Adjustment^.page_increment := PageSize;
{ now do some of the more sophisticated features } { now do some of the more sophisticated features }
@ -323,15 +334,10 @@ begin
otherwise it's set always to true } otherwise it's set always to true }
gtk_scale_set_draw_value (GTK_SCALE (Pointer(wHandle)), false); gtk_scale_set_draw_value (GTK_SCALE (Pointer(wHandle)), false);
if (TickStyle<>tsNone) then if (TickStyle <> tsNone) then
begin begin
gtk_scale_set_draw_value (GTK_SCALE (Pointer(wHandle)), true); gtk_scale_set_draw_value (GTK_SCALE (Pointer(wHandle)), true);
case ScalePos of gtk_scale_set_value_pos (GTK_SCALE (Pointer(wHandle)), ValuePositionMap[ScalePos]);
trLeft : gtk_scale_set_value_pos (GTK_SCALE (Pointer(wHandle)), GTK_POS_LEFT);
trRight : gtk_scale_set_value_pos (GTK_SCALE (Pointer(wHandle)), GTK_POS_RIGHT);
trTop : gtk_scale_set_value_pos (GTK_SCALE (Pointer(wHandle)), GTK_POS_TOP);
trBottom: gtk_scale_set_value_pos (GTK_SCALE (Pointer(wHandle)), GTK_POS_BOTTOM);
end;
end; end;
//Not here (Delphi compatibility): gtk_signal_emit_by_name (GTK_Object (Adjustment), 'value_changed'); //Not here (Delphi compatibility): gtk_signal_emit_by_name (GTK_Object (Adjustment), 'value_changed');
end; end;
@ -343,7 +349,8 @@ var
Range: PGtkRange; Range: PGtkRange;
begin begin
Result := 0; Result := 0;
if not ATRackBar.HandleAllocated then exit; if not WSCheckHandleAllocated(ATrackBar, 'GetPosition') then
Exit;
Range := PGtkRange(ATrackBar.Handle); Range := PGtkRange(ATrackBar.Handle);
Result := Trunc(gtk_range_get_value(Range)); Result := Trunc(gtk_range_get_value(Range));
@ -354,6 +361,8 @@ class procedure TGtk2WSTrackBar.SetPosition(const ATrackBar: TCustomTrackBar;
var var
Range: PGtkRange; Range: PGtkRange;
begin begin
if not WSCheckHandleAllocated(ATrackBar, 'SetPosition') then
Exit;
Range := PGtkRange(ATrackBar.Handle); Range := PGtkRange(ATrackBar.Handle);
gtk_range_set_value(Range, Trunc(NewPosition)); gtk_range_set_value(Range, Trunc(NewPosition));
end; end;