diff options
author | Stefano Karapetsas <[email protected]> | 2013-07-24 01:47:46 +0200 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2013-07-24 01:47:46 +0200 |
commit | 09721cdade56cdc1460edee25c17257387c837f9 (patch) | |
tree | fe4e8a0fddf1a2562c5ab0c3eec9e41babc31ea4 /libmate-desktop/mate-bg.h | |
parent | caaabf7a11fa272a55b3dc2ac490d47df885ff9c (diff) | |
download | mate-desktop-09721cdade56cdc1460edee25c17257387c837f9.tar.bz2 mate-desktop-09721cdade56cdc1460edee25c17257387c837f9.tar.xz |
Move include files and remove old libmate and libmateui folders
Diffstat (limited to 'libmate-desktop/mate-bg.h')
-rw-r--r-- | libmate-desktop/mate-bg.h | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/libmate-desktop/mate-bg.h b/libmate-desktop/mate-bg.h new file mode 100644 index 0000000..ed8b7af --- /dev/null +++ b/libmate-desktop/mate-bg.h @@ -0,0 +1,182 @@ +/* mate-bg.h - + + Copyright (C) 2007 Red Hat, Inc. + Copyright (C) 2012 Jasmine Hassan <[email protected]> + + 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 St, Fifth Floor, + Boston, MA 02110-1301, USA. + + Authors: Soren Sandmann <[email protected]> + Jasmine Hassan <[email protected]> +*/ + +#ifndef __MATE_BG_H__ +#define __MATE_BG_H__ + +#ifndef MATE_DESKTOP_USE_UNSTABLE_API +#error MateBG is unstable API. You must define MATE_DESKTOP_USE_UNSTABLE_API before including mate-bg.h +#endif + +#include <gdk/gdk.h> +#include <gio/gio.h> +#include <mate-desktop-thumbnail.h> +#include <mate-bg-crossfade.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define MATE_TYPE_BG (mate_bg_get_type ()) +#define MATE_BG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MATE_TYPE_BG, MateBG)) +#define MATE_BG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MATE_TYPE_BG, MateBGClass)) +#define MATE_IS_BG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MATE_TYPE_BG)) +#define MATE_IS_BG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MATE_TYPE_BG)) +#define MATE_BG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MATE_TYPE_BG, MateBGClass)) + +#define MATE_BG_SCHEMA "org.mate.background" + +/* whether to draw the desktop bg */ +#define MATE_BG_KEY_DRAW_BACKGROUND "draw-background" + +/* whether Caja or mate-settings-daemon draw the desktop */ +#define MATE_BG_KEY_SHOW_DESKTOP "show-desktop-icons" + +/* whether to fade when changing background (By Caja/m-s-d) */ +#define MATE_BG_KEY_BACKGROUND_FADE "background-fade" + +#define MATE_BG_KEY_PRIMARY_COLOR "primary-color" +#define MATE_BG_KEY_SECONDARY_COLOR "secondary-color" +#define MATE_BG_KEY_COLOR_TYPE "color-shading-type" +#define MATE_BG_KEY_PICTURE_PLACEMENT "picture-options" +#define MATE_BG_KEY_PICTURE_OPACITY "picture-opacity" +#define MATE_BG_KEY_PICTURE_FILENAME "picture-filename" + +typedef struct _MateBG MateBG; +typedef struct _MateBGClass MateBGClass; + +typedef enum { + MATE_BG_COLOR_SOLID, + MATE_BG_COLOR_H_GRADIENT, + MATE_BG_COLOR_V_GRADIENT +} MateBGColorType; + +typedef enum { + MATE_BG_PLACEMENT_TILED, + MATE_BG_PLACEMENT_ZOOMED, + MATE_BG_PLACEMENT_CENTERED, + MATE_BG_PLACEMENT_SCALED, + MATE_BG_PLACEMENT_FILL_SCREEN, + MATE_BG_PLACEMENT_SPANNED +} MateBGPlacement; + +GType mate_bg_get_type (void); +MateBG * mate_bg_new (void); +void mate_bg_load_from_preferences (MateBG *bg); +void mate_bg_load_from_system_preferences (MateBG *bg); +void mate_bg_load_from_system_gsettings (MateBG *bg, + GSettings *settings, + gboolean reset_apply); +void mate_bg_load_from_gsettings (MateBG *bg, + GSettings *settings); +void mate_bg_save_to_preferences (MateBG *bg); +void mate_bg_save_to_gsettings (MateBG *bg, + GSettings *settings); + +/* Setters */ +void mate_bg_set_filename (MateBG *bg, + const char *filename); +void mate_bg_set_placement (MateBG *bg, + MateBGPlacement placement); +void mate_bg_set_color (MateBG *bg, + MateBGColorType type, + GdkColor *primary, + GdkColor *secondary); +void mate_bg_set_draw_background (MateBG *bg, + gboolean draw_background); +/* Getters */ +gboolean mate_bg_get_draw_background (MateBG *bg); +MateBGPlacement mate_bg_get_placement (MateBG *bg); +void mate_bg_get_color (MateBG *bg, + MateBGColorType *type, + GdkColor *primary, + GdkColor *secondary); +const gchar * mate_bg_get_filename (MateBG *bg); + +/* Drawing and thumbnailing */ +void mate_bg_draw (MateBG *bg, + GdkPixbuf *dest, + GdkScreen *screen, + gboolean is_root); + +#if GTK_CHECK_VERSION(3, 0, 0) +cairo_surface_t *mate_bg_create_surface (MateBG *bg, +#else +GdkPixmap *mate_bg_create_pixmap (MateBG *bg, +#endif + GdkWindow *window, + int width, + int height, + gboolean root); + +gboolean mate_bg_get_image_size (MateBG *bg, + MateDesktopThumbnailFactory *factory, + int best_width, + int best_height, + int *width, + int *height); +GdkPixbuf * mate_bg_create_thumbnail (MateBG *bg, + MateDesktopThumbnailFactory *factory, + GdkScreen *screen, + int dest_width, + int dest_height); +gboolean mate_bg_is_dark (MateBG *bg, + int dest_width, + int dest_height); +gboolean mate_bg_has_multiple_sizes (MateBG *bg); +gboolean mate_bg_changes_with_time (MateBG *bg); +GdkPixbuf * mate_bg_create_frame_thumbnail (MateBG *bg, + MateDesktopThumbnailFactory *factory, + GdkScreen *screen, + int dest_width, + int dest_height, + int frame_num); + +/* Set a surface as root - not a MateBG method. At some point + * if we decide to stabilize the API then we may want to make + * these object methods, drop mate_bg_create_surface, etc. + */ +#if GTK_CHECK_VERSION(3, 0, 0) +void mate_bg_set_surface_as_root (GdkScreen *screen, + cairo_surface_t *surface); +MateBGCrossfade *mate_bg_set_surface_as_root_with_crossfade (GdkScreen *screen, + cairo_surface_t *surface); +cairo_surface_t *mate_bg_get_surface_from_root (GdkScreen *screen); + +#else /* GTK_CHECK_VERSION(3, 0, 0) */ + +void mate_bg_set_pixmap_as_root (GdkScreen *screen, + GdkPixmap *pixmap); +MateBGCrossfade *mate_bg_set_pixmap_as_root_with_crossfade (GdkScreen *screen, + GdkPixmap *pixmap); +GdkPixmap *mate_bg_get_pixmap_from_root (GdkScreen *screen); +#endif /* GTK_CHECK_VERSION(3, 0, 0) */ + +#ifdef __cplusplus +} +#endif + +#endif |