Commit graph

9664 commits

Author SHA1 Message Date
Andreas Kling
ab336e895f LibGUI: Add a ToolBarContainer widget and put most ToolBars in one
This mimics the Explorer toolbar container from Windows 2000 and looks
pretty neat! :^)
2020-04-23 17:44:49 +02:00
Andreas Kling
5b6c2f3bd6 LibGUI: Make sure the ResizeCorner aligns nicely inside StatusBar 2020-04-23 15:58:39 +02:00
Andreas Kling
81ebc0cfe3 WindowServer: Tweak window frame height 2020-04-23 15:36:00 +02:00
Andreas Kling
cbc3d4fddd LibGUI: Tweak StatusBar layout margins 2020-04-23 14:45:04 +02:00
Andreas Kling
f0cac83243 WindowServer+LibGfx: Make window borders 1px thicker 2020-04-23 14:37:13 +02:00
Andreas Kling
9ab9f97464 Browser: Remove no-op from the BooksmarksBarWidget
Widget::child_widgets() is a *copy* of the list of child widgets. :^)
2020-04-23 14:10:32 +02:00
Andreas Kling
7da7bbe6f9 LibGUI: Decrease the default ToolBar height a little bit 2020-04-23 14:09:05 +02:00
Andreas Kling
56c73f03ce LibGUI: Get rid of the awkward horizontal line in StatusBar
Just fill StatusBar with button color instead of trying to share paint
code with ToolBar.
2020-04-23 13:53:17 +02:00
Hüseyin ASLITÜRK
74cc0560e8 LibGUI: MessageBox min width control for show messages
If message is too short calculate dialog width via buttons count. And icon is present lets align text to left.
2020-04-23 11:49:02 +02:00
Hüseyin ASLITÜRK
30e95d017e Demos: Add ColorInput, TabWidget and MessageBox demos in WidgetGallery 2020-04-23 11:49:02 +02:00
Jonathan Archer
0efb5b3a11 Desktop: Context menu option to open FileManager 2020-04-23 11:22:32 +02:00
Jonathan Archer
3bbd7d9425 Desktop: Show DisplayProperties in context menu 2020-04-23 11:22:32 +02:00
Jonathan Archer
5457020d4e Desktop: File creation from the context menu
Kinda hackish, but it does work.
2020-04-23 11:22:32 +02:00
Jonathan Archer
d02c02cebe Desktop: Add context menu for directory view
Only has the option to create a folder, but hey ;^)
2020-04-23 11:22:32 +02:00
Kesse Jones
6d308113b8 LibJS: Fix Array.prototype.indexOf fromIndex negative
If negative fromIndex considers displacement from the end of the array
without decreasing 1 of de size.
2020-04-23 11:06:10 +02:00
Brendan Coles
edd8abc4cf LibCore: read_bool_entry parse "true" / "false" strings in config files
`read_bool_entry()` can now interpret both integers (1 or 0) and
Boolean strings ("true" or "false") in configuration files.

All values other than "1" or "true" are considered false.
2020-04-23 11:04:25 +02:00
Linus Groh
7540203ae8 LibJS: Add isFinite() 2020-04-23 11:03:42 +02:00
Linus Groh
8ff2881b1a LibJS: Let isNaN() with no argument return true, add tests 2020-04-23 11:03:42 +02:00
Linus Groh
602a36970f LibWeb: Add XMLHttpRequest.readyState and constants 2020-04-23 11:03:17 +02:00
Brendan Coles
3c9693c6c7 IRCClient: Connect to IRC server URL specified in command line argument
The IRCClient application can now connect to a specified IRC server using
a URL with `irc://` protocol as a command line argument.
2020-04-23 09:50:19 +02:00
Brendan Coles
c3b2bfabfe DesktopServices: Add irc URL protocol handler 2020-04-23 09:50:19 +02:00
Linus Groh
418092a71a LibJS: Implement Array length setter 2020-04-23 09:47:23 +02:00
Emanuele Torre
d5d3e0b4ed LibWeb: Use proper length values for CanvasRenderingContext2D functions 2020-04-23 09:43:51 +02:00
Emanuele Torre
a804615b9b Base: Close head tag in canvas-path.html and give the document a title 2020-04-23 09:42:43 +02:00
Brendan Coles
9ab4a8179a TextEditor: Add "Find Previous" 16x16 icon 2020-04-22 17:14:36 +02:00
Linus Groh
a1b820b11c LibJS: Improve UpdateExpression::execute()
- Let undefined variables throw a ReferenceError by using
  Identifier::execute() rather than doing variable lookup manually and
  ASSERT()ing
- Coerce value to number rather than ASSERT()ing
- Make code DRY
- Add tests
2020-04-22 13:09:59 +02:00
Kesse Jones
b2305cb67d LibJS: Add Array.prototype.lastIndexOf 2020-04-22 13:08:00 +02:00
Andreas Kling
09138d542d FileManager: Fix build 2020-04-22 12:38:33 +02:00
Andreas Kling
bed0e6d250 Kernel: Make Process and Thread non-copyable and non-movable 2020-04-22 12:36:35 +02:00
Andreas Kling
a59453d4b7 AK: Tweak exchange() implementation
Make it constexpr and do perfect forwarding.
2020-04-22 12:36:35 +02:00
AnotherTest
1a7af4d677 LibLine: Do not ignore ^C and do not finish() after interrupt 2020-04-22 12:12:41 +02:00
angel
0d47ad7efe FileManager: Exit the application cleanly when failing to open initial directory
Co-Authored-By: Andreas Kling <kling@serenityos.org>
2020-04-22 12:12:32 +02:00
angel
cc424b7b0f FileManager: Graceful handling of access errors
A neat error message is displayed when failing to open a directory!
2020-04-22 12:12:32 +02:00
angel
451b3fa73c LibGUI: Added error events to FileSystemModel
This will allow us to catch errors early on FileManager
2020-04-22 12:12:32 +02:00
Brendan Coles
802c06ab7b Base: Add missing Syntax color settings for Joi theme 2020-04-22 11:48:38 +02:00
Linus Groh
038051d205 LibJS: Parse while statements 2020-04-22 11:48:14 +02:00
Brendan Coles
7e01e38cf4 Base: Add Sunshine theme 2020-04-22 11:47:42 +02:00
Nick Tiberi
d12f27b58e LibWeb: support confirm() with no arguments 2020-04-22 11:37:33 +02:00
AnotherTest
730ca98698 LibLine: Avoid OOB access when one of the suggestions is the prefix 2020-04-22 11:35:53 +02:00
Andreas Kling
ef69f900c7 LibWeb: Invalidate the canvas element after put_image_data()
This makes sure we repaint it right away so we can see the changes.
2020-04-22 00:09:23 +02:00
Andreas Kling
5326eebb1b WindowServer+LibGUI: Notify DisplayLinks at 60 fps no matter what
The original implementation only sent out notifications when there was
something being drawn on screen. If nothing was going on, we'd get too
lazy and just not notify display links.

This obviously break requestAnimationFrame(), so now we just drive the
DisplayLinks at 60 fps no matter what. :^)
2020-04-22 00:07:48 +02:00
Andreas Kling
2d4c91df8e LibWeb: Add ImageData objects and implement 2D context putImageData()
An ImageData is a wrapper around a Bitmap wrapper around a
JS::Uint8ClampedArray.
2020-04-21 23:49:51 +02:00
Andreas Kling
54133c683d LibWeb: Hack requestAnimationFrame() to provide a (very fake) timestamp 2020-04-21 23:49:09 +02:00
Andreas Kling
627fd6374b LibJS: Add Uint8ClampedArray :^)
This is a special kind of byte array that clamps its values to 0...255
It will be used for HTML ImageData objects.

I made Object::put_by_index() and get_by_index() virtual for this.
We'll probably need to make non-numeric property name lookups virtual
as well, but this solves my current problem well enough.
2020-04-21 23:47:39 +02:00
Andreas Kling
0fa7cf70b5 WindowServer+SystemMenu: Check the current system theme on startup 2020-04-21 18:40:52 +02:00
Andreas Kling
b6d035aa05 SystemMenu: Make the system theme menu items checkable (and exclusive) 2020-04-21 17:50:20 +02:00
Andreas Kling
705cee528a LibGUI: Make it easier to create checkable GUI::Actions
This patch adds GUI::Action::create_checkable() helpers that work just
like the existing create() helpers, but the actions become checkable(!)

Clients are no longer required to manage the checked state of their
actions manually, but instead they will be checked/unchecked as needed
by GUI::Action itself before the activation hook is fired.
2020-04-21 17:21:28 +02:00
angel
1032ae0140 WindowServer: Allow the system menu to be open when a modal is shown 2020-04-21 16:54:34 +02:00
angel
b9be57a9cd WindowServer: Don't process menu bar events when modal is open
This prevents accesing the parent window menubar when a modal is
currently open, which was not a desired behavior.
2020-04-21 16:27:36 +02:00
angel
5250f4fb90 WindowServer: Don't ignore modal events when showing menus
PR #1495 fixes #1464 but only accounts for window menus. In File
Manager, for example, attempting to pop up the context menu on the file
name text box of the properties modal window, will result in the same
behavior.

Removing the code altogether solves the problem, altough I'm
not sure if it could have any bad implications.

I was thinking it might allow interaction with a parent window menu if
it remains open just before the popup window is shown, but I have not
seen a way to replicate this behavior.
2020-04-21 16:27:36 +02:00