0

デスクトップウィンドウ(特にLinuxシステムのxorgデスクトップ)の上部に情報を表示するようなパネルタスクバーを実装するために、C /C++で小さなアプリケーションを作成する必要があります。GUIプログラミングの肥大化と急な学習曲線を回避する必要があります。

私の研究では、GTK +/GTKmmまたはFLTKを指摘しています。FLTKはおそらく理解しやすく、依存関係が最小限の小さなクリーンなパッケージを提供する可能性が最も高いようです。だから私はこれまでFLTKに基づいて研究してきました。

私はいくつかの読書をしていて、他のアプリケーションを最大化しても目立たないようにモニターの幅をカバーする装飾されていない狭いウィンドウを作成する基本的なプログラムを書く方法を見つけるのに苦労しています。私がこれまでに見つけたFLTKチュートリアル(FLTKドキュメントを含む)は、画面上を移動できる境界線のある標準ウィンドウのみを実装しています。

FLTK(またはGTK + / GTKmm)で、「helloworld」メッセージを含む画面全体に20ピクセルの深さのバーを作成する簡単なプログラムを作成することから始めたいと思います。バーの領域は、他のプログラムがアクセスできる領域の外側に予約されるため、別のアプリケーションを最大化しても「helloworld」メッセージが隠されません。これはWM_STRUT_PARTIALプロパティと関係があると思いますが、FLTKでこれに関する情報を見つけることができません。

これを行うことは、部分的には単純なGUIプログラムの書き方を理解することであり、部分的には私が持っている特定のニーズを解決することです。

始めるための正しい方向に私を導くための助け/ガイダンスを探しています。どうもありがとう。

4

1 に答える 1

0

starfry、それは簡単な仕事ではないと私は信じています。問題は、デスクトップ (GNOME2/Metacity など) がそのスペースを確保し、バーが必要な領域にパネルをペイントすることです。-

トレイバーアプレットをFLTKベースにしたい場合は、それを (GNOME) アプレットに「埋め込む」必要があります。昔、SDL アプリケーションで同じようなことをしたのですが、やり方を忘れてしまいました。私の頭に浮かぶ最初のことは、GNOME アプレットから XID を何らかの方法で取得し、それを FLTK 部分に渡し、残りを FLTK に任せることです...

もちろん、KDEi3IceWMなどの別のデスクトップを使用することもできますが、それらにはすべて独自の方法でトレイ バーを処理する方法があります (標準はありません!)。すべての環境をサポートする PITA...

私がGNOMEを使用していた場合、アプレット全体を GNOME/GTK を使用して作成します。その場合は FLTK を忘れてください。それが私のお勧めです。KDE をターゲットにする場合は、KDE/QT ライブラリを使用してください (Plasma ウィジェットを探す必要があります)。

ただし、引き続き FLTK を使用する場合は、fltk::draw_into()関数 (おそらく FLTK 1.x では fl_draw_into() と呼ばれます)、fltk::xid() および関連する関数から始めます。

于 2011-11-02T09:30:11.483 に答える