2007-09-28 01:30:02 UTC
previous
next
#ifndef GUI_NATIVEAPI_H_
#define GUI_NATIVEAPI_H_
#include <boost/smart_ptr.hpp>
#include <cairomm/cairomm.h>
namespace GUI
{
class NativeAPIPrivate;
class NativeAPI
{
public: // Public classes
class EventReceiver
{
public:
virtual ~EventReceiver() {}
virtual void on_redraw_event(
Cairo::RefPtr<Cairo::Context> cr,
double width, double height) = 0;
};
public: // Public methods
static void push_event_receiver(
boost::shared_ptr<NativeAPI::EventReceiver> event_receiver);
static void run_event_loop(int argc, char** argv);
private: // Private variables
static boost::scoped_ptr<NativeAPIPrivate> _private;
// The seperate class for private data is so that I don't need to
// #include platform-dependant headers in this header file
};
}
#endif /*GUI_NATIVEAPI_H_*/