ポップアップウィンドウ
概要
ポップアップウィンドウを表示する。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`
結果