|
| JXMenu (const JString &title, JXContainer *enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h) |
|
| JXMenu (JXImage *image, const bool menuOwnsImage, JXContainer *enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h) |
|
| JXMenu (const JString &title, JXImage *image, const bool menuOwnsImage, JXContainer *enclosure, const HSizingOption hSizing, const VSizingOption vSizing, const JCoordinate x, const JCoordinate y, const JCoordinate w, const JCoordinate h) |
|
| JXMenu (JXMenu *owner, const JIndex itemIndex, JXContainer *enclosure) |
|
| ~JXMenu () override |
|
bool | IsOpen () const |
|
const JString & | GetTitleText () const |
|
bool | GetTitleText (const JString **text) const |
|
bool | GetTitleImage (const JXImage **image) const |
|
void | SetTitle (const JString &title, JXImage *image, const bool menuOwnsImage) |
|
void | SetTitleText (const JString &title) |
|
void | SetTitleImage (JXImage *image, const bool menuOwnsImage) |
|
void | SetTitleFontName (const JString &fontName) |
|
void | SetTitleFontSize (const JSize size) |
|
void | SetTitleFontStyle (const JFontStyle &style) |
|
void | SetTitleFont (const JFont &font) |
|
const JPoint & | GetTitlePadding () const |
|
void | SetTitlePadding (const JPoint &p) |
|
void | SetShortcuts (const JString &list) |
|
template<class T > |
void | AttachHandler (T *target, void(T::*handler)(const JIndex i)) |
|
template<class T > |
void | AttachHandlers (T *target, void(T::*updater)(), void(T::*handler)(const JIndex i)) |
|
void | AttachHandlers (JBroadcaster *target, const std::function< void(void)> &updater, const std::function< void(const JIndex)> &handler) |
|
bool | IsEmpty () const |
|
JSize | GetItemCount () const |
|
void | RemoveItem (const JIndex index) |
|
void | RemoveAllItems () |
|
bool | GetItemShortcuts (const JIndex index, JString *shortcuts) const |
|
void | SetItemShortcuts (const JIndex index, const JString &shortcuts) |
|
bool | GetItemID (const JIndex index, const JString **id) const |
|
void | SetItemID (const JIndex index, const JString &id) |
|
bool | ItemIDToIndex (const JString &targetID, JIndex *index) const |
|
bool | IsEnabled (const JIndex index) const |
|
void | EnableItem (const JIndex index) |
|
void | EnableAll () |
|
void | DisableItem (const JIndex index) |
|
void | DisableAll () |
|
void | SetItemEnabled (const JIndex index, const bool enabled) |
|
JXMenu::ItemType | GetItemType (const JIndex index) const |
|
bool | IsChecked (const JIndex index) const |
|
void | CheckItem (const JIndex index) |
|
bool | GetSubmenu (const JIndex index, const JXMenu **menu) const |
|
void | AttachSubmenu (const JIndex index, JXMenu *submenu) |
|
bool | RemoveSubmenu (const JIndex index, JXMenu **theMenu) |
|
void | DeleteSubmenu (const JIndex index) |
|
UpdateAction | GetUpdateAction () const |
|
void | SetUpdateAction (const UpdateAction action) |
|
bool | IsPopupChoice () const |
|
virtual void | SetToPopupChoice (const bool isPopup, const JIndex initialChoice) |
|
void | SetPopupChoice (const JIndex index) |
|
void | Activate () override |
|
void | Deactivate () override |
|
void | Suspend () override |
|
void | Resume () override |
|
bool | IsHiddenPopupMenu () const |
|
void | SetToHiddenPopupMenu (const bool isHiddenPopup=true) |
|
bool | PopUp (JXContainer *mouseOwner, const JPoint &pt, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) |
|
bool | GetMenuBar (JXMenuBar **menuBar) const |
|
JXMenu * | GetTopLevelMenu () const |
|
ArrowPosition | GetPopupArrowPosition () const |
|
void | SetPopupArrowPosition (const ArrowPosition position) |
|
ArrowDirection | GetPopupArrowDirection () const |
|
void | SetPopupArrowDirection (const ArrowDirection direction) |
|
bool | IsMenu () const override |
|
void | HandleShortcut (const int key, const JXKeyModifiers &modifiers) override |
|
| ~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 |
|
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 |
|
bool | IsActive () const |
|
void | SetActive (const bool active) |
|
bool | WouldBeActive () const |
|
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 | 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) |
|
|
void | SetBaseItemData (JXMenuData *baseItemData) |
|
void | ClearBaseItemData () |
|
bool | PrepareToOpenMenu (const bool shortcut) |
|
virtual JXMenuDirector * | CreateMenuWindow (JXWindowDirector *supervisor)=0 |
|
virtual void | AdjustPopupChoiceTitle (const JIndex index)=0 |
|
void | Draw (JXWindowPainter &p, const JRect &rect) override |
|
void | DrawBorder (JXWindowPainter &p, const JRect &frame) override |
|
void | HandleMouseDown (const JPoint &pt, const JXMouseButton button, const JSize clickCount, const JXButtonStates &buttonStates, const JXKeyModifiers &modifiers) override |
|
bool | IncludeInFTC () const override |
|
JCoordinate | GetFTCMinContentSize (const bool horizontal) const override |
|
void | Receive (JBroadcaster *sender, const Message &message) override |
|
void | BroadcastSelection (const JIndex itemIndex, const bool fromShortcut) |
|
| 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 | HandleMouseEnter () |
|
virtual void | HandleMouseHere (const JPoint &pt, const JXKeyModifiers &modifiers) |
|
virtual void | HandleMouseLeave () |
|
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 | NeedsInternalFTC () 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) |
|
void | SendWithFeedback (JBroadcaster *recipient, Message *message) |
|
void | BroadcastWithFeedback (Message *message) |
|
virtual void | ReceiveWithFeedback (JBroadcaster *sender, Message *message) |
|
virtual void | ReceiveGoingAway (JBroadcaster *sender) |
|
When the menu is pulled down, the requested items are initially disabled
(see UpdateAction). The default action is to disable all items that do
not have submenus (kDisableSingles).
All items are unchecked because the menu's owner should store this
information anyway, and it saves a lot of work to not have to enforce
one selection per radio group. The client should be storing only a single
value for each radio group anyway, so it will be taken care of automatically.
If the menu is a PopupChoice, then it assumes that the entire menu is a
radio group so that only one item can be selected at a time. The owner
of the menu remains responsible for tracking the selection. We simply
include the text of the selected item in the menu title as a convenience.
Note that SetPopupChoice() does not need to be called when ItemSelected
is broadcast because we take care of it automatically in this case.
Items are not required to have ID's, but if they do, they should be
unique (like JBroadcaster messages) so each object can find its own
items. The exception is an item that performs a standard action like
Copy and can therefore be shared by all objects. The standard ID's
are stored in jXActions.h