sven

Artifact [4d72e2562f]
Login

Artifact [4d72e2562f]

Artifact 4d72e2562f006e049f305be1c05c68bd24b2ef92:



#ifndef __GTK_OSD_H__
#define __GTK_OSD_H__

#include <gtk/gtk.h>

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* The type of data that can be displayed. */
  typedef enum
  {
    GTK_OSD_PERCENTAGE= 0,		/* Percentage bar (like a progress bar) */
    GTK_OSD_SLIDER,			/* Slider (like a volume control) */
    GTK_OSD_TEXT,		/* Text */
    GTK_OSD_INT,		/* Text */
    GTK_OSD_ENTER
  } Gtk_Osd_Command;

/* Position of the display */
typedef enum
{
	GTK_OSD_TOP = 0,		/* Top of the screen. */
	GTK_OSD_BOTTOM,		/* Bottom of the screen. */
	GTK_OSD_MIDDLE		/* middle of the screen. */
} Gtk_Osd_Pos;

/* Alignment of the display */
  typedef enum
  {
    GTK_OSD_LEFT = 0,
    GTK_OSD_CENTER,
    GTK_OSD_RIGHT
  } Gtk_Osd_Align;

typedef struct _GtkOSD       GtkOSD;

struct _GtkOSD
{
	GtkWidget *osd_window;
	GtkWidget *darea;
	PangoLayout *layout;

	gint drop_shadow : 1;
	gint debug_frame : 1;

	PangoRectangle extent;

	int max_width;
	int width;
	int height;
	int x;
	int y;
	int x_pos;
	int y_pos;
	int voffset;
	int hoffset;

	int drop_shadow_distance;
	int psize;
	
	gboolean osd_on;
	gchar  *font;
	gchar  *color;
	gchar  *bg_color;
	int bg_color_on ;
	int timeout;
	int bar_length;
	int bar_set;
	int is_slider;
	int bar_on;
//	int osd_enable;
	PangoEllipsizeMode  ellipsize;
	PangoAlignment alignment;
	Gtk_Osd_Pos pos;
	Gtk_Osd_Align align;

	gint timeId;

};

GtkOSD* gtk_osd_new (void);
GtkOSD* gtk_osd_new_from_data (const char *font,const char *color,const char *bg_color,int bg_color_on,gboolean shadow,gboolean frame,int timeout,Gtk_Osd_Pos pos,Gtk_Osd_Align align,int voffset,int hoffset,int osd_on);
gboolean gtk_osd_set_font(GtkOSD *osd,const char *font);
gboolean gtk_osd_set_color (GtkOSD * osd, const char *color);
gboolean gtk_osd_set_bg_color (GtkOSD * osd, const char *color);
gboolean gtk_osd_set_bg_color_on (GtkOSD * osd, gboolean on);
gboolean gtk_osd_pango_set_alignment(GtkOSD *osd,PangoAlignment alignment);
gboolean gtk_osd_set_markup(GtkOSD *osd,const char *text);
gboolean gtk_osd_set_text(GtkOSD *osd,const char *text);
gboolean gtk_osd_set_ellipsize(GtkOSD *osd,PangoEllipsizeMode  ellipsize);
gboolean gtk_osd_set_max_width(GtkOSD *osd,gint max_width);
gboolean gtk_osd_set_drop_shadow(GtkOSD *osd,gboolean data);
gboolean gtk_osd_set_debug_frame(GtkOSD *osd,gboolean data);
gboolean gtk_osd_set_timeout (GtkOSD * osd, int timeout);
gboolean gtk_osd_set_vertical_offset (GtkOSD * osd, int voffset);
gboolean gtk_osd_set_horizontal_offset (GtkOSD * osd, int hoffset);
gboolean gtk_osd_set_pos (GtkOSD * osd, Gtk_Osd_Pos pos);
gboolean gtk_osd_set_align (GtkOSD * osd, Gtk_Osd_Align align);
gboolean gtk_osd_set_bar_length(GtkOSD * osd, int length);
gboolean gtk_osd_set_is_slider(GtkOSD * osd, Gtk_Osd_Command command);
gboolean gtk_osd_set_bar_set(GtkOSD * osd, gint bar);
gboolean gtk_osd_set_bar_on(GtkOSD * osd, gboolean on);
gboolean gtk_osd_set_osd_on(GtkOSD * osd, gboolean on);

gboolean gtk_osd_hide (gpointer data);
gboolean gtk_osd_show (GtkOSD * osd);

gboolean gtk_osd_print (GtkOSD *osd,...);

gboolean  gtk_osd_destroy(GtkOSD *osd);

#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /* __GTK_OSD_H__ */