[M1 Mac, Big Sur 11.6.8, clang 13.0.0, NO IDE]
色表示履歴をcsvファイルに保存する際、自分でファイル名を付けることもできるようにしました。Fl_File_ChooserをCREATEタイプで使用します。
OKボタン以外をクリックすると異常終了するので、まだ手を入れる必要があります。
static Fl_Menu_Item items[] = {
{ "★", 0, 0, 0, FL_SUBMENU },
{ "読込", 0, loadFavList, 0, 0 },
{ "保存", 0, 0, 0, FL_SUBMENU },
{ "名前を付けて保存", 0, saveFavListManu, 0, 0 },
{ "自動保存", 0, saveFavListAuto, 0, 0 },
{ 0 },
{ "消去", 0, deleteFavList, 0, 0 },
{ 0 },
{ "履歴", 0, 0, 0, FL_SUBMENU },
{ "消去", 0, deleteHistory, 0, 0 },
{ 0 },
#ifdef DEV
{ "開発", 0, 0, 0, FL_SUBMENU },
{ "開発モード", 0, showSubWindow, 0, 0 },
{ 0 }
#else
#endif
};
Fl_Sys_Menu_Bar *menubar;
menubar = new Fl_Sys_Menu_Bar(0, 0, 60, 20);
menubar->box(FL_FLAT_BOX);
menubar->menu(items);
--------------------------------------------------
#include <csvProcessChar.h>
#include <filesystem>
namespace fs = std::filesystem;
using std::cout; using std::endl;
using std::string; using std::to_string;
vector<vector<const char*>> selectColorList;
void saveFavListManu(Fl_Widget*, void*){
cout << "saveFavListManu" << endl;
homedir = getenv("HOME");
cout << "homedir " << homedir << endl;
string cs = "/ColorSample";
string appdir = string(homedir) + cs;
if (!fs::exists(appdir)){
fs::create_directory(appdir);
}
Fl_File_Chooser chooser(".", // directory
"*", // filter
Fl_File_Chooser::CREATE, // chooser type
"File_Chooser"); // title
chooser.show();
while(chooser.shown())
{ Fl::wait(); }
const char* filePath = chooser.value();
if (filePath == nullptr){
return;
}
csvProcessChar::make(filePath,selectColorList);
}