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 $".
+//