Bill Currie
12f7b52fff
[qwaq] Add initial qwaq debugger system
...
It's not hooked up yet, and only very basic functionality is
implemented, but I think this approach will work.
2020-03-24 19:52:35 +09:00
Bill Currie
e56d00f27f
[qwaq] Make qwaq_message_t more useful
...
Couldn't use @param because of its use in gcc as well as qfcc.
2020-03-24 19:52:00 +09:00
Bill Currie
0bbef18786
[qwaq] Make qwaq_add_event public
2020-03-24 19:50:05 +09:00
Bill Currie
60f9f4815a
[qwaq] Make qwaq_cond_init public
2020-03-24 19:48:57 +09:00
Bill Currie
baff891345
[qwaq] Rename cond_t to rwcond_t
2020-03-24 19:48:20 +09:00
Bill Currie
d867a1a9f1
[gamecode] Allow watch-point to be updated
...
With the watch-point address cached in a local var, it was not possible
to update the watch-point while the progs were executing.
2020-03-24 19:45:39 +09:00
Bill Currie
713150b41a
[gamecode] Add debug hooks to the VM engine
...
While there was a breakpoint hook, it was for only breakpoints and more
was needed. Now there's a generic hook that is called for tracing,
breakpoints, watch points, runtime errors and VM errors, with the
"event" type passed as the first parameter and a data pointer in the
second.
2020-03-24 19:45:10 +09:00
Bill Currie
148a351e94
[qwaq] Offset event coords only when positional
...
This fixes pgup/pgdn not working in the editor.
2020-03-24 13:46:26 +09:00
Bill Currie
995074269b
[qwaq] Handle some keys in the editor
...
Doesn't work yet, though.
2020-03-24 13:38:20 +09:00
Bill Currie
a75eeb6955
[qwaq] Remove unnecessary options flag
...
I don't think it will be necessary.
2020-03-24 13:36:54 +09:00
Bill Currie
d022c6c4bd
[qwaq] Disable updateScreenCursor
...
It's wrong for the current hierarchy and corrupts the view's owning
group. Thought is needed for how to proceed with cursor handling.
2020-03-24 13:34:45 +09:00
Bill Currie
77651dbcba
[qwaq] Implement focus handling
...
Sort of works (when not segfaulting due to problem fixed in next
commit).
2020-03-24 13:33:28 +09:00
Bill Currie
47b8f8dd6a
[qwaq] Remove useless protocols
...
The HandleEvent protocols wound up being unnecessary.
2020-03-24 13:27:35 +09:00
Bill Currie
1d6843d7f0
[gamecode] Improve watchpoint handling a little
...
Mostly just update the old value if the condition didn't trigger.
2020-03-24 13:26:35 +09:00
Bill Currie
753d183d82
[gamecode] Be more informative with function calls
...
PR_EnterFunction and PR_LeaveFunction now print the
entered/left/returned function when tracing. Makes debugging obj code
much easier.
2020-03-24 13:24:55 +09:00
Bill Currie
30519e93fb
[qwaq] Move mouse event offsetting to Window
...
This way, Group doesn't need to query its owner's position.
2020-03-23 23:59:54 +09:00
Bill Currie
8707ac0d57
[qwaq] Add a guard to formatLine
...
I got really weird error (invalid panel passed to top_panel) when there
was no such call, so I guess there was some memory corruption.
formatLine is the only suspect, but when I put in the guard, the error
wasn't reproduced (just scrolling through qwaq's makefile in a big
window).
2020-03-23 23:18:02 +09:00
Bill Currie
52722b73c1
[qwaq] Adjust edge window control lengths
...
I'd forgotten them when adjusting the corner control sizes
2020-03-23 23:03:35 +09:00
Bill Currie
622b5f4c45
[qwaq] Fix the handling of overlapping views
...
This even simplifies the logic for mouse enter/leave handling, a nice
bonus.
2020-03-23 22:35:30 +09:00
Bill Currie
8b193c6b6c
[qwaq] Remove some debug prints
2020-03-23 22:28:18 +09:00
Bill Currie
ba3efca8e5
[qwaq] Make the corner window controls 2x2
...
This makes them a little easier to grab but exposes a bug in Group
handleEvent when views partially overlap.
2020-03-23 22:27:08 +09:00
Bill Currie
1479880954
[qwaq] Add window control buttons
...
With this, windows can be resized using any of the corners or the three
sides other than top (top side is move-only, otherwise moving a window
without resizing would be impossible).
2020-03-23 22:10:03 +09:00
Bill Currie
467115429e
[qwaq] Add gfGrowNone and a grow mode setter
...
gfGrowNone is just to allow not growing with the owner to be explicitly
stated.
2020-03-23 22:08:30 +09:00
Bill Currie
731a123b79
[qwaq] Add a title bar
...
The title bar is special in that it is always centered at the top of its
owner, thus it takes no rect.
2020-03-23 22:01:13 +09:00
Bill Currie
19a4efed16
[qwaq] Add support for invisible buttons
...
Useful for window controls.
2020-03-23 22:00:05 +09:00
Bill Currie
afda214487
Adjust some whitespace
2020-03-23 20:18:12 +09:00
Bill Currie
9bc91cd7d1
[qwaq] Implement resizing
...
Terminal resize is detected and the views adjust appropriately (well,
those for which I've set grow flags: the window title bar doesn't adjust
yet).
2020-03-23 20:14:32 +09:00
Bill Currie
d0c8d75e92
Clean up unnecessary includes of signal.h
2020-03-23 16:18:08 +09:00
Bill Currie
9986b57a77
[console] Use sig_atomic_t for SIGWINCH
...
If it's not defined on other platforms, something can be done in
config.h
2020-03-23 16:16:50 +09:00
Bill Currie
178c8dec85
[console] Fix server console resize
...
I goofed when doing the win32 fixes
2020-03-23 16:01:07 +09:00
Bill Currie
eb386826d3
[util] Fix some missed signal calls
...
*sigh*
2020-03-23 15:28:12 +09:00
Bill Currie
a9c6974fc7
[audio] Quieten jack about xruns
...
They messages are annoying at the moment, but I will want them when I
get around to chasing down the root cause, so hidden behind a developer
mask.
2020-03-23 15:19:05 +09:00
Bill Currie
4a61ff0d35
[util] Switch to using sigaction for signal handling
...
This allows for much more consistent semantics when dealing with
signals.
2020-03-23 15:15:39 +09:00
Bill Currie
1dd05a8ac9
[qwaq] Fix an uninitialized var warning
2020-03-22 23:58:58 +09:00
Bill Currie
bde3124533
[qwaq] Fix some more formatLine cases
...
I think this is all of them. Scrolling around in a file, including
having the end of file visible in the window, seems to work well.
2020-03-22 23:50:27 +09:00
Bill Currie
16c60655e7
[qwaq] Implement scrolling via mouse wheel
...
Line formatting segs when scrolling horizontally through a tab, but...
things ware working nicely.
2020-03-22 22:42:56 +09:00
Bill Currie
8694798943
[qwaq] Fix line formatting for the simple case
...
That is, known to be working for the simple case (no tabs, no horizontal
scroll).
2020-03-22 22:13:35 +09:00
Bill Currie
10adb116ef
[qwaq] Start working on the source view/editor
...
Line formatting is a bit messed up, but other than non-virtual text
being double-counted, things seem to be ok (view only).
2020-03-22 22:03:34 +09:00
Bill Currie
ee9d3a36ab
[qwaq] Add an editor buffer
...
It's a fairly high-level wrapper for TextBuffer in that it implements
file ops (load/save), searching, navigation, and formatting (simple
line-oriented with tab stops (currently at 4 spaces)).
2020-03-22 21:31:30 +09:00
Bill Currie
4dbf280012
[util] Add a means to open a gap in a text buffer
...
for loading files into the buffer.
2020-03-22 20:19:25 +09:00
Bill Currie
63a2204fa5
[qwaq] Fix incorrect mouse wheel bits
...
I thought I fixed that already (mistreating mouse 3 as part of the wheel
group).
2020-03-22 14:24:12 +09:00
Bill Currie
f3c68eaada
Implement mouse auto events
...
These are for when a button is held down: good for scroll bar arrows
etc.
2020-03-22 14:06:27 +09:00
Bill Currie
5cdd1931b7
[qwaq] Remove some debug
2020-03-22 13:56:31 +09:00
Bill Currie
50290baf04
[qwaq] Add missing part of commit
2020-03-22 13:54:54 +09:00
Bill Currie
75f38f456b
[qwaq] Fix a linker warning that had been hiding
2020-03-22 13:49:42 +09:00
Bill Currie
fc44582726
[qwaq] Parse function keys
...
While the key escape sequences are xterm-specific, they are only the
default and preliminary provision has been made for overriding them.
However, no override mechanism has been implemented beyond using dynamic
table lookup.
2020-03-22 13:47:44 +09:00
Bill Currie
28f50d2719
Add function key defs up to F48
...
This allows for the four combinations of shift and control. Not
bothering with alt because alt-f4 closes my xterm (bbkeys from the looks
of it: it grabs a bunch of Mod1-* keys).
2020-03-22 13:46:27 +09:00
Bill Currie
84cff64f99
Remove many key number hard-codings
...
I left the ones below 256 alone (some were necessary anyway), but above
256 they were almost entirely sequential, which rather defeats the
purpose of using an enum, especially since it makes it difficult to
expand sections.
2020-03-22 11:18:44 +09:00
Bill Currie
275ed22362
[qwaq] Actually ensure tv_nsec is valid
...
While typing the previous message I thought to check my "carry" logic.
Sure enough, it was wrong... out by 1. I guess I won the threading
lottery :P
2020-03-22 08:40:51 +09:00
Bill Currie
486728a4bd
[qwaq] Be a little paranoid about cond wait timeouts
...
I'd left qwaq-curses running overnight and found it locked up: both
threads were looping because pthread_cond_timedwait was returning
EINVAL. Thus bail if anything other than 0 is returned, and try to
ensure tv_nsec is in the range 0..999999999
2020-03-22 08:35:37 +09:00