|
| ~JXWidget () override |
|
void | Deactivate () override |
|
void | Refresh () const override |
|
void | RefreshRect (const JRect &rect) const |
|
void | Redraw () const override |
|
void | RedrawRect (const JRect &rect) const |
|
bool | Focus () |
|
bool | Unfocus () |
|
bool | HasFocus () const |
|
bool | WillAcceptFocus () const |
|
void | SetSingleFocusWidget () |
|
virtual bool | OKToUnfocus () |
|
bool | WantsTab () const |
|
bool | WantsModifiedTab () const |
|
virtual void | HandleKeyPress (const JUtf8Character &c, const int keySym, const JXKeyModifiers &modifiers) |
|
bool | WillAcceptShortcut () const |
|
virtual void | HandleShortcut (const int key, const JXKeyModifiers &modifiers) |
|
JPoint | GlobalToLocal (const JCoordinate x, const JCoordinate y) const override |
|
JPoint | LocalToGlobal (const JCoordinate x, const JCoordinate y) const override |
|
void | Place (const JCoordinate enclX, const JCoordinate enclY) override |
|
void | Move (const JCoordinate dx, const JCoordinate dy) override |
|
void | SetSize (const JCoordinate w, const JCoordinate h) override |
|
void | AdjustSize (const JCoordinate dw, const JCoordinate dh) override |
|
HSizingOption | GetHSizing () const |
|
VSizingOption | GetVSizing () const |
|
void | SetSizing (const HSizingOption hSizing, const VSizingOption vSizing) |
|
void | CenterWithinEnclosure (const bool adjustHoriz, const bool adjustVert) |
|
void | FitToEnclosure (const bool fitHoriz=true, const bool fitVert=true) |
|
bool | Scroll (const JCoordinate dx, const JCoordinate dy) |
|
bool | ScrollTo (const JCoordinate x, const JCoordinate y) |
|
bool | ScrollTo (const JPoint &pt) |
|
bool | ScrollToRect (const JRect &r) |
|
bool | ScrollToRectCentered (const JRect &r, const bool forceScroll) |
|
JRect | GetBoundsGlobal () const override |
|
JRect | GetFrameGlobal () const override |
|
JRect | GetApertureGlobal () const override |
|
JSize | GetBorderWidth () const |
|
void | SetBorderWidth (const JSize width) |
|
JColorID | GetCurrBackColor () const |
|
JColorID | GetBackColor () const |
|
void | SetBackColor (const JColorID color) |
|
JColorID | GetFocusColor () const |
|
void | SetFocusColor (const JColorID color) |
|
JString | ToString () const override |
|
virtual JPoint | GlobalToLocal (const JCoordinate x, const JCoordinate y) const=0 |
|
JPoint | GlobalToLocal (const JPoint &pt) const |
|
JRect | GlobalToLocal (const JRect &r) const |
|
virtual JPoint | LocalToGlobal (const JCoordinate x, const JCoordinate y) const=0 |
|
JPoint | LocalToGlobal (const JPoint &pt) const |
|
JRect | LocalToGlobal (const JRect &r) const |
|
| ~JXContainer () override |
|
bool | IsAncestor (JXContainer *obj) const |
|
virtual void | Show () |
|
virtual void | Hide () |
|
bool | IsVisible () const |
|
void | SetVisible (const bool vis) |
|
bool | WouldBeVisible () const |
|
virtual void | Activate () |
|
bool | IsActive () const |
|
void | SetActive (const bool active) |
|
bool | WouldBeActive () const |
|
virtual void | Suspend () |
|
virtual void | Resume () |
|
bool | IsSuspended () const |
|
bool | IsDNDSource () const |
|
bool | IsDNDTarget () const |
|
JPoint | GlobalToLocal (const JPoint &pt) const |
|
JRect | GlobalToLocal (const JRect &r) const |
|
JPoint | LocalToGlobal (const JPoint &pt) const |
|
JRect | LocalToGlobal (const JRect &r) const |
|
JRect | GetBounds () const |
|
JCoordinate | GetBoundsWidth () const |
|
JCoordinate | GetBoundsHeight () const |
|
JRect | GetFrame () const |
|
JRect | GetFrameLocal () const |
|
JCoordinate | GetFrameWidth () const |
|
JCoordinate | GetFrameHeight () const |
|
JRect | GetAperture () const |
|
JCoordinate | GetApertureWidth () const |
|
JCoordinate | GetApertureHeight () const |
|
JXDisplay * | GetDisplay () const |
|
JXWindow * | GetWindow () const |
|
JXContainer * | GetEnclosure () const |
|
JFontManager * | GetFontManager () const |
|
JXFontManager * | GetXFontManager () const |
|
JXSelectionManager * | GetSelectionManager () const |
|
JXDNDManager * | GetDNDManager () const |
|
JXMenuManager * | GetMenuManager () const |
|
JCursorIndex | GetDefaultCursor () const |
|
bool | GetHint (JString *text) const |
|
void | SetHint (const JString &text) |
|
void | ClearHint () |
|
bool | GetVisibleRectGlobal (const JRect &origRectG, JRect *visRectG) const |
|
void | ForEach (const std::function< void(JXContainer *)> &f, const bool recurse) |
|
void | ForEach (const std::function< void(const JXContainer *)> &f, const bool recurse) const |
|
void | ExpandToFitContent () |
|
virtual bool | RunInternalFTC (const bool horizontal, JCoordinate *newSize) |
|
JRect | ComputePaddingForInternalFTC () const |
|
bool | FindContainer (const JPoint &ptG, JXContainer **container) const |
|
virtual bool | IsMenu () const |
|
virtual bool | IsMenuTable () const |
|
| JBroadcaster () |
|
virtual | ~JBroadcaster () |
|
JBroadcaster & | operator= (const JBroadcaster &source) |
|
bool | HasSenders () const |
|
JSize | GetSenderCount () const |
|
bool | HasRecipients () const |
|
JSize | GetRecipientCount () const |
|
template<class T > |
void | ListenTo (const JBroadcaster *sender, const std::function< void(const T &)> &f) |
|
|
| JXWidget (JXContainer *enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h) |
|
void | WantInput (const bool wantInput, const bool wantTab=false, const bool wantModifiedTab=false) |
|
virtual void | HandleFocusEvent () |
|
virtual void | HandleUnfocusEvent () |
|
virtual void | HandleWindowFocusEvent () |
|
virtual void | HandleWindowUnfocusEvent () |
|
void | UnlockBounds () |
|
void | SetBounds (const JCoordinate w, const JCoordinate h) |
|
void | AdjustBounds (const JCoordinate dw, const JCoordinate dh) |
|
void | DrawBackground (JXWindowPainter &p, const JRect &frame) override |
|
bool | AcceptDrag (const JPoint &pt, const JXMouseButton button, const JXKeyModifiers &modifiers) override |
|
JXDragPainter * | CreateDragInsidePainter () |
|
JXDragPainter * | CreateDragOutsidePainter () |
|
bool | GetDragPainter (JXDragPainter **p) const |
|
bool | GetDragPainter (JPainter **p) const |
|
void | DeleteDragPainter () |
|
void | BoundsMoved (const JCoordinate dx, const JCoordinate dy) override |
|
void | EnclosingBoundsMoved (const JCoordinate dx, const JCoordinate dy) override |
|
void | BoundsResized (const JCoordinate dw, const JCoordinate dh) override |
|
void | EnclosingBoundsResized (const JCoordinate dw, const JCoordinate dh) override |
|
virtual void | ApertureMoved (const JCoordinate dx, const JCoordinate dy) |
|
virtual void | ApertureResized (const JCoordinate dw, const JCoordinate dh) |
|
void | FTCAdjustSize (const JCoordinate dw, const JCoordinate dh) override |
|
bool | BeginDND (const JPoint &pt, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers, JXSelectionData *data, JXDNDManager::TargetFinder *targetFinder=nullptr) |
|
virtual void | DNDInit (const JPoint &pt, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) |
|
virtual void | GetSelectionData (JXSelectionData *data, const JString &id) |
|
virtual void | DNDFinish (const bool isDrop, const JXContainer *target) |
|
virtual void | DNDCompletelyFinished () |
|
virtual Atom | GetDNDAction (const JXContainer *target, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) |
|
virtual void | GetDNDAskActions (const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers, JArray< Atom > *askActionList, JPtrArray< JString > *askDescriptionList) |
|
virtual void | HandleDNDResponse (const JXContainer *target, const bool dropAccepted, const Atom action) |
|
bool | WillAllowUnboundedScrolling () const |
|
void | ShouldAllowUnboundedScrolling (const bool allow) |
|
| JXContainer (JXWindow *window, JXContainer *enclosure) |
|
| JXContainer (JXDisplay *display, JXWindow *window, JXContainer *enclosure) |
|
void | TurnOnBufferedDrawing () |
|
void | DrawAll (JXWindowPainter &p, const JRect &frameG) |
|
virtual void | Draw (JXWindowPainter &p, const JRect &rect)=0 |
|
virtual void | DrawBorder (JXWindowPainter &p, const JRect &frame)=0 |
|
virtual void | HandleMouseEnter () |
|
virtual void | HandleMouseHere (const JPoint &pt, const JXKeyModifiers &modifiers) |
|
virtual void | HandleMouseLeave () |
|
virtual void | HandleMouseDown (const JPoint &pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) |
|
virtual void | HandleMouseDrag (const JPoint &pt, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) |
|
virtual void | HandleMouseUp (const JPoint &pt, const JXMouseButton button, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) |
|
virtual bool | HitSamePart (const JPoint &pt1, const JPoint &pt2) const |
|
virtual bool | WillAcceptDrop (const JArray< Atom > &typeList, Atom *action, const JPoint &pt, const Time time, const JXWidget *source) |
|
virtual void | HandleDNDEnter () |
|
virtual void | HandleDNDHere (const JPoint &pt, const JXWidget *source) |
|
virtual void | HandleDNDLeave () |
|
virtual void | HandleDNDDrop (const JPoint &pt, const JArray< Atom > &typeList, const Atom action, const Time time, const JXWidget *source) |
|
virtual void | HandleDNDScroll (const JPoint &pt, const JXMouseButton scrollButton, const JXKeyModifiers &modifiers) |
|
bool | DispatchClientMessage (const XClientMessageEvent &clientMessage) |
|
virtual bool | HandleClientMessage (const XClientMessageEvent &clientMessage) |
|
void | NotifyBoundsMoved (const JCoordinate dx, const JCoordinate dy) |
|
void | NotifyBoundsResized (const JCoordinate dw, const JCoordinate dh) |
|
virtual bool | IncludeInFTC () const |
|
virtual bool | NeedsInternalFTC () const |
|
virtual JCoordinate | GetFTCMinContentSize (const bool horizontal) const |
|
virtual JRect | GetFrameForFTC () const |
|
bool | GetEnclosedObjects (JPtrArrayIterator< JXContainer > **iter) const |
|
void | DeleteEnclosedObjects () |
|
void | ShowCursor () |
|
void | HideCursor () |
|
void | SetDefaultCursor (const JCursorIndex index) |
|
void | DispatchCursor (const JPoint &ptG, const JXKeyModifiers &modifiers) |
|
virtual void | AdjustCursor (const JPoint &pt, const JXKeyModifiers &modifiers) |
|
void | DisplayCursor (const JCursorIndex index) |
|
JXCursorAnimator * | CreateCursorAnimator () |
|
JXCursorAnimator * | GetCursorAnimator () const |
|
void | AnimateCursor () const |
|
void | RemoveCursorAnimator () |
|
void | ActivateCursor (const JPoint &ptG, const JXKeyModifiers &modifiers) |
|
void | DeactivateCursor () |
|
std::ostream & | GetFTCLog () const |
|
virtual bool | StealMouse (const int eventType, const JPoint &ptG, const JXMouseButton button, const unsigned int state) |
|
| JBroadcaster (const JBroadcaster &source) |
|
void | ListenTo (const JBroadcaster *sender) |
|
void | StopListening (const JBroadcaster *sender) |
|
void | ClearWhenGoingAway (const JBroadcaster *sender, void *pointerToMember) |
|
void | StopListening (const JBroadcaster *sender, const std::type_info &messageType) |
|
template<class T > |
void | Send (JBroadcaster *recipient, const T &message) |
|
template<class T > |
void | Broadcast (const T &message) |
|
virtual void | Receive (JBroadcaster *sender, const Message &message) |
|
void | SendWithFeedback (JBroadcaster *recipient, Message *message) |
|
void | BroadcastWithFeedback (Message *message) |
|
virtual void | ReceiveWithFeedback (JBroadcaster *sender, Message *message) |
|
virtual void | ReceiveGoingAway (JBroadcaster *sender) |
|
Frame is the bounding rect that the user sees in the window. Aperture
is the bounding rect of the area that can be drawn to in the window and
is smaller than the frame. Bounds is the actual size of the Widget,
which can be larger or smaller than Aperture. If it is smaller, it is
stuck in the upper left corner of Aperture. If it is larger, it can
scroll, but Aperture must always be entirely inside Bounds. The default
is Bounds locked equal to Aperture. Use UnlockBounds() to change this.
Global coordinates are defined by the upper left corner of the window.
Local coordinates are defined by the upper left corner of Bounds.
Enclosure coordinates are the local coordinates of the enclosing Widget.
All rectangles are stored in global coordinates. Frame can be gotten in
enclosure or global coordinates. Bounds and Aperture can be gotten in
local or global coordinates.
Moving the Frame (Place,Move) is done in enclosure coordinates.
Changing the Frame size (SetSize,AdjustSize) and incremental scrolling
(Scroll) are obviously independent of the coordinate system. Absolute
scrolling (ScrollTo, ScrollToRect) uses local coordinates.
This class also implements the keypress dispatcher and default event
handling (do nothing) so derived classes only have to implement handlers
for the events that they support.
If the contents of the object must be validated before focus can shift
to something else, override OKToUnfocus(). If this returns false,
you will retain the focus.
HandleKeyPress is public because key press events have to propagate from
leaf to root of the enclosure tree, unlike mouse events that propagate
from root to leaf. HandleShortcut is public because JXWindow needs to
call it, and there is no harm in letting others call it.