CORBA-MICO

 view release on metacpan or  search on metacpan

gtkmico.cc  view on Meta::CPAN


void
GtkDispatcher::input_callback (gpointer _event, gint fd, GdkInputCondition o)
{
    FileEvent *event = (FileEvent *)_event;

    event->cb->callback (event->disp, event->ev);
}

gint
GtkDispatcher::timer_callback (gpointer _event)
{
    TimerEvent *event = (TimerEvent *)_event;
    GtkDispatcher *disp = event->disp;

    list<TimerEvent *>::iterator i;
    for (i = disp->tevents.begin(); i != disp->tevents.end(); ++i) {
        if ((*i) == event) {
	  disp->tevents.erase(i);
	  break;
	}

gtkmico.cc  view on Meta::CPAN

    ev->tag = gdk_input_add (fd, GDK_INPUT_EXCEPTION, 
			     input_callback, (gpointer)ev);
    fevents.push_back (ev);
}

void
GtkDispatcher::tm_event (CORBA::DispatcherCallback *cb, CORBA::ULong tmout)
{
    TimerEvent *ev = new TimerEvent (this, 0, cb);

    ev->tag = funcs.gtk_timeout_add (tmout, timer_callback, (gpointer)ev);
    tevents.push_back (ev);
}

void
GtkDispatcher::remove (CORBA::DispatcherCallback *cb, Event e)
{
    if (e == All || e == Timer) {
	list<TimerEvent *>::iterator i, next;
	for (i = tevents.begin(); i != tevents.end(); i = next) {
	    next = i;

gtkmico.h  view on Meta::CPAN

	TimerEvent (GtkDispatcher *_disp, guint _tag, 
		    CORBA::DispatcherCallback *_cb)
	    : disp (_disp), tag (_tag), cb (_cb)
	{}
    };
    list<FileEvent *>  fevents;
    list<TimerEvent *> tevents;
    GtkFunctions       funcs;

    static void input_callback (gpointer, int, GdkInputCondition);
    static int timer_callback (gpointer);
public:
    GtkDispatcher (GtkFunctions *_funcs);
    virtual ~GtkDispatcher ();

    virtual void rd_event (CORBA::DispatcherCallback *, CORBA::Long fd);
    virtual void wr_event (CORBA::DispatcherCallback *, CORBA::Long fd);
    virtual void ex_event (CORBA::DispatcherCallback *, CORBA::Long fd);
    virtual void tm_event (CORBA::DispatcherCallback *, CORBA::ULong tmout);
    virtual void remove (CORBA::DispatcherCallback *, Event);
    virtual void run (CORBA::Boolean infinite = TRUE);



( run in 0.760 second using v1.01-cache-2.11-cpan-49f99fa48dc )