[C++] 138 FLTK : ダブルクリック時の動作 Fl::event_clicks()

[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);

}