VariablesView:
- Check to ensure the stack frame actually does have a function
object associated with it before attempting to use it, as this
isn't always the case.
It's now possible to configure the serial port through scripting:
hey SerialConnect set databits to 8
hey SerialConnect set parity to even
etc.
More useful is the ability to connect and disconnect from the port:
hey SerialConnect get port # returns "usb0"
hey SerialConnect set port to usb0
hey SerialConnect delete port
This allows a script to automatically disconnect SerialConnect, do
something with the serial port, and then reconnect SerialConnect. This
can be used for example to run a bootloader and update a firmware
through the same serial port used for debugging, something that's not
easily possible on other systems.
InspectorWindow:
- Inherit from Team::Listener and implement hook for thread state
change events.
- On thread state change, if the new state is stopped, and we have
an active block, release it, and ask to re-inspect.
- Factor out helper function for updating the active block.
- Always ensure the MemoryView is updated when we change blocks.
MemoryView:
- Clean up acquisition of target memory block.
This ensures that the block data is kept up to date when stepping
through code with an inspector window open.
Team:
- Remove expression evaluation event / listener hook. This doesn't
really belong to the Team anyways.
UserInterfaceListener:
- ExpressionEvaluationRequested() now takes an ExpressionInfo object
rather than the individual subcomponents.
ExpressionEvaluationJob:
- Notification of expression evaluation completion is now handled
via the info object's listener interface rather than the Team.
Others:
- Adjust all users of expressions to set themselves up as
ExpressionInfo::Listener subclasses, and consequently add themselves
to the respective info object when requesting evaluation. This
significantly simplifies various things, and also ensures that no
one accidentally gets notified of an expression they didn't actually
ask for, which could occur with the previous Team-based listener
interface. Make all other required adjustments for new interface
usage.
No functional change intended.
VariablesView:
- The view now keeps a mapping of a list of expressions associated
with functions.
- Add actions for adding/removing expressions to variables context menu.
- When setting up to show a new stack frame, also add corresponding expression
nodes and request their evaluation.
- Extend VariablesView::Listener interface to also encompass expression
evaluation requests.
- Don't add context actions for expression nodes.
TeamWindow:
- Implement VariablesView::Listener expression evaluation hook and forward
responses along.
- For expressions we need a Type object to represent their result
type. However, this doesn't need to map to an actual DwarfType,
as we won't need e.g. location and storage format information to
read it out of the target team, so instead derive a simple subclass
representing the appropriate result type.
- Since expression value nodes need to be handled quite differently from
other value nodes, and aren't specifically tied to variable object
instances, create distinct implementing subclasses ExpressionValueNode{Child}
to represent them.
- Add class ExpressionInfo to encapsulate the expression string and result type
of a particular expression instance.
- Add class ExpressionValues to map expression result values correlating to a
function, thread and expression for later use in highlighting changes.
Currently find display adapters and attached displays but nothing more.
I would like it to publish adapters and displays in dev tree, so that
you can open and control the adapter (get firmware, boot display) and
the adapter itself would have child devices for displays (brightness ..).
However that part could use some review, and since my time is limited it
is better to make it availble for others to work on as well.
* Make the buttons pixel-perfect clones of Mac OS 9
* Fix missing drawing of top border when inactive
* Some colors and size tweaks to be closer the Mac OS 9
Remaining problems:
* Does not work well for windows with no tab (eg alerts)
* Still missing the resize knob
* Does not show stack and tile
* Does not show command+opt resize/move highlights