FLTK 1.3.9
Loading...
Searching...
No Matches
Fl_Browser_ Class Referenceabstract

This is the base class for browsers. More...

#include <Fl_Browser_.H>

Inheritance diagram for Fl_Browser_:
Fl_Group Fl_Widget Fl_Browser Fl_Check_Browser Fl_File_Browser Fl_Hold_Browser Fl_Multi_Browser Fl_Select_Browser

Public Types

enum  {
  HORIZONTAL = 1 , VERTICAL = 2 , BOTH = 3 , ALWAYS_ON = 4 ,
  HORIZONTAL_ALWAYS = 5 , VERTICAL_ALWAYS = 6 , BOTH_ALWAYS = 7
}
 Values for has_scrollbar(). More...
 

Public Member Functions

int deselect (int docallbacks=0)
 Deselects all items in the list and returns 1 if the state changed or 0 if it did not.
 
void display (void *item)
 Displays the item, scrolling the list as necessary.
 
int handle (int event)
 Handles the event within the normal widget bounding box.
 
uchar has_scrollbar () const
 Returns the current scrollbar mode, see Fl_Browser_::has_scrollbar(uchar)
 
void has_scrollbar (uchar mode)
 Sets whether the widget should have scrollbars or not (default Fl_Browser_::BOTH).
 
int hposition () const
 Gets the horizontal scroll position of the list as a pixel position pos.
 
void hposition (int)
 Sets the horizontal scroll position of the list to pixel position pos.
 
int position () const
 Gets the vertical scroll position of the list as a pixel position pos.
 
void position (int pos)
 Sets the vertical scroll position of the list to pixel position pos.
 
void resize (int X, int Y, int W, int H)
 Repositions and/or resizes the browser.
 
void scrollbar_left ()
 Moves the vertical scrollbar to the lefthand side of the list.
 
void scrollbar_right ()
 Moves the vertical scrollbar to the righthand side of the list.
 
int scrollbar_size () const
 Gets the current size of the scrollbars' troughs, in pixels.
 
void scrollbar_size (int newSize)
 Sets the pixel size of the scrollbars' troughs to newSize, in pixels.
 
int scrollbar_width () const
 This method has been deprecated, existing for backwards compatibility only.
 
void scrollbar_width (int width)
 This method has been deprecated, existing for backwards compatibility only.
 
int select (void *item, int val=1, int docallbacks=0)
 Sets the selection state of item to val, and returns 1 if the state changed or 0 if it did not.
 
int select_only (void *item, int docallbacks=0)
 Selects item and returns 1 if the state changed or 0 if it did not.
 
void sort (int flags=0)
 Sort the items in the browser based on flags.
 
Fl_Color textcolor () const
 Gets the default text color for the lines in the browser.
 
void textcolor (Fl_Color col)
 Sets the default text color for the lines in the browser to color col.
 
Fl_Font textfont () const
 Gets the default text font for the lines in the browser.
 
void textfont (Fl_Font font)
 Sets the default text font for the lines in the browser to font.
 
Fl_Fontsize textsize () const
 Gets the default text size (in pixels) for the lines in the browser.
 
void textsize (Fl_Fontsize newSize)
 Sets the default text size (in pixels) for the lines in the browser to size.
 
- Public Member Functions inherited from Fl_Group
Fl_Widget *& _ddfdesign_kludge ()
 This is for forms compatibility only.
 
void add (Fl_Widget &)
 The widget is removed from its current group (if any) and then added to the end of this group.
 
void add (Fl_Widget *o)
 See void Fl_Group::add(Fl_Widget &w)
 
void add_resizable (Fl_Widget &o)
 Adds a widget to the group and makes it the resizable widget.
 
Fl_Widget *const * array () const
 Returns a pointer to the array of children.
 
virtual Fl_Groupas_group ()
 Returns an Fl_Group pointer if this widget is an Fl_Group.
 
void begin ()
 Sets the current group so you can build the widget tree by just constructing the widgets.
 
Fl_Widgetchild (int n) const
 Returns array()[n].
 
int children () const
 Returns how many child widgets the group has.
 
void clear ()
 Deletes all child widgets from memory recursively.
 
unsigned int clip_children ()
 Returns the current clipping mode.
 
void clip_children (int c)
 Controls whether the group widget clips the drawing of child widgets to its bounding box.
 
void end ()
 Exactly the same as current(this->parent()).
 
int find (const Fl_Widget &o) const
 See int Fl_Group::find(const Fl_Widget *w) const.
 
int find (const Fl_Widget *) const
 Searches the child array for the widget and returns the index.
 
 Fl_Group (int, int, int, int, const char *=0)
 Creates a new Fl_Group widget using the given position, size, and label string.
 
void focus (Fl_Widget *W)
 
void forms_end ()
 This is for forms compatibility only.
 
int handle (int)
 Handles the specified event.
 
void init_sizes ()
 Resets the internal array of widget sizes and positions.
 
void insert (Fl_Widget &, int i)
 The widget is removed from its current group (if any) and then inserted into this group.
 
void insert (Fl_Widget &o, Fl_Widget *before)
 This does insert(w, find(before)).
 
void remove (Fl_Widget &)
 Removes a widget from the group but does not delete it.
 
void remove (Fl_Widget *o)
 Removes the widget o from the group.
 
void remove (int index)
 Removes the widget at index from the group but does not delete it.
 
Fl_Widgetresizable () const
 See void Fl_Group::resizable(Fl_Widget *box)
 
void resizable (Fl_Widget &o)
 See void Fl_Group::resizable(Fl_Widget *box)
 
void resizable (Fl_Widget *o)
 The resizable widget defines the resizing box for the group.
 
void resize (int, int, int, int)
 Resizes the Fl_Group widget and all of its children.
 
virtual ~Fl_Group ()
 The destructor also deletes all the children.
 
- Public Member Functions inherited from Fl_Widget
void _clear_fullscreen ()
 
void _set_fullscreen ()
 
void activate ()
 Activates the widget.
 
unsigned int active () const
 Returns whether the widget is active.
 
int active_r () const
 Returns whether the widget and all of its parents are active.
 
Fl_Align align () const
 Gets the label alignment.
 
void align (Fl_Align alignment)
 Sets the label alignment.
 
long argument () const
 Gets the current user data (long) argument that is passed to the callback function.
 
void argument (long v)
 Sets the current user data (long) argument that is passed to the callback function.
 
virtual class Fl_Gl_Windowas_gl_window ()
 Returns an Fl_Gl_Window pointer if this widget is an Fl_Gl_Window.
 
virtual Fl_Windowas_window ()
 Returns an Fl_Window pointer if this widget is an Fl_Window.
 
Fl_Boxtype box () const
 Gets the box type of the widget.
 
void box (Fl_Boxtype new_box)
 Sets the box type for the widget.
 
Fl_Callback_p callback () const
 Gets the current callback function for the widget.
 
void callback (Fl_Callback *cb)
 Sets the current callback function for the widget.
 
void callback (Fl_Callback *cb, void *p)
 Sets the current callback function for the widget.
 
void callback (Fl_Callback0 *cb)
 Sets the current callback function for the widget.
 
void callback (Fl_Callback1 *cb, long p=0)
 Sets the current callback function for the widget.
 
unsigned int changed () const
 Checks if the widget value changed since the last callback.
 
void clear_active ()
 Marks the widget as inactive without sending events or changing focus.
 
void clear_changed ()
 Marks the value of the widget as unchanged.
 
void clear_damage (uchar c=0)
 Clears or sets the damage flags.
 
void clear_output ()
 Sets a widget to accept input.
 
void clear_visible ()
 Hides the widget.
 
void clear_visible_focus ()
 Disables keyboard focus navigation with this widget.
 
Fl_Color color () const
 Gets the background color of the widget.
 
void color (Fl_Color bg)
 Sets the background color of the widget.
 
void color (Fl_Color bg, Fl_Color sel)
 Sets the background and selection color of the widget.
 
Fl_Color color2 () const
 For back compatibility only.
 
void color2 (unsigned a)
 For back compatibility only.
 
int contains (const Fl_Widget *w) const
 Checks if w is a child of this widget.
 
void copy_label (const char *new_label)
 Sets the current label.
 
void copy_tooltip (const char *text)
 Sets the current tooltip text.
 
uchar damage () const
 Returns non-zero if draw() needs to be called.
 
void damage (uchar c)
 Sets the damage bits for the widget.
 
void damage (uchar c, int x, int y, int w, int h)
 Sets the damage bits for an area inside the widget.
 
int damage_resize (int, int, int, int)
 Internal use only.
 
void deactivate ()
 Deactivates the widget.
 
Fl_Imagedeimage ()
 Gets the image that is used as part of the widget label.
 
const Fl_Imagedeimage () const
 
void deimage (Fl_Image &img)
 Sets the image to use as part of the widget label.
 
void deimage (Fl_Image *img)
 Sets the image to use as part of the widget label.
 
void do_callback ()
 Calls the widget callback.
 
void do_callback (Fl_Widget *o, long arg)
 Calls the widget callback.
 
void do_callback (Fl_Widget *o, void *arg=0)
 Calls the widget callback.
 
void draw_label (int, int, int, int, Fl_Align) const
 Draws the label in an arbitrary bounding box with an arbitrary alignment.
 
int h () const
 Gets the widget height.
 
virtual void hide ()
 Makes a widget invisible.
 
Fl_Imageimage ()
 Gets the image that is used as part of the widget label.
 
const Fl_Imageimage () const
 
void image (Fl_Image &img)
 Sets the image to use as part of the widget label.
 
void image (Fl_Image *img)
 Sets the image to use as part of the widget label.
 
int inside (const Fl_Widget *wgt) const
 Checks if this widget is a child of wgt.
 
int is_label_copied () const
 Returns whether the current label was assigned with copy_label().
 
const char * label () const
 Gets the current label text.
 
void label (const char *text)
 Sets the current label pointer.
 
void label (Fl_Labeltype a, const char *b)
 Shortcut to set the label text and type in one call.
 
Fl_Color labelcolor () const
 Gets the label color.
 
void labelcolor (Fl_Color c)
 Sets the label color.
 
Fl_Font labelfont () const
 Gets the font to use.
 
void labelfont (Fl_Font f)
 Sets the font to use.
 
Fl_Fontsize labelsize () const
 Gets the font size in pixels.
 
void labelsize (Fl_Fontsize pix)
 Sets the font size in pixels.
 
Fl_Labeltype labeltype () const
 Gets the label type.
 
void labeltype (Fl_Labeltype a)
 Sets the label type.
 
void measure_label (int &ww, int &hh) const
 Sets width ww and height hh accordingly with the label size.
 
unsigned int output () const
 Returns if a widget is used for output only.
 
Fl_Groupparent () const
 Returns a pointer to the parent widget.
 
void parent (Fl_Group *p)
 Internal use only - "for hacks only".
 
void position (int X, int Y)
 Repositions the window or widget.
 
void redraw ()
 Schedules the drawing of the widget.
 
void redraw_label ()
 Schedules the drawing of the label.
 
Fl_Color selection_color () const
 Gets the selection color.
 
void selection_color (Fl_Color a)
 Sets the selection color.
 
void set_active ()
 Marks the widget as active without sending events or changing focus.
 
void set_changed ()
 Marks the value of the widget as changed.
 
void set_output ()
 Sets a widget to output only.
 
void set_visible ()
 Makes the widget visible.
 
void set_visible_focus ()
 Enables keyboard focus navigation with this widget.
 
virtual void show ()
 Makes a widget visible.
 
void size (int W, int H)
 Changes the size of the widget.
 
int take_focus ()
 Gives the widget the keyboard focus.
 
unsigned int takesevents () const
 Returns if the widget is able to take events.
 
int test_shortcut ()
 Returns true if the widget's label contains the entered '&x' shortcut.
 
const char * tooltip () const
 Gets the current tooltip text.
 
void tooltip (const char *text)
 Sets the current tooltip text.
 
Fl_Windowtop_window () const
 Returns a pointer to the top-level window for the widget.
 
Fl_Windowtop_window_offset (int &xoff, int &yoff) const
 Finds the x/y offset of the current widget relative to the top-level window.
 
uchar type () const
 Gets the widget type.
 
void type (uchar t)
 Sets the widget type.
 
int use_accents_menu ()
 Returns non zero if MAC_USE_ACCENTS_MENU flag is set, 0 otherwise.
 
void * user_data () const
 Gets the user data for this widget.
 
void user_data (void *v)
 Sets the user data for this widget.
 
unsigned int visible () const
 Returns whether a widget is visible.
 
unsigned int visible_focus ()
 Checks whether this widget has a visible focus.
 
void visible_focus (int v)
 Modifies keyboard focus navigation.
 
int visible_r () const
 Returns whether a widget and all its parents are visible.
 
int w () const
 Gets the widget width.
 
Fl_When when () const
 Returns the conditions under which the callback is called.
 
void when (uchar i)
 Sets the flags used to decide when a callback is called.
 
Fl_Windowwindow () const
 Returns a pointer to the nearest parent window up the widget hierarchy.
 
int x () const
 Gets the widget position in its window.
 
int y () const
 Gets the widget position in its window.
 
virtual ~Fl_Widget ()
 Destroys the widget.
 

Public Attributes

Fl_Scrollbar hscrollbar
 Horizontal scrollbar.
 
Fl_Scrollbar scrollbar
 Vertical scrollbar.
 

Protected Member Functions

void bbox (int &X, int &Y, int &W, int &H) const
 Returns the bounding box for the interior of the list's display window, inside the scrollbars.
 
void deleting (void *item)
 This method should be used when item is being deleted from the list.
 
int displayed (void *item) const
 Returns non-zero if item has been scrolled to a position where it is being displayed.
 
void draw ()
 Draws the list within the normal widget bounding box.
 
void * find_item (int ypos)
 This method returns the item under mouse y position ypos.
 
 Fl_Browser_ (int X, int Y, int W, int H, const char *L=0)
 The constructor makes an empty browser.
 
virtual int full_height () const
 This method may be provided by the subclass to indicate the full height of the item list, in pixels.
 
virtual int full_width () const
 This method may be provided by the subclass to indicate the full width of the item list, in pixels.
 
virtual int incr_height () const
 This method may be provided to return the average height of all items to be used for scrolling.
 
void inserting (void *a, void *b)
 This method should be used when an item is in the process of being inserted into the list.
 
virtual void * item_at (int index) const
 This method must be provided by the subclass to return the item for the specified index.
 
virtual void item_draw (void *item, int X, int Y, int W, int H) const =0
 This method must be provided by the subclass to draw the item in the area indicated by X, Y, W, H.
 
virtual void * item_first () const =0
 This method must be provided by the subclass to return the first item in the list.
 
virtual int item_height (void *item) const =0
 This method must be provided by the subclass to return the height of item in pixels.
 
virtual void * item_last () const
 This method must be provided by the subclass to return the last item in the list.
 
virtual void * item_next (void *item) const =0
 This method must be provided by the subclass to return the item in the list after item.
 
virtual void * item_prev (void *item) const =0
 This method must be provided by the subclass to return the item in the list before item.
 
virtual int item_quick_height (void *item) const
 This method may be provided by the subclass to return the height of the item, in pixels.
 
virtual void item_select (void *item, int val=1)
 This method must be implemented by the subclass if it supports multiple selections; sets the selection state to val for the item.
 
virtual int item_selected (void *item) const
 This method must be implemented by the subclass if it supports multiple selections; returns the selection state for item.
 
virtual void item_swap (void *a, void *b)
 This optional method should be provided by the subclass to efficiently swap browser items a and b, such as for sorting.
 
virtual const char * item_text (void *item) const
 This optional method returns a string (label) that may be used for sorting.
 
virtual int item_width (void *item) const =0
 This method must be provided by the subclass to return the width of the item in pixels.
 
int leftedge () const
 This method returns the X position of the left edge of the list area after adjusting for the scrollbar and border, if any.
 
void new_list ()
 This method should be called when the list data is completely replaced or cleared.
 
void redraw_line (void *item)
 This method should be called when the contents of item has changed, but not its height.
 
void redraw_lines ()
 This method will cause the entire list to be redrawn.
 
void replacing (void *a, void *b)
 This method should be used when item a is being replaced by item b.
 
void * selection () const
 Returns the item currently selected, or NULL if there is no selection.
 
void swapping (void *a, void *b)
 This method should be used when two items a and b are being swapped.
 
void * top () const
 Returns the item that appears at the top of the list.
 
- Protected Member Functions inherited from Fl_Group
void draw ()
 Draws the widget.
 
void draw_child (Fl_Widget &widget) const
 Forces a child to redraw.
 
void draw_children ()
 Draws all children of the group.
 
void draw_outside_label (const Fl_Widget &widget) const
 Parents normally call this to draw outside labels of child widgets.
 
int * sizes ()
 Returns the internal array of widget sizes and positions.
 
void update_child (Fl_Widget &widget) const
 Draws a child only if it needs it.
 
- Protected Member Functions inherited from Fl_Widget
void clear_flag (unsigned int c)
 Clears a flag in the flags mask.
 
void draw_backdrop () const
 If FL_ALIGN_IMAGE_BACKDROP is set, the image or deimage will be drawn.
 
void draw_box () const
 Draws the widget box according its box style.
 
void draw_box (Fl_Boxtype t, Fl_Color c) const
 Draws a box of type t, of color c at the widget's position and size.
 
void draw_box (Fl_Boxtype t, int x, int y, int w, int h, Fl_Color c) const
 Draws a box of type t, of color c at the position X,Y and size W,H.
 
void draw_focus ()
 draws a focus rectangle around the widget
 
void draw_focus (Fl_Boxtype t, int x, int y, int w, int h) const
 Draws a focus box for the widget at the given position and size.
 
void draw_label () const
 Draws the widget's label at the defined label position.
 
void draw_label (int, int, int, int) const
 Draws the label in an arbitrary bounding box.
 
 Fl_Widget (int x, int y, int w, int h, const char *label=0L)
 Creates a widget at the given position and size.
 
unsigned int flags () const
 Gets the widget flags mask.
 
void h (int v)
 Internal use only.
 
void set_flag (unsigned int c)
 Sets a flag in the flags mask.
 
void w (int v)
 Internal use only.
 
void x (int v)
 Internal use only.
 
void y (int v)
 Internal use only.
 

Additional Inherited Members

- Static Public Member Functions inherited from Fl_Group
static Fl_Groupcurrent ()
 Returns the currently active group.
 
static void current (Fl_Group *g)
 Sets the current group.
 
- Static Public Member Functions inherited from Fl_Widget
static void default_callback (Fl_Widget *cb, void *d)
 The default callback for all widgets that don't set a callback.
 
static unsigned int label_shortcut (const char *t)
 Returns the Unicode value of the '&x' shortcut in a given text.
 
static int test_shortcut (const char *, const bool require_alt=false)
 Returns true if the given text t contains the entered '&x' shortcut.
 
- Protected Types inherited from Fl_Widget
enum  {
  INACTIVE = 1<<0 , INVISIBLE = 1<<1 , OUTPUT = 1<<2 , NOBORDER = 1<<3 ,
  FORCE_POSITION = 1<<4 , NON_MODAL = 1<<5 , SHORTCUT_LABEL = 1<<6 , CHANGED = 1<<7 ,
  OVERRIDE = 1<<8 , VISIBLE_FOCUS = 1<<9 , COPIED_LABEL = 1<<10 , CLIP_CHILDREN = 1<<11 ,
  MENU_WINDOW = 1<<12 , TOOLTIP_WINDOW = 1<<13 , MODAL = 1<<14 , NO_OVERLAY = 1<<15 ,
  GROUP_RELATIVE = 1<<16 , COPIED_TOOLTIP = 1<<17 , FULLSCREEN = 1<<18 , MAC_USE_ACCENTS_MENU = 1<<19 ,
  USERFLAG3 = 1<<29 , USERFLAG2 = 1<<30 , USERFLAG1 = 1<<31
}
 flags possible values enumeration. More...
 

Detailed Description

This is the base class for browsers.

To be useful it must be subclassed and several virtual functions defined. The Forms-compatible browser and the file chooser's browser are subclassed off of this.

This has been designed so that the subclass has complete control over the storage of the data, although because next() and prev() functions are used to index, it works best as a linked list or as a large block of characters in which the line breaks must be searched for.

A great deal of work has been done so that the "height" of a data object does not need to be determined until it is drawn. This is useful if actually figuring out the size of an object requires accessing image data or doing stat() on a file or doing some other slow operation.

Keyboard navigation of browser items

The keyboard navigation of browser items is only possible if visible_focus() is enabled. If disabled, the widget rejects keyboard focus; Tab and Shift-Tab focus navigation will skip the widget.

In 'Select' and 'Normal' mode, the widget rejects keyboard focus; no navigation keys are supported (other than scrollbar positioning).

In 'Hold' mode, the widget accepts keyboard focus, and Up/Down arrow keys can navigate the selected item.

In 'Multi' mode, the widget accepts keyboard focus, and Up/Down arrow keys navigate the focus box; Space toggles the current item's selection, Enter selects only the current item (deselects all others). If Shift (or Ctrl) is combined with Up/Down arrow keys, the current item's selection state is extended to the next item. In this way one can extend a selection or de-selection.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Values for has_scrollbar().

Anonymous enum bit flags for has_scrollbar().

  • bit 0: horizontal
  • bit 1: vertical
  • bit 2: 'always' (to be combined with bits 0 and 1)
  • bit 3-31: reserved for future use
Enumerator
HORIZONTAL 

Only show horizontal scrollbar.

VERTICAL 

Only show vertical scrollbar.

BOTH 

Show both scrollbars. (default)

ALWAYS_ON 

Specified scrollbar(s) should 'always' be shown (to be used with HORIZONTAL/VERTICAL)

HORIZONTAL_ALWAYS 

Horizontal scrollbar always on.

VERTICAL_ALWAYS 

Vertical scrollbar always on.

BOTH_ALWAYS 

Both scrollbars always on.

Constructor & Destructor Documentation

◆ Fl_Browser_()

Fl_Browser_::Fl_Browser_ ( int  X,
int  Y,
int  W,
int  H,
const char *  L = 0 
)
protected

The constructor makes an empty browser.

Parameters
[in]X,Y,W,Hposition and size.
[in]LThe label string, may be NULL.

Member Function Documentation

◆ bbox()

void Fl_Browser_::bbox ( int &  X,
int &  Y,
int &  W,
int &  H 
) const
protected

Returns the bounding box for the interior of the list's display window, inside the scrollbars.

Parameters
[out]X,Y,W,HThe returned bounding box.
(The original contents of these parameters are overwritten)

◆ deleting()

void Fl_Browser_::deleting ( void *  item)
protected

This method should be used when item is being deleted from the list.

It allows the Fl_Browser_ to discard any cached data it has on the item. This method does not actually delete the item, but handles the follow up bookkeeping after the item has just been deleted.

Parameters
[in]itemThe item being deleted.

◆ deselect()

int Fl_Browser_::deselect ( int  docallbacks = 0)

Deselects all items in the list and returns 1 if the state changed or 0 if it did not.

If the optional docallbacks parameter is non-zero, deselect tries to call the callback function for the widget.

Parameters
[in]docallbacksIf 1, invokes widget callback if item changed.
If 0, doesn't do callback (default).

◆ display()

void Fl_Browser_::display ( void *  item)

Displays the item, scrolling the list as necessary.

Parameters
[in]itemThe item to be displayed.
See also
display(), displayed()

◆ displayed()

int Fl_Browser_::displayed ( void *  item) const
protected

Returns non-zero if item has been scrolled to a position where it is being displayed.

Checks to see if the item's vertical position is within the top and bottom edges of the display window. This does NOT take into account the hide()/show() status of the widget or item.

Parameters
[in]itemThe item to check
Returns
1 if visible, 0 if not visible.
See also
display(), displayed()

◆ draw()

void Fl_Browser_::draw ( void  )
protectedvirtual

Draws the list within the normal widget bounding box.

Implements Fl_Widget.

◆ find_item()

void * Fl_Browser_::find_item ( int  ypos)
protected

This method returns the item under mouse y position ypos.

NULL is returned if no item is displayed at that position.

Parameters
[in]yposThe y position (eg. Fl::event_y()) to find an item under.
Returns
The item, or NULL if not found

◆ full_height()

int Fl_Browser_::full_height ( ) const
protectedvirtual

This method may be provided by the subclass to indicate the full height of the item list, in pixels.

The default implementation computes the full height from the item heights. Includes the items that are scrolled off screen.

Returns
The height of the entire list, in pixels.

Reimplemented in Fl_Browser.

◆ full_width()

int Fl_Browser_::full_width ( ) const
protectedvirtual

This method may be provided by the subclass to indicate the full width of the item list, in pixels.

The default implementation computes the full width from the item widths.

Returns
The maximum width of all the items, in pixels.

◆ handle()

int Fl_Browser_::handle ( int  event)
virtual

Handles the event within the normal widget bounding box.

Parameters
[in]eventThe event to process.
Returns
1 if event was processed, 0 if not.

Reimplemented from Fl_Widget.

Reimplemented in Fl_Check_Browser.

◆ has_scrollbar()

void Fl_Browser_::has_scrollbar ( uchar  mode)
inline

Sets whether the widget should have scrollbars or not (default Fl_Browser_::BOTH).

By default you can scroll in both directions, and the scrollbars disappear if the data will fit in the widget.
has_scrollbar() changes this based on the value of mode:

◆ hposition() [1/2]

int Fl_Browser_::hposition ( ) const
inline

Gets the horizontal scroll position of the list as a pixel position pos.

The position returned is how many pixels of the list are scrolled off the left edge of the screen. Example: A position of '18' indicates the left 18 pixels of the list are scrolled off the left edge of the screen.

See also
position(), hposition()

◆ hposition() [2/2]

void Fl_Browser_::hposition ( int  pos)

Sets the horizontal scroll position of the list to pixel position pos.

The position is how many pixels of the list are scrolled off the left edge of the screen. Example: A position of '18' scrolls the left 18 pixels of the list off the left edge of the screen.

Parameters
[in]posThe horizontal position (in pixels) to scroll the browser to.
See also
position(), hposition()

◆ incr_height()

int Fl_Browser_::incr_height ( ) const
protectedvirtual

This method may be provided to return the average height of all items to be used for scrolling.

The default implementation uses the height of the first item.

Returns
The average height of items, in pixels.

Reimplemented in Fl_Browser.

◆ inserting()

void Fl_Browser_::inserting ( void *  a,
void *  b 
)
protected

This method should be used when an item is in the process of being inserted into the list.

It allows the Fl_Browser_ to update its cache data as needed, scheduling a redraw for the affected lines. This method does not actually insert items, but handles the follow up bookkeeping after items have been inserted.

Parameters
[in]aThe starting item position
[in]bThe new item being inserted

◆ item_at()

virtual void * Fl_Browser_::item_at ( int  index) const
inlineprotectedvirtual

This method must be provided by the subclass to return the item for the specified index.

Parameters
[in]indexThe index of the item to be returned
Returns
The item at the specified index.

Reimplemented in Fl_Browser.

◆ item_draw()

virtual void Fl_Browser_::item_draw ( void *  item,
int  X,
int  Y,
int  W,
int  H 
) const
protectedpure virtual

This method must be provided by the subclass to draw the item in the area indicated by X, Y, W, H.

Implemented in Fl_Browser.

◆ item_first()

virtual void * Fl_Browser_::item_first ( ) const
protectedpure virtual

This method must be provided by the subclass to return the first item in the list.

See also
item_first(), item_next(), item_last(), item_prev()

Implemented in Fl_Browser.

◆ item_height()

virtual int Fl_Browser_::item_height ( void *  item) const
protectedpure virtual

This method must be provided by the subclass to return the height of item in pixels.

Allow for two additional pixels for the list selection box.

Parameters
[in]itemThe item whose height is returned.
Returns
The height of the specified item in pixels.
See also
item_height(), item_width(), item_quick_height()

Implemented in Fl_Browser.

◆ item_last()

virtual void * Fl_Browser_::item_last ( ) const
inlineprotectedvirtual

This method must be provided by the subclass to return the last item in the list.

See also
item_first(), item_next(), item_last(), item_prev()

Reimplemented in Fl_Browser.

◆ item_next()

virtual void * Fl_Browser_::item_next ( void *  item) const
protectedpure virtual

This method must be provided by the subclass to return the item in the list after item.

See also
item_first(), item_next(), item_last(), item_prev()

Implemented in Fl_Browser.

◆ item_prev()

virtual void * Fl_Browser_::item_prev ( void *  item) const
protectedpure virtual

This method must be provided by the subclass to return the item in the list before item.

See also
item_first(), item_next(), item_last(), item_prev()

Implemented in Fl_Browser.

◆ item_quick_height()

int Fl_Browser_::item_quick_height ( void *  item) const
protectedvirtual

This method may be provided by the subclass to return the height of the item, in pixels.


Allow for two additional pixels for the list selection box. This method differs from item_height in that it is only called for selection and scrolling operations. The default implementation calls item_height.

Parameters
[in]itemThe item whose height to return.
Returns
The height, in pixels.

◆ item_select()

void Fl_Browser_::item_select ( void *  item,
int  val = 1 
)
protectedvirtual

This method must be implemented by the subclass if it supports multiple selections; sets the selection state to val for the item.

Sets the selection state for item, where optional val is 1 (select, the default) or 0 (de-select).

Parameters
[in]itemThe item to be selected
[in]valThe optional selection state; 1=select, 0=de-select.
The default is to select the item (1).

Reimplemented in Fl_Browser.

◆ item_selected()

int Fl_Browser_::item_selected ( void *  item) const
protectedvirtual

This method must be implemented by the subclass if it supports multiple selections; returns the selection state for item.

The method should return 1 if item is selected, or 0 otherwise.

Parameters
[in]itemThe item to test.

Reimplemented in Fl_Browser.

◆ item_swap()

virtual void Fl_Browser_::item_swap ( void *  a,
void *  b 
)
inlineprotectedvirtual

This optional method should be provided by the subclass to efficiently swap browser items a and b, such as for sorting.

Parameters
[in]a,bThe two items to be swapped.

Reimplemented in Fl_Browser.

◆ item_text()

virtual const char * Fl_Browser_::item_text ( void *  item) const
inlineprotectedvirtual

This optional method returns a string (label) that may be used for sorting.

Parameters
[in]itemThe item whose label text is returned.
Returns
The item's text label. (Can be NULL if blank)

Reimplemented in Fl_Browser.

◆ item_width()

virtual int Fl_Browser_::item_width ( void *  item) const
protectedpure virtual

This method must be provided by the subclass to return the width of the item in pixels.

Allow for two additional pixels for the list selection box.

Parameters
[in]itemThe item whose width is returned.
Returns
The width of the item in pixels.

Implemented in Fl_Browser.

◆ leftedge()

int Fl_Browser_::leftedge ( ) const
protected

This method returns the X position of the left edge of the list area after adjusting for the scrollbar and border, if any.

Returns
The X position of the left edge of the list, in pixels.
See also
Fl_Browser_::bbox()

◆ new_list()

void Fl_Browser_::new_list ( )
protected

This method should be called when the list data is completely replaced or cleared.

It informs the Fl_Browser_ widget that any cached information it has concerning the items is invalid. This method does not clear the list, it just handles the follow up bookkeeping after the list has been cleared.

◆ position() [1/2]

int Fl_Browser_::position ( ) const
inline

Gets the vertical scroll position of the list as a pixel position pos.

The position returned is how many pixels of the list are scrolled off the top edge of the screen. Example: A position of '3' indicates the top 3 pixels of the list are scrolled off the top edge of the screen.

See also
position(), hposition()

◆ position() [2/2]

void Fl_Browser_::position ( int  pos)

Sets the vertical scroll position of the list to pixel position pos.

The position is how many pixels of the list are scrolled off the top edge of the screen. Example: A position of '3' scrolls the top three pixels of the list off the top edge of the screen.

Parameters
[in]posThe vertical position (in pixels) to scroll the browser to.
See also
position(), hposition()

◆ redraw_line()

void Fl_Browser_::redraw_line ( void *  item)
protected

This method should be called when the contents of item has changed, but not its height.

Parameters
[in]itemThe item that needs to be redrawn.
See also
redraw_lines(), redraw_line()

◆ redraw_lines()

void Fl_Browser_::redraw_lines ( )
inlineprotected

This method will cause the entire list to be redrawn.

See also
redraw_lines(), redraw_line()

◆ replacing()

void Fl_Browser_::replacing ( void *  a,
void *  b 
)
protected

This method should be used when item a is being replaced by item b.

It allows the Fl_Browser_ to update its cache data as needed, schedules a redraw for the item being changed, and tries to maintain the selection. This method does not actually replace the item, but handles the follow up bookkeeping after the item has just been replaced.

Parameters
[in]aItem being replaced
[in]bItem to replace 'a'

◆ resize()

void Fl_Browser_::resize ( int  X,
int  Y,
int  W,
int  H 
)
virtual

Repositions and/or resizes the browser.

Parameters
[in]X,Y,W,HThe new position and size for the browser, in pixels.

Reimplemented from Fl_Widget.

◆ scrollbar_left()

void Fl_Browser_::scrollbar_left ( )
inline

Moves the vertical scrollbar to the lefthand side of the list.

For back compatibility.

◆ scrollbar_right()

void Fl_Browser_::scrollbar_right ( )
inline

Moves the vertical scrollbar to the righthand side of the list.

For back compatibility.

◆ scrollbar_size() [1/2]

int Fl_Browser_::scrollbar_size ( ) const
inline

Gets the current size of the scrollbars' troughs, in pixels.

If this value is zero (default), this widget will use the Fl::scrollbar_size() value as the scrollbar's width.

Returns
Scrollbar size in pixels, or 0 if the global Fl::scrollbar_size() is being used.
See also
Fl::scrollbar_size(int)

◆ scrollbar_size() [2/2]

void Fl_Browser_::scrollbar_size ( int  newSize)
inline

Sets the pixel size of the scrollbars' troughs to newSize, in pixels.

Normally you should not need this method, and should use Fl::scrollbar_size(int) instead to manage the size of ALL your widgets' scrollbars. This ensures your application has a consistent UI, is the default behavior, and is normally what you want.

Only use THIS method if you really need to override the global scrollbar size. The need for this should be rare.

Setting newSize to the special value of 0 causes the widget to track the global Fl::scrollbar_size(), which is the default.

Parameters
[in]newSizeSets the scrollbar size in pixels.
If 0 (default), scrollbar size tracks the global Fl::scrollbar_size()
See also
Fl::scrollbar_size()

◆ scrollbar_width() [1/2]

int Fl_Browser_::scrollbar_width ( ) const
inline

This method has been deprecated, existing for backwards compatibility only.

Use scrollbar_size() instead. This method always returns the global value Fl::scrollbar_size().

Returns
Always returns the global value Fl::scrollbar_size().
Todo:
This method should eventually be removed in 1.4+

◆ scrollbar_width() [2/2]

void Fl_Browser_::scrollbar_width ( int  width)
inline

This method has been deprecated, existing for backwards compatibility only.

Use scrollbar_size(int) instead. This method sets the global Fl::scrollbar_size(), and forces this instance of the widget to use it.

Todo:
This method should eventually be removed in 1.4+

◆ select()

int Fl_Browser_::select ( void *  item,
int  val = 1,
int  docallbacks = 0 
)

Sets the selection state of item to val, and returns 1 if the state changed or 0 if it did not.

If docallbacks is non-zero, select tries to call the callback function for the widget.

Parameters
[in]itemThe item whose selection state is to be changed
[in]valThe new selection state (1=select, 0=de-select)
[in]docallbacksIf 1, invokes widget callback if item changed.
If 0, doesn't do callback (default).
Returns
1 if state was changed, 0 if not.

◆ select_only()

int Fl_Browser_::select_only ( void *  item,
int  docallbacks = 0 
)

Selects item and returns 1 if the state changed or 0 if it did not.

Any other items in the list are deselected.

Parameters
[in]itemThe item to select.
[in]docallbacksIf 1, invokes widget callback if item changed.
If 0, doesn't do callback (default).

◆ selection()

void * Fl_Browser_::selection ( ) const
inlineprotected

Returns the item currently selected, or NULL if there is no selection.

For multiple selection browsers this call returns the currently focused item, even if it is not selected. To find all selected items, call Fl_Multi_Browser::selected() for every item in question.

◆ sort()

void Fl_Browser_::sort ( int  flags = 0)

Sort the items in the browser based on flags.

item_swap(void*, void*) and item_text(void*) must be implemented for this call.

Parameters
[in]flagsFL_SORT_ASCENDING – sort in ascending order
FL_SORT_DESCENDING – sort in descending order
Values other than the above will cause undefined behavior
Other flags may appear in the future.
Todo:
Add a flag to ignore case

◆ swapping()

void Fl_Browser_::swapping ( void *  a,
void *  b 
)
protected

This method should be used when two items a and b are being swapped.

It allows the Fl_Browser_ to update its cache data as needed, schedules a redraw for the two items, and tries to maintain the current selection. This method does not actually swap items, but handles the follow up bookkeeping after items have been swapped.

Parameters
[in]a,bItems being swapped.

◆ textfont()

Fl_Font Fl_Browser_::textfont ( ) const
inline

Gets the default text font for the lines in the browser.

See also
textfont(), textsize(), textcolor()

Member Data Documentation

◆ hscrollbar

Fl_Scrollbar Fl_Browser_::hscrollbar

Horizontal scrollbar.

Public, so that it can be accessed directly.

◆ scrollbar

Fl_Scrollbar Fl_Browser_::scrollbar

Vertical scrollbar.

Public, so that it can be accessed directly.


The documentation for this class was generated from the following files: