Fl_ColumnManager.H

00001 #ifndef _FL_COLUMNMANAGER_
00002 #define _FL_COLUMNMANAGER_
00003 
00004 #include <FL/Fl.H>
00005 #include <FL/Fl_Widget.H>
00006 #include <FL/Fl_Browser.H>
00007 #include <FL/fl_draw.H>
00008 #include <stdlib.h>
00009 #include <string>
00010 
00012 
00018 class Fl_ColumnManager : public Fl_Widget {
00019 public:
00021 Fl_ColumnManager(int x, int y, int w, int h, const char *label=NULL);
00023 int handle(int event);
00025 void update();
00027 void set_browser(Fl_Browser* b);
00029 void draw();
00030 protected:
00032 void draw_control(int c, int X, int Y, int W, int H);
00034 void click_control(int c, int X, int Y, int W, int H);
00036 void drag_control(int c, int X, int Y, int W, int H);
00038 static void scrollbar_callback(Fl_Widget* s, void* cm);
00040 void for_each_column(void (Fl_ColumnManager::*action)(int col, int,int,int,int));
00041 // member data 00042 Fl_Browser* B;
00043 int mySortColumn;
00044 };
00045
00047 bool strictly_less(const STL string& A, const STL string& B);
00048
00050 void sort_by_column(int c, Fl_Browser* B, bool (*lex)(const STL string&,const STL string&)=&strictly_less);
00051
00052
00053 #endif /* _FL_COLUMNMANAGER_ */

source code written by Brian Grant at ANT-S, 2011 Research Dr. Livermore, CA  94550.