FLTK - FL_Tooltip - 修改工具提示大小
FLTK - FL_Tooltip - Modify tooltip size
我正在使用 FLTK 1.3.5(在 Mac、Catalina 10.15.5、clang 版本 11.0.3 上),我想要 tooltips 的小部件,我想为谁决定边距和其他选项。特别是,我想在 margin_width
和 wrap_width
上工作,所以我尝试了以下
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Tooltip.H>
#include <FL/Fl_Box.H>
int main(int argc, char **argv) {
Fl_Window *G_win = 0;
G_win = new Fl_Window(300,300,"Test");
Fl_Box* B;
B = new Fl_Box(10,10,280,280,"Test Tooltip");
Fl_Tooltip::margin_width(12);
B->tooltip("I want a huge tooltip!");
G_win->end();
G_win->show(argc, argv);
return Fl::run();
}
但是我得到这个错误:
error: too many arguments to function call, expected 0, have 1
Fl_Tooltip::margin_width(12);
~~~~~~~~~~~~~~~~~~~~~~~~ ^~
/usr/local/include/FL/Fl_Tooltip.H:95:3: note: 'margin_width' declared here
static int margin_width() { return 3; }
仔细查看 Fl_Tooltip.H, it seems that the function I want to use is enabled if the FLTK_ABI_VERSION
variable is greater or equal to 10301 (line 81 of the header file). I inspected the file Enumerations.H 后,我检查了即使我有 FLTK 1.3.5 FLTK_ABI_VERSION
也是 10300。
事实上,FLTK_ABI_VERSION
被定义为 FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100
因此它总是低于 10301,在我的例子中 FL_MAJOR_VERSION
等于 1 FL_MINOR_VERSION
等于 3。
此外,同一个头文件说实际上 FLTK_ABI_VERSION
已被弃用,它将被 FL_API_VERSION
取代,它正好是 10305,对应于 FLTK 1.3.5。
这是原始代码中的错误还是我遗漏了什么?
我不知道 Mac 但要让它在 MS 编译器上运行
#if FLTK_ABI_VERSION >= 10301
应该改为
#if (FLTK_ABI_VERSION >= 10301)
在 Mac 上尝试一下。如果有效,请报告错误并修复 https://www.fltk.org/applications/str.php 并记住指定 Mac 和 Windows.
我查看了回归测试 - 我找不到它的测试。我怀疑该功能仅在 Linux
上测试过
编辑
您还需要修改 FL_Tooltip.cxx 并重建 FLTK 库
编辑
作为参考,请查看 README.abi-version.txt。添加括号后,重新配置
./configure --with-abiversion=10305
然后进行安装
我正在使用 FLTK 1.3.5(在 Mac、Catalina 10.15.5、clang 版本 11.0.3 上),我想要 tooltips 的小部件,我想为谁决定边距和其他选项。特别是,我想在 margin_width
和 wrap_width
上工作,所以我尝试了以下
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Tooltip.H>
#include <FL/Fl_Box.H>
int main(int argc, char **argv) {
Fl_Window *G_win = 0;
G_win = new Fl_Window(300,300,"Test");
Fl_Box* B;
B = new Fl_Box(10,10,280,280,"Test Tooltip");
Fl_Tooltip::margin_width(12);
B->tooltip("I want a huge tooltip!");
G_win->end();
G_win->show(argc, argv);
return Fl::run();
}
但是我得到这个错误:
error: too many arguments to function call, expected 0, have 1
Fl_Tooltip::margin_width(12);
~~~~~~~~~~~~~~~~~~~~~~~~ ^~
/usr/local/include/FL/Fl_Tooltip.H:95:3: note: 'margin_width' declared here
static int margin_width() { return 3; }
仔细查看 Fl_Tooltip.H, it seems that the function I want to use is enabled if the FLTK_ABI_VERSION
variable is greater or equal to 10301 (line 81 of the header file). I inspected the file Enumerations.H 后,我检查了即使我有 FLTK 1.3.5 FLTK_ABI_VERSION
也是 10300。
事实上,FLTK_ABI_VERSION
被定义为 FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100
因此它总是低于 10301,在我的例子中 FL_MAJOR_VERSION
等于 1 FL_MINOR_VERSION
等于 3。
此外,同一个头文件说实际上 FLTK_ABI_VERSION
已被弃用,它将被 FL_API_VERSION
取代,它正好是 10305,对应于 FLTK 1.3.5。
这是原始代码中的错误还是我遗漏了什么?
我不知道 Mac 但要让它在 MS 编译器上运行
#if FLTK_ABI_VERSION >= 10301
应该改为
#if (FLTK_ABI_VERSION >= 10301)
在 Mac 上尝试一下。如果有效,请报告错误并修复 https://www.fltk.org/applications/str.php 并记住指定 Mac 和 Windows.
我查看了回归测试 - 我找不到它的测试。我怀疑该功能仅在 Linux
上测试过编辑
您还需要修改 FL_Tooltip.cxx 并重建 FLTK 库
编辑
作为参考,请查看 README.abi-version.txt。添加括号后,重新配置
./configure --with-abiversion=10305
然后进行安装