Include a stripped-down version of FLTK in tree and add a USE_INCLUDED_FLTK option to build against it.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4603 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/fltk/src/Fl_Tree_Prefs.cxx b/common/fltk/src/Fl_Tree_Prefs.cxx
new file mode 100644
index 0000000..796c219
--- /dev/null
+++ b/common/fltk/src/Fl_Tree_Prefs.cxx
@@ -0,0 +1,168 @@
+//
+// "$Id: Fl_Tree_Prefs.cxx 8340 2011-01-30 20:22:06Z greg.ercolano $"
+//
+
+#include <FL/Fl.H>
+#include <FL/Fl_Pixmap.H>
+#include <FL/Fl_Tree_Prefs.H>
+#include <string.h>
+
+//////////////////////
+// Fl_Tree_Prefs.cxx
+//////////////////////
+//
+// Fl_Tree -- This file is part of the Fl_Tree widget for FLTK
+// Copyright (C) 2009-2010 by Greg Ercolano.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+
+// INTERNAL: BUILT IN OPEN/STOW XPMS
+//    These can be replaced via prefs.openicon()/closeicon()
+//
+static const char *L_open_xpm[] = {
+#ifdef __APPLE__
+  "11 11 2 1",
+  ".  c None",
+  "@  c #000000",
+  "...@.......",
+  "...@@......",
+  "...@@@.....",
+  "...@@@@....",
+  "...@@@@@...",
+  "...@@@@@@..",
+  "...@@@@@...",
+  "...@@@@....",
+  "...@@@.....",
+  "...@@......",
+  "...@......."
+#else
+  "11 11 3 1",
+  ".	c #fefefe",
+  "#	c #444444",
+  "@	c #000000",
+  "###########",
+  "#.........#",
+  "#.........#",
+  "#....@....#",
+  "#....@....#",
+  "#..@@@@@..#",
+  "#....@....#",
+  "#....@....#",
+  "#.........#",
+  "#.........#",
+  "###########"
+#endif
+};
+static Fl_Pixmap L_openpixmap(L_open_xpm);
+
+static const char *L_close_xpm[] = {
+#ifdef __APPLE__
+  "11 11 2 1",
+  ".  c None",
+  "@  c #000000",
+  "...........",
+  "...........",
+  "...........",
+  "...........",
+  "...........",
+  "@@@@@@@@@@@",
+  ".@@@@@@@@@.",
+  "..@@@@@@@..",
+  "...@@@@@...",
+  "....@@@....",
+  ".....@....."
+#else
+  "11 11 3 1",
+  ".	c #fefefe",
+  "#	c #444444",
+  "@	c #000000",
+  "###########",
+  "#.........#",
+  "#.........#",
+  "#.........#",
+  "#.........#",
+  "#..@@@@@..#",
+  "#.........#",
+  "#.........#",
+  "#.........#",
+  "#.........#",
+  "###########"
+#endif
+};
+static Fl_Pixmap L_closepixmap(L_close_xpm);
+
+/// Sets the default icon to be used as the 'open' icon
+/// when items are add()ed to the tree.
+/// This overrides the built in default '[+]' icon.
+///
+/// \param[in] val -- The new image, or zero to use the default [+] icon.
+///
+void Fl_Tree_Prefs::openicon(Fl_Image *val) {
+  _openimage = val ? val : &L_openpixmap;
+}
+
+/// Sets the icon to be used as the 'close' icon.
+/// This overrides the built in default '[-]' icon.
+///
+/// \param[in] val -- The new image, or zero to use the default [-] icon.
+///
+void Fl_Tree_Prefs::closeicon(Fl_Image *val) {
+  _closeimage = val ? val : &L_closepixmap;
+}
+
+/// Fl_Tree_Prefs constructor
+Fl_Tree_Prefs::Fl_Tree_Prefs() {
+  _labelfont              = FL_HELVETICA;
+  _labelsize              = FL_NORMAL_SIZE;
+  _marginleft             = 6;
+  _margintop              = 3;
+  //_marginright          = 3;
+  //_marginbottom         = 3;
+  _openchild_marginbottom = 0;
+  _usericonmarginleft     = 3;
+  _labelmarginleft        = 3;
+  _linespacing            = 0;
+  _labelfgcolor           = FL_BLACK;
+  _labelbgcolor           = FL_WHITE;
+  _connectorcolor         = Fl_Color(43);
+#ifdef __APPLE__
+  _connectorstyle         = FL_TREE_CONNECTOR_NONE;
+#else
+  _connectorstyle         = FL_TREE_CONNECTOR_DOTTED;
+#endif
+  _openimage              = &L_openpixmap;
+  _closeimage             = &L_closepixmap;
+  _userimage              = 0;
+  _showcollapse           = 1;
+  _showroot               = 1;
+  _connectorwidth         = 17;
+  _sortorder              = FL_TREE_SORT_NONE;
+  _selectbox              = FL_FLAT_BOX;
+  _selectmode             = FL_TREE_SELECT_SINGLE;
+  // Let fltk's current 'scheme' affect defaults
+  if ( Fl::scheme() ) {
+    if ( strcmp(Fl::scheme(), "gtk+") == 0 ) {
+      _selectbox = _FL_GTK_THIN_UP_BOX;
+    } else if ( strcmp(Fl::scheme(), "plastic") == 0 ) {
+      _selectbox = _FL_PLASTIC_THIN_UP_BOX;
+    }
+  }
+}
+
+//
+// End of "$Id: Fl_Tree_Prefs.cxx 8340 2011-01-30 20:22:06Z greg.ercolano $".
+//