wxScrollEvent(3erl)

πŸ¦‹ wxScrollEvent(3erl) πŸ¦‹

Erlang Module Definition β€” okay bestie, this is the manual page for wxScrollEvent, and we’re gonna make it make sense. πŸ’–

🌸 NAME 🌸

wxScrollEvent β€” Functions for wxScrollEvent class. Periodt, that’s the whole name vibe. ✨

πŸ’… DESCRIPTION πŸ’…

Okay so, a scroll event holds information about events sent from stand-alone scrollbars (see wxScrollBar) and sliders (see wxSlider). That’s the main character energy here. πŸ‘‘

Note that scrolled windows send the wxScrollWinEvent which does not derive from wxCommandEvent, but from wxEvent directly - don't confuse these two kinds of events and use the event table macros mentioned below only for the scrollbar-like controls. No cap, this distinction matters. πŸ’€

πŸ’€ The difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED πŸ’€

This is the part where people get confused, ngl. The EVT_SCROLL_THUMBRELEASE event is only emitted when actually dragging the thumb using the mouse and releasing it (This EVT_SCROLL_THUMBRELEASE event is also followed by an EVT_SCROLL_CHANGED event).

The EVT_SCROLL_CHANGED event also occurs when using the keyboard to change the thumb position, and when clicking next to the thumb (In all these cases the EVT_SCROLL_THUMBRELEASE event does not happen). Bestie, that’s the lowkey key difference. 🫢

In short, the EVT_SCROLL_CHANGED event is triggered when scrolling/moving has finished independently of the way it had started. Please see the page_samples_widgets ("Slider" page) to see the difference between EVT_SCROLL_THUMBRELEASE and EVT_SCROLL_CHANGED in action. Iconic behavior, fr fr. 🌈

Remark: Note that unless specifying a scroll control identifier, you will need to test for scrollbar orientation with getOrientation/1, since horizontal and vertical scroll events are processed using the same event handler. 🚨

See: wxScrollBar, wxSlider, wxSpinButton, wxScrollWinEvent, Overview events

This class is derived (and can use functions) from: wxCommandEvent wxEvent β€” slay. πŸ’…

wxWidgets docs: wxScrollEvent β€” iykyk. ✨

✨ EVENTS ✨

Use wxEvtHandler:connect/3 with wxScrollEventType to subscribe to events of this type. That’s the whole vibe check. πŸŽ€

🧚 DATA TYPES 🧚

Lowkey these are the exact shapes you’ll see, no cap:

wxScrollEvent()

wxScrollEvent() = wx:wx_object()

wxScroll()

wxScroll() =
    #wxScroll{type = wxScrollEvent:wxScrollEventType(),
              commandInt = integer(),
              extraLong = integer()}

wxScrollEventType()

wxScrollEventType() =
    scroll_top | scroll_bottom | scroll_lineup | scroll_linedown |
    scroll_pageup | scroll_pagedown | scroll_thumbtrack |
    scroll_thumbrelease | scroll_changed

πŸš€ EXPORTS πŸš€

These are the functions you can call, and yes, they’re iconic:

getOrientation(This) -> integer()

Types:

  • This = wxScrollEvent()

Returns wxHORIZONTAL or wxVERTICAL, depending on the orientation of the scrollbar. Highkey useful. πŸ¦‹

getPosition(This) -> integer()

Types:

  • This = wxScrollEvent()

Returns the position of the scrollbar. Periodt. 🌸


That’s the whole page, bestie! The footer credits the wxWidgets team, says wx 2.2.2.1, and tags this page as wxScrollEvent(3erl) β€” there’s no date on the page itself. πŸ’–

πŸ“¦ where this page comes from