dwss/GnomeScreensaver.h

53 lines
1.4 KiB
C++

#ifndef GNOMESCREENSAVER_H
#define GNOMESCREENSAVER_H
#include <time.h>
#include <sys/time.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gdk/gdkgl.h>
#include <gtk/gtk.h>
#include <gtk/gtkgl.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "gs-theme-window.h"
class GnomeScreensaver
{
public:
GnomeScreensaver(int *argc, char ***argv,
bool (*configure_callback)(GnomeScreensaver &),
bool (*expose_callback)(GnomeScreensaver &),
bool (*update_callback)(GnomeScreensaver &),
int32_t interval_msec);
uint32_t getTicks();
void mainloop() { gtk_main(); }
gboolean configureCB(GtkWidget *da, GdkEventConfigure *event);
gboolean exposeCB(GtkWidget *da, GdkEventExpose *event);
gboolean updateCB();
int getWidth() { return m_width; }
int getHeight() { return m_height; }
float getAspectRatio() { return m_aspect_ratio; }
protected:
GtkWidget *m_drawing_area;
uint64_t m_start_msec;
bool (*m_configure_callback)(GnomeScreensaver &);
bool (*m_expose_callback)(GnomeScreensaver &);
bool (*m_update_callback)(GnomeScreensaver &);
int m_width, m_height;
float m_aspect_ratio;
int m_n_monitors;
};
#endif /* GNOMESCREENSAVER_H */