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
Andreas Kling
3085e400bc
LibGUI: Add GAction class and make GMenu deal in actions rather than strings.
2019-02-12 14:09:48 +01:00
Andreas Kling
a5a7ea3d1e
Base: Rename Liza8x10 to LizaThin8x10.
2019-02-12 13:31:00 +01:00
Andreas Kling
111589a558
Kernel: Make sure processes always start out with fds 0, 1 and 2 open.
...
If we don't have a TTY for the process, fall back to /dev/null.
2019-02-12 11:25:25 +01:00
Andreas Kling
4b8133e925
WindowServer: Clean up any menu objects on process exit.
...
..and now that this works, implement the Quit menu action in Terminal. :^)
2019-02-12 10:41:09 +01:00
Andreas Kling
db98327bdc
Plumb menu item activation events from WindowServer to clients.
...
GMenu now has an "on_item_activation" callback that fires whenever one
of its items are activated. The menu item identifier is used to distinguish
between items.
Use this to implement font switching in Terminal. :^)
2019-02-12 10:08:35 +01:00
Andreas Kling
15b4c9f9f1
WindowServer: More work on the menu system.
...
Menus are now tied to a Process (by WeakPtr.) This will allow us to pass
notifications to the correct event stream.
2019-02-12 08:39:19 +01:00
Andreas Kling
133706d697
Add API's and plumbing for WindowServer clients to make menus.
2019-02-12 00:52:19 +01:00
Andreas Kling
757429fb55
LibGUI: More work on client-side menus.
2019-02-11 15:37:12 +01:00
Andreas Kling
c75ecaae32
Terminal: Move the notifier into the Terminal class.
2019-02-11 15:07:05 +01:00
Andreas Kling
3351f1ccc1
Port all apps to GApplication.
2019-02-11 14:56:23 +01:00
Andreas Kling
5f288014d4
WindowServer: More work on menus.
2019-02-11 10:08:54 +01:00
Andreas Kling
1511afc4e2
LibGUI: Add GWindow::move_to().
2019-02-11 06:09:54 +01:00
Andreas Kling
052a101cc5
Terminal: Fix lagged full flush after scrolling the whole buffer.
...
Now that we're using the lazy rendering model of LibGUI, we can't wait until
paint_event() to decide how much we want to update. :^)
2019-02-10 14:47:09 +01:00
Andreas Kling
53d34a0885
Port Terminal to LibGUI.
...
To facilitate listening for action on arbitrary file descriptors,
I've added a GNotifier class. It's quite simple but very useful:
GNotifier notifier(fd, GNotifier::Read);
notifier.on_ready_to_read = [this] (GNotifier& fd) {
// read from fd or whatever else you like :^)
};
The callback will get invoked by GEventLoop when select() says we
have something to read on the fd.
2019-02-10 14:28:39 +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
2def3d8d3f
LibGUI: Start adding an automatic widget layout system.
...
My needs are really quite simple, so I'm just going to add what I need
as I go along. The first thing I needed was a simple box layout with
widgets being able to say whether they prefer fixed or fill for both
their vertical and horizontal sizes.
I also made a simple GStatusBar so FileManager can show how many bytes
worth of files are in the current directory.
2019-02-10 11:07:13 +01:00
Andreas Kling
2cf1dd5b6f
Move apps into a top-level Applications/ directory.
2019-02-10 08:35:01 +01:00