mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 07:19:18 +02:00
fixed gtk2 scrolling from Andrew Haines
git-svn-id: trunk@8222 -
This commit is contained in:
parent
cbe200a355
commit
07465b2a09
@ -2622,45 +2622,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GTK26HScrollCB(Range:PGTKRAnge; Scroll: TGtkScrollType;
|
|
||||||
Value: gdouble;
|
|
||||||
data: gpointer): gboolean; cdecl;
|
|
||||||
var
|
|
||||||
Msg: TLMHScroll;
|
|
||||||
begin
|
|
||||||
Result := CallBackDefaultReturn;
|
|
||||||
Msg.Msg := LM_HSCROLL;
|
|
||||||
with Msg do begin
|
|
||||||
Pos := Round(Range^.Adjustment^.Value);
|
|
||||||
if Pos < High(SmallPos)
|
|
||||||
then SmallPos := Pos
|
|
||||||
else SmallPos := High(SmallPos);
|
|
||||||
ScrollBar := HWND(Range);
|
|
||||||
ScrollCode := ScrollTypeToSbCode(False, Scroll,
|
|
||||||
gtk_range_get_update_policy(Range));
|
|
||||||
end;
|
|
||||||
DeliverMessage(Data, Msg);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function GTK26VScrollCB(Range:PGTKRAnge; Scroll: TGtkScrollType; Value: gdouble;
|
|
||||||
data: gpointer): gboolean; cdecl;
|
|
||||||
var
|
|
||||||
Msg: TLMVScroll;
|
|
||||||
begin
|
|
||||||
Result := CallBackDefaultReturn;
|
|
||||||
Msg.Msg := LM_VSCROLL;
|
|
||||||
with Msg do begin
|
|
||||||
Pos := Round(Range^.Adjustment^.Value);
|
|
||||||
if Pos < High(SmallPos)
|
|
||||||
then SmallPos := Pos
|
|
||||||
else SmallPos := High(SmallPos);
|
|
||||||
ScrollBar := HWND(Range);
|
|
||||||
ScrollCode := ScrollTypeToSbCode(True, Scroll,
|
|
||||||
gtk_range_get_update_policy(Range));
|
|
||||||
end;
|
|
||||||
DeliverMessage(Data, Msg);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function GTKHScrollCB(Adjustment: PGTKAdjustment; data: GPointer): GBoolean; cdecl;
|
function GTKHScrollCB(Adjustment: PGTKAdjustment; data: GPointer): GBoolean; cdecl;
|
||||||
var
|
var
|
||||||
Msg: TLMHScroll;
|
Msg: TLMHScroll;
|
||||||
|
@ -3621,16 +3621,6 @@ begin
|
|||||||
|
|
||||||
LM_HSCROLL:
|
LM_HSCROLL:
|
||||||
begin
|
begin
|
||||||
if (gtk_major_version>=2)and(gtk_minor_version>=6) then begin
|
|
||||||
if ALCLObject is TScrollBar then
|
|
||||||
Scroll := PGtkObject(@PgtkhScrollBar(gObject)^.Scrollbar.Range)
|
|
||||||
else begin
|
|
||||||
if ALCLObject is TScrollBox then
|
|
||||||
gObject := gtk_object_get_data(gObject, odnScrollArea);
|
|
||||||
Scroll := PgtkObject(PGtkScrolledWindow(gObject)^.HScrollBar);
|
|
||||||
end;
|
|
||||||
ConnectSenderSignal(Scroll,'change-value', @GTK26HScrollCB);
|
|
||||||
end else begin
|
|
||||||
if ALCLObject is TScrollBar then
|
if ALCLObject is TScrollBar then
|
||||||
Adjustment := PgtkObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment)
|
Adjustment := PgtkObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment)
|
||||||
else if ALCLObject is TScrollBox then begin
|
else if ALCLObject is TScrollBox then begin
|
||||||
@ -3643,20 +3633,9 @@ begin
|
|||||||
PGTKScrolledWindow(gObject)));
|
PGTKScrolledWindow(gObject)));
|
||||||
ConnectSenderSignal(Adjustment, 'value-changed', @GTKHScrollCB);
|
ConnectSenderSignal(Adjustment, 'value-changed', @GTKHScrollCB);
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
LM_VSCROLL:
|
LM_VSCROLL:
|
||||||
begin
|
begin
|
||||||
if (gtk_major_version>=2)and(gtk_minor_version>=6) then begin
|
|
||||||
if ALCLObject is TScrollBar then
|
|
||||||
Scroll := PGtkObject(@PgtkhScrollBar(gObject)^.Scrollbar.Range)
|
|
||||||
else begin
|
|
||||||
if ALCLObject is TScrollBox then
|
|
||||||
gObject := gtk_object_get_data(gObject, odnScrollArea);
|
|
||||||
Scroll := PGtkObject(PGtkScrolledWindow(gObject)^.VScrollBar);
|
|
||||||
end;
|
|
||||||
connectSenderSignal(Scroll,'change-value', @GTK26VScrollCB);
|
|
||||||
end else begin
|
|
||||||
if ALCLObject is TScrollBar then
|
if ALCLObject is TScrollBar then
|
||||||
Adjustment := PGtkObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment)
|
Adjustment := PGtkObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment)
|
||||||
else if ALCLObject is TScrollBox then begin
|
else if ALCLObject is TScrollBox then begin
|
||||||
@ -3668,7 +3647,7 @@ begin
|
|||||||
Adjustment := PGtkObject(gtk_scrolled_window_get_vadjustment(
|
Adjustment := PGtkObject(gtk_scrolled_window_get_vadjustment(
|
||||||
PGTKScrolledWindow(gObject)));
|
PGTKScrolledWindow(gObject)));
|
||||||
ConnectSenderSignal(Adjustment, 'value-changed', @GTKVScrollCB);
|
ConnectSenderSignal(Adjustment, 'value-changed', @GTKVScrollCB);
|
||||||
end;
|
ConnectSenderSignal(Adjustment, 'value-changed', @GTKVScrollCB);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
LM_YEARCHANGED : //calendar
|
LM_YEARCHANGED : //calendar
|
||||||
|
@ -242,10 +242,6 @@ function gtkFocusInNotifyCB (widget: PGtkWidget; event: PGdkEvent;
|
|||||||
data: gpointer): GBoolean; cdecl;
|
data: gpointer): GBoolean; cdecl;
|
||||||
function gtkFocusOutNotifyCB (widget: PGtkWidget; event: PGdkEvent;
|
function gtkFocusOutNotifyCB (widget: PGtkWidget; event: PGdkEvent;
|
||||||
data: gpointer): GBoolean; cdecl;
|
data: gpointer): GBoolean; cdecl;
|
||||||
function GTK26HScrollCB(Range: PGTKRange; Scroll: TGtkScrollType; Value: gdouble;
|
|
||||||
data: gpointer): gboolean; cdecl;
|
|
||||||
function GTK26VScrollCB(Range: PGTKRange; Scroll: TGtkScrollType; Value: gdouble;
|
|
||||||
data: gpointer): gboolean; cdecl;
|
|
||||||
function GTKHScrollCB(Adjustment: PGTKAdjustment; data: GPointer): GBoolean; cdecl;
|
function GTKHScrollCB(Adjustment: PGTKAdjustment; data: GPointer): GBoolean; cdecl;
|
||||||
function GTKVScrollCB(Adjustment: PGTKAdjustment;
|
function GTKVScrollCB(Adjustment: PGTKAdjustment;
|
||||||
data: GPointer): GBoolean; cdecl;
|
data: GPointer): GBoolean; cdecl;
|
||||||
|
Loading…
Reference in New Issue
Block a user