Andreas Kling
b181263b9f
GTreeView: Factor paint traversal into a shared function.
...
This way it can be used by hit testing as well, guaranteeing that everything
stays consistent.
2019-03-29 17:30:27 +01:00
Andreas Kling
6b72c62c5f
GFileSystemModel: Add a "DirectoriesOnly" mode.
2019-03-29 17:14:03 +01:00
Andreas Kling
4d3c5fd83e
LibGUI: Start working on a GFileSystemModel and hook that up in FileManager.
...
This is a read-only model for the tree view, at least initially. We'll see
where we take it from there once it's more polished.
2019-03-29 17:03:30 +01: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
474340b9cd
GTreeView: A bunch of work on the tree view.
2019-03-29 14:46:53 +01:00
Andreas Kling
d02238af48
LibGUI: Expand GModelIndex a bit, adding internal data and model pointers.
...
This will be useful for implementing more complicated models.
2019-03-29 04:58:15 +01:00
Andreas Kling
12ec55ee74
LibGUI: Start working on a GTreeView class.
2019-03-29 04:00:07 +01:00
Andreas Kling
add38b3981
GModel: Add GModelIndex argument to row_count() and column_count().
...
This is in preparation for supporting hierarchical models.
2019-03-29 03:27:03 +01:00
Andreas Kling
34118aaaca
IRCClient: Tweak size of window input boxes.
...
Now that GTextEditor is a GFrame, we need to make some room here for the
frame around the editor. :^)
2019-03-29 03:06:07 +01:00
Andreas Kling
4454392929
GScrollableWidget: Make sure the corner widget is positioned correctly.
2019-03-29 03:02:31 +01:00
Andreas Kling
2e0f4da1f7
StylePainter: Fix underdraw in new button style.
2019-03-29 02:57:33 +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
a5135dbf01
LibGUI: Remove debug spam in GWidget::spans_entire_window_horizontally().
2019-03-29 02:22:17 +01:00
Andreas Kling
d48f486634
LibGUI: Don't draw left and right side of surfaces that span entire window.
...
In other words, if a surface stretches from the left side of the window
all the way to the right side, skip shading and highlighting the sides.
This makes widgets blend together just slightly with the window. :^)
2019-03-29 02:20:22 +01:00
Andreas Kling
9d7a513681
GTextEditor: Keep tweaking the single-line look.
2019-03-29 01:57:29 +01:00
Andreas Kling
5d72cf5a3f
LibGUI: Improve GFrame's look for Container shapes.
...
This is now starting to look like a proper container. Very nice :^)
2019-03-28 20:15:13 +01:00
Andreas Kling
f939fb7eb7
Userland: Add a simple GFrame testing window to guitest2.
2019-03-28 18:52:03 +01:00
Andreas Kling
6edcf2f16e
WindowServer: Use StylePainter to draw the window close buttons.
2019-03-28 17:46:40 +01:00
Andreas Kling
e2cd7529ab
StylePainter: Tweak ButtonStyle::Normal highlights.
2019-03-28 17:46:24 +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
326c6fd607
WindowServer: Tweak border color of active and dragging windows.
2019-03-28 17:07:58 +01:00
Andreas Kling
3dc4255eb4
LibGUI: Use GFrame to draw the frames around GItemView and GTableView.
2019-03-28 16:58:29 +01:00
Andreas Kling
1fc03a7644
LibGUI: Make GScrollableWidget a GFrame and fix up GTextEditor for it.
2019-03-28 16:14:26 +01:00
Andreas Kling
cb296ffede
LibGUI: Add a GFrame class that can be inherited by framey widgets.
...
This will gather the code for painting sunken/raised frames etc in a single
place and make it easier add a bit of pleasant shading to UI's. :^)
2019-03-28 15:30:29 +01:00
Andreas Kling
b6c5bd3d28
FileManager: Add back/forward buttons (placeholders.)
2019-03-28 03:38:23 +01:00
Andreas Kling
6e7d5e0114
Base: I drew a new filetype-image icon based on my cat friend.
2019-03-27 21:15:01 +01:00
Andreas Kling
670e376e27
Tweak the look of various UI surfaces and buttons.
2019-03-27 20:48:23 +01:00
Andreas Kling
d71820a382
LibGUI: Make the buttons in GInputBox and GMessageBox slightly taller.
2019-03-27 20:47:48 +01:00
Andreas Kling
d63528197b
Base: Add some icons and tweak some existing ones.
2019-03-27 19:41:39 +01:00
Andreas Kling
0058da734e
Kernel: Add Inode::truncate(size).
...
- Use this to implement the O_TRUNC open flag.
- Fix creat() to pass O_CREAT | O_TRUNC | O_WRONLY.
- Make sure we truncate wherever appropriate.
2019-03-27 16:42:30 +01:00
Andreas Kling
e9f2cc3595
Kernel: Save/restore the SSE context on context switch.
2019-03-27 15:27:45 +01:00
Andreas Kling
44e1e7423f
Kernel: Put a bunch of debug spam behind #ifdefs.
2019-03-27 15:07:12 +01:00
Andreas Kling
56f7b392c1
WindowServer: Move the CPU usage graph updates to a secondary thread.
...
This avoids blocking the main thread on filesystem access, which created
noticeable stutters during compilation.
2019-03-27 14:59:22 +01:00
Andreas Kling
a2fe5f8517
Kernel: Don't disable interrupts during Process destruction.
2019-03-27 14:38:32 +01:00
Andreas Kling
1592612a60
Kernel: Don't disable interrupts during Thread destruction.
2019-03-27 14:30:13 +01:00
Andreas Kling
d5508e5116
Ext2FS: Avoid a lot of redundant writes to inode block arrays.
2019-03-27 14:24:37 +01:00
Andreas Kling
750d79dcaf
Kernel: Initialize the CPU to allow SSE on startup.
...
I still need to add support for SSE to the context switching code, but now
at least one process can use it.
2019-03-27 13:40:00 +01:00
Andreas Kling
5808322556
Give the emulator testing environments 128 MB of RAM.
...
I'm working on porting GCC and it needs a fair bit of memory to run.
2019-03-27 13:02:29 +01:00
Andreas Kling
1577217ce1
LibC: Let's remember that headers are in C.
2019-03-27 12:53:05 +01:00
Andreas Kling
23bb276fcd
LibC: Run constructors on process startup.
...
Cooperate with the compiler to generate and execute the _init_array list
of constructor functions on userspace program statup. This took two days
to get working, my goodness. :^)
2019-03-27 12:48:21 +01:00
Andreas Kling
f1a2cb0882
LibC: Fix fread() EOF behavior with ungetc().
2019-03-27 05:13:28 +01:00
Andreas Kling
e145344767
LibC: Remove the validate_mallocation() stuff since Binutils hates it.
2019-03-27 05:02:02 +01:00
Andreas Kling
75207ddffd
Kernel: Load ELF executable pages lazily when possible.
...
This currently only works for "normal" processes created by fork().
It does not work for create_user_process() processes spawned by the
kernel, as those are a bit special during construction.
2019-03-27 04:01:15 +01:00
Andreas Kling
baab9f4402
LibC: Implement atexit() and strtoul().
2019-03-27 01:55:39 +01:00
Andreas Kling
2a858719be
LibM: Stub out ldexp().
2019-03-27 01:41:55 +01:00
Andreas Kling
d1e55fb4d9
LibC: Add ungetc() and automatically flush streams on fclose().
2019-03-27 01:40:55 +01:00
Andreas Kling
0c2face7b0
LibC: Add creat(), execvp() resolution, and exec*() environment inheritance.
2019-03-27 01:39:13 +01:00
Andreas Kling
fb7c7829c2
Terminal: Export a simple PATH=/bin:/usr/bin to shells.
2019-03-27 01:36:33 +01:00