[C++] 189 FLTK : カラーアプリ ボタン空押し対応

[M1 Mac, Big Sur 11.6.8, clang 13.0.0, FLTK 1.3.8, NO IDE]

カラーアプリC++版へのMicrosoft Store更新に向けデバッグを実施しました。

ボタンの空押しで未入力なのに色が表示されたり、アプリが落ちるケースがありましたので、モーダルダイアログを表示するようにしました。

最近LLDBデバッガを積極的に使い始め、レジスタやメモリへの書き込み内容を意識するようになった効果なのか、やみくもに取り組んでいた以前とは違って気持ちに余裕が出てきました。

何かしらの不具合があっても最悪LLDBを使えば何が起こっているのか正確につかめるので、どっしり構えられるようになりました。異常終了時に表示されるAppleレポートの詳細を調べることが可能です。

アセンブリ言語まで細分化すれば、LLDBがまともである限りCPUとRAMメモリの挙動はほぼ把握できます。

void showColor(Fl_Widget*, void*){
	onoff_zero = zero_rbtn->value();
    onoff_sharp = sharp_rbtn->value();
    onoff_hex = hex_rbtn->value();
    onoff_rgb = rgb_rbtn->value();

    input_code = code_input->value();
    if (input_code == ""){
        const char* msg = "カラーコードを入力してください";
        dlg = new modalDialog(400, 200, "Attention", msg);
        dlg->hotspot(window);

        int x_win = window->x_root();
        int y_win = window->y_root();
        cout<<"x_win "<< x_win <<" y_win "<< y_win <<endl;

        dlg->resize(x_win+205, y_win+165,250,150);
        dlg->set_modal();
        dlg->show();

        return;
    }
    
    if (onoff_zero == 1){
        ToZeroConvert();
    } else if (onoff_sharp == 1){
        ToSharpConvert();
    } else if (onoff_hex == 1){
        ToHexConvert();
    } else {
        ToRgbConvert();
    }

    selectColorListAdd();
}