mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 03:56:12 +02:00
fix gtk2 scrollbars from Jesus
git-svn-id: trunk@6782 -
This commit is contained in:
parent
dc9a14d438
commit
799a2c918f
@ -2422,199 +2422,204 @@ begin
|
||||
DeliverMessage(Data, MessI);
|
||||
end;
|
||||
|
||||
{$IFNDEF GTK2}
|
||||
{$IFDEF gtk1}
|
||||
function gtk_range_get_update_policy(range: PGTKRange): TGtkUpdateType;
|
||||
begin
|
||||
result := policy(Range^)
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
procedure DebugScrollEvent(Range: PgtkRange);
|
||||
function get_gtk_scroll_type(range: PGTKRange): TGtkScrollType;
|
||||
{$IFNDEF gtk1}
|
||||
type
|
||||
TUnOpaqueTimer=record
|
||||
timeout_id: guint;
|
||||
ScrollType: TGTkScrollType;
|
||||
end;
|
||||
PUnOpaqueTimer=^TUnopaqueTimer;
|
||||
{$ENDIF}
|
||||
begin
|
||||
{$IFDEF gtk1}
|
||||
Result :=Scroll_type(Range^);
|
||||
{$ELSE}
|
||||
if (gtk_major_version=2) and (gtk_minor_version<6) and
|
||||
(Range^.Timer<>nil) then
|
||||
{$warning gtk2 pre gtk2.6 ONLY, tested gtk2.0}
|
||||
Result := PUnOpaqueTimer(Range^.Timer)^.ScrollType
|
||||
else
|
||||
Result := GTK_SCROLL_NONE;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
procedure DebugScrollStyle(Scroll: LongInt);
|
||||
begin
|
||||
DbgOut('BUTTON=');
|
||||
case Range^.Button of
|
||||
1: DbgOut('LEFT ');
|
||||
2: DbgOut('CENTER ');
|
||||
3: DbgOut('RIGHT ');
|
||||
else DbgOut(IntToStr(Range^.Button), ' -> ? ');
|
||||
end;
|
||||
DbgOut('CLICK_CHILD=');
|
||||
case click_child(Range^) of
|
||||
1: DbgOut('TROUGH ');
|
||||
2: DbgOut('SLIDER ');
|
||||
3: DbgOut('STEP_FORW ');
|
||||
4: DbgOut('STEP_BACK ');
|
||||
else DbgOut(IntToStr(click_child(range^)), ' -> ? ');
|
||||
end;
|
||||
DbgOut('IN_CHILD=');
|
||||
case in_child(range^) of
|
||||
1: DbgOut('TROUGH ');
|
||||
2: DbgOut('SLIDER ');
|
||||
3: DbgOut('STEP_FORW ');
|
||||
4: DbgOut('STEP_BACK ');
|
||||
else DbgOut(IntToStr(in_child(Range^)), ' -> ? ');
|
||||
end;
|
||||
DbgOut('TYPE=');
|
||||
case Scroll_Type(Range^) of
|
||||
case Scroll of
|
||||
GTK_SCROLL_NONE: DbgOut('GTK_SCROLL_NONE ');
|
||||
GTK_SCROLL_STEP_BACKWARD: DbgOut('GTK_SCROLL_STEP_BACKWARD ');
|
||||
GTK_SCROLL_STEP_FORWARD: DbgOut('GTK_SCROLL_STEP_FORWARD ');
|
||||
GTK_SCROLL_PAGE_BACKWARD: DbgOut('GTK_SCROLL_PAGE_BACKWARD ');
|
||||
GTK_SCROLL_PAGE_FORWARD: DbgOut('GTK_SCROLL_PAGE_FORWARD ');
|
||||
GTK_SCROLL_JUMP: DbgOut('GTK_SCROLL_JUMP ');
|
||||
else DbgOut(IntToStr(Scroll_Type(Range^)), '->?');
|
||||
{$ifdef gtk2}
|
||||
GTK_SCROLL_STEP_UP: DbgOut('GTK_SCROLL_STEP_UP');
|
||||
GTK_SCROLL_STEP_DOWN: DbgOut('GTK_SCROLL_STEP_DOWN');
|
||||
GTK_SCROLL_PAGE_UP: DbgOut('GTK_SCROLL_PAGE_UP');
|
||||
GTK_SCROLL_PAGE_DOWN: DbgOut('GTK_SCROLL_PAGE_DOWN');
|
||||
GTK_SCROLL_STEP_LEFT: DbgOut('GTK_SCROLL_STEP_LEFT');
|
||||
GTK_SCROLL_STEP_RIGHT: DbgOut('GTK_SCROLL_STEP_RIGHT');
|
||||
GTK_SCROLL_PAGE_LEFT: DbgOut('GTK_SCROLL_PAGE_LEFT');
|
||||
GTK_SCROLL_PAGE_RIGHT: DbgOut('GTK_SCROLL_PAGE_RIGHT');
|
||||
GTK_SCROLL_START: DbgOut('GTK_SCROLL_START');
|
||||
GTK_SCROLL_END: DbgOut('GTK_SCROLL_END');
|
||||
{$endif}
|
||||
else
|
||||
DbgOut(IntToStr(Scroll), '->?');
|
||||
end;
|
||||
DbgOut('OLD_VALUE=', IntToStr(Round(Range^.old_value)),' ');
|
||||
Debugln;
|
||||
end;
|
||||
|
||||
procedure DebugPolicy(Policy: TGtkUpdateType);
|
||||
begin
|
||||
DbgOut('POLICY=');
|
||||
case policy of
|
||||
GTK_UPDATE_CONTINUOUS: DbgOut('GTK_UPDATE_CONTINUOUS');
|
||||
GTK_UPDATE_DISCONTINUOUS: DbgOut('GTK_UPDATE_DISCONTINUOUS');
|
||||
GTK_UPDATE_DELAYED: DbgOut('GTK_UPDATE_DELAYED');
|
||||
end;
|
||||
DebugLn;
|
||||
end;
|
||||
{$ENDIF VerboseGtkScrollbars}
|
||||
|
||||
function ScrollTypeToSbCode(IsVertSB: boolean; ScrollType:TGtkScrollType;
|
||||
UpdatePolicy:TGtkUpdateType): Integer;
|
||||
begin
|
||||
case ScrollType of
|
||||
GTK_SCROLL_STEP_BACKWARD:
|
||||
if IsVertSB then
|
||||
Result := SB_LINEUP
|
||||
else
|
||||
Result := SB_LINELEFT;
|
||||
GTK_SCROLL_STEP_FORWARD:
|
||||
if IsVertSB then
|
||||
Result := SB_LINEDOWN
|
||||
else
|
||||
Result := SB_LINERIGHT;
|
||||
GTK_SCROLL_PAGE_BACKWARD:
|
||||
if IsVertSB then
|
||||
Result := SB_PAGEUP
|
||||
else
|
||||
Result := SB_PAGELEFT;
|
||||
GTK_SCROLL_PAGE_FORWARD:
|
||||
if IsVertSB then
|
||||
Result := SB_PAGEDOWN
|
||||
else
|
||||
Result := SB_PAGERIGHT;
|
||||
{$ifdef GTK2}
|
||||
GTK_SCROLL_STEP_UP:
|
||||
Result := SB_LINEUP;
|
||||
GTK_SCROLL_STEP_DOWN:
|
||||
Result := SB_LINEDOWN;
|
||||
GTK_SCROLL_PAGE_UP:
|
||||
Result := SB_PAGEUP;
|
||||
GTK_SCROLL_PAGE_DOWN:
|
||||
Result := SB_PAGEDOWN;
|
||||
GTK_SCROLL_STEP_LEFT:
|
||||
Result := SB_LINELEFT;
|
||||
GTK_SCROLL_STEP_RIGHT:
|
||||
Result := SB_LINERIGHT;
|
||||
GTK_SCROLL_PAGE_LEFT:
|
||||
Result := SB_PAGELEFT;
|
||||
GTK_SCROLL_PAGE_RIGHT:
|
||||
Result := SB_PAGERIGHT;
|
||||
GTK_SCROLL_START:
|
||||
if IsVertSB then
|
||||
Result := SB_TOP
|
||||
else
|
||||
Result := SB_LEFT;
|
||||
GTK_SCROLL_END:
|
||||
if IsVertSB then
|
||||
Result := SB_BOTTOM
|
||||
else
|
||||
Result := SB_RIGHT;
|
||||
{$endif}
|
||||
else
|
||||
begin
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
debugln('ScrollTypeToSbCode: Scroll_type=', IntToStr(ScrollType));
|
||||
{$Endif}
|
||||
if UpdatePolicy=GTK_UPDATE_CONTINUOUS then
|
||||
Result := SB_THUMBTRACK
|
||||
else
|
||||
Result := SB_THUMBPOSITION;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function GTK26HScrollCB(Range:PGTKRAnge; Scroll: PGtkScrollType; 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);
|
||||
ScrollBar := HWND(Range);
|
||||
ScrollCode := ScrollTypeToSbCode(False, Scroll^,
|
||||
gtk_range_get_update_policy(Range));
|
||||
end;
|
||||
DeliverMessage(Data, Msg);
|
||||
end;
|
||||
|
||||
function GTK26VScrollCB(Range:PGTKRAnge; Scroll: PGtkScrollType; 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);
|
||||
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;
|
||||
var
|
||||
Msg: TLMHScroll;
|
||||
Scroll: PGtkRange;
|
||||
UpdatePolicy: TGtkUpdateType;
|
||||
RangeClass: PgtkRangeClass;
|
||||
ScrollType: TGtkScrollType;
|
||||
begin
|
||||
Result := CallBackDefaultReturn;
|
||||
Assert(False, Format('Trace:[GTKHScrollCB] Value: %d', [RoundToInt(Adjustment^.Value)]));
|
||||
Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), 'ScrollBar'));
|
||||
if Scroll=nil then exit;
|
||||
{$ifdef gtk1}
|
||||
RangeClass := PgtkRangeClass(PgtkObject(Scroll)^.klass);
|
||||
{$else}
|
||||
RangeClass := GTK_OBJECT_GET_CLASS(Scroll);
|
||||
{$endif}
|
||||
UpdatePolicy := gtk_range_get_update_policy(Scroll);
|
||||
//X := integer(gtk_object_get_data(PGtkObject(Scroll), 'FinalEvent'));
|
||||
//WriteLn('FINAL EVENT: ', X);
|
||||
//BeginGDKErrorTrap;
|
||||
//gdk_window_get_pointer(GetControlWindow(Scroll), @X, @Y, @Mask);
|
||||
//EndGDKErrorTrap;
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
DebugScrollEvent(Scroll);
|
||||
DebugPolicy(UpdatePolicy);
|
||||
{$ENDIF}
|
||||
Msg.Msg := LM_HSCROLL;
|
||||
with Msg do begin
|
||||
pos := Round(Adjustment^.Value);
|
||||
ScrollBar := HWND(Scroll);
|
||||
{$ifdef gtk1}
|
||||
case Scroll_type(Scroll^) of
|
||||
GTK_SCROLL_NONE:
|
||||
begin
|
||||
ScrollCode := SB_THUMBTRACK;
|
||||
if click_child(scroll^) = RangeClass^.Slider then
|
||||
if UpdatePolicy <> GTK_UPDATE_CONTINUOUS then
|
||||
ScrollCode := SB_THUMBPOSITION;
|
||||
end;
|
||||
GTK_SCROLL_STEP_BACKWARD:
|
||||
ScrollCode := SB_LINELEFT;
|
||||
GTK_SCROLL_STEP_FORWARD:
|
||||
ScrollCode := SB_LINERIGHT;
|
||||
GTK_SCROLL_PAGE_BACKWARD:
|
||||
ScrollCode := SB_PAGELEFT;
|
||||
GTK_SCROLL_PAGE_FORWARD:
|
||||
ScrollCode := SB_PAGERIGHT;
|
||||
else
|
||||
begin
|
||||
// GTK_SCROLL_JUMP and others not known?
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
debugln('GTKVScrollCB: Scroll_type=', IntToStr(Scroll_type(Scroll^)));
|
||||
{$Endif}
|
||||
if UpdatePolicy=GTK_UPDATE_CONTINUOUS then
|
||||
ScrollCode := SB_THUMBTRACK
|
||||
else
|
||||
ScrollCode := SB_THUMBPOSITION;
|
||||
end;
|
||||
if Scroll<>nil then begin
|
||||
Msg.Msg := LM_HSCROLL;
|
||||
with Msg do begin
|
||||
pos := Round(Adjustment^.Value);
|
||||
ScrollBar := HWND(Scroll);
|
||||
ScrollType := get_gtk_scroll_type(Scroll);
|
||||
ScrollCode := ScrollTypeToSbCode(False, ScrollType,
|
||||
gtk_range_get_update_policy(Scroll));
|
||||
end;
|
||||
{$else}
|
||||
{$warning gtk2 TODO}
|
||||
{$endif}
|
||||
DeliverMessage(Data, Msg);
|
||||
end;
|
||||
DeliverMessage(Data, Msg);
|
||||
end;
|
||||
|
||||
|
||||
function GTKVScrollCB(Adjustment: PGTKAdjustment;
|
||||
data: GPointer): GBoolean; cdecl;
|
||||
function GTKVScrollCB(Adjustment: PGTKAdjustment; data: GPointer): GBoolean; cdecl;
|
||||
var
|
||||
Msg: TLMVScroll;
|
||||
Scroll: PGtkRange;
|
||||
UpdatePolicy: TGtkUpdateType;
|
||||
RangeClass: PgtkRangeClass;
|
||||
ScrollType: TGtkScrollType;
|
||||
begin
|
||||
Result := CallBackDefaultReturn;
|
||||
Assert(False, Format('Trace:[GTKVScrollCB] Value: %d', [RoundToInt(Adjustment^.Value)]));
|
||||
Scroll := PgtkRange(gtk_object_get_data(PGTKObject(Adjustment), 'ScrollBar'));
|
||||
if (Scroll=nil) then exit;
|
||||
{$ifdef gtk1}
|
||||
RangeClass := PgtkRangeClass(PgtkObject(Scroll)^.klass);
|
||||
{$else}
|
||||
RangeClass := GTK_OBJECT_GET_CLASS(Scroll);
|
||||
{$endif}
|
||||
UpdatePolicy := gtk_range_get_update_policy(Scroll);
|
||||
//UpdatePolicy := TGtkUpdateType( gtk_object_get_data(PgtkObject(Scroll), 'UpdatePolicy'));
|
||||
//WriteLn('FINAL EVENT: ', integer(gtk_object_get_data(PGtkObject(Scroll), 'FinalEvent')));
|
||||
//BeginGDKErrorTrap;
|
||||
//gdk_window_get_pointer(GetControlWindow(Scroll), @X, @Y, @Mask);
|
||||
//EndGDKErrorTrap;
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
DebugScrollEvent(Scroll);
|
||||
DebugPolicy(UpdatePolicy);
|
||||
{$ENDIF}
|
||||
Msg.Msg := LM_VSCROLL;
|
||||
with Msg do begin
|
||||
pos := Round(Adjustment^.Value);
|
||||
ScrollBar := HWND(Scroll);
|
||||
{$ifdef gtk1}
|
||||
case Scroll_type(Scroll^) of
|
||||
GTK_SCROLL_NONE:
|
||||
begin
|
||||
ScrollCode := SB_THUMBTRACK;
|
||||
if click_child(scroll^) = RangeClass^.Slider then
|
||||
if UpdatePolicy <> GTK_UPDATE_CONTINUOUS then
|
||||
ScrollCode := SB_THUMBPOSITION;
|
||||
end;
|
||||
GTK_SCROLL_STEP_BACKWARD:
|
||||
ScrollCode := SB_LINEUP;
|
||||
GTK_SCROLL_STEP_FORWARD:
|
||||
ScrollCode := SB_LINEDOWN;
|
||||
GTK_SCROLL_PAGE_BACKWARD:
|
||||
ScrollCode := SB_PAGEUP;
|
||||
GTK_SCROLL_PAGE_FORWARD:
|
||||
ScrollCode := SB_PAGEDOWN;
|
||||
else
|
||||
begin
|
||||
// GTK_SCROLL_JUMP and others not known?
|
||||
{$IFDEF VerboseGtkScrollbars}
|
||||
debugln('GTKVScrollCB: Scroll_type=', IntToStr(Scroll_type(Scroll^)));
|
||||
{$ENDIF}
|
||||
if UpdatePolicy=GTK_UPDATE_CONTINUOUS then
|
||||
ScrollCode := SB_THUMBTRACK
|
||||
else
|
||||
ScrollCode := SB_THUMBPOSITION;
|
||||
end;
|
||||
if Scroll<>nil then begin
|
||||
Msg.Msg := LM_VSCROLL;
|
||||
with Msg do begin
|
||||
pos := Round(Adjustment^.Value);
|
||||
ScrollBar := HWND(Scroll);
|
||||
ScrollType := get_gtk_scroll_type(Scroll);
|
||||
ScrollCode := ScrollTypeToSbCode(True, ScrollType,
|
||||
gtk_range_get_update_policy(Scroll));
|
||||
end;
|
||||
{$else}
|
||||
{$warning gtk2 TODO}
|
||||
{$endif}
|
||||
DeliverMessage(Data, Msg);
|
||||
end;
|
||||
DeliverMessage(Data, Msg);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Function: GTKKeySnooper
|
||||
Params: Widget: The widget for which this event is fired
|
||||
@ -2986,6 +2991,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.262 2005/02/15 10:33:31 mattias
|
||||
fix gtk2 scrollbars from Jesus
|
||||
|
||||
Revision 1.261 2005/02/05 16:09:52 marc
|
||||
* first 64bit changes
|
||||
|
||||
|
@ -3110,7 +3110,7 @@ procedure TGtkWidgetSet.SetCallback(const AMsg: LongInt; const AGTKObject: PGTKO
|
||||
end;
|
||||
|
||||
var
|
||||
gObject, gFixed, gCore, Scroll: PGTKObject;
|
||||
gObject, gFixed, gCore, Scroll, Adjustment: PGTKObject;
|
||||
begin
|
||||
if AGTKObject = nil
|
||||
then gObject := ObjectToGTKObject(ALCLObject)
|
||||
@ -3469,46 +3469,54 @@ begin
|
||||
|
||||
LM_HSCROLL:
|
||||
begin
|
||||
//if ALCLObject is TCustomListView
|
||||
//then begin
|
||||
// ConnectSenderSignal(gObject, 'scroll-horizontal', @gtkLVHScroll);
|
||||
//end
|
||||
//else begin
|
||||
If ALCLObject is TScrollBar then
|
||||
ConnectSenderSignal(
|
||||
PGTKObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment),
|
||||
'value-changed', @GTKHScrollCB)
|
||||
else If ALCLObject is TScrollBox then begin
|
||||
Scroll := gtk_object_get_data(gObject, odnScrollArea);
|
||||
ConnectSenderSignal(PGTKObject(gtk_scrolled_window_get_hadjustment(
|
||||
PGTKScrolledWindow(Scroll))), 'value-changed', @GTKHScrollCB);
|
||||
end
|
||||
else
|
||||
ConnectSenderSignal(PGTKObject(gtk_scrolled_window_get_hadjustment(
|
||||
PGTKScrolledWindow(gObject))), 'value-changed', @GTKHScrollCB);
|
||||
//end;
|
||||
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,'changed-value', @GTK26HScrollCB);
|
||||
end else begin
|
||||
if ALCLObject is TScrollBar then
|
||||
Adjustment := PgtkObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment)
|
||||
else if ALCLObject is TScrollBox then begin
|
||||
Scroll := gtk_object_get_data(gObject, odnScrollArea);
|
||||
Adjustment := PgtkObject(gtk_scrolled_window_get_hadjustment(
|
||||
PGTKScrolledWindow(Scroll)));
|
||||
end
|
||||
else
|
||||
Adjustment := PgtkObject(gtk_scrolled_window_get_hadjustment(
|
||||
PGTKScrolledWindow(gObject)));
|
||||
ConnectSenderSignal(Adjustment, 'value-changed', @GTKHScrollCB);
|
||||
end;
|
||||
end;
|
||||
|
||||
LM_VSCROLL:
|
||||
begin
|
||||
//if ALCLObject is TCustomListView
|
||||
//then begin
|
||||
// ConnectSenderSignal(gObject, 'scroll-vertical', @gtkLVVScroll);
|
||||
//end
|
||||
//else begin
|
||||
If ALCLObject is TScrollBar then
|
||||
ConnectSenderSignal(
|
||||
PGTKObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment),
|
||||
'value-changed', @GTKVScrollCB)
|
||||
else If ALCLObject is TScrollBox then begin
|
||||
Scroll := gtk_object_get_data(gObject, odnScrollArea);
|
||||
ConnectSenderSignal(PGTKObject(gtk_scrolled_window_get_vadjustment(
|
||||
PGTKScrolledWindow(Scroll))), 'value-changed', @GTKVScrollCB);
|
||||
end
|
||||
else
|
||||
ConnectSenderSignal(PGTKObject(gtk_scrolled_window_get_vadjustment(
|
||||
PGTKScrolledWindow(gObject))), 'value-changed', @GTKVScrollCB);
|
||||
//end;
|
||||
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,'changed-value', @GTK26VScrollCB);
|
||||
end else begin
|
||||
if ALCLObject is TScrollBar then
|
||||
Adjustment := PGtkObject(PgtkhScrollBar(gObject)^.Scrollbar.Range.Adjustment)
|
||||
else if ALCLObject is TScrollBox then begin
|
||||
Scroll := gtk_object_get_data(gObject, odnScrollArea);
|
||||
Adjustment := PGtkObject(gtk_scrolled_window_get_vadjustment(
|
||||
PGTKScrolledWindow(Scroll)));
|
||||
end
|
||||
else
|
||||
Adjustment := PGtkObject(gtk_scrolled_window_get_vadjustment(
|
||||
PGTKScrolledWindow(gObject)));
|
||||
ConnectSenderSignal(Adjustment, 'value-changed', @GTKVScrollCB);
|
||||
end;
|
||||
end;
|
||||
|
||||
LM_YEARCHANGED : //calendar
|
||||
@ -7000,6 +7008,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.625 2005/02/15 10:33:31 mattias
|
||||
fix gtk2 scrollbars from Jesus
|
||||
|
||||
Revision 1.624 2005/02/05 16:09:52 marc
|
||||
* first 64bit changes
|
||||
|
||||
|
@ -202,6 +202,10 @@ function gtkFocusInNotifyCB (widget: PGtkWidget; event: PGdkEvent;
|
||||
data: gpointer): GBoolean; cdecl;
|
||||
function gtkFocusOutNotifyCB (widget: PGtkWidget; event: PGdkEvent;
|
||||
data: gpointer): GBoolean; cdecl;
|
||||
function GTK26HScrollCB(Range: PGTKRange; Scroll: PGtkScrollType; Value: gdouble;
|
||||
data: gpointer): gboolean; cdecl;
|
||||
function GTK26VScrollCB(Range: PGTKRange; Scroll: PGtkScrollType; Value: gdouble;
|
||||
data: gpointer): gboolean; cdecl;
|
||||
function GTKHScrollCB(Adjustment: PGTKAdjustment; data: GPointer): GBoolean; cdecl;
|
||||
function GTKVScrollCB(Adjustment: PGTKAdjustment;
|
||||
data: GPointer): GBoolean; cdecl;
|
||||
|
Loading…
Reference in New Issue
Block a user