Bill Currie
bd3884f6fa
[qwaq] Add a button class
...
It may or may not work just yet, but I think it's the right direction.
2020-03-19 13:52:14 +09:00
Bill Currie
6a18b1dd55
[qwaq] Add function to merge extents
...
It's pretty much the union of two rectangles with the same origin.
2020-03-19 13:51:14 +09:00
Bill Currie
03f87d6f27
[qwaq] Add pos Point alias
2020-03-19 13:50:35 +09:00
Bill Currie
8c3cf83f02
[qwaq] Add Listener and ListenerGroup delegates
...
Simple single parameter (caller) direct messages.
2020-03-19 13:49:27 +09:00
Bill Currie
01835cbd94
[qwaq] Add blitFromBuffer to TextContext protocol
2020-03-19 13:48:48 +09:00
Bill Currie
2f3ca9d9e4
[qwaq] Clean up the hierarchy
...
I think I've finally figured out what I want the core hierarchy to be.
Right now, it's just the two classes: View and Window (derived from
View). Window has a Group, and Group is just a collection of Views that
it manages. QwaqApplication is just an object but like a Window, it has
a Group of views.
View
Window has a Group
Group contains Views
QwaqApplication has a group
More work needs to be done on drawing and event handling, but things are
working again.
2020-03-19 11:32:44 +09:00
Bill Currie
b16093a533
[qwaq] Split out Array(Group) interface
2020-03-19 11:04:02 +09:00
Bill Currie
f6f6b2cba3
[qwaq] Doc the issue number for blit slug
2020-03-18 01:40:58 +09:00
Bill Currie
affadc3d25
[qwaq] Create protocols for DrawBuffer and TextContext
...
Plenty of flaws at the moment (casts to id :/), but the basic idea seems
to be ok.
2020-03-18 01:40:41 +09:00
Bill Currie
e5bc6dd8b6
[qwaq] Split Array(Group) into its own file
2020-03-18 01:12:23 +09:00
Bill Currie
28a8c1fda7
[qwaq] Implement more curses wrappers
2020-03-17 14:05:31 +09:00
Bill Currie
877ad35a82
[qwaq] Rework the hierarchy again
...
It doesn't work right now because View unconditionally sends refresh to
its textContext, but textContext can be a draw buffer which does not
respond to refresh. Still, these changes (notably the assignment chain
in qwaq-group.r really pushed qfcc).
2020-03-14 19:45:07 +09:00
Bill Currie
6001abbfdb
[qwaq] Use the now working compound init more
2020-03-13 10:00:05 +09:00
Bill Currie
45acbddb79
[qwaq] Make DrawBuffer and TextContext sizes available
2020-03-13 03:09:42 +09:00
Bill Currie
1d3c8d8a6c
[qwaq] Sort out mess around placement of getwrect
2020-03-13 03:09:42 +09:00
Bill Currie
d0f21ec2b4
[qwaq] Add -refresh to TextContext
...
This does the right thing in the presence of panels and dealing with
stdscr.
2020-03-13 03:09:42 +09:00
Bill Currie
3defe50be6
[qwaq] Add printf builtin to ease debugging
2020-03-13 02:41:08 +09:00
Bill Currie
7f9a415cbc
[qwaq] Get DrawBuffer and TextContext working
...
Especially blitting whole regions. Partial regions not tested yet.
2020-03-13 02:36:53 +09:00
Bill Currie
ce67d9b202
[qwaq] Flesh out DrawBuffer's methods
2020-03-10 19:27:26 +09:00
Bill Currie
b3850bbc69
[qwaq] Implement blitting from draw buffer to text
...
Sending the data out to curses.
2020-03-10 19:23:51 +09:00
Bill Currie
f91fb4f840
[qwaq] Add an mvwblit_line builtin
...
I had to do my own thing with curses as the function I had planned to
use turned out to be quite different from what I wanted (misread the man
page).
2020-03-10 18:21:06 +09:00
Bill Currie
fb92ee12d6
[qwaq] Set event type to none when no events
...
Fixes the endless looping on the last event.
2020-03-10 03:11:21 +09:00
Bill Currie
f9d798c314
[qwaq] Use forwarding for some text methods
...
refresh won't be in the drawing buffer protocol, and the move commands
need to be offset by the view's position in its window, but it works as
intended.
2020-03-10 02:58:30 +09:00
Bill Currie
e9eab68366
[qwaq] Begin work on local drawing buffers
2020-03-10 02:39:18 +09:00
Bill Currie
0780cca496
[qwaq] Fixed swapped method implementations
...
That was fun
2020-03-08 22:21:15 +09:00
Bill Currie
8fc007648c
[qwaq] Add missed command enum string
2020-03-08 22:20:46 +09:00
Bill Currie
89cf9f9523
[qwaq] Use Sys_Printf for load error messages
...
It gets them into the log file.
2020-03-08 22:19:37 +09:00
Bill Currie
f0ecf7b30a
[qwaq] Clean out log file with make clean
2020-03-06 20:43:38 +09:00
Bill Currie
1250fe7446
[qwaq] Use a log file instead of stderr
...
Now I don't have to worry about remembering to redirect the output, but
debugging is still easy.
2020-03-06 18:29:16 +09:00
Bill Currie
b8b74fc074
[qwaq] Implement missing addch
...
I either forgot about it, or just didn't need it at the time, but I'm
sure it will be useful later when more stuff is implemented.
2020-03-06 17:57:33 +09:00
Bill Currie
9a96a9b2c9
[qwaq] Use own version of positional drawing in Window
...
Double offsetting the prints doesn't quite look right ;)
2020-03-06 17:46:36 +09:00
Bill Currie
d0a249590c
[qwaq] Use self where possible for drawing in Window
2020-03-06 17:45:58 +09:00
Bill Currie
bea64838cc
[qwaq] Use new TextContext
...
Not quite right yet, but it worked first try (once I got another
compiler bug sorted).
2020-03-06 17:38:27 +09:00
Bill Currie
ba9c43d2d3
[qwaq] Create a TextContext class
...
It is essentially just a wrapper around the window versions of ncurses
functions.
2020-03-06 13:54:46 +09:00
Bill Currie
40ae7a7f19
[qwaq] Implement ofDontDraw
...
The conditional selector performance seems to work nicely, but I've
found a mistake with View.window (partly, realizing why my old lib (and
probably TV in the first place) had separate textContext and buffers
between views and groups).
2020-03-06 11:53:40 +09:00
Bill Currie
6bf2fd546d
[qwaq] Extend Array makeObjectsPerform methods
...
Added conditional message sending and reversed traversal of the array.
2020-03-06 11:27:31 +09:00
Bill Currie
ad4cde15b5
[qwaq] Get Window working
...
It even draws a border around itself.
2020-03-06 00:32:09 +09:00
Bill Currie
f18e3c3ad7
[qwaq] Add wborder command
2020-03-06 00:31:29 +09:00
Bill Currie
971caf553d
[qwaq] Add debug output to the command queue
...
Be sure to redirect stderr or the screen will get messed up
2020-03-06 00:30:11 +09:00
Bill Currie
c377b324a1
[qwaq] Add Group and clean up lots of mess
...
Things are finally doing something again, and getting closer to having a
moveable window.
2020-03-05 15:44:53 +09:00
Bill Currie
f3236410d0
[qwaq] Make the event system more informative
...
Doesn't have timestamps at this stage, but otherwise it reflects the
event system I had in my old text UI which was heavily based on
TurboVision. TV is pretty good (after looking at things a bit closer I
found it wasn't as deep as I thought), and better yet, Borland released
it to the public domain 23 years ago! (wish I'd known that).
Anyway, this commit gets something happening on the screen, even though
the current hierarchy is still a mess.
2020-03-04 22:09:40 +09:00
Bill Currie
815ae02121
[qwaq] Allocate enough bytes for the args list
...
d'oh
2020-03-04 21:17:17 +09:00
Bill Currie
d57e05258c
[qwaq] Remove now unnecessary union field name
...
\o/
2020-03-04 19:10:09 +09:00
Bill Currie
c58cf2c2d0
[qwaq] Fail at object oriented design 101
...
This is horrible, doesn't work, isn't really the direction I want to go
(that became apparent while implementing Screen's handleEvent) and
crashes anyway (Array and not-id...)
*sigh*
Still, this does have some good stuff in it, and it pushed qfcc along
some more.
2020-03-03 21:32:19 +09:00
Bill Currie
bb25057feb
[qwaq] Quickly Workaround Access Qualifications
...
:)
2020-03-03 10:47:34 +09:00
Bill Currie
50d39d64cb
[qwaq] Link against build ruamoko libs, not installed
2020-03-03 09:30:20 +09:00
Bill Currie
d91289ea1b
[qwaq] Remove unnecessary wrefresh calls
2020-03-02 18:43:27 +09:00
Bill Currie
33a07c0f6b
[qwaq] Make command buffer larger for now
...
A small one should be fine once threading is working.
2020-03-02 18:30:58 +09:00
Bill Currie
6f1386fa0d
[qwaq] Test out acs chars and the classes
...
Crashes due to flooding the command buffer, but otherwise works (with
larger buffer).
2020-03-02 18:29:31 +09:00
Bill Currie
b9ab30ff59
[qwaq] Add mvwaddch and ACS support
2020-03-02 18:27:08 +09:00
Bill Currie
a0c4d56668
[qwaq] Continue processing on void commands
...
If the last command in the buffer had no parameters, its length would be
only 2 and thus processing would stop before reading the command from
the buffer.
2020-03-02 18:19:41 +09:00
Bill Currie
fa66e9fc2f
[qwaq] Move queue handling into separate functions
...
This makes it so I need to edit only one place when I get threads
working. Also, it fixes some bugs (eg, panel creation wasn't implemented
correctly).
2020-03-02 18:15:31 +09:00
Bill Currie
d88a091fc6
[qwaq] Use protocols to distinguish object abilities
...
Well, that took a fair bit more than it should have to get working: had
to implement the protocol support in qfcc and engine-side ruamoko.
2020-03-02 15:22:54 +09:00
Bill Currie
92cb3a5285
[qwaq] Flatten the hierarchy and do some cleanup
2020-03-01 18:25:02 +09:00
Bill Currie
4d076da4b6
[qwaq] Fix warning hidden by type alias bug
2020-03-01 16:15:33 +09:00
Bill Currie
df2ed4b086
[qwaq] Move from tools to ruamoko
...
This fixes the dependency issues between qwaq and ruamoko. qwaq is
actually older than ruamoko. That little language feature test has come
a long way.
However, I'm considering moving to non-recursive make, but...
2020-03-01 00:55:15 +09:00