Bart
b163a35cb3
Refactoring TTaskDialog:
...
- Fix not displaying common buttons in TLCLTaskDialog.SetupControls
- Assign TLCLDialog.FDlg in the CreateNew() constructor.
- Free LDefaultFont
- Start comparing the new form vs the old form
Still not functional.
2023-07-19 19:43:35 +02:00
Bart
916196dede
Refactoring TTaskDialog: prevent possible crash in TLCLTaskDialog.
2023-07-19 18:53:23 +02:00
Bart
61fefaa794
Refactoring TTaskDialog:
...
- expose Dialogs.TTaskDialog.ParentWindow as reado only property (needed in TLCLTaskDialog.Execute)
- furhter implement adding controls at runtime to TLCLTaskDialog
- it compiles, but still not functional.
2023-07-19 12:07:21 +02:00
Bart
4d40d3f77a
Refactoring TTaskDialog:
...
- Deprecated unit LCLTaskDialog.
- Unit TaskDlgEmulation: work in progress.
- Start implementing TLCLTaskDialog class. Not functional yet (but at least it should compile).
- Code copied and adapted from the now deprecated LCLTaskDialog unit.
- Temporarily exposed a private variable of Dialogs.TTaskDialog
2023-07-17 20:48:22 +02:00
Bart
32824af5fe
TCustomTaskDialog: add a comment.
2023-07-17 14:01:35 +02:00
Bart
fc6bbcc936
TCustomTaskDialog: inherit form TLCLComponent and register the widgetset class.
2023-07-17 13:52:40 +02:00
Bart
6fb319fae8
WSDialogs: basic implementation of TWSTaskDialog.Execute.
2023-07-17 12:53:27 +02:00
Bart
9289be8936
Unit TaskDlgEmulation: cosmetic (no functional changes).
2023-07-17 12:49:49 +02:00
Bart
df338fd867
LCL: add TaskDlgEmulation unit (skeleton).
2023-07-17 12:48:02 +02:00
Bart
57e13c67d3
TWSTaskDialog: change signature of Execute method. Reason: TTaskDialog is not related to TCommonDialog.
...
Eventually we need to cast the parameter to TCustomTaskDialog in the Win32 implementation.
Because of the (Delhi compatible) signature of TTaskDialog.DoExcute, it seems that TCustomTaskDialog cannot
inherit from TCommonDialog, since this method (TCustomTaskDialog.DoExecute) must be dynamic, so it cannot
also be "override" as well.
2023-07-17 12:43:04 +02:00
Bart
cfbb089e1f
TaskDialog: Start refactoring TTaskDialog: layout the basic infrastructure for a TWSTaskDialog class.
2023-07-17 11:05:33 +02:00
Maxim Ganetsky
005710726a
IDE: regenerated translations
2023-07-17 02:22:04 +03:00
wp_xyz
518d35ba69
Images: Reworked dataset images, uniform style. By Roland Hahn.
2023-07-16 17:07:27 +02:00
rich2014
b184a37dbe
Cocoa: fix the issue that Modal Form may disappear when switching back from other apps
...
the issue fixed:
1. run your app, open Modal Form
2. switch to other apps
3. in the dock, right click your app ico and select "Show All Window", and select a window
4. the Modal Form is disappear (actually ordered behind the selected Form)
2023-07-16 23:00:29 +08:00
Juha
27f6e20118
IDE: Improve removing unknown component properties. Issue #40377 .
2023-07-16 15:48:01 +03:00
Juha
d9608a3489
IDE: Improve removing unknown component properties. Issue #40377 .
2023-07-16 15:21:51 +03:00
Juha
e4494cf4cd
LCL-GTK2: Allow right-to-left selection of long text in TEdit with mouse. Issue #40379 , patch by wavebvg.
2023-07-16 00:04:14 +03:00
Juha
0c056fc0d2
IDE: Remove unknown component properties using the same GUI already used in other situations. Issue #40377 .
2023-07-15 21:17:02 +03:00
rich2014
ebd0bf4135
Cocoa: Async call InputClientInsertText() for non-editable LCL CustomControl
...
in TCocoaCustomControl, such as Form, Grid, ListView, after inputting text, another control may be focused.
in insertText_replacementRange(), Cocoa/InputContext doesn't like it, so calling InputClientInsertText() asynchronously.
2023-07-16 00:02:06 +08:00
Martin
bb33afb81a
SynEdit: fixed crash introduced by bee839cc18
"Ide, SynEdit: Pas-HL, add ability to parse anonymous procs"
...
Decisions on "fold-block-type" (or open/close) can not be based on "ScanAhead".
If one of the "ahead scanned" lines changes, the fold structure (type/depth) for the above node will be wrong.
E.g., TLazSynEditNestedFoldsList will trigger a temp-scan and get non-matching results. This means "node info" may not be found (due to incorrect fold-level), and code can crash. (observed with MarkupFoldColoring, triggers "assert" in TLazSynEditNestedFoldsList)
2023-07-15 14:08:58 +02:00
Juha
dca4378fae
LCL-QT4: Clean and optimize function TQtWidgetSet.EnumDisplayMonitors(). By lagprogramming.
2023-07-15 13:08:51 +03:00
mattias
86c8874b0c
codetools: fixed search atttibute
2023-07-15 11:45:48 +02:00
mattias
c472699a81
codetools: fixed pas2js tests
2023-07-15 11:22:19 +02:00
mattias
9d18e66aa8
codetools: fixed two tests
2023-07-15 11:04:18 +02:00
Maxim Ganetsky
992a3c2ff5
AnchorDocking: improved autosizing flat header buttons and some refactoring, merge request !221
2023-07-15 02:20:25 +03:00
zamtmn
2fa20e3333
Small refactoring
2023-07-15 01:58:14 +03:00
zamtmn
0c9b09585d
Return HardcodedButtonSize, ButtonBorderSpacingAround to interface section
2023-07-15 01:58:14 +03:00
zamtmn
6d464562d7
Improve vertical header width, refactoring
2023-07-15 01:58:13 +03:00
mattias
bb83fdd273
simplewebservergui: fixed run on older windows, loading GetTcpTable2 via GetProcAddress
2023-07-14 22:52:38 +02:00
mattias
79893d2cbe
updated makefiles
2023-07-14 16:42:45 +02:00
rich2014
185e72ea31
Cocoa: better handling of TCocoaWindow.makeFirstResponder() reentrancy
2023-07-14 21:05:41 +08:00
dsiders
957d62af56
Docs: LCL/stdctrls. Restores documentation after reverting commit 9f577dc5
.
2023-07-14 13:35:53 +01:00
Maxim Ganetsky
255bdd2bb0
Revert "LCL: Add an option to NOT call TCheckbox OnChange handler when clicked. Issue #39870 , patch by Arioch The."
...
This reverts commit 9f577dc548
.
Reasons:
1. The logic of VCL_OnClick_Emulation flag (or its name) is wrong: when it is true, OnChange event gets called LCL-style (note that VCL does not have OnChange event).
2. Having such flag is unsafe: e.g. some used unit can disable it and checkboxes in the whole program will _silently_ change their behavior.
3. The code claimed as a reason for introducing this change does not work in Delphi too.
Such Delphi compatibility issues should be handled another way.
2023-07-14 03:00:19 +03:00
Maxim Ganetsky
ce43b4d6a5
IDE: regenerated translations and updated Russian translation
2023-07-14 02:45:17 +03:00
Maxim Ganetsky
0429abf3de
IDE, Editor options: fixed copy-paste error and a typo in XML name for newly added Anonymous procedure
2023-07-14 02:43:43 +03:00
Martin
d80518932f
IDE, Debugger: Add "Enabled" to breakpoint properties dialog
2023-07-13 18:50:32 +02:00
Martin
188aae51fa
IDE: Add Key/Mouse-Command to Show Breakpoint-properties on current line. (create/modify)
2023-07-13 18:50:32 +02:00
Martin
320cae4037
IDE: Fix advanced mouse opts for breakpoint toggling / enabling
2023-07-13 18:50:31 +02:00
Martin
bee839cc18
Ide, SynEdit: Pas-HL, add ability to parse anonymous procs
2023-07-13 18:50:31 +02:00
Juha
479ff9635e
Codetools: Support more modifiers in class method. Issue #40368 , patch by Peacoor.
2023-07-13 15:53:57 +03:00
Juha
be92e362e8
LCL-QT[56]: Clean and optimise function TQtWidgetSet.EnumDisplayMonitors(). By lagprogramming.
2023-07-13 12:06:03 +03:00
wp_xyz
fde9c86ca8
TAChart: Minor axis can get marks from a chartsource now
2023-07-13 00:28:58 +02:00
mattias
f306bcae87
IDE: fixed --no-splash-screen, #40375
2023-07-12 22:37:29 +02:00
dsiders
b824561f12
Docs: LCOL/controls. Update TControl.Notification topic for changes in c6200e29
.
2023-07-12 15:01:31 +01:00
Bart
02765cb9db
LCLTaskDialog: use descriptive const instead of magic numbers.
2023-07-12 15:37:31 +02:00
Bart
a802987646
TTaskDialog: remove ctypes unit from LCLTaskDialog (on Windows): it isn't used.
2023-07-12 15:18:37 +02:00
Bart
e5aa4cee57
diff --git a/lcl/dialogs.pp b/lcl/dialogs.pp
...
index 24f69c5ac7..b156a70d9c 100644
--- a/lcl/dialogs.pp
+++ b/lcl/dialogs.pp
@@ -543,6 +543,7 @@ type
tfShowMarqueeProgressBar, tfCallbackTimer,
tfPositionRelativeToWindow, tfRtlLayout,
tfNoDefaultRadioButton, tfCanBeMinimized,
+ tfNoSetForeGround, tfSizeToContent,
tfForceNonNative, tfEmulateClassicStyle);
TTaskDialogFlags = set of TTaskDialogFlag;
diff --git a/lcl/include/taskdialog.inc b/lcl/include/taskdialog.inc
index 2ce5a97571..ddf2f46aaa 100644
--- a/lcl/include/taskdialog.inc
+++ b/lcl/include/taskdialog.inc
@@ -179,6 +179,10 @@ function TCustomTaskDialog.DoExecute(ParentWnd: HWND): Boolean;
Result := Result + [tdfNoDefaultRadioButton];
if tfCanBeMinimized in aTaskFlags then
Result := Result + [tdfCanBeMinimized];
+ if tfNoSetForeGround in aTaskFlags then
+ Result := Result + [tdfNoSetForeGround];
+ if tfSizeToContent in aTaskFlags then
+ Result := Result + [tdfSizeToContent];
end;
function TF_DIALOGICON(const aIcon: TTaskDialogIcon): LCLTaskDialog.TTaskDialogIcon;
diff --git a/lcl/lcltaskdialog.pas b/lcl/lcltaskdialog.pas
index 660702261f..2c3caccd43 100644
--- a/lcl/lcltaskdialog.pas
+++ b/lcl/lcltaskdialog.pas
@@ -127,7 +127,7 @@ interface
uses
{$IFDEF MSWINDOWS}
- Windows, ctypes,
+ Windows, ctypes, CommCtrl,
{$ENDIF}
Classes, SysUtils,
LazUTF8,
@@ -172,7 +172,9 @@ type
tdfExpandFooterArea, tdfExpandByDefault, tdfVerificationFlagChecked,
tdfShowProgressBar, tdfShowMarqueeProgressBar, tdfCallbackTimer,
tdfPositionRelativeToWindow, tdfRtlLayout, tdfNoDefaultRadioButton,
- tdfCanBeMinimized, tdfQuery, tdfQueryMasked, tdfQueryFieldFocused);
+ tdfCanBeMinimized, tdfNoSetForeGround {added in Windows 8}, tdfSizeToContent,
+ //custom LCL flags
+ tdfQuery, tdfQueryMasked, tdfQueryFieldFocused);
/// set of available configuration flags for the Task Dialog
TTaskDialogFlags = set of TTaskDialogFlag;
@@ -771,6 +773,29 @@ var
if ModalResult=aButtonDef then
Dialog.Form.ActiveControl := result;
end;
+ {$IFDEF MSWINDOwS}
+ function TaskDialogFlagsToInteger(aFlags: TTaskDialogFlags): Integer;
+ const
+ //missing from CommCtrls in fpc < 3.3.1
+ TDF_NO_SET_FOREGROUND = $10000;
+ TDF_SIZE_TO_CONTENT = $1000000;
+ FlagValues: Array[TTaskDialogFlag] of Integer = (
+ TDF_ENABLE_HYPERLINKS, TDF_USE_HICON_MAIN, TDF_USE_HICON_FOOTER,
+ TDF_ALLOW_DIALOG_CANCELLATION, TDF_USE_COMMAND_LINKS, TDF_USE_COMMAND_LINKS_NO_ICON,
+ TDF_EXPAND_FOOTER_AREA, TDF_EXPANDED_BY_DEFAULT, TDF_VERIFICATION_FLAG_CHECKED,
+ TDF_SHOW_PROGRESS_BAR, TDF_SHOW_MARQUEE_PROGRESS_BAR, TDF_CALLBACK_TIMER,
+ TDF_POSITION_RELATIVE_TO_WINDOW, TDF_RTL_LAYOUT, TDF_NO_DEFAULT_RADIO_BUTTON,
+ TDF_CAN_BE_MINIMIZED, TDF_NO_SET_FOREGROUND {added in Windows 8}, TDF_SIZE_TO_CONTENT,
+ //custom LCL flags
+ 0 {tdfQuery}, 0 {tdfQueryMasked}, 0 {tdfQueryFieldFocused});
+ var
+ aFlag: TTaskDialogFlag;
+ begin
+ Result := 0;
+ for aFlag := Low(TTaskDialogFlags) to High(TTaskDialogFlags) do
+ if (aFlag in aFlags) then Result := Result or FlagValues[aFlag];
+ end;
+ {$ENDIF MSWINWOS}
var
ARadioOffset: integer;
@@ -821,7 +846,7 @@ begin
include(aFlags,tdfVerificationFlagChecked);
if (Config.cButtons=0) and (aCommonButtons=[cbOk]) then
Include(aFlags,tdfAllowDialogCancellation); // just OK -> Esc/Alt+F4 close
- Config.dwFlags := integer(aFlags);
+ Config.dwFlags := TaskDialogFlagsToInteger(aFlags);
Config.hMainIcon := TD_ICONS[aDialogIcon];
Config.hFooterIcon := TD_FOOTERICONS[aFooterIcon];
Config.nDefaultButton := aButtonDef;
2023-07-12 15:15:34 +02:00
mattias
c6200e29c8
lcl: TWinControl class completed
2023-07-12 11:35:47 +02:00
mattias
2dc7c77293
lcl: clean hostdocksite
2023-07-12 11:35:47 +02:00
wp_xyz
e77066d3af
TAChart: Use new icons in charteditor demo.
2023-07-12 10:48:19 +02:00