Andreas Kling
0a86366c71
Make a preparation pass for variable-width fonts.
2019-03-06 11:03:10 +01:00
Andreas Kling
086a0fc969
LibGUI: Let GApplication::exec() call exit() instead of returning to main().
...
This sidesteps the problem of having various things on the heap that don't
get torn down. It's obviously not a great solution, but it'll work for now.
2019-03-05 12:48:59 +01:00
Andreas Kling
d932c03843
GTableView: Tweak focus appearance for selected items.
2019-03-04 11:17:25 +01:00
Andreas Kling
06bd2fb2d5
GTableView: Allow initiating keyboard navigation with no current selection.
2019-03-04 10:57:26 +01:00
Andreas Kling
7e955f7b60
GTableView: Tweak the look of column headers.
2019-03-04 10:54:34 +01:00
Andreas Kling
4ea7a51ecd
LibGUI: Improve GStatusBar and GToolBar and share some code via GStyle.
2019-03-04 10:47:54 +01:00
Andreas Kling
ac2a3f7fdf
GTableView: Make the last column header separator look right.
2019-03-04 10:26:16 +01:00
Andreas Kling
f91a20f9d0
LibGUI: Unbreak clearing GTableView selection by clicking outside items.
...
Also, clicking on the column headers should not clear selection.
2019-03-04 10:18:05 +01:00
Andreas Kling
ef4d517429
LibGUI: Tweak focus appearance and add it to GTableView.
2019-03-04 10:12:09 +01:00
Andreas Kling
57fe316e01
Detect the "Logo" (Windows/Apple/whatever) key and use it for window resize.
...
This will be comfortable enough while I'm still developing with emulators.
QEMU keeps eating my "Alt" key presses and it's making things difficult.
2019-03-03 12:56:48 +01:00
Andreas Kling
5e40aa4f1a
LibGUI: Move shortcut actions from GEventLoop to GApplications.
...
I'm gonna want to have nested event loops sooner or later, so let's not
pollute GEventLoop with things that are meant to work globally.
This patch also changes key events to pass around their modifiers as a
bitfield all the way around the system instead of breaking them up.
2019-03-03 12:32:15 +01:00
Andreas Kling
b0c673265a
Applications: Map Alt+F4 to Quit in FileManager/ProcessManager/Terminal.
2019-03-03 02:52:22 +01:00
Andreas Kling
d94abc4f81
FileManager+LibGUI: Add a simple location textbox.
...
The widget layout here is a bit off and needs work.
2019-03-03 00:34:40 +01:00
Andreas Kling
63cdc3d2d5
LibGUI: Support GTableView navigation with Page Up and Page Down.
...
Also base the vertical scrollbar's gutter range on the visible content rect,
making it very similar to a Page Up/Down. Maybe they should be exactly the
same, I don't know.
2019-03-02 23:58:45 +01:00
Andreas Kling
596a5ce5a4
LibGUI+WindowServer: Add app-global keyboard shortcuts.
...
This patch adds a GShortcut class. Each GAction can have a GShortcut which
will cause the event loop to listen for that key combination app-globally
and activate the event in case it's pressed.
The shortcut will also be displayed when the action is added to a menu.
Use this to hook up Alt+Up with the "open parent directory" action in the
FileManager app. :^)
2019-03-02 10:10:06 +01:00
Andreas Kling
574a399347
LibGUI: GTableView should scroll items into view when keyboard navigating.
2019-03-01 14:29:34 +01:00
Andreas Kling
b5dcad932e
LibGUI: Allow basic keyboard navigation in GTableView.
...
Pressing Enter will now "activate" the selected index, meaning that
the model gets a call to activate(GModelIndex).
2019-03-01 13:48:08 +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
9c21874d33
LibGUI: GTableView scrolling ranges should be based on the available area.
...
We have to subtract the headers and scrollbars to get the correct behavior.
2019-03-01 11:04:55 +01:00
Andreas Kling
6c2089c59d
Put miscellaneous debug spam behind #ifdefs.
2019-03-01 10:51:58 +01:00
Andreas Kling
b5e5f26a82
Base: Add Csilla Bold 7x10 variant.
...
It's nice to have a thin and a bold variant to complement each other.
2019-03-01 02:50:50 +01:00
Andreas Kling
567a403683
LibGUI: Tweak GStatusBar margins.
2019-02-28 22:33:39 +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
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
3fe7ddadaf
LibGUI: Clip to paint event rect in most widgets.
2019-02-28 19:34:55 +01:00
Andreas Kling
737a4d2377
LibGUI: Both GToolBar and GStatusBar should have highlight/shadow.
2019-02-28 19:31:37 +01:00
Andreas Kling
c5d88ff0d8
LibGUI: Top line on GStatusBar should be a highlight, not a shadow.
2019-02-28 19:17:08 +01:00
Andreas Kling
fd428d6ed3
SharedGraphics: Make Painter clipping work with translated clip origin.
2019-02-28 18:57:36 +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
28652a0bf7
LibGUI: GTableView was accidentally obscuring the last row.
2019-02-28 16:42:18 +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
62b4f39cd4
LibGUI: GTableView should clear the selection if clicking outside items.
2019-02-28 14:05:02 +01:00
Andreas Kling
6af2ce0f7e
LibGUI: Re-enable the update rect coalescing.
2019-02-28 13:58:04 +01:00
Andreas Kling
7eb42b5ffb
LibGUI: GTableView paints itself completely, no need for auto filling.
2019-02-28 13:57:41 +01:00
Andreas Kling
827ec99a8f
LibGUI: Update GTableView's scrollbar range in response to resize.
2019-02-28 13:25:52 +01:00
Andreas Kling
fd280a6a03
LibGUI: Pad GTableView cells on the right side as well.
2019-02-28 11:31:07 +01:00
Andreas Kling
b4c20789fb
LibGUI: Allow specifying per-column text alignment.
2019-02-28 11:27:04 +01:00
Andreas Kling
40c8dd80d1
LibGUI: Draw separators between GTableView column headers.
2019-02-28 11:04:03 +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
6e571b66f1
ProcessManager: Move ProcessTableModel class to its own files.
2019-02-28 10:20:04 +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
6e70ba7d1d
LibGUI: GWindow should only discard the backing store on actual resize.
2019-02-27 18:52:12 +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
c90962b842
LibGUI: Make toolbars a bit bigger by default.
2019-02-26 11:14:35 +01:00
Andreas Kling
9444ed0117
LibGUI: Remove gradient from the default button style.
...
Buttons actually look nicer without the gradient. :^)
2019-02-26 11:14:07 +01:00
Andreas Kling
ae90043424
WindowServer+LibGUI: Send the window size along with Paint server messages.
...
This way GWindow doesn't need to do synchronous IPC to fetch the appropriate
size for the window's backing store. This is mostly only relevant during
live resize.
2019-02-26 10:53:21 +01:00
Andreas Kling
1effe70543
WindowServer+LibGUI: Fix global mouse tracking with recursive widget trees.
...
Also avoid sending multiple copies of mouse events to global trackers.
2019-02-26 10:34:05 +01:00
Andreas Kling
95cfa49f1b
LibGUI: Make event receivers be weak pointers.
2019-02-26 00:51:49 +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
901b7d5d91
Fix a bunch of compiler warnings. Not all, but a lot.
2019-02-25 19:05:51 +01:00