mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-05 11:37:49 +00:00
add ..._set_{h,v}alignment() methods to video titles
This commit is contained in:
parent
c0f0d6f5f4
commit
08d94f7e38
2 changed files with 77 additions and 0 deletions
|
@ -72,6 +72,8 @@ ges_track_video_title_src_init (GESTrackVideoTitleSource * self)
|
||||||
self->text = NULL;
|
self->text = NULL;
|
||||||
self->font_desc = g_strdup (DEFAULT_FONT_DESC);
|
self->font_desc = g_strdup (DEFAULT_FONT_DESC);
|
||||||
self->text_el = NULL;
|
self->text_el = NULL;
|
||||||
|
self->halign = DEFAULT_HALIGNMENT;
|
||||||
|
self->valign = DEFAULT_VALIGNMENT;
|
||||||
self->background_el = NULL;
|
self->background_el = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +145,8 @@ ges_track_video_title_src_create_element (GESTrackTitleSource * object)
|
||||||
if (self->font_desc) {
|
if (self->font_desc) {
|
||||||
g_object_set (text, "font-desc", self->font_desc, NULL);
|
g_object_set (text, "font-desc", self->font_desc, NULL);
|
||||||
}
|
}
|
||||||
|
g_object_set (text, "valignment", (gint) self->valign, "halignment",
|
||||||
|
(gint) self->halign, NULL);
|
||||||
|
|
||||||
g_object_set (background, "pattern", (gint) GES_TRACK_VIDEO_BG_SRC_BLACK,
|
g_object_set (background, "pattern", (gint) GES_TRACK_VIDEO_BG_SRC_BLACK,
|
||||||
NULL);
|
NULL);
|
||||||
|
@ -201,6 +205,40 @@ ges_track_video_title_source_set_font_desc (GESTrackVideoTitleSource * self,
|
||||||
g_object_set (self->text_el, "font-desc", font_desc, NULL);
|
g_object_set (self->text_el, "font-desc", font_desc, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ges_track_video_title_source_valignment:
|
||||||
|
* @self: the #GESTrackVideoTitleSource* to set text on
|
||||||
|
* @valignment: #GESTrackVideoTitleSrcVAlign
|
||||||
|
*
|
||||||
|
* Sets the vertical aligment of the text.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ges_track_video_title_source_set_valignment (GESTrackVideoTitleSource * self,
|
||||||
|
GESTrackVideoTitleSrcVAlign valign)
|
||||||
|
{
|
||||||
|
self->valign = valign;
|
||||||
|
GST_LOG ("set valignment to: %d", valign);
|
||||||
|
if (self->text_el)
|
||||||
|
g_object_set (self->text_el, "valignment", valign, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ges_track_video_title_source_halignment:
|
||||||
|
* @self: the #GESTrackVideoTitleSource* to set text on
|
||||||
|
* @halignment: #GESTrackVideoTitleSrcHAlign
|
||||||
|
*
|
||||||
|
* Sets the vertical aligment of the text.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ges_track_video_title_source_set_halignment (GESTrackVideoTitleSource * self,
|
||||||
|
GESTrackVideoTitleSrcHAlign halign)
|
||||||
|
{
|
||||||
|
self->halign = halign;
|
||||||
|
GST_LOG ("set halignment to: %d", halign);
|
||||||
|
if (self->text_el)
|
||||||
|
g_object_set (self->text_el, "halignment", halign, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
GESTrackVideoTitleSource *
|
GESTrackVideoTitleSource *
|
||||||
ges_track_video_title_source_new (void)
|
ges_track_video_title_source_new (void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,7 +45,36 @@ G_BEGIN_DECLS
|
||||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSourceClass))
|
(G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSourceClass))
|
||||||
|
|
||||||
#define DEFAULT_FONT_DESC "serif 36"
|
#define DEFAULT_FONT_DESC "serif 36"
|
||||||
|
#define DEFAULT_VALIGNMENT GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BASELINE
|
||||||
|
#define DEFAULT_HALIGNMENT GES_TRACK_VIDEO_TITLE_SRC_HALIGN_CENTER
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GESTrackVideoTitleSrcVAlign:
|
||||||
|
* @GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BASELINE: draw text on the baseline
|
||||||
|
* @GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BOTTOM: draw text on the bottom
|
||||||
|
* @GES_TRACK_VIDEO_TITLE_SRC_VALIGN_TOP: draw test on top
|
||||||
|
*
|
||||||
|
* Vertical alignment of the text.
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BASELINE,
|
||||||
|
GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BOTTOM,
|
||||||
|
GES_TRACK_VIDEO_TITLE_SRC_VALIGN_TOP
|
||||||
|
} GESTrackVideoTitleSrcVAlign;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GESTrackVideoTitleSrcHAlign:
|
||||||
|
* @GES_TRACK_VIDEO_TITLE_SRC_HALIGN_LEFT: align text left
|
||||||
|
* @GES_TRACK_VIDEO_TITLE_SRC_HALIGN_CENTER: align text center
|
||||||
|
* @GES_TRACK_VIDEO_TITLE_SRC_HALIGN_RIGHT: align text right
|
||||||
|
*
|
||||||
|
* Horizontal alignment of the text.
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
GES_TRACK_VIDEO_TITLE_SRC_HALIGN_LEFT,
|
||||||
|
GES_TRACK_VIDEO_TITLE_SRC_HALIGN_CENTER,
|
||||||
|
GES_TRACK_VIDEO_TITLE_SRC_HALIGN_RIGHT
|
||||||
|
} GESTrackVideoTitleSrcHAlign;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GESTrackVideoTitleSource:
|
* GESTrackVideoTitleSource:
|
||||||
|
@ -58,6 +87,8 @@ struct _GESTrackVideoTitleSource {
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
gchar *text;
|
gchar *text;
|
||||||
gchar *font_desc;
|
gchar *font_desc;
|
||||||
|
gint halign;
|
||||||
|
gint valign;
|
||||||
GstElement *text_el;
|
GstElement *text_el;
|
||||||
GstElement *background_el;
|
GstElement *background_el;
|
||||||
};
|
};
|
||||||
|
@ -77,8 +108,16 @@ GType ges_track_video_title_src_get_type (void);
|
||||||
|
|
||||||
void ges_track_video_title_source_set_text(GESTrackVideoTitleSource *, const
|
void ges_track_video_title_source_set_text(GESTrackVideoTitleSource *, const
|
||||||
gchar *);
|
gchar *);
|
||||||
|
|
||||||
void ges_track_video_title_source_set_font_desc(GESTrackVideoTitleSource *,
|
void ges_track_video_title_source_set_font_desc(GESTrackVideoTitleSource *,
|
||||||
const gchar *);
|
const gchar *);
|
||||||
|
|
||||||
|
void ges_track_video_title_source_set_halignment(GESTrackVideoTitleSource *,
|
||||||
|
GESTrackVideoTitleSrcHAlign);
|
||||||
|
|
||||||
|
void ges_track_video_title_source_set_valignment(GESTrackVideoTitleSource *,
|
||||||
|
GESTrackVideoTitleSrcVAlign);
|
||||||
|
|
||||||
GESTrackVideoTitleSource* ges_track_video_title_source_new (void);
|
GESTrackVideoTitleSource* ges_track_video_title_source_new (void);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
Loading…
Reference in a new issue