[C++] 188 FLTK : カラーアプリC++版への入れ替え 

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

久しぶりにMicrosoft Storeのデータを確認すると、少ないながらもカラーアプリの取得数が増えていました。

アニメなどを通して日本の色彩文化に興味を持っている方々と推察しますが、日本語版と英語版しかないためか、西欧の割合が極端に少ないです。あるいは、ただ単に日本への興味が薄いのでしょうか。

日本が25%でアジア・北米・東欧が同率で続き、その次が北欧でした。なぜかヨーロッパでも西欧以外でチェックされています。英語への抵抗が少ないということかもしれません。

ストアにアップしているのはJava・Swing版なのでブラッシュアップ済みのC++版へ入れ替えを進めていきます。

[C++] 187 FLTK : SFTP補助アプリ マウント解除 Fl_Light_Button

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

WindowsPCとSMB接続した場合は共有フォルダがマウントされるため、Fl_Light_Buttonを使ってマウント解除できるようにしました。

Fl_Toggle_Buttonでもよかったのですが、押しっぱなしになった時の色を設定できないので、ボタンの一部ながら色を自由に選べるFl_Light_Buttonを選択しました。

これでFinderを一切触らずにファイル転送できます。

Fl_Light_Button *umnt_btn;
int choice_num;
int mount = 0; // マウント状態
string cmd_unmount;

void conn_cb(Fl_Widget*, void*) {
    string cmd_conn;

    choice_num = choice -> value();
    switch(choice_num){
        case 0:{
            cmd_conn = "sftp xxx.local"; // Mac mini Intel
            break;
        }
        case 1:{
            cmd_conn = "sftp xxx.local"; // MacBook Air M1
            break;
        }
        case 2:{
            cmd_conn = "sftp xxx.local"; // MacBook Intel
            break;
        }
        case 3:{
            mount = 1;
            umnt_btn -> value(1);
            cmd_conn = "mount_smbfs //[ユーザ名]@192.168.xx.x/share /Users/[ユーザ名]/share"; // WindowsPC
            cmd_unmount = "umount /Users/[ユーザ名]/share";
            break;
        }
        case 4:{
            cmd_conn = "sftp xxx.local"; // LinuxPC
            break;
        }
    }

    cout << "cmd_conn " << cmd_conn << endl;

    conn_input -> value("");
    conn_input -> value(cmd_conn.c_str());

    // クリップボードにコピー
    string cmdConnCopy = "echo '" + cmd_conn + "' | LANG=ja_JP.UTF-8 pbcopy";
    output_line -> insert(cmdConnCopy.c_str());
    output_line -> insert("\n");
    system(cmdConnCopy.c_str());
}

void umnt_cb(Fl_Widget*, void*) {
    if (mount == 1){
        system(cmd_unmount.c_str());
        mount == 0;
    }
}

// main関数内
umnt_btn = new Fl_Light_Button(295,110,50,25,"MNT");
    umnt_btn->color(fl_rgb_color(112,128,144));
    umnt_btn->labelcolor(fl_rgb_color(255,239,213));
    umnt_btn->selection_color(fl_rgb_color(248,184,98)); // ON時のボタンの色
    umnt_btn->labelsize(14);
    umnt_btn->callback(umnt_cb);