Commit Graph

7000 Commits

Author SHA1 Message Date
Bart
fe0ed266ce TTaskDialog: start implementing TTaskDialogProgressBar: skeleton only, does not communicate with the dialog yet. 2023-08-23 13:10:52 +02:00
Željan Rikalo
853461fed6 LCL: fixed TWinControl.SetChildZPosition, WS must be informed about change of order in any case. issue #40450 2023-08-22 19:50:19 +02:00
Bart
cf5777a164 TTaskDialog: implement property Handle. Makes it possible to send messages to the dialog.
This is needed to implement e.g. progressbar and can be used to update on-the-fly the contents of the dialog.
2023-08-21 22:11:25 +02:00
Bart
ab5d084ade TTaskDialog: publish properties CustomFooterIcon and CustomMainIcon. 2023-08-20 14:54:50 +02:00
Bart
d7801adb2a TTaskDialog: implement CustomMainIcon and CustomFooterIcon, needed for flags tfUseHIconMain and tfUseHIconFooter respectively.
The flags now work on Windows Vista+ native dialog.
Partly resolves issue #40449.
2023-08-20 13:48:50 +02:00
mattias
ee218d1fa0 lcl: TTreeView: public ScrolledLeft/Top, PathDelimiter 2023-08-14 15:08:23 +02:00
Bart
70b158940e TaskDialog: implement OnNavigated (native Windows Vista+ only) and OnHelp.
While Delphi has DoOnHelp protected method, it seems they do not have OnHelp (GOKY).
2023-08-08 18:07:06 +02:00
Bart
396b72b21a TaskDialog: handle the paramters in DoOnExpandButtonClicked and DoOnVerificationClicked.
Rename event OnExpand to OnExpanded, as it is in Delphi.
2023-08-03 23:06:20 +02:00
Bart
a0e0744618 TaskDialog: implement OnHyperlinkClicked and associated property URL. Native Vista+ dialog only. 2023-08-01 16:54:50 +02:00
Bart
b5f0aca3ea TaskDialog: use DoOnXXX methods to call the event handlers.
Also rename some methods of LCLTaskDialog for a bit more consistency.
2023-08-01 16:39:53 +02:00
Bart
d31e76a1f6 TaskDialog: implement OnRadioButtonClicked event. 2023-08-01 15:54:34 +02:00
Juha
13d54fc4cb LCL: Refactor Colorbox code. Issue #40376, patch by n7800. 2023-08-01 11:55:14 +03:00
mattias
d4693029bc lcl: fixed compile 2023-07-31 13:52:38 +02:00
Bart
c3823da117 LCL: first try at implementing TApplication.ActiveFormHandle property.
Needs black-box testing against Delphi, especially when either no active form exists yet, or
when the active form's Active property is False (e.g. minimized, hidden of a non-LCL form is shwoing modally).
Also needs to be debated wether the return value should be TLCLHandle.
2023-07-31 13:10:57 +02:00
rich2014
53cd3db19c LCL: Fix #40416: Mouse Message issue (Enter/Level/Move) 2023-07-30 21:55:11 +08:00
Bart
bff41e1f5d TTaskDialog: In Execute, use the Handle of the current active form for the ParentWnd parameter.
Based upon the documentation of Delphi: https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.Dialogs.TCustomTaskDialog.Execute
It makes Execute honour the tfRelativeToWindow flag.
2023-07-29 23:29:53 +02:00
wp_xyz
11b92b26c8 LCL/SpeedButton: Fix position of caption when no glyph is present. 2023-07-29 00:36:46 +02:00
wp_xyz
07da832b28 LCL/SpeedButton: Fix positioning of Glyph and Caption. Issue #40410. Based on patch by Luca Olivetti. 2023-07-28 19:40:50 +02:00
Bart
f48fe7983e TTaskDialog: add a comment why Execute always returns True. 2023-07-28 17:20:27 +02:00
Bart
033512d064 Revert "TTaskDialog: fix Result value of Execute method:"
Apparently the Delhi docs arw wrong (as in: Delphi does not do what the dosc say: it awill always return True, as long as the dialog was shown.
2023-07-28 17:13:41 +02:00
Bart
cbd7579c15 TTaskDialog: fix Result value of Execute method:
- previously it returned True if the dialog succeeded to show, even if the dialog was cancelled.
- now it is False if the dialog is canceled.
- See https://docwiki.embarcadero.com/Libraries/Alexandria/en/Vcl.Dialogs.TCustomTaskDialog.Execute
2023-07-28 16:31:35 +02:00
Bart
e259355d76 TTaskDialog: initial support for query capability (combobox or single line edit).
The implementation differs from the one in (now deprecated) LCLTaskDialog:
- the type of query is controlled by flags only (which are mutually exclusive)
- for single line edit, you can set passwordchar
- intial value of single line query has no influence on combobox
- initial value of combobox is controlled by integer value, not by text
2023-07-27 00:05:09 +02:00
Bart
2722337e33 TTaskDialog: layout the initial infrastructure to add Query capability to TTaskDialog. 2023-07-26 16:13:50 +02:00
Juha
cc4760393b Reserve "On..." prefix for events and name functions differently. 2023-07-25 11:07:57 +03:00
Bart
158f10e193 LCL: Dialogs unit: cleanup. 2023-07-24 22:27:09 +02:00
Bart
71f8725fb8 Merge branch 'wstaskdialog' 2023-07-24 20:20:22 +02:00
Bart
cc10035843 Refactoring TTaskDialog:
- Win32 WS: fix not returning ButtonID.
- Win32 WS: initialize RadioRes return value.
2023-07-24 10:52:11 +02:00
Bart
b9634c255d Refactoring TTaskDialog: switch over to the new code, remove dependency on deprecated unit LCLTaskDialog. 2023-07-24 10:31:34 +02:00
Bart
92f83f8b59 Refactoring TTaskDialog:
- first attempt to get Win32 WS code working (currently littered with writeln() statements, so crashes if no console!)
- fix ModalResult in OnButtonClicked for emulated dialog.
2023-07-24 01:08:33 +02:00
Bart
4442949a29 Refactoring TTaskDialog: remove property ParentWindow (added in 61fefaa7), it's not longer needed. 2023-07-22 16:03:50 +02:00
Bart
85c1fff32d Refactoring TTaskDialog: move (and rename) constants for first radio/button index to Dialogs unit and use them there as well. 2023-07-22 15:55:17 +02:00
Bart
17fee115bf Refactoring TTaskDialog: TLCLTaskDialog: factor out AddFooter. 2023-07-22 10:48:11 +02:00
Juha
5a647cd4e1 DockedFormEditor: Solve the unrecoverable loop differently. Add a new handler for it. Issue #39288. 2023-07-20 23:46:25 +03:00
Bart
677a73c38c Refactoring TTaskDialog: fix compilation of Dialogs unit on non-windows platforms. 2023-07-20 20:17:40 +02:00
Bart
9a3e5c120d Refactoring TTaskDialog:
- Change signature of TWSTaskDialog.Execute and related functions/methods so we can set ParentWnd and retrieve RadioRes.
The TLCLTaskDialog now should act the same as the old emulated version (unit LCLTaskDialog).
2023-07-20 20:09:38 +02:00
Bart
1420ce0a69 Refactoring TTaskDialog:
- Use meaningfull names for private vars of TLCLTaskDialog
- Factor out SetupPanel
- Consistent capitalization of "Result" ,"True" and "False"
- Remove property VerifyChecked, set appropriate flag instead
- More debugln statements
- Add some comments
The emulated dialog is now more or less functional (we don't return RadioResult yet).
2023-07-20 19:54:20 +02:00
Juha
ca9cb1a6e4 Clean up procedure TScreen.EndTempCursor. Issue #40389. 2023-07-20 12:20:40 +03:00
Bart
c3c73c48fc Refactoring TTaskDialog:
- TWSTaskDialog.Execute: return integer (modal result of the dialog) instead of boolean
- Idem for related functions and methods
2023-07-20 10:55:48 +02:00
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
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
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
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
Bart
a4c9080f10 TListBox: fix SelCount in case HandleAllocated = False. Issue #40361. 2023-07-07 22:42:25 +02:00
Juha
adfc424e92 Lazarus trunk requires at least FPC 3.2.0. Remove checks for earlier FPC_FULLVERSION. 2023-07-07 17:39:03 +03:00
Juha
41adb276bb Remove obsolete checks for FPC versions earlier then 3.0. 2023-07-07 17:39:02 +03:00
mattias
bcb890ce27 lcl: TScreen.UpdateLastActive: clear FLastActiveControl on destroy 2023-07-04 15:20:05 +02:00
Juha
0bc32656ed LazUtils, LCL: Move LCLProc.CompareRect() -> GraphMath.SameRect(). Deprecate LCLProc.CompareRect(). 2023-07-03 16:54:10 +03:00
Juha
211d95da17 LCL: Use TLCLHandle instead of a redefined LCLType.THandle or TLCLIntfHandle. Deprecate them. 2023-07-03 11:17:01 +03:00
Juha
c3891ad820 Reduce compiler warnings. 2023-07-03 06:23:49 +03:00
Abou Al Montacir
58645a39f4 GTK3: Fixed crash on Win64 after recent changes on GTK3 hints.
Seems that on Win64, `FHintControl` is not always a valid `TWinControl`
class instance.
2023-06-25 20:31:16 +02:00
Abou Al Montacir
f7c5d02afb GTK3: Fixed hint flickering when mouse moves.
Closes: #37712.

When mouse moves but remains over the same widget, we should not
recreate the hint window. Just break execution and 'exit `ActivateHint`
function early.
2023-06-25 15:59:22 +00:00
Abou Al Montacir
06ec2750ca GTK3: Passed handle of hint win control to WS inside hint data pointer.
Closes #40331.

GTK3 WS needs to get that handle in order to retrieve the parent window
which need to be set as transient of the newly created popup window.

This is a required by GTK3 documentation as one can see in
  https://docs.gtk.org/gtk3/method.Window.set_transient_for.html

This patch needs to touch common LCL code, but `HintData` files does
not seem to be really used.
2023-06-24 13:59:53 +00:00
rich2014
05555c84d5 Lcl/DrawText: Fix #40324: return value set to the height 2023-06-24 15:41:04 +08:00
Juha
cc7d9e60fb LCL: Simplify TTreeNode after adding support for Enabled property. Issue #40335, patch by n7800. 2023-06-20 11:09:58 +03:00
Maxim Ganetsky
79f7f1bbf2 LCL: Made TCustomImageList more extensible. Based on idea from merge request !202.
1. MarkAsChanged method (protected) is added, which sets FChanged to
true.
2. Virtual DoAfterUpdateStarted and DoBeforeUpdateEnded methods
(protected) are added. They are called in first BeginUpdate and last
EndUpdate respectively.
2023-06-19 16:11:00 +03:00
rich2014
280c57e91d LCL/TCustomComboBox: replace cbactEnabled with AutoComplete 2023-06-16 22:07:47 +08:00
rich2014
3eccd94680 LCL/TCustomComboBox: refactor in TCustomComboBox.MatchListItem() 2023-06-16 21:58:16 +08:00
Juha
87fe030800 LazControls, LCL: Add shortcuts to TreeFilterEdit to work with TreeView. Issue #40321, patch by n7800. 2023-06-16 02:01:21 +03:00
rich2014
055ae4d900 LCL/TCustomComboBox: fix CaseSensitive in MatchListItem() 2023-06-16 00:01:16 +08:00
Juha
74446557f6 Remove old deprecated functions and units. 2023-06-15 02:35:52 +03:00
rich2014
6d9db64d24 LCL/TCustomComboBox: CaseSensitive supported in RealSetText() 2023-06-14 23:43:42 +08:00
rich2014
062bacda7a LCL/TCustomComboBox: Sorted supported (Cocoa first) 2023-06-14 22:39:47 +08:00
Juha
ab21cfa331 LCL: Add BeginUpdate..EndUpdate for FullCollapse and FullExpand in TreeView. Issue #40304, patch by n7800. 2023-06-08 18:39:21 +03:00
Juha
f3afdc8d50 LCL: Add a wrapper for Types.OffsetRect() into LCLIntf. 2023-06-07 00:45:54 +03:00
Juha
1475336c8c Remove LCLProc.OffsetRect(). Move some functions from LCLProc to GraphMath (LazUtils). 2023-06-05 15:48:01 +03:00
mattias
e89e0d7dcd lcl: ShowModal: handleexception of Idle, otherwise error dialog is auto closed 2023-06-01 10:57:23 +02:00
Bart
d405afa039 LCL: in TRadioGroup and TCheckGroup don't set the name for runtime created radiobuttons/checkboxes.
They are not needed and can give rise to unexpected crashes if the name already exists.
2023-05-20 14:50:19 +02:00
Bart
5137735655 LCL: fix crash when using freeing a component of a TRadioGroup or TCheckGroup. Issue #40261. 2023-05-20 14:42:36 +02:00
Juha
21ea45d415 Support compiling some Lazarus code with -Sy option. Issue #40263, patch by Arioch The. 2023-05-20 12:51:35 +03:00
wp_xyz
f793569190 LCL: Fix high-dpi scaling of the TabHeight and TabWidth properties of TPageControl and TTabControl 2023-05-16 22:28:12 +02:00
Juha
f99bd70b72 Improve scaling of DateTimePicker. Leave GetDetailSize in places which are not fully tested yet. 2023-04-29 19:44:23 +03:00
wp_xyz
77ae9452b9 Misc: Switch x and y loops at several places. Issue #40231 2023-04-29 16:38:00 +02:00
Juha
c14934764c LCL: Call TThemeServices.GetDetailSizeForPPI with proper arguments. Revert 1138d26280. 2023-04-27 17:23:33 +03:00
Martok
da8aa82003 lcl: consider compositor/DWM extended frame for snapping 2023-04-24 23:12:47 +00:00
Martok
0b50d7cfc2 lcl: ensure SnapOptions are streamed 2023-04-24 23:12:47 +00:00
Martok
b83838139d lcl: implement window snapping / magnetic borders 2023-04-24 23:12:47 +00:00
wp_xyz
dc299031b7 LCL/Toolbar: Remove redundant method TToolbar.ToolButtonDown, issue #40216 2023-04-18 13:56:58 +02:00
wp_xyz
f0ca99ba13 LCL/ToolButton: Fix endless loop when there is more than one checked button in group. Issue #40216, patch by n7800 2023-04-18 00:17:24 +02:00
Bart
f63e480295 LCL Cleanup TWinControl.Loaded. Patch by lagprogramming. Issue #40209. 2023-04-15 22:36:58 +02:00
wp_xyz
a2cd35663d * LCL/Paintbox: Better solution to previous commit (issue #40198). 2023-04-13 23:26:23 +02:00
wp_xyz
fc2986c741 LCL/Paintbox: Fine-tune position of crossing lines in TPaintbox at design-time. Issue #40198. 2023-04-13 22:32:41 +02:00
wp_xyz
c0946573ce LCL/TCanvas: Switch x and y loops in TCanvas.BrushCopy. Patch by lagprogramming, https://forum.lazarus.freepascal.org/index.php/topic,62996.msg476742.html 2023-04-10 23:52:26 +02:00
wp_xyz
483ae6e0f1 LCL/Paintbox: Fix incorrect painting of PaintBox frame and cross lines at design time. Issue #40198, patch by furious programming 2023-04-07 15:39:56 +02:00
Martin
0d415cb235 LCL: Fix endless loop in ReleaseComponent (invoking itself via WM_NULL). Issue #40183
Change to only re-invoke ReleaseComponent if any component actually reached a ref-count of 0.
If Components are re-added after a crash during destroying one of them, then they (may or may not) re-invoke immediately. But excluding the crashed one, so there is work to continue.
2023-04-02 20:33:48 +02:00
Juha
79fadc1fa5 LCL: Remove an unused Rect from TCanvas.TextExtent. Suggested by lagprogramming. 2023-03-11 17:10:32 +02:00
Juha
9822443fd6 LCL: Require Handle in TCanvas.GetClipRect. Issue #40114, patch by nanobit. 2023-03-11 16:17:06 +02:00
Ondrej Pokorny
57c8514e04 TTaskDialog: add tfEmulateClassicStyle to flags 2023-02-28 08:29:50 +01:00
wp_xyz
6cc8ef7446 LCL/FlowPanel: Fix TFlowPanel.AutoSize calculation, excludes hidden controls now. Issue #40137, patch by Henner Drewes. 2023-02-26 16:46:50 +01:00
mattias
3d86c02c68 lcl: fixed comments about TDockTree and TLazDockTree 2023-02-17 19:57:09 +01:00
Bart
5160adcacc TApplicationProperties: add OnActionExecute (Issue #36816) and OnActionUpdate. 2023-02-11 18:41:03 +01:00
Željan Rikalo
909982cc9c LCL: Fixed memleak in TCustomListView. TFPList can be created but never freed. 2023-01-15 00:28:40 +01:00
Bart
3a944f112d Dialogs: fix compliation with fpc < 3.2.2 after commit #70688d5a (2nd try) 2023-01-14 00:25:55 +01:00
Bart
76c9b140ac Dialogs: fix compliation with fpc < 3.2.2 after commit #70688d5a 2023-01-13 22:57:28 +01:00
Bart
70688d5a1f Dialogs: simplify internal helper function. 2023-01-13 15:08:06 +01:00
Juha
49c7830b4a LCL: Call OnShow event also for a maximized form. Issue #40043. 2023-01-01 14:11:46 +02:00
wp_xyz
5f76b3e31c LCL: additional fix to TWinControl.GetClientRect wcfBoundsRealized (DockedFormEditor issue), issue #40052. Patch by rich2014. 2022-12-27 15:48:12 +01:00
mattias
1b9e56b56c lcl: fixed TWinControl.GetClientRect wcfBoundsRealized, issue #40052 2022-12-19 22:04:09 +01:00
Ondrej Pokorny
96291eb9a5 TPanel: fix csOpaque style inconsistency (it depended on the order of ParentColor/ParentBackground change) 2022-12-14 21:49:24 +01:00
Ondrej Pokorny
7d00a524a4 TScrollBox: make opaque for ParentColor=False and ParentBackground=False. Issue #40047 2022-12-14 21:49:24 +01:00
Bart
1e302eb754 LCL: improve the construction of some messages for TTreeView. Modified patch by Alexey Torgashin. Issue #39592. 2022-12-05 22:21:09 +01:00
Bart B
1af6a0e61f Merge branch 'lcl/notebook' into 'main'
FIX #40019: LCL/TPageControl: FIX algorithm of clear tabs in TNBPages.Clear()

See merge request freepascal.org/lazarus/lazarus!122
2022-12-03 14:10:15 +00:00
Ondrej Pokorny
2a1ea2ca04 Revert "lcl: label: align to right for autosize and taRightJustify (Delphi compatibility)"
This reverts commit 29996ddc03.
2022-11-30 10:16:12 +01:00
Ondrej Pokorny
f1b3d0ca11 Revert "lcl: label: change left when making label visible for right-aligned autosized label. issue #21898"
This reverts commit 369b6b255e.
2022-11-30 10:16:12 +01:00
Ondrej Pokorny
369b6b255e lcl: label: change left when making label visible for right-aligned autosized label. issue #21898 2022-11-27 19:18:45 +01:00
rich2014
b2611478d9 LCL/TPageControl: FIX algorithm of clear tabs in TNBPages.Clear() 2022-11-26 19:23:15 +08:00
wp_xyz
68e6168982 LCL/TaskDialog: Add new property Width to override the default width. 2022-11-23 23:43:18 +01:00
mattias
8b8ac1696f lcl: TBitBtn: fixed typo 2022-11-18 08:10:34 +01:00
Maxim Ganetsky
202b5682ae LCL: TWinControl.DoRemainingKeyUp argument should have TLMKeyUp type, not TLMKeyDown (most likely copy-paste error). All use cases of TWinControl.DoRemainingKeyUp (in WMSysKeyUp and WMKeyUp) are passing TLMKeyUp arguments. Note that both TLMKeyUp and TLMKeyDown are aliases to TLMKey. Patch by Don, issue #40001. 2022-11-17 02:15:46 +03:00
Ondrej Pokorny
843dc303af win32: DPI-aware menus 2022-11-16 00:44:52 +01:00
zamtmn
f3b838df8c Prevent AV 2022-11-15 04:10:13 +03:00
zamtmn
989070fa91 Fix issue #39923 (AnchorDocking Docked forms sometimes overlap) 2022-11-15 04:09:52 +03:00
wp_xyz
1b3c13f9b9 lcl/(shell)treeview: Fix FindNodeWithTextPath not working for ShellTreeView in Linux. 2022-11-08 16:36:02 +01:00
wp_xyz
3f3e32ce9b lcl/(Shell)TreeView: Add "FindOptions" so that FindNodeWithTextPath works in TShellTreeView even with collapsed nodes and in case-insensitive file systems. 2022-11-08 15:55:17 +01:00
wp_xyz
9cce03ac94 LCL/(Shell)TreeView: Add property PathDelimiter to TCustomTreeView to allow OS path delimiter in ShellTreeView. 2022-11-08 15:30:03 +01:00
wp_xyz
58f237f04c LazControls: Fix LCLScaling of TColorButton.ButtonColorSize and .BorderWidth. 2022-11-07 22:25:58 +01:00
Juha
f45f3610f4 LCL: Fix TControl handler methods and arguments. Issue #39974, patch by Don Siders. 2022-11-02 19:46:16 +02:00
wp_xyz
1799775107 LCL/Graphics: Avoid separate calculation of sin and cos in AngleArc(). Issue #39983. 2022-11-02 12:38:12 +01:00
Bart
4b4e2cef9c Win32: handle System.CmdShow at startup. Patch by Domingo Galmés, slightly modified by me. Issue ##39363. 2022-10-29 18:41:27 +02:00
wp_xyz
eff48575cf LCL/TPanel: New property ShowAccelChar to improve Delphi compatibility in rendering of ampersands. Issue #39973. 2022-10-28 00:09:56 +02:00
wp_xyz
fbe7aa44e1 LCL/SpeedButton: Fix clipping of caption containing double ampersand characters, issue #39820. 2022-10-27 22:27:35 +02:00
Juha
e27cc45f6c LCL: Make TDBCheckbox events consistent with VCL and with TCheckBox. Issue #39917, patch by Arioch The. 2022-10-04 16:59:38 +03:00
Ondrej Pokorny
62cb85cb4b LCL: task dialog: add tfForceNonNative Flag 2022-10-02 11:40:37 +02:00
Ondrej Pokorny
da539c7b9c IDE: load High-DPI images 2022-09-29 00:59:16 +02:00
Ondrej Pokorny
016d9d0534 TPromptDialog: high-DPI 2022-09-28 23:32:17 +02:00
Ondrej Pokorny
a7d0453a6e LCL: TImage: TImageList support (properties Images, ImageIndex and ImageWidth) 2022-09-28 20:25:36 +02:00
Ondrej Pokorny
6a416779cd Revert "LCL: new component TImageListImage (that displays an image from TImageList instead of a TPicture)"
This reverts commit cac82fb704.
2022-09-28 19:40:32 +02:00
Ondrej Pokorny
a3b65673ed LCL: image list: AddMultipleResolutions with TRasterImage overload 2022-09-28 16:22:54 +02:00
Ondrej Pokorny
cac82fb704 LCL: new component TImageListImage (that displays an image from TImageList instead of a TPicture) 2022-09-28 16:10:01 +02:00
Martin
5882a5bfb5 LCL: TaskDialog, fix default radio-button 2022-09-27 12:16:13 +02:00
Juha
9f577dc548 LCL: Add an option to NOT call TCheckbox OnChange handler when clicked. Issue #39870, patch by Arioch The. 2022-09-18 21:31:59 +03:00
Bart
95cfa51d1b TFloatSpinEdit(Ex): fix crash in OI when setting MaxValue/MinValue/Increment. Issue #39792. 2022-09-17 19:03:18 +02:00
wp_xyz
6d123c6ac8 LCL/Toolbar: Fix incorrect high-dpi scaling of toolbuttons due to hard-coded constant margins. 2022-09-13 21:55:27 +02:00
wp_xyz
7db50f95cc LCL: Increase distance between TToolButton icon and text in List mode. 2022-09-11 18:12:06 +02:00
Juha
8eec551e93 LCL: Improve Checkbox / TAction synchronization. Issue #39869. 2022-09-08 10:21:59 +03:00
mattias
5852af11e6 lcl: TApplication.IsShortcut: check if mainform handleallocated 2022-08-31 23:20:41 +02:00
Martok
e4043024da lcl, win32: move TCustomCheckListBox WS specific settings to WS implementataion
Other widgetsets use widgets with builtin check support, no need to have
ownerdraw details in the LCL class
+ publish OnMeasureItem, it can now be used like TCustomListBox
2022-08-30 02:29:36 +03:00
Martok
1161c4a75a LCL: don't call LB_GETITEMRECT from LM_MEASUREITEM handler (issue #39653) 2022-08-30 02:29:36 +03:00
wp_xyz
7950515229 LCL: Revert 0c285d6eb9 (fixes issue #39861). 2022-08-17 22:59:27 +02:00
wp_xyz
13f4f576ab LCL/extctrls: Add new TCustomPanel/TPanel property VerticalAlignment which exists in Delphi. 2022-07-19 19:28:16 +02:00
wp_xyz
e10b896d7e LCL/FloatSpinEdit: Fix KeyPress swallowing the 'e' of exponential notation. 2022-06-10 17:21:36 +02:00
Juha
72fda31b81 LCL: Delete TCustomSpeedButton.DoMouseUp. Part of merge request !21. 2022-06-03 12:52:45 +03:00
alexrayne
3b4fc416a8 LCL: Fix band height evaluation in ControlBar. Now single row snaps to inner control height. 2022-06-02 13:12:23 +03:00
mattias
843ed47f9a lcl: fixed parsing with fpdoc 2022-05-29 19:23:35 +02:00
Bart
09584a03b9 LCL: implement PromptForFileName in a Delphi compatible way (even though the function is badly designed IMHO). Issue #39740. 2022-05-18 22:51:52 +02:00
mattias
174cf206d4 lcl: fixed TCustomForm.GetMonitor to avoid calling SetBounds 2022-05-17 10:32:34 +02:00
mattias
becdd42b6d lcl: fixed TCustomForm.GetMonitor when handleallocated and visible 2022-05-16 15:25:08 +02:00
mattias
db88c83b22 lcl: TCustomForm.GetMonitor consider poDefaultPosOnly 2022-05-16 12:14:10 +02:00
mattias
cf9253d7a7 lcl: TCustomForm.GetMonitor consider Position and DefaultMonitor on first show 2022-05-16 11:29:43 +02:00
wp_xyz
0883c8c524 LCL/ListView: implement incremental search in virtual mode for Windows. Issue #39748. 2022-05-13 11:06:11 +02:00
Ondrej Pokorny
1837c65413 lcl TLabel: unbind Color and Transparent to fix ParentColor issues (fixes) 2022-05-03 20:42:26 +02:00
Ondrej Pokorny
4ffce1ec8f lcl TLabel: unbind Color and Transparent to fix ParentColor issues 2022-05-03 09:39:24 +02:00
wp_xyz
c0c30424de LCL/TListView: More complete fix of issue #39708, based on patch by d7_2_laz (https://forum.lazarus.freepascal.org/index.php/topic,59024.msg441180.html#msg441180). 2022-04-27 10:38:14 +02:00
wp_xyz
417ff31e84 LCL/ImageList: Fix incorrect png format check in lfm files. Issue #39719, patch by Guilherme Scaglia. 2022-04-22 15:50:32 +02:00
wp_xyz
b694be37b0 LCL/ListView: Better fix for editing virtual multi-select listview than 451f75e3ce. Issue #39708. 2022-04-13 19:41:38 +02:00
wp_xyz
451f75e3ce LCL/ListView: Disable editing of virtual list items when multiple items are selected to avoid transferring the edited caption to the wrong node. 2022-04-13 14:45:03 +02:00
wp_xyz
ba8174b384 LCL/ListView: Fix modifying incorrect item when editing in virtual mode. Issue #39708. 2022-04-12 19:23:55 +02:00
wp_xyz
faed788b23 LCL/ListView: Fix TListview in cocoa hanging after fb64d6ef4d (related to issue #39693). 2022-04-04 15:55:11 +02:00
wp_xyz
9aa8b52ba2 LCL/ListView: Fix OnSelectItem not showing previously selected item when argument Selected=false (on Windows). 2022-04-04 11:51:42 +02:00
wp_xyz
fb64d6ef4d LCL/ListView: Fix multi-selection in virtual mode. Issue #39693. 2022-04-03 23:27:52 +02:00
Zaher Dirkey
76c95e8c47 make TPopupNotifier.BidiMode as Application.BidiMode
Just simple logical fix a crash ADragObjectCopy
2022-03-18 18:18:54 +02:00
wp_xyz
201075cbd8 LCL: Make procedure RotateRect() (local to customlabel.inc) publicly available in GraphMath. 2022-03-13 15:41:48 +01:00
Juha
a1dca01b66 Revert an earlier change in 82b9902b12. The checks are needed. 2022-03-06 09:11:08 +02:00
Juha
b02bb3563b Revert "LCL: Fix Toolbar size when inside a Controlbar". Causes ChangeBounds loop in a bottom anchored Toolbar with GTK2. 2022-03-04 22:25:41 +02:00
Juha
82b9902b12 LCL: Prevent an occational range error in ShellListView. Remove useless checks. 2022-03-04 12:50:22 +02:00
Juha
78f789c59b LCL: Fix Toolbar size when inside a Controlbar. Merge request !77 by Alexander Litjagin. 2022-03-04 00:27:15 +02:00
wp_xyz
2b04018e69 LCL/SpeedButton: Fix misaligned icons in TFilenameEdit etc. 2022-02-10 14:59:49 +01:00
wp_xyz
1f92d4fde1 LCL/TSpeedButton: New property Alignment for left/right aligned or centered caption. 2022-02-07 16:04:47 +01:00
wp_xyz
ad41c897b7 LCL/TSpeedButton: Improve text alignment when there is not glyph. 2022-02-07 15:42:10 +01:00
wp_xyz
89bd5e8943 LCL/SpeedButton: Draw centered multi-line caption. Issue #39632 2022-02-07 12:59:21 +01:00
Martin
f7f41f0116 LCL: Fix Canvas.RoundRect with zero radius, wrong size for non-win. Issue #39628 2022-02-02 14:45:51 +01:00
Bart
8c251bbdfb LCL: Use const for parameters. Patch by Alexey Torgashin. Issue #39617. 2022-02-02 13:57:38 +01:00
Juha
082d051466 LCL: Do not InvalidateSelected in MultiSelect virtual TListView. Part of issue #39324. 2022-01-28 17:09:38 +02:00
Juha
4d72245552 LCL: Solve most performance issues with virtual TListView (OwnerData=True). Issue #39324, patch by d7_2_laz. 2022-01-27 13:24:51 +02:00
Juha
cd2ae505e3 LCL: Fix cursor key behavior with TTreeNode.Enabled, add methods to iterate tree. Issue #39590. 2022-01-25 11:20:56 +02:00
Juha
6464e232a0 LCL: Implement TreeView's TTreeNode.Enabled property, partly functional. Issue #39590, patch by Alexey Torgashin. 2022-01-23 21:29:54 +02:00
Maxim Ganetsky
0a0b688587 LCL: added const to GetLocalizedFormatDescription function parameters 2022-01-17 00:33:57 +03:00
Maxim Ganetsky
52bb248201 LCL: fixed i18n of graphic file format filter descriptions in file dialogs, improved descriptions themselves, removed unused ones, regenerated translations and updated Russian translation 2022-01-15 04:41:04 +03:00
Ondrej Pokorny
624ef51567 LCL Spin: fix case of Integer/string types 2022-01-06 14:16:30 +01:00
Bart
603fb72945 T(Float)SpinEdit: update the control in EditingDone so that text matches Value. Reported by Jamie in https://forum.lazarus.freepascal.org/index.php/topic,57722.msg429596.html#msg429596 2022-01-05 12:33:17 +01:00
mattias
744d5506fd lcl: TTReeView: skip drawing node text when editing, issue 39507 2021-12-26 18:19:26 +01:00
wp_xyz
6e2454530b LCL: Add properties Hot/Disabled/Pressed/SelectedImageIndex to TBitBtn and TSpeedButton. Issue #33299. 2021-12-26 18:06:53 +01:00
Ondrej Pokorny
5f9aaa6cab LCL: reformatting according to CodeTools 2021-12-17 10:18:01 +01:00
Ondrej Pokorny
f05922b05d LCL: TControl.ClientToScreen(TRect) overload - Delphi compatibility 2021-12-17 10:16:49 +01:00
wp_xyz
7114800c05 LCL/TCustomGrid, TCustomCheckBoxEx: Add missing Notification method to react on destruction of TitleImageList and Images, respectively. 2021-12-16 14:52:01 +01:00
wp_xyz
285ed6ea0d LCL/TColorButton: Add missing Notification method to prevent crash when assigned ColorDialog is deleted. 2021-12-16 00:37:28 +01:00
Ondrej Pokorny
8438ed9d98 Revert "LCL: Add TCustomFrame.CreateParams. Somehow fixes issue #25124."
This reverts commit 20c1e10aca.
2021-11-29 22:05:19 +01:00
Juha
20c1e10aca LCL: Add TCustomFrame.CreateParams. Somehow fixes issue #25124. 2021-11-29 11:26:58 +02:00
Ondrej Pokorny
89162e9c1c LCL: move crScreenCursor to a private const of TScreen so that it isn't used elsewhere 2021-11-26 13:33:48 +01:00
Ondrej Pokorny
d13c67e680 lcl: TForm.ShowModal: override temporary cursors with Screen.Cursor and not crDefault. Issue #39486 2021-11-26 11:23:29 +01:00
wp_xyz
5438db7700 LCL: Give access to dialog icon idDialogShield 2021-11-19 23:34:09 +01:00
Ondrej Pokorny
89cd2a1045 win32: fix setting TMenuItem.Visible := True in the top menu bar. Issue #39458 2021-11-19 16:56:10 +01:00
Ondrej Pokorny
5f82f6ba31 TCustomForm: MakeFullyVisible should use WorkAreaRect as default (sensible and also Delphi-compatible) 2021-11-19 15:17:18 +01:00
Ondrej Pokorny
cbafa07331 TCustomForm: rewrite MoveToDefaultPosition and fix regression after 5d1e0bb8e9 2021-11-19 15:17:18 +01:00
Roland Hahn
5aee9d5c07 Aktualisieren lcl/include/bitbtn.inc 2021-11-07 10:26:45 +00:00
Juha
776e1e91ad LCL-GTK3: Comment out abundant debug lines. 2021-11-06 02:43:33 +02:00