Sergey Bugaev
7ccb84e58e
PaintBrush: Make spray circular.
2019-06-17 16:11:01 +02:00
Robin Burchell
502c54e39a
Add a simple spray fill tool
...
Could do with some more tweaking no doubt, and it'd be nice to have a
circular spray, but this is better than nothing.
2019-06-17 05:54:32 +02:00
Andreas Kling
f49e5c6732
PaintBrush: Reduce debug spam in the color editor dialog.
2019-06-16 16:33:16 +02:00
Andreas Kling
cf17e385b5
PaintBrush: Allow editing palette colors by ctrl-clicking them.
...
Maybe the ColorDialog class could be fashioned into something generally
usable in LibGUI, but for now it lives in the PaintBrush app. :^)
2019-06-16 15:09:36 +02:00
Andreas Kling
264890bfc3
PaintBrush: Flood filling with the same color is a no-op.
2019-06-16 06:34:29 +02:00
Andreas Kling
694b4a64bd
PaintBrush: Make little icons for the pen and bucket tools.
2019-06-15 17:52:53 +02:00
Andreas Kling
dcbddb4f8c
GraphicsBitmap: Provide templated versions of get_pixel() and set_pixel().
...
If we already know the bitmap format used, we can use these functions to
bypass the format checks and go straight to pixel manipulation.
2019-06-15 11:06:02 +02:00
Andreas Kling
150b3cf378
PaintBrush: Fix some silly logic typos in flood fill.
2019-06-15 10:48:20 +02:00
Andreas Kling
a8b2b96f38
PaintBrush: Use a Queue<Point> for the flood fill.
2019-06-15 10:39:45 +02:00
Andreas Kling
9443957c14
PaintBrush: Speed up the bucket tool with smarter use of Vector.
...
Put together a pretty well-performing queue using a Vector and an offset.
By using the new Vector::shift_left(int) instead of Vector::take_first()
we can avoid shifting the vector contents every time and instead only
do it every so often.
Maybe this could be generalized into a separate class, I'm not sure if it's
the best algorithm though, it's just what I came up with right now. :^)
2019-06-14 21:50:28 +02:00
Andreas Kling
e9c021de92
PaintBrush: Implement a naive but working bucket fill tool.
...
I've used a SinglyLinkedList<Point> for the flood fill queue, since Vector
was death slow. This could definitely be made faster with a better algorithm
and/or data structure. :^)
2019-06-14 19:11:22 +02:00
Andreas Kling
56cbe15033
PaintBrush: Factor out the pen tool into an actual PenTool class.
...
Also add a Tool base class, and an empty BucketTool subclass which is the
next thing to implement.
2019-06-14 18:51:57 +02:00
Andreas Kling
42f374d0f1
Terminal: Add support for DCH ('P' final)
...
Patch contributed by "pd"
2019-06-12 20:54:23 +02:00
Andreas Kling
c4d24bb4e9
PaintBrush: Start fleshing out a toolbox widget.
2019-06-12 05:58:31 +02:00
Andreas Kling
cadc65a82d
PaintBrush: Let's use Color::MidGray for the outside-the-bitmap area.
2019-06-11 20:39:32 +02:00
Andreas Kling
70564a78b2
PaintBrush: Tidy up the UI a bit. Add some more colors.
2019-06-11 20:37:58 +02:00
Andreas Kling
1372f10dda
Terminal: Add support for REP ('b' final)
...
Patch contributed by "pd"
2019-06-11 07:32:53 +02:00
Andreas Kling
6ef45bc0ef
PaintBrush: Add some placeholder menus so it looks proper.
2019-06-10 21:05:20 +02:00
Andreas Kling
1f756378e8
PaintBrush: Make it possible to switch colors using the PaletteWidget.
2019-06-10 20:07:26 +02:00
Andreas Kling
f86b1bdca1
PaintBrush: Add a PaletteWidget to allow color selection.
...
Also use different colors for left/right mouse button. :^)
2019-06-10 19:54:09 +02:00
Andreas Kling
642c82fbff
PaintBrush: Use draw_line() when drawing continuously.
2019-06-10 19:35:24 +02:00
Andreas Kling
d599544890
PaintBrush: Start working on a simple painting application.
2019-06-10 19:29:33 +02:00
Andreas Kling
39d1a9ae66
Meta: Tweak .clang-format to not wrap braces after enums.
2019-06-07 17:13:23 +02:00
Andreas Kling
0ed89440f1
ProcessManager+top: Rename "linear" size to "virtual" size.
...
I originally called it "linear" because that's how the Intel manual names
virtual addresses in many cases. I'm ready to accept that most people know
this as "virtual" so let's just call it that.
2019-06-07 12:44:29 +02:00
Andreas Kling
fd604a7c68
Applications: Run clang-format on everything.
2019-06-07 11:48:03 +02:00
Andreas Kling
4edc73ad1f
Terminal: Use the visual bell by default.
2019-06-07 08:45:39 +02:00
Andreas Kling
6e4f0b3cc5
Terminal: Reallocate kept lines when resizing the terminal.
...
Otherwise we end up with garbage text when making the window bigger.
2019-06-06 14:59:18 +02:00
Andreas Kling
e8f35ef311
Terminal: Store horizontal tabs in a Vector.
...
There's no need to muck around with manual malloc()/free() here.
2019-06-06 11:42:05 +02:00
Christopher Dumas
e92fe52031
Terminal: Use Vectors and OwnPtrs for Terminal lines. Adjust scroll
...
region behavior
2019-06-03 20:48:34 +02:00
Christopher Dumas
ce15a4021d
Terminal: Implement scroll region termcodes
2019-06-03 20:48:34 +02:00
Robin Burchell
1024dfa81a
StringViewize a bunch of things -- mostly LibGUI
2019-06-03 20:27:05 +02:00
Robin Burchell
7bce096afd
Take StringView in more places
...
We should work towards a pattern where we take StringView as function
arguments, and store String as member, to push the String construction
to the last possible moment.
2019-06-02 12:55:51 +02:00
Andreas Kling
51581c21fc
WindowServer+LibGUI: Add a way to bring a window to the front.
...
GWindow::move_to_front() can now be used to move a window to the top of
the window stack.
We use this in Terminal to bring the settings window to the front if it
already exists when it's requested, in case it's hiding behind something.
2019-06-01 20:10:37 +02:00
Andreas Kling
473d0e83ad
Terminal: Fix insufficient repaint after visual bell clears.
...
Also make the bell time a little shorter, 500ms kinda wears on you. :^)
2019-06-01 00:36:56 +02:00
Christopher Dumas
b0d8dba16d
Terminal: Single settings window & consistant visual bell timing
2019-06-01 00:07:45 +02:00
Christopher Dumas
6a4cb25557
Terminal: Settings windows can be opened multiple times
2019-06-01 00:07:45 +02:00
Christopher Dumas
f8a02d4733
Terminal: Audible vs Visible beep option
2019-06-01 00:07:45 +02:00
Robin Burchell
004a630bfe
Terminal: Fix some missing text attributes
...
Probably doesn't actually change much yet since we don't support many
text rendering options, but it's at least good to have the options, and
to record things we don't yet support too.
2019-05-30 10:35:36 +02:00
Andreas Kling
1361721053
Terminal: Add /usr/local/bin to the default PATH.
...
Now that we're building all these ports, let's have them in the PATH. :^)
2019-05-29 06:34:54 +02:00
Robin Burchell
0dc9af5f7e
Add clang-format file
...
Also run it across the whole tree to get everything using the One True Style.
We don't yet run this in an automated fashion as it's a little slow, but
there is a snippet to do so in makeall.sh.
2019-05-28 17:31:20 +02:00
Andreas Kling
4040c6137d
TextEditor: Fix window title when starting with an empty document.
2019-05-27 23:33:47 +02:00
Christopher Dumas
c23882dde1
can now tile background and made sure the IRC choose server popup still works
2019-05-27 21:40:53 +02:00
Christopher Dumas
50154a23cb
most apps now begin in the correct directory
2019-05-27 21:40:53 +02:00
Christopher Dumas
e3f81bce49
IRC client setttings, Terminal settings, more WM settings
2019-05-27 21:40:53 +02:00
Andreas Kling
b311257098
Applications: Let's put spaces in app names
...
"FileManager" => "File Manager"
"FontEditor" => "Font Editor"
"ProcessManager" => "Process Manager"
"TextEditor" => "Text Editor"
2019-05-27 13:52:28 +02:00
faissaloo
6ac8aab941
GFilePicker: Return paths as FileSystemPath rather than String
2019-05-26 22:52:09 +02:00
Christopher Dumas
957f8b84f2
WindowServer: Make it possible to turn off window title bars ( #88 )
...
Also, Launcher now does not use titlebars.
Only check if titlebar should be shown if the window type works with that.
2019-05-24 23:37:23 +02:00
Christopher Dumas
dd84dcf31f
Launcher loads applications from Launcher.ini, is started by default, and is resized automatically
...
Co-Authored-By: Andreas Kling <awesomekling@gmail.com>
2019-05-24 20:40:09 +02:00
Andreas Kling
677794f30d
LibGUI: Make GCheckBox inherit from GAbstractButton.
2019-05-24 17:11:42 +02:00
Andreas Kling
21c56477b0
LibGUI: Add a GAbstractButton base class for button widgets.
...
This patch moves GButton and GRadioButton to inherit from it. This allows
them to share code for mouse event handling, etc.
2019-05-24 16:32:20 +02:00