Commit graph

133 commits

Author SHA1 Message Date
Andreas Kling
c3bb84239e TextEditor: Show the open filename in the window title. 2019-03-07 01:08:07 +01:00
Andreas Kling
ca65ca2f2d TextEditor: Show the current cursor position in the statusbar. 2019-03-07 00:46:29 +01:00
Andreas Kling
9158de6c41 Begin working on a graphical TextEditor.
It's gonna be a wrapper around a new GTextEditor widget so I can easily
reuse the functionality anywhere I need it. :^)
2019-03-07 00:31:06 +01:00
Andreas Kling
3729f7cc6a About: Use Katica Bold for displaying the system name. :^) 2019-03-06 22:39:49 +01:00
Andreas Kling
7df1121e1c LibGUI: GTableModel::data() should take a GModelIndex instead of int,int. 2019-03-06 19:56:47 +01:00
Andreas Kling
b46c7da0a4 FontEditor: Don't crash when clicking on the unused part of a glyph. 2019-03-06 19:04:30 +01:00
Andreas Kling
66a5ddd94a More work on the variable-width font support.
Katica is now the default system font, and it looks quite nice. :^)
I'm gonna need to refine the GTextBox movement stuff eventually,
but it works well-enough for basic editing now.
2019-03-06 14:06:40 +01:00
Andreas Kling
7f6c81d90f Implement basic support for variable-width fonts.
Also add a nice new font called Katica. It's not used anywhere yet but
I'm definitely itching to start using it. :^)
2019-03-06 12:52:41 +01:00
Andreas Kling
0a86366c71 Make a preparation pass for variable-width fonts. 2019-03-06 11:03:10 +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
7c06431ff7 FileManager: Canonicalize paths when opening them. 2019-03-03 00:40:50 +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
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
5c0fca0a95 FileManager: Make the "open parent directory" action actually open ".." 2019-03-02 09:16:57 +01:00
Andreas Kling
e11c7a5df5 FileManager: Add "up to parent directory" action to toolbar.
It's not actually hooked up to anything yet, I just wanted to add
something more to the toolbar. :^)
2019-03-02 02:20:11 +01:00
Andreas Kling
0c8242dd71 FileManager: Show user/group names instead of UID/GID if available. 2019-03-02 02:05:49 +01:00
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