Andreas Kling
274b0260f7
Kernel: Don't send SIGCHLD to parent process if he has SA_NOCLDWAIT set.
...
Just transfer ownership of the dead process to the colonel and let the
scheduler reap it on next iteration.
2019-03-01 15:52:05 +01:00
Andreas Kling
5f4245789d
FileManager: Allow launching processes by activating an executable file.
2019-03-01 14:57:42 +01:00
Andreas Kling
1ab995bfff
FileManager: Keep the window title in sync with the current path.
2019-03-01 14:34:53 +01:00
Andreas Kling
ac8fb5da4c
FileManager: Port to GTableModel/GTableView.
...
Replace the custom DirectoryView widget with a GTableView subclass.
This was pleasantly straightforward and it's so cool seeing the huge
increase in app quality from GTableView. :^)
2019-03-01 13:55:48 +01:00
Andreas Kling
e1d0a3f226
LibGUI: Let GTableModel handle the selection instead of doing it virtually.
...
It's silly to force every subclass models to deal with selection.
2019-03-01 13:03:13 +01:00
Andreas Kling
bff5b71467
LibGUI: Add a GModelNotification class that views will receive.
...
I don't want to use GEvent here since these need to be synchronous
and mixing sync and async GEvents would be stupid.
2019-02-28 21:30:17 +01:00
Andreas Kling
322f49caec
ProcessManager: Use icons for the process priorities.
2019-02-28 21:04:26 +01:00
Andreas Kling
b132150799
LibGUI: Support bitmaps in GTableView cells.
...
Use this to add an icon for each process in the ProcessManager.
Right now they all use a generic gear icon, but I'd like to have
per-process icons, obviously. :^)
2019-02-28 20:16:10 +01:00
Andreas Kling
8eefdbdce8
LibGUI: Add horizontal scrollbar to GTableView.
...
Now we can scroll content in both directions if it won't fit in the view.
2019-02-28 17:58:53 +01:00
Andreas Kling
2f266ef649
ProcessManager: Don't show the colonel task. :^)
2019-02-28 16:49:02 +01:00
Andreas Kling
75fabef57b
LibGUI: Add GVariant class and use it for table model data.
2019-02-28 16:20:29 +01:00
Andreas Kling
c1f5f2694b
ProcessManager: Add process owner's username to table view.
2019-02-28 14:12:53 +01:00
Andreas Kling
62b4f39cd4
LibGUI: GTableView should clear the selection if clicking outside items.
2019-02-28 14:05:02 +01:00
Andreas Kling
82c22a7484
ProcessManager: Add "continue" action that sends SIGCONT.
2019-02-28 13:02:55 +01:00
Andreas Kling
c5a32d139a
ProcessManager: Add a "stop" action that sends SIGSTOP to a process.
2019-02-28 12:06:19 +01:00
Andreas Kling
8a0d77f576
ProcessManager: Bump the initial window size to "pretty big"
2019-02-28 11:32:50 +01:00
Andreas Kling
b4c20789fb
LibGUI: Allow specifying per-column text alignment.
2019-02-28 11:27:04 +01:00
Andreas Kling
ce7019f38c
ProcessManager: Add some more per-process columns.
2019-02-28 11:16:27 +01:00
Andreas Kling
dc9f8a9361
LibGUI: Take ProcessManager's process view and turn it into GTableView.
...
Make it sufficiently generic that it can be reused for any table data. :^)
2019-02-28 10:57:09 +01:00
Andreas Kling
b3ae1163ef
ProcessManager: Use a scrollbar-adjusted position for hit testing.
2019-02-28 10:27:29 +01:00
Andreas Kling
c49ceb5a1f
ProcessManager: Make the process table view scrollable while header stays.
2019-02-28 10:24:04 +01:00
Andreas Kling
6e571b66f1
ProcessManager: Move ProcessTableModel class to its own files.
2019-02-28 10:20:04 +01:00
Andreas Kling
a202ed88f6
ProcessManager: Show per-process CPU usage percentage.
2019-02-28 10:09:43 +01:00
Andreas Kling
166aadc4e1
ProcessManager: Start working on a graphical process manager.
...
I need a table view widget for this thing, so I'm also using this to
prototype a model/view thingy.
2019-02-28 01:43:50 +01:00
Andreas Kling
e421c10735
More compat work towards porting vim.
...
It now builds and runs in the small-featureset configuration. :^)
2019-02-27 00:02:01 +01:00
Andreas Kling
424368034b
LibC: Make errno codes be #defines instead of enum values.
...
It turns out that a lot of 3rd party software does things like:
#ifdef EINTR
...
#endif
This won't work if EINTR is an enum. So much for that nice idea.
2019-02-26 22:40:35 +01:00
Andreas Kling
3f29a12d90
More compat work. Rename libraries from LibFoo.a => libfoo.a
...
This makes it more straightforward to build a cross-compiler toolchain.
Also move math stuff from LibC to LibM.
2019-02-26 13:30:57 +01:00
Andreas Kling
51a3f20445
FileManager: Don't crash when clicking on a forbidden directory.
2019-02-26 00:59:37 +01:00
Andreas Kling
9624b54703
More moving towards using signed types.
...
I'm still feeling this out, but I am starting to like the general idea.
2019-02-25 22:06:55 +01:00
Andreas Kling
d7753c7c8d
Move over to building all of userspace with i686-pc-serenity-g++.
2019-02-22 14:45:14 +01:00
Andreas Kling
75b100673f
Switch over to building everything with i686-elf-g++.
2019-02-22 10:45:32 +01:00
Andreas Kling
afa6f88039
Throw away the Clock app since we now have a clock in the menubar. :^)
2019-02-22 10:42:29 +01:00
Andreas Kling
16cd4585cd
WindowServer: Oops, forgot to plumb through the base size for incresize.
2019-02-21 10:11:12 +01:00
Andreas Kling
6084cd0c56
Add concept of size increments to windowing system.
...
Use this to implement incremental resizing for Terminal so that we only
ever resize to fit a perfect number of rows and columns.
This is very nice. :^)
2019-02-21 00:21:23 +01:00
Andreas Kling
0aaec6b19a
Support resizing the Terminal app.
...
I set it up so that TIOCSWINSZ on a master PTY gets forwarded to the slave.
This feels intuitively right. Terminal can then use that to inform the shell
or whoever is inside the slave that the window size has changed.
TIOCSWINSZ also triggers the generation of a SIGWINCH signal. :^)
2019-02-20 23:38:20 +01:00
Andreas Kling
0ca3112301
FileManager: Fix glitch in the alternating directory item backgrounds.
2019-02-20 22:10:28 +01:00
Andreas Kling
fa02d2a39b
Rework the rendering model so that clients instantiate backing stores.
...
This makes interactive resizing work a lot better, althought it's still not
perfect. There are still glitches and unpleasant flashes of zeroed memory.
2019-02-20 22:08:14 +01:00
Andreas Kling
af7eb5c89c
Launcher: Let's use CoolBar style buttons in here for now.
...
This will be helpful for testing the hover events.
2019-02-20 09:33:59 +01:00
Andreas Kling
b704d3d295
LibGUI: Add a GToolBar class that can be populated with GActions.
...
The same action can be added to both a menu and a toolbar.
Use this to put a toolbar into FileManager. This is pretty neat. :^)
2019-02-20 02:39:46 +01:00
Andreas Kling
420b7bd55f
FileManager: Add an icon for socket files.
2019-02-19 03:13:43 +01:00
Andreas Kling
9b71307d49
WindowServer: Support windows with alpha channels. And per-WSWindow opacity.
...
This patch also adds a Format concept to GraphicsBitmap. For now there are
only two formats: RGB32 and RGBA32. Windows with alpha channel have their
backing stores created in the RGBA32 format.
Use this to make Terminal windows semi-transparent for that comfy rice look.
There is one problem here, in that window compositing overdraw incurs
multiple passes of blending of the same pixels. This leads to a mismatch in
opacity which is obviously not good. I will work on this in a later patch.
The alpha blending is currently straight C++. It should be relatively easy
to optimize this using SSE instructions.
For now I'm just happy with the cute effect. :^)
2019-02-19 01:42:53 +01:00
Andreas Kling
8eedbbc9ca
Prune compiler flags a bit. Let's go with -march=i686 for now.
2019-02-17 15:17:21 +01:00
Andreas Kling
4b15dd2bca
LibGUI: Rename GEventLoop::exit() and GApplication::exit() to quit().
...
These functions don't exit immediately, but rather on the next iteration
of the event loop.
Since exit() is already used by the standard library, let's call it quit()
instead. That way, saying exit() means the same thing here as anywhere else.
2019-02-17 09:59:56 +01:00
Andreas Kling
df6aaaeeef
Enable -Wimplicit-fallthrough.
2019-02-15 12:39:16 +01:00
Andreas Kling
022f7790db
Use modern C++ attributes instead of __attribute__ voodoo.
...
This is quite nice, although I wish [[gnu::always_inline]] implied inline.
Also "gnu::" is kind of a wart, but whatcha gonna do.
2019-02-15 12:30:48 +01:00
Andreas Kling
f33f094483
FileManager: Add some menus.
2019-02-14 08:52:12 +01:00
Andreas Kling
f529b845ec
WindowServer: Convert entire API to be message-based.
...
One big step towards userspace WindowServer. :^)
2019-02-14 01:21:32 +01:00
Andreas Kling
fd99382004
Launcher: Remove button for guitest.
2019-02-12 15:24:25 +01:00
Andreas Kling
d74b131c27
Add a little About app and hook it up to the system menu's "About..." entry.
...
Added icons and customizable text alignment to GLabel.
2019-02-12 15:23:07 +01:00
Andreas Kling
d6326d6c2e
LibGUI: Add a GFontDatabase class that lets you enumerate fonts and more.
...
"More" in this case being also giving you the ability to load a font by name.
Use this as backend for Terminal's font menu. :^)
2019-02-12 14:36:19 +01:00