54 lines
1.4 KiB
C++
54 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; }
|
|
int getNumMonitors() { return m_n_monitors; }
|
|
|
|
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 */
|
|
|