static void
gst_media_play_init(GstMediaPlay *mplay)
{
- GtkWidget *gstplay;
GModule *symbols;
connect_struct data;
- glade_init();
- glade_gnome_init();
-
g_print("using %s\n", DATADIR"gstmediaplay.glade");
/* 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");
+ g_assert (mplay->slider != NULL);
{
GtkArg arg;
GtkRange *range;
}
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");
+ g_assert (mplay->pause_button != NULL);
mplay->stop_button = glade_xml_get_widget (mplay->xml, "toggle_stop");
+ g_assert (mplay->stop_button != NULL);
+
+ mplay->window = glade_xml_get_widget (mplay->xml, "gstplay");
+ g_assert (mplay->window != NULL);
- gstplay = glade_xml_get_widget (mplay->xml, "gstplay");
- gtk_drag_dest_set (gstplay,
+ gtk_drag_dest_set (mplay->window,
GTK_DEST_DEFAULT_ALL,
target_table, 1,
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),
NULL);
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_playtime (mplay->status, "00:00 / 00:00");
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;
}
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);
}
}
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
gst_media_play_frame_displayed (GstPlay *play,
GstMediaPlay *mplay)
<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>
<class>GtkMenuItem</class>
<name>media1</name>
<signal>
<widget>
<class>GnomeDockItem</class>
<name>dockitem3</name>
- <border_width>2</border_width>
+ <border_width>1</border_width>
<placement>GNOME_DOCK_BOTTOM</placement>
<band>0</band>
<position>0</position>
<widget>
<class>GnomeDockItem</class>
<name>dockitem2</name>
- <border_width>1</border_width>
<placement>GNOME_DOCK_BOTTOM</placement>
<band>1</band>
<position>0</position>
<shadow_type>GTK_SHADOW_OUT</shadow_type>
<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>
GtkWidget *play_button;
GtkWidget *pause_button;
GtkWidget *stop_button;
+ GtkWidget *window;
GstStatusArea *status;
static gint gst_status_area_expose(GtkWidget *widget, GdkEventExpose *event);
#define DEFAULT_HEIGHT 20
+#define DEFAULT_EXPANDED_HEIGHT 100
/* signals and args */
enum {
GTK_WIDGET(status_area)->requisition.height = DEFAULT_HEIGHT;
status_area->state = GST_STATUS_AREA_STATE_INIT;
+ status_area->expanded = FALSE;
}
GstStatusArea *
widget->allocation.width,
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) {
case GST_STATUS_AREA_STATE_INIT:
statustext = "Initializing";
gdk_draw_string (widget->window,
widget->style->font,
widget->style->white_gc,
- 8, 15, statustext);
+ 8, widget->allocation.height-5,
+ statustext);
if (status_area->playtime) {
gint width = gdk_string_width (widget->style->font, status_area->playtime);
gdk_draw_string (widget->window,
widget->style->font,
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);
}
}
gst_status_area_show_extended (GstStatusArea *area,
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
GstStatusAreaState state;
guchar *playtime;
+ gboolean expanded;
};
struct _GstStatusAreaClass {
gst_init (&argc,&argv);
gnome_init ("gstreamer", VERSION, argc, argv);
+ glade_init();
+ glade_gnome_init();
play = gst_media_play_new ();