diff --git a/lcl/interfaces/gtk3/gtk3bindings/lazgdk3.pas b/lcl/interfaces/gtk3/gtk3bindings/lazgdk3.pas index 0e52956629..6e124d9f35 100644 --- a/lcl/interfaces/gtk3/gtk3bindings/lazgdk3.pas +++ b/lcl/interfaces/gtk3/gtk3bindings/lazgdk3.pas @@ -2311,32 +2311,48 @@ const GDK_PARENT_RELATIVE = 1; GDK_PRIORITY_REDRAW = 120; type - TGdkAnchorHints = ( - TGdkAnchorHintsMinValue = -$7FFFFFFF, - GDK_ANCHOR_FLIP_X = 1, - GDK_ANCHOR_FLIP_Y = 2, - GDK_ANCHOR_FLIP = 3, - GDK_ANCHOR_SLIDE_X = 4, - GDK_ANCHOR_SLIDE_Y = 8, - GDK_ANCHOR_SLIDE = 12, - GDK_ANCHOR_RESIZE_X = 16, - GDK_ANCHOR_RESIZE_Y = 32, - GDK_ANCHOR_RESIZE = 48, - TGdkAnchorHintsMaxValue = $7FFFFFFF + TGdkAnchorHintsIdx = ( + TGdkAnchorHintsIdxMinValue = 0, + GDK_ANCHOR_FLIP_X = 0, + GDK_ANCHOR_FLIP_Y = 1, + GDK_ANCHOR_SLIDE_X = 2, + GDK_ANCHOR_SLIDE_Y = 3, + GDK_ANCHOR_RESIZE_X = 4, + GDK_ANCHOR_RESIZE_Y = 5, + TGdkAnchorHintsIdxMaxValue = 31 ); - TGdkAxisFlags = ( - TGdkAxisFlagsMinValue = -$7FFFFFFF, - GDK_AXIS_FLAG_X = 2, - GDK_AXIS_FLAG_Y = 4, - GDK_AXIS_FLAG_PRESSURE = 8, - GDK_AXIS_FLAG_XTILT = 16, - GDK_AXIS_FLAG_YTILT = 32, - GDK_AXIS_FLAG_WHEEL = 64, - GDK_AXIS_FLAG_DISTANCE = 128, - GDK_AXIS_FLAG_ROTATION = 256, - GDK_AXIS_FLAG_SLIDER = 512, - TGdkAxisFlagsMaxValue = $7FFFFFFF + TGdkAnchorHints = Set of TGdkAnchorHintsIdx; +const + GDK_ANCHOR_FLIP = [ + GDK_ANCHOR_FLIP_X, + GDK_ANCHOR_FLIP_Y + ]; {3 = $00000003} + + GDK_ANCHOR_SLIDE = [ + GDK_ANCHOR_SLIDE_X, + GDK_ANCHOR_SLIDE_Y + ]; {12 = $0000000C} + + GDK_ANCHOR_RESIZE = [ + GDK_ANCHOR_RESIZE_X, + GDK_ANCHOR_RESIZE_Y + ]; {48 = $00000030} + +type + TGdkAxisFlagsIdx = ( + TGdkAxisFlagsIdxMinValue = 0, + GDK_AXIS_FLAG_X = 1, + GDK_AXIS_FLAG_Y = 2, + GDK_AXIS_FLAG_PRESSURE = 3, + GDK_AXIS_FLAG_XTILT = 4, + GDK_AXIS_FLAG_YTILT = 5, + GDK_AXIS_FLAG_WHEEL = 6, + GDK_AXIS_FLAG_DISTANCE = 7, + GDK_AXIS_FLAG_ROTATION = 8, + GDK_AXIS_FLAG_SLIDER = 9, + TGdkAxisFlagsIdxMaxValue = 31 ); + TGdkAxisFlags = Set of TGdkAxisFlagsIdx; TGdkAxisUse = ( TGdkAxisUseMinValue = -$7FFFFFFF, GDK_AXIS_IGNORE = 0, @@ -2455,9 +2471,6 @@ type GDK_LAST_CURSOR = 153, TGdkCursorTypeMaxValue = $7FFFFFFF ); - -//TODO: This is hand written just to give the direction we need to go. -//TODO: We need to make git2pas generate similar code for bitfields. TGdkModifierTypeIdx = ( TGdkModifierTypeIdxMinValue = 0, GDK_SHIFT_MASK = 0, @@ -2495,8 +2508,25 @@ type ); TGdkModifierType = Set of TGdkModifierTypeIdx; const - GDK_MODIFIER_MASK = 1543512063; - GDK_ALL_MODIFIERS_MASK = [TGdkModifierTypeIdxMinValue..TGdkModifierTypeIdxMaxValue]; + GDK_MODIFIER_MASK = [ + GDK_SHIFT_MASK, + GDK_LOCK_MASK, + GDK_CONTROL_MASK, + GDK_MOD1_MASK, + GDK_MOD2_MASK, + GDK_MOD3_MASK, + GDK_MOD4_MASK, + GDK_MOD5_MASK, + GDK_BUTTON1_MASK, + GDK_BUTTON2_MASK, + GDK_BUTTON3_MASK, + GDK_BUTTON4_MASK, + GDK_BUTTON5_MASK, + GDK_SUPER_MASK, + GDK_HYPER_MASK, + GDK_META_MASK, + GDK_RELEASE_MASK + ]; {1543512063 = $5C001FFF} type TGdkInputMode = ( @@ -2506,31 +2536,33 @@ type GDK_MODE_WINDOW = 2, TGdkInputModeMaxValue = $7FFFFFFF ); - TGdkWindowAttributesType = ( - TGdkWindowAttributesTypeMinValue = -$7FFFFFFF, - GDK_WA_TITLE = 2, - GDK_WA_X = 4, - GDK_WA_Y = 8, - GDK_WA_CURSOR = 16, - GDK_WA_VISUAL = 32, - GDK_WA_WMCLASS = 64, - GDK_WA_NOREDIR = 128, - GDK_WA_TYPE_HINT = 256, - TGdkWindowAttributesTypeMaxValue = $7FFFFFFF + TGdkWindowAttributesTypeIdx = ( + TGdkWindowAttributesTypeIdxMinValue = 0, + GDK_WA_TITLE = 1, + GDK_WA_X = 2, + GDK_WA_Y = 3, + GDK_WA_CURSOR = 4, + GDK_WA_VISUAL = 5, + GDK_WA_WMCLASS = 6, + GDK_WA_NOREDIR = 7, + GDK_WA_TYPE_HINT = 8, + TGdkWindowAttributesTypeIdxMaxValue = 31 ); - TGdkWindowHints = type Integer; -const - GDK_HINT_POS = TGdkWindowHints(1); - GDK_HINT_MIN_SIZE = TGdkWindowHints(2); - GDK_HINT_MAX_SIZE = TGdkWindowHints(4); - GDK_HINT_BASE_SIZE = TGdkWindowHints(8); - GDK_HINT_ASPECT = TGdkWindowHints(16); - GDK_HINT_RESIZE_INC = TGdkWindowHints(32); - GDK_HINT_WIN_GRAVITY = TGdkWindowHints(64); - GDK_HINT_USER_POS = TGdkWindowHints(128); - GDK_HINT_USER_SIZE = TGdkWindowHints(256); - -type + TGdkWindowAttributesType = Set of TGdkWindowAttributesTypeIdx; + TGdkWindowHintsIdx = ( + TGdkWindowHintsIdxMinValue = 0, + GDK_HINT_POS = 0, + GDK_HINT_MIN_SIZE = 1, + GDK_HINT_MAX_SIZE = 2, + GDK_HINT_BASE_SIZE = 3, + GDK_HINT_ASPECT = 4, + GDK_HINT_RESIZE_INC = 5, + GDK_HINT_WIN_GRAVITY = 6, + GDK_HINT_USER_POS = 7, + GDK_HINT_USER_SIZE = 8, + TGdkWindowHintsIdxMaxValue = 31 + ); + TGdkWindowHints = Set of TGdkWindowHintsIdx; TGdkWindowEdge = ( TGdkWindowEdgeMinValue = -$7FFFFFFF, GDK_WINDOW_EDGE_NORTH_WEST = 0, @@ -2543,18 +2575,18 @@ type GDK_WINDOW_EDGE_SOUTH_EAST = 7, TGdkWindowEdgeMaxValue = $7FFFFFFF ); - TGdkWMDecoration = type Integer; -const - GDK_DECOR_ALL = TGdkWMDecoration(1); - GDK_DECOR_BORDER = TGdkWMDecoration(2); - GDK_DECOR_RESIZEH = TGdkWMDecoration(4); - GDK_DECOR_TITLE = TGdkWMDecoration(8); - GDK_DECOR_MENU = TGdkWMDecoration(16); - GDK_DECOR_MINIMIZE = TGdkWMDecoration(32); - GDK_DECOR_MAXIMIZE = TGdkWMDecoration(64); - -type - + TGdkWMDecorationIdx = ( + TGdkWMDecorationIdxMinValue = 0, + GDK_DECOR_ALL = 0, + GDK_DECOR_BORDER = 1, + GDK_DECOR_RESIZEH = 2, + GDK_DECOR_TITLE = 3, + GDK_DECOR_MENU = 4, + GDK_DECOR_MINIMIZE = 5, + GDK_DECOR_MAXIMIZE = 6, + TGdkWMDecorationIdxMaxValue = 31 + ); + TGdkWMDecoration = Set of TGdkWMDecorationIdx; TGdkEventMaskIdx = ( TGdkEventMaskIdxMinValue = 0, GDK_EXPOSURE_MASK = 1, @@ -2586,7 +2618,33 @@ type ); TGdkEventMask = Set of TGdkEventMaskIdx; const - GDK_ALL_EVENTS_MASK = [TGdkEventMaskIdxMinValue..TGdkEventMaskIdxMaxValue]; + GDK_ALL_EVENTS_MASK = [ + GDK_EXPOSURE_MASK, + GDK_POINTER_MOTION_MASK, + GDK_POINTER_MOTION_HINT_MASK, + GDK_BUTTON_MOTION_MASK, + GDK_BUTTON1_MOTION_MASK, + GDK_BUTTON2_MOTION_MASK, + GDK_BUTTON3_MOTION_MASK, + GDK_BUTTON_PRESS_MASK, + GDK_BUTTON_RELEASE_MASK, + GDK_KEY_PRESS_MASK, + GDK_KEY_RELEASE_MASK, + GDK_ENTER_NOTIFY_MASK, + GDK_LEAVE_NOTIFY_MASK, + GDK_FOCUS_CHANGE_MASK, + GDK_STRUCTURE_MASK, + GDK_PROPERTY_CHANGE_MASK, + GDK_VISIBILITY_NOTIFY_MASK, + GDK_PROXIMITY_IN_MASK, + GDK_PROXIMITY_OUT_MASK, + GDK_SUBSTRUCTURE_MASK, + GDK_SCROLL_MASK, + GDK_TOUCH_MASK, + GDK_SMOOTH_SCROLL_MASK, + GDK_TOUCHPAD_GESTURE_MASK, + GDK_TABLET_PAD_MASK + ]; {67108862 = $03FFFFFE} type TGdkInputSource = ( @@ -2602,27 +2660,28 @@ type GDK_SOURCE_TABLET_PAD = 8, TGdkInputSourceMaxValue = $7FFFFFFF ); - TGdkWindowState = type Integer; -const - GDK_WINDOW_STATE_WITHDRAWN = TGdkWindowState(1); - GDK_WINDOW_STATE_ICONIFIED = TGdkWindowState(2); - GDK_WINDOW_STATE_MAXIMIZED = TGdkWindowState(4); - GDK_WINDOW_STATE_STICKY = TGdkWindowState(8); - GDK_WINDOW_STATE_FULLSCREEN = TGdkWindowState(16); - GDK_WINDOW_STATE_ABOVE = TGdkWindowState(32); - GDK_WINDOW_STATE_BELOW = TGdkWindowState(64); - GDK_WINDOW_STATE_FOCUSED = TGdkWindowState(128); - GDK_WINDOW_STATE_TILED = TGdkWindowState(256); - GDK_WINDOW_STATE_TOP_TILED = TGdkWindowState(512); - GDK_WINDOW_STATE_TOP_RESIZABLE = TGdkWindowState(1024); - GDK_WINDOW_STATE_RIGHT_TILED = TGdkWindowState(2048); - GDK_WINDOW_STATE_RIGHT_RESIZABLE = TGdkWindowState(4096); - GDK_WINDOW_STATE_BOTTOM_TILED = TGdkWindowState(8192); - GDK_WINDOW_STATE_BOTTOM_RESIZABLE = TGdkWindowState(16384); - GDK_WINDOW_STATE_LEFT_TILED = TGdkWindowState(32768); - GDK_WINDOW_STATE_LEFT_RESIZABLE = TGdkWindowState(65536); - -type + TGdkWindowStateIdx = ( + TGdkWindowStateIdxMinValue = 0, + GDK_WINDOW_STATE_WITHDRAWN = 0, + GDK_WINDOW_STATE_ICONIFIED = 1, + GDK_WINDOW_STATE_MAXIMIZED = 2, + GDK_WINDOW_STATE_STICKY = 3, + GDK_WINDOW_STATE_FULLSCREEN = 4, + GDK_WINDOW_STATE_ABOVE = 5, + GDK_WINDOW_STATE_BELOW = 6, + GDK_WINDOW_STATE_FOCUSED = 7, + GDK_WINDOW_STATE_TILED = 8, + GDK_WINDOW_STATE_TOP_TILED = 9, + GDK_WINDOW_STATE_TOP_RESIZABLE = 10, + GDK_WINDOW_STATE_RIGHT_TILED = 11, + GDK_WINDOW_STATE_RIGHT_RESIZABLE = 12, + GDK_WINDOW_STATE_BOTTOM_TILED = 13, + GDK_WINDOW_STATE_BOTTOM_RESIZABLE = 14, + GDK_WINDOW_STATE_LEFT_TILED = 15, + GDK_WINDOW_STATE_LEFT_RESIZABLE = 16, + TGdkWindowStateIdxMaxValue = 31 + ); + TGdkWindowState = Set of TGdkWindowStateIdx; TGdkGravity = ( TGdkGravityMinValue = -$7FFFFFFF, GDK_GRAVITY_NORTH_WEST = 1, @@ -2643,16 +2702,17 @@ type GDK_FULLSCREEN_ON_ALL_MONITORS = 1, TGdkFullscreenModeMaxValue = $7FFFFFFF ); - TGdkWMFunction = ( - TGdkWMFunctionMinValue = -$7FFFFFFF, - GDK_FUNC_ALL = 1, - GDK_FUNC_RESIZE = 2, - GDK_FUNC_MOVE = 4, - GDK_FUNC_MINIMIZE = 8, - GDK_FUNC_MAXIMIZE = 16, - GDK_FUNC_CLOSE = 32, - TGdkWMFunctionMaxValue = $7FFFFFFF + TGdkWMFunctionIdx = ( + TGdkWMFunctionIdxMinValue = 0, + GDK_FUNC_ALL = 0, + GDK_FUNC_RESIZE = 1, + GDK_FUNC_MOVE = 2, + GDK_FUNC_MINIMIZE = 3, + GDK_FUNC_MAXIMIZE = 4, + GDK_FUNC_CLOSE = 5, + TGdkWMFunctionIdxMaxValue = 31 ); + TGdkWMFunction = Set of TGdkWMFunctionIdx; TGdkWindowTypeHint = ( TGdkWindowTypeHintMinValue = -$7FFFFFFF, GDK_WINDOW_TYPE_HINT_NORMAL = 0, @@ -2678,17 +2738,32 @@ type GDK_DEVICE_TYPE_FLOATING = 2, TGdkDeviceTypeMaxValue = $7FFFFFFF ); - TGdkSeatCapabilities = ( - TGdkSeatCapabilitiesMinValue = -$7FFFFFFF, - GDK_SEAT_CAPABILITY_NONE = 0, - GDK_SEAT_CAPABILITY_POINTER = 1, - GDK_SEAT_CAPABILITY_TOUCH = 2, - GDK_SEAT_CAPABILITY_TABLET_STYLUS = 4, - GDK_SEAT_CAPABILITY_ALL_POINTING = 7, - GDK_SEAT_CAPABILITY_KEYBOARD = 8, - GDK_SEAT_CAPABILITY_ALL = 15, - TGdkSeatCapabilitiesMaxValue = $7FFFFFFF + TGdkSeatCapabilitiesIdx = ( + TGdkSeatCapabilitiesIdxMinValue = 0, + GDK_SEAT_CAPABILITY_POINTER = 0, + GDK_SEAT_CAPABILITY_TOUCH = 1, + GDK_SEAT_CAPABILITY_TABLET_STYLUS = 2, + GDK_SEAT_CAPABILITY_KEYBOARD = 3, + TGdkSeatCapabilitiesIdxMaxValue = 31 ); + TGdkSeatCapabilities = Set of TGdkSeatCapabilitiesIdx; +const + GDK_SEAT_CAPABILITY_NONE = []; {0 = $00000000} + + GDK_SEAT_CAPABILITY_ALL_POINTING = [ + GDK_SEAT_CAPABILITY_POINTER, + GDK_SEAT_CAPABILITY_TOUCH, + GDK_SEAT_CAPABILITY_TABLET_STYLUS + ]; {7 = $00000007} + + GDK_SEAT_CAPABILITY_ALL = [ + GDK_SEAT_CAPABILITY_POINTER, + GDK_SEAT_CAPABILITY_TOUCH, + GDK_SEAT_CAPABILITY_TABLET_STYLUS, + GDK_SEAT_CAPABILITY_KEYBOARD + ]; {15 = $0000000F} + +type TGdkGrabStatus = ( TGdkGrabStatusMinValue = -$7FFFFFFF, GDK_GRAB_SUCCESS = 0, @@ -2826,16 +2901,17 @@ type GDK_SETTING_ACTION_DELETED = 2, TGdkSettingActionMaxValue = $7FFFFFFF ); - TGdkDragAction = ( - TGdkDragActionMinValue = -$7FFFFFFF, - GDK_ACTION_DEFAULT = 1, - GDK_ACTION_COPY = 2, - GDK_ACTION_MOVE = 4, - GDK_ACTION_LINK = 8, - GDK_ACTION_PRIVATE = 16, - GDK_ACTION_ASK = 32, - TGdkDragActionMaxValue = $7FFFFFFF + TGdkDragActionIdx = ( + TGdkDragActionIdxMinValue = 0, + GDK_ACTION_DEFAULT = 0, + GDK_ACTION_COPY = 1, + GDK_ACTION_MOVE = 2, + GDK_ACTION_LINK = 3, + GDK_ACTION_PRIVATE = 4, + GDK_ACTION_ASK = 5, + TGdkDragActionIdxMaxValue = 31 ); + TGdkDragAction = Set of TGdkDragActionIdx; TGdkDragCancelReason = ( TGdkDragCancelReasonMinValue = -$7FFFFFFF, GDK_DRAG_CANCEL_NO_TARGET = 0, @@ -2862,18 +2938,22 @@ type GDK_FILTER_REMOVE = 2, TGdkFilterReturnMaxValue = $7FFFFFFF ); - TGdkFrameClockPhase = ( - TGdkFrameClockPhaseMinValue = -$7FFFFFFF, - GDK_FRAME_CLOCK_PHASE_NONE = 0, - GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS = 1, - GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT = 2, - GDK_FRAME_CLOCK_PHASE_UPDATE = 4, - GDK_FRAME_CLOCK_PHASE_LAYOUT = 8, - GDK_FRAME_CLOCK_PHASE_PAINT = 16, - GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS = 32, - GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 64, - TGdkFrameClockPhaseMaxValue = $7FFFFFFF + TGdkFrameClockPhaseIdx = ( + TGdkFrameClockPhaseIdxMinValue = 0, + GDK_FRAME_CLOCK_PHASE_FLUSH_EVENTS = 0, + GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT = 1, + GDK_FRAME_CLOCK_PHASE_UPDATE = 2, + GDK_FRAME_CLOCK_PHASE_LAYOUT = 3, + GDK_FRAME_CLOCK_PHASE_PAINT = 4, + GDK_FRAME_CLOCK_PHASE_RESUME_EVENTS = 5, + GDK_FRAME_CLOCK_PHASE_AFTER_PAINT = 6, + TGdkFrameClockPhaseIdxMaxValue = 31 ); + TGdkFrameClockPhase = Set of TGdkFrameClockPhaseIdx; +const + GDK_FRAME_CLOCK_PHASE_NONE = []; {0 = $00000000} + +type TGdkGLError = ( TGdkGLErrorMinValue = -$7FFFFFFF, GDK_GL_ERROR_NOT_AVAILABLE = 0, diff --git a/lcl/interfaces/gtk3/gtk3lclintf.inc b/lcl/interfaces/gtk3/gtk3lclintf.inc index 2efd816c92..440d26bf69 100644 --- a/lcl/interfaces/gtk3/gtk3lclintf.inc +++ b/lcl/interfaces/gtk3/gtk3lclintf.inc @@ -32,8 +32,8 @@ begin gtk_widget_realize(Widget); - gdk_window_set_decorations(Widget^.window, TGdkWMDecoration(0)); - gdk_window_set_functions(Widget^.window, TGdkWMFunction(Integer(GDK_FUNC_RESIZE) or Integer(GDK_FUNC_CLOSE))); + gdk_window_set_decorations(Widget^.window, []); + gdk_window_set_functions(Widget^.window, [GDK_FUNC_RESIZE, GDK_FUNC_CLOSE]); gtk_widget_set_opacity(Widget, 0.25); gtk_widget_show(Widget); diff --git a/lcl/interfaces/gtk3/gtk3widgets.pas b/lcl/interfaces/gtk3/gtk3widgets.pas index 6446bea587..88f437cbe9 100644 --- a/lcl/interfaces/gtk3/gtk3widgets.pas +++ b/lcl/interfaces/gtk3/gtk3widgets.pas @@ -794,7 +794,7 @@ type function GetScrolledWindow: PGtkScrolledWindow; override; function ShowState(nstate:integer):boolean; // winapi ShowWindow procedure UpdateWindowState; // LCL WindowState - class function decoration_flags(Aform: TCustomForm): longint; + class function decoration_flags(Aform: TCustomForm): TGdkWMDecoration; public procedure SetBounds(ALeft,ATop,AWidth,AHeight:integer);override; destructor Destroy; override; @@ -1435,7 +1435,7 @@ var Msg: TLMSize; NewSize: TSize; ACtl: TGtk3Widget; - AState:integer; + AState: TGdkWindowState; begin if AWidget=nil then ; //TODO: Move to TGtk3Widget.GtkResizeEvent @@ -1478,13 +1478,13 @@ begin if ACtl is TGtk3Window then begin AState := TGtk3Window(ACtl).getWindowState; - if AState and GDK_WINDOW_STATE_ICONIFIED<>0 then + if GDK_WINDOW_STATE_ICONIFIED in AState then Msg.SizeType := SIZE_MINIMIZED else - if AState and GDK_WINDOW_STATE_MAXIMIZED<>0 then + if GDK_WINDOW_STATE_MAXIMIZED in AState then Msg.SizeType := SIZE_MAXIMIZED else - if AState and GDK_WINDOW_STATE_FULLSCREEN<>0 then + if GDK_WINDOW_STATE_FULLSCREEN in AState then Msg.SizeType := SIZE_FULLSCREEN; end; @@ -1963,7 +1963,7 @@ begin if IsWidgetOk then begin if FWidget^.get_window <> nil then - Result := gdk_window_get_state(FWidget^.get_window) and GDK_WINDOW_STATE_ICONIFIED <> 0; + Result := GDK_WINDOW_STATE_ICONIFIED in gdk_window_get_state(FWidget^.get_window); end; end; @@ -7412,7 +7412,7 @@ var Msg: TLMSize; AState: TGdkWindowState; //AScreen: PGdkScreen; - msk:integer; + msk: TGdkWindowState; begin Result := False; FillChar(Msg{%H-}, SizeOf(Msg), #0); @@ -7436,39 +7436,39 @@ begin msk:=AEvent^.window_state.changed_mask; AState:=AEvent^.window_state.new_window_state; - if msk and GDK_WINDOW_STATE_ICONIFIED<>0 then + if GDK_WINDOW_STATE_ICONIFIED in msk then begin - if AState and GDK_WINDOW_STATE_ICONIFIED<>0 then + if GDK_WINDOW_STATE_ICONIFIED in AState then Msg.SizeType := SIZE_MINIMIZED end else - if msk and GDK_WINDOW_STATE_MAXIMIZED<>0 then + if GDK_WINDOW_STATE_MAXIMIZED in msk then begin - if AState and GDK_WINDOW_STATE_MAXIMIZED<>0 then + if GDK_WINDOW_STATE_MAXIMIZED in AState then Msg.SizeType := SIZE_MAXIMIZED end else - if msk and GDK_WINDOW_STATE_FULLSCREEN<>0 then + if GDK_WINDOW_STATE_FULLSCREEN in msk then begin - if AState and GDK_WINDOW_STATE_FULLSCREEN<>0 then + if GDK_WINDOW_STATE_FULLSCREEN in AState then Msg.SizeType := SIZE_FULLSCREEN end else - if msk and GDK_WINDOW_STATE_FOCUSED<>0 then + if GDK_WINDOW_STATE_FOCUSED in msk then begin - if AState and GDK_WINDOW_STATE_FOCUSED<>0 then + if GDK_WINDOW_STATE_FOCUSED in AState then DebugLn('Focused') else DebugLn('Defocused'); exit; end else - if msk and GDK_WINDOW_STATE_WITHDRAWN<>0 then + if GDK_WINDOW_STATE_WITHDRAWN in msk then begin - if AState and GDK_WINDOW_STATE_WITHDRAWN<>0 then + if GDK_WINDOW_STATE_WITHDRAWN in AState then DebugLn('Shown') else DebugLn('Hidden'); exit; end else begin - DebugLn(format('other changes state=%.08x mask=%.08x',[AState,msk])); + //DebugLn(format('other changes state=%.08x mask=%.08x',[AState,msk])); exit; end; @@ -7481,52 +7481,52 @@ begin // DeliverMessage(Msg); end; -class function TGtk3Window.decoration_flags(Aform:TCustomForm):longint; +class function TGtk3Window.decoration_flags(Aform: TCustomForm): TGdkWMDecoration; var icns:TBorderIcons; bs:TFormBorderStyle; begin - result:=0; + Result := []; icns:=AForm.BorderIcons; bs:=AForm.BorderStyle; case bs of - bsSingle: result:=result or GDK_DECOR_TITLE{GDK_DECOR_BORDER}; + bsSingle: Include(Result, GDK_DECOR_TITLE{GDK_DECOR_BORDER}); bsDialog: - result:=result or GDK_DECOR_BORDER or GDK_DECOR_TITLE; + Result += [GDK_DECOR_BORDER, GDK_DECOR_TITLE]; bsSizeable: begin if biMaximize in icns then - result:=result or GDK_DECOR_MAXIMIZE; + Include(Result, GDK_DECOR_MAXIMIZE); if biMinimize in icns then - result:=result or GDK_DECOR_MINIMIZE; - Result:=result or GDK_DECOR_BORDER or GDK_DECOR_RESIZEH or GDK_DECOR_TITLE; + Include(Result, GDK_DECOR_MINIMIZE); + Result += [GDK_DECOR_BORDER, GDK_DECOR_RESIZEH, GDK_DECOR_TITLE]; end; bsSizeToolWin: - Result:=result or GDK_DECOR_BORDER or GDK_DECOR_RESIZEH or GDK_DECOR_TITLE; + Result += [GDK_DECOR_BORDER, GDK_DECOR_RESIZEH, GDK_DECOR_TITLE]; bsToolWindow: - Result:=result or GDK_DECOR_BORDER; - bsNone: result:=0; + Include(Result, GDK_DECOR_BORDER); + bsNone: Result := []; end; - if result and GDK_DECOR_TITLE <> 0 then + if GDK_DECOR_TITLE in Result then if biSystemMenu in icns then - result:=result or GDK_DECOR_MENU; + Include(Result, GDK_DECOR_MENU); end; function TGtk3Window.ShowState(nstate:integer):boolean; // winapi ShowWindow var - AState:integer; + AState: TGdkWindowState; begin case nstate of SW_SHOWNORMAL: begin AState:=fWidget^.window^.get_state; - if AState and GDK_WINDOW_STATE_ICONIFIED<>0 then + if GDK_WINDOW_STATE_ICONIFIED in AState then PgtkWindow(fWidget)^.deiconify - else if AState and GDK_WINDOW_STATE_MAXIMIZED<>0 then + else if GDK_WINDOW_STATE_MAXIMIZED in AState then PgtkWindow(fWidget)^.unmaximize - else if AState and GDK_WINDOW_STATE_FULLSCREEN<>0 then + else if GDK_WINDOW_STATE_FULLSCREEN in AState then PgtkWindow(fWidget)^.unfullscreen else PgtkWindow(fWidget)^.show; @@ -7551,7 +7551,7 @@ end; function TGtk3Window.CreateWidget(const Params: TCreateParams): PGtkWidget; var AForm: TCustomForm; - decor:longint; + decor: TGdkWMDecoration; begin FIcon := nil; FScrollX := 0; @@ -7568,7 +7568,7 @@ begin gtk_widget_realize(Result); decor:=decoration_flags(AForm); gdk_window_set_decorations(Result^.window, decor); - gtk_window_set_decorated(PGtkWindow(Result),(decor<>0)); + gtk_window_set_decorated(PGtkWindow(Result),(decor <> [])); if AForm.AlphaBlend then gtk_widget_set_opacity(Result, TForm(LCLObject).AlphaBlendValue/255); @@ -7728,16 +7728,16 @@ begin if AFixedWidthHeight then PGtkWindow(Widget)^.set_geometry_hints(nil, @Geometry, - GDK_HINT_POS or GDK_HINT_MIN_SIZE or GDK_HINT_MAX_SIZE) + [GDK_HINT_POS, GDK_HINT_MIN_SIZE, GDK_HINT_MAX_SIZE]) else begin if AForm.BorderStyle <> bsNone then begin - AHints := GDK_HINT_POS or GDK_HINT_BASE_SIZE; + AHints := [GDK_HINT_POS, GDK_HINT_BASE_SIZE]; if (AForm.Constraints.MinHeight > 0) or (AForm.Constraints.MinWidth > 0) then - AHints := AHints or GDK_HINT_MIN_SIZE; + Include(AHints, GDK_HINT_MIN_SIZE); if (AForm.Constraints.MaxHeight > 0) or (AForm.Constraints.MaxWidth > 0) then - AHints := AHints or GDK_HINT_MAX_SIZE; + Include(AHints, GDK_HINT_MAX_SIZE); PGtkWindow(Widget)^.set_geometry_hints(nil, @Geometry, AHints); end; @@ -7864,7 +7864,7 @@ end; function TGtk3Window.GetWindowState: TGdkWindowState; begin - Result := 0; + Result := []; if IsWidgetOK and (FWidget^.get_realized) then Result := FWidget^.window^.get_state; end;