ポップアップウィンドウ
概要
ポップアップウィンドウを表示する。Gtk::Windowのコンストラクタにタイプとして Gtk::WINDOW_POPUP を渡すことによって ポップアップウィンドウになる。下の例ではメインウィンドウの上でポインタを 動かすとポップアップに現在座標を表示させる。
ソース
popup.cpp#include <gtkmm.h> #include <sstream> class MainWin : public Gtk::Window { Gtk::Window m_popup; Gtk::Label m_label; public: MainWin(); protected: virtual bool on_motion_notify_event( GdkEventMotion* event ); }; MainWin::MainWin() : m_popup( Gtk::WINDOW_POPUP ) { // モーションイベント追加 add_events( Gdk::POINTER_MOTION_MASK ); m_popup.add( m_label ); m_popup.show_all(); } bool MainWin::on_motion_notify_event( GdkEventMotion* event ) { std::stringstream ss; ss << event->x << " - " << event->y; m_label.set_text( ss.str() ); m_popup.show(); m_popup.move( (int)event->x_root, (int)event->y_root + 50 ); return Gtk::Window::on_motion_notify_event( event ); } int main( int argc, char *argv[] ) { Gtk::Main kit( argc, argv ); MainWin mainwin; Gtk::Main::run( mainwin ); return 0; }
コンパイル
必要なコンパイルオプションは pkg-config を使って取得する。g++ popup.cpp -o popup `pkg-config gtkmm-2.4 --cflags --libs`
結果
