Age | Commit message (Collapse) | Author |
|
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.
|
|
This is in preparation for adding a new view class.
|
|
|
|
|
|
Fix up /bin/pape so it tells the WindowServer which wallpaper file to use.
|
|
This is extremely unoptimized, but it does successfully load "folder32.png"
so it must be at least somewhat correct. :^)
|
|
|
|
Use this to implement some of the toolbar actions in IRCClient. :^)
|
|
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.
|
|
And use these to do the line-by-line reading automagically instead of having
that logic in IRCClient. This will definitely come in handy.
|
|
Working with the LibC API's is tedious, so let's add some comfy C++ API's.
|
|
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.
|
|
Call set_active_widget(GWidget*) to put a new widget on top.
|
|
This is accomplished by putting a GSortingProxyTableModel between the model
and the view. It's pretty simplistic but it works for this use case. :^)
|
|
On the client side, use GClipboard's data() and set_data(String) to access
the global clipboard. :^)
|
|
It's gonna be a wrapper around a new GTextEditor widget so I can easily
reuse the functionality anywhere I need it. :^)
|
|
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. :^)
|
|
|
|
Make it sufficiently generic that it can be reused for any table data. :^)
|
|
This makes it more straightforward to build a cross-compiler toolchain.
Also move math stuff from LibC to LibM.
|
|
|
|
|
|
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. :^)
|
|
|
|
|
|
"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. :^)
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
Since GScrollBar wants its internal buttons to look like GButtons,
let's share the painting code between them.
|
|
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.
|
|
It's pretty comfy having arguments in registers in the kernel for now though.
|
|
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.
|
|
|
|
|