Tibor Nagy
0086daf9b0
LibGUI: Scroll selected treeview entries into view
2020-02-24 15:12:47 +01:00
Liav A
43d570a1e3
AK: Add offset_in_page() method in PhysicalAddress class
...
This method is useful for later usage.
2020-02-24 11:27:03 +01:00
Tibor Nagy
5f913c67d9
LibGUI: Implement keyboard and mouse wheel events for SpinBox
2020-02-24 10:40:32 +01:00
Andreas Kling
3252a6925e
LibGUI: Fix silly nullptr dereference in MessageBox::show()
...
Since we take the parent object as a raw pointer, we should handle the
case where it's null.
2020-02-24 09:15:51 +01:00
Andreas Kling
6c5100b644
LibGUI: Add helper for constructing new TabWidget tabs
...
This patch adds the following convenience helper:
auto tab_widget = GUI::TabWidget::construct();
auto my_widget = tab_widget->add_tab<GUI::Widget>("My tab", ...);
The above is equivalent to:
auto tab_widget = GUI::TabWidget::construct();
auto my_widget = GUI::Widget::construct(...);
tab_widget->add_widget("My tab", my_widget);
2020-02-23 12:27:53 +01:00
Andreas Kling
c5d913970a
LibGUI: Remove parent parameter to GUI::Widget constructor
2020-02-23 12:27:53 +01:00
Tibor Nagy
6fcf4e48f8
LibGfx: Fix accidentally hardcoded font height in Font::clone()
2020-02-23 12:18:17 +01:00
Andreas Kling
bfd86c4631
LibGUI: Make GUI::Frame have the 2px sunken container look by default
...
The overwhelming majority of GUI::Frame users set the same appearance,
so let's just make it the default.
2020-02-23 11:10:52 +01:00
Andreas Kling
3d20da9ee4
Userspace: Use Core::Object::add() when building interfaces
2020-02-23 11:10:52 +01:00
Andreas Kling
00bf68adc6
LibGUI: Reduce header dependencies of ComboBox
2020-02-23 11:10:52 +01:00
Andreas Kling
45c25ffecd
LibGUI: Use Core::Object::add() a whole bunch
2020-02-23 11:10:52 +01:00
Andreas Kling
428582e805
LibGUI: Don't require passing a parent to widget constructors
...
This is a step towards using Core::Object::add<T> more, which takes
care of parenting the newly created child automatically.
2020-02-23 11:10:52 +01:00
Andreas Kling
d9e459293b
LibCore: Add Core::Object::add<T> helper for creating child objects
...
Consider the old pattern for creating a Core::Object parent and child:
auto parent = Core::Object::construct(...);
auto child = Core::Object::construct(..., parent);
The above was an artifact of the pre-reference-counting Object era.
Now that objects have less esoteric lifetime management, we can replace
the old pattern with something more expressive:
auto parent = Core::Object::construct(...);
auto child = parent->add<Core::Object>(...);
This reads a lot more naturally, and it also means we can get rid of
all the parent pointer arguments to Core::Object subclass constructors.
2020-02-23 11:10:52 +01:00
Andreas Kling
66bf10acef
LibGUI: Add some missing widget classes to Forward.h
2020-02-23 11:10:52 +01:00
Andreas Kling
98fd6b8767
LibGfx: Add a way to construct an empty Font with arbitrary metrics
2020-02-23 11:10:52 +01:00
Shannon Booth
a52b3e8f2a
LibC: Implement strchrnul()
2020-02-22 21:36:54 +01:00
Andreas Kling
a406a8c7d2
LibGUI: Remove debug spam when resizing table columns
2020-02-22 21:27:08 +01:00
Andreas Kling
28f1486627
LibCore: Log a more helpful message when Socket::connect() fails
...
Fixes #1272 .
2020-02-22 16:41:31 +01:00
Andreas Kling
82fd09e8fe
LibCore: Fix wrong return value in Core::Socket::destination_address()
2020-02-22 16:38:10 +01:00
Andreas Kling
99978b771d
LibGUI: Take scroll offset into account when manipulating table headers
...
Fixes #1271 .
2020-02-22 15:04:02 +01:00
Andreas Kling
34b81f17c2
LibELF: Avoid unnecessarily recomputing loop boundaries over and over
2020-02-22 11:25:15 +01:00
Tibor Nagy
2eb9620415
LibGUI: Improve TreeView keyboard navigation
...
This commit adds two new behaviour to the key event handler of
the TreeView widget:
Pressing left now jumps to the parent node if the current treenode
is closed or has no children.
Pressing right now jumps to the first children node if the current
treenode is open.
2020-02-21 20:18:44 +01:00
Andreas Kling
c4c1ad2289
Toolchain: Build demangling into LibC except during toolchain build
2020-02-21 18:54:57 +01:00
Andreas Kling
4198061534
LibELF: Use the ELF_STRTAB string constant instead of hard-coding
2020-02-21 16:16:23 +01:00
Tibor Nagy
6e2a16c8a8
LibGfx+LibGUI: Allow theming the focus outline of AbstractButton
2020-02-20 14:19:30 +01:00
Tibor Nagy
c8bc53e987
LibGfx+LibGUI: Allow theming the text cursor
2020-02-20 14:19:30 +01:00
Andreas Kling
88b9fcb976
AK: Use size_t for ByteBuffer sizes
...
This matches what we already do for string types.
2020-02-20 13:20:34 +01:00
Andreas Kling
cd495786a8
LibC: Implement crappy version of pread()
...
This patch adds a crappy pread() just to get "git" working locally.
A proper version would be implemented in the kernel so that we don't
have to mess with the file descriptor's offset at all.
2020-02-20 06:59:23 +01:00
Andreas Kling
7c12d66f61
LibC: Stub out getpass()
2020-02-20 06:58:48 +01:00
Andreas Kling
c3b09c7242
LibC: Add h_errno and stub out getservbyname()
2020-02-20 06:58:16 +01:00
Andreas Kling
cf4da485e6
LibC: Add inet_ntoa()
2020-02-20 06:57:47 +01:00
Andreas Kling
0ba458cfa0
Kernel+LibC: Add SO_REUSEADDR macro
...
Note that this is not actually implemented, I'm just defining it.
2020-02-20 06:57:01 +01:00
Andreas Kling
2a1cad73fe
LibC: Add an empty <netinet/tcp.h>
...
This is enough to placate anyone who includes it without actually using
anything from it. :^)
2020-02-20 06:51:28 +01:00
Andreas Kling
4ddae2c069
LibC: Add some missing macros to inttypes.h
2020-02-20 06:51:16 +01:00
Andreas Kling
124c588f81
LibC: Don't assert on fflush(nullptr)
...
We're supposed to flush all open streams when this happens, but since
we don't know how to do that yet, let's just log a FIXME and not crash.
2020-02-19 23:12:29 +01:00
Andreas Kling
e0d589c074
LibC: Add hack implementation of gmtime_r() matching gmtime()
2020-02-19 23:09:37 +01:00
Andreas Kling
26fb3f7269
LibELF: Short-circuit symbolication when there are no symbols
2020-02-19 22:18:41 +01:00
Andreas Kling
4a66de580e
LibC: Always inline the printf character helpers
2020-02-19 22:11:04 +01:00
Andreas Kling
eaa680ab8e
WindowServer+LibGUI: Force full window repaints after theme change
...
We were not repainting windows that were occluded at the time of the
theme changing. This patch adds a way to bypass occlusion testing when
invalidating window rects.
Fixes #1249 .
2020-02-19 16:46:28 +01:00
Liav A
8a2dc5d188
LibC: Fix big endian definitions
2020-02-19 16:08:28 +01:00
Tibor Nagy
33864ab715
LibGUI: Update TextEditor to use ruler colors from the system theme
2020-02-19 12:24:39 +01:00
Tibor Nagy
5cf5ddf6cb
LibGfx: Add ColorRoles for rulers
2020-02-19 12:24:39 +01:00
Andreas Kling
ef38c49619
WindowServer+LibGUI+LibHTML: Fix build with -std=c++2a
2020-02-19 12:03:01 +01:00
Sergey Bugaev
e0ecfc0c92
LibC: Statically allocate allocators
...
These allocators take up 660 bytes, combined. Let's not waste
two physical pages for them in each process :^)
2020-02-18 11:23:27 +01:00
Andreas Kling
189fa68c0b
LibGUI: Expose GUI::Menu::menu_id() and also allow forced realization
...
Menu realization is when we instruct WindowServer to create the
server-side menu objects on our behalf.
2020-02-17 20:04:05 +01:00
thatlittlegit
4755f355c6
LibGUI: Add Yes/No and Yes/No/Cancel MessageBoxes
2020-02-17 16:28:21 +01:00
Andreas Kling
a78bc5e6fc
LibGUI: Generate NotificationServer IPC messages during build
...
I hacked this to skip using flock since NotificationServer and LibGUI
depend on each other. There's probably a better solution.
2020-02-16 22:37:04 +01:00
Andreas Kling
30549502ca
LibGUI: Generate NotificationServerEndpoint.h if needed
2020-02-16 22:28:48 +01:00
Andreas Kling
9f54ea9bcd
NotificationServer: Add a system service for desktop notifications
...
This patch adds NotificationServer, which runs as the "notify" user
and provides an IPC API for desktop notifications.
LibGUI gains the GUI::Notification class for showing notifications.
NotificationServer is spawned on demand and will unspawn after
dimissing all visible notifications. :^)
Finally, this also comes with a small /bin/notify utility.
2020-02-16 21:58:17 +01:00
Andreas Kling
a6e69bda71
AK: Add basic Traits for RefPtr
...
This allows RefPtr to be stored in a HashTable<RefPtr<T>> :^)
It's unfortunate about the const_casts. We'll need to fix HashMap::get
to play nice with non-const Traits<T>::PeekType at some point.
2020-02-16 21:58:17 +01:00