問題タブ [motif]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
events - xlib / モチーフ : プロパティの変更に応じてウィンドウが再描画されたことをどのように知ることができますか?
一種の Motif GUI デザイン ツールに取り組んでいます。プロパティの変更、ウィジェットの追加/削除、ウィジェットの移動などをプログラムで行った後、現在のウィンドウの状態を示す Motif ウィンドウのスクリーンショットをキャプチャします。参考までに、ウィンドウの Xlib サーフェスを png としてキャプチャするために cairo 2d を使用しています。
ほとんどの場合、これで問題なく動作しますが、UI の更新が完了する前にウィンドウ キャプチャが発生することがあります。特に、ウィジェットのフォントを変更したり、グラフィック ラベルのピックスマップを変更したりするときに、これに時々気付きました。
サーフェスをキャプチャする前に、ウィンドウが新しい状態の描画を完了するまで待ちたいと思います。
どうすれば確実にそれを行うことができますか? 再描画の前に Xlib 公開イベントが発生するようです。また、PropertyChange イベントがあることがわかりますが、ドキュメントには、描画に関していつ発生するかについては何も記載されていません。
opengl - OpenGL ウィンドウは正常に描画されるが、OpenGL ウィンドウの上にあるすべてのウィンドウが黒くなる
OpenGL と Motif を組み合わせたアプリがあります。OpenGL を含む大きなメイン ウィンドウは正常に再描画されます。しかし、その上にあるサブウィンドウはすべて黒くなります。具体的には、メイン ウィンドウの真上にあるサブウィンドウの部分だけです。これらのサブウィンドウにはすべて Motif コードしかありません (1 つを除く)。
アプリがフリーズしたり、コアをダンプしたりしません。データはまだ流れており、さまざまなサブウィンドウのテキスト フィールドなどが更新されると、それらの部分が再描画されます。ウィンドウを互いにドラッグしたり、最小化/最小化を解除したりすると、再描画もトリガーされます。「ブラックアウト」のタイミングはランダムです。毎回同じ 1 時間のデータセットを実行すると、実行の 5 分後に停電が発生したり、30 分後に停電が発生したりすることがあります。
問題が解決するまで、コードのセクションをオフにするプロセスを実行しました。ますます絞り込み、深度バッファの使用に関係していることがわかりました。つまり、 をコメントアウトするglEnable(GL_ENABLE_DEPTH_TEST)
と、問題は解決します。したがって、問題は深度バッファの使用に関係しているようです。
私が知る限り、深度バッファは再描画が行われる前にクリアされています。glClear
呼び出しの周りにif文があるので、そこにメッセージを入れglClear
て、ブラックアウトが発生してもデプスバッファが実際に発生していることを確認しました。また、glGetError
何も返しませんでした。
UPDATE 6/30/2014 これを見ている人がまだ少なくとも 1 人いるようです (ありがとう、UltraJoe)。私の記憶が正しければ、最初にバック バッファーを定義して何も描画せずにバッファーをスワップしていたことが判明しました。とても長いルーチンなので、以前はわかりませんでした。他にも片付けなければならない小さなことがいくつかありましたが、それが主な原因だったと思います。
x11 - X11ウィンドウに装飾があるかどうかを検出する
このC関数は、多くのウィンドウマネージャーでウィンドウ装飾を無効または有効にするために使用できます。'mode'が'd'の場合、ウィンドウは装飾を非表示にします。それ以外の場合、'mode'が'D'の場合、ウィンドウは装飾を表示します。
「トグルモード」を実装したいのですが。だから私の質問は、窓に装飾があるかどうかを検出する方法はありますか?XGetWindowPropertyを_MOTIF_WM_HINTSで使用しようとしましたが、出力を解釈する方法がわかりません。
design-patterns - Motif/UIL は Model-View-ViewModel ですか?
私は、このパターンが何を意味するのかを理解しようとしています (単に「最近の Microsoft GUI ツールを使用している」ということ以外に)。MVVM wikiページは、モデルを表すシステムの部分とそのグラフィカルビューを表す部分の分離として説明しているようで、途中で2つを変換しています。また、Microsoft が WPF のこの概念を発明したことも意味します。
しかし、これとUILが1980 年代以降にMotifのために行ったこととの違いはわかりません。
では、MVVM はMotif のユーザー コード/UIL/MRM セットアップのようなスキームの単なるパターン化ですか?
c - テキストフォントの変更時にラベルタイトルがカットされる (Open Moif 2.3.1)
ソフトウェアの問題を解決しようとしています。Motif ライブラリで作成された 2 つのウィンドウがあります。最初のウィンドウには 5 つのボタン (フォント 1、2、3、4、終了) が含まれており、フォントを選択すると、他のウィンドウ (「未承認の更新」) のテキストに影響します。 2 番目のウィンドウのテキストがフォント 1 の場合、フォント 4 またはフォント 3 のボタンをクリックすると、2 番目のウィンドウにカットされたテキスト ラベルが表示されます。
ウィジェットをコーディングして初期化するのと同じ方法を使用して、バグを再現するプロトタイプを作成しました。ただし、まだバグを再現できません。問題は、私のプロトタイプでコールバックを管理する方法は、X サーバーに送信される Xevent を使用する元のコードよりもはるかに単純です。
リンクに続いて、問題を示す 2 つのスクリーンショットを見つけることができます: ---スクリーンショット---
次のリンクにプロトタイプ コードがあります。---こちら---
コンパイルする行: gcc mmm_window.c -lX11 -lXm -lXt -o mmm_window
java - Motif への PLAF 変更時の NullPointerException
NullPointerException
(以下のスタックトレース)を引き起こすために私が何をしたか誰にもわかりますか?
パネルは正常に表示されます。
テキスト出力
その ( 1.6.0-b105
) は古いもので、Netbeans のデフォルトのランタイム環境です。バージョン 7 JRE に更新する必要があります。
コード
スタックトレース
linux - Netbeans を使用して Ubuntu 64 ビットで Xm を実装するこのコードをコンパイルするにはどうすればよいですか?
私は X-Windows が初めてで、Windows のような Linux で単純な MessageBox を呼び出すだけのコードを作成しようとしています。
私はUbuntu 12.04LTS 64ビットを使用しており、Netbeansのフルバージョンをインストールしています。このプロジェクトには「/usr/include/Xm」を含め、ライブラリについては「Motif」ライブラリを含めました。
コードをコンパイルすると、次のエラーが発生します。
私は本当にこのエラーを理解していません。少なくとも、「aka void blah blah~~」のような構文を見たことがありません。
だれかこのコンパイル エラーの修正を手伝ってくれませんか。可能であれば、このエラー メッセージの意味を説明してください。
元のソースコードは次のとおりです。