Andreas Kling
6576ac8332
GTextEditor: Add selected_text() function.
...
I don't have a clipboard to actually put the copied selection onto yet,
so just print the selected text to stdout so we can see what it is.
2019-03-08 01:59:59 +01:00
Andreas Kling
77359a5360
LibGUI: Only activate keyboard shortcuts on KeyDown, not KeyUp.
2019-03-08 01:59:49 +01:00
Andreas Kling
1e0971c8b4
WindowServer: Fix slightly off alignment of menubar clock.
2019-03-08 01:31:03 +01:00
Andreas Kling
f40ef7f495
Meta: Time for a new screenshot! :^)
2019-03-08 01:10:33 +01:00
Andreas Kling
b5521e1b0d
GTextEditor: Add basic selection support.
2019-03-08 00:49:45 +01:00
Andreas Kling
c9c40e1da6
Base+WindowServer: Add a new default wallpaper for fun.
2019-03-07 23:58:04 +01:00
Andreas Kling
28a6ba498a
Userland: Fix broken permissions for files created by /bin/cp.
...
When passing O_CREAT to open(), it will grab a third "mode" argument from
the stack. Let's not forget to actually pass this!
Also use the process umask for the created files.
2019-03-07 23:23:07 +01:00
Andreas Kling
ca52de8e5c
TextEditor: Add a menu for switching the editor font.
2019-03-07 23:05:55 +01:00
Andreas Kling
949c98c5af
LibGUI: Implement GToolbar separators.
2019-03-07 23:01:36 +01:00
Andreas Kling
054e4caf49
TextEditor: Add Cut/Copy/Paste placeholder actions.
2019-03-07 21:43:43 +01:00
Andreas Kling
27b0aab13e
GTextEditor: Unbreak forward merge with Delete.
2019-03-07 20:15:05 +01:00
Andreas Kling
9867fe1025
GTextEditor: Add a ruler column that always shows the line numbers.
2019-03-07 20:05:05 +01:00
Andreas Kling
f13c62f225
GTextEditor: Fix double effect of backspace/delete in some cases.
2019-03-07 17:18:22 +01:00
Andreas Kling
a738b5cb69
TextEditor: Open an empty document by default.
2019-03-07 17:15:59 +01:00
Andreas Kling
f8b72ab3ab
GTextEditor: Add basic PageUp/PageDown navigation support.
2019-03-07 17:11:17 +01:00
Andreas Kling
187d7cb400
GTextEditor: Add write_to_file(String path) :^)
2019-03-07 17:06:11 +01:00
Andreas Kling
a5bc20c733
GTextEditor: Support starting with an empty document.
2019-03-07 16:51:47 +01:00
Andreas Kling
43d56b6f3a
GTextEditor: Support splitting lines at the cursor with the Return key.
2019-03-07 16:49:21 +01:00
Andreas Kling
a64b71fb3d
GTextEditor: Support forward delete/merge with the Delete key.
2019-03-07 16:33:20 +01:00
Andreas Kling
ac78cdae46
Kernel: Detect the Delete key.
2019-03-07 16:20:00 +01:00
Andreas Kling
38662f884d
GTextEditor: Merge with previous line if backspacing at column 0.
2019-03-07 16:15:25 +01:00
Andreas Kling
6094f592a9
GTextEditor: More work on basic line editing. Insert/remove characters.
2019-03-07 16:04:21 +01:00
Andreas Kling
8425ea971a
GTextEditor: Start working on editing, starting with inserting newlines.
2019-03-07 15:52:11 +01:00
Andreas Kling
b4df33e453
GTextEditor: Only paint lines inside the dirty rect.
...
This dramatically improves performance in large documents. :^)
2019-03-07 15:03:38 +01:00
Andreas Kling
3ee0e82206
FileManager: Open non-executable files in TextEditor by default.
2019-03-07 14:43:12 +01:00
Andreas Kling
ce35cddb1b
GTextEditor: Let's use a Vector for the line backing store.
...
I'm eventually gonna want to replace this with something more clever,
like a automagically splicing vector or something, but for now, at least
we move away from immutable Strings.
2019-03-07 14:35:32 +01:00
Andreas Kling
a21ecd440a
GTextEditor: Allow moving the cursor by clicking.
2019-03-07 14:02:10 +01:00
Andreas Kling
9997992907
GTextEditor: Make the cursor invalidation work with the padding().
2019-03-07 13:54:02 +01:00
Andreas Kling
60c1ab5fbe
GTextEditor: Scroll the cursor into view before updating it.
2019-03-07 13:34:00 +01:00
Andreas Kling
9591acc212
GTextEditor: Remove some debug spam.
2019-03-07 13:26:02 +01:00
Andreas Kling
77198ef735
GTextEditor: Simplify update_cursor().
2019-03-07 13:23:17 +01:00
Andreas Kling
6a6bcc5daf
GTextEditor: Add Home/End and Ctrl+Home/Ctrl+End navigation shortcuts.
...
For start/end of line and start/end of document respectively.
2019-03-07 13:21:51 +01:00
Andreas Kling
8dcec749ed
Kernel: Detect the Home and End keyboard keys.
2019-03-07 13:19:05 +01:00
Andreas Kling
1ac71d1fb1
GTextEditor: Improvements to cursor rendering.
...
The view now scrolls along with you as you move the cursor around.
2019-03-07 13:13:25 +01:00
Andreas Kling
dff57909a7
GTextEditor: Only draw the cursor line background shade when focused.
2019-03-07 02:26:44 +01:00
Andreas Kling
6db132069f
GTextEditor: Draw the cursor line in a slightly darker shade.
2019-03-07 02:24:46 +01:00
Andreas Kling
be0ac86b63
TextEditor: Add New/Open/Save actions.
...
They aren't hooked up to anything, I just felt like making some icons. ;^)
2019-03-07 01:46:37 +01:00
Andreas Kling
c3bb84239e
TextEditor: Show the open filename in the window title.
2019-03-07 01:08:07 +01:00
Andreas Kling
1f92636c6d
GTextEditor: Make the cursor blink while the editor is focused.
2019-03-07 01:05:35 +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
67ee579113
WindowServer: Add window icons. Every window has the same icon for now.
...
The icons show up both in the title bars and in the window switcher.
Eventually I'd like to be able to minimize to icon, and maybe even have
myself a taskbar.
2019-03-06 23:03:36 +01:00
Andreas Kling
3729f7cc6a
About: Use Katica Bold for displaying the system name. :^)
2019-03-06 22:39:49 +01:00
Andreas Kling
495c4f940d
WindowServer: Only the left mouse button should initiate window drag.
2019-03-06 22:38:19 +01:00
Andreas Kling
eedfb2649e
WindowServer: Tweak appearance of window close buttons.
2019-03-06 22:36:37 +01:00
Andreas Kling
5773b91a04
WindowServer: Use the right font for computing titlebar text rects.
2019-03-06 22:34:45 +01:00
Andreas Kling
e56fe71dbc
Kernel: And some more KResult/KResultOr<T> porting work.
2019-03-06 22:30:13 +01:00
Andreas Kling
028afabf6b
Kernel: Port more code to KResult and KResultOr<T>.
2019-03-06 22:14:31 +01:00
Andreas Kling
3079ef01ce
Userland: /bin/cp needs to handle open(dst) failing with EISDIR.
2019-03-06 20:28:00 +01:00
Andreas Kling
e6f389a544
Kernel: Add two error checks for open() to return EISDIR or ENODEV.
2019-03-06 20:27:19 +01:00