Commit Graph

65514 Commits

Author SHA1 Message Date
Michaël Van Canneyt
961f8b2aa8 * Before/After bind support for THTMLElementActionList 2023-07-18 09:15:57 +02:00
Michaël Van Canneyt
5261aa9075 * Support for retrieving resource parameters 2023-07-18 09:15:57 +02:00
Juha
ed7945efe2 IDE: Load and save AutoSaveActiveDesktop value. It was left out in EnvironmentOptions refactoring. 2023-07-18 01:45:09 +03:00
Juha
d14ccface0 DockedFormEditor: Join Msg LM_TIMER into a case construct in TDesignForm.WndMethod. 2023-07-17 22:56:51 +03:00
Juha
a236313f5f DockedFormEditor: Fix a missing Result value of TDesignForms.Add(). 2023-07-17 22:56:51 +03:00
Martin
8533349aba Codetools: IdentifierCompletion, fix freeing correct item if History.Capacity is reached. Issue #40354 2023-07-17 21:33:12 +02:00
Martin
9146a986b4 Codetools: Identifier completion, improve/fix limit for recent history items shown. issue #40332
- take into account that some items in history may not be in the current unfiltered items, and that "HistoryIndex" may have gaps
2023-07-17 21:33:12 +02:00
Martin
e7c438c50b Codetools: Identifier completion, add limit for recent history items shown. issue #40332 Patch by WooBean007 2023-07-17 21:33:12 +02:00
Martin
c32f97c6c8 Codetools: Identifier completion, don't use CompareIdentifiers for ParamList. ParamList contains symbols ";()". Found in issue #40332 2023-07-17 21:33:11 +02:00
Juha
ebad154bc6 DockedFormEditor: Prevent an eternal loop when an invalid LFM file causes a read error. Issue #39288. 2023-07-17 22:16:41 +03:00
mattias
636cae9653 codetools: fixed tests on windows 2023-07-17 17:35: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