[C++]103 FLTK : 開発モードの設定 Fl_Sys_Menu_Bar

[M1 Mac, Big Sur 11.6.7, clang 13.0.0, NO IDE]

前回記事のFL_Window 2窓設定を開発モードとしてMacOSのシステムメニューから選択できるようにしました。配置していたトグルボタンを削除し、普段は通常モードとして使用します。

開発モードを選択する度にトグルボタンの様に表示/非表示が切り替わります。

Fl_Window *window2;
int mode = 0; // 0:通常モード, 1:開発モード

int main(int argc, char **argv) {

    static Fl_Menu_Item	items[] = {
    { "設定", 0, 0, 0, FL_SUBMENU },
    { "開発モード", 0, showSubWindow, 0, 0 },
    { 0 },
    { 0 }
    };
    Fl_Sys_Menu_Bar *menubar;
    menubar = new Fl_Sys_Menu_Bar(0, 0, 60, 20);
    menubar->box(FL_FLAT_BOX);
    menubar->menu(items);

    Fl_Window *window = new Fl_Window(50,50,660,480,"Color Sample");
    window->color(fl_rgb_color(238,238,238));

    <中略>
    
    window->end();
    window->show(argc, argv);
    
    // サブWindow
    window2 = new Fl_Window(750,50,360,480,"出力用");
    window2->color(fl_rgb_color(238,238,238));

    // output
    output_line2 = new Fl_Multiline_Output(0,0,360,480,"");
    output_line2->textsize(12);

    window2->end();

    return Fl::run();
}
extern Fl_Window *window2;
extern int mode;

void showSubWindow(Fl_Widget*, void*){
    if (mode == 1){
        mode = 0;
    } else {
        mode = 1;
    }

    if (mode == 1){
        window2->show();
    } else {
        window2->hide();
    }
}