FLTK 1.3.4
Fl_Check_Browser.H
1 //
2 // "$Id: Fl_Check_Browser.H 8864 2011-07-19 04:49:30Z greg.ercolano $"
3 //
4 // Fl_Check_Browser header file for the Fast Light Tool Kit (FLTK).
5 //
6 // Copyright 1998-2010 by Bill Spitzak and others.
7 //
8 // This library is free software. Distribution and use rights are outlined in
9 // the file "COPYING" which should have been included with this file. If this
10 // file is missing or damaged, see the license at:
11 //
12 // http://www.fltk.org/COPYING.php
13 //
14 // Please report all bugs and problems on the following page:
15 //
16 // http://www.fltk.org/str.php
17 //
18 
19 /* \file
20  Fl_Check_Browser widget . */
21 
22 #ifndef Fl_Check_Browser_H
23 #define Fl_Check_Browser_H
24 
25 #include "Fl.H"
26 #include "Fl_Browser_.H"
27 
32 class FL_EXPORT Fl_Check_Browser : public Fl_Browser_ {
33  /* required routines for Fl_Browser_ subclass: */
34 
35  void *item_first() const;
36  void *item_next(void *) const;
37  void *item_prev(void *) const;
38  int item_height(void *) const;
39  int item_width(void *) const;
40  void item_draw(void *, int, int, int, int) const;
41  void item_select(void *, int);
42  int item_selected(void *) const;
43 
44  /* private data */
45 
46  public: // IRIX 5.3 C++ compiler doesn't support private structures...
47 
48 #ifndef FL_DOXYGEN
49 
50  struct cb_item {
51  cb_item *next;
52  cb_item *prev;
53  char checked;
54  char selected;
55  char *text;
56  };
57 #endif // !FL_DOXYGEN
58 
59  private:
60 
61  cb_item *first;
62  cb_item *last;
63  cb_item *cache;
64  int cached_item;
65  int nitems_;
66  int nchecked_;
67  cb_item *find_item(int) const;
68  int lineno(cb_item *) const;
69 
70  public:
71 
72  Fl_Check_Browser(int x, int y, int w, int h, const char *l = 0);
75  int add(char *s); // add an (unchecked) item
76  int add(char *s, int b); // add an item and set checked
77  // both return the new nitems()
78  int remove(int item); // delete an item. Returns nitems()
79 
80  // inline const char * methods to avoid breaking binary compatibility...
82  int add(const char *s) { return add((char *)s); }
84  int add(const char *s, int b) { return add((char *)s, b); }
85 
86  void clear(); // delete all items
91  int nitems() const { return nitems_; }
93  int nchecked() const { return nchecked_; }
94  int checked(int item) const;
95  void checked(int item, int b);
97  void set_checked(int item) { checked(item, 1); }
98  void check_all();
99  void check_none();
100  int value() const; // currently selected item
101  char *text(int item) const; // returns pointer to internal buffer
102 
103  protected:
104 
105  int handle(int);
106 };
107 
108 #endif // Fl_Check_Browser_H
109 
110 //
111 // End of "$Id: Fl_Check_Browser.H 8864 2011-07-19 04:49:30Z greg.ercolano $".
112 //
113 
int add(const char *s, int b)
See int Fl_Check_Browser::add(char *s)
Definition: Fl_Check_Browser.H:84
Fl static class.
This is the base class for browsers.
Definition: Fl_Browser_.H:77
~Fl_Check_Browser()
The destructor deletes all list items and destroys the browser.
Definition: Fl_Check_Browser.H:74
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_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_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...
void clear()
Deletes all child widgets from memory recursively.
Definition: Fl_Group.cxx:383
void * find_item(int ypos)
This method returns the item under mouse y position ypos.
Definition: Fl_Browser_.cxx:583
void add(Fl_Widget &)
The widget is removed from its current group (if any) and then added to the end of this group...
Definition: Fl_Group.cxx:491
int nchecked() const
Returns how many items are currently checked.
Definition: Fl_Check_Browser.H:93
int handle(int event)
Handles the event within the normal widget bounding box.
Definition: Fl_Browser_.cxx:693
int add(const char *s)
See int Fl_Check_Browser::add(char *s)
Definition: Fl_Check_Browser.H:82
virtual void * item_first() const =0
This method must be provided by the subclass to return the first item in the list.
void set_checked(int item)
Equivalent to Fl_Check_Browser::checked(item, 1).
Definition: Fl_Check_Browser.H:97
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.
virtual int item_selected(void *item) const
This method must be implemented by the subclass if it supports multiple selections; returns the selec...
Definition: Fl_Browser_.cxx:1098
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 void item_select(void *item, int val=1)
This method must be implemented by the subclass if it supports multiple selections; sets the selectio...
Definition: Fl_Browser_.cxx:1090
The Fl_Check_Browser widget displays a scrolling list of text lines that may be selected and/or check...
Definition: Fl_Check_Browser.H:32
int nitems() const
Returns how many lines are in the browser.
Definition: Fl_Check_Browser.H:91