summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI/Splitter.cpp
AgeCommit message (Collapse)Author
2022-08-09LibGUI+LibGfx: Let Desktop::the() set widget effectsthankyouverycool
Scrolling can now be set Coarse or Smooth system-wide, Splitter knurls and Tab accents toggled on and off, and Menu flashing disabled.
2022-08-05LibGUI+Applications: Govern Splitter resizing by opportunistic growththankyouverycool
This patch replaces the concept of fixed resizees with opportunistic ones which use the new SpecialDimension::OpportunisticGrow UISize. This lets us simplify splitter resize code and take advantage of the layout system's automatic calculations for minimum size and expansion. Functionally the same as before, but fixes Splitter's unintended ability to grow window size.
2022-08-05LibGUI: Calculate maximum primary size for Splitter resizeesthankyouverycool
2022-06-28LibGUI: Use new layout system in SplitterFrHun
2022-03-12Libraries: Use default constructors/destructors in LibGUILenny Maiorani
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules "The compiler is more likely to get the default semantics right and you cannot implement these functions better than the compiler."
2022-02-23LibGUI+Apps: Adjust Splitter spacingsthankyouverycool
Different thread highlights between widgets lead to different visual weights between splitters, even when they have the same width or height. This means some splitters look best at odd sizes while others even. This sets the default spacing to the most commonly used, depending on orientation, and adjusts spacing for a few apps based on the new paint rect. The most consistent look across apps requires some manual tweaking occassionally. Knurlheads, use your discretion!
2022-02-23LibGUI+Apps: Prevent Splitter children from being unresizablethankyouverycool
Splitters could be resized in such an order that all their remaining children were fixed size, leading to unfillable gaps on resize events. HackStudio and TextEditor already had logic to handle this edge case, so this patch factors it into a general solution for all Splitters. At least one widget is now guaranteed to be resizeable after a child is removed.
2022-02-23LibGUI+Apps: Let Splitters select which resizee to set fixedthankyouverycool
This gives Splitters more versatility when the right resizee is intended to remain fixed or be toggled on and off.
2022-02-23LibGUI: Adjust grabbable rect between Splitter widgetsthankyouverycool
Previously, the rect began on the edge of the first widget instead of immediately after, causing an overpaint visible on hover.
2021-11-03LibGUI+FileManager: Clarify Widget margins nameFrHun
Even though they are called content_margins, they are actually only ever used to determine where a Widget is supposed to be grabbable. So all methods and members are renamed accordingly.
2021-10-27Everywhere: Rename left/right-click to primary/secondaryFiliph Sandström
This resolves #10641.
2021-07-10LibGUI: Only repaint grabbable part of Splitter when hovered/unhoveredAndreas Kling
Before this change, we would repaint the Splitter and all of its split children when hovering over it. Now we only repaint the grabbable part.
2021-06-08Everywhere: Replace Vector<T*> with nonnull entries with Vector<T&>Ali Mohammad Pur
2021-05-26LibGUI: Paint some knurling in the middle of GUI::SplitterAndreas Kling
This makes splitters stand out visually so you can actually spot them. Before this, you had to guess/know where they were, which was weird. The look of the knurling is the same as GUI::ResizeCorner, to build on the established visual language.
2021-05-26LibGUI: Have GUI::Splitter track all grabbable areasAndreas Kling
Instead of computing the grabbable areas on the fly in mouse event handlers, we now figure out which parts of the splitter are grabbable when something moves around, and then remember it. This makes the code a lot easier to follow.
2021-05-13LibGUI/Splitter: Support setting minimum resizee sizeJelle Raaijmakers
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-01-12Libraries: Move to Userland/Libraries/Andreas Kling