diff --git a/FL/fl_casts.H b/FL/fl_casts.H index b4968c055..965f12eb1 100644 --- a/FL/fl_casts.H +++ b/FL/fl_casts.H @@ -1,4 +1,19 @@ -// experimental inline cast functions for the Fast Light Toolkit (FLTK) +// +// Experimental inline "cast functions" for the Fast Light Toolkit (FLTK). +// See also issue #109: "VS2017 warnings when building fltk 1.4.x" +// +// Copyright 1998-2021 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 +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// #include diff --git a/fluid/CodeEditor.cxx b/fluid/CodeEditor.cxx index 3d7d47515..a6bfecc48 100644 --- a/fluid/CodeEditor.cxx +++ b/fluid/CodeEditor.cxx @@ -2,7 +2,7 @@ // Code editor widget for the Fast Light Tool Kit (FLTK). // Syntax highlighting rewritten by erco@seriss.com 09/15/20. // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -165,7 +165,7 @@ int CodeEditor::auto_indent(int, CodeEditor* e) { *ptr = '\0'; if (*text) { // use only a single 'insert' call to avoid redraw issues - int n = strlen(text); + size_t n = strlen(text); char *b = (char*)malloc(n+2); *b = '\n'; strcpy(b+1, text); diff --git a/fluid/ExternalCodeEditor_WIN32.cxx b/fluid/ExternalCodeEditor_WIN32.cxx index 06d68689d..a137b3e6f 100644 --- a/fluid/ExternalCodeEditor_WIN32.cxx +++ b/fluid/ExternalCodeEditor_WIN32.cxx @@ -1,6 +1,19 @@ // -// External code editor management class for Windows +// External code editor management class for Windows // +// Copyright 1998-2021 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 +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + // Note: This entire file Windows only. #include // Fl_Timeout_Handler.. @@ -243,8 +256,8 @@ int ExternalCodeEditor::handle_changes(const char **code, int force) { // Changes? Load file. Be sure to fallthru to CloseHandle() int ret = 0; if ( changed || force ) { - size_t buflen = size_t(fsize.QuadPart); - char *buf = (char*)malloc(buflen + 1); + DWORD buflen = (DWORD)fsize.QuadPart; + char *buf = (char*)malloc((size_t)buflen + 1); DWORD count; if ( ReadFile(fh, buf, buflen, &count, 0) == 0 ) { fl_alert("ERROR: ReadFile() failed for %s: %s", @@ -378,7 +391,7 @@ static int save_file(const char *filename, return(-1); } // Write the file, being careful to CloseHandle() even on errs - DWORD clen = strlen(code); + DWORD clen = (DWORD)strlen(code); DWORD count = 0; int ret = 0; if ( WriteFile(fh, code, clen, &count, NULL) == 0 ) { diff --git a/fluid/Fl_Function_Type.cxx b/fluid/Fl_Function_Type.cxx index 54b4a7313..2ece47e38 100644 --- a/fluid/Fl_Function_Type.cxx +++ b/fluid/Fl_Function_Type.cxx @@ -1,7 +1,7 @@ // // C function type code for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2016 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -500,7 +500,7 @@ void Fl_Code_Type::write_code1() { const char *ind = indent(); while( (pch=strchr(c,'\n')) ) { - int line_len = pch - c; + int line_len = int(pch - c); if (line_len < 1) write_c("\n"); else diff --git a/fluid/Fl_Type.cxx b/fluid/Fl_Type.cxx index 12103d8f8..ae467ef6e 100644 --- a/fluid/Fl_Type.cxx +++ b/fluid/Fl_Type.cxx @@ -1,19 +1,7 @@ // // Widget type code for the Fast Light Tool Kit (FLTK). // -// Each object described by Fluid is one of these objects. They -// are all stored in a double-linked list. -// -// They "type" of the object is covered by the virtual functions. -// There will probably be a lot of these virtual functions. -// -// The type browser is also a list of these objects, but they -// are "factory" instances, not "real" ones. These objects exist -// only so the "make" method can be called on them. They are -// not in the linked list and are not written to files or -// copied or otherwise examined. -// -// Copyright 1998-2016 by Bill Spitzak and others. +// Copyright 1998-2021 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,6 +14,18 @@ // https://www.fltk.org/bugs.php // +// Each object described by Fluid is one of these objects. They +// are all stored in a double-linked list. +// +// The "type" of the object is covered by the virtual functions. +// There will probably be a lot of these virtual functions. +// +// The type browser is also a list of these objects, but they +// are "factory" instances, not "real" ones. These objects exist +// only so the "make" method can be called on them. They are +// not in the linked list and are not written to files or +// copied or otherwise examined. + #include #include #include @@ -682,7 +682,7 @@ int storestring(const char *n, const char * & p, int nostrip) { if (!nostrip) while (isspace((int)(unsigned char)*n)) n++; const char *e = n + strlen(n); if (!nostrip) while (e > n && isspace((int)(unsigned char)*(e-1))) e--; - length = e-n; + length = int(e-n); if (!length) n = 0; } if (n == p) return 0; diff --git a/fluid/Fl_Widget_Type.cxx b/fluid/Fl_Widget_Type.cxx index e63c299cd..17765dc06 100644 --- a/fluid/Fl_Widget_Type.cxx +++ b/fluid/Fl_Widget_Type.cxx @@ -1,7 +1,7 @@ // // Widget type code for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2016 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -379,7 +379,7 @@ void label_cb(Fl_Input* i, void *v) { if (v == LOAD) { i->static_value(current_widget->label()); if (strlen(i->value()) >= oldlabellen) { - oldlabellen = strlen(i->value())+128; + oldlabellen = (int)strlen(i->value())+128; oldlabel = (char*)realloc(oldlabel,oldlabellen); } strcpy(oldlabel,i->value()); @@ -1343,7 +1343,7 @@ void user_data_type_cb(Fl_Input *i, void *v) { // "v_attributes" let user type in random code for attribute settings: void v_input_cb(Fl_Input* i, void* v) { - int n = fl_intptr_t(i->user_data()); + int n = fl_int(i->user_data()); if (v == LOAD) { i->static_value(current_widget->extra_code(n)); } else { diff --git a/fluid/Fluid_Image.cxx b/fluid/Fluid_Image.cxx index ba44175f3..1057f171d 100644 --- a/fluid/Fluid_Image.cxx +++ b/fluid/Fluid_Image.cxx @@ -1,7 +1,7 @@ // // Pixmap (and other images) label support for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2016 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -55,7 +55,7 @@ void Fluid_Image::write_static() { pixmap_header_written = write_number; } write_c("static const char *%s[] = {\n", idata_name); - write_cstring(img->data()[0], strlen(img->data()[0])); + write_cstring(img->data()[0], (int)strlen(img->data()[0])); int i; int ncolors, chars_per_color; @@ -68,7 +68,7 @@ void Fluid_Image::write_static() { } else { for (i = 1; i <= ncolors; i ++) { write_c(",\n"); - write_cstring(img->data()[i], strlen(img->data()[i])); + write_cstring(img->data()[i], (int)strlen(img->data()[i])); } } for (; i < img->count(); i ++) { @@ -107,7 +107,7 @@ void Fluid_Image::write_static() { if (nData) { char *data = (char*)calloc(nData, 1); if (fread(data, nData, 1, f)==0) { /* ignore */ } - write_cdata(data, nData); + write_cdata(data, (int)nData); free(data); } fclose(f); diff --git a/fluid/code.cxx b/fluid/code.cxx index 4603e9582..5cf462236 100644 --- a/fluid/code.cxx +++ b/fluid/code.cxx @@ -1,7 +1,7 @@ // // Code output routines for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2015 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -233,7 +233,7 @@ void write_cstring(const char *s, int length) { } // write a C string, quoting characters if necessary: -void write_cstring(const char *s) {write_cstring(s,strlen(s));} +void write_cstring(const char *s) {write_cstring(s, (int)strlen(s));} // write an array of C binary data (does not add a null): void write_cdata(const char *s, int length) { diff --git a/fluid/fluid.cxx b/fluid/fluid.cxx index 1f7e27790..0e12bba4d 100644 --- a/fluid/fluid.cxx +++ b/fluid/fluid.cxx @@ -1,7 +1,7 @@ // // FLUID main entry for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -1348,7 +1348,7 @@ public: int close(); FILE * desc() const { return _fpt;} // non null if file is open - char * get_line(char * line, size_t s) const {return _fpt ? fgets(line, s, _fpt) : NULL;} + char * get_line(char * line, size_t s) const {return _fpt ? fgets(line, (int)s, _fpt) : NULL;} #if defined(_WIN32) && !defined(__CYGWIN__) protected: @@ -1767,7 +1767,7 @@ int main(int argc,char **argv) { int i, n = pm.plugins(); for (i=0; ihelp()); + if (pi) len += (int)strlen(pi->help()); } char *buf = (char*)malloc(len+1); sprintf(buf, msg, argv[0]); diff --git a/fluid/undo.cxx b/fluid/undo.cxx index 40b0f045b..1afbb09f0 100644 --- a/fluid/undo.cxx +++ b/fluid/undo.cxx @@ -1,7 +1,7 @@ // // FLUID undo support for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2017 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -61,7 +61,7 @@ static char *undo_filename(int level) { if (!undo_path_len) { fluid_prefs.getUserdataPath(undo_path, sizeof(undo_path)); - undo_path_len = strlen(undo_path); + undo_path_len = (unsigned int)strlen(undo_path); } // append filename: "undo_PID_LEVEL.fl" diff --git a/fluid/widget_panel.cxx b/fluid/widget_panel.cxx index 162fa8617..30bb686ec 100644 --- a/fluid/widget_panel.cxx +++ b/fluid/widget_panel.cxx @@ -1,7 +1,7 @@ // // Widget panel for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -24,7 +24,7 @@ static void cb_(Fl_Tabs* o, void* v) { } Fl_Menu_Item menu_[] = { - {" Image Alignment ", 0, 0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0}, + {" Image Alignment ", 0, 0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0}, {"image over text", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"text over image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"text next to image", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, @@ -34,7 +34,7 @@ Fl_Menu_Item menu_[] = { }; Fl_Menu_Item menu_1[] = { - {" Inside && Outside ", 0, 0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0}, + {" Inside && Outside ", 0, 0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0}, {"top left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"top right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_TOP_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, @@ -44,7 +44,7 @@ Fl_Menu_Item menu_1[] = { {"bottom left", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"bottom right", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT), 128, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, - {" Outside Alignment ", 0, 0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0}, + {" Outside Alignment ", 0, 0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0}, {"left top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"right top", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, {"left bottom", 0, 0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0}, diff --git a/fluid/widget_panel.fl b/fluid/widget_panel.fl index 986f05eb9..ab4516148 100644 --- a/fluid/widget_panel.fl +++ b/fluid/widget_panel.fl @@ -5,7 +5,7 @@ code_name {.cxx} comment {// // Widget panel for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 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 @@ -46,7 +46,7 @@ Function {make_widget_panel()} { xywh {95 40 309 20} labelfont 1 labelsize 11 align 4 } { Fl_Input {} { - callback label_cb + callback label_cb selected tooltip {The label text for the widget. Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 textsize 11 resizable } @@ -134,7 +134,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te } { MenuItem {} { label { Image Alignment } - user_data 0xFFFFFFFF + user_data (fl_intptr_t)0xFFFFFFFF xywh {145 145 100 20} labelfont 2 labelsize 11 deactivate } MenuItem {} { @@ -169,7 +169,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te } { MenuItem {} { label { Inside && Outside } - user_data 0xFFFFFFFF + user_data {(fl_intptr_t)0xFFFFFFFF} xywh {135 135 100 20} labelfont 2 labelsize 11 deactivate } MenuItem {} { @@ -219,7 +219,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te } MenuItem {} { label { Outside Alignment } - user_data 0xFFFFFFFF + user_data {(fl_intptr_t)0xFFFFFFFF} xywh {125 125 100 20} labelfont 2 labelsize 11 deactivate } MenuItem {} { @@ -674,7 +674,7 @@ wCallback->do_callback(wCallback, v);} open Fl_Button {} { label Revert callback revert_cb - comment {Hidden Revert button} selected + comment {Hidden Revert button} xywh {90 370 60 20} labelsize 11 hide } Fl_Button wLiveMode { diff --git a/fluid/widget_panel.h b/fluid/widget_panel.h index 3f7a1761b..221ac37d6 100644 --- a/fluid/widget_panel.h +++ b/fluid/widget_panel.h @@ -1,7 +1,7 @@ // // Widget panel for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2020 by Bill Spitzak and others. +// Copyright 1998-2021 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