内容

更新日: 2005/8/26
バージョン: gtkmm24

■ 概要
■ ソース
■ コンパイル
■ 結果

TOP

ポップアップウィンドウ

概要

ポップアップウィンドウを表示する。

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`

結果