summaryrefslogtreecommitdiffstats
path: root/gtk2/callbacks.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2/callbacks.c')
-rw-r--r--gtk2/callbacks.c623
1 files changed, 0 insertions, 623 deletions
diff --git a/gtk2/callbacks.c b/gtk2/callbacks.c
deleted file mode 100644
index 82373429a..000000000
--- a/gtk2/callbacks.c
+++ /dev/null
@@ -1,623 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <gtk/gtk.h>
-
-#include "../core/HandBrake.h"
-#include "status.h"
-
-#include "callbacks.h"
-#include "interface.h"
-#include "support.h"
-
-
-#define GLADE_HOOKUP_OBJECT(component,widget,name) \
- g_object_set_data_full (G_OBJECT (component), name, \
- gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
-
-
-static int i_settings_preview_picture;
-static int i_settings_width = 0;
-static int i_settings_crop_top = 0;
-static int i_settings_crop_bottom = 0;
-static int i_settings_crop_left = 0;
-static int i_settings_crop_right = 0;
-static int b_settings_deinterlace = 0;
-
-gboolean on_win_main_delete_event (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
-{
- HBClose( &hb_handle );
-
- hb_handle = NULL;
-
- gtk_main_quit();
- return FALSE;
-}
-
-
-void on_button_browse_device (GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win_open;
-
- /* Create the open window */
- win_open = create_win_open();
- gtk_object_set_data( GTK_OBJECT(win_open), "entry", "entry_device" );
- gtk_widget_show( win_open );
- gdk_window_raise( win_open->window );
-}
-
-/***
- * Open file dialog box handle (you should have set entry to the right entry name of hb_win_main
- */
-gboolean on_win_open_delete_event (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
-{
- GtkWidget *win_open = gtk_widget_get_toplevel( GTK_WIDGET (widget) );
-
- gtk_widget_destroy( win_open );
- return FALSE;
-}
-
-void on_ok_button1_clicked (GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win_open = gtk_widget_get_toplevel( GTK_WIDGET (button) );
-
- char *psz_entry = gtk_object_get_data( GTK_OBJECT( win_open ), "entry" );
- const char *psz_file = gtk_file_selection_get_filename( GTK_FILE_SELECTION( win_open ) );
-
- GtkWidget *entry = lookup_widget( hb_win_main, psz_entry );
-
- gtk_entry_set_text( GTK_ENTRY( entry ), psz_file );
- if( !strcmp( psz_entry, "entry_device" ) && *psz_file )
- {
- /* Feed libhb with a device */
- HBScanDVD( hb_handle, psz_file, 0 );
- }
- gtk_widget_destroy( win_open );
-}
-
-
-void on_cancel_button1_clicked (GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win_open = gtk_widget_get_toplevel( GTK_WIDGET (button) );
- gtk_widget_destroy( win_open );
-}
-
-void on_entry_device_activate( GtkEntry *entry,
- gpointer user_data)
-{
- const char *psz_file = gtk_entry_get_text( GTK_ENTRY( entry ) );
-
- /* Feed libhb with a device */
- if( *psz_file )
- {
- HBScanDVD( hb_handle, psz_file, 0 );
- }
-}
-
-static void menu_language_new( GtkOptionMenu *optionmenu, char *name, HBTitle *title, int i_default )
-{
- int i;
-
- /* build audio menu */
- GtkWidget *menu = gtk_menu_new();
- GtkWidget *item;
-
- item = gtk_menu_item_new_with_mnemonic( "None" );
- gtk_widget_show( item );
- gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
-
- for( i = 0; i < HBListCount( title->audioList ); i++ )
- {
- HBAudio *audio = (HBAudio*) HBListItemAt( title->audioList, i );
-
- item = gtk_menu_item_new_with_mnemonic( audio->language );
- gtk_widget_show( item );
- gtk_menu_shell_append( GTK_MENU_SHELL(menu), item );
- }
-
- gtk_option_menu_set_menu( GTK_OPTION_MENU(optionmenu), menu );
- GLADE_HOOKUP_OBJECT( hb_win_main, menu, name );
-
- gtk_option_menu_set_history( GTK_OPTION_MENU(optionmenu), i_default );
-}
-
-void on_optionmenu_title_changed( GtkOptionMenu *optionmenu,
- gpointer user_data)
-{
- GtkWidget *optionmenu_language = lookup_widget( hb_win_main, "optionmenu_language" );
- GtkWidget *optionmenu_language2 = lookup_widget( hb_win_main, "optionmenu_language2" );
-
- HBTitle *title;
-
- int i = gtk_option_menu_get_history( optionmenu );
-
- title = (HBTitle*) HBListItemAt( hb_status->titleList, i );
-
- /* FIXME is it ok ?*/
- gtk_option_menu_remove_menu( GTK_OPTION_MENU(optionmenu_language) );
- gtk_option_menu_remove_menu( GTK_OPTION_MENU(optionmenu_language2) );
-
- if( title )
- {
- /* build audio menu */
- menu_language_new( GTK_OPTION_MENU(optionmenu_language), "menu_language", title, 1 );
- menu_language_new( GTK_OPTION_MENU(optionmenu_language2), "menu_language2", title, 0 );
- }
-}
-
-
-
-
-
-
-
-void on_button_browse_file_clicked( GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win_open;
-
- /* Create the open window */
- win_open = create_win_open();
- gtk_object_set_data( GTK_OBJECT(win_open), "entry", "entry_file" );
- gtk_widget_show( win_open );
- gdk_window_raise( win_open->window );
-}
-
-
-static void on_settings_darea_expose_event_callback( GtkWidget *widget, GdkEventExpose *event, gpointer data )
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(widget) );
- char label[1024];
-
- int i;
- uint8_t *rgba;
-
- GtkWidget *optionmenu_title = lookup_widget( hb_win_main, "optionmenu_title" );
- HBTitle *title;
-
- title = HBListItemAt( hb_status->titleList, gtk_option_menu_get_history( GTK_OPTION_MENU(optionmenu_title) ) );
- title->deinterlace = b_settings_deinterlace;
- title->outWidth = i_settings_width;
-
- title->topCrop = i_settings_crop_top;
- title->bottomCrop = i_settings_crop_bottom;
- title->leftCrop = i_settings_crop_left;
- title->rightCrop = i_settings_crop_right;
-
- rgba = HBGetPreview( hb_handle, title, i_settings_preview_picture );
-
- if( title->outWidth != i_settings_width ||
- title->topCrop != i_settings_crop_top ||
- title->bottomCrop != i_settings_crop_bottom ||
- title->leftCrop != i_settings_crop_left ||
- title->rightCrop != i_settings_crop_right )
- {
- i_settings_width = title->outWidth;
-
- i_settings_crop_top = title->topCrop;
- i_settings_crop_bottom = title->bottomCrop;
- i_settings_crop_left = title->leftCrop;
- i_settings_crop_right = title->rightCrop;
-
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_width")), i_settings_width );
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_top")), i_settings_crop_top );
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_bottom")), i_settings_crop_bottom );
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_left")), i_settings_crop_left );
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_right")), i_settings_crop_right );
- }
-
- sprintf( label, "Final size: %dx%d", title->outWidth, title->outHeight );
- gtk_label_set_text( GTK_LABEL(lookup_widget(win, "label_settings")), label );
-
- /* FIXME do that only under x86 */
- for( i = 0; i < (title->outWidthMax + 2)*(title->outHeightMax + 2); i++ )
- {
- const uint8_t r = rgba[4*i+2];
- const uint8_t g = rgba[4*i+1];
- const uint8_t b = rgba[4*i+0];
- const uint8_t a = rgba[4*i+3];
-
- rgba[4*i+0] = r;
- rgba[4*i+1] = g;
- rgba[4*i+2] = b;
- rgba[4*i+3] = a;
- }
- gdk_draw_rgb_32_image( widget->window, widget->style->fg_gc[GTK_STATE_NORMAL],
- 0, 0, title->outWidthMax + 2, title->outHeightMax + 2,
- GDK_RGB_DITHER_MAX,
- rgba,
- (title->outWidthMax+2) * 4 );
-
- free( rgba );
-}
-
-void on_spinbutton_width_value_changed( GtkSpinButton *spinbutton,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(spinbutton) );
-
- g_print( "on_spinbutton_width_value_changed\n" );
-
- i_settings_width = gtk_spin_button_get_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_width")) );
-
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
-
-}
-/*
- * FIXME use only one callback
- */
-void
-on_spinbutton_crop_top_value_changed (GtkSpinButton *spinbutton,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(spinbutton) );
-
- i_settings_crop_top = gtk_spin_button_get_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_top")) );
-
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
-}
-
-
-void
-on_spinbutton_crop_bottom_value_changed
- (GtkSpinButton *spinbutton,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(spinbutton) );
-
- i_settings_crop_bottom = gtk_spin_button_get_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_bottom")) );
-
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
-}
-
-
-void
-on_spinbutton_crop_left_value_changed (GtkSpinButton *spinbutton,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(spinbutton) );
-
- i_settings_crop_left = gtk_spin_button_get_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_left")) );
-
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
-}
-
-
-void
-on_spinbutton_crop_right_value_changed (GtkSpinButton *spinbutton,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(spinbutton) );
-
- i_settings_crop_right = gtk_spin_button_get_value( GTK_SPIN_BUTTON(lookup_widget(win, "spinbutton_crop_right")) );
-
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
-}
-
-
-void on_button_settings_clicked( GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *optionmenu_title = lookup_widget( hb_win_main, "optionmenu_title" );
- HBTitle *title;
-
- GtkWidget *settings = create_win_settings();
- GtkWidget *darea = lookup_widget( settings, "drawingarea" );
-
- title = HBListItemAt( hb_status->titleList, gtk_option_menu_get_history( GTK_OPTION_MENU(optionmenu_title) ) );
-
- i_settings_preview_picture = 0;
-
- gtk_widget_set_size_request( darea, title->outWidthMax + 2, title->outHeightMax + 2 );
-
- g_signal_connect (G_OBJECT(darea), "expose_event",
- G_CALLBACK (on_settings_darea_expose_event_callback), NULL);
-
- gtk_spin_button_set_value( GTK_SPIN_BUTTON(lookup_widget(settings, "spinbutton_width")), title->outWidth );
-
- gtk_widget_show( settings );
-}
-
-static void DisplayError( char *title, char *msg )
-{
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new( NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
- "<b>%s</b>\n\n%s", title, msg );
- gtk_label_set_use_markup( GTK_LABEL( GTK_MESSAGE_DIALOG(dialog)->label), TRUE );
- gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK );
- gtk_window_set_modal( GTK_WINDOW(dialog), TRUE );
- gtk_dialog_run( GTK_DIALOG(dialog) );
- gtk_widget_destroy( dialog );
-}
-
-void on_button_start_clicked( GtkButton *button,
- gpointer user_data)
-{
- int i;
-
- if( hb_status->i_state != HB_STATE_ENCODING )
- {
- GtkWidget *optionmenu_title = lookup_widget( hb_win_main, "optionmenu_title" );
- GtkWidget *widget;
- HBTitle *title = HBListItemAt( hb_status->titleList, gtk_option_menu_get_history( GTK_OPTION_MENU(optionmenu_title) ) );
-
- int i_ab;
-
- widget = lookup_widget( hb_win_main, "entry_file" );
- title->file = strdup( gtk_entry_get_text( GTK_ENTRY(widget) ) );
-
- if( title->file == NULL || *title->file == '\0' )
- {
- DisplayError( "Missing parameters", "You need to specify a file" );
- return;
- }
-
- widget = lookup_widget( hb_win_main, "checkbutton_2pass" );
- title->twoPass = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget) );
-
- title->deinterlace = b_settings_deinterlace;
-
- title->outWidth = i_settings_width;
-
- title->topCrop = i_settings_crop_top;
- title->bottomCrop = i_settings_crop_bottom;
- title->leftCrop = i_settings_crop_left;
- title->rightCrop = i_settings_crop_right;
-
- widget = lookup_widget( hb_win_main, "radiobutton_cbitrate" );
- if( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON( widget ) ) )
- {
- widget = lookup_widget( hb_win_main, "spinbutton_bitrate" );
- title->bitrate = gtk_spin_button_get_value( GTK_SPIN_BUTTON( widget ) );
- }
- else
- {
- int i_size;
- widget = lookup_widget( hb_win_main, "spinbutton_size" );
- i_size = gtk_spin_button_get_value( GTK_SPIN_BUTTON( widget ) );
-
- /* FIXME FIXME target size FIXME FIXME */
- title->bitrate = 1024;
- /* FIXME */
- }
-
- widget = lookup_widget( hb_win_main, "optionmenu_codec" );
- switch( gtk_option_menu_get_history( GTK_OPTION_MENU(widget) ) )
- {
- case 0:
- title->codec = HB_CODEC_FFMPEG;
- break;
- case 1:
- title->codec = HB_CODEC_XVID;
- break;
- case 2:
- title->codec = HB_CODEC_X264;
- break;
- }
-
- widget = lookup_widget( hb_win_main, "optionmenu_format" );
- switch( gtk_option_menu_get_history( GTK_OPTION_MENU(widget) ) )
- {
- case 0:
- {
- /* Auto detect */
- char *p = strrchr( title->file, '.' );
- if( p && !strcasecmp( p, ".avi" ) )
- {
- title->mux = HB_MUX_AVI;
- }
- else if( p && !strcasecmp( p, ".mp4" ) )
- {
- title->mux = HB_MUX_MP4;
- }
- else if( p && !strcasecmp( p, ".ogm" ) )
- {
- title->mux = HB_MUX_OGM;
- }
- else
- {
- title->mux = HB_MUX_AVI;
- }
- break;
- }
- case 1:
- title->mux = HB_MUX_AVI;
- break;
- case 2:
- title->mux = HB_MUX_MP4;
- break;
- case 3:
- title->mux = HB_MUX_OGM;
- break;
- }
-
- /* audio */
- widget = lookup_widget( hb_win_main, "optionmenu_bitrate" );
- switch( gtk_option_menu_get_history( GTK_OPTION_MENU(widget) ) )
- {
- case 0:
- i_ab = 64;
- break;
- case 1:
- i_ab = 92;
- break;
- case 2:
- i_ab = 128;
- break;
- case 3:
- i_ab = 160;
- break;
- case 4:
- i_ab = 192;
- break;
- case 5:
- i_ab = 256;
- break;
- case 6:
- default:
- i_ab = 320;
- break;
-
- }
-
- HBListInit( &title->ripAudioList );
- widget = lookup_widget( hb_win_main, "optionmenu_language" );
- if( ( i = gtk_option_menu_get_history( GTK_OPTION_MENU(widget) ) ) > 0 )
- {
- HBAudio *audio = HBListItemAt( title->audioList, i - 1 );
-
- audio->outBitrate = i_ab;
- if( title->mux == HB_MUX_AVI )
- {
- audio->outCodec = HB_CODEC_MP3;
- }
- else if( title->mux == HB_MUX_MP4 )
- {
- audio->outCodec = HB_CODEC_AAC;
- }
- else if( title->mux == HB_MUX_OGM )
- {
- audio->outCodec = HB_CODEC_VORBIS;
- }
- HBListAdd( title->ripAudioList, audio );
- }
-
- widget = lookup_widget( hb_win_main, "optionmenu_language2" );
- if( ( i = gtk_option_menu_get_history( GTK_OPTION_MENU(widget) ) ) > 0 )
- {
- HBAudio *audio = HBListItemAt( title->audioList, i - 1 );
-
- audio->outBitrate = i_ab;
- if( title->mux == HB_MUX_AVI )
- {
- audio->outCodec = HB_CODEC_MP3;
- }
- else if( title->mux == HB_MUX_MP4 )
- {
- audio->outCodec = HB_CODEC_AAC;
- }
- else if( title->mux == HB_MUX_OGM )
- {
- audio->outCodec = HB_CODEC_VORBIS;
- }
- HBListAdd( title->ripAudioList, audio );
- }
- HBStartRip( hb_handle, title );
- }
- else if( hb_status->i_state == HB_STATE_ENCODING )
- {
- HBStopRip( hb_handle );
- }
-}
-
-
-void on_entry_file_activate( GtkEntry *entry,
- gpointer user_data)
-{
-#if 0
- GtkWidget *widget = lookup_widget( hb_win_main, "button_start" );
- char *psz_file = gtk_entry_get_text( entry );
-
- if( psz_file && *psz_file )
- {
- gtk_widget_set_sensitive( widget, TRUE );
- }
- else
- {
- gtk_widget_set_sensitive( widget, FALSE );
- }
-#endif
-}
-
-
-static void SettingsUpdate( GtkWidget *win )
-{
- b_settings_deinterlace = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(win, "checkbutton_deinterlace")) );
-}
-
-gboolean on_win_settings_delete_event( GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET (widget) );
-
- SettingsUpdate( win );
- gtk_widget_destroy( win );
-
- return FALSE;
-}
-
-
-void on_button_ok_settings_clicked( GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(button) );
-
- SettingsUpdate( win );
-
- gtk_widget_destroy( win );
-}
-
-
-void on_button_settings_next_clicked( GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(button) );
-
- if( i_settings_preview_picture < 9 )
- {
- i_settings_preview_picture++;
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
- }
-
- if( i_settings_preview_picture == 9 )
- {
- gtk_widget_set_sensitive( lookup_widget(win, "button_settings_next"), FALSE );
- }
- if( i_settings_preview_picture > 0 )
- {
- gtk_widget_set_sensitive( lookup_widget(win, "button_settings_previous"), TRUE );
- }
-}
-
-
-void on_button_settings_previous_clicked( GtkButton *button,
- gpointer user_data)
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(button) );
-
- if( i_settings_preview_picture > 0 )
- {
- i_settings_preview_picture--;
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
- }
-
- if( i_settings_preview_picture < 9 )
- {
- gtk_widget_set_sensitive( lookup_widget(win, "button_settings_next"), TRUE );
- }
- if( i_settings_preview_picture == 0 )
- {
- gtk_widget_set_sensitive( lookup_widget(win, "button_settings_previous"), FALSE );
- }
-}
-
-
-void on_checkbutton_deinterlace_toggled( GtkToggleButton *togglebutton,
- gpointer user_data )
-{
- GtkWidget *win = gtk_widget_get_toplevel( GTK_WIDGET(togglebutton) );
- b_settings_deinterlace = gtk_toggle_button_get_active( togglebutton );
- gtk_widget_queue_draw( lookup_widget(win, "drawingarea" ) );
-}
-
-