summaryrefslogtreecommitdiff
path: root/libmate-desktop/mate-bg-crossfade.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmate-desktop/mate-bg-crossfade.h')
-rw-r--r--libmate-desktop/mate-bg-crossfade.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/libmate-desktop/mate-bg-crossfade.h b/libmate-desktop/mate-bg-crossfade.h
new file mode 100644
index 0000000..28c1e28
--- /dev/null
+++ b/libmate-desktop/mate-bg-crossfade.h
@@ -0,0 +1,89 @@
+/* mate-bg-crossfade.h - fade window background between two pixmaps
+
+ Copyright 2008, Red Hat, Inc.
+
+ This file is part of the Mate Library.
+
+ The Mate Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The Mate Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Mate Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+ Floor, Boston, MA 02110-1301 US.
+
+ Author: Ray Strode <[email protected]>
+*/
+
+#ifndef __MATE_BG_CROSSFADE_H__
+#define __MATE_BG_CROSSFADE_H__
+
+#ifndef MATE_DESKTOP_USE_UNSTABLE_API
+#error MateBGCrossfade is unstable API. You must define MATE_DESKTOP_USE_UNSTABLE_API before including mate-bg-crossfade.h
+#endif
+
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MATE_TYPE_BG_CROSSFADE (mate_bg_crossfade_get_type ())
+#define MATE_BG_CROSSFADE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MATE_TYPE_BG_CROSSFADE, MateBGCrossfade))
+#define MATE_BG_CROSSFADE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MATE_TYPE_BG_CROSSFADE, MateBGCrossfadeClass))
+#define MATE_IS_BG_CROSSFADE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MATE_TYPE_BG_CROSSFADE))
+#define MATE_IS_BG_CROSSFADE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MATE_TYPE_BG_CROSSFADE))
+#define MATE_BG_CROSSFADE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MATE_TYPE_BG_CROSSFADE, MateBGCrossfadeClass))
+
+typedef struct _MateBGCrossfadePrivate MateBGCrossfadePrivate;
+typedef struct _MateBGCrossfade MateBGCrossfade;
+typedef struct _MateBGCrossfadeClass MateBGCrossfadeClass;
+
+struct _MateBGCrossfade
+{
+ GObject parent_object;
+
+ MateBGCrossfadePrivate *priv;
+};
+
+struct _MateBGCrossfadeClass
+{
+ GObjectClass parent_class;
+
+ void (* finished) (MateBGCrossfade *fade, GdkWindow *window);
+};
+
+GType mate_bg_crossfade_get_type (void);
+MateBGCrossfade *mate_bg_crossfade_new (int width, int height);
+
+
+#if GTK_CHECK_VERSION(3, 0, 0)
+gboolean mate_bg_crossfade_set_start_surface (MateBGCrossfade *fade,
+ cairo_surface_t *surface);
+gboolean mate_bg_crossfade_set_end_surface (MateBGCrossfade *fade,
+ cairo_surface_t *surface);
+#else
+gboolean mate_bg_crossfade_set_start_pixmap (MateBGCrossfade *fade,
+ GdkPixmap *pixmap);
+gboolean mate_bg_crossfade_set_end_pixmap (MateBGCrossfade *fade,
+ GdkPixmap *pixmap);
+#endif
+
+void mate_bg_crossfade_start (MateBGCrossfade *fade,
+ GdkWindow *window);
+gboolean mate_bg_crossfade_is_started (MateBGCrossfade *fade);
+void mate_bg_crossfade_stop (MateBGCrossfade *fade);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif