mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-11 10:20:53 +01:00
gtk2 intf: added style-after event - no implementation yet
git-svn-id: trunk@23085 -
This commit is contained in:
parent
73cd49e50b
commit
6cc37ddac3
@ -3394,15 +3394,16 @@ begin
|
||||
|
||||
LM_PAINT :
|
||||
begin
|
||||
//DebugLn(['TGtkWidgetSet.SetCallback ',DbgSName(ALCLObject)]);
|
||||
//DebugLn(['TGtkWidgetSet.SetCallback ',DbgSName(ALCLObject),' ',GetWidgetDebugReport(PGtkWIdget(gfixed))]);
|
||||
{$Ifdef GTK1}
|
||||
//ConnectSenderSignal(gFixed, 'draw', @gtkDrawCB);
|
||||
ConnectSenderSignalAfter(gFixed, 'draw', @gtkDrawAfterCB);
|
||||
{$EndIf}
|
||||
{$Ifdef GTK2}
|
||||
ConnectSenderSignal(gFixed, 'expose-event', @GTKExposeEvent);
|
||||
ConnectSenderSignal(gFixed,'expose-event', @GTKExposeEvent);
|
||||
ConnectSenderSignalAfter(gFixed,'style-set', @GTKStyleChangedAfter);
|
||||
{$EndIf}
|
||||
ConnectSenderSignalAfter(gFixed, 'expose-event', @GTKExposeEventAfter);
|
||||
ConnectSenderSignalAfter(gFixed,'expose-event', @GTKExposeEventAfter);
|
||||
ConnectSenderSignal(gFixed,'style-set', @GTKStyleChanged);
|
||||
end;
|
||||
|
||||
|
||||
@ -153,3 +153,25 @@ begin
|
||||
Result:=not Result; // message handled by LCL, stop processing
|
||||
end;
|
||||
|
||||
procedure GTKStyleChangedAfter(Widget: PGtkWidget; previous_style : PGTKStyle;
|
||||
Data: Pointer); cdecl;
|
||||
begin
|
||||
if (Widget=nil) or (Data=nil) or (previous_style=nil) then ;
|
||||
{$IFDEF EventTrace}
|
||||
EventTrace('style-set', nil);
|
||||
{$ENDIF}
|
||||
|
||||
{ Note:
|
||||
This event is called for many widgets but not for all.
|
||||
It is called on creation and called when the theme changes.
|
||||
The resizing should occur when all styles were updated by the gtk.
|
||||
The gtk itself uses size messages via queue.
|
||||
Maybe the solution is to use g_idle_add for the top level form and resize.
|
||||
}
|
||||
//debugln('style-set after ',DbgSName(TWinControl(Data)));
|
||||
//LCLObject.InvalidateClientRectCache(False);
|
||||
{$IFNDEF NewAutoSize}
|
||||
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
|
||||
@ -51,13 +51,9 @@ uses
|
||||
LMessages, LCLProc, LCLStrConsts, LCLIntf, LCLType, DynHashArray, Maps, Masks,
|
||||
GraphType, GraphMath, Graphics, GTKWinApiWindow, LResources, Controls, Forms,
|
||||
Buttons, Menus, StdCtrls, ComCtrls, ExtCtrls, Dialogs, ExtDlgs,
|
||||
FileUtil, ImgList, GtkFontCache, GTKGlobals, gtkDef, GtkExtra, GtkDebug;
|
||||
FileUtil, ImgList, GtkFontCache, GTKGlobals, gtkDef, GtkExtra, GtkDebug,
|
||||
gtkproc; // Remove when separation is complete
|
||||
|
||||
{
|
||||
Callbacks for events
|
||||
|
||||
gtk2callback.inc headers
|
||||
}
|
||||
const
|
||||
gtkevent_window_state_event = 'window-state-event';
|
||||
|
||||
@ -67,6 +63,8 @@ function GTKWindowStateEventCB(widget: PGtkWidget;
|
||||
|
||||
function gtkMouseWheelCB(widget: PGtkWidget; event: PGdkEventScroll;
|
||||
data: gPointer): GBoolean; cdecl;
|
||||
procedure GTKStyleChangedAfter(Widget: PGtkWidget; previous_style : PGTKStyle;
|
||||
Data: Pointer); cdecl;
|
||||
|
||||
{ Miscelaneus Widget functions }
|
||||
|
||||
@ -75,8 +73,6 @@ procedure WidgetSetSelLength(const Widget: PGtkWidget; NewLength: integer);
|
||||
|
||||
implementation
|
||||
|
||||
uses gtkproc; // Remove when separation is complete
|
||||
|
||||
{ Callbacks for events }
|
||||
|
||||
{$include gtk2callback.inc}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user