Commit graph

17 commits

Author SHA1 Message Date
Bill Currie
23e6b49845 [qwaq] Implement mouse enter/leave events 2020-03-19 15:55:57 +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
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
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
1d3c8d8a6c [qwaq] Sort out mess around placement of getwrect 2020-03-13 03:09:42 +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
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
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
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
ad4cde15b5 [qwaq] Get Window working
It even draws a border around itself.
2020-03-06 00:32:09 +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
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
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
Renamed from tools/qwaq/qwaq-view.r (Browse further)