37
Controls, Forms, Graphics, LCLType, LMessages, LCLProc, Classes,
35
Controls, Forms, Graphics, LCLType, LCLProc, Classes,
39
WSForms, WSLCLClasses, WSProc,
37
WSForms, WSLCLClasses,
41
CarbonDef, CarbonPrivate, CarbonWSControls;
39
CarbonDef, CarbonPrivate;
83
81
class procedure SetFormBorderStyle(const AForm: TCustomForm; const AFormBorderStyle: TFormBorderStyle); override;
85
83
class procedure SetAlphaBlend(const ACustomForm: TCustomForm; const AlphaBlend: Boolean; const Alpha: Byte); override;
86
class procedure SetFormStyle(const ACustomForm: TCustomForm; const ANewFormStyle, AOldFormStyle: TFormStyle); override;
84
class procedure SetFormStyle(const ACustomForm: TCustomForm; const ANewFormStyle, {%H-}AOldFormStyle: TFormStyle); override;
88
86
class procedure SetPopupParent(const ACustomForm: TCustomForm;
89
const APopupMode: TPopupMode; const APopupParent: TCustomForm); override;
87
const {%H-}APopupMode: TPopupMode; const APopupParent: TCustomForm); override;
208
206
class procedure TCarbonWSCustomForm.ShowHide(const AWinControl: TWinControl);
210
208
nCmdShow : Integer;
209
ModalForm: TCustomForm;
210
ACurrentWindowClass: WindowClass;
211
function HaveModalForms: Boolean;
217
for i := 0 to Screen.CustomFormZOrderCount - 1 do
219
AForm := Screen.CustomFormsZOrdered[i];
220
Result := AForm.Visible and AForm.HandleAllocated and (fsModal in AForm.FormState);
229
function ShowNonModalOverModal(const AShowSheet: Boolean): Boolean;
234
AForm := TCustomForm(AWinControl);
236
if AWinControl.HandleObjectShouldBeVisible and
237
not (csDesigning in AForm.ComponentState) and
238
not (fsModal in AForm.FormState) and
239
(AForm.FormStyle <> fsMDIChild) and
240
not (AForm.FormStyle in fsAllStayOnTop) and
242
(AForm.BorderStyle in [bsDialog, bsSingle, bsSizeable]) and
243
(AForm.Parent = nil) and
244
(AForm.PopupParent = nil) and (AForm.PopupMode = pmNone) then
248
TCarbonWindow(ModalForm.Handle).SheetWin := TCarbonWindow(AForm.Handle).Window;
249
OSError(ShowSheetWindow(TCarbonWindow(AForm.Handle).Window, TCarbonWindow(ModalForm.Handle).Window),
250
Self,'ShowHide','ShowSheetWindow');
212
257
if not CheckHandle(AWinControl, Self, 'ShowHide') then Exit;
259
OSError(GetWindowClass(TCarbonWindow(AWinControl.Handle).Window, ACurrentWindowClass{%H-}),
260
Self,'ShowHide','GetWindowClass');
214
262
if AWinControl.HandleObjectShouldBeVisible then
216
264
case TCustomForm(AWinControl).WindowState of
265
wsFullScreen: nCmdShow := SW_SHOWFULLSCREEN;
217
266
wsMaximized: nCmdShow := SW_SHOWMAXIMIZED;
218
267
wsMinimized: nCmdShow := SW_SHOWMINIMIZED;
220
269
nCmdShow := SW_SHOW;
271
if (ACurrentWindowClass <> kSheetWindowClass) and ShowNonModalOverModal(False) then
273
CREATESHEETWINDOW := PtrUInt(AWinControl);
274
RecreateWnd(AWinControl);
277
if (ACurrentWindowClass = kSheetWindowClass) and
278
not ShowNonModalOverModal(False) then
280
RecreateWnd(AWinControl);
284
if (ACurrentWindowClass = kSheetWindowClass) then
285
ShowNonModalOverModal(True);
222
287
TCarbonWindow(AWinControl.Handle).ShowHide(True);
223
288
TCarbonWindow(AWinControl.Handle).Show(nCmdShow);
291
if not (csDesigning in AWinControl.ComponentState) then
293
if TCarbonWindow(AWinControl.Handle).SheetWin <> nil then
295
HideSheetWindow(TCarbonWindow(AWinControl.Handle).SheetWin);
296
TCarbonWindow(AWinControl.Handle).SheetWin := nil;
298
if (ACurrentWindowClass = kSheetWindowClass) then
299
HideSheetWindow(TCarbonWindow(AWinControl.Handle).Window);
226
301
TCarbonWindow(AWinControl.Handle).ShowHide(False);
229
305
{------------------------------------------------------------------------------