One of the critical issues in Control development for windows is
where a REALcontrol will live in:
1) In a true window (Window1)
2) In a PagePanel
3) In a tabpanel
4) In a RectControl
5) In a ContainerControl
Yes 5 different issues, depending on what the REALcontrol-in-
development will do. For the sake of simplicity, 2-4, and 5 can be
treated as one, while 5 has a particular limitation.
On windows we are creating a childHWND with the REALcontrolHWND as
parent, and then subclass the REALcontrolHWND to receive messages
>from the childHWND and respond accordingly. How we respond depends on
where the REALcontrol will live. In case 1, MouseDowns and KeyDowns
are being received and consumed by the childHWND and these events are
never reaching the parent (the REALcontrol), unless we redirect these
messages. From the point of our plugins, this is the desired
behavior, and corresponds to the notion that a child should receive
messages first.
However, when the REALcontrol lives elsewhere (cases 2-5), the child
is not receiving any mouse or key messages (a behavior corresponding
to what is always going on on the mac (with one exception)). We
either are forced to utilize the REALcontrolBehavior Callbacks to
send messages to the ChildHWND, or use the subclassed parent WndProc
to redirect WIN messages to the child.
How can we determine this difference? And how can we discriminate a
REALcontrol embedded in a panel from not embedded in a panel? In the
latter case we would like to fool the RBRuntime with a partly
overlapping REALcontrol on a panel, telling the RBRuntime not to
treat the REAlcontrol as part of a panel. Once the panel and
REALcontrol are created we want to move the REALcontrol within the
bounds of a panel and utilize the Changed event of the panel to hide
or show the REALcontrol. (This partly overlapping "would be" trick,
does not seem to work in a CC).
Is the above intended behavior, how should we code around it (should
we?), and how can we discriminate?
Alfred
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>
|