Andreas Kling
16990fece3
GScrollBar: Improve appearance for curiously-shaped scrollbars.
2019-04-11 13:16:43 +02:00
Andreas Kling
b8062f69d8
LibCore: Add CEvent and make LibGUI/GEvent inherit from it.
2019-04-10 16:56:55 +02:00
Andreas Kling
b8f150457e
LibGUI: Repaint GScrollBar without hover highlight immediately on leave.
2019-04-10 01:50:10 +02:00
Andreas Kling
6306cf5c27
GScrollBar: Add the same hover highlight effect as GButton.
2019-04-06 13:55:56 +02:00
Andreas Kling
c02c9880b6
AK: Add Eternal<T> and use it in various places.
...
This is useful for static locals that never need to be destroyed:
Thing& Thing::the()
{
static Eternal<Thing> the;
return the;
}
The object will be allocated in data segment memory and will never have
its destructor invoked.
2019-04-03 16:52:25 +02:00
Andreas Kling
f249c40aaa
Rename Painter::set_clip_rect() to add_clip_rect().
...
It was confusing to see multiple calls to set_foo() in a row. Since this is
an intersecting operation, let's call it add_clip_rect() instead.
2019-03-29 15:01:54 +01:00
Andreas Kling
c77d369b75
GScrollBar: Make the scrubber size proportional to the scrollable range.
2019-03-29 02:51:19 +01:00
Andreas Kling
c7ab643883
Move LibGUI/GStyle to SharedGraphics/StylePainter.
...
I want to paint some buttons in WindowServer where we don't have LibGUI.
2019-03-28 17:32:38 +01:00
Andreas Kling
d12b6b8677
LibGUI: Tweak GScrollBar gutter color.
2019-03-28 17:29:14 +01:00
Andreas Kling
9fa21fa585
LibGUI: Add a GPainter class that inherits from Painter.
...
This gets rid of the last little piece of LibGUI knowledge in Painter.
2019-03-28 17:19:56 +01:00
Andreas Kling
670e376e27
Tweak the look of various UI surfaces and buttons.
2019-03-27 20:48:23 +01:00
Andreas Kling
108b663618
GScrollBar: Clicking in the gutter should jump directly to that position.
...
I think I like how this feels but I'm not 100% sure yet, so I'm leaving
the old feel in behind an #ifdef.
2019-03-25 05:03:40 +01:00
Andreas Kling
b4da451c9a
WindowServer+LibGUI: Implement automatic cursor tracking.
...
When a mouse button is pressed inside a window, put that window into an
automatic mouse tracking state where all mouse events are sent to that
window until all mouse buttons are released.
This might feel even better if it only cared about the mouse buttons you
actually pressed while *inside* the windows to get released, I don't know.
I'll have to use it for a while and see how it's like.
2019-03-24 15:01:56 +01:00
Andreas Kling
fd428d6ed3
SharedGraphics: Make Painter clipping work with translated clip origin.
2019-02-28 18:57:36 +01:00
Andreas Kling
15fb917f28
Convert more RetainPtr use to Retained.
2019-02-25 16:04:08 +01:00
Andreas Kling
d353c7c3d6
LibGUI: Support different button styles.
...
I want to try an MS Office 97 "CoolBar" inspired look for my toolbars.
This is only the painting support, we still need hover events to implement
the actual effect.
2019-02-20 09:22:38 +01:00
Andreas Kling
8321908abe
LibGUI: Tweak the scrollbar and button styles a bit.
2019-02-17 12:08:28 +01:00
Andreas Kling
10d6f9ce31
SharedGraphics: Removed some unused stuff from Font.
2019-02-17 00:36:55 +01:00
Andreas Kling
d333013a54
LibGUI: Support horizontal GScrollBars as well.
2019-02-10 12:27:21 +01:00
Andreas Kling
8313ce57dc
LibGUI: Improve GScrollBar button look a bit.
...
The arrows look better when they're sharp. :^)
2019-02-10 11:57:19 +01:00
Andreas Kling
29f2a22d34
LibGUI: Minor cleanup in GScrollBar.
2019-02-10 08:23:03 +01:00
Andreas Kling
f7831f8c76
LibGUI: Draw GScrollBar buttons with a disabled look when appropriate.
2019-02-10 07:37:02 +01:00
Andreas Kling
e354c08c98
LibGUI: Share code for widget rendering styles in a GStyle class.
...
Since GScrollBar wants its internal buttons to look like GButtons,
let's share the painting code between them.
2019-02-10 07:11:01 +01:00
Andreas Kling
9ea2131adf
LibGUI: Support dragging the GScrollBar scrubber.
...
This was pleasantly easy to implement with the global mouse tracking. :^)
2019-02-10 06:51:01 +01:00
Andreas Kling
464873f8b5
LibGUI: Draw some cute arrows on the GScrollBar buttons.
2019-02-10 06:10:27 +01:00
Andreas Kling
6a3ff7efc5
GScrollBar: Start looking a bit more like a proper scrollbar.
...
And hook up FileManager's DirectoryView with its scrollbar so it actually
causes the directory view to shift up and down. Very cool. :^)
2019-02-09 11:29:59 +01:00
Andreas Kling
1f355f2a79
LibGUI: Start working on a GScrollBar.
...
This widget is far from finished, but it's off to a good start.
Also added a GResizeEvent and GWidget::resize_event() so that widgets
can react to being resized.
2019-02-09 11:19:38 +01:00