Nothing in GTK+ appears to be suited for what are virtually infinite
lists. Our workaround with GtkLabel and GtkScrolledWindow has been
heavily suboptimal and needs to be replaced.
Use Pango directly to handle our relatively simple needs.
Upgrades:
- the widget can be scrolled,
- keywords are repeated for each definition line,
- definition lines are now wrapped, and support 'g' and 'x' fields.
Downgrades:
- text can no longer be selected, so far.
Add options to format the output for the terminal, or IRC messages.
Changed the output format to separate dictionary name with a tab,
so it's now rather similar to tabfiles.
The defaults are unaffected, the row is always reverse, like it used to.
Having the deselected row just be underlined seems sensible.
It isn't currently possible to change /just/ the foreground or
the background colour of the selection, due to how ncurses works
with colours.
Bumped termo to enable requesting the appropriate events.
xcb_get_property is now also called with a length that is a multiple
of four so that we advance the offset properly.
Some cleanup.
Selection code should work pretty well by now. The amount of code
supporting it has more than doubled since GTK+.
As it happens, there is no real need to constantly poll for changes,
since XFixes can inform us of updates as they happen.
With GTK+ gone we've got dependencies and error handling under control.
XCB is a truly awful thing to learn, though.
Our method will never work on Wayland or Windows, so we don't miss out
on anything by abandoning the huge toolkit.
I've come to the conclusion that copyright mostly just stands in the way
of software development. In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.
The updated mail address, also used in my author/committer lines,
is shorter and looks nicer. People rarely interact anyway.