CORBA-MICO
view release on metacpan or search on metacpan
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* Send comments and/or bug reports to:
* mico@informatik.uni-frankfurt.de
*/
#ifndef __mico_gtk_h__
#define __mico_gtk_h__
#include <gtk/gtk.h>
#if defined(__IBMCPP__) || ( defined(__GNUC__) && __GNUC__ >= 3)
using namespace std;
#endif
struct GtkFunctions {
gint (*gtk_main_iteration) (void);
guint (*gtk_timeout_add) (guint32 interval,
GtkFunction function,
gpointer data);
void (*gtk_timeout_remove) (guint timeout_handler_id);
gint (*gdk_input_add) (gint source,
GdkInputCondition condition,
GdkInputFunction function,
gpointer data);
void (*gdk_input_remove) (gint tag);
};
class GtkDispatcher : public CORBA::Dispatcher {
struct FileEvent {
GtkDispatcher *disp;
gint tag;
CORBA::DispatcherCallback *cb;
Event ev;
FileEvent () {}
FileEvent (GtkDispatcher *_disp, gint _tag,
CORBA::DispatcherCallback *_cb, Event _ev)
: disp (_disp), tag (_tag), cb (_cb), ev (_ev)
{}
};
struct TimerEvent {
GtkDispatcher *disp;
guint tag;
CORBA::DispatcherCallback *cb;
TimerEvent () {}
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);
virtual void move (CORBA::Dispatcher *);
virtual CORBA::Boolean idle () const;
};
#endif /* __mico_gtk_h__ */
( run in 1.575 second using v1.01-cache-2.11-cpan-39bf76dae61 )