[C++] 46 FLTK : findコマンド生成アプリ/ Fl_Choice

[M1 Mac, Big Sur 11.6.5, FLTK 1.3.8]

Fl_Choiceを使ってプルダウンメニューを作成しました。

ネットにあるFl_Choiceのコード例は小難しいばかりで要領を得ませんでしたが、自分で意味を考えながら書くと内容が単純だからかシンプルな表現になりました。

外観をスッキリさせたいのでボタンへのpngファイルの埋め込みは見送りました。あとはgrep機能を追加して完成にするつもりです。

<関連部分のみ抜粋>
Fl_Menu_Item pulldown[] = {
  {"and"},
  {"or"},
  {"not"}
};

if (onoff_free == 1){
   string choices[3] = {"-and","-or","-not"};
   int choice_num = choice->value();
   string choice_str = choices[choice_num];

   cmd << choice_str << " " ;
   std::cout << cmd.str() << endl;

   const char* free_char = free_input->value();
   string free_str = string(free_char);

   cmd << free_str << " " ;
   std::cout << cmd.str() << endl;
}

<main関数内> 変数freeは既に存在するのでfree2とした
// Free
// free_rbtn
free_rbtn = new Fl_Round_Button(40,115,20,20,nullptr);
// free_label
free2 = new Fl_Box(58,120,26,12,"Free");
free2->labelcolor(fl_rgb_color(234,237,247));
free2->align(Fl_Align(FL_ALIGN_INSIDE|FL_ALIGN_LEFT));
// free_choice
choice = new Fl_Choice(95, 115, 50, 20,nullptr);
choice->menu(pulldown);