FLTK - FL_Tooltip - 修改工具提示大小

FLTK - FL_Tooltip - Modify tooltip size

我正在使用 FLTK 1.3.5(在 Mac、Catalina 10.15.5、clang 版本 11.0.3 上),我想要 tooltips 的小部件,我想为谁决定边距和其他选项。特别是,我想在 margin_widthwrap_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

然后进行安装