diff --git a/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas b/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas index 16a5f6e0af..5045e1322a 100644 --- a/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas +++ b/lcl/interfaces/gtk3/gtk3bindings/lazgtk3.pas @@ -539,13 +539,13 @@ const GTK_BUILDER_ERROR_DUPLICATE_ID: TGtkBuilderError = 8; type - TGtkPositionType = Integer; -const + TGtkPositionType = ( { GtkPositionType } - GTK_POS_LEFT: TGtkPositionType = 0; - GTK_POS_RIGHT: TGtkPositionType = 1; - GTK_POS_TOP: TGtkPositionType = 2; - GTK_POS_BOTTOM: TGtkPositionType = 3; + GTK_POS_LEFT = 0, + GTK_POS_RIGHT = 1, + GTK_POS_TOP = 2, + GTK_POS_BOTTOM = 3 + ); type TGtkReliefStyle = Integer; diff --git a/lcl/interfaces/gtk3/gtk3widgets.pas b/lcl/interfaces/gtk3/gtk3widgets.pas index 8ace5d7a09..57716a1c0f 100644 --- a/lcl/interfaces/gtk3/gtk3widgets.pas +++ b/lcl/interfaces/gtk3/gtk3widgets.pas @@ -3866,13 +3866,18 @@ end; procedure TGtk3TrackBar.SetScalePos(AValue: TTrackBarScalePos); begin if IsWidgetOK then - PGtkScale(FWidget)^.set_value_pos(Ord(AValue)); + PGtkScale(FWidget)^.set_value_pos(TGtkPositionType(AValue)); end; procedure TGtk3TrackBar.SetTickMarks(AValue: TTickMark; ATickStyle: TTickStyle); var - i,cnt: Integer; + i,cnt,fldw: Integer; Track:TCustomTrackbar; +const + tick_map:array[TTrackBarOrientation,0..1] of TGtkPositionType = + ((GTK_POS_TOP,GTK_POS_BOTTOM), // trHorizontal + (GTK_POS_LEFT,GTK_POS_RIGHT) // trVertical + ); begin if IsWidgetOK then begin @@ -3881,26 +3886,22 @@ begin PGtkScale(FWidget)^.clear_marks else begin + PGtkScale(FWidget)^.clear_marks; Track:=TCustomTrackbar(LCLObject); cnt:=round(abs(Track.max-Track.min)/Track.LineSize); // highly-dense marks just enlarge GtkScale automatically // it is up to user concent to do this - if cnt*4