summaryrefslogtreecommitdiff
path: root/LibGUI/Makefile
AgeCommit message (Collapse)Author
2019-03-25LibGUI: Add GWidget::doubleclick_event().Andreas Kling
Now double-clicking an item in a GTableView or GItemView will activate it.
2019-03-24LibGUI+FileManager: Add a GIcon class to support multi-size icons.Andreas Kling
A GIcon can contain any number of bitmaps internally, and will give you the best fitting icon when you call bitmap_for_size().
2019-03-23LibGUI: Add a GItemView class.Andreas Kling
This is a GAbstractView subclass that implements a icon-based view onto a GModel. It still need a bunch of work, but it's in basic usable shape.
2019-03-23LibGUI: Add GAbstractView base class for GTableView.Andreas Kling
This is in preparation for adding a new view class.
2019-03-23LibGUI: Rename GTableModel => GModel.Andreas Kling
2019-03-22LibGUI: Add a GProgressBar widget.Andreas Kling
2019-03-21WindowServer: Support PNG wallpapers.Andreas Kling
Fix up /bin/pape so it tells the WindowServer which wallpaper file to use.
2019-03-21SharedGraphics: Implement a simple PNG decoder.Andreas Kling
This is extremely unoptimized, but it does successfully load "folder32.png" so it must be at least somewhat correct. :^)
2019-03-20Move WindowServer into Servers.Andreas Kling
2019-03-19LibGUI: Add GInputBox for getting a string from a modal dialog.Andreas Kling
Use this to implement some of the toolbar actions in IRCClient. :^)
2019-03-19LibGUI: Implement nested event loops to support dialog boxes.Andreas Kling
This patch adds a simple GMessageBox that can run in a nested event loop. Here's how you use it: GMessageBox box("Message text here", "Message window title"); int result = box.exec(); The next step is to make the WindowServer respect the modality flag of these windows and prevent interaction with other windows in the same process until the modal window has been closed.
2019-03-18LibGUI: Add GTCPSocket and base class GSocket (inherits from GIODevice.)Andreas Kling
And use these to do the line-by-line reading automagically instead of having that logic in IRCClient. This will definitely come in handy.
2019-03-17LibGUI: Add GFile and base class GIODevice.Andreas Kling
Working with the LibC API's is tedious, so let's add some comfy C++ API's.
2019-03-16LibGUI: Factor out scrolling logic from GTableView into a GScrollableWidget.Andreas Kling
This then becomes the base class for GTableView. I'd like to share as much code as possible with GTextEditor and any other scrollable widgets.
2019-03-15LibGUI: Add a GStackWidget for many widgets sharing a single location.Andreas Kling
Call set_active_widget(GWidget*) to put a new widget on top.
2019-03-09Make it possible to sort a GTableModel by column+order.Andreas Kling
This is accomplished by putting a GSortingProxyTableModel between the model and the view. It's pretty simplistic but it works for this use case. :^)
2019-03-08WindowServer+LibGUI: Add a server-side clipboard.Andreas Kling
On the client side, use GClipboard's data() and set_data(String) to access the global clipboard. :^)
2019-03-07Begin working on a graphical TextEditor.Andreas Kling
It's gonna be a wrapper around a new GTextEditor widget so I can easily reuse the functionality anywhere I need it. :^)
2019-03-02LibGUI+WindowServer: Add app-global keyboard shortcuts.Andreas Kling
This patch adds a GShortcut class. Each GAction can have a GShortcut which will cause the event loop to listen for that key combination app-globally and activate the event in case it's pressed. The shortcut will also be displayed when the action is added to a menu. Use this to hook up Alt+Up with the "open parent directory" action in the FileManager app. :^)
2019-02-28LibGUI: Add GVariant class and use it for table model data.Andreas Kling
2019-02-28LibGUI: Take ProcessManager's process view and turn it into GTableView.Andreas Kling
Make it sufficiently generic that it can be reused for any table data. :^)
2019-02-26More compat work. Rename libraries from LibFoo.a => libfoo.aAndreas Kling
This makes it more straightforward to build a cross-compiler toolchain. Also move math stuff from LibC to LibM.
2019-02-22Move over to building all of userspace with i686-pc-serenity-g++.Andreas Kling
2019-02-22Switch over to building everything with i686-elf-g++.Andreas Kling
2019-02-20LibGUI: Add a GToolBar class that can be populated with GActions.Andreas Kling
The same action can be added to both a menu and a toolbar. Use this to put a toolbar into FileManager. This is pretty neat. :^)
2019-02-17Prune compiler flags a bit. Let's go with -march=i686 for now.Andreas Kling
2019-02-15Enable -Wimplicit-fallthrough.Andreas Kling
2019-02-12LibGUI: Add a GFontDatabase class that lets you enumerate fonts and more.Andreas Kling
"More" in this case being also giving you the ability to load a font by name. Use this as backend for Terminal's font menu. :^)
2019-02-12LibGUI: Add GAction class and make GMenu deal in actions rather than strings.Andreas Kling
2019-02-11Port all apps to GApplication.Andreas Kling
2019-02-11LibGUI: Add GMenu* and GApplication classes.Andreas Kling
2019-02-10Port Terminal to LibGUI.Andreas Kling
To facilitate listening for action on arbitrary file descriptors, I've added a GNotifier class. It's quite simple but very useful: GNotifier notifier(fd, GNotifier::Read); notifier.on_ready_to_read = [this] (GNotifier& fd) { // read from fd or whatever else you like :^) }; The callback will get invoked by GEventLoop when select() says we have something to read on the fd.
2019-02-10LibGUI: Start adding an automatic widget layout system.Andreas Kling
My needs are really quite simple, so I'm just going to add what I need as I go along. The first thing I needed was a simple box layout with widgets being able to say whether they prefer fixed or fill for both their vertical and horizontal sizes. I also made a simple GStatusBar so FileManager can show how many bytes worth of files are in the current directory.
2019-02-10LibGUI: Share code for widget rendering styles in a GStyle class.Andreas Kling
Since GScrollBar wants its internal buttons to look like GButtons, let's share the painting code between them.
2019-02-09LibGUI: Start working on a GScrollBar.Andreas Kling
This widget is far from finished, but it's off to a good start. Also added a GResizeEvent and GWidget::resize_event() so that widgets can react to being resized.
2019-02-08Don't use -mregparm=3 in userspace.Andreas Kling
It's pretty comfy having arguments in registers in the kernel for now though.
2019-02-06Clean up LDFLAGS a bit.Andreas Kling
While working on the ELF loader I was trying to keep binaries as simple as possible so I could understand them easily. Now that the ELF loader is mature and working fine, we can move closer towards ld defaults.
2019-02-02Add basic automatic dependency management to Makefiles.Andreas Kling
2019-01-20Rename all the LibGUI classes to GClassName.Andreas Kling