[C++] 93 FLTK : ラジオボタンの順送り

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

ラジオボタンを順送りして同一色のカラーコードを変換できるようにしました。

現時点でのアプリのサイズは動的ライブラリを合わせて607KBです。Java版の1.3%に相当します。約77分の1です。ただ配布するのであれば安全性を考え、Java版も有力候補になるかと思います。

Java版はアプリ内からclassファイルを簡単に入手できますから、コード解読の観点ではC++の方が難易度は高いです。

なお起動時の消費メモリはJava版が133MB、C++版が19MBになります。

これで基本機能を実装できたので、Java版と入れ替えて普段使いにします。移植に着手してから、だらだら進めて4.5日で仮完成です。

途中で自宅の簡単なスマートホーム化(エアコンの自動制御他)もありましたので、実質4日といったところでしょうか。

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

    if (onoff_zero == 1){
        onoff_zero = zero_rbtn->value(false);
        onoff_sharp = sharp_rbtn->value(true);
        ToSharpConvert();
    } else if (onoff_sharp == 1){
        onoff_sharp = sharp_rbtn->value(false);
        onoff_hex = hex_rbtn->value(true);
        ToHexConvert();
    } else if (onoff_hex == 1){
        onoff_hex = hex_rbtn->value(false);
        onoff_rgb = rgb_rbtn->value(true);
        ToRGBConvert();
    } else {
        onoff_rgb = rgb_rbtn->value(false);
        onoff_zero = zero_rbtn->value(true);
        ToZeroConvert();
    }
}

[C++] 92 クリップボードへコピー MacOS

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

Mac固有のpbcopyコマンドを使って文字列をクリップボードにコピーしました。

pbcopyは標準出力をクリップボードにコピーするのでechoやprintfなどのコマンドにパイプでつなげば簡単にできます。

基本的にはechoでほとんどの文字列をカバーできますが、カッコなどコマンドの一部として認識してしまう文字を含む場合はprintfを使います。

#include <cppstd.h> // 自製c++標準ライブラリ群

int main(int argc, char **argv)
{
    string str = "RGB(100,149,237)";
    
    string cmd = "printf '" + str + "' | pbcopy";
    // カッコがなければ以下でも可能
    // string cmd = "echo " + str + " | pbcopy";

    system(cmd.c_str());
}