Twitter配線工や商業作曲家等を経て、現在はドリコムにてクロスプラットフォーム開発向けのミドルウエアやデータプロテクション等、低レイヤーの研究開発をしています。私が手元で使うツールの爆速開発を支えているのがご存じMotifですが、その開発効率化に取り組んでみた話しをゆる〜くお話ししますMotifと採用の経緯に関しては去年のエントリーを参照して頂ければと思います。APIやCarbonで書いた事がある方ならわかって頂けると思います(おもいたい!!)そこで、生成や外観の処理を隠蔽してしてロジックの実装に集中させてくれるDCCツールや各種フレームワークが数多くリリースされています。APIがシンプルかつ洗練されているMotifとてUIの要素が増えてくるとその傾向は看過できない量になって、爆速開発とモチベーションに暗い影を落とし始めます。外観を定義してCソースにイベント処理等のロジックを書きます。UILを基にMrmが面倒を見てくれます。猛烈に大雑把に書くとこのような感じになります。2.3.4ウインドウマネージャーはtwmを愛用しています。右端のタマネギ模様のリサイズコーナーとドラッグ時に安心感のある滑り止付きタイトルバーが最高です。./svchost.exeあら簡単!UTF-8で使ってみたかった・・・このuilをUTF-8で保存してコンパイルすると無慈悲なメッセージを吐いてエラーに終わります。コメント行も許されません。UILパーサーのコメントを見ればわかりますが、最終更新は[digital]による1997年です。UTF-8に対応してたらオーパーツです。*//*という事でUIにマルチバイト文字を使いたい場合、以下のような選択肢がありますEUCで書いてEUCで使うUILでUIの定義だけして文字列はXのリソースに追い出すUILを使わないでCソースにベッタベッタとXmCreateXX関数を書くという感じになります・・・でも、やっぱり・・・ですが!折角Motifのソースが公開されているのに妥協するのは面白くないので、自分で使うツールを手早く手間無く見た目は格好良く(Motif)爆速開発する目的の為にゴリ押しでUILを何とかしてみます。神聖なMotifのソースに手を入れるのは非常に気が引けますが、液晶を指でみょんみょんする人の気持ちになって思い切ってやってみましょう。予想通り、ゴッソリ削れてしまいました。UilDiags.cでインクリメント済みで明らかにゼロではないのでチェックメイトです。扱いになって、制御文字(control_char)として片付けられていました。事象は掴めたので即行動してみました。GitHub手元で使えりゃいーじゃんレベルですので厳密な検証はしていません、ご了承くださいちゃんと表示された!!!UILを使いまくってデザインとロジックを分離しよう!ゴリ押し改造の結果、遂に念願のUTF-8のソースがコンパイルできるようになったので使いまくってみます!折角ですので、Motifで超絶面倒くさいと評判のメニューバーとプルダウンメニューを扱ってみます。};あら簡単!次はメニューが選択された時の処理を書いてみますイベント駆動ですのでコールバックを登録します。UILにイベントと呼んで欲しい関数を宣言します。};};あとはSystem.Reflectionで・・・という訳には行かないのでCのコードに定義を追加します。MRMに登録する為のリストを定義します。MRMへコールバックを登録します。Hierarchyへ登録するタイプとグローバルへ登録する2タイプがありますが、今回はHierarchyへ登録します。XtNumber(register_args));あとは実行するだけですあら簡単!後ろのxtermはUTF-8ですので、ちゃんとウイジェットからUTF-8で取れています。お前すごいよMotif!現代でも全然通用するよ!めっちゃ古いのに!参考資料など20年ほど前は解説書籍やベンダー製のリファレンスなどが出版されていたようですが、絶版です。OpenMotifのソースコードとman位しか現存していません。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事アドベントカレンダーだるいデザインとロジックを分離したかった・・・サンパクドリコムの俺を支えるUIツールキット月別アーカイブはてなブログをはじめよう!sazae657さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。