/usr/include/libawn/awn-effects.h is in libawn-dev 0.4.1~bzr830-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | /*
* Copyright (C) 2007-2009 Michal Hruby <michal.mhr@gmail.com>
* Copyright (C) 2008 Rodney Cryderman <rcryderman@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _LIBAWN_AWN_EFFECTS_H
#define _LIBAWN_AWN_EFFECTS_H
#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <libdesktop-agnostic/desktop-agnostic.h>
#include "awn-defines.h"
#include "awn-overlay.h"
G_BEGIN_DECLS
typedef enum
{
AWN_EFFECT_NONE = 0,
AWN_EFFECT_OPENING = 1,
AWN_EFFECT_CLOSING = 2,
AWN_EFFECT_HOVER = 3,
AWN_EFFECT_LAUNCHING = 4,
AWN_EFFECT_ATTENTION = 5,
AWN_EFFECT_DESATURATE
} AwnEffect;
/* GObject stuff */
#define AWN_TYPE_EFFECTS awn_effects_get_type()
#define AWN_EFFECTS(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), AWN_TYPE_EFFECTS, AwnEffects))
#define AWN_EFFECTS_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), AWN_TYPE_EFFECTS, AwnEffectsClass))
#define AWN_IS_EFFECTS(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), AWN_TYPE_EFFECTS))
#define AWN_IS_EFFECTS_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), AWN_TYPE_EFFECTS))
#define AWN_EFFECTS_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), AWN_TYPE_EFFECTS, AwnEffectsClass))
/**
* AwnEffects:
*
* Class containing all necessary variables for effects state for particular widget.
*/
typedef struct _AwnEffects AwnEffects;
typedef struct _AwnEffectsClass AwnEffectsClass;
typedef struct _AwnEffectsPrivate AwnEffectsPrivate;
typedef gboolean(* AwnEffectsOpfn )(AwnEffects * fx,
GtkAllocation * alloc,
gpointer user_data);
// padding for active_rect, yea it really isn't nice but so far
// it seems to be the only feasible solution
#define AWN_EFFECTS_ACTIVE_RECT_PADDING 3
typedef struct
{
AwnEffectsOpfn fn;
gpointer data;
} AwnEffectsOp;
struct _AwnEffects
{
GObject parent;
/* Properties */
GtkWidget *widget;
gboolean no_clear;
gboolean indirect_paint;
gint position;
guint set_effects;
gint icon_offset;
gint refl_offset;
gfloat icon_alpha;
gfloat refl_alpha;
gboolean do_reflection;
gboolean make_shadow;
gboolean is_active;
gboolean depressed;
gint arrows_count;
gchar *label;
gfloat progress;
gint border_clip;
GQuark spotlight_icon;
GQuark arrow_icon;
GQuark custom_active_icon;
/* properties end */
cairo_t * window_ctx;
cairo_t * virtual_ctx;
AwnEffectsPrivate *priv;
};
struct _AwnEffectsClass {
GObjectClass parent_class;
void (*animation_start) (AwnEffects *fx, AwnEffect effect);
void (*animation_end) (AwnEffects *fx, AwnEffect effect);
GPtrArray *animations;
GData *custom_icons;
};
GType awn_effects_get_type(void);
AwnEffects* awn_effects_new_for_widget(GtkWidget * widget);
void awn_effects_start(AwnEffects * fx, const AwnEffect effect);
void awn_effects_stop(AwnEffects * fx, const AwnEffect effect);
void
awn_effects_start_ex(AwnEffects * fx, const AwnEffect effect, gint max_loops,
gboolean signal_start, gboolean signal_end);
void awn_effects_set_icon_size(AwnEffects *fx, gint width, gint height,
gboolean requestSize);
cairo_t *awn_effects_cairo_create(AwnEffects *fx);
cairo_t *awn_effects_cairo_create_clipped(AwnEffects *fx,
GdkEventExpose *event);
void awn_effects_cairo_destroy(AwnEffects *fx);
void awn_effects_add_overlay (AwnEffects *fx, AwnOverlay *overlay);
void awn_effects_remove_overlay (AwnEffects *fx, AwnOverlay *overlay);
GList* awn_effects_get_overlays (AwnEffects *fx);
void awn_effects_redraw (AwnEffects *fx);
/* Move this somewhere else eventually, these are used only internally */
void awn_effects_main_effect_loop(AwnEffects * fx);
void awn_effects_emit_anim_start(AwnEffects *fx, AwnEffect effect);
void awn_effects_emit_anim_end(AwnEffects *fx, AwnEffect effect);
G_END_DECLS
#endif
|