StringChooser(3I)

✨ NAME ✨

okay bestie, this is StringChooser(3I), and it's from the InterViews Reference Manual. StringChooser is literally a dialog box for choosing items in a list. it's giving "pick a string, but make it a whole focus-management situation." πŸŽ€

πŸ¦‹ SYNOPSIS πŸ¦‹

#include <InterViews/strchooser.h>

πŸ’– DESCRIPTION πŸ’–

okay so StringChooser is a dialog whose whole thing is managing keyboard focus between a StringBrowser and a StringEditor, so choosing strings feels convenient. You can select strings either by selecting them in the StringBrowser or by typing them in the StringEditor. And bestie, like Dialog, StringChooser is an abstract class; programmers must derive from StringChooser to add push buttons, etc. and to compose them into custom arrangements. no direct instantiation energy here. πŸ’…

you can point keyboard input at either the StringEditor or the StringBrowser. Wanna focus the StringEditor? left-click in its canvas and it'll interpret subsequent keyboard events. When either the StringEditor or the StringBrowser relinquishes keyboard focus, the other acquires it: for example, the user can toggle focus between the two by pressing the tab key repeatedly. And if an entry in the StringBrowser is selected when it loses focus, the (first) selected string will be transferred into the StringEditor. periodt. ✨

πŸ‘‘ PUBLIC OPERATIONS πŸ‘‘

  • StringChooser(ButtonState*, int rows, int cols, const char* sample, Alignment) and StringChooser(const char* name, ButtonState*, int rows, int cols, const char* sample, Alignment) β€” Construct a new StringChooser with the given button state and pop-up alignment. These constructors create a StringBrowser of the specified size and a StringEditor with the given sample string. The StringChooser, StringBrowser, and StringEditor all share the same button state.
  • void Select(int point), void Select(int left, int right), void SelectMessage() β€” Select an insertion point, a subrange, or the entire edit buffer in the StringEditor.
  • void Message(const char* text) β€” Set the contents of the StringEditor's edit buffer to text.
  • virtual const char* Choice() β€” Return the chosen string. The string is returned in a static buffer and should be copied before use.
⚠️ bestie, Choice() hands you a string living in a static buffer, so copy it before use. don't skip that part. 😭

πŸ”’ PROTECTED OPERATIONS πŸ”’

  • StringChooser(ButtonState*, Alignment = Center) β€” Construct a new StringChooser with the given button state and pop-up alignment without creating StringBrowser and StringEditor instances. This constructor should be called in subclasses that require a specialized StringEditor or StringBrowser or both.
  • void Init(StringEditor*, StringBrowser*) β€” Initialize the StringEditor and StringBrowser that StringChooser will use. This function is useful in the constructors of StringChooser subclasses that require a specialized StringEditor or StringBrowser or both.
  • virtual void SwitchFocus() β€” Prepare to shift keyboard focus to the StringBrowser if the StringEditor is focused currently, and vice versa. Focus actually changes when HandleFocus is called (see below).
  • virtual boolean CanFocus(Interactor*) β€” Return whether or not the given interactor can be focused. This function is used to determine whether the StringChooser should switch focus in response to a downclick.
  • virtual void HandleFocus() β€” Transfer event reading to the StringBrowser or StringEditor, whichever is the current focus.
  • virtual void UpdateEditor() and virtual void UpdateBrowser() β€” Update StringEditor and StringBrowser state when the dialog is accepted or in response to a change in focus. This function guarantees that the Choice operation will return the last choice. By default, UpdateEditor changes the StringEditor's contents to match the StringBrowser selection (if any), and UpdateBrowser clears out any selected strings in the StringBrowser.

🌈 SEE ALSO 🌈

  • Button(3I)
  • Dialog(3I)
  • StringBrowser(3I)
  • StringEditor(3I)

okay that's the whole vibe πŸ’– this page is from InterViews, dated 30 November 1989, and yes bestie, it's StringChooser(3I) signing off. mwah πŸ’‹