mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-03 05:59:10 +00:00
Fix for the new gnome libraries. It looks like glade does not like empty dockitems...
Original commit message from CVS: Fix for the new gnome libraries. It looks like glade does not like empty dockitems...
This commit is contained in:
parent
4454f1f2a2
commit
a9a7f77e07
6 changed files with 115 additions and 18 deletions
|
@ -118,18 +118,17 @@ gst_media_play_connect_func (const gchar *handler_name,
|
||||||
static void
|
static void
|
||||||
gst_media_play_init(GstMediaPlay *mplay)
|
gst_media_play_init(GstMediaPlay *mplay)
|
||||||
{
|
{
|
||||||
GtkWidget *gstplay;
|
|
||||||
GModule *symbols;
|
GModule *symbols;
|
||||||
connect_struct data;
|
connect_struct data;
|
||||||
|
|
||||||
glade_init();
|
|
||||||
glade_gnome_init();
|
|
||||||
|
|
||||||
g_print("using %s\n", DATADIR"gstmediaplay.glade");
|
g_print("using %s\n", DATADIR"gstmediaplay.glade");
|
||||||
/* load the interface */
|
/* load the interface */
|
||||||
mplay->xml = glade_xml_new (DATADIR "gstmediaplay.glade", "gstplay");
|
mplay->xml = glade_xml_new (DATADIR"gstmediaplay.glade", "gstplay");
|
||||||
|
//mplay->xml = glade_xml_new ("/usr/local/share/gstplay/gstplay.glade", "gstplay");
|
||||||
|
g_assert (mplay->xml != NULL);
|
||||||
|
|
||||||
mplay->slider = glade_xml_get_widget(mplay->xml, "slider");
|
mplay->slider = glade_xml_get_widget(mplay->xml, "slider");
|
||||||
|
g_assert (mplay->slider != NULL);
|
||||||
{
|
{
|
||||||
GtkArg arg;
|
GtkArg arg;
|
||||||
GtkRange *range;
|
GtkRange *range;
|
||||||
|
@ -144,15 +143,20 @@ gst_media_play_init(GstMediaPlay *mplay)
|
||||||
}
|
}
|
||||||
|
|
||||||
mplay->play_button = glade_xml_get_widget (mplay->xml, "toggle_play");
|
mplay->play_button = glade_xml_get_widget (mplay->xml, "toggle_play");
|
||||||
|
g_assert (mplay->play_button != NULL);
|
||||||
mplay->pause_button = glade_xml_get_widget (mplay->xml, "toggle_pause");
|
mplay->pause_button = glade_xml_get_widget (mplay->xml, "toggle_pause");
|
||||||
|
g_assert (mplay->pause_button != NULL);
|
||||||
mplay->stop_button = glade_xml_get_widget (mplay->xml, "toggle_stop");
|
mplay->stop_button = glade_xml_get_widget (mplay->xml, "toggle_stop");
|
||||||
|
g_assert (mplay->stop_button != NULL);
|
||||||
|
|
||||||
gstplay = glade_xml_get_widget (mplay->xml, "gstplay");
|
mplay->window = glade_xml_get_widget (mplay->xml, "gstplay");
|
||||||
gtk_drag_dest_set (gstplay,
|
g_assert (mplay->window != NULL);
|
||||||
|
|
||||||
|
gtk_drag_dest_set (mplay->window,
|
||||||
GTK_DEST_DEFAULT_ALL,
|
GTK_DEST_DEFAULT_ALL,
|
||||||
target_table, 1,
|
target_table, 1,
|
||||||
GDK_ACTION_COPY);
|
GDK_ACTION_COPY);
|
||||||
gtk_signal_connect (GTK_OBJECT (gstplay), "drag_data_received",
|
gtk_signal_connect (GTK_OBJECT (mplay->window), "drag_data_received",
|
||||||
GTK_SIGNAL_FUNC (target_drag_data_received),
|
GTK_SIGNAL_FUNC (target_drag_data_received),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
@ -175,7 +179,7 @@ gst_media_play_init(GstMediaPlay *mplay)
|
||||||
|
|
||||||
gtk_widget_show (GTK_WIDGET (mplay->play));
|
gtk_widget_show (GTK_WIDGET (mplay->play));
|
||||||
|
|
||||||
mplay->status = gst_status_area_new();
|
mplay->status = glade_xml_get_widget (mplay->xml, "status_area");
|
||||||
gst_status_area_set_state (mplay->status, GST_STATUS_AREA_STATE_INIT);
|
gst_status_area_set_state (mplay->status, GST_STATUS_AREA_STATE_INIT);
|
||||||
gst_status_area_set_playtime (mplay->status, "00:00 / 00:00");
|
gst_status_area_set_playtime (mplay->status, "00:00 / 00:00");
|
||||||
|
|
||||||
|
@ -186,10 +190,6 @@ gst_media_play_init(GstMediaPlay *mplay)
|
||||||
|
|
||||||
glade_xml_signal_autoconnect_full (mplay->xml, gst_media_play_connect_func, &data);
|
glade_xml_signal_autoconnect_full (mplay->xml, gst_media_play_connect_func, &data);
|
||||||
|
|
||||||
gtk_container_add (GTK_CONTAINER (glade_xml_get_widget (mplay->xml, "dockitem4")),
|
|
||||||
GTK_WIDGET (mplay->status));
|
|
||||||
gtk_widget_show (GTK_WIDGET (mplay->status));
|
|
||||||
|
|
||||||
mplay->last_time = 0;
|
mplay->last_time = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,6 +226,9 @@ gst_media_play_start_uri (GstMediaPlay *play,
|
||||||
gtk_widget_set_sensitive (play->slider, FALSE);
|
gtk_widget_set_sensitive (play->slider, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gtk_window_set_title (GTK_WINDOW (play->window),
|
||||||
|
g_strconcat ( "Gstplay - ", uri, NULL));
|
||||||
|
|
||||||
gst_play_play (play->play);
|
gst_play_play (play->play);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -310,6 +313,15 @@ on_gst_media_play_delete_event (GtkWidget *widget,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_extended1_activate (GtkCheckMenuItem *item,
|
||||||
|
GstMediaPlay *mplay)
|
||||||
|
{
|
||||||
|
gdk_threads_leave ();
|
||||||
|
gst_status_area_show_extended (mplay->status, item->active);
|
||||||
|
gdk_threads_enter ();
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_media_play_frame_displayed (GstPlay *play,
|
gst_media_play_frame_displayed (GstPlay *play,
|
||||||
GstMediaPlay *mplay)
|
GstMediaPlay *mplay)
|
||||||
|
|
|
@ -138,6 +138,19 @@
|
||||||
<class>GtkMenu</class>
|
<class>GtkMenu</class>
|
||||||
<name>view1_menu</name>
|
<name>view1_menu</name>
|
||||||
|
|
||||||
|
<widget>
|
||||||
|
<class>GtkCheckMenuItem</class>
|
||||||
|
<name>extended1</name>
|
||||||
|
<signal>
|
||||||
|
<name>activate</name>
|
||||||
|
<handler>on_extended1_activate</handler>
|
||||||
|
<last_modification_time>Mon, 06 Nov 2000 21:52:57 GMT</last_modification_time>
|
||||||
|
</signal>
|
||||||
|
<label>_Extended</label>
|
||||||
|
<active>False</active>
|
||||||
|
<always_show_toggle>False</always_show_toggle>
|
||||||
|
</widget>
|
||||||
|
|
||||||
<widget>
|
<widget>
|
||||||
<class>GtkMenuItem</class>
|
<class>GtkMenuItem</class>
|
||||||
<name>media1</name>
|
<name>media1</name>
|
||||||
|
@ -252,7 +265,7 @@
|
||||||
<widget>
|
<widget>
|
||||||
<class>GnomeDockItem</class>
|
<class>GnomeDockItem</class>
|
||||||
<name>dockitem3</name>
|
<name>dockitem3</name>
|
||||||
<border_width>2</border_width>
|
<border_width>1</border_width>
|
||||||
<placement>GNOME_DOCK_BOTTOM</placement>
|
<placement>GNOME_DOCK_BOTTOM</placement>
|
||||||
<band>0</band>
|
<band>0</band>
|
||||||
<position>0</position>
|
<position>0</position>
|
||||||
|
@ -284,7 +297,6 @@
|
||||||
<widget>
|
<widget>
|
||||||
<class>GnomeDockItem</class>
|
<class>GnomeDockItem</class>
|
||||||
<name>dockitem2</name>
|
<name>dockitem2</name>
|
||||||
<border_width>1</border_width>
|
|
||||||
<placement>GNOME_DOCK_BOTTOM</placement>
|
<placement>GNOME_DOCK_BOTTOM</placement>
|
||||||
<band>1</band>
|
<band>1</band>
|
||||||
<position>0</position>
|
<position>0</position>
|
||||||
|
@ -369,7 +381,12 @@
|
||||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||||
|
|
||||||
<widget>
|
<widget>
|
||||||
<class>Placeholder</class>
|
<class>Custom</class>
|
||||||
|
<name>status_area</name>
|
||||||
|
<creation_function>gst_status_area_new</creation_function>
|
||||||
|
<int1>0</int1>
|
||||||
|
<int2>0</int2>
|
||||||
|
<last_modification_time>Wed, 08 Nov 2000 19:56:51 GMT</last_modification_time>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ struct _GstMediaPlay {
|
||||||
GtkWidget *play_button;
|
GtkWidget *play_button;
|
||||||
GtkWidget *pause_button;
|
GtkWidget *pause_button;
|
||||||
GtkWidget *stop_button;
|
GtkWidget *stop_button;
|
||||||
|
GtkWidget *window;
|
||||||
|
|
||||||
GstStatusArea *status;
|
GstStatusArea *status;
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ static void gst_status_area_realize(GtkWidget *status_area);
|
||||||
static gint gst_status_area_expose(GtkWidget *widget, GdkEventExpose *event);
|
static gint gst_status_area_expose(GtkWidget *widget, GdkEventExpose *event);
|
||||||
|
|
||||||
#define DEFAULT_HEIGHT 20
|
#define DEFAULT_HEIGHT 20
|
||||||
|
#define DEFAULT_EXPANDED_HEIGHT 100
|
||||||
|
|
||||||
/* signals and args */
|
/* signals and args */
|
||||||
enum {
|
enum {
|
||||||
|
@ -75,6 +76,7 @@ gst_status_area_init (GstStatusArea *status_area)
|
||||||
GTK_WIDGET(status_area)->requisition.height = DEFAULT_HEIGHT;
|
GTK_WIDGET(status_area)->requisition.height = DEFAULT_HEIGHT;
|
||||||
|
|
||||||
status_area->state = GST_STATUS_AREA_STATE_INIT;
|
status_area->state = GST_STATUS_AREA_STATE_INIT;
|
||||||
|
status_area->expanded = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
GstStatusArea *
|
GstStatusArea *
|
||||||
|
@ -135,6 +137,56 @@ gst_status_area_expose(GtkWidget *widget,
|
||||||
widget->allocation.width,
|
widget->allocation.width,
|
||||||
widget->allocation.height);
|
widget->allocation.height);
|
||||||
|
|
||||||
|
if (status_area->expanded) {
|
||||||
|
gint width;
|
||||||
|
|
||||||
|
gdk_draw_line (widget->window,
|
||||||
|
widget->style->dark_gc[0],
|
||||||
|
0, widget->allocation.height - 20,
|
||||||
|
widget->allocation.width, widget->allocation.height - 20);
|
||||||
|
|
||||||
|
width = gdk_string_width (widget->style->font, "Show:");
|
||||||
|
|
||||||
|
gdk_draw_string (widget->window,
|
||||||
|
widget->style->font,
|
||||||
|
widget->style->white_gc,
|
||||||
|
80-width, 15,
|
||||||
|
"Show:");
|
||||||
|
|
||||||
|
width = gdk_string_width (widget->style->font, "Clip:");
|
||||||
|
|
||||||
|
gdk_draw_string (widget->window,
|
||||||
|
widget->style->font,
|
||||||
|
widget->style->white_gc,
|
||||||
|
80-width, 40,
|
||||||
|
"Clip:");
|
||||||
|
|
||||||
|
width = gdk_string_width (widget->style->font, "Author:");
|
||||||
|
|
||||||
|
gdk_draw_string (widget->window,
|
||||||
|
widget->style->font,
|
||||||
|
widget->style->white_gc,
|
||||||
|
80-width, 55,
|
||||||
|
"Author:");
|
||||||
|
|
||||||
|
width = gdk_string_width (widget->style->font, "Copyright:");
|
||||||
|
|
||||||
|
gdk_draw_string (widget->window,
|
||||||
|
widget->style->font,
|
||||||
|
widget->style->white_gc,
|
||||||
|
80-width, 70,
|
||||||
|
"Copyright:");
|
||||||
|
|
||||||
|
gdk_draw_line (widget->window,
|
||||||
|
widget->style->dark_gc[0],
|
||||||
|
0, widget->allocation.height - 80,
|
||||||
|
widget->allocation.width, widget->allocation.height - 80);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
switch (status_area->state) {
|
switch (status_area->state) {
|
||||||
case GST_STATUS_AREA_STATE_INIT:
|
case GST_STATUS_AREA_STATE_INIT:
|
||||||
statustext = "Initializing";
|
statustext = "Initializing";
|
||||||
|
@ -156,7 +208,8 @@ gst_status_area_expose(GtkWidget *widget,
|
||||||
gdk_draw_string (widget->window,
|
gdk_draw_string (widget->window,
|
||||||
widget->style->font,
|
widget->style->font,
|
||||||
widget->style->white_gc,
|
widget->style->white_gc,
|
||||||
8, 15, statustext);
|
8, widget->allocation.height-5,
|
||||||
|
statustext);
|
||||||
|
|
||||||
if (status_area->playtime) {
|
if (status_area->playtime) {
|
||||||
gint width = gdk_string_width (widget->style->font, status_area->playtime);
|
gint width = gdk_string_width (widget->style->font, status_area->playtime);
|
||||||
|
@ -164,7 +217,9 @@ gst_status_area_expose(GtkWidget *widget,
|
||||||
gdk_draw_string (widget->window,
|
gdk_draw_string (widget->window,
|
||||||
widget->style->font,
|
widget->style->font,
|
||||||
widget->style->white_gc,
|
widget->style->white_gc,
|
||||||
widget->allocation.width-width-20, 15, status_area->playtime);
|
widget->allocation.width-width-20,
|
||||||
|
widget->allocation.height-5,
|
||||||
|
status_area->playtime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,6 +265,15 @@ void
|
||||||
gst_status_area_show_extended (GstStatusArea *area,
|
gst_status_area_show_extended (GstStatusArea *area,
|
||||||
gboolean show)
|
gboolean show)
|
||||||
{
|
{
|
||||||
|
area->expanded = show;
|
||||||
|
|
||||||
|
if (show) {
|
||||||
|
GTK_WIDGET(area)->requisition.height = DEFAULT_EXPANDED_HEIGHT;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
GTK_WIDGET(area)->requisition.height = DEFAULT_HEIGHT;
|
||||||
|
}
|
||||||
|
gtk_widget_queue_resize (GTK_WIDGET (area));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -30,6 +30,7 @@ struct _GstStatusArea {
|
||||||
|
|
||||||
GstStatusAreaState state;
|
GstStatusAreaState state;
|
||||||
guchar *playtime;
|
guchar *playtime;
|
||||||
|
gboolean expanded;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstStatusAreaClass {
|
struct _GstStatusAreaClass {
|
||||||
|
|
|
@ -15,6 +15,8 @@ main (int argc, char *argv[])
|
||||||
|
|
||||||
gst_init (&argc,&argv);
|
gst_init (&argc,&argv);
|
||||||
gnome_init ("gstreamer", VERSION, argc, argv);
|
gnome_init ("gstreamer", VERSION, argc, argv);
|
||||||
|
glade_init();
|
||||||
|
glade_gnome_init();
|
||||||
|
|
||||||
play = gst_media_play_new ();
|
play = gst_media_play_new ();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue