summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2016-11-19 01:20:53 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2016-11-19 01:20:53 +0000
commit6d4b93e9c75023000512e3370b7a75610c8a11d9 (patch)
tree2d219fb3fca6a2666edc2e5c71e079b96ed6a9dc
parent18d478055ecb7421309202fcecb844a641c73f16 (diff)
Finally remove FLTK_ABI_VERSION preprocessor macro from code.
FLTK_ABI_VERSION has been renamed to FL_ABI_VERSION in FLTK 1.4.0. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12121 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
-rw-r--r--FL/Enumerations.H28
-rw-r--r--FL/names.h10
-rw-r--r--README.abi-version.txt93
-rw-r--r--examples/tree-custom-draw-items.cxx12
-rw-r--r--examples/tree-of-tables.cxx10
-rw-r--r--examples/tree-simple.cxx4
-rw-r--r--test/tree.fl84
7 files changed, 75 insertions, 166 deletions
diff --git a/FL/Enumerations.H b/FL/Enumerations.H
index 5612bd5c9..c31a9a677 100644
--- a/FL/Enumerations.H
+++ b/FL/Enumerations.H
@@ -25,15 +25,8 @@
/*
******************************************************************************
- * Notes on FL_ABI_VERSION and deprecated (obsolete) FLTK_ABI_VERSION:
- *
- * (1) FLTK_ABI_VERSION is deprecated, but still defined below.
- * Do NOT define FLTK_ABI_VERSION here - it would be overwritten later.
- *
- * (2) FL_ABI_VERSION is now (as of FLTK 1.3.4) defined by configure
- * or CMake. Do NOT define it here. Its definition will be included
- * below by "#include <FL/abi-version.h>".
- *
+ * FL_ABI_VERSION is defined by configure or CMake since FLTK 1.3.4.
+ * It is written to FL/abi-version.h and #included here.
******************************************************************************
* For more informations on FL_ABI_VERSION see README.abi-version.txt.
******************************************************************************
@@ -181,19 +174,6 @@
#endif
-/*
- FLTK_ABI_VERSION is deprecated (replaced by FL_ABI_VERSION).
-
- This deprecated constant will be removed in FLTK 1.4.0 and later.
- Please use FL_ABI_VERSION when FLTK 1.4.0 has been released.
-*/
-
-#ifdef FLTK_ABI_VERSION
-#undef FLTK_ABI_VERSION
-#endif
-
-#define FLTK_ABI_VERSION FL_ABI_VERSION
-
/*@}*/ // group: Version Numbers
/**
@@ -214,7 +194,7 @@
\sa Fl::event_text(), Fl::event_key(), class Fl::
*/
-// DEV NOTE: Keep this list in sync with FL/names.H
+// DEV NOTE: Keep this list in sync with FL/names.h
enum Fl_Event { // events
/** No event. */
FL_NO_EVENT = 0,
@@ -424,6 +404,8 @@ enum Fl_Event { // events
Fl::event_x() and Fl::event_y() are set as well.
*/
FL_ZOOM_GESTURE = 26
+
+// DEV NOTE: Keep this list in sync with FL/names.h
};
/** \name When Conditions */
diff --git a/FL/names.h b/FL/names.h
index cee584b05..46525d600 100644
--- a/FL/names.h
+++ b/FL/names.h
@@ -3,7 +3,7 @@
//
// Event names header file for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2010 by Bill Spitzak and others.
+// Copyright 1998-2016 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -69,10 +69,10 @@ const char * const fl_eventnames[] =
"FL_SCREEN_CONFIGURATION_CHANGED",
"FL_FULLSCREEN",
"FL_ZOOM_GESTURE",
- "FL_EVENT_27", // not yet defined, just in case they /will/ be defined ...
- "FL_EVENT_28",
- "FL_EVENT_29",
- "FL_EVENT_30"
+ "FL_EVENT_27", // not yet defined, just in case it /will/ be defined ...
+ "FL_EVENT_28", // not yet defined, just in case it /will/ be defined ...
+ "FL_EVENT_29", // not yet defined, just in case it /will/ be defined ...
+ "FL_EVENT_30" // not yet defined, just in case it /will/ be defined ...
};
/**
diff --git a/README.abi-version.txt b/README.abi-version.txt
index 25fa06db9..6c760bc76 100644
--- a/README.abi-version.txt
+++ b/README.abi-version.txt
@@ -6,21 +6,24 @@ patch versions, for instance all 1.3.x versions (x = patch version).
This basically means that a program compiled and linked with FLTK 1.3.0
can run with a FLTK shared library (fltk.dll, fltk.so.1.3.x) of a later
-FLTK version.
+FLTK version 1.3.x, but not with a shared library of FLTK 1.4.0 or later.
Since FLTK 1.3.1 the FLTK team began to introduce ABI-breaking features
wrapped in so-called ABI guards in the library code, e.g.
- #if FLTK_ABI_VERSION >= 10304
- ... new, ABI breaking code ...
- #else
- ... old, ABI preserving code ...
- #endif
+ #if FL_ABI_VERSION >= 10401
+ ... new, ABI breaking code ...
+ #else
+ ... old, ABI preserving code ...
+ #endif
-Note: This documentation is written for FLTK 1.4.x, but it applies to all
-later versions as well. Replace the version numbers given here by the
-version numbers of the version you are using. FLTK version 1.4.4 is
-chosen as an example only. As of this writing, FLTK 1.4.4 does not exist yet.
+ Note: In FLTK 1.3.x this preprocessor macro was named FLTK_ABI_VERSION.
+ In FLTK 1.4.0 FLTK_ABI_VERSION was renamed to FL_ABI_VERSION.
+
+This documentation is written for FLTK 1.4.x, but it applies to all later
+versions as well. Replace the version numbers given here with the version
+numbers of the version you are using. FLTK version 1.4.1 was chosen as an
+example only. As of this writing, FLTK 1.4.1 does not yet exist.
How to define the FLTK ABI version
@@ -29,83 +32,85 @@ How to define the FLTK ABI version
To define the ABI version the preprocessor macro FL_ABI_VERSION must be
defined as a number representing the ABI version in the form
- #define FL_ABI_VERSION 1xxyy
+ #define FL_ABI_VERSION 1xxyy
where xx and yy are the minor and patch versions, resp. with leading zeroes,
and '1' is the major version number.
The default ABI version for all FLTK 1.4.x versions is 10400 (the binary
version of FLTK 1.4.0), but you can configure another version, e.g.
-10404 for FLTK 1.4.4 to enable the ABI features of FLTK 1.4.4 and all
+10401 for FLTK 1.4.1 to enable the ABI features of FLTK 1.4.1 and all
previous versions. See CHANGES file.
Depending on how you build FLTK, there are two different ways to configure
the ABI version. The default is always the lowest version (e.g. 10400). All
-following examples are written for FLTK 1.4.4, hence we use "10404" for
+following examples are written for FLTK 1.4.1, hence we use "10401" for
the version number.
(1) Traditional configure + make (Unix, Linux, MinGW etc.)
----------------------------------------------------------
- Run
+ Run
- ./configure --with-abiversion=10404
- make
+ ./configure --with-abiversion=10401
+ make
- This will generate FL/abi-version.h and build FLTK as usual.
+ This will generate FL/abi-version.h and build FLTK as usual.
(2) CMake + make
----------------
- FLTK 1.4.0 and later contains full CMake support.
+ FLTK versions 1.4.0 and later contain full CMake support.
- Use CMake to build the Makefile's and run 'make'. To configure the
- ABI version, use ccmake, cmake-gui, or run make with the following
- command:
+ Use CMake to build the Makefile's and run 'make'. To configure the
+ ABI version, use ccmake, cmake-gui, or run make with the following
+ command:
- cmake -D OPTION_ABI_VERSION:STRING=10404 /path/to/fltk
- make
+ cmake -D OPTION_ABI_VERSION:STRING=10401 /path/to/fltk
+ make
- You can define OPTION_ABI_VERSION to the required version number using
- one of the graphical CMake tools.
+ You can define OPTION_ABI_VERSION to the required version number using
+ one of the graphical CMake tools.
- For more information on how to use CMake with FLTK see README.CMake.txt.
+ For more information on how to use CMake with FLTK see README.CMake.txt.
(3) CMake + IDE Projects: Visual C++, Xcode, other IDE's
--------------------------------------------------------
- FLTK 1.4.0 and later contains full CMake support.
+ FLTK versions 1.4.0 and later contain full CMake support.
- IDE project files are no longer included in the FLTK source distribution.
- You need to install CMake to generate the IDE files.
+ IDE project files are no longer included in the FLTK source distribution.
+ You need to install CMake to generate the IDE files.
- Use CMake to generate the IDE project files of your choice. Currently
- the FLTK team uses some Visual C++ (Visual Studio) versions and Xcode.
- Other IDE's may work as well (not yet tested).
+ Use CMake to generate the IDE project files of your choice. Currently
+ the FLTK team uses some Visual C++ (Visual Studio) versions and Xcode.
+ Other IDE's may work as well (not yet tested).
- For more informations on how to install and use CMake see ...
- ... *FIXME* [Add documentation how to use CMake with FLTK].
+ For more informations on how to install and use CMake see ...
+ ... *FIXME* [Add documentation how to use CMake with FLTK].
- Use CMake option OPTION_ABI_VERSION:STRING=10404 with the command line
- or any of the CMake GUI programs.
+ Use CMake option OPTION_ABI_VERSION:STRING=10401 with the command line
+ or any of the CMake GUI programs.
- Then start the build process in the IDE solution of your choice. This
- will run the build with the defined ABI version.
+ Then start the build process in the IDE solution of your choice. This
+ will run the build with the defined ABI version.
General note on CMake:
----------------------
- CMake generates FL/abi-version.h in the build tree. You may run
- 'make install' to install the FLTK library including all headers in
- the chosen installation directory, although this is not necessary.
+ CMake generates FL/abi-version.h in the build tree. You may run
+ 'make install' to install the FLTK library including all headers in
+ the chosen installation directory, although this is not necessary.
+
+ The FLTK team recommends to use the FLTK library directly from the
+ build folder. See README.CMake.txt for more information.
- The FLTK team recommends to use the FLTK library directly from the
- build folder. See README.CMake.txt for more information.
+ Possible exception: Visual Studio IDE builds (Windows).
- ... to be continued ...
+ ... to be continued ...
diff --git a/examples/tree-custom-draw-items.cxx b/examples/tree-custom-draw-items.cxx
index fbee62700..58e7e87fd 100644
--- a/examples/tree-custom-draw-items.cxx
+++ b/examples/tree-custom-draw-items.cxx
@@ -4,7 +4,7 @@
// Demonstrate Fl_Tree custom item draw callback. - erco 11/09/2013
//
// Copyright 2013 Greg Ercolano.
-// Copyright 1998-2013 by Bill Spitzak and others.
+// Copyright 1998-2016 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -26,7 +26,6 @@
#define MAX(a,b) ((a)>(b))?(a):(b)
#endif
-#if FLTK_ABI_VERSION >= 10303
// DERIVE CUSTOM CLASS FROM Fl_Tree_Item TO IMPLEMENT SHOWING THE TIME OF DAY
// This demonstrates that item content can be dynamic and highly customized.
//
@@ -176,15 +175,6 @@ int main(int argc, char *argv[]) {
win->show(argc, argv);
return(Fl::run());
}
-#else
-#include <FL/Fl.H>
-#include <FL/fl_message.H>
-int main(int, char**) {
- fl_alert("This demo is dependent on an ABI feature.\n"
- "FLTK_ABI_VERSION must be set to 10303 (or higher) in Enumerations.H");
- return 1;
-}
-#endif
//
// End of "$Id$".
diff --git a/examples/tree-of-tables.cxx b/examples/tree-of-tables.cxx
index be815551b..b90a015d0 100644
--- a/examples/tree-of-tables.cxx
+++ b/examples/tree-of-tables.cxx
@@ -7,7 +7,7 @@
// contains a complex widget.
//
// Copyright 2010,2012 Greg Ercolano.
-// Copyright 1998-2010 by Bill Spitzak and others.
+// Copyright 1998-2016 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -29,7 +29,6 @@
#define PI 3.14159
#endif
-#if FLTK_ABI_VERSION >= 10301
class MyTable : public Fl_Table {
const char *mode;
public:
@@ -142,13 +141,6 @@ int main(int argc, char *argv[]) {
win->show(argc, argv);
return(Fl::run());
}
-#else /*FLTK_ABI_VERSION*/
-#include <FL/fl_ask.H>
-int main(int argc, char *argv[]) {
- fl_alert("This example must have FLTK_ABI_VERSION enabled to work properly.");
- return 1;
-}
-#endif
//
// End of "$Id$".
diff --git a/examples/tree-simple.cxx b/examples/tree-simple.cxx
index 6450e9849..7e3cf964d 100644
--- a/examples/tree-simple.cxx
+++ b/examples/tree-simple.cxx
@@ -4,7 +4,7 @@
// Simple Fl_Tree widget example. - erco 06/05/2010
//
// Copyright 2010 Greg Ercolano.
-// Copyright 1998-2010 by Bill Spitzak and others.
+// Copyright 1998-2016 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -44,12 +44,10 @@ void TreeCallback(Fl_Widget *w, void *data) {
case FL_TREE_REASON_CLOSED:
// fprintf(stderr, "TreeCallback: Item '%s' closed\n", item->label());
break;
-#if FLTK_ABI_VERSION >= 10301
// To enable this callback, use tree->item_reselect_mode(FL_TREE_SELECTABLE_ALWAYS);
case FL_TREE_REASON_RESELECTED:
// fprintf(stderr, "TreeCallback: Item '%s' reselected\n", item->label());
break;
-#endif
default:
break;
}
diff --git a/test/tree.fl b/test/tree.fl
index a1a9261f9..fcd342ef8 100644
--- a/test/tree.fl
+++ b/test/tree.fl
@@ -52,9 +52,7 @@ Function {reason_as_name(Fl_Tree_Reason reason)} {
case FL_TREE_REASON_OPENED: return("opened");
case FL_TREE_REASON_CLOSED: return("closed");
case FL_TREE_REASON_DRAGGED: return("dragged");
-\#if FLTK_ABI_VERSION >= 10301
- case FL_TREE_REASON_RESELECTED: return("reselected");
-\#endif
+ case FL_TREE_REASON_RESELECTED: return("reselected");
default: return("???");
}} {}
}
@@ -322,22 +320,14 @@ Function {GetTreeMarginBottom()} {
comment {Get the current 'margin bottom' size
Handles this as an ABI feature..} open return_type int
} {
- code {\#if FLTK_ABI_VERSION >= 10301
-return tree->marginbottom();
-\#else
-return 0;
-\#endif} {}
+ code {return tree->marginbottom();} {}
}
Function {GetTreeWidgetMarginLeft()} {
comment {Get the current 'margin bottom' size
Handles this as an ABI feature..} open return_type int
} {
- code {\#if FLTK_ABI_VERSION >= 10301
-return tree->widgetmarginleft();
-\#else
-return 0;
-\#endif} {}
+ code {return tree->widgetmarginleft();} {}
}
Function {GetSelectedItemFGColor()} {
@@ -433,18 +423,9 @@ tree->redraw();}
Fl_Value_Slider marginbottom_slider {
label {marginbottom()}
user_data tree
- callback {\#if FLTK_ABI_VERSION >= 10301
-// NEW
-int val = (int)marginbottom_slider->value();
+ callback {int val = (int)marginbottom_slider->value();
tree->marginbottom(val);
-tree->redraw();
-\#else
-// OLD
-marginbottom_slider->deactivate(); // deactivate if this ABI feature is disabled
-marginbottom_slider->tooltip("DISABLED.\\n"
- "Set FLTK_ABI_VERSION to 10301 (or higher)\\n"
- "to enable this feature");
-\#endif}
+tree->redraw();}
tooltip {Changes the bottom margin for the tree
Sets how far beyond bottom of tree you can scroll} xywh {505 80 155 16} type Horizontal color 46 selection_color 1 labelsize 10 align 4 textsize 9
code0 {o->value(GetTreeMarginBottom()); // handle ABI feature}
@@ -488,16 +469,9 @@ tree->redraw();}
Fl_Value_Slider widgetmarginleft_slider {
label {widgetmarginleft()}
user_data tree
- callback {\#if FLTK_ABI_VERSION >= 10301
-int val = (int)widgetmarginleft_slider->value();
+ callback {int val = (int)widgetmarginleft_slider->value();
tree->widgetmarginleft(val);
-tree->redraw();
-\#else
-widgetmarginleft_slider->deactivate();
-widgetmarginleft_slider->tooltip("DISABLED.\\n"
- "Set FLTK_ABI_VERSION to 10301 (or higher)\\n"
- "to enable this feature");
-\#endif}
+tree->redraw();}
tooltip {Changes the margin to the left of child FLTK widget()
"Show label + widget" must be 'on' for this to take effect, i.e.
item_draw_mode(FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET)} xywh {505 160 155 16} type Horizontal color 46 selection_color 1 labelsize 10 align 4 textsize 9
@@ -692,21 +666,11 @@ Sets how Fl_Tree handles mouse selection of tree items.
}
Fl_Choice reselectmode_chooser {
label {Item Reselect Mode}
- callback {\#if FLTK_ABI_VERSION >= 10301
-// NEW
-// Set reselection mode
+ callback {// Set reselection mode
switch ( reselectmode_chooser->value() ) {
case 0: tree->item_reselect_mode(FL_TREE_SELECTABLE_ONCE); break;
case 1: tree->item_reselect_mode(FL_TREE_SELECTABLE_ALWAYS); break;
-}
-\#else
-// OLD
-reselectmode_chooser->deactivate(); // deactivate if this ABI feature is disabled
-reselectmode_chooser->tooltip("DISABLED.\\n"
- "Set FLTK_ABI_VERSION to 10301 (or higher)\\n"
- "to enable this feature");
-window->redraw(); // deactivated
-\#endif}
+}}
tooltip {Tests Fl_Tree::item_reselect_mode().
Enables 'reselect' events.
These happen when someone selects an item already selected
@@ -774,23 +738,13 @@ tree->visible_focus(onoff);}
}
Fl_Check_Button labelandwidget_radio {
label {Show label + widget}
- callback {\#if FLTK_ABI_VERSION >= 10303
-// NEW
-int flags = tree->item_draw_mode();
+ callback {int flags = tree->item_draw_mode();
if ( labelandwidget_radio->value() )
{ flags |= FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET; }
else
{ flags &= ~FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET; }
tree->item_draw_mode(flags);
-tree->redraw();
-\#else
-// OLD
-labelandwidget_radio->deactivate(); // deactivate if this ABI feature is disabled
-labelandwidget_radio->tooltip("DISABLED.\\n"
- "Set FLTK_ABI_VERSION to 10303 (or higher)\\n"
- "to enable this feature");
-window->redraw(); // deactivated
-\#endif}
+tree->redraw();}
tooltip {Tests Fl_Tree::item_draw_mode(FL_TREE_ITEM_DRAW_LABEL_AND_WIDGET)
Enables both label and widget() for display.
When enabled, widget should appear to the right of the item's label.
@@ -800,23 +754,13 @@ By default, the widget() is shown in place of the item's label.} xywh {645 356 2
}
Fl_Check_Button itemheightfromwidget_radio {
label {Item h() from widget}
- callback {\#if FLTK_ABI_VERSION >= 10303
-// NEW
-int flags = tree->item_draw_mode();
+ callback {int flags = tree->item_draw_mode();
if ( itemheightfromwidget_radio->value() )
{ flags |= FL_TREE_ITEM_HEIGHT_FROM_WIDGET; }
else
{ flags &= ~FL_TREE_ITEM_HEIGHT_FROM_WIDGET; }
tree->item_draw_mode(flags);
-tree->redraw();
-\#else
-// OLD
-itemheightfromwidget_radio->deactivate(); // deactivate if this ABI feature is disabled
-itemheightfromwidget_radio->tooltip("DISABLED.\\n"
- "Set FLTK_ABI_VERSION to 10303 (or higher)\\n"
- "to enable this feature");
-window->redraw(); // deactivated
-\#endif}
+tree->redraw();}
tooltip {Tests Fl_Tree::item_draw_mode(FL_TREE_ITEM_HEIGHT_FROM_WIDGET)
If enabled, item's height will track the widget()'s height.
When enabled, click 'ccc' or 'D1/D2' buttons to test.} xywh {645 371 20 16} down_box DOWN_BOX labelsize 11 align 7
@@ -1789,9 +1733,7 @@ tree->redraw();}
}
code {// Initialize Tree
tree->root_label("ROOT");
-\#if FLTK_ABI_VERSION >= 10301
tree->item_reselect_mode(FL_TREE_SELECTABLE_ALWAYS);
-\#endif
RebuildTree();
/*tree->show_self();*/} {}
code {// FLTK stuff