"Fossies" - the Fresh Open Source Software archive

Member "fltk-1.3.2/documentation/html/Fl__Browser_8H_source.html" (9 Dec 2012, 28029 Bytes) of package /linux/misc/fltk-1.3.2-docs-html.tar.gz:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. Alternatively you can here view or download the uninterpreted raw source code. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.

FLTK 1.3.2
Fl_Browser.H
00001 //
00002 // "$Id: Fl_Browser.H 9682 2012-09-17 22:44:54Z greg.ercolano $"
00003 //
00004 // Browser header file for the Fast Light Tool Kit (FLTK).
00005 //
00006 // Copyright 1998-2011 by Bill Spitzak and others.
00007 //
00008 // This library is free software. Distribution and use rights are outlined in
00009 // the file "COPYING" which should have been included with this file.  If this
00010 // file is missing or damaged, see the license at:
00011 //
00012 //     http://www.fltk.org/COPYING.php
00013 //
00014 // Please report all bugs and problems on the following page:
00015 //
00016 //     http://www.fltk.org/str.php
00017 //
00018 
00019 /* \file
00020    Fl_Browser widget . */
00021 
00022 // Forms-compatible browser.  Probably useful for other
00023 // lists of textual data.  Notice that the line numbers
00024 // start from 1, and 0 means "no line".
00025 
00026 #ifndef Fl_Browser_H
00027 #define Fl_Browser_H
00028 
00029 #include "Fl_Browser_.H"
00030 #include "Fl_Image.H"
00031 
00032 struct FL_BLINE;
00033 
00080 class FL_EXPORT Fl_Browser : public Fl_Browser_ {
00081 
00082   FL_BLINE *first;              // the array of lines
00083   FL_BLINE *last;
00084   FL_BLINE *cache;
00085   int cacheline;                // line number of cache
00086   int lines;                    // Number of lines
00087   int full_height_;
00088   const int* column_widths_;
00089   char format_char_;            // alternative to @-sign
00090   char column_char_;            // alternative to tab
00091 
00092 protected:
00093 
00094   // required routines for Fl_Browser_ subclass:
00095   void* item_first() const ;
00096   void* item_next(void* item) const ;
00097   void* item_prev(void* item) const ;
00098   void* item_last()const ;
00099   int item_selected(void* item) const ;
00100   void item_select(void* item, int val);
00101   int item_height(void* item) const ;
00102   int item_width(void* item) const ;
00103   void item_draw(void* item, int X, int Y, int W, int H) const ;
00104   int full_height() const ;
00105   int incr_height() const ;
00106   const char *item_text(void *item) const;
00112   void item_swap(void *a, void *b) { swap((FL_BLINE*)a, (FL_BLINE*)b); }
00118   void *item_at(int line) const { return (void*)find_line(line); }
00119 
00120   FL_BLINE* find_line(int line) const ;
00121   FL_BLINE* _remove(int line) ;
00122   void insert(int line, FL_BLINE* item);
00123   int lineno(void *item) const ;
00124   void swap(FL_BLINE *a, FL_BLINE *b);
00125 
00126 public:
00127 
00128   void remove(int line);
00129   void add(const char* newtext, void* d = 0);
00130   void insert(int line, const char* newtext, void* d = 0);
00131   void move(int to, int from);
00132   int  load(const char* filename);
00133   void swap(int a, int b);
00134   void clear();
00135 
00141   int size() const { return lines; }
00142   void size(int W, int H) { Fl_Widget::size(W, H); }
00143 
00144   int topline() const ;
00146   enum Fl_Line_Position { TOP, BOTTOM, MIDDLE };
00147   void lineposition(int line, Fl_Line_Position pos);
00154   void topline(int line) { lineposition(line, TOP); }
00161   void bottomline(int line) { lineposition(line, BOTTOM); }
00168   void middleline(int line) { lineposition(line, MIDDLE); }
00169 
00170   int select(int line, int val=1);
00171   int selected(int line) const ;
00172   void show(int line);
00174   void show() { Fl_Widget::show(); }
00175   void hide(int line);
00177   void hide() { Fl_Widget::hide(); }
00178   int visible(int line) const ;
00179 
00180   int value() const ;
00186   void value(int line) { select(line); }
00187   const char* text(int line) const ;
00188   void text(int line, const char* newtext);
00189   void* data(int line) const ;
00190   void data(int line, void* d);
00191 
00192   Fl_Browser(int X, int Y, int W, int H, const char *L = 0);
00196   ~Fl_Browser() { clear(); }
00197 
00227   char format_char() const { return format_char_; }
00233   void format_char(char c) { format_char_ = c; }
00239   char column_char() const { return column_char_; }
00246   void column_char(char c) { column_char_ = c; }
00270   const int* column_widths() const { return column_widths_; }
00275   void column_widths(const int* arr) { column_widths_ = arr; }
00276 
00286   int displayed(int line) const { return Fl_Browser_::displayed(find_line(line)); }
00287 
00295   void make_visible(int line) {
00296     if (line < 1) Fl_Browser_::display(find_line(1));
00297     else if (line > lines) Fl_Browser_::display(find_line(lines));
00298     else Fl_Browser_::display(find_line(line));
00299   }
00300 
00301   // icon support
00302   void icon(int line, Fl_Image* icon);
00303   Fl_Image* icon(int line) const;
00304   void remove_icon(int line);
00305 
00307   void replace(int a, const char* b) { text(a, b); }
00308   void display(int line, int val=1);
00309 };
00310 
00311 #endif
00312 
00313 //
00314 // End of "$Id: Fl_Browser.H 9682 2012-09-17 22:44:54Z greg.ercolano $".
00315 //