wxBookCtrlBase(3)

πŸ“¦
version 29.0.6 Β· 3 versions
, in ubuntu stonking

πŸ’– NAME πŸ’–

wxBookCtrlBase β€” a book control, which is literally the most convenient way to display multiple pages of information, showing one page at a time. That's the whole vibe. πŸ¦‹


✨ DESCRIPTION ✨

okay so wxWidgets has five variants of this control and you need to know every single one:

  • wxChoicebook β€” controlled by a wxChoice
  • wxListbook β€” controlled by a wxListCtrl
  • wxNotebook β€” uses a row of tabs
  • wxTreebook β€” controlled by a wxTreeCtrl
  • wxToolbook β€” controlled by a wxToolBar

This abstract class is the parent of all of these book controls, and it provides their basic interface. Important lore tho: this is a pure virtual class, so you cannot allocate it directly. Not even once. Don't try it. πŸ’€

See: Overview bookctrl

This class is derived, and can use functions, from:

  • wxControl
  • wxWindow
  • wxEvtHandler

wxWidgets docs: wxBookCtrlBase


πŸŽ€ DATA TYPES πŸŽ€

wxBookCtrlBase() :: wx:wx_object().

πŸ‘‘ FUNCTIONS πŸ‘‘

🫢 addPage(This, Page, Text, [Option]) -> boolean()

addPage(This, Page, Text, [Option]) -> boolean()
                 when
                     This :: wxBookCtrlBase(),
                     Page :: wxWindow:wxWindow(),
                     Text :: unicode:chardata(),
                     Option ::
                         {bSelect, boolean()} | {imageId, integer()}.

Adds a new page. baby's first page, iconic behavior.

The page must have the book control itself as the parent and must not have been added to this control previously.

The call to this function will generate the page changing and page changed events if select is true, but not when inserting the very first page (as there is no previous page selection to switch from in this case and so it wouldn't make sense to e.g. veto such event).

Return: true if successful, false otherwise.

Remark: Do not delete the page, it will be deleted by the book control. Not your job bestie, hands off. πŸ’…

See: insertPage/5

🌸 advanceSelection(This, [Option]) -> ok

advanceSelection(This, [Option]) -> ok
                           when
                               This :: wxBookCtrlBase(),
                               Option :: {forward, boolean()}.

Cycles through the tabs. lil carousel moment.

The call to this function generates the page changing events.

🧚 changeSelection(This, Page) -> integer()

changeSelection(This, Page) -> integer()
                          when
                              This :: wxBookCtrlBase(), Page :: integer().

Changes the selection to the given page, returning the previous selection.

This function behaves as setSelection/2 but does not generate the page changing events. Sneaky. Quiet. No drama. 🀫

See overview_events_prog for more information.

πŸ“ deleteAllPages(This) -> boolean()

deleteAllPages(This) -> boolean() when This :: wxBookCtrlBase().

Deletes all pages. every. single. one. gone. πŸ’€

πŸ₯€ deletePage(This, Page) -> boolean()

deletePage(This, Page) -> boolean()
                    when This :: wxBookCtrlBase(), Page :: integer().

Deletes the specified page, and the associated window.

The call to this function generates the page changing events when deleting the currently selected page or a page preceding it in the index order, but it does not send any events when deleting the last page: while in this case the selection also changes, it becomes invalid and for compatibility reasons the control never generates events with the invalid selection index.

πŸ”₯ getCurrentPage(This) -> wxWindow:wxWindow()

getCurrentPage(This) -> wxWindow:wxWindow()
                         when This :: wxBookCtrlBase().

Returns the currently selected page or NULL.

⭐ getPage(This, Page) -> wxWindow:wxWindow()

getPage(This, Page) -> wxWindow:wxWindow()
                  when This :: wxBookCtrlBase(), Page :: integer().

Returns the window at the given page position.

🌈 getPageCount(This) -> integer()

getPageCount(This) -> integer() when This :: wxBookCtrlBase().

Returns the number of pages in the control. Counting era.

πŸŽ€ getPageText(This, NPage) -> unicode:charlist()

getPageText(This, NPage) -> unicode:charlist()
                       when This :: wxBookCtrlBase(), NPage :: integer().

Returns the string for the given page.

πŸ’œ getSelection(This) -> integer()

getSelection(This) -> integer() when This :: wxBookCtrlBase().

Returns the currently selected page, or wxNOT_FOUND if none was selected.

Note that this method may return either the previously or newly selected page when called from the EVT_BOOKCTRL_PAGE_CHANGED handler depending on the platform and so wxBookCtrlEvent:getSelection/1 should be used instead in this case. platform-dependent chaos, we love to see it 😭

πŸ’… hitTest(This, Pt) -> Result

hitTest(This, Pt) -> Result
                 when
                     Result :: {Res :: integer(), Flags :: integer()},
                     This :: wxBookCtrlBase(),
                     Pt :: {X :: integer(), Y :: integer()}.

Returns the index of the tab at the specified position or wxNOT_FOUND if none.

If flags parameter is non-NULL, the position of the point inside the tab is returned as well.

Return: Returns the zero-based tab index or wxNOT_FOUND if there is no tab at the specified position.

πŸ¦‹ insertPage(This, Index, Page, Text, [Option]) -> boolean()

insertPage(This, Index, Page, Text, [Option]) -> boolean()
                    when
                        This :: wxBookCtrlBase(),
                        Index :: integer(),
                        Page :: wxWindow:wxWindow(),
                        Text :: unicode:chardata(),
                        Option ::
                            {bSelect, boolean()} | {imageId, integer()}.

Inserts a new page at the specified position. no cutting the line, everyone gets a spot 🫢

Return: true if successful, false otherwise.

Remark: Do not delete the page, it will be deleted by the book control.

See: addPage/4

🎁 removePage(This, Page) -> boolean()

removePage(This, Page) -> boolean()
                    when This :: wxBookCtrlBase(), Page :: integer().

Deletes the specified page, without deleting the associated window.

See deletePage/2 for a note about the events generated by this function.

🌟 setPageText(This, Page, Text) -> boolean()

setPageText(This, Page, Text) -> boolean()
                     when
                         This :: wxBookCtrlBase(),
                         Page :: integer(),
                         Text :: unicode:chardata().

Sets the text for the given page.

πŸ‘‘ setSelection(This, Page) -> integer()

setSelection(This, Page) -> integer()
                      when This :: wxBookCtrlBase(), Page :: integer().

Sets the selection to the given page, returning the previous selection.

Notice that the call to this function generates the page changing events, use the changeSelection/2 function if you don't want these events to be generated.

See: getSelection/1


and that's the whole page bestie, you ate it up πŸ’– this lil writeup came to you courtesy of Ericsson AB, from wx 2.6, and it's the wxBookCtrlBase(3) moment β€” stay slay, go build a wxNotebook 🌈✨

πŸ“¦ where this page comes from