summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-27AK: Add ensure_capacity() for HashMap and HashTable.Andreas Kling
These functions make sure that the underlying table can accomodate at least 'capacity' entries before needing a rehash.
2019-05-27SharedGraphics: Make Rect::shatter() return a Vector<Rect, 4>.Andreas Kling
We know that shatter() will never return more than four rects, so we can use vector inline capacity to always avoid heap allocation here.
2019-05-27LibCore: Add CObject::for_each_child_of_type<T>()Andreas Kling
Use this to iterate over all the GRadioButtons in a group.
2019-05-27LibCore+LibGUI: Add is<T>(CObject&) and to<T>(CObject&) helpers.Andreas Kling
2019-05-27LibGUI: Add GWidget::for_each_child_widget(callback).Andreas Kling
2019-05-27LibCore: Add CObject::for_each_child(callback).Andreas Kling
2019-05-27GFilePicker: Add a preview pane on the right-hand side for image previews.Andreas Kling
Currently the preview pane is always open, but maybe it should be something you can configure, or something that happens automagically.
2019-05-27FileSystemPath: Add a has_extension() helper.Andreas Kling
This code: if (path.string().to_lowercase().ends_with(".foo")) Can now be written as: if (path.has_extension(".foo"))
2019-05-26GFilePicker: Return paths as FileSystemPath rather than Stringfaissaloo
2019-05-26WSCompositor: Allow a compose to bypass the timer when it first happensRobin Burchell
d66fa60fcf23fa7217a065479af6b1f5a851a506 introduced the use of a timer to coalesce screen updates. This is OK, but it does introduce update latency. To help mitigate the impact of this, we now have a second (immediate) timer. When a compose pass is first triggered, the immediate timer will allow the compose to happen on the next spin of the event loop (so, only coalescing updates across a single event loop pass). Any updates that trigger while the delayed timer is running, though, will be delayed to that (~60fps) timer. This fixes #103.
2019-05-26CEventLoop: Make it possible to determine running/quit state without using ↵Robin Burchell
exec() ... by removing a redundant member that nothing uses (running), and exposing whether or not quit has been requested.
2019-05-26IDEDiskDevice: Implement basic DMA writes.Andreas Kling
This could share more code with reads, and generally be better. But it works and it's considerably faster than PIO, so let's use it. :^)
2019-05-26Shell: A '>' redirection target should be truncated.Andreas Kling
2019-05-26WSCompositor: Use a timer to schedule compose rather than an eventRobin Burchell
Really poor man's vsync. Still not actual vsync, but at least we won't constantly spin buffers if we get many dirty rects.
2019-05-26AK: Implement String::to_int (#99)Faissal Bensefia
2019-05-26WSEventLoop: Don't assert when being told to construct a crazy window typeRobin Burchell
Seriously non-cool :(
2019-05-26GTextEditor: Take frame size into account when setting clip rectRobin Burchell
The ruler right does not include the (already translated) frame size. Take that into account too, otherwise we overdraw the ruler. Fixes #23.
2019-05-26Userland: Add a helpful little program for provoking different crashes.Andreas Kling
Currently supported crash types: -s : Segmentation violation -d : Division by zero -i : Illegal instruction -a : Abort
2019-05-26LibC: Implement abort() as raise(SIGABRT).Andreas Kling
2019-05-26Kernel: Sending a signal to yourself should block until dispatch.Andreas Kling
By moving the sending (and receiving) thread into the BlockedSignal state, we ensure that the thread doesn't continue executing until the signal has been dispatched.
2019-05-26Kernel: Send more specific signals when crashing due to CPU exceptions.Andreas Kling
- For division by zero, send SIGFPE. - For illegal instruction, send SIGILL. - For the rest, default to SIGSEGV.
2019-05-26Shell: When a command is terminated by a signal, print signal description.Andreas Kling
Previously we were only printing the signal number (except for SIGINT.)
2019-05-26LibC: Let the string for SIGFPE be "Division by zero".Andreas Kling
That's really what we send this signal for, so let's call it that.
2019-05-26QuickSort: Don't sort a single item, nothing to doRobin Burchell
2019-05-26ReadMe: Add myself to authors section while I'm doing something usefulRobin Burchell
2019-05-26Shell: Add append operator (>>)Robin Burchell
Fixes #93.
2019-05-26Kernel: Support O_APPENDRobin Burchell
As per the manpage, this acts as a transparent lseek() before write.
2019-05-26LibGUI: Unbreak popup menus, now that invalid menus have ID -1.Andreas Kling
2019-05-25WindowServer: Tweak window titlebar look somewhat.Andreas Kling
Add a subtle shadow to the titlebar text. Also make the titlebar one pixel taller to fully accomodate the 90s "3D frame" effect. :^)
2019-05-25WindowServer: Remove unused old "middle border" color.Andreas Kling
2019-05-25GButton: Align the button text according to text_alignment().Andreas Kling
Added a Rect::align_within(other_rect, alignment) helper that seemed useful.
2019-05-25Ext2FS: Block #0 can terminate an inode block list early.Andreas Kling
We were already handling this for the indirect blocks, but the direct ones would happily consider #0 to be a valid block list entry.
2019-05-25Base: Add a 32x32 icon for Minesweeper.Andreas Kling
2019-05-25Base: Tweak the small Terminal icon slightly.Andreas Kling
2019-05-25Ext2FS: Fix build with EXT2_DEBUG enabled, and tweak some variable names.Andreas Kling
2019-05-25Base: Make a 32x32 icon for Snake.Andreas Kling
2019-05-25GSlider: Oops, fix typo in previous commit.Andreas Kling
2019-05-25LibGUI: Notify widgets when their enabled state changes.Andreas Kling
This is done by dispatching a (synchronous) "EnabledChange" event that can be picked up in change_event(). Use this event to kick widgets out of their "being pressed"-type modes if the user is interacting with them while the state is programmatically changed.
2019-05-25WindowServer: Don't draw titlebar separator for titlebar-less windows.Andreas Kling
2019-05-25LibGUI: Elide the text in GCheckBox and GRadioButton when low on space.Andreas Kling
2019-05-25StylePainter: Remove some unused code.Andreas Kling
2019-05-24WindowServer: Make it possible to turn off window title bars (#88)Christopher Dumas
Also, Launcher now does not use titlebars. Only check if titlebar should be shown if the window type works with that.
2019-05-24GSlider: Ignore mouse events when disabled.Andreas Kling
2019-05-24GLabel: Paint the text with a disabled look when appropriate.Andreas Kling
Also turn on right-side text elision in all cases by default.
2019-05-24LibGUI: When tabbing between focusable widgets, skip over disabled ones.Andreas Kling
2019-05-24LibGUI: Share code for text painting in GAbstractButton.Andreas Kling
This gives all the GAbstractButton a consistent disabled appearance.
2019-05-24Demos: Start working on a simple WidgetGallery app.Andreas Kling
It's good to have a place where we can try out all the different widgets. This needs some more work on a nice layout, and should also include more of the widgets. :^)
2019-05-24WindowServer: Remove some unused WSWindowManager members.Andreas Kling
2019-05-24Launcher loads applications from Launcher.ini, is started by default, and is ↵Christopher Dumas
resized automatically Co-Authored-By: Andreas Kling <awesomekling@gmail.com>
2019-05-24WindowServer: Factor out compositing from WSWindowManager into WSCompositor.Andreas Kling
This is far from finished and the two classes are awkwardly grabbing at each other's innards, but here's a first step in the right direction.