/**

 \page  migration_1_5   Migrating Code from FLTK 1.4 to 1.5

This appendix describes the differences between FLTK
1.4.x and FLTK 1.5.x functions and classes and potential requirements
to change source code. We also explain how code can be made compatible
so it can be compiled by FLTK 1.3.x, 1.4.x, and 1.5.x.

If you need to migrate your code from prior FLTK versions to FLTK 1.4,
please consult the relevant appendices in the FLTK 1.3 online documentation
or by downloading the FLTK 1.3 documentation.
See https://www.fltk.org/doc-1.3/migration_1_3.html and/or
https://www.fltk.org/software.php, respectively.


\section migration_1_5_cmake CMake is required to build FLTK

Building with configure/make and included Makefile's has been discontinued.
Since FLTK 1.5.0 CMake is required to build FLTK. Please see README.CMake.txt
for details.


\section migration_1_5_cxx_standard FLTK requires C++11 or higher

You need a compiler or build system capable of at least C++ standard C++11.
The compiler must be configured to run in C++11 mode or higher.

FLTK sets the required compiler options automatically (via CMake) for its own
build.

If you use "Modern CMake" (basically CMake in CONFIGURE mode) to build your
own projects the appropriate options are inherited from the properties of
the FLTK libraries. Otherwise you may need to set the compiler flags to use
at least C++11 yourself.


\section migration_1_5_forms Default for FORMS compatibility is now OFF

If you need (X)Forms compatibility you must set the CMake configure option

    FLTK_BUILD_FORMS:BOOL=ON

manually. In previous versions (up to 1.4.x) the default was 'ON', but since
Forms compatibility is not a primary goal of FLTK this is now optional.


(X)Forms support \b may be removed entirely in a future FLTK release. We
recommend all users to rewrite their code to use "native" FLTK code anyway.



\section migration_1_5_fl_override Simplified FL_OVERRIDE Macro

FLTK 1.4 defined a new macro \p FL_OVERRIDE as "override" if (and only if)
a recent C++ standard (C++11 or higher) was used to compile its code.

Since FLTK 1.5 this macro is unconditionally defined as 'override' because
FLTK requires C++11 anyway.

For more details please see \ref migration_1_4_fl_override.


\section migration_1_5_removed Removed Methods and Functions

Methods, functions, and global symbols that have been deprecated in FLTK 1.3
or earlier have been removed in FLTK 1.5.0.

If you need help with these functions because old code still uses them, please
consult the table below for a quick solution. If this doesn't help please read
the FLTK 1.3 or 1.4 documentation to find out how to replace them with newer
functions or methods, for instance https://www.fltk.org/doc-1.4/deprecated.html.


The following (possibly incomplete) list can help to identify and replace
these removed methods and functions.

Removed Symbol                            | Please Replace With ...
------------------------------------------|-------------------------
Fl::release()                             | Fl::grab(0)
Fl::set_idle(Fl_Old_Idle_Handler cb)      | Fl::add_idle(cb [, data])
fl_ask(const char *fmt,...)               | fl_choice()
fl_clip(int, int, int, int)               | fl_push_clip(int x, int y, int w, int h)
Fl_Group::focus(Fl_Widget *W)             | (Fl_Widget*) W->take_focus()
Fl_Menu_Item::check()                     | Fl_Menu_Item::set()
Fl_Menu_Item::checked() const             | int Fl_Menu_Item::value() const
Fl_Menu_Item::uncheck()                   | Fl_Menu_Item::clear()
Fl_Widget::color2() const                 | Fl_Widget::selection_color() const
Fl_Widget::color2(unsigned)               | Fl_Widget::selection_color(unsigned)
void Fl_File_Input::errorcolor(Fl_Color)  | no replacement (not unused)
Fl_Color Fl_File_Input::errorcolor()      | no replacement (was FL_RED)
static int Fl_Browser_::scrollbar_width() | static int Fl::scrollbar_size()
void Fl_Browser_::scrollbar_width(int)    | Fl_Browser_::scrollbar_size(int)


\section migration_1_5_deprecated More Deprecated Methods and Functions

All methods deprecated in <b> FLTK 1.4.x or earlier </b> are likely to be
removed in the next minor FLTK version, presumably 1.6.0.

Please update your code!

\todo This table of deprecated functions since FLTK 1.5 may be incomplete and
      should be completed before the release of FLTK 1.5.0.

Symbol To Be Removed In The Next Minor Release         | Please Replace With ...
-------------------------------------------------------|-------------------------
void Fl_Window::icon(const void *ic)                   | void Fl_Window::icon(const Fl_RGB_Image *icon)
const void * Fl_Window::icon() const                   | no replacement (Windows platform specific)
&nbsp;                                                 | &nbsp;
Fl_Tree::first_visible()                               | in 1.3.3 ABI
Fl_Tree::first_visible_item()                          | ?
Fl_Tree::item_clicked(Fl_Tree_Item *val)               | callback_item()
Fl_Tree::item_clicked()                                | callback_item()
Fl_Tree::last_visible()                                | last_visible_item()
&nbsp;                                                 | &nbsp;
Fl_Tree_Item::Fl_Tree_Item(const Fl_Tree_Prefs &prefs) | Fl_Tree_Item(Fl_Tree*)
Fl_Tree_Item::next_displayed(Fl_Tree_Prefs &prefs)     | next_visible()
Fl_Tree_Item::prev_displayed(Fl_Tree_Prefs &prefs)     | prev_visible()

For details please refer to the documentation of FLTK 1.4 at
https://www.ﬂtk.org/doc-1.4/deprecated.html.


\htmlonly
<hr>
<table summary="navigation bar" width="100%" border="0">
<tr>
  <td width="45%" align="LEFT">
    <a class="el" href="migration_1_4.html">
    [Prev]
    Migrating Code from FLTK 1.3 to 1.4
    </a>
  </td>
  <td width="10%" align="CENTER">
    <a class="el" href="index.html">[Index]</a>
  </td>
  <td width="45%" align="RIGHT">
    <a class="el" href="license.html">
    Software License
    [Next]
    </a>
  </td>
</tr>
</table>
\endhtmlonly

*/
