summaryrefslogtreecommitdiff
path: root/MenuApplets
AgeCommit message (Collapse)Author
2020-07-26Base+MenuApplet: Add new controls and icons for AudioAppletthankyouverycool
Adds a classic volume slider to the AudioApplet. Percent text and mute state can now be toggled via checkboxes. Left click opens, right click mutes. Updates existing icons and adds unique icons for muted vs zero volume states.
2020-07-23LibGUI: Rename GUI::Image => GUI::ImageWidgetAndreas Kling
"Image" was a bit too vague, "ImageWidget" is obviously a widget of some sort.
2020-07-21Base: rename audio volume icons with descriptive namesBenoît Lormeau
2020-07-21AudioApplet: Scrolling the Audio applet will adjust the main mix volumeBenoît Lormeau
The Audio applet now dislays the main mix volume next to the speaker icon. A click on the applet still mutes the global mixer. By scrolling the mouse wheel while on the applet, you can decrease/increase the mixer volume. Different icons will be painted depending on the volume and the mute state. Happy listening :^)
2020-07-05Userland+MenuApplets: Replace two more fork/exec with posix_spawnNico Weber
2020-07-04LibGUI: Make GUI::Application a Core::ObjectAndreas Kling
Having this on the stack makes whole-program teardown iffy. Turning it into a Core::Object allows anyone who needs it to extends its lifetime.
2020-06-29Everywhere: Replace some uses of fork/exec with posix_spawnNico Weber
It's less code, and it's potentially more efficient once posix_spawn is a real syscall.
2020-06-18ClipboardHistory: Use pledge() and unveil() :^)Andreas Kling
2020-06-18ClipboardHistory: Replace IconWidget with GUI::ImageHüseyin ASLITÜRK
2020-06-13AK: JsonParser improvementsMatthew Olsson
- Parsing invalid JSON no longer asserts Instead of asserting when coming across malformed JSON, JsonParser::parse now returns an Optional<JsonValue>. - Disallow trailing commas in JSON objects and arrays - No longer parse 'undefined', as that is a purely JS thing - No longer allow non-whitespace after anything consumed by the initial parse() call. Examples of things that were valid and no longer are: - undefineddfz - {"foo": 1}abcd - [1,2,3]4 - JsonObject.for_each_member now iterates in original insertion order
2020-06-12MenuApplets: Fix using OwnPtr<> with RefCounted typesSergey Bugaev
2020-05-21LibGUI: Get rid of Model::ColumnMetadata and always use auto-sizingAndreas Kling
Auto-sizing of view columns is now enabled by default. This removes the last remaining need for ColumnMetadata, so this patch gets rid of it.
2020-05-20ClipboardHistory: Always place the applet at the same location :^)Andreas Kling
2020-05-20ResourceGraph: Add a thin frame around the graphsAndreas Kling
Make the graph widgets into 1px GUI::Frames for a pleasant 90's feel.
2020-05-16ClipboardHistory: Add a clipboard history applet :^)Sergey Bugaev
It will listen for clipboard content changes in the backgroud. Once you click on its icon, it will pop up a window listing all recorded clipboard contents. You can then double-click on an item to copy it again.
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-03Meta: Fix Makefile permissions (not executable)Ben Wiederhake
2020-04-11MenuApplets: Support memory usage and custom colors in ResourceGraphLinus Groh
The ResourceGraph menu applet now supports a few command line options: --cpu / -C to display a CPU usage graph --memory / -M to display a memory usage graph --name / -n to set a name which is used to order applets --color / -c to set the graph color (supports anything Gfx::Color::from_string() understands) The SystemServer.ini and WindowServer.ini config files have been updated to spawn and show two ResourceGraph menu applets, one for CPU usage (green) and one for memory usage (cyan) - this matches the colors in the SystemMonitor graphs.
2020-04-11MenuApplets: Rename CPUGraph to ResourceGraphLinus Groh
The plan is to extend what currently is known as "CPUGraph" and let the SystemServer spawn multiple instances of it - which then can show memory or network usages as well :^) Simply renaming the applet is the first step.
2020-04-01Clock menu applet: launch the new Calendar on clickAnotherTest
2020-03-04LibGUI: Use GUI::Window::set_main_widget<WidgetType>() in clientsAndreas Kling
2020-02-25Build: Only look at SUBDIRS with Makefilesjoshua stein
If a directory is renamed or deleted before 'make clean', git will delete the Makefile but leave all of the object and dependency files around. When make would try to recurse into that directory from the wildcard, it would error out since there is no Makefile.
2020-02-23LibGUI: Remove parent parameter to GUI::Widget constructorAndreas Kling
2020-02-23Userspace: Use Core::Object::add() when building interfacesAndreas Kling
2020-02-14LibGUI: Remove some header dependencies from Widget.hAndreas Kling
2020-02-14LibGfx: Add forward declaration headerAndreas Kling
This patch adds <LibGfx/Forward.h> with forward declarations for Gfx.
2020-02-10Audio.MenuApplet: Add window title.=
2020-02-10CPUGraph.MenuApplet: Add window title.=
2020-02-10Clock.MenuApplet: Add window title.=
2020-02-10UserName.MenuApplet: Add window title.=
2020-02-09MenuApplets: Add UserName applet.asliturk
Move code from WindowServer.WSMenuManager to the applet.
2020-02-06LibGUI: Remove leading G from filenamesAndreas Kling
2020-02-06LibAudio: Remove leading A from filenamesAndreas Kling
2020-02-06LibCore: Remove leading C from filenamesAndreas Kling
2020-02-06LibGfx: Rename from LibDraw :^)Andreas Kling
2020-02-06LibDraw: Put all classes in the Gfx namespaceAndreas Kling
I started adding things to a Draw namespace, but it somehow felt really wrong seeing Draw::Rect and Draw::Bitmap, etc. So instead, let's rename the library to LibGfx. :^)
2020-02-06LibAudio: Put all classes in the Audio namespace and remove leading AAndreas Kling
2020-02-02LibGUI: Put all classes in the GUI namespace and remove the leading GAndreas Kling
This took me a moment. Welcome to the new world of GUI::Widget! :^)
2020-02-02LibCore: Put all classes in the Core namespace and remove the leading CAndreas Kling
I've been wanting to do this for a long time. It's time we start being consistent about how this stuff works. The new convention is: - "LibFoo" is a userspace library that provides the "Foo" namespace. That's it :^) This was pretty tedious to convert and I didn't even start on LibGUI yet. But it's coming up next.
2020-01-29CPUGraph.MenuApplet: execute SystemMonitor on left mousebutton clickOliver Kraitschy
2020-01-21MenuApplets: Use unveil()Andreas Kling
The Clock and Audio applets really only need ("/res", "r") for LibGUI. The CPUGraph applet also needs ("/proc/all", "r") for reading the CPU usage data. Somewhat surprisingly, this also adds ("/etc/passwd", "r") since CProcessStatisticsReader does username lookups.
2020-01-18Meta: Add license header to source filesAndreas Kling
As suggested by Joshua, this commit adds the 2-clause BSD license as a comment block to the top of every source file. For the first pass, I've just added myself for simplicity. I encourage everyone to add themselves as copyright holders of any file they've added or modified in some significant way. If I've added myself in error somewhere, feel free to replace it with the appropriate copyright holder instead. Going forward, all new source files should include a license header.
2020-01-17Kernel: Add "accept" pledge promise for accepting incoming connectionsAndreas Kling
This patch adds a new "accept" promise that allows you to call accept() on an already listening socket. This lets programs set up a socket for for listening and then dropping "inet" and/or "unix" so that only incoming (and existing) connections are allowed from that point on. No new outgoing connections or listening server sockets can be created. In addition to accept() it also allows getsockopt() with SOL_SOCKET and SO_PEERCRED, which is used to find the PID/UID/GID of the socket peer. This is used by our IPC library when creating shared buffers that should only be accessible to a specific peer process. This allows us to drop "unix" in WindowServer and LookupServer. :^) It also makes the debugging/introspection RPC sockets in CEventLoop based programs work again.
2020-01-12Applications+DevTools+MenuApplets: Drop "unix" pledge when possibleAndreas Kling
Now that the "unix" pledge is no longer required for socket I/O, we can drop it after making the connections we need in a program. In most GUI program cases, once we've connected to the WindowServer by instantiating a GApplication, we no longer need "unix" :^)
2020-01-11MenuApplets: Use pledge()Andreas Kling
2020-01-05WindowServer: Move menu related code from WindowManager to MenuManagerShannon Booth
Menus are now owned by menu manager instead of being split between the window manager and menu manager. If the window server wants to change a menu, or call menu related functionality, this will need to be done through the menu manager. Further refactoring is likely needed, but this seems like a good start for seperating menu logic from window logic.
2019-12-29Clock.MenuApplet: Only wake up once per secondAndreas Kling
This avoids an issue where we'd sometimes go longer than a whole second between updates. Thanks to Roman May for the suggestion! :^)
2019-12-28MenuApplets: Add gitignore for clock appletConrad Pankoff
2019-12-27MenuApplets: Add Clock applet, move code from WindowServer to the applet.Hüseyin ASLITÜRK
2019-12-25Build: support library and generator dependenciesjoshua stein
Instead of directly manipulating LDFLAGS, set LIB_DEPS in each subdirectory Makefile listing the libraries needed for building/linking such as "LIB_DEPS = Core GUI Draw IPC Core". This adds each library as an -L and -l argument in LDFLAGS, but also adds the library.a file as a link dependency on the current $(PROGRAM). This causes the given library to be (re)built before linking the current $(PROGRAM), but will also re-link any binaries depending on that library when it is modified, when running make from the root directory. Also turn generator tools like IPCCompiler into dependencies on the files they generate, so they are built on-demand when a particular directory needs them. This all allows the root Makefile to just list directories and not care about the order, as all of the dependency tracking will figure it out.