Mercurial > pidgin.yaz
comparison pidgin/gtkmedia.c @ 25688:9c6915254610
Move the audio progress bar widgets to be beside the video displays.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Thu, 19 Jun 2008 17:38:04 +0000 |
parents | ddbea813862e |
children | c17d26b6f236 |
comparison
equal
deleted
inserted
replaced
25687:ddbea813862e | 25688:9c6915254610 |
---|---|
164 media->priv = PIDGIN_MEDIA_GET_PRIVATE(media); | 164 media->priv = PIDGIN_MEDIA_GET_PRIVATE(media); |
165 media->priv->calling = gtk_label_new_with_mnemonic("Calling..."); | 165 media->priv->calling = gtk_label_new_with_mnemonic("Calling..."); |
166 media->priv->hangup = gtk_button_new_with_label("Hangup"); | 166 media->priv->hangup = gtk_button_new_with_label("Hangup"); |
167 media->priv->accept = gtk_button_new_with_label("Accept"); | 167 media->priv->accept = gtk_button_new_with_label("Accept"); |
168 media->priv->reject = gtk_button_new_with_label("Reject"); | 168 media->priv->reject = gtk_button_new_with_label("Reject"); |
169 media->priv->send_progress = gtk_progress_bar_new(); | |
170 media->priv->recv_progress = gtk_progress_bar_new(); | |
171 | |
172 gtk_widget_set_size_request(media->priv->send_progress, 70, 5); | |
173 gtk_widget_set_size_request(media->priv->recv_progress, 70, 5); | |
174 | 169 |
175 gtk_box_pack_start(GTK_BOX(media), media->priv->calling, FALSE, FALSE, 0); | 170 gtk_box_pack_start(GTK_BOX(media), media->priv->calling, FALSE, FALSE, 0); |
176 gtk_box_pack_start(GTK_BOX(media), media->priv->hangup, FALSE, FALSE, 0); | 171 gtk_box_pack_start(GTK_BOX(media), media->priv->hangup, FALSE, FALSE, 0); |
177 gtk_box_pack_start(GTK_BOX(media), media->priv->accept, FALSE, FALSE, 0); | 172 gtk_box_pack_start(GTK_BOX(media), media->priv->accept, FALSE, FALSE, 0); |
178 gtk_box_pack_start(GTK_BOX(media), media->priv->reject, FALSE, FALSE, 0); | 173 gtk_box_pack_start(GTK_BOX(media), media->priv->reject, FALSE, FALSE, 0); |
179 | |
180 gtk_box_pack_start(GTK_BOX(media), media->priv->send_progress, FALSE, FALSE, 6); | |
181 gtk_box_pack_start(GTK_BOX(media), media->priv->recv_progress, FALSE, FALSE, 6); | |
182 | |
183 gtk_widget_show(media->priv->send_progress); | |
184 gtk_widget_show(media->priv->recv_progress); | |
185 | 174 |
186 gtk_widget_show_all(media->priv->accept); | 175 gtk_widget_show_all(media->priv->accept); |
187 gtk_widget_show_all(media->priv->reject); | 176 gtk_widget_show_all(media->priv->reject); |
188 | 177 |
189 media->priv->display = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); | 178 media->priv->display = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
328 | 317 |
329 static void | 318 static void |
330 pidgin_media_ready_cb(PurpleMedia *media, PidginMedia *gtkmedia) | 319 pidgin_media_ready_cb(PurpleMedia *media, PidginMedia *gtkmedia) |
331 { | 320 { |
332 GstElement *element = purple_media_get_pipeline(media); | 321 GstElement *element = purple_media_get_pipeline(media); |
322 GtkWidget *send_widget = NULL, *recv_widget = NULL; | |
333 | 323 |
334 GstElement *audiosendbin = NULL, *audiosendlevel = NULL; | 324 GstElement *audiosendbin = NULL, *audiosendlevel = NULL; |
335 GstElement *audiorecvbin = NULL, *audiorecvlevel = NULL; | 325 GstElement *audiorecvbin = NULL, *audiorecvlevel = NULL; |
336 GstElement *videosendbin = NULL; | 326 GstElement *videosendbin = NULL; |
337 GstElement *videorecvbin = NULL; | 327 GstElement *videorecvbin = NULL; |
362 g_object_set(gtkmedia, "send-level", audiosendlevel, | 352 g_object_set(gtkmedia, "send-level", audiosendlevel, |
363 "recv-level", audiorecvlevel, | 353 "recv-level", audiorecvlevel, |
364 NULL); | 354 NULL); |
365 } | 355 } |
366 | 356 |
357 send_widget = gtk_hbox_new(FALSE, 0); | |
358 recv_widget = gtk_hbox_new(FALSE, 0); | |
359 | |
360 gtk_box_pack_start(GTK_BOX(gtkmedia->priv->display), send_widget, TRUE, TRUE, 0); | |
361 gtk_box_pack_start(GTK_BOX(gtkmedia->priv->display), recv_widget, TRUE, TRUE, 0); | |
362 | |
363 gtk_widget_show(send_widget); | |
364 gtk_widget_show(recv_widget); | |
365 | |
367 if (videorecvbin || videosendbin) { | 366 if (videorecvbin || videosendbin) { |
368 GtkWidget *aspect; | 367 GtkWidget *aspect; |
369 GtkWidget *remote_video; | 368 GtkWidget *remote_video; |
370 GtkWidget *local_video; | 369 GtkWidget *local_video; |
371 | 370 |
372 gtk_widget_show(gtkmedia->priv->display); | 371 gtk_widget_show(gtkmedia->priv->display); |
373 | 372 |
374 aspect = gtk_aspect_frame_new(NULL, 0.5, 0.5, 4.0/3.0, FALSE); | 373 aspect = gtk_aspect_frame_new(NULL, 0.5, 0.5, 4.0/3.0, FALSE); |
375 gtk_frame_set_shadow_type(GTK_FRAME(aspect), GTK_SHADOW_IN); | 374 gtk_frame_set_shadow_type(GTK_FRAME(aspect), GTK_SHADOW_IN); |
376 gtk_box_pack_start(GTK_BOX(gtkmedia->priv->display), aspect, TRUE, TRUE, 0); | 375 gtk_box_pack_start(GTK_BOX(send_widget), aspect, TRUE, TRUE, 0); |
377 | 376 |
378 remote_video = gtk_drawing_area_new(); | 377 remote_video = gtk_drawing_area_new(); |
379 gtk_container_add(GTK_CONTAINER(aspect), remote_video); | 378 gtk_container_add(GTK_CONTAINER(aspect), remote_video); |
380 gtk_widget_set_size_request (GTK_WIDGET(remote_video), 100, -1); | 379 gtk_widget_set_size_request (GTK_WIDGET(remote_video), 100, -1); |
381 gtk_widget_show(remote_video); | 380 gtk_widget_show(remote_video); |
382 gtk_widget_show(aspect); | 381 gtk_widget_show(aspect); |
383 | 382 |
384 aspect = gtk_aspect_frame_new(NULL, 0.5, 0.5, 4.0/3.0, FALSE); | 383 aspect = gtk_aspect_frame_new(NULL, 0.5, 0.5, 4.0/3.0, FALSE); |
385 gtk_frame_set_shadow_type(GTK_FRAME(aspect), GTK_SHADOW_IN); | 384 gtk_frame_set_shadow_type(GTK_FRAME(aspect), GTK_SHADOW_IN); |
386 gtk_box_pack_start(GTK_BOX(gtkmedia->priv->display), aspect, TRUE, TRUE, 0); | 385 gtk_box_pack_start(GTK_BOX(recv_widget), aspect, TRUE, TRUE, 0); |
387 | 386 |
388 local_video = gtk_drawing_area_new(); | 387 local_video = gtk_drawing_area_new(); |
389 gtk_container_add(GTK_CONTAINER(aspect), local_video); | 388 gtk_container_add(GTK_CONTAINER(aspect), local_video); |
390 gtk_widget_show(local_video); | 389 gtk_widget_show(local_video); |
391 gtk_widget_show(aspect); | 390 gtk_widget_show(aspect); |
392 | 391 |
393 gtkmedia->priv->local_video = local_video; | 392 gtkmedia->priv->local_video = local_video; |
394 gtkmedia->priv->remote_video = remote_video; | 393 gtkmedia->priv->remote_video = remote_video; |
394 } | |
395 | |
396 if (audiorecvbin || audiosendbin) { | |
397 gtk_widget_show(gtkmedia->priv->display); | |
398 | |
399 gtkmedia->priv->send_progress = gtk_progress_bar_new(); | |
400 gtkmedia->priv->recv_progress = gtk_progress_bar_new(); | |
401 | |
402 gtk_widget_set_size_request(gtkmedia->priv->send_progress, 5, 70); | |
403 gtk_widget_set_size_request(gtkmedia->priv->recv_progress, 5, 70); | |
404 | |
405 gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(gtkmedia->priv->send_progress), | |
406 GTK_PROGRESS_BOTTOM_TO_TOP); | |
407 gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(gtkmedia->priv->recv_progress), | |
408 GTK_PROGRESS_BOTTOM_TO_TOP); | |
409 | |
410 gtk_box_pack_start(GTK_BOX(send_widget), | |
411 gtkmedia->priv->send_progress, FALSE, FALSE, 0); | |
412 gtk_box_pack_start(GTK_BOX(recv_widget), | |
413 gtkmedia->priv->recv_progress, FALSE, FALSE, 0); | |
414 | |
415 gtk_widget_show(gtkmedia->priv->send_progress); | |
416 gtk_widget_show(gtkmedia->priv->recv_progress); | |
395 } | 417 } |
396 | 418 |
397 bus = gst_pipeline_get_bus(GST_PIPELINE(element)); | 419 bus = gst_pipeline_get_bus(GST_PIPELINE(element)); |
398 gst_bus_add_signal_watch(GST_BUS(bus)); | 420 gst_bus_add_signal_watch(GST_BUS(bus)); |
399 g_signal_connect(G_OBJECT(gst_pipeline_get_bus(GST_PIPELINE(element))), | 421 g_signal_connect(G_OBJECT(gst_pipeline_get_bus(GST_PIPELINE(element))), |