2
2
/* Ekiga -- A VoIP and Video-Conferencing application
3
* Copyright (C) 2000-2006 Damien Sandras
3
* Copyright (C) 2000-2009 Damien Sandras <dsandras@seconix.com>
5
5
* This program is free software; you can redistribute it and/or modify
6
6
* it under the terms of the GNU General Public License as published by
39
#ifndef __GTK_LEVELMETER_H__
40
#define __GTK_LEVELMETER_H__
43
#include <gtk/gtkwidget.h>
39
#ifndef __GM_LEVEL_METER_H__
40
#define __GM_LEVEL_METER_H__
50
#define GTK_LEVELMETER(obj) GTK_CHECK_CAST (obj, gtk_levelmeter_get_type (), GtkLevelMeter)
51
#define GTK_LEVELMETER_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_levelmeter_get_type (), GtkLevelMeterClass)
52
#define GTK_IS_LEVELMETER(obj) GTK_CHECK_TYPE (obj, gtk_levelmeter_get_type ())
55
typedef struct _GtkLevelMeter GtkLevelMeter;
56
typedef struct _GtkLevelMeterClass GtkLevelMeterClass;
61
GTK_METER_LEFT_TO_RIGHT,
62
GTK_METER_BOTTOM_TO_TOP
63
} GtkLevelMeterOrientation;
46
typedef struct _GmLevelMeter GmLevelMeter;
47
typedef struct _GmLevelMeterPrivate GmLevelMeterPrivate;
48
typedef struct _GmLevelMeterClass GmLevelMeterClass;
70
/* Orientation of the level meter */
71
GtkLevelMeterOrientation orientation;
73
/* show a peak indicator */
76
/* show a continous or a segmented (LED like) display */
79
/* The ranges of different color of the display */
82
/* The pixmap for double buffering */
83
GdkPixmap* offscreen_image;
85
/* The pixmap with the highlighted bar */
86
GdkPixmap* offscreen_image_hl;
88
/* The pixmap with the dark bar */
89
GdkPixmap* offscreen_image_dark;
55
GmLevelMeterPrivate* priv;
96
struct _GtkLevelMeterClass
59
struct _GmLevelMeterClass
98
61
GtkWidgetClass parent_class;
102
struct _GtkLevelMeterColorEntry
65
typedef struct _GmLevelMeterColorEntry GmLevelMeterColorEntry;
67
struct _GmLevelMeterColorEntry
110
typedef struct _GtkLevelMeterColorEntry GtkLevelMeterColorEntry;
112
75
/* DESCRIPTION : /
113
76
* BEHAVIOR : Creates a new VU meter
116
GtkWidget *gtk_levelmeter_new (void);
119
* BEHAVIOR : Get the GType
122
GType gtk_levelmeter_get_type (void);
79
GtkWidget *gm_level_meter_new (void);
124
81
/* DESCRIPTION : /
125
82
* BEHAVIOR : Set new values for level.
126
83
* PRE : Level should be between 0.0 and 1.0,
127
84
* lower/higher values are clamped.
129
void gtk_levelmeter_set_level (GtkLevelMeter *,
86
void gm_level_meter_set_level (GmLevelMeter *meter,
133
89
/* DESCRIPTION : /
134
90
* BEHAVIOR : Clear the GtkLevelMeter.
137
void gtk_levelmeter_clear (GtkLevelMeter *);
93
void gm_level_meter_clear (GmLevelMeter *meter);
140
96
/* DESCRIPTION : /
146
102
* of the array is stored, so the array given as an argument
147
103
* can be deleted after the function call.
149
void gtk_levelmeter_set_colors (GtkLevelMeter *,
105
void gm_levelmeter_set_colors (GmLevelMeter *meter,
108
/* GObject boilerplate */
110
GType gm_level_meter_get_type (void);
112
#define GM_TYPE_LEVEL_METER (gm_level_meter_get_type ())
113
#define GM_LEVEL_METER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GM_TYPE_LEVEL_METER, GmLevelMeter))
114
#define GM_LEVEL_METER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GM_TYPE_LEVEL_METER, GmLevelMeterClass))
115
#define GM_IS_LEVEL_METER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GM_TYPE_LEVEL_METER))
116
#define GM_IS_LEVEL_METER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GM_TYPE_LEVEL_METER))
117
#define GM_LEVEL_METER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GM_TYPE_LEVEL_METER, GmLevelMeterClass))
154
#endif /* __GTK_LEVELMETER_H__ */