[M1 Mac, Big Sur 11.6.8, clang 13.0.0, FLTK 1.3.8, NO IDE]
ダブルクリック時の条件分岐にはFl::event_clicks()を使います。Fl_File_Chooser2.cppのソースコードを読んでその存在を知りました。公式サイトのEvents handling functionsに説明があります。
FLTKは結構使い込んでいますが、まだまだ知らないことだらけです。
void FileBrowserCB()
{
char *fileName;
if (Fl::event_clicks()) {
cout << "ダブルクリックしました" << endl;
// 以下、ダブルクリックした時の動作を書く
}
// クリックしたファイルのファイル名を取得
fileName = (char *)FileBrowser->Fl_Browser::text(FileBrowser->Fl_Browser::value());
cout << "fileName " << fileName << endl;
if (!fileName) return;
selectPath[0] = '\0';
// ディレクトリ名にファイル名を結合
strcat(selectPath ,appDir);
strcat(selectPath ,"/");
strcat(selectPath ,fileName);
cout << "selectPath " << selectPath << endl;
if (browserType == 1) { // FL_MULTI_BROWSERになっている場合
char* name = new char[strlen(selectPath) + 1];
strcpy(name, selectPath);
selectPaths.push_back(name);
}
//ファイルパスを表示
inputFileName->value("");
inputFileName->value(selectPath);
}