diff options
author | sr55 <[email protected]> | 2007-04-09 18:10:01 +0000 |
---|---|---|
committer | sr55 <[email protected]> | 2007-04-09 18:10:01 +0000 |
commit | 1397a47e08cc77ad942f5d5b791238a0d3092d57 (patch) | |
tree | 67c8945f9e38f71fa566ced6f199c58d2f7f5b1c | |
parent | 458400054ca8bbbed3ebe2e5a3c92310790def16 (diff) |
gtk2 and wx gui's are no longer used. Removed to save bandwidth.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@490 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r-- | gtk2/callbacks.c | 623 | ||||
-rw-r--r-- | gtk2/callbacks.h | 75 | ||||
-rw-r--r-- | gtk2/gtk2hb.glade | 1863 | ||||
-rw-r--r-- | gtk2/interface.c | 984 | ||||
-rw-r--r-- | gtk2/interface.h | 7 | ||||
-rw-r--r-- | gtk2/main.c | 408 | ||||
-rw-r--r-- | gtk2/status.h | 33 | ||||
-rw-r--r-- | gtk2/support.c | 144 | ||||
-rw-r--r-- | gtk2/support.h | 44 | ||||
-rw-r--r-- | wx/hb32x32.xpm | 295 | ||||
-rw-r--r-- | wx/hbWizard.cpp | 1259 | ||||
-rw-r--r-- | wx/hbWizard.h | 43 | ||||
-rw-r--r-- | wx/wxHB.cpp | 684 | ||||
-rw-r--r-- | wx/wxHB.h | 170 |
14 files changed, 0 insertions, 6632 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" ) ); -} - - diff --git a/gtk2/callbacks.h b/gtk2/callbacks.h deleted file mode 100644 index 7040f3567..000000000 --- a/gtk2/callbacks.h +++ /dev/null @@ -1,75 +0,0 @@ -#include <gtk/gtk.h> - -extern GtkWidget *hb_win_main; -extern HBHandle *hb_handle; -extern HBStatus *hb_status; - -gboolean on_win_main_delete_event( GtkWidget *widget, - GdkEvent *event, - gpointer user_data); - -gboolean on_win_open_delete_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data); - - -void on_button_browse_device (GtkButton *button, - gpointer user_data); - -void on_ok_button1_clicked (GtkButton *button, - gpointer user_data); - -void on_cancel_button1_clicked (GtkButton *button, - gpointer user_data); - -void on_entry_device_activate (GtkEntry *entry, - gpointer user_data); - -void on_optionmenu_title_changed (GtkOptionMenu *optionmenu, - gpointer user_data); - -void on_button_browse_file_clicked (GtkButton *button, - gpointer user_data); - -void on_button_settings_clicked (GtkButton *button, - gpointer user_data); - -void on_button_start_clicked (GtkButton *button, - gpointer user_data); - -void on_entry_file_activate (GtkEntry *entry, - gpointer user_data); - -gboolean on_win_settings_delete_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data); - -void on_button_ok_settings_clicked (GtkButton *button, - gpointer user_data); - -void on_button_settings_next_clicked (GtkButton *button, - gpointer user_data); - -void on_button_settings_previous_clicked (GtkButton *button, - gpointer user_data); - -void on_checkbutton_deinterlace_toggled (GtkToggleButton *togglebutton, - gpointer user_data); -void on_spinbutton_width_value_changed( GtkSpinButton *spinbutton, - gpointer user_data); - -void on_spinbutton_crop_top_value_changed (GtkSpinButton *spinbutton, - gpointer user_data); - -void on_spinbutton_crop_bottom_value_changed - (GtkSpinButton *spinbutton, - gpointer user_data); - -void -on_spinbutton_crop_left_value_changed (GtkSpinButton *spinbutton, - gpointer user_data); - -void -on_spinbutton_crop_right_value_changed (GtkSpinButton *spinbutton, - gpointer user_data); - diff --git a/gtk2/gtk2hb.glade b/gtk2/gtk2hb.glade deleted file mode 100644 index 50b3e81cd..000000000 --- a/gtk2/gtk2hb.glade +++ /dev/null @@ -1,1863 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> - -<widget class="GtkWindow" id="win_main"> - <property name="visible">True</property> - <property name="title" translatable="yes">HandBrake</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <signal name="delete_event" handler="on_win_main_delete_event" last_modification_time="Fri, 05 Dec 2003 23:54:16 GMT"/> - - <child> - <widget class="GtkVBox" id="vbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkFrame" id="frame_dvd"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkVBox" id="vbox11"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkAlignment" id="alignment13"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">1</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label3"> - <property name="visible">True</property> - <property name="label" translatable="yes">Device </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkCombo" id="combo1"> - <property name="visible">True</property> - <property name="value_in_list">False</property> - <property name="allow_empty">True</property> - <property name="case_sensitive">False</property> - <property name="enable_arrow_keys">True</property> - <property name="enable_arrows_always">False</property> - - <child internal-child="entry"> - <widget class="GtkEntry" id="entry_device"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <signal name="activate" handler="on_entry_device_activate" last_modification_time="Sat, 06 Dec 2003 02:59:59 GMT"/> - </widget> - </child> - - <child internal-child="list"> - <widget class="GtkList" id="combo-list1"> - <property name="visible">True</property> - <property name="selection_mode">GTK_SELECTION_BROWSE</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="button_browse_device"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_browse_device" last_modification_time="Sat, 06 Dec 2003 02:19:48 GMT"/> - - <child> - <widget class="GtkAlignment" id="alignment1"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - - <child> - <widget class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="stock">gtk-open</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label4"> - <property name="visible">True</property> - <property name="label" translatable="yes">Browse</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="label" translatable="yes">DVD</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox_parameters"> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkFrame" id="frame_video"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkHBox" id="hbox18"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkAlignment" id="alignment7"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkVBox" id="vbox7"> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label13"> - <property name="visible">True</property> - <property name="label" translatable="yes">Title</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label12"> - <property name="visible">True</property> - <property name="label" translatable="yes">Codec</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkRadioButton" id="radiobutton_cbitrate"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Custom bitrate</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="active">True</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkRadioButton" id="radiobutton_tsize"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Target size</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton_cbitrate</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkCheckButton" id="checkbutton_2pass"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">2-pass encoding</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="active">True</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment8"> - <property name="visible">True</property> - <property name="xalign">1</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkVBox" id="vbox8"> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkOptionMenu" id="optionmenu_title"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">-1</property> - <signal name="changed" handler="on_optionmenu_title_changed" last_modification_time="Sat, 06 Dec 2003 04:23:30 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkOptionMenu" id="optionmenu_codec"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu_codec"> - - <child> - <widget class="GtkMenuItem" id="mpeg-4_(ffmpeg)1"> - <property name="visible">True</property> - <property name="label" translatable="yes">MPEG-4 (FFmpeg)</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="mpeg-4_(xvid)1"> - <property name="visible">True</property> - <property name="label" translatable="yes">MPEG-4 (XviD)</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="h264_(x264)1"> - <property name="visible">True</property> - <property name="label" translatable="yes">H264 (x264)</property> - <property name="use_underline">True</property> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkSpinButton" id="spinbutton_bitrate"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">1024 100 5000 1 10 10</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkSpinButton" id="spinbutton_size"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">700 0 2000 1 10 10</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="button_settings"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Crop & Resize..</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_settings_clicked" last_modification_time="Sat, 06 Dec 2003 05:00:14 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label6"> - <property name="visible">True</property> - <property name="label" translatable="yes">Video</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkFrame" id="frame_audio"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkHBox" id="hbox19"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkAlignment" id="alignment9"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkVBox" id="vbox9"> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label14"> - <property name="visible">True</property> - <property name="label" translatable="yes">Language</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label15"> - <property name="visible">True</property> - <property name="label" translatable="yes">Secondary language</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label16"> - <property name="visible">True</property> - <property name="label" translatable="yes">Bitrate</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment10"> - <property name="visible">True</property> - <property name="xalign">1</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkVBox" id="vbox10"> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkOptionMenu" id="optionmenu_language"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">-1</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkOptionMenu" id="optionmenu_language2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">-1</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkOptionMenu" id="optionmenu_bitrate"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu1"> - - <child> - <widget class="GtkMenuItem" id="2"> - <property name="visible">True</property> - <property name="label" translatable="yes">64</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="4"> - <property name="visible">True</property> - <property name="label" translatable="yes">96</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="7"> - <property name="visible">True</property> - <property name="label" translatable="yes">128</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="10"> - <property name="visible">True</property> - <property name="label" translatable="yes">160</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="11"> - <property name="visible">True</property> - <property name="label" translatable="yes">192</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="12"> - <property name="visible">True</property> - <property name="label" translatable="yes">256</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="13"> - <property name="visible">True</property> - <property name="label" translatable="yes">320</property> - <property name="use_underline">True</property> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label8"> - <property name="visible">True</property> - <property name="label" translatable="yes">Audio</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkFrame" id="frame_output"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkVBox" id="vbox2"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkHBox" id="hbox20"> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkAlignment" id="alignment11"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkLabel" id="label17"> - <property name="visible">True</property> - <property name="label" translatable="yes">Format</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkAlignment" id="alignment12"> - <property name="visible">True</property> - <property name="xalign">1</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - - <child> - <widget class="GtkOptionMenu" id="optionmenu_format"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="history">0</property> - - <child> - <widget class="GtkMenu" id="menu2"> - - <child> - <widget class="GtkMenuItem" id="auto1"> - <property name="visible">True</property> - <property name="label" translatable="yes">Auto</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="avi1"> - <property name="visible">True</property> - <property name="label" translatable="yes">AVI</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="mp1"> - <property name="visible">True</property> - <property name="label" translatable="yes">MP4</property> - <property name="use_underline">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="ogm1"> - <property name="visible">True</property> - <property name="label" translatable="yes">OGM</property> - <property name="use_underline">True</property> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox6"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label18"> - <property name="visible">True</property> - <property name="label" translatable="yes">File </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkCombo" id="combo2"> - <property name="visible">True</property> - <property name="value_in_list">False</property> - <property name="allow_empty">True</property> - <property name="case_sensitive">False</property> - <property name="enable_arrow_keys">True</property> - <property name="enable_arrows_always">False</property> - - <child internal-child="entry"> - <widget class="GtkEntry" id="entry_file"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <signal name="activate" handler="on_entry_file_activate" last_modification_time="Sat, 06 Dec 2003 05:04:29 GMT"/> - </widget> - </child> - - <child internal-child="list"> - <widget class="GtkList" id="list1"> - <property name="visible">True</property> - <property name="selection_mode">GTK_SELECTION_BROWSE</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="button_browse_file"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_browse_file_clicked" last_modification_time="Sat, 06 Dec 2003 04:52:12 GMT"/> - - <child> - <widget class="GtkAlignment" id="alignment2"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - - <child> - <widget class="GtkHBox" id="hbox7"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkImage" id="image4"> - <property name="visible">True</property> - <property name="stock">gtk-open</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label19"> - <property name="visible">True</property> - <property name="label" translatable="yes">Browse</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label9"> - <property name="visible">True</property> - <property name="label" translatable="yes">Output</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">6</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHButtonBox" id="hbuttonbox1"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkButton" id="button_start"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_start_clicked" last_modification_time="Sat, 06 Dec 2003 04:59:15 GMT"/> - - <child> - <widget class="GtkAlignment" id="alignment3"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - - <child> - <widget class="GtkHBox" id="hbox9"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkImage" id="button_start_image"> - <property name="visible">True</property> - <property name="stock">gtk-apply</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="button_start_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">Start</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">4</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox10"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkProgressBar" id="progressbar"> - <property name="visible">True</property> - <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property> - <property name="fraction">0</property> - <property name="pulse_step">0.1</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkStatusbar" id="statusbar"> - <property name="visible">True</property> - <property name="has_resize_grip">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> -</widget> - -<widget class="GtkFileSelection" id="win_open"> - <property name="border_width">10</property> - <property name="visible">True</property> - <property name="title" translatable="yes">Select File</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">True</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="show_fileops">True</property> - <signal name="delete_event" handler="on_win_open_delete_event" last_modification_time="Sat, 06 Dec 2003 00:17:21 GMT"/> - - <child internal-child="cancel_button"> - <widget class="GtkButton" id="cancel_button1"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_cancel_button1_clicked" last_modification_time="Sat, 06 Dec 2003 00:17:46 GMT"/> - </widget> - </child> - - <child internal-child="ok_button"> - <widget class="GtkButton" id="ok_button1"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_ok_button1_clicked" last_modification_time="Sat, 06 Dec 2003 00:17:56 GMT"/> - </widget> - </child> -</widget> - -<widget class="GtkWindow" id="win_settings"> - <property name="visible">True</property> - <property name="title" translatable="yes">Picture settings</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">True</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <signal name="delete_event" handler="on_win_settings_delete_event" last_modification_time="Sat, 06 Dec 2003 19:07:23 GMT"/> - - <child> - <widget class="GtkVBox" id="vbox4"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkDrawingArea" id="drawingarea"> - <property name="visible">True</property> - </widget> - <packing> - <property name="padding">10</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkTable" id="table5"> - <property name="visible">True</property> - <property name="n_rows">1</property> - <property name="n_columns">3</property> - <property name="homogeneous">False</property> - <property name="row_spacing">0</property> - <property name="column_spacing">0</property> - - <child> - <widget class="GtkVBox" id="vbox5"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkHButtonBox" id="hbuttonbox2"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkButton" id="button_settings_previous"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_settings_previous_clicked" last_modification_time="Sat, 06 Dec 2003 20:58:51 GMT"/> - - <child> - <widget class="GtkAlignment" id="alignment5"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - - <child> - <widget class="GtkHBox" id="hbox12"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkImage" id="image7"> - <property name="visible">True</property> - <property name="stock">gtk-go-back</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label22"> - <property name="visible">True</property> - <property name="label" translatable="yes">Previous</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkButton" id="button_settings_next"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_settings_next_clicked" last_modification_time="Sat, 06 Dec 2003 20:51:27 GMT"/> - - <child> - <widget class="GtkAlignment" id="alignment6"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - - <child> - <widget class="GtkHBox" id="hbox13"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkImage" id="image8"> - <property name="visible">True</property> - <property name="stock">gtk-go-forward</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label23"> - <property name="visible">True</property> - <property name="label" translatable="yes">Next</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <placeholder/> - </child> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox6"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkHBox" id="hbox17"> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkTable" id="table8"> - <property name="visible">True</property> - <property name="n_rows">3</property> - <property name="n_columns">3</property> - <property name="homogeneous">False</property> - <property name="row_spacing">0</property> - <property name="column_spacing">0</property> - - <child> - <widget class="GtkSpinButton" id="spinbutton_width"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">True</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">0 0 4096 16 16 10</property> - <signal name="value_changed" handler="on_spinbutton_width_value_changed" last_modification_time="Sun, 07 Dec 2003 23:24:59 GMT"/> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkSpinButton" id="spinbutton_crop_top"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">0 0 4096 2 10 10</property> - <signal name="value_changed" handler="on_spinbutton_crop_top_value_changed" last_modification_time="Sun, 07 Dec 2003 23:42:52 GMT"/> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label26"> - <property name="visible">True</property> - <property name="label" translatable="yes">Bottom crop</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label25"> - <property name="visible">True</property> - <property name="label" translatable="yes">Top crop</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label24"> - <property name="visible">True</property> - <property name="label" translatable="yes">Picture width</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkSpinButton" id="spinbutton_crop_bottom"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">0 0 4096 2 10 10</property> - <signal name="value_changed" handler="on_spinbutton_crop_bottom_value_changed" last_modification_time="Sun, 07 Dec 2003 23:43:06 GMT"/> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="y_options"></property> - </packing> - </child> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkTable" id="table9"> - <property name="visible">True</property> - <property name="n_rows">3</property> - <property name="n_columns">3</property> - <property name="homogeneous">False</property> - <property name="row_spacing">0</property> - <property name="column_spacing">0</property> - - <child> - <widget class="GtkSpinButton" id="spinbutton_crop_left"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">0 0 4096 2 10 10</property> - <signal name="value_changed" handler="on_spinbutton_crop_left_value_changed" last_modification_time="Sun, 07 Dec 2003 23:43:30 GMT"/> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label28"> - <property name="visible">True</property> - <property name="label" translatable="yes">Right crop</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label27"> - <property name="visible">True</property> - <property name="label" translatable="yes">Left crop</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkSpinButton" id="spinbutton_crop_right"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="climb_rate">1</property> - <property name="digits">0</property> - <property name="numeric">False</property> - <property name="update_policy">GTK_UPDATE_ALWAYS</property> - <property name="snap_to_ticks">False</property> - <property name="wrap">False</property> - <property name="adjustment">0 0 4096 2 10 10</property> - <signal name="value_changed" handler="on_spinbutton_crop_right_value_changed" last_modification_time="Sun, 07 Dec 2003 23:43:42 GMT"/> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkCheckButton" id="checkbutton_deinterlace"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">deinterlace</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_checkbutton_deinterlace_toggled" last_modification_time="Sat, 06 Dec 2003 21:12:08 GMT"/> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="y_options">fill</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHSeparator" id="hseparator1"> - <property name="visible">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkTable" id="table4"> - <property name="visible">True</property> - <property name="n_rows">1</property> - <property name="n_columns">2</property> - <property name="homogeneous">False</property> - <property name="row_spacing">0</property> - <property name="column_spacing">0</property> - - <child> - <widget class="GtkButton" id="button1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <signal name="clicked" handler="on_button_ok_settings_clicked" last_modification_time="Sat, 06 Dec 2003 19:07:02 GMT"/> - - <child> - <widget class="GtkAlignment" id="alignment4"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">0</property> - <property name="yscale">0</property> - - <child> - <widget class="GtkHBox" id="hbox11"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkImage" id="image5"> - <property name="visible">True</property> - <property name="stock">gtk-apply</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label20"> - <property name="visible">True</property> - <property name="label" translatable="yes">Ok</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label_settings"> - <property name="visible">True</property> - <property name="label" translatable="yes">label21</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="y_options"></property> - </packing> - </child> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/gtk2/interface.c b/gtk2/interface.c deleted file mode 100644 index 826889c31..000000000 --- a/gtk2/interface.c +++ /dev/null @@ -1,984 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> -#include <stdio.h> - -#include <gdk/gdkkeysyms.h> -#include <gtk/gtk.h> - -#include "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) - -#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ - g_object_set_data (G_OBJECT (component), name, widget) - -GtkWidget* -create_win_main (void) -{ - GtkWidget *win_main; - GtkWidget *vbox1; - GtkWidget *frame_dvd; - GtkWidget *vbox11; - GtkWidget *alignment13; - GtkWidget *hbox1; - GtkWidget *label3; - GtkWidget *combo1; - GtkWidget *entry_device; - GtkWidget *button_browse_device; - GtkWidget *alignment1; - GtkWidget *hbox2; - GtkWidget *image1; - GtkWidget *label4; - GtkWidget *label1; - GtkWidget *vbox_parameters; - GtkWidget *frame_video; - GtkWidget *hbox18; - GtkWidget *alignment7; - GtkWidget *vbox7; - GtkWidget *label13; - GtkWidget *label12; - GtkWidget *radiobutton_cbitrate; - GSList *radiobutton_cbitrate_group = NULL; - GtkWidget *radiobutton_tsize; - GtkWidget *checkbutton_2pass; - GtkWidget *alignment8; - GtkWidget *vbox8; - GtkWidget *optionmenu_title; - GtkWidget *optionmenu_codec; - GtkWidget *menu_codec; - GtkWidget *mpeg_4__ffmpeg_1; - GtkWidget *mpeg_4__xvid_1; - GtkWidget *h264__x264_1; - GtkObject *spinbutton_bitrate_adj; - GtkWidget *spinbutton_bitrate; - GtkObject *spinbutton_size_adj; - GtkWidget *spinbutton_size; - GtkWidget *button_settings; - GtkWidget *label6; - GtkWidget *frame_audio; - GtkWidget *hbox19; - GtkWidget *alignment9; - GtkWidget *vbox9; - GtkWidget *label14; - GtkWidget *label15; - GtkWidget *label16; - GtkWidget *alignment10; - GtkWidget *vbox10; - GtkWidget *optionmenu_language; - GtkWidget *optionmenu_language2; - GtkWidget *optionmenu_bitrate; - GtkWidget *menu1; - GtkWidget *_2; - GtkWidget *_4; - GtkWidget *_7; - GtkWidget *_10; - GtkWidget *_11; - GtkWidget *_12; - GtkWidget *_13; - GtkWidget *label8; - GtkWidget *frame_output; - GtkWidget *vbox2; - GtkWidget *hbox20; - GtkWidget *alignment11; - GtkWidget *label17; - GtkWidget *alignment12; - GtkWidget *optionmenu_format; - GtkWidget *menu2; - GtkWidget *auto1; - GtkWidget *avi1; - GtkWidget *mp1; - GtkWidget *ogm1; - GtkWidget *hbox6; - GtkWidget *label18; - GtkWidget *combo2; - GtkWidget *entry_file; - GtkWidget *button_browse_file; - GtkWidget *alignment2; - GtkWidget *hbox7; - GtkWidget *image4; - GtkWidget *label19; - GtkWidget *label9; - GtkWidget *hbuttonbox1; - GtkWidget *button_start; - GtkWidget *alignment3; - GtkWidget *hbox9; - GtkWidget *button_start_image; - GtkWidget *button_start_label; - GtkWidget *hbox10; - GtkWidget *progressbar; - GtkWidget *statusbar; - - win_main = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (win_main), "HandBrake"); - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - gtk_container_add (GTK_CONTAINER (win_main), vbox1); - - frame_dvd = gtk_frame_new (NULL); - gtk_widget_show (frame_dvd); - gtk_box_pack_start (GTK_BOX (vbox1), frame_dvd, TRUE, TRUE, 0); - - vbox11 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox11); - gtk_container_add (GTK_CONTAINER (frame_dvd), vbox11); - gtk_container_set_border_width (GTK_CONTAINER (vbox11), 5); - - alignment13 = gtk_alignment_new (0, 1, 1, 1); - gtk_widget_show (alignment13); - gtk_box_pack_start (GTK_BOX (vbox11), alignment13, TRUE, FALSE, 0); - - hbox1 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox1); - gtk_container_add (GTK_CONTAINER (alignment13), hbox1); - - label3 = gtk_label_new ("Device "); - gtk_widget_show (label3); - gtk_box_pack_start (GTK_BOX (hbox1), label3, FALSE, TRUE, 0); - - combo1 = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (combo1)->popwin), - "GladeParentKey", combo1); - gtk_widget_show (combo1); - gtk_box_pack_start (GTK_BOX (hbox1), combo1, TRUE, TRUE, 0); - - entry_device = GTK_COMBO (combo1)->entry; - gtk_widget_show (entry_device); - - button_browse_device = gtk_button_new (); - gtk_widget_show (button_browse_device); - gtk_box_pack_start (GTK_BOX (hbox1), button_browse_device, FALSE, FALSE, 0); - GTK_WIDGET_SET_FLAGS (button_browse_device, GTK_CAN_DEFAULT); - - alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_widget_show (alignment1); - gtk_container_add (GTK_CONTAINER (button_browse_device), alignment1); - - hbox2 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox2); - gtk_container_add (GTK_CONTAINER (alignment1), hbox2); - - image1 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); - gtk_widget_show (image1); - gtk_box_pack_start (GTK_BOX (hbox2), image1, FALSE, FALSE, 0); - - label4 = gtk_label_new_with_mnemonic ("Browse"); - gtk_widget_show (label4); - gtk_box_pack_start (GTK_BOX (hbox2), label4, FALSE, FALSE, 0); - - label1 = gtk_label_new ("DVD"); - gtk_widget_show (label1); - gtk_frame_set_label_widget (GTK_FRAME (frame_dvd), label1); - - vbox_parameters = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (vbox1), vbox_parameters, FALSE, TRUE, 0); - - frame_video = gtk_frame_new (NULL); - gtk_widget_show (frame_video); - gtk_box_pack_start (GTK_BOX (vbox_parameters), frame_video, FALSE, TRUE, 0); - - hbox18 = gtk_hbox_new (TRUE, 0); - gtk_widget_show (hbox18); - gtk_container_add (GTK_CONTAINER (frame_video), hbox18); - gtk_container_set_border_width (GTK_CONTAINER (hbox18), 5); - - alignment7 = gtk_alignment_new (0, 0.5, 1, 1); - gtk_widget_show (alignment7); - gtk_box_pack_start (GTK_BOX (hbox18), alignment7, TRUE, TRUE, 0); - - vbox7 = gtk_vbox_new (TRUE, 0); - gtk_widget_show (vbox7); - gtk_container_add (GTK_CONTAINER (alignment7), vbox7); - - label13 = gtk_label_new ("Title"); - gtk_widget_show (label13); - gtk_box_pack_start (GTK_BOX (vbox7), label13, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label13), 0, 0.5); - - label12 = gtk_label_new ("Codec"); - gtk_widget_show (label12); - gtk_box_pack_start (GTK_BOX (vbox7), label12, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label12), 0, 0.5); - - radiobutton_cbitrate = gtk_radio_button_new_with_mnemonic (NULL, "Custom bitrate"); - gtk_widget_show (radiobutton_cbitrate); - gtk_box_pack_start (GTK_BOX (vbox7), radiobutton_cbitrate, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_cbitrate), radiobutton_cbitrate_group); - radiobutton_cbitrate_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_cbitrate)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton_cbitrate), TRUE); - - radiobutton_tsize = gtk_radio_button_new_with_mnemonic (NULL, "Target size"); - gtk_widget_show (radiobutton_tsize); - gtk_box_pack_start (GTK_BOX (vbox7), radiobutton_tsize, FALSE, FALSE, 0); - gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_tsize), radiobutton_cbitrate_group); - radiobutton_cbitrate_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_tsize)); - - checkbutton_2pass = gtk_check_button_new_with_mnemonic ("2-pass encoding"); - gtk_widget_show (checkbutton_2pass); - gtk_box_pack_start (GTK_BOX (vbox7), checkbutton_2pass, FALSE, FALSE, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton_2pass), TRUE); - - alignment8 = gtk_alignment_new (1, 0.5, 1, 1); - gtk_widget_show (alignment8); - gtk_box_pack_start (GTK_BOX (hbox18), alignment8, TRUE, TRUE, 0); - - vbox8 = gtk_vbox_new (TRUE, 0); - gtk_widget_show (vbox8); - gtk_container_add (GTK_CONTAINER (alignment8), vbox8); - - optionmenu_title = gtk_option_menu_new (); - gtk_widget_show (optionmenu_title); - gtk_box_pack_start (GTK_BOX (vbox8), optionmenu_title, FALSE, FALSE, 0); - - optionmenu_codec = gtk_option_menu_new (); - gtk_widget_show (optionmenu_codec); - gtk_box_pack_start (GTK_BOX (vbox8), optionmenu_codec, FALSE, FALSE, 0); - - menu_codec = gtk_menu_new (); - - mpeg_4__ffmpeg_1 = gtk_menu_item_new_with_mnemonic ("MPEG-4 (FFmpeg)"); - gtk_widget_show (mpeg_4__ffmpeg_1); - gtk_container_add (GTK_CONTAINER (menu_codec), mpeg_4__ffmpeg_1); - - mpeg_4__xvid_1 = gtk_menu_item_new_with_mnemonic ("MPEG-4 (XviD)"); - gtk_widget_show (mpeg_4__xvid_1); - gtk_container_add (GTK_CONTAINER (menu_codec), mpeg_4__xvid_1); - - h264__x264_1 = gtk_menu_item_new_with_mnemonic ("H264 (x264)"); - gtk_widget_show (h264__x264_1); - gtk_container_add (GTK_CONTAINER (menu_codec), h264__x264_1); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu_codec), menu_codec); - - spinbutton_bitrate_adj = gtk_adjustment_new (1024, 100, 5000, 1, 10, 10); - spinbutton_bitrate = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_bitrate_adj), 1, 0); - gtk_widget_show (spinbutton_bitrate); - gtk_box_pack_start (GTK_BOX (vbox8), spinbutton_bitrate, FALSE, FALSE, 0); - - spinbutton_size_adj = gtk_adjustment_new (700, 0, 2000, 1, 10, 10); - spinbutton_size = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_size_adj), 1, 0); - gtk_widget_show (spinbutton_size); - gtk_box_pack_start (GTK_BOX (vbox8), spinbutton_size, FALSE, FALSE, 0); - - button_settings = gtk_button_new_with_mnemonic ("Crop & Resize.."); - gtk_widget_show (button_settings); - gtk_box_pack_start (GTK_BOX (vbox8), button_settings, FALSE, FALSE, 0); - - label6 = gtk_label_new ("Video"); - gtk_widget_show (label6); - gtk_frame_set_label_widget (GTK_FRAME (frame_video), label6); - - frame_audio = gtk_frame_new (NULL); - gtk_widget_show (frame_audio); - gtk_box_pack_start (GTK_BOX (vbox_parameters), frame_audio, FALSE, TRUE, 0); - - hbox19 = gtk_hbox_new (TRUE, 0); - gtk_widget_show (hbox19); - gtk_container_add (GTK_CONTAINER (frame_audio), hbox19); - gtk_container_set_border_width (GTK_CONTAINER (hbox19), 5); - - alignment9 = gtk_alignment_new (0, 0.5, 1, 1); - gtk_widget_show (alignment9); - gtk_box_pack_start (GTK_BOX (hbox19), alignment9, TRUE, TRUE, 0); - - vbox9 = gtk_vbox_new (TRUE, 0); - gtk_widget_show (vbox9); - gtk_container_add (GTK_CONTAINER (alignment9), vbox9); - - label14 = gtk_label_new ("Language"); - gtk_widget_show (label14); - gtk_box_pack_start (GTK_BOX (vbox9), label14, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label14), 0, 0.5); - - label15 = gtk_label_new ("Secondary language"); - gtk_widget_show (label15); - gtk_box_pack_start (GTK_BOX (vbox9), label15, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label15), 0, 0.5); - - label16 = gtk_label_new ("Bitrate"); - gtk_widget_show (label16); - gtk_box_pack_start (GTK_BOX (vbox9), label16, FALSE, FALSE, 0); - gtk_misc_set_alignment (GTK_MISC (label16), 0, 0.5); - - alignment10 = gtk_alignment_new (1, 0.5, 1, 1); - gtk_widget_show (alignment10); - gtk_box_pack_start (GTK_BOX (hbox19), alignment10, TRUE, TRUE, 0); - - vbox10 = gtk_vbox_new (TRUE, 0); - gtk_widget_show (vbox10); - gtk_container_add (GTK_CONTAINER (alignment10), vbox10); - - optionmenu_language = gtk_option_menu_new (); - gtk_widget_show (optionmenu_language); - gtk_box_pack_start (GTK_BOX (vbox10), optionmenu_language, FALSE, FALSE, 0); - - optionmenu_language2 = gtk_option_menu_new (); - gtk_widget_show (optionmenu_language2); - gtk_box_pack_start (GTK_BOX (vbox10), optionmenu_language2, FALSE, FALSE, 0); - - optionmenu_bitrate = gtk_option_menu_new (); - gtk_widget_show (optionmenu_bitrate); - gtk_box_pack_start (GTK_BOX (vbox10), optionmenu_bitrate, FALSE, FALSE, 0); - - menu1 = gtk_menu_new (); - - _2 = gtk_menu_item_new_with_mnemonic ("64"); - gtk_widget_show (_2); - gtk_container_add (GTK_CONTAINER (menu1), _2); - - _4 = gtk_menu_item_new_with_mnemonic ("96"); - gtk_widget_show (_4); - gtk_container_add (GTK_CONTAINER (menu1), _4); - - _7 = gtk_menu_item_new_with_mnemonic ("128"); - gtk_widget_show (_7); - gtk_container_add (GTK_CONTAINER (menu1), _7); - - _10 = gtk_menu_item_new_with_mnemonic ("160"); - gtk_widget_show (_10); - gtk_container_add (GTK_CONTAINER (menu1), _10); - - _11 = gtk_menu_item_new_with_mnemonic ("192"); - gtk_widget_show (_11); - gtk_container_add (GTK_CONTAINER (menu1), _11); - - _12 = gtk_menu_item_new_with_mnemonic ("256"); - gtk_widget_show (_12); - gtk_container_add (GTK_CONTAINER (menu1), _12); - - _13 = gtk_menu_item_new_with_mnemonic ("320"); - gtk_widget_show (_13); - gtk_container_add (GTK_CONTAINER (menu1), _13); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu_bitrate), menu1); - - label8 = gtk_label_new ("Audio"); - gtk_widget_show (label8); - gtk_frame_set_label_widget (GTK_FRAME (frame_audio), label8); - - frame_output = gtk_frame_new (NULL); - gtk_widget_show (frame_output); - gtk_box_pack_start (GTK_BOX (vbox_parameters), frame_output, FALSE, TRUE, 6); - - vbox2 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox2); - gtk_container_add (GTK_CONTAINER (frame_output), vbox2); - gtk_container_set_border_width (GTK_CONTAINER (vbox2), 5); - - hbox20 = gtk_hbox_new (TRUE, 0); - gtk_widget_show (hbox20); - gtk_box_pack_start (GTK_BOX (vbox2), hbox20, TRUE, TRUE, 0); - - alignment11 = gtk_alignment_new (0, 0.5, 1, 1); - gtk_widget_show (alignment11); - gtk_box_pack_start (GTK_BOX (hbox20), alignment11, TRUE, TRUE, 0); - - label17 = gtk_label_new ("Format"); - gtk_widget_show (label17); - gtk_container_add (GTK_CONTAINER (alignment11), label17); - gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5); - - alignment12 = gtk_alignment_new (1, 0.5, 1, 1); - gtk_widget_show (alignment12); - gtk_box_pack_start (GTK_BOX (hbox20), alignment12, TRUE, TRUE, 0); - - optionmenu_format = gtk_option_menu_new (); - gtk_widget_show (optionmenu_format); - gtk_container_add (GTK_CONTAINER (alignment12), optionmenu_format); - - menu2 = gtk_menu_new (); - - auto1 = gtk_menu_item_new_with_mnemonic ("Auto"); - gtk_widget_show (auto1); - gtk_container_add (GTK_CONTAINER (menu2), auto1); - - avi1 = gtk_menu_item_new_with_mnemonic ("AVI"); - gtk_widget_show (avi1); - gtk_container_add (GTK_CONTAINER (menu2), avi1); - - mp1 = gtk_menu_item_new_with_mnemonic ("MP4"); - gtk_widget_show (mp1); - gtk_container_add (GTK_CONTAINER (menu2), mp1); - - ogm1 = gtk_menu_item_new_with_mnemonic ("OGM"); - gtk_widget_show (ogm1); - gtk_container_add (GTK_CONTAINER (menu2), ogm1); - - gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu_format), menu2); - - hbox6 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox6); - gtk_box_pack_start (GTK_BOX (vbox2), hbox6, TRUE, TRUE, 0); - - label18 = gtk_label_new ("File "); - gtk_widget_show (label18); - gtk_box_pack_start (GTK_BOX (hbox6), label18, FALSE, TRUE, 0); - - combo2 = gtk_combo_new (); - g_object_set_data (G_OBJECT (GTK_COMBO (combo2)->popwin), - "GladeParentKey", combo2); - gtk_widget_show (combo2); - gtk_box_pack_start (GTK_BOX (hbox6), combo2, TRUE, TRUE, 0); - - entry_file = GTK_COMBO (combo2)->entry; - gtk_widget_show (entry_file); - - button_browse_file = gtk_button_new (); - gtk_widget_show (button_browse_file); - gtk_box_pack_start (GTK_BOX (hbox6), button_browse_file, FALSE, FALSE, 0); - GTK_WIDGET_SET_FLAGS (button_browse_file, GTK_CAN_DEFAULT); - - alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_widget_show (alignment2); - gtk_container_add (GTK_CONTAINER (button_browse_file), alignment2); - - hbox7 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox7); - gtk_container_add (GTK_CONTAINER (alignment2), hbox7); - - image4 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); - gtk_widget_show (image4); - gtk_box_pack_start (GTK_BOX (hbox7), image4, FALSE, FALSE, 0); - - label19 = gtk_label_new_with_mnemonic ("Browse"); - gtk_widget_show (label19); - gtk_box_pack_start (GTK_BOX (hbox7), label19, FALSE, FALSE, 0); - - label9 = gtk_label_new ("Output"); - gtk_widget_show (label9); - gtk_frame_set_label_widget (GTK_FRAME (frame_output), label9); - - hbuttonbox1 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox1); - gtk_box_pack_start (GTK_BOX (vbox_parameters), hbuttonbox1, FALSE, TRUE, 4); - gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END); - - button_start = gtk_button_new (); - gtk_widget_show (button_start); - gtk_container_add (GTK_CONTAINER (hbuttonbox1), button_start); - GTK_WIDGET_SET_FLAGS (button_start, GTK_CAN_DEFAULT); - - alignment3 = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_widget_show (alignment3); - gtk_container_add (GTK_CONTAINER (button_start), alignment3); - - hbox9 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox9); - gtk_container_add (GTK_CONTAINER (alignment3), hbox9); - - button_start_image = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); - gtk_widget_show (button_start_image); - gtk_box_pack_start (GTK_BOX (hbox9), button_start_image, FALSE, FALSE, 0); - - button_start_label = gtk_label_new_with_mnemonic ("Start"); - gtk_widget_show (button_start_label); - gtk_box_pack_start (GTK_BOX (hbox9), button_start_label, FALSE, FALSE, 0); - - hbox10 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox10); - gtk_box_pack_start (GTK_BOX (vbox1), hbox10, FALSE, FALSE, 0); - - progressbar = gtk_progress_bar_new (); - gtk_widget_show (progressbar); - gtk_box_pack_start (GTK_BOX (hbox10), progressbar, FALSE, FALSE, 0); - - statusbar = gtk_statusbar_new (); - gtk_widget_show (statusbar); - gtk_box_pack_start (GTK_BOX (hbox10), statusbar, TRUE, TRUE, 0); - - g_signal_connect ((gpointer) win_main, "delete_event", - G_CALLBACK (on_win_main_delete_event), - NULL); - g_signal_connect ((gpointer) entry_device, "activate", - G_CALLBACK (on_entry_device_activate), - NULL); - g_signal_connect ((gpointer) button_browse_device, "clicked", - G_CALLBACK (on_button_browse_device), - NULL); - g_signal_connect ((gpointer) optionmenu_title, "changed", - G_CALLBACK (on_optionmenu_title_changed), - NULL); - g_signal_connect ((gpointer) button_settings, "clicked", - G_CALLBACK (on_button_settings_clicked), - NULL); - g_signal_connect ((gpointer) entry_file, "activate", - G_CALLBACK (on_entry_file_activate), - NULL); - g_signal_connect ((gpointer) button_browse_file, "clicked", - G_CALLBACK (on_button_browse_file_clicked), - NULL); - g_signal_connect ((gpointer) button_start, "clicked", - G_CALLBACK (on_button_start_clicked), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (win_main, win_main, "win_main"); - GLADE_HOOKUP_OBJECT (win_main, vbox1, "vbox1"); - GLADE_HOOKUP_OBJECT (win_main, frame_dvd, "frame_dvd"); - GLADE_HOOKUP_OBJECT (win_main, vbox11, "vbox11"); - GLADE_HOOKUP_OBJECT (win_main, alignment13, "alignment13"); - GLADE_HOOKUP_OBJECT (win_main, hbox1, "hbox1"); - GLADE_HOOKUP_OBJECT (win_main, label3, "label3"); - GLADE_HOOKUP_OBJECT (win_main, combo1, "combo1"); - GLADE_HOOKUP_OBJECT (win_main, entry_device, "entry_device"); - GLADE_HOOKUP_OBJECT (win_main, button_browse_device, "button_browse_device"); - GLADE_HOOKUP_OBJECT (win_main, alignment1, "alignment1"); - GLADE_HOOKUP_OBJECT (win_main, hbox2, "hbox2"); - GLADE_HOOKUP_OBJECT (win_main, image1, "image1"); - GLADE_HOOKUP_OBJECT (win_main, label4, "label4"); - GLADE_HOOKUP_OBJECT (win_main, label1, "label1"); - GLADE_HOOKUP_OBJECT (win_main, vbox_parameters, "vbox_parameters"); - GLADE_HOOKUP_OBJECT (win_main, frame_video, "frame_video"); - GLADE_HOOKUP_OBJECT (win_main, hbox18, "hbox18"); - GLADE_HOOKUP_OBJECT (win_main, alignment7, "alignment7"); - GLADE_HOOKUP_OBJECT (win_main, vbox7, "vbox7"); - GLADE_HOOKUP_OBJECT (win_main, label13, "label13"); - GLADE_HOOKUP_OBJECT (win_main, label12, "label12"); - GLADE_HOOKUP_OBJECT (win_main, radiobutton_cbitrate, "radiobutton_cbitrate"); - GLADE_HOOKUP_OBJECT (win_main, radiobutton_tsize, "radiobutton_tsize"); - GLADE_HOOKUP_OBJECT (win_main, checkbutton_2pass, "checkbutton_2pass"); - GLADE_HOOKUP_OBJECT (win_main, alignment8, "alignment8"); - GLADE_HOOKUP_OBJECT (win_main, vbox8, "vbox8"); - GLADE_HOOKUP_OBJECT (win_main, optionmenu_title, "optionmenu_title"); - GLADE_HOOKUP_OBJECT (win_main, optionmenu_codec, "optionmenu_codec"); - GLADE_HOOKUP_OBJECT (win_main, menu_codec, "menu_codec"); - GLADE_HOOKUP_OBJECT (win_main, mpeg_4__ffmpeg_1, "mpeg_4__ffmpeg_1"); - GLADE_HOOKUP_OBJECT (win_main, mpeg_4__xvid_1, "mpeg_4__xvid_1"); - GLADE_HOOKUP_OBJECT (win_main, h264__x264_1, "h264__x264_1"); - GLADE_HOOKUP_OBJECT (win_main, spinbutton_bitrate, "spinbutton_bitrate"); - GLADE_HOOKUP_OBJECT (win_main, spinbutton_size, "spinbutton_size"); - GLADE_HOOKUP_OBJECT (win_main, button_settings, "button_settings"); - GLADE_HOOKUP_OBJECT (win_main, label6, "label6"); - GLADE_HOOKUP_OBJECT (win_main, frame_audio, "frame_audio"); - GLADE_HOOKUP_OBJECT (win_main, hbox19, "hbox19"); - GLADE_HOOKUP_OBJECT (win_main, alignment9, "alignment9"); - GLADE_HOOKUP_OBJECT (win_main, vbox9, "vbox9"); - GLADE_HOOKUP_OBJECT (win_main, label14, "label14"); - GLADE_HOOKUP_OBJECT (win_main, label15, "label15"); - GLADE_HOOKUP_OBJECT (win_main, label16, "label16"); - GLADE_HOOKUP_OBJECT (win_main, alignment10, "alignment10"); - GLADE_HOOKUP_OBJECT (win_main, vbox10, "vbox10"); - GLADE_HOOKUP_OBJECT (win_main, optionmenu_language, "optionmenu_language"); - GLADE_HOOKUP_OBJECT (win_main, optionmenu_language2, "optionmenu_language2"); - GLADE_HOOKUP_OBJECT (win_main, optionmenu_bitrate, "optionmenu_bitrate"); - GLADE_HOOKUP_OBJECT (win_main, menu1, "menu1"); - GLADE_HOOKUP_OBJECT (win_main, _2, "_2"); - GLADE_HOOKUP_OBJECT (win_main, _4, "_4"); - GLADE_HOOKUP_OBJECT (win_main, _7, "_7"); - GLADE_HOOKUP_OBJECT (win_main, _10, "_10"); - GLADE_HOOKUP_OBJECT (win_main, _11, "_11"); - GLADE_HOOKUP_OBJECT (win_main, _12, "_12"); - GLADE_HOOKUP_OBJECT (win_main, _13, "_13"); - GLADE_HOOKUP_OBJECT (win_main, label8, "label8"); - GLADE_HOOKUP_OBJECT (win_main, frame_output, "frame_output"); - GLADE_HOOKUP_OBJECT (win_main, vbox2, "vbox2"); - GLADE_HOOKUP_OBJECT (win_main, hbox20, "hbox20"); - GLADE_HOOKUP_OBJECT (win_main, alignment11, "alignment11"); - GLADE_HOOKUP_OBJECT (win_main, label17, "label17"); - GLADE_HOOKUP_OBJECT (win_main, alignment12, "alignment12"); - GLADE_HOOKUP_OBJECT (win_main, optionmenu_format, "optionmenu_format"); - GLADE_HOOKUP_OBJECT (win_main, menu2, "menu2"); - GLADE_HOOKUP_OBJECT (win_main, auto1, "auto1"); - GLADE_HOOKUP_OBJECT (win_main, avi1, "avi1"); - GLADE_HOOKUP_OBJECT (win_main, mp1, "mp1"); - GLADE_HOOKUP_OBJECT (win_main, ogm1, "ogm1"); - GLADE_HOOKUP_OBJECT (win_main, hbox6, "hbox6"); - GLADE_HOOKUP_OBJECT (win_main, label18, "label18"); - GLADE_HOOKUP_OBJECT (win_main, combo2, "combo2"); - GLADE_HOOKUP_OBJECT (win_main, entry_file, "entry_file"); - GLADE_HOOKUP_OBJECT (win_main, button_browse_file, "button_browse_file"); - GLADE_HOOKUP_OBJECT (win_main, alignment2, "alignment2"); - GLADE_HOOKUP_OBJECT (win_main, hbox7, "hbox7"); - GLADE_HOOKUP_OBJECT (win_main, image4, "image4"); - GLADE_HOOKUP_OBJECT (win_main, label19, "label19"); - GLADE_HOOKUP_OBJECT (win_main, label9, "label9"); - GLADE_HOOKUP_OBJECT (win_main, hbuttonbox1, "hbuttonbox1"); - GLADE_HOOKUP_OBJECT (win_main, button_start, "button_start"); - GLADE_HOOKUP_OBJECT (win_main, alignment3, "alignment3"); - GLADE_HOOKUP_OBJECT (win_main, hbox9, "hbox9"); - GLADE_HOOKUP_OBJECT (win_main, button_start_image, "button_start_image"); - GLADE_HOOKUP_OBJECT (win_main, button_start_label, "button_start_label"); - GLADE_HOOKUP_OBJECT (win_main, hbox10, "hbox10"); - GLADE_HOOKUP_OBJECT (win_main, progressbar, "progressbar"); - GLADE_HOOKUP_OBJECT (win_main, statusbar, "statusbar"); - - return win_main; -} - -GtkWidget* -create_win_open (void) -{ - GtkWidget *win_open; - GtkWidget *ok_button1; - GtkWidget *cancel_button1; - - win_open = gtk_file_selection_new ("Select File"); - gtk_container_set_border_width (GTK_CONTAINER (win_open), 10); - gtk_window_set_modal (GTK_WINDOW (win_open), TRUE); - - ok_button1 = GTK_FILE_SELECTION (win_open)->ok_button; - gtk_widget_show (ok_button1); - GTK_WIDGET_SET_FLAGS (ok_button1, GTK_CAN_DEFAULT); - - cancel_button1 = GTK_FILE_SELECTION (win_open)->cancel_button; - gtk_widget_show (cancel_button1); - GTK_WIDGET_SET_FLAGS (cancel_button1, GTK_CAN_DEFAULT); - - g_signal_connect ((gpointer) win_open, "delete_event", - G_CALLBACK (on_win_open_delete_event), - NULL); - g_signal_connect ((gpointer) ok_button1, "clicked", - G_CALLBACK (on_ok_button1_clicked), - NULL); - g_signal_connect ((gpointer) cancel_button1, "clicked", - G_CALLBACK (on_cancel_button1_clicked), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (win_open, win_open, "win_open"); - GLADE_HOOKUP_OBJECT_NO_REF (win_open, ok_button1, "ok_button1"); - GLADE_HOOKUP_OBJECT_NO_REF (win_open, cancel_button1, "cancel_button1"); - - return win_open; -} - -GtkWidget* -create_win_settings (void) -{ - GtkWidget *win_settings; - GtkWidget *vbox4; - GtkWidget *drawingarea; - GtkWidget *table5; - GtkWidget *vbox5; - GtkWidget *hbuttonbox2; - GtkWidget *button_settings_previous; - GtkWidget *alignment5; - GtkWidget *hbox12; - GtkWidget *image7; - GtkWidget *label22; - GtkWidget *button_settings_next; - GtkWidget *alignment6; - GtkWidget *hbox13; - GtkWidget *image8; - GtkWidget *label23; - GtkWidget *vbox6; - GtkWidget *hbox17; - GtkWidget *table8; - GtkObject *spinbutton_width_adj; - GtkWidget *spinbutton_width; - GtkObject *spinbutton_crop_top_adj; - GtkWidget *spinbutton_crop_top; - GtkWidget *label26; - GtkWidget *label25; - GtkWidget *label24; - GtkObject *spinbutton_crop_bottom_adj; - GtkWidget *spinbutton_crop_bottom; - GtkWidget *table9; - GtkObject *spinbutton_crop_left_adj; - GtkWidget *spinbutton_crop_left; - GtkWidget *label28; - GtkWidget *label27; - GtkObject *spinbutton_crop_right_adj; - GtkWidget *spinbutton_crop_right; - GtkWidget *checkbutton_deinterlace; - GtkWidget *hseparator1; - GtkWidget *table4; - GtkWidget *button1; - GtkWidget *alignment4; - GtkWidget *hbox11; - GtkWidget *image5; - GtkWidget *label20; - GtkWidget *label_settings; - - win_settings = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (win_settings), "Picture settings"); - gtk_window_set_modal (GTK_WINDOW (win_settings), TRUE); - - vbox4 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox4); - gtk_container_add (GTK_CONTAINER (win_settings), vbox4); - - drawingarea = gtk_drawing_area_new (); - gtk_widget_show (drawingarea); - gtk_box_pack_start (GTK_BOX (vbox4), drawingarea, TRUE, TRUE, 10); - - table5 = gtk_table_new (1, 3, FALSE); - gtk_widget_show (table5); - gtk_box_pack_start (GTK_BOX (vbox4), table5, TRUE, TRUE, 0); - - vbox5 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox5); - gtk_table_attach (GTK_TABLE (table5), vbox5, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0); - - hbuttonbox2 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox2); - gtk_box_pack_start (GTK_BOX (vbox5), hbuttonbox2, TRUE, TRUE, 0); - gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_END); - - button_settings_previous = gtk_button_new (); - gtk_widget_show (button_settings_previous); - gtk_container_add (GTK_CONTAINER (hbuttonbox2), button_settings_previous); - gtk_widget_set_sensitive (button_settings_previous, FALSE); - GTK_WIDGET_SET_FLAGS (button_settings_previous, GTK_CAN_DEFAULT); - - alignment5 = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_widget_show (alignment5); - gtk_container_add (GTK_CONTAINER (button_settings_previous), alignment5); - - hbox12 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox12); - gtk_container_add (GTK_CONTAINER (alignment5), hbox12); - - image7 = gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_BUTTON); - gtk_widget_show (image7); - gtk_box_pack_start (GTK_BOX (hbox12), image7, FALSE, FALSE, 0); - - label22 = gtk_label_new_with_mnemonic ("Previous"); - gtk_widget_show (label22); - gtk_box_pack_start (GTK_BOX (hbox12), label22, FALSE, FALSE, 0); - - button_settings_next = gtk_button_new (); - gtk_widget_show (button_settings_next); - gtk_container_add (GTK_CONTAINER (hbuttonbox2), button_settings_next); - GTK_WIDGET_SET_FLAGS (button_settings_next, GTK_CAN_DEFAULT); - - alignment6 = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_widget_show (alignment6); - gtk_container_add (GTK_CONTAINER (button_settings_next), alignment6); - - hbox13 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox13); - gtk_container_add (GTK_CONTAINER (alignment6), hbox13); - - image8 = gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_BUTTON); - gtk_widget_show (image8); - gtk_box_pack_start (GTK_BOX (hbox13), image8, FALSE, FALSE, 0); - - label23 = gtk_label_new_with_mnemonic ("Next"); - gtk_widget_show (label23); - gtk_box_pack_start (GTK_BOX (hbox13), label23, FALSE, FALSE, 0); - - vbox6 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox6); - gtk_table_attach (GTK_TABLE (table5), vbox6, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - hbox17 = gtk_hbox_new (TRUE, 0); - gtk_widget_show (hbox17); - gtk_box_pack_start (GTK_BOX (vbox6), hbox17, TRUE, TRUE, 0); - - table8 = gtk_table_new (3, 3, FALSE); - gtk_widget_show (table8); - gtk_box_pack_start (GTK_BOX (hbox17), table8, TRUE, TRUE, 5); - - spinbutton_width_adj = gtk_adjustment_new (0, 0, 4096, 16, 16, 10); - spinbutton_width = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_width_adj), 1, 0); - gtk_widget_show (spinbutton_width); - gtk_table_attach (GTK_TABLE (table8), spinbutton_width, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_width), TRUE); - - spinbutton_crop_top_adj = gtk_adjustment_new (0, 0, 4096, 2, 10, 10); - spinbutton_crop_top = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_crop_top_adj), 1, 0); - gtk_widget_show (spinbutton_crop_top); - gtk_table_attach (GTK_TABLE (table8), spinbutton_crop_top, 2, 3, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - label26 = gtk_label_new ("Bottom crop"); - gtk_widget_show (label26); - gtk_table_attach (GTK_TABLE (table8), label26, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5); - - label25 = gtk_label_new ("Top crop"); - gtk_widget_show (label25); - gtk_table_attach (GTK_TABLE (table8), label25, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); - - label24 = gtk_label_new ("Picture width"); - gtk_widget_show (label24); - gtk_table_attach (GTK_TABLE (table8), label24, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - spinbutton_crop_bottom_adj = gtk_adjustment_new (0, 0, 4096, 2, 10, 10); - spinbutton_crop_bottom = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_crop_bottom_adj), 1, 0); - gtk_widget_show (spinbutton_crop_bottom); - gtk_table_attach (GTK_TABLE (table8), spinbutton_crop_bottom, 2, 3, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - table9 = gtk_table_new (3, 3, FALSE); - gtk_widget_show (table9); - gtk_box_pack_start (GTK_BOX (hbox17), table9, TRUE, TRUE, 5); - - spinbutton_crop_left_adj = gtk_adjustment_new (0, 0, 4096, 2, 10, 10); - spinbutton_crop_left = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_crop_left_adj), 1, 0); - gtk_widget_show (spinbutton_crop_left); - gtk_table_attach (GTK_TABLE (table9), spinbutton_crop_left, 2, 3, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - label28 = gtk_label_new ("Right crop"); - gtk_widget_show (label28); - gtk_table_attach (GTK_TABLE (table9), label28, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label28), 0, 0.5); - - label27 = gtk_label_new ("Left crop"); - gtk_widget_show (label27); - gtk_table_attach (GTK_TABLE (table9), label27, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5); - - spinbutton_crop_right_adj = gtk_adjustment_new (0, 0, 4096, 2, 10, 10); - spinbutton_crop_right = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_crop_right_adj), 1, 0); - gtk_widget_show (spinbutton_crop_right); - gtk_table_attach (GTK_TABLE (table9), spinbutton_crop_right, 2, 3, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - checkbutton_deinterlace = gtk_check_button_new_with_mnemonic ("deinterlace"); - gtk_widget_show (checkbutton_deinterlace); - gtk_table_attach (GTK_TABLE (table9), checkbutton_deinterlace, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - hseparator1 = gtk_hseparator_new (); - gtk_widget_show (hseparator1); - gtk_box_pack_start (GTK_BOX (vbox4), hseparator1, FALSE, TRUE, 0); - - table4 = gtk_table_new (1, 2, FALSE); - gtk_widget_show (table4); - gtk_box_pack_start (GTK_BOX (vbox4), table4, FALSE, TRUE, 5); - - button1 = gtk_button_new (); - gtk_widget_show (button1); - gtk_table_attach (GTK_TABLE (table4), button1, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - alignment4 = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_widget_show (alignment4); - gtk_container_add (GTK_CONTAINER (button1), alignment4); - - hbox11 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox11); - gtk_container_add (GTK_CONTAINER (alignment4), hbox11); - - image5 = gtk_image_new_from_stock ("gtk-apply", GTK_ICON_SIZE_BUTTON); - gtk_widget_show (image5); - gtk_box_pack_start (GTK_BOX (hbox11), image5, FALSE, FALSE, 0); - - label20 = gtk_label_new_with_mnemonic ("Ok"); - gtk_widget_show (label20); - gtk_box_pack_start (GTK_BOX (hbox11), label20, FALSE, FALSE, 0); - - label_settings = gtk_label_new ("label21"); - gtk_widget_show (label_settings); - gtk_table_attach (GTK_TABLE (table4), label_settings, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label_settings), 0, 0.5); - - g_signal_connect ((gpointer) win_settings, "delete_event", - G_CALLBACK (on_win_settings_delete_event), - NULL); - g_signal_connect ((gpointer) button_settings_previous, "clicked", - G_CALLBACK (on_button_settings_previous_clicked), - NULL); - g_signal_connect ((gpointer) button_settings_next, "clicked", - G_CALLBACK (on_button_settings_next_clicked), - NULL); - g_signal_connect ((gpointer) spinbutton_width, "value_changed", - G_CALLBACK (on_spinbutton_width_value_changed), - NULL); - g_signal_connect ((gpointer) spinbutton_crop_top, "value_changed", - G_CALLBACK (on_spinbutton_crop_top_value_changed), - NULL); - g_signal_connect ((gpointer) spinbutton_crop_bottom, "value_changed", - G_CALLBACK (on_spinbutton_crop_bottom_value_changed), - NULL); - g_signal_connect ((gpointer) spinbutton_crop_left, "value_changed", - G_CALLBACK (on_spinbutton_crop_left_value_changed), - NULL); - g_signal_connect ((gpointer) spinbutton_crop_right, "value_changed", - G_CALLBACK (on_spinbutton_crop_right_value_changed), - NULL); - g_signal_connect ((gpointer) checkbutton_deinterlace, "toggled", - G_CALLBACK (on_checkbutton_deinterlace_toggled), - NULL); - g_signal_connect ((gpointer) button1, "clicked", - G_CALLBACK (on_button_ok_settings_clicked), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (win_settings, win_settings, "win_settings"); - GLADE_HOOKUP_OBJECT (win_settings, vbox4, "vbox4"); - GLADE_HOOKUP_OBJECT (win_settings, drawingarea, "drawingarea"); - GLADE_HOOKUP_OBJECT (win_settings, table5, "table5"); - GLADE_HOOKUP_OBJECT (win_settings, vbox5, "vbox5"); - GLADE_HOOKUP_OBJECT (win_settings, hbuttonbox2, "hbuttonbox2"); - GLADE_HOOKUP_OBJECT (win_settings, button_settings_previous, "button_settings_previous"); - GLADE_HOOKUP_OBJECT (win_settings, alignment5, "alignment5"); - GLADE_HOOKUP_OBJECT (win_settings, hbox12, "hbox12"); - GLADE_HOOKUP_OBJECT (win_settings, image7, "image7"); - GLADE_HOOKUP_OBJECT (win_settings, label22, "label22"); - GLADE_HOOKUP_OBJECT (win_settings, button_settings_next, "button_settings_next"); - GLADE_HOOKUP_OBJECT (win_settings, alignment6, "alignment6"); - GLADE_HOOKUP_OBJECT (win_settings, hbox13, "hbox13"); - GLADE_HOOKUP_OBJECT (win_settings, image8, "image8"); - GLADE_HOOKUP_OBJECT (win_settings, label23, "label23"); - GLADE_HOOKUP_OBJECT (win_settings, vbox6, "vbox6"); - GLADE_HOOKUP_OBJECT (win_settings, hbox17, "hbox17"); - GLADE_HOOKUP_OBJECT (win_settings, table8, "table8"); - GLADE_HOOKUP_OBJECT (win_settings, spinbutton_width, "spinbutton_width"); - GLADE_HOOKUP_OBJECT (win_settings, spinbutton_crop_top, "spinbutton_crop_top"); - GLADE_HOOKUP_OBJECT (win_settings, label26, "label26"); - GLADE_HOOKUP_OBJECT (win_settings, label25, "label25"); - GLADE_HOOKUP_OBJECT (win_settings, label24, "label24"); - GLADE_HOOKUP_OBJECT (win_settings, spinbutton_crop_bottom, "spinbutton_crop_bottom"); - GLADE_HOOKUP_OBJECT (win_settings, table9, "table9"); - GLADE_HOOKUP_OBJECT (win_settings, spinbutton_crop_left, "spinbutton_crop_left"); - GLADE_HOOKUP_OBJECT (win_settings, label28, "label28"); - GLADE_HOOKUP_OBJECT (win_settings, label27, "label27"); - GLADE_HOOKUP_OBJECT (win_settings, spinbutton_crop_right, "spinbutton_crop_right"); - GLADE_HOOKUP_OBJECT (win_settings, checkbutton_deinterlace, "checkbutton_deinterlace"); - GLADE_HOOKUP_OBJECT (win_settings, hseparator1, "hseparator1"); - GLADE_HOOKUP_OBJECT (win_settings, table4, "table4"); - GLADE_HOOKUP_OBJECT (win_settings, button1, "button1"); - GLADE_HOOKUP_OBJECT (win_settings, alignment4, "alignment4"); - GLADE_HOOKUP_OBJECT (win_settings, hbox11, "hbox11"); - GLADE_HOOKUP_OBJECT (win_settings, image5, "image5"); - GLADE_HOOKUP_OBJECT (win_settings, label20, "label20"); - GLADE_HOOKUP_OBJECT (win_settings, label_settings, "label_settings"); - - return win_settings; -} - diff --git a/gtk2/interface.h b/gtk2/interface.h deleted file mode 100644 index 303e644b8..000000000 --- a/gtk2/interface.h +++ /dev/null @@ -1,7 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_win_main (void); -GtkWidget* create_win_open (void); -GtkWidget* create_win_settings (void); diff --git a/gtk2/main.c b/gtk2/main.c deleted file mode 100644 index d4e4d5d86..000000000 --- a/gtk2/main.c +++ /dev/null @@ -1,408 +0,0 @@ -/* - * Initial main.c file generated by Glade. Edit as required. - * Glade will not overwrite this file. - */ - -#include "../core/HandBrake.h" - -#include <gtk/gtk.h> - -#include "interface.h" -#include "support.h" - -#include "status.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) - -GtkWidget *hb_win_main = NULL; -HBHandle *hb_handle = NULL; -HBStatus *hb_status = NULL; - -static int HBMain( void *data ); - -/* libhb callbacks */ -static void Scanning( void * data, int title, int titleCount ); -static void ScanDone( void * data, HBList * titleList ); -static void Encoding( void * data, float position, int pass, - int passCount, float frameRate, - float avgFrameRate, int remainingTime ); -static void RipDone( void * data, int result ); - - -int main (int argc, char **argv ) -{ - HBCallbacks callbacks; - GtkWidget *widget; - GList *items = NULL; - - int i_dummy; - - /* Create HB stuff */ - if( ( hb_handle = HBInit( 1, 0 ) ) == NULL ) - { - g_print( "HBInit: failed\n" ); - return -1; - } - - /* Emulate a HBStatus */ - hb_status = malloc( sizeof( HBStatus ) ); - hb_status->i_state = HB_STATE_NEED_DEVICE; - hb_status->b_new = 1; - hb_status->i_title = 0; - hb_status->i_title_count = 0; - hb_status->titleList = NULL; - hb_status->position = 0.0; - hb_status->i_remaining = 0; - hb_status->fps = 0.0; - - /* Set libhb callbacks */ - callbacks.data = NULL; - callbacks.scanning = Scanning; - callbacks.scanDone = ScanDone; - callbacks.encoding = Encoding; - callbacks.ripDone = RipDone; - HBSetCallbacks( hb_handle, callbacks ); - - gtk_set_locale (); - gtk_init (&argc, &argv); - - //add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); - - /* Create the main window */ - hb_win_main = create_win_main(); - gtk_window_set_title( GTK_WINDOW(hb_win_main), "HandBrake " HB_VERSION ); - - widget = lookup_widget( hb_win_main, "combo1" ); - gtk_combo_disable_activate( GTK_COMBO( widget ) ); - - widget = lookup_widget( hb_win_main, "combo2" ); - gtk_combo_disable_activate( GTK_COMBO( widget ) ); - - widget = lookup_widget( hb_win_main, "optionmenu_bitrate" ); - gtk_option_menu_set_history( GTK_OPTION_MENU(widget), 2 ); - - /* build dvd list */ - items = g_list_append (items, "" ); - items = g_list_append (items, "/dev/dvd" ); - gtk_combo_set_popdown_strings( GTK_COMBO(lookup_widget( hb_win_main, "combo1") ), items ); - - /* Display the main window */ - gtk_widget_show( hb_win_main ); - - i_dummy = gtk_timeout_add( 100, (GtkFunction)HBMain, NULL ); - gtk_main(); - gtk_timeout_remove( i_dummy ); - - return 0; -} - -static void StatusBarUpdate( char *msg ) -{ - GtkWidget *widget = lookup_widget( hb_win_main, "statusbar" ); - - gtk_statusbar_push( GTK_STATUSBAR(widget), - gtk_statusbar_get_context_id(GTK_STATUSBAR(widget), "status" ), - msg ); -} - -static void DisplayError( char *title, char *msg ) -{ - GtkWidget *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 ); -} - -static void DisplayInfo( char *msg ) -{ - GtkWidget *dialog = gtk_message_dialog_new( NULL, GTK_DIALOG_MODAL, - GTK_MESSAGE_INFO, GTK_BUTTONS_OK, 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 ); -} - -static int HBMain( void *data ) -{ - int b_new = hb_status->b_new; - GtkWidget *widget; - gchar msg[1000]; - - hb_status->b_new = 0; - - switch( hb_status->i_state ) - { - case HB_STATE_NEED_DEVICE: - if( b_new ) - { - g_print( "HBMain: HB_MODE_NEED_DEVICE\n" ); - gtk_widget_set_sensitive( lookup_widget( hb_win_main, "frame_dvd"), TRUE ); - StatusBarUpdate( "Enter a device" ); - } - break; - - case HB_STATE_SCANNING: - if( b_new ) - { - g_print( "HBMain: HB_MODE_SCANNING\n" ); - } - - gtk_widget_set_sensitive( lookup_widget( hb_win_main, "frame_dvd"), FALSE ); - - gtk_progress_bar_pulse( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" ) )); - if( hb_status->i_title ) - { - sprintf( msg, "Scanning title %d/%d...", hb_status->i_title, hb_status->i_title_count ); - } - else - { - sprintf( msg, "Opening device..." ); - } - StatusBarUpdate( msg ); - break; - - case HB_STATE_INVALID_DEVICE: - if( b_new ) - { - g_print( "HBMain: HB_MODE_INVALID_DEVICE\n" ); - - gtk_widget_set_sensitive( lookup_widget( hb_win_main, "frame_dvd"), TRUE ); - - gtk_entry_set_text( GTK_ENTRY(lookup_widget( hb_win_main, "entry_device")), "" ); - - gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), 0.0 ); - - StatusBarUpdate( "Enter a valid device" ); - - /* error dialog */ - DisplayError( "Invalid device", "Please select a valide device" ); - } - break; - - case HB_STATE_READY_TO_RIP: - if( b_new ) - { - GtkWidget *optionmenu_title = lookup_widget( hb_win_main, "optionmenu_title" ); - GtkWidget *menu; - GtkWidget *item; - int i; - - g_print( "HBMain: HB_MODE_READY_TO_RIP\n" ); - - /* create title menu */ - menu = gtk_menu_new(); - for( i = 0; i < HBListCount( hb_status->titleList ); i++ ) - { - HBTitle *title = (HBTitle*) HBListItemAt( hb_status->titleList, i ); - char string[1024]; - - sprintf( string, "%d - %02dh%02dm%02ds", - title->title, title->hours, title->minutes, - title->seconds ); - - item = gtk_menu_item_new_with_mnemonic( string ); - gtk_widget_show( item ); - gtk_menu_shell_append( GTK_MENU_SHELL(menu), item ); - } - - gtk_option_menu_set_menu( GTK_OPTION_MENU(optionmenu_title), menu ); - GLADE_HOOKUP_OBJECT( hb_win_main, menu, "menu_title" ); - - /* unhide */ - widget = lookup_widget( hb_win_main, "vbox_parameters" ); - gtk_widget_show( widget ); - - gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), 0.0 ); - gtk_progress_bar_set_text( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), "" ); - - StatusBarUpdate( "Select your parameters" ); - } - break; - - case HB_STATE_ENCODING: - if( b_new ) - { - /* change the name to Stop */ - widget = lookup_widget( hb_win_main, "button_start_label" ); - gtk_label_set_text( GTK_LABEL( widget ), "Stop" ); - - widget = lookup_widget( hb_win_main, "button_start_image" ); - gtk_image_set_from_stock( GTK_IMAGE(widget), "gtk-cancel", GTK_ICON_SIZE_BUTTON ); - - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_video"), FALSE ); - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_audio"), FALSE ); - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_output"), FALSE ); - } - - if( hb_status->position <= 0 ) - { - StatusBarUpdate( "Starting..." ); - } - else - { - char string[1024]; - - /* Status bar */ - sprintf( string, "Encoding: %02dh%02dm%02ds remaining", - hb_status->i_remaining / 3600, - ( hb_status->i_remaining % 3600 ) / 60, - hb_status->i_remaining % 60 ); - StatusBarUpdate( string ); - - /* Progressbar */ - sprintf( string, "%.2f %% (%.2f fps)", 100 * hb_status->position, hb_status->fps ); - gtk_progress_bar_set_text( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), string ); - gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), hb_status->position ); - } - break; - - case HB_STATE_DONE: - case HB_STATE_CANCELED: - if( b_new ) - { - g_print( "HBMain: HB_MODE_DONE/HB_MODE_CANCELED\n" ); - - /* change the name to Start */ - widget = lookup_widget( hb_win_main, "button_start_label" ); - gtk_label_set_text( GTK_LABEL( widget ), "Start" ); - - widget = lookup_widget( hb_win_main, "button_start_image" ); - gtk_image_set_from_stock( GTK_IMAGE(widget), "gtk-apply", GTK_ICON_SIZE_BUTTON ); - - gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), 0.0 ); - gtk_progress_bar_set_text( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), "" ); - - if( hb_status->i_state == HB_STATE_DONE ) - { - StatusBarUpdate( "Done." ); - DisplayInfo( "Encoding finished with success." ); - } - else - { - StatusBarUpdate( "Canceled." ); - DisplayInfo("Encoding canceled."); - } - - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_video"), TRUE ); - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_audio"), TRUE ); - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_output"), TRUE ); - } - break; - - case HB_STATE_ERROR: - if( b_new ) - { - char *msg = "Unknown"; - - g_print( "HBMain: HB_MODE_ERROR\n" ); - - /* change the name to Start */ - widget = lookup_widget( hb_win_main, "button_start_label" ); - gtk_label_set_text( GTK_LABEL( widget ), "Start" ); - - widget = lookup_widget( hb_win_main, "button_start_image" ); - gtk_image_set_from_stock( GTK_IMAGE(widget), "gtk-apply", GTK_ICON_SIZE_BUTTON ); - - gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), 0.0 ); - gtk_progress_bar_set_text( GTK_PROGRESS_BAR(lookup_widget( hb_win_main, "progressbar" )), "" ); - - StatusBarUpdate( "Error." ); - switch( hb_status->i_error ) - { -#if 0 - case HB_ERROR_A52_SYNC: - msg = "corrupted AC3 data."; - break; - case HB_ERROR_AVI_WRITE: - msg = "could not write to file."; - break; - case HB_ERROR_DVD_OPEN: - msg = "could not open device."; - break; - case HB_ERROR_DVD_READ: - msg = "DVD read failed."; - break; - case HB_ERROR_MP3_INIT: - msg = "could not init MP3 encoder."; - break; - case HB_ERROR_MP3_ENCODE: - msg = "MP3 encoder failed."; - break; - case HB_ERROR_MPEG4_INIT: - msg = "could not init MPEG4 encoder."; - break; -#endif - default: - msg = "Generic error"; - break; - } - DisplayError( "An error occured", msg ); - - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_video"), TRUE ); - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_audio"), TRUE ); - gtk_widget_set_sensitive( lookup_widget(hb_win_main, "frame_output"), TRUE ); - } - break; - } - - - return TRUE; -} - - -static void Scanning( void * data, int title, int titleCount ) -{ - if( hb_status->i_state != HB_STATE_SCANNING ) - { - hb_status->i_state = HB_STATE_SCANNING; - hb_status->b_new = 1; - } - hb_status->i_title = title; - hb_status->i_title_count = titleCount; -} - -static void ScanDone( void * data, HBList * titleList ) -{ - if( titleList == NULL ) - { - hb_status->i_state = HB_STATE_INVALID_DEVICE; - } - else - { - hb_status->i_state = HB_STATE_READY_TO_RIP; - } - hb_status->b_new = 1; - - hb_status->titleList = titleList; -} - -static void Encoding( void * data, float position, int pass, - int passCount, float frameRate, - float avgFrameRate, int remainingTime ) -{ - if( hb_status->i_state != HB_STATE_ENCODING ) - { - hb_status->i_state = HB_STATE_ENCODING; - hb_status->b_new = 1; - } - - hb_status->position = position; - hb_status->fps = frameRate; - hb_status->i_remaining = remainingTime; -} - -static void RipDone( void * data, int result ) -{ - /* TODO check result */ - hb_status->i_state = HB_STATE_DONE; - hb_status->b_new = 1; -} - diff --git a/gtk2/status.h b/gtk2/status.h deleted file mode 100644 index c98e4c9b0..000000000 --- a/gtk2/status.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * - */ - -enum HBState_e -{ - HB_STATE_NEED_DEVICE, - HB_STATE_SCANNING, - HB_STATE_INVALID_DEVICE, - HB_STATE_READY_TO_RIP, - HB_STATE_ENCODING, - HB_STATE_DONE, - HB_STATE_CANCELED, - HB_STATE_ERROR, -}; - -typedef struct -{ - int i_state; - int i_error; - int b_new; - - int i_title; - int i_title_count; - - HBList *titleList; - - float position; - int i_remaining; - float fps; - -} HBStatus; - diff --git a/gtk2/support.c b/gtk2/support.c deleted file mode 100644 index 7dc3c78cb..000000000 --- a/gtk2/support.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <string.h> -#include <stdio.h> - -#include <gtk/gtk.h> - -#include "support.h" - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (!parent) - parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to find pixmap files. */ -static gchar* -find_pixmap_file (const gchar *filename) -{ - GList *elem; - - /* We step through each of the pixmaps directory to find it. */ - elem = pixmaps_directories; - while (elem) - { - gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, - G_DIR_SEPARATOR_S, filename); - if (g_file_test (pathname, G_FILE_TEST_EXISTS)) - return pathname; - g_free (pathname); - elem = elem->next; - } - return NULL; -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *pathname = NULL; - GtkWidget *pixmap; - - if (!filename || !filename[0]) - return gtk_image_new (); - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning ("Couldn't find pixmap file: %s", filename); - return gtk_image_new (); - } - - pixmap = gtk_image_new_from_file (pathname); - g_free (pathname); - return pixmap; -} - -/* This is an internally used function to create pixmaps. */ -GdkPixbuf* -create_pixbuf (const gchar *filename) -{ - gchar *pathname = NULL; - GdkPixbuf *pixbuf; - GError *error = NULL; - - if (!filename || !filename[0]) - return NULL; - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning ("Couldn't find pixmap file: %s", filename); - return NULL; - } - - pixbuf = gdk_pixbuf_new_from_file (pathname, &error); - if (!pixbuf) - { - fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", - pathname, error->message); - g_error_free (error); - } - g_free (pathname); - return pixbuf; -} - -/* This is used to set ATK action descriptions. */ -void -glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description) -{ - gint n_actions, i; - - n_actions = atk_action_get_n_actions (action); - for (i = 0; i < n_actions; i++) - { - if (!strcmp (atk_action_get_name (action, i), action_name)) - atk_action_set_description (action, i, description); - } -} - diff --git a/gtk2/support.h b/gtk2/support.h deleted file mode 100644 index 2dea079c2..000000000 --- a/gtk2/support.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#include <gtk/gtk.h> - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps used in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - -/* This is used to create the pixbufs used in the interface. */ -GdkPixbuf* create_pixbuf (const gchar *filename); - -/* This is used to set ATK action descriptions. */ -void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description); - diff --git a/wx/hb32x32.xpm b/wx/hb32x32.xpm deleted file mode 100644 index baa88bca4..000000000 --- a/wx/hb32x32.xpm +++ /dev/null @@ -1,295 +0,0 @@ -/* XPM */ -static char *hb_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 257 2", -" c #00044C", -". c #180F3C", -"X c #150C6A", -"o c #171465", -"O c #4E0A0D", -"+ c #470D15", -"@ c #1D1D3E", -"# c #670501", -"$ c #5E080A", -"% c #10320A", -"& c #003D04", -"* c #770105", -"= c #0F3412", -"- c #511412", -"; c #431733", -": c #29281F", -"> c #880001", -", c #33261E", -"< c #442017", -"1 c #930000", -"2 c #372C16", -"3 c #6C1501", -"4 c #9B0200", -"5 c #52250F", -"6 c #631D13", -"7 c #542225", -"8 c #432C2A", -"9 c #005603", -"0 c #413416", -"q c #75124B", -"w c #81161A", -"e c #A6070B", -"r c #2D4034", -"t c #3C3837", -"y c #144F2E", -"u c #443B1C", -"i c #961219", -"p c #8F161C", -"a c #015C2A", -"s c #473B23", -"d c #393E41", -"f c #901B11", -"g c #56362E", -"h c #195629", -"j c #4A3A3C", -"k c #4F3E1F", -"l c #6D311F", -"z c #514118", -"x c #3E3B71", -"c c #45452D", -"v c #403E62", -"b c #792F18", -"n c #006B27", -"m c #3C4652", -"M c #5B4215", -"N c #424648", -"B c #52452C", -"V c #634117", -"C c #096B33", -"Z c #545004", -"A c #00732E", -"S c #57482A", -"D c #146D1C", -"F c #524A2F", -"G c #007D02", -"H c #23623A", -"J c #41552E", -"K c #644916", -"L c #5F4A22", -"P c #5D4C28", -"I c #B92312", -"U c #644C1E", -"Y c #007C2F", -"T c #59512B", -"R c #157139", -"E c #5F4C37", -"W c #2D654D", -"Q c #58523E", -"! c #2E6744", -"~ c #724D16", -"^ c #515350", -"/ c #6E501C", -"( c #675229", -") c #684865", -"_ c #0F832E", -"` c #42634F", -"' c #485B71", -"] c #009500", -"[ c #685A22", -"{ c #755523", -"} c #535B62", -"| c #76561E", -" . c #16823A", -".. c #357337", -"X. c #CE2F03", -"o. c #725824", -"O. c #3C6B54", -"+. c #575C5E", -"@. c #71592A", -"#. c #15882C", -"$. c #7F571A", -"%. c #2B7B49", -"&. c #68595B", -"*. c #5E5E5C", -"=. c #7C5B1B", -"-. c #80514C", -";. c #00A100", -":. c #66623F", -">. c #357853", -",. c #7B620E", -"<. c #0E942C", -"1. c #6A5F4F", -"2. c #636449", -"3. c #7F5D25", -"4. c #845159", -"5. c #8F5337", -"6. c #7C6026", -"7. c #64635C", -"8. c #984D48", -"9. c #357E52", -"0. c #7D612D", -"q. c #4E7061", -"w. c #89601C", -"e. c #717103", -"r. c #626667", -"t. c #7C6334", -"y. c #7C633A", -"u. c #786442", -"i. c #746354", -"p. c #6C6469", -"a. c #856525", -"s. c #89661F", -"d. c #636B72", -"f. c #836933", -"g. c #72732F", -"h. c #86692F", -"j. c #716B5E", -"k. c #766863", -"l. c #806754", -"z. c #5F6F84", -"x. c #877302", -"c. c #527C63", -"v. c #6A6E6E", -"b. c #5C795F", -"n. c #637085", -"m. c #BC4675", -"M. c #946A26", -"N. c #597B6C", -"B. c #79714B", -"V. c #956B1F", -"C. c #8B6E2C", -"Z. c #916C2A", -"A. c #D64A27", -"S. c #925F75", -"D. c #1BAB2D", -"F. c #C14A74", -"G. c #84743B", -"H. c #717678", -"J. c #907239", -"K. c #8C6B6C", -"L. c #867452", -"P. c #757773", -"I. c #6E7882", -"U. c #87745A", -"Y. c #8C7644", -"T. c #89830E", -"R. c #867A48", -"E. c #808329", -"W. c #7F7A5E", -"Q. c #6C7B8D", -"!. c #A17522", -"~. c #9A7730", -"^. c #9F762A", -"/. c #817A75", -"(. c #6A7F99", -"). c #88891E", -"_. c #E45A2B", -"`. c #20BF2A", -"'. c #798189", -"]. c #BD6D43", -"[. c #A07F35", -"{. c #81827E", -"}. c #AA7D2A", -"|. c #8A8074", -" X c #AE7E25", -".X c #987D8D", -"XX c #AE8430", -"oX c #AB8838", -"OX c #868B8D", -"+X c #998677", -"@X c #948A7E", -"#X c #9D8D58", -"$X c #7D90AE", -"%X c #A79430", -"&X c #AC8E4A", -"*X c #B19517", -"=X c #BC8C2F", -"-X c #819A86", -";X c #7F92B7", -":X c #7995B8", -">X c #F76D38", -",X c #A08E78", -"<X c #998F8C", -"1X c #A09B42", -"2X c #929491", -"3X c #9C966D", -"4X c #919499", -"5X c #9E9476", -"6X c #809F91", -"7X c #D48829", -"8X c #FE628E", -"9X c #FA7832", -"0X c #8A99B8", -"qX c #859DBA", -"wX c #999B98", -"eX c #74B486", -"rX c #91A29B", -"tX c #A8A263", -"yX c #999FA5", -"uX c #CC9B31", -"iX c #CCA504", -"pX c #D8887F", -"aX c #FA8728", -"sX c #E18971", -"dX c #C99E42", -"fX c #C4A23B", -"gX c #CD9F3C", -"hX c #A7A9A6", -"jX c #9EA9C3", -"kX c #99ACC3", -"lX c #FB9C1A", -"zX c #DCA645", -"xX c #CFA39A", -"cX c #FAAA05", -"vX c #BAB971", -"bX c #F29C75", -"nX c #DAAD5E", -"mX c #A9B7CB", -"MX c #B1B9C1", -"NX c #FFB904", -"BX c #FBA873", -"VX c #E7BE37", -"CX c #B3C4BD", -"ZX c #B8C4D4", -"AX c #D1BFB4", -"SX c #F1B49D", -"DX c #FBBF48", -"FX c #FECC00", -"GX c #C5CACD", -"HX c #FCBE8D", -"JX c #CDCFCB", -"KX c #C8D2DD", -"LX c #C0DACB", -"PX c #FBD5C2", -"IX c #F7F698", -"UX c gray100", -"YX c None", -/* pixels */ -"YXYXYXS.F.S.YXYXYXYXYXYXYXYXYX{.YXYXYXYXYXYXYXYXYXYXYXYX4XYXYXYX", -"YXYXYXm.8Xm.YXYXYXYXYXYXYXYXW.1XYXYXYXYXYXYXYXMXYXYXYX} YXYXYXYX", -"YXYXYX.Xq ) YXYXYXYXYXYXYXH.g.3XYXYXYXYXYXYXYXYXd.YXYXr YXYXYXYX", -"YXYXYX{.x v j.,X/.YXYX` G 9 & = b.YXYXYXYXYXYXYXq.6XrXO.YXO.yXYX", -"YXYX/.+X/.AX+Xj.E YXYX'.G ;.;.G ] ..YXYXYXYXH >.6XC ! 9.C q.YXYX", -"YXYX1.U.Q U.l.i.|.YXYXYX-X% n D b.YXYXYXYXYXYXR A R n n O.LXYXYX", -"YXYX/.+Xl.5.b &.YXYXYXYXYXT.YXwX/.YXYXYXYXYXYX6X_ <.A Y #.h +.MX", -"YXYXYXYX-.X.X.8 H.v.H.H.2.E.2.T *X%XYXYXYXYXN.O.C D._ `.A y N.CX", -"YXYXYXYXYX8 . <XGXyXwXwXT.c vXQ 2.FX#XYXYX6X%.D.A <.D. .a ` YXYX", -"YXYXYXYX+.k. +.<Xv.p.*.Z t N +.x.iX5XYXYXYXv.q.#.<.<.#._ a c.LX", -"YXYXYXd.P.<Xo @ &.j 8 , e.j t s 5 7 YXYXr.u.uXgXQ J D _ .eXYXYX", -"YXYXYX7 xXp ; X 1 e p ,.V w g IX- $ p.U.gX[.V.^.gXXX&XY.:.6XYXYX", -"YXYXK.8.xX# - X p i w e.+ $ B IXtX6 < { ~.( ~.0.^.=XF }.h.&XYXYX", -"YXYX4.sXpX1 > > * * * > > 1 > l tXIXB.P [.J.=.gXP [.XX0.J.J.{.YX", -"YXYXk.bXpXI 1 4 4 1 1 e I e 1 > f B.R.f.M t.6.oX[.}.=XB XX=XN YX", -"YXYXYX].PX>X>X1 A.I A.>X_._.e 3 x.0 o.t.Z.C.Y.$.zX( f.dXt.y.U.YX", -"YXYXYX+XzXBXaXA.>X>X>X>XaX9XA.SX7Xk @.( J.V.f.XXf.J.dX| 6.o.o.YX", -"YXYXYXYXW.nXDXlXaX9XlXlXcXcXHXnXK s Z.Z.0.3.Z.P X XP ^.[.Y.h.YX", -"YXYXYXYXYXYX5XfXFXNXFXFXFXVXG.k L =X( @.s.a. XZ.^.XX=.o.V.~.s YX", -"YXYXYXYXYXYXYXYX7.[ R.R.T d.P.=.$.f.( !.!.=.w.Z.( a.uXs.s.6.L.YX", -"YXYXYXYXYXYXYXYXYXI.wXOXI.YX1.| s s.XX{ [email protected].=X3.=.K =.6.U.YX", -"YXYXYXYXYXYXYXYXYXYXH.P.YXYXd.S { Z.oXB h. X!.( w.k | / Xs.YXYX", -"YXYXYXYXYXYXYXYXYXYXv.H.YXYX*.o.$.k 0.=Xf.Z.XXs | U uX0.w.S YXYX", -"YXYXYXYXYXYXYXYXYXYXH.H.YXYXP./ K =Xf.~ ~.T 0.f. X6.| U s.L.YXYX", -"YXYXYXYXYXYXYXYXYXYXH.{.YXYXYXS / ~ @.| t.C.!.0.w.L 0.( G.YXYXYX", -"YXYXYXYXZXmXkXkXmXYXv.4X+.YXYXL.K M.o.t.3.3.a.s h.C.}.XX'.YXYXYX", -"YXYXkX:X;X;X;X;Xn.m hX4Xr.r.YX{.3.: [email protected] C.f.~ @.0.2 kXYXYXYX", -"mXqX;XqX:X$Xz.+.H.4XGX<X{.4XwXd d ^.k @.L ~ L z S ~.: (.jXYXYXYX", -"0X$X;X$X:X;X} H.<X{.H.p.v.H.4X<X' P | $.k U { o.K Q ;X0XZXYXYXYX", -"mX;X$X;X;X;X$Xn.Q.'.I.I.I.n.Q.:X$X;X*.Q P 2 B } z.;XqXZXYXYXYXYX", -"YXZX0X;X$X;X;X;X;X;X:X;X;X;X;X;X$X$X0XkXjXmXmXmXZXKXYXYXYXYXYXYX", -"YXYXYXGXmXjXjX0X$XqX;X$XjXjXmXMXmXKXYXYXYXYXYXYXYXYXYXYXYXYXYXYX" -}; diff --git a/wx/hbWizard.cpp b/wx/hbWizard.cpp deleted file mode 100644 index c9473067c..000000000 --- a/wx/hbWizard.cpp +++ /dev/null @@ -1,1259 +0,0 @@ -/***************************************************************************** - * wxHB: - ***************************************************************************** - * Copyright (C) - * $Id: hbWizard.cpp,v 1.4 2005/03/17 19:22:47 titer Exp $ - * - * Authors: - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. - *****************************************************************************/ - -#include "wxHB.h" -#include "hbWizard.h" - -#include "hb32x32.xpm" - -/* All IDs - * CB: ComboBox - * BT: Button - * RD: Radio - * NB: NoteBook - */ -enum -{ - /* Source page */ - ID_SOURCE_RD_DRIVE = wxID_HIGHEST, - ID_SOURCE_RD_DIR, - ID_SOURCE_BT_DIR, - ID_SOURCE_CB_DRIVE, - ID_SOURCE_CB_DIR, - - ID_SOURCE_BT_ABOUT, - ID_SOURCE_BT_PREFERENCES, - - /* Settings page */ - ID_SETTINGS_CB_TITLE = wxID_HIGHEST, - ID_SETTINGS_CB_CHAPTER_START, - ID_SETTINGS_CB_CHAPTER_END, - ID_SETTINGS_CB_AUDIO_LANGUAGE, - ID_SETTINGS_CB_AUDIO_QUALITY, - ID_SETTINGS_CB_SUBTITLE_LANGUAGE, - ID_SETTINGS_CB_VIDEO_QUALITY, - ID_SETTINGS_CB_OUTPUT_FILE, - ID_SETTINGS_CB_OUTPUT_SIZE, - ID_SETTINGS_CB_OUTPUT_BITRATE, - ID_SETTINGS_SC_OUTPUT_FILE_COUNT, - - ID_SETTINGS_RD_OUTPUT_SIZE, - ID_SETTINGS_RD_OUTPUT_BITRATE, - - ID_SETTINGS_CB_VIDEO_CODEC, - ID_SETTINGS_CB_VIDEO_FPS, - ID_SETTINGS_CH_VIDEO_DEINTERLACE, - ID_SETTINGS_CH_VIDEO_CROP, - ID_SETTINGS_SC_VIDEO_CROP_LEFT, - ID_SETTINGS_SC_VIDEO_CROP_TOP, - ID_SETTINGS_SC_VIDEO_CROP_RIGHT, - ID_SETTINGS_SC_VIDEO_CROP_BOTTOM, - ID_SETTINGS_SC_VIDEO_WIDTH, - ID_SETTINGS_SC_VIDEO_HEIGHT, - - ID_SETTINGS_CB_AUDIO_SAMPLERATE, - - ID_SETTINGS_CB_CPU, - ID_SETTINGS_CB_PRIORITY, - - ID_SETTINGS_BT_FILE, - - ID_SETTINGS_NB, - - /* */ - //ID_ALL_FIXME, -}; - -class hbImage: public wxControl -{ -public: - hbImage( wxWindow *parent ) : - wxControl( parent, -1, wxDefaultPosition, wxSize(128,128), - wxBORDER_NONE ) - { - } - - void OnPaint(wxPaintEvent &event) - { - wxPaintDC dc(this); - dc.SetBrush( wxBrush(*wxGREEN, wxSOLID) ); - dc.DrawText( wxU("Solid green"), 10, 10 ); - } - -private: - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE( hbImage, wxControl ) - EVT_PAINT( hbImage::OnPaint ) -END_EVENT_TABLE() - -/***************************************************************************** - * hbWizard - *****************************************************************************/ -static void hbWizardPageHeaders( wxWizardPageSimple *page, - char *psz_title, - char *psz_description, - wxSizer *sizerC ) -{ - wxBoxSizer *sizerH = new wxBoxSizer(wxHORIZONTAL); - - wxStaticBitmap *bm = new wxStaticBitmap( page, wxID_ANY, - wxBitmap(hb_xpm) ); - wxBoxSizer *sizerV = new wxBoxSizer(wxVERTICAL); - - - wxStaticText *title = new wxStaticText( page, -1, wxU(psz_title) ); - wxFont font = title->GetFont(); - font.SetPointSize(14); - title->SetFont( font ); - - sizerV->Add( title, 0, wxALIGN_CENTER|wxALL, 5 ); - - sizerV->Add( new wxStaticLine(page, -1), 0, wxEXPAND|wxALL, 5 ); - - wxStaticText *text = new wxStaticText( page, -1, - wxU( psz_description ) ); - sizerV->Add( text, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); - - //sizerV->Add( 0, 1, 1, wxALL ); - - sizerV->Add( sizerC, 1, wxEXPAND|wxALIGN_CENTER|wxALL, 5 ); - - - /* Add bmp */ - sizerH->Add( bm, 0, wxALL|wxALIGN_CENTER, 5 ); - /* Add sizer */ - sizerH->Add( sizerV, 1, wxEXPAND|wxALIGN_CENTER|wxALL, 5 ); - - /* */ - page->SetSizerAndFit( sizerH ); - - /* Needed ? */ - page->SetAutoLayout( TRUE ); - page->Layout(); -} - -/***************************************************************************** - * hbWizardPageSource: - *****************************************************************************/ -class hbWizardPageSource: public wxWizardPageSimple -{ -public: - hbWizardPageSource( wxWizard *p_wizard ); - virtual ~hbWizardPageSource(); - - - void OnRadio( wxCommandEvent &event ); - void OnBrowseDir( wxCommandEvent &event ); - void OnTextDirChange( wxCommandEvent &event ); - void OnTextDriveChange( wxCommandEvent &event ); - void OnPageChanging( wxWizardEvent &event ); - -private: - - wxDirDialog *dlgDir; - wxComboBox *comboDir; - wxComboBox *comboDrive; - wxButton *buttonDir; - - DECLARE_EVENT_TABLE() -}; - - -hbWizardPageSource::hbWizardPageSource( wxWizard *p_wizard ) : - wxWizardPageSimple(p_wizard) -{ - wxRadioButton *radio[2]; - wxFlexGridSizer *sizerDrive; - wxFlexGridSizer *sizerDir; - wxBoxSizer *sizerH; - wxButton *button; - - /* Create radio and subpanel */ - radio[0] = new wxRadioButton( this, ID_SOURCE_RD_DRIVE, - wxU("DVD drive" ) ); - radio[1] = new wxRadioButton( this, ID_SOURCE_RD_DIR, - wxU("DVD directory" ) ); - - /* - Create DRIVE row */ - sizerDrive = new wxFlexGridSizer( 1, 1, 20 ); - /* combo */ - wxArrayString &sD = *g_hbApp->GetSystemDrive(); - comboDrive = new wxComboBox( this, ID_SOURCE_CB_DRIVE, sD[0], - wxDefaultPosition, wxDefaultSize, - sD ); - sizerDrive->Add( comboDrive, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); - - /* - Create DIR row */ - sizerDir = new wxFlexGridSizer( 2, 1, 20 ); - /* combo */ - comboDir = new wxComboBox( this, ID_SOURCE_CB_DIR, wxU("") ); - sizerDir->Add( comboDir, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); - /* button */ - buttonDir = new wxButton( this, ID_SOURCE_BT_DIR, wxU("Browse...")); - sizerDir->Add( buttonDir, - 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); - - /* - Hop in the main */ - wxFlexGridSizer *sizerChoice = new wxFlexGridSizer( 2, 2, 20 ); - sizerChoice->Add( radio[0], - 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - sizerChoice->Add( sizerDrive, 1, wxEXPAND|wxALIGN_LEFT| - wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - sizerChoice->Add( radio[1], - 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - sizerChoice->Add( sizerDir, 1, wxEXPAND|wxALIGN_LEFT| - wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - - wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL ); - sizer->Add( sizerChoice, 1, - wxEXPAND|wxALIGN_CENTER|wxALL, 5 ); - - sizer->Add( 0, 0 ); - - sizerH = new wxBoxSizer( wxHORIZONTAL ); - sizerH->Add( 0, 0, 1 ); - button = new wxButton( this, ID_SOURCE_BT_ABOUT, wxU("About") ); - button->Enable(FALSE); - sizerH->Add( button, 0, wxALL|wxALIGN_RIGHT, 5 ); - button = new wxButton( this, ID_SOURCE_BT_PREFERENCES, wxU("Preferences")); - button->Enable(FALSE); - sizerH->Add( button, 0, wxALL|wxALIGN_RIGHT, 5 ); - - sizer->Add( sizerH, 0, wxALIGN_BOTTOM|wxEXPAND, 5 ); - - /* */ -#if 0 - hbImage *img = new hbImage( this ); - sizer->Add( img ); -#endif - - - hbWizardPageHeaders( this, "Source", - "Select the DVD (drive or a directory)", sizer ); - - comboDir->Enable( FALSE ); - buttonDir->Enable( FALSE ); - - //SetAutoLayout( TRUE ); - //Layout(); - - /* */ - dlgDir = NULL; -} - -hbWizardPageSource::~hbWizardPageSource() -{ -} - -void hbWizardPageSource::OnRadio( wxCommandEvent &event ) -{ - if( event.GetId() == ID_SOURCE_RD_DRIVE ) - { - comboDrive->Enable( TRUE ); - - comboDir->Enable( FALSE ); - buttonDir->Enable( FALSE ); - } - else - { - comboDir->Enable( TRUE ); - buttonDir->Enable( TRUE ); - - comboDrive->Enable( FALSE ); - } -} - -void hbWizardPageSource::OnBrowseDir( wxCommandEvent &event ) -{ - if( dlgDir == NULL ) - dlgDir = new wxDirDialog( this, wxU( "Choose a directory"), - wxGetCwd() ); - - if( dlgDir->ShowModal() == wxID_OK ) - { - const wxChar *p = dlgDir->GetPath(); - - comboDir->SetValue( p ); - } -} - -void hbWizardPageSource::OnTextDirChange( wxCommandEvent &event ) -{ -} -void hbWizardPageSource::OnTextDriveChange( wxCommandEvent &event ) -{ -} - -void hbWizardPageSource::OnPageChanging( wxWizardEvent &event ) -{ - wxRadioButton *rdDrive = (wxRadioButton*)FindWindow( ID_SOURCE_RD_DRIVE ); - wxString sDevice; - - if( rdDrive->GetValue() ) - { - wxComboBox *cbDrive = (wxComboBox*)FindWindow( ID_SOURCE_CB_DRIVE ); - /* Get the drive value */ - sDevice = cbDrive->GetValue(); - } - else - { - wxComboBox *cbDir = (wxComboBox*)FindWindow( ID_SOURCE_CB_DIR ); - sDevice = cbDir->GetValue(); - - if( sDevice.IsEmpty() ) - { - hbError( this, wxU("You have to give a directory name") ); - event.Veto(); - return; - } - } - - if( g_hbApp->Scan( sDevice ) < 0 ) - { - event.Veto(); - } -} - - - -BEGIN_EVENT_TABLE( hbWizardPageSource, wxWizardPageSimple ) - EVT_RADIOBUTTON( ID_SOURCE_RD_DRIVE, hbWizardPageSource::OnRadio ) - EVT_RADIOBUTTON( ID_SOURCE_RD_DIR, hbWizardPageSource::OnRadio ) - - EVT_BUTTON( ID_SOURCE_BT_DIR, hbWizardPageSource::OnBrowseDir ) - - EVT_TEXT( ID_SOURCE_CB_DIR, hbWizardPageSource::OnTextDirChange ) - EVT_TEXT( ID_SOURCE_CB_DRIVE, hbWizardPageSource::OnTextDriveChange ) - - EVT_WIZARD_PAGE_CHANGING( -1, hbWizardPageSource::OnPageChanging ) -END_EVENT_TABLE() - - -/***************************************************************************** - * hbWizardPageSettings: - *****************************************************************************/ -static wxPanel *PanelSettingsGeneral( wxWindow *p_parent ) -{ - wxPanel *panel = new wxPanel( p_parent, -1, - wxDefaultPosition, wxSize(200, 200)); - wxBoxSizer *sizerV = new wxBoxSizer( wxVERTICAL ); - wxGridSizer *sizerG; - wxBoxSizer *sizerS; - wxStaticBox *ibox; - wxStaticBoxSizer *sbox; - wxFlexGridSizer *sizerF; - wxComboBox *combo; - wxButton *button; - wxRadioButton *radio; - wxSpinCtrl *spin; - - wxArrayString aQ; - - /* Selection (title/chapter) */ - ibox = new wxStaticBox( panel, -1, wxU("Selection") ); - sbox = new wxStaticBoxSizer( ibox, wxHORIZONTAL); - - sbox->Add( new wxStaticText( panel, -1, wxU("Title") ), - 0, wxALL, 5 ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_TITLE, wxU(""), - wxDefaultPosition, wxDefaultSize, 0, NULL, - wxCB_READONLY ); - - sbox->Add( combo, 1, wxEXPAND|wxALL, 5 ); - //sbox->Add( 0, 0, 1 ); - - sbox->Add( new wxStaticText( panel, -1, wxU( "Chapters" ) ), - 0, wxALL, 5 ); - - combo = new wxComboBox( panel, ID_SETTINGS_CB_CHAPTER_START, wxU(""), - wxDefaultPosition, wxDefaultSize, 0, NULL, - wxCB_READONLY ); - sbox->Add( combo, 0, wxEXPAND|wxALL, 5 ); - - sbox->Add( new wxStaticText( panel, -1, wxU( "to" ) ), - 0, wxALL, 5 ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_CHAPTER_END, wxU(""), - wxDefaultPosition, wxDefaultSize, 0, NULL, - wxCB_READONLY ); - - sbox->Add( combo, 0, wxEXPAND|wxALL, 5 ); - - sizerV->Add( sbox, 1, wxEXPAND|wxALL, 5 ); - - /* Sizer for audio + video box */ - sizerG = new wxGridSizer( 1, 2, 10, 10 ); - - /* Audio */ - ibox = new wxStaticBox( panel, -1, wxU("Audio") ); - sbox = new wxStaticBoxSizer( ibox, wxHORIZONTAL); - - sizerF = new wxFlexGridSizer( 2, 2, 20 ); - sizerF->Add( new wxStaticText( panel, -1, wxU( "Language" ) ), - 0, wxALL|wxALIGN_LEFT, 5 ); - //sbox->Add( 0, 0, 1 ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_AUDIO_LANGUAGE, wxU(""), - wxDefaultPosition, wxDefaultSize, 0, NULL, - wxCB_READONLY ); - sizerF->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT, 5 ); - - sizerF->Add( new wxStaticText( panel, -1, wxU( "Quality" ) ), - 0, wxALL|wxALIGN_LEFT, 5 ); - //sbox->Add( 0, 0, 1 ); - - aQ.Clear(); - aQ.Add( wxU("Low - 64 kb/s") ); - aQ.Add( wxU("Normal - 128 kb/s") ); - aQ.Add( wxU("High - 160 kb/s") ); - aQ.Add( wxU("Extra - 192 kb/s") ); - - combo = new wxComboBox( panel, ID_SETTINGS_CB_AUDIO_QUALITY, aQ[2], - wxDefaultPosition, wxDefaultSize, - aQ, wxCB_READONLY ); - sizerF->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT, 5 ); - - sbox->Add( sizerF, 1, wxEXPAND|wxALL, 0 ); - //sizerV->Add( sbox, 0, wxALL, 5 ); - sizerG->Add( sbox, 1, wxEXPAND|wxALL, 0 ); - - /* Video */ - ibox = new wxStaticBox( panel, -1, wxU("Video") ); - sbox = new wxStaticBoxSizer( ibox, wxHORIZONTAL); - - sizerF = new wxFlexGridSizer( 2, 2, 20 ); - - sizerF->Add( new wxStaticText( panel, -1, wxU( "Quality" ) ), - 0, wxALL|wxALIGN_LEFT, 5 ); - - aQ.Clear(); - aQ.Add( wxU("Low (fast)") ); - aQ.Add( wxU("Normal") ); - aQ.Add( wxU("High (slow)") ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_VIDEO_QUALITY, aQ[2], - wxDefaultPosition, wxDefaultSize, - aQ, wxCB_READONLY ); - sizerF->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT, 5 ); - - sizerF->Add( new wxStaticText( panel, -1, wxU( "Subtitle" ) ), - 0, wxALL|wxALIGN_LEFT, 5 ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_SUBTITLE_LANGUAGE, wxU(""), - wxDefaultPosition, wxDefaultSize, 0, NULL, - wxCB_READONLY ); - sizerF->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT, 5 ); - - sbox->Add( sizerF, 0, wxALL, 5 ); - - sizerG->Add( sbox, 1, wxEXPAND|wxALL, 0 ); - - sizerV->Add( sizerG, 1, wxEXPAND|wxALL, 5 ); - - /* Output */ - ibox = new wxStaticBox( panel, -1, wxU("Output") ); - sbox = new wxStaticBoxSizer( ibox, wxVERTICAL); - - sizerF = new wxFlexGridSizer( 3, 1, 20 ); - sizerF->Add( new wxStaticText( panel, -1, wxU("File") ), - 0, wxALL|wxALIGN_LEFT, 5 ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_OUTPUT_FILE, wxU("") ); - - sizerF->Add( combo, 1, wxEXPAND|wxALIGN_RIGHT| - wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - button = new wxButton( panel, ID_SETTINGS_BT_FILE, wxU("Browse...")); - sizerF->Add( button, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); - sbox->Add( sizerF, 0, wxEXPAND|wxALL, 5 ); - - - sizerS = new wxBoxSizer( wxHORIZONTAL ); - - sizerF = new wxFlexGridSizer( 2, 2, 20 ); - - aQ.Clear(); - aQ.Add( wxU("800") ); aQ.Add( wxU("700") ); - aQ.Add( wxU("650") ); aQ.Add( wxU("350") ); - aQ.Add( wxU("250") ); aQ.Add( wxU("200") ); - aQ.Add( wxU("150") ); - radio = new wxRadioButton( panel, ID_SETTINGS_RD_OUTPUT_SIZE, wxU("Size") ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_OUTPUT_SIZE, wxU(""), - wxDefaultPosition, wxDefaultSize, aQ ); - sizerF->Add( radio, 0, wxALL|wxALIGN_LEFT ); - sizerF->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT ); - radio->SetValue( FALSE ); - combo->Enable( FALSE ); - - aQ.Clear(); - aQ.Add( wxU("2500") ); aQ.Add( wxU("2000") ); - aQ.Add( wxU("1500") ); aQ.Add( wxU("1000") ); - aQ.Add( wxU("800") ); aQ.Add( wxU("500") ); - aQ.Add( wxU("300") ); - radio = new wxRadioButton( panel, ID_SETTINGS_RD_OUTPUT_BITRATE, - wxU("Bitrate" ) ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_OUTPUT_BITRATE, aQ[3], - wxDefaultPosition, wxDefaultSize, aQ ); - sizerF->Add( radio, 0, wxALL|wxALIGN_LEFT ); - sizerF->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT ); - radio->SetValue( TRUE ); - combo->Enable( TRUE ); - - sizerS->Add( sizerF, 0, wxALL|wxALIGN_CENTER_VERTICAL ); - - - wxBoxSizer *sizerSS = new wxBoxSizer( wxHORIZONTAL ); - sizerSS->Add( new wxStaticText( panel, -1, wxU( "x" ) ), 0, wxALL, 5 ); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_OUTPUT_FILE_COUNT, wxU("1"), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 1, 5, 1 ); - spin->Enable( FALSE ); - sizerSS->Add( spin, 0, wxALL, 5 ); - - sizerS->Add( sizerSS, 0, wxALL|wxALIGN_CENTER_VERTICAL ); - - sbox->Add( sizerS, 1, wxEXPAND|wxALL, 5 ); - - sizerV->Add( sbox, 1, wxEXPAND|wxALL, 5 ); - - panel->SetSizerAndFit( sizerV ); - - return panel; -} - -static wxPanel *PanelSettingsVideo( wxWindow *p_parent ) -{ - wxPanel *panel = new wxPanel( p_parent, -1, - wxDefaultPosition, wxSize(200, 200)); - wxFlexGridSizer *sizer = new wxFlexGridSizer( 2, 5, 20 ); - wxBoxSizer *sizer2; - wxBoxSizer *sizer3; - wxArrayString aS; - wxComboBox *combo; - wxCheckBox *check; - wxSpinCtrl *spin; - int i; - - - /* Codec */ - sizer->Add( new wxStaticText( panel, -1, wxU("Codec") ), - 1, wxEXPAND|wxALL|wxALIGN_LEFT, 5 ); - aS.Clear(); - aS.Add( wxU("FFmpeg") ); - aS.Add( wxU("XviD") ); - aS.Add( wxU("x264") ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_VIDEO_CODEC, aS[0], - wxDefaultPosition, wxDefaultSize, - aS, wxCB_READONLY ); - sizer->Add( combo, 0, wxALL|wxALIGN_RIGHT, 5 ); - - /* FPS */ - sizer->Add( new wxStaticText( panel, -1, wxU("Fps") ), - 1, wxEXPAND|wxALL|wxALIGN_LEFT, 5 ); - aS.Clear(); - for( i = 0; i < hb_video_rates_count; i++ ) - aS.Add( wxU(hb_video_rates[i].string) ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_VIDEO_FPS, wxU(""), - wxDefaultPosition, wxDefaultSize, - aS, wxCB_READONLY ); - sizer->Add( combo, 0, wxALL|wxALIGN_RIGHT, 5 ); - - - /* Deinterlace */ - check = new wxCheckBox( panel, ID_SETTINGS_CH_VIDEO_DEINTERLACE, - wxU("Deinterlace") ); - check->SetValue( FALSE ); - - sizer->Add( check, 1, wxEXPAND|wxALL|wxALIGN_LEFT, 5 ); - sizer->Add( 0, 0, 0 ); - - /* Crop */ - check = new wxCheckBox( panel, ID_SETTINGS_CH_VIDEO_CROP, wxU("Crop") ); - check->SetValue( FALSE ); - sizer->Add( check, 0, wxTOP|wxBOTTOM| - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 5 ); -#if 0 - sizer2 = new wxBoxSizer( wxVERTICAL ); - radio = new wxRadioButton( panel, ID_SETTINGS_RD_VIDEO_AUTOCROP, - wxU("Autocrop" ) ); - radio->SetValue( TRUE ); - sizer2->Add( radio, 0, wxTOP|wxBOTTOM| - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 5 ); - radio = new wxRadioButton( panel, ID_SETTINGS_RD_VIDEO_CUSTOMCROP, - wxU("Custom crop" ) ); - radio->SetValue( FALSE ); - sizer2->Add( radio, 0, wxTOP|wxBOTTOM| - wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT, 5 ); - sizer->Add( sizer2, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5 ); -#endif - - sizer2 = new wxBoxSizer( wxVERTICAL); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_VIDEO_CROP_TOP, wxU(""), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 0, 2048, 2 ); - spin->Enable( FALSE ); - sizer2->Add( spin, 0, wxALL|wxALIGN_CENTER, 2 ); - sizer3 = new wxBoxSizer( wxHORIZONTAL); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_VIDEO_CROP_LEFT, wxU(""), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 0, 2048, 2 ); - spin->Enable( FALSE ); - sizer3->Add( spin, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 2 ); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_VIDEO_CROP_RIGHT, wxU(""), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 0, 2048, 2 ); - spin->Enable( FALSE ); - sizer3->Add( spin, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 2 ); - sizer2->Add( sizer3, 0, wxALL|wxALIGN_CENTER ); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_VIDEO_CROP_BOTTOM, wxU(""), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 0, 2048, 2 ); - spin->Enable( FALSE ); - sizer2->Add( spin, 0, wxALL|wxALIGN_CENTER, 2 ); - sizer->Add( sizer2, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - - /* Size */ - sizer->Add( new wxStaticText( panel, -1, wxU("Size") ), - 0, wxALL|wxALIGN_LEFT, 5 ); - sizer2 = new wxBoxSizer( wxHORIZONTAL ); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_VIDEO_WIDTH, wxU(""), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 0, 2048, 2 ); - spin->Enable( FALSE ); - sizer2->Add( spin, 0, wxALL, 5 ); - sizer2->Add( new wxStaticText( panel, -1, wxU("x") ), 0, wxALL, 5 ); - spin = new wxSpinCtrl( panel, ID_SETTINGS_SC_VIDEO_HEIGHT, wxU(""), - wxDefaultPosition, wxDefaultSize, - wxSP_ARROW_KEYS, 0, 2048, 2 ); - spin->Enable( FALSE ); - sizer2->Add( spin, 0, wxALL, 5 ); - - sizer->Add( sizer2, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 ); - -#if 0 - sizer->Add( new wxStaticText( panel, -1, wxU("Autocrop: []\n" - "Crop: [] [] [] []\n" - "2 pass: []\n" - "Width: []\n" - "Height: []\n" - "Preview [..]" ) ), - 0, wxALL, 5 ); -#endif - panel->SetSizerAndFit( sizer ); - panel->SetAutoLayout( TRUE ); - panel->Layout(); - - return panel; -} - -static wxPanel *PanelSettingsAudio( wxWindow *p_parent ) -{ - wxPanel *panel = new wxPanel( p_parent, -1, - wxDefaultPosition, wxSize(200, 200)); - wxFlexGridSizer * sizer = new wxFlexGridSizer( 2, 1, 20 ); - wxArrayString aS; - wxComboBox *combo; - unsigned int i; - -#if 0 - /* TODO in the right way (there is a few problem with file type) */ - /* Codec */ - sizer->Add( new wxStaticText( panel, -1, wxU("Codec") ), - 0, wxALL|wxALIGN_LEFT, 5 ); - aS.Clear(); - aS.Add( "Faac" ); - aS.Add( "Lame" ); - aS.Add( "Vorbis" ); - aS.Add( "Ac3" ); - aS.Add( "Mpga" ); - aS.Add( "LPCM" ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_VIDEO_CODEC, aS[0], - wxDefaultPosition, wxDefaultSize, - aS, wxCB_READONLY ); - sizer->Add( combo, 1, wxEXPAND|wxALL|wxALIGN_RIGHT, 5 ); -#endif - sizer->Add( new wxStaticText( panel, -1, wxU("Samplerate") ), - 1, wxEXPAND|wxALL|wxALIGN_LEFT, 5 ); - aS.Clear(); - for( i = 0; i < hb_audio_rates_count; i++ ) - aS.Add( wxString::Format( wxU("%d"), hb_audio_rates[i].rate ) ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_AUDIO_SAMPLERATE, wxU(""), - wxDefaultPosition, wxDefaultSize, - aS, wxCB_READONLY ); - sizer->Add( combo, 0, wxALL|wxALIGN_RIGHT, 5 ); - - - panel->SetSizerAndFit( sizer ); - - return panel; -} - -static wxPanel *PanelSettingsOthers( wxWindow *p_parent ) -{ - wxPanel *panel = new wxPanel( p_parent, -1, - wxDefaultPosition, wxSize(200, 200)); - - wxBoxSizer *sizer_row = new wxBoxSizer( wxVERTICAL ); - wxFlexGridSizer *sizer = new wxFlexGridSizer( 2, 2, 20 ); - wxComboBox *combo; - wxArrayString aS; - int i; - int i_count; - - - /* CPU */ - sizer->Add( new wxStaticText( panel, -1, wxU( "CPU" ) ), - 1, wxEXPAND|wxALL|wxALIGN_LEFT ); - - i_count = g_hbApp->GetSystemCpuCount(); - aS.Clear(); - for( i = 0; i < i_count; i++ ) - aS.Add( wxString::Format( wxU("%d"), i+1 ) ); - - combo = new wxComboBox( panel, ID_SETTINGS_CB_CPU, - aS[g_hbApp->GetDefaultCpuCount()-1], - wxDefaultPosition, wxDefaultSize, - aS, wxCB_READONLY ); - sizer->Add( combo, 0, wxALL|wxALIGN_RIGHT ); - - /* Priority */ - sizer->Add( new wxStaticText( panel, -1, wxU( "Priority" ) ), - 1, wxEXPAND|wxALL|wxALIGN_LEFT ); - - aS.Clear(); - aS.Add( wxU("Highest") ); - aS.Add( wxU("Above Normal") ); - aS.Add( wxU("Normal") ); - aS.Add( wxU("Below Normal") ); - aS.Add( wxU("Lowest") ); - combo = new wxComboBox( panel, ID_SETTINGS_CB_PRIORITY, - aS[4-g_hbApp->GetDefaultPriority()], - wxDefaultPosition, wxDefaultSize, - aS, wxCB_READONLY ); - sizer->Add( combo, 0, wxALL|wxALIGN_RIGHT ); - combo->Enable( FALSE ); /* Marche pas pr le moment */ - - sizer_row->Add( sizer, 0, wxEXPAND|wxALL, 5 ); - - panel->SetSizerAndFit( sizer_row ); - - return panel; -} - - -class hbWizardPageSettings: public wxWizardPageSimple -{ -public: - hbWizardPageSettings( wxWizard *p_wizard ); - virtual ~hbWizardPageSettings(); - - void OnBrowse( wxCommandEvent &event ); - void OnTitle( wxCommandEvent &event ); - void OnChapter( wxCommandEvent &event ); - void OnRadio( wxCommandEvent &event ); - void OnAudio( wxCommandEvent &event ); - - void SetTitle( int i_title = -1 ); - void OnPageChanging( wxWizardEvent &event ); - void OnPageChanged( wxWizardEvent &event ); - -private: - DECLARE_EVENT_TABLE() - wxFileDialog *dlgFile; -}; - -hbWizardPageSettings::hbWizardPageSettings( wxWizard *p_wizard ) : - wxWizardPageSimple(p_wizard) -{ - wxNotebook *nb = new wxNotebook( this, ID_SETTINGS_NB ); - wxNotebookSizer *sizerN = new wxNotebookSizer( nb ); - - /* General settings */ - nb->AddPage( PanelSettingsGeneral(nb), wxU("General"), TRUE ); - - /* Advanced */ - nb->AddPage( PanelSettingsVideo(nb), wxU("Advanced Video"), FALSE ); - - /* Advanced */ - nb->AddPage( PanelSettingsAudio(nb), wxU("Advanced Audio"), FALSE ); - - /* Others */ - nb->AddPage( PanelSettingsOthers(nb), wxU("Others"), FALSE ); - - - hbWizardPageHeaders( this, "Settings", "Set your settings ;).", - sizerN ); - - /* */ - dlgFile = NULL; -} - -hbWizardPageSettings::~hbWizardPageSettings() -{ -} - -void hbWizardPageSettings::SetTitle( int i_title ) -{ - wxArrayString &aT = *g_hbApp->GetTitles(); - wxArrayString *p_array; - wxComboBox *title; - wxComboBox *chp; - wxComboBox *lg; - wxComboBox *fps; - wxComboBox *arate; - wxString sL; - bool bSetDefault = false; - int i; - - /* Update title */ - title = (wxComboBox*)FindWindow( ID_SETTINGS_CB_TITLE ); - if( i_title < 0 ) - { - title->Clear(); - title->Append( aT ); - - i_title = g_hbApp->GetDefaultTitle(); - title->SetValue( aT[i_title] ); - bSetDefault = true; - } - - g_hbApp->SetTitle( i_title ); - - - /* Update chapter start/end */ - chp = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CHAPTER_START ); - chp->Clear(); - for( i = 0; i < g_hbApp->GetChaptersCount(); i++ ) - chp->Append( wxString::Format( wxU("%d"), i+1 ) ); - chp->SetValue( wxU("1") ); - - chp = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CHAPTER_END ); - chp->Clear(); - for( i = 0; i < g_hbApp->GetChaptersCount(); i++ ) - chp->Append( wxString::Format( wxU("%d"), i+1 ) ); - chp->SetValue( wxString::Format( wxU("%d"), g_hbApp->GetChaptersCount() ) ); - - /* Update Audio language */ - lg = (wxComboBox*)FindWindow( ID_SETTINGS_CB_AUDIO_LANGUAGE ); - sL = lg->GetValue(); - lg->Clear(); - p_array = g_hbApp->GetTracksAudio(); - lg->Append( *p_array ); - - if( bSetDefault || p_array->Index(sL) == wxNOT_FOUND ) - { - sL = g_hbApp->GetDefaultAudio(); - if( p_array->Index( sL ) == wxNOT_FOUND ) - sL = (*p_array)[0]; - } - lg->SetValue( sL ); - g_hbApp->SetTrackAudio( p_array->Index(sL) );/* Needed for audio settings */ - - lg = (wxComboBox*)FindWindow( ID_SETTINGS_CB_SUBTITLE_LANGUAGE ); - sL = lg->GetValue(); - lg->Clear(); - p_array = g_hbApp->GetTracksSubtitle(); - lg->Append( *p_array ); - - if( bSetDefault || p_array->Index(sL) == wxNOT_FOUND ) - { - sL = g_hbApp->GetDefaultSubtitle(); - if( p_array->Index( sL ) == wxNOT_FOUND ) - sL = p_array->Last(); - } - lg->SetValue( sL ); - - if( bSetDefault || g_hbApp->GetDefaultVideoRateBase() != 0 ) - { - int i_base = g_hbApp->GetDefaultVideoRateBase(); - - if( i_base == 0 || !bSetDefault ) - i_base = g_hbApp->GetVideoRateBase(); - - fps = (wxComboBox*)FindWindow( ID_SETTINGS_CB_VIDEO_FPS ); - for( i = 0; i < hb_video_rates_count; i++ ) - { - if( hb_video_rates[i].rate == i_base ) - { - fps->SetSelection( i ); - break; - } - } - } - - if( bSetDefault || g_hbApp->GetDefaultAudioSamplerate() != 0 ) - { - int i_rate = g_hbApp->GetDefaultAudioSamplerate(); - - if( i_rate == 0 || !bSetDefault ) - i_rate = g_hbApp->GetAudioSamplerate(); - if( i_rate == 0 ) - i_rate = 44100; - - arate = (wxComboBox*)FindWindow( ID_SETTINGS_CB_AUDIO_SAMPLERATE ); - arate->SetValue( wxString::Format( wxU("%d"), i_rate ) ); - } - - /* Set auto crop values and width size */ - if( bSetDefault ) - { - wxSpinCtrl *spin; - int crop[4]; - int i_width, i_height; - - g_hbApp->GetVideoAutocrop( crop ); - g_hbApp->GetVideoSize( &i_width, &i_height ); - - /* Crop */ - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_TOP ); - spin->SetValue( crop[0] ); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_BOTTOM ); - spin->SetValue( crop[1] ); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_LEFT ); - spin->SetValue( crop[2] ); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_RIGHT ); - spin->SetValue( crop[3] ); - - /* Size */ - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_WIDTH ); - spin->SetValue( i_width - (crop[2]+crop[3]) ); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_HEIGHT ); - spin->SetValue( i_height - (crop[0]+crop[1]) ); - } -} - - -void hbWizardPageSettings::OnTitle( wxCommandEvent &event ) -{ - SetTitle( event.GetSelection() ); -} - -void hbWizardPageSettings::OnChapter( wxCommandEvent &event ) -{ - wxComboBox *start = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CHAPTER_START ); - wxComboBox *end = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CHAPTER_END ); - - if( event.GetId() == ID_SETTINGS_CB_CHAPTER_START ) - { - if( start->GetSelection() > end->GetSelection() ) - end->SetSelection( start->GetSelection() ); - } - else - { - if( end->GetSelection() < start->GetSelection() ) - start->SetSelection( end->GetSelection() ); - } -} - -void hbWizardPageSettings::OnBrowse( wxCommandEvent &event ) -{ - if( dlgFile == NULL ) - dlgFile = new wxFileDialog( this, wxU( "Choose a file"), - wxGetCwd() ); - - if( dlgFile->ShowModal() == wxID_OK ) - { - const wxChar *p = dlgFile->GetPath(); - wxComboBox *file = (wxComboBox*)FindWindow(ID_SETTINGS_CB_OUTPUT_FILE); - file->SetValue( p ); - } -} - -void hbWizardPageSettings::OnRadio( wxCommandEvent &event ) -{ - wxRadioButton *rSize = - (wxRadioButton*)FindWindow( ID_SETTINGS_RD_OUTPUT_SIZE ); - wxRadioButton *rBitrate = - (wxRadioButton*)FindWindow( ID_SETTINGS_RD_OUTPUT_BITRATE ); - wxComboBox *cSize = - (wxComboBox*)FindWindow( ID_SETTINGS_CB_OUTPUT_SIZE ); - wxComboBox *cBitrate = - (wxComboBox*)FindWindow( ID_SETTINGS_CB_OUTPUT_BITRATE ); - - if( event.GetId() == ID_SETTINGS_RD_OUTPUT_SIZE ) - { - /* FIXME is that needed ?? */ - rBitrate->SetValue(FALSE); - cBitrate->Enable(FALSE); - cSize->Enable(TRUE); - } - else - { - rSize->SetValue(FALSE); - cSize->Enable(FALSE); - cBitrate->Enable(TRUE); - } -} -void hbWizardPageSettings::OnAudio( wxCommandEvent &event ) -{ - if( g_hbApp->GetDefaultAudioSamplerate() == 0 ) - { - int i_rate = g_hbApp->GetAudioSamplerate(); - wxComboBox *arate = - (wxComboBox*)FindWindow( ID_SETTINGS_CB_AUDIO_SAMPLERATE ); - - if( i_rate == 0 ) i_rate = 44100; - arate->SetValue( wxString::Format( wxU("%d"), i_rate ) ); - } -} - -void hbWizardPageSettings::OnPageChanging( wxWizardEvent &event ) -{ - wxComboBox *cFile; - wxComboBox *cChap; - wxComboBox *cLang; - wxComboBox *cQ; - wxComboBox *cCombo; - wxCheckBox *cCheck; - wxRadioButton *rSize; - wxSpinCtrl *spin; - int i_bitrate_audio; - int crop[4]; - int i_width, i_height; - - wxString sFile; - - if( !event.GetDirection() ) - return; - - /* We need to validate params and start encoding */ - - /* Get and Check validity of parameters */ - cFile = (wxComboBox*)FindWindow( ID_SETTINGS_CB_OUTPUT_FILE ); - sFile = cFile->GetValue(); - if( sFile.IsEmpty() ) - { - hbError( this, wxU("You have to give a output file name") ); - event.Veto(); - return; - } - g_hbApp->SetOutputFile( sFile ); - - /* Chapter start/end */ - cChap = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CHAPTER_START ); - g_hbApp->SetChapterStart( cChap->GetSelection() + 1 ); - - cChap = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CHAPTER_END ); - g_hbApp->SetChapterEnd( cChap->GetSelection() + 1 ); - - /* Audio */ - cLang = (wxComboBox*)FindWindow( ID_SETTINGS_CB_AUDIO_LANGUAGE ); - g_hbApp->SetTrackAudio( cLang->GetSelection(), 0 ); - /* FIXME find a better way */ - cQ = (wxComboBox*)FindWindow( ID_SETTINGS_CB_AUDIO_QUALITY ); - sscanf( cQ->GetValue().ToAscii(), "%*s - %d kb/s", &i_bitrate_audio ); - g_hbApp->SetAudioBitrate( i_bitrate_audio ); - - long arate; - cCombo = (wxComboBox*)FindWindow( ID_SETTINGS_CB_AUDIO_SAMPLERATE ); - cCombo->GetValue().ToLong( &arate ); - g_hbApp->SetAudioSamplerate( arate ); - - /* Subs */ - cLang = (wxComboBox*)FindWindow( ID_SETTINGS_CB_SUBTITLE_LANGUAGE ); - g_hbApp->SetTrackSubtitle( cLang->GetSelection() ); - - /* Video/Quality */ - cQ = (wxComboBox*)FindWindow( ID_SETTINGS_CB_VIDEO_QUALITY ); - if( cQ->GetSelection() == 3 ) - g_hbApp->SetVideoPass( 2 ); - else - g_hbApp->SetVideoPass( 1 ); - /* Video codec */ - cCombo = (wxComboBox*)FindWindow( ID_SETTINGS_CB_VIDEO_CODEC ); - g_hbApp->SetVideoCodec( cCombo->GetValue() ); - /* Video fps */ - cCombo = (wxComboBox*)FindWindow( ID_SETTINGS_CB_VIDEO_FPS ); - g_hbApp->SetVideoRateBase( hb_video_rates[cCombo->GetSelection()].rate ); - /* Deinterlace */ - cCheck = (wxCheckBox*)FindWindow( ID_SETTINGS_CH_VIDEO_DEINTERLACE ); - g_hbApp->SetVideoDeinterlace( cCheck->GetValue() ); - /* Crop */ - cCheck = (wxCheckBox*)FindWindow( ID_SETTINGS_CH_VIDEO_CROP ); - if( cCheck->GetValue() ) - { - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_TOP ); - crop[0] = spin->GetValue(); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_BOTTOM ); - crop[1] = spin->GetValue(); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_LEFT ); - crop[2] = spin->GetValue(); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_CROP_RIGHT ); - crop[3] = spin->GetValue(); - g_hbApp->SetVideoCrop( crop ); - } - else - { - g_hbApp->SetVideoCrop( NULL ); - } - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_WIDTH ); - i_width = spin->GetValue(); - spin = (wxSpinCtrl*)FindWindow( ID_SETTINGS_SC_VIDEO_HEIGHT ); - i_height = spin->GetValue(); - g_hbApp->SetVideoSize( i_width, i_height ); - - - rSize = (wxRadioButton*)FindWindow( ID_SETTINGS_RD_OUTPUT_SIZE ); - if( rSize->GetValue() ) - { - wxComboBox *cSize = - (wxComboBox*)FindWindow( ID_SETTINGS_CB_OUTPUT_SIZE ); - long i_size; - - cSize->GetValue().ToLong( &i_size ); - if( i_size <= 0 ) - { - hbError( this, wxU("Invalide file size") ); - event.Veto(); - return; - } - g_hbApp->SetTotalSize( i_size ); - } - else - { - wxComboBox *cBitrate = - (wxComboBox*)FindWindow( ID_SETTINGS_CB_OUTPUT_BITRATE ); - long i_bitrate; - - cBitrate->GetValue().ToLong( &i_bitrate ); - if( i_bitrate<= 0 ) - { - hbError( this, wxU("Invalid total bitrate") ); - event.Veto(); - return; - } - else if( i_bitrate <= i_bitrate_audio ) - { - hbError( this, wxU("Incompatible total bitrate with audio bitrate") ); - event.Veto(); - return; - } - g_hbApp->SetTotalBitrate( i_bitrate ); - } - - /* Other settings */ - /* CPU */ - cCombo = (wxComboBox*)FindWindow( ID_SETTINGS_CB_CPU ); - g_hbApp->SetCpuCount( cCombo->GetSelection() ); - - cCombo = (wxComboBox*)FindWindow( ID_SETTINGS_CB_PRIORITY ); - g_hbApp->SetPriority( cCombo->GetSelection() ); - - /* TODO finish */ - - /* Start the encode (TODO) */ - if( g_hbApp->Encode() < 0 ) - { - event.Veto(); /* Wrong */ - return; - } -} -void hbWizardPageSettings::OnPageChanged( wxWizardEvent &event ) -{ - /* Initialise avec le titre par d�faut */ - SetTitle(); -} - -BEGIN_EVENT_TABLE( hbWizardPageSettings, wxWizardPageSimple ) - EVT_BUTTON( ID_SETTINGS_BT_FILE, hbWizardPageSettings::OnBrowse ) - EVT_COMBOBOX( ID_SETTINGS_CB_TITLE, hbWizardPageSettings::OnTitle ) - EVT_COMBOBOX( ID_SETTINGS_CB_CHAPTER_START,hbWizardPageSettings::OnChapter) - EVT_COMBOBOX( ID_SETTINGS_CB_CHAPTER_END, hbWizardPageSettings::OnChapter ) - EVT_COMBOBOX( ID_SETTINGS_CB_AUDIO_LANGUAGE, hbWizardPageSettings::OnAudio ) - EVT_WIZARD_PAGE_CHANGING( -1, hbWizardPageSettings::OnPageChanging ) - EVT_WIZARD_PAGE_CHANGED( -1, hbWizardPageSettings::OnPageChanged ) - EVT_RADIOBUTTON( ID_SETTINGS_RD_OUTPUT_SIZE, hbWizardPageSettings::OnRadio) - EVT_RADIOBUTTON( ID_SETTINGS_RD_OUTPUT_BITRATE, hbWizardPageSettings::OnRadio) -END_EVENT_TABLE() - - -/***************************************************************************** - * hbWizardPageEncode: - *****************************************************************************/ -class hbWizardPageEncode: public wxWizardPageSimple -{ -public: - hbWizardPageEncode( wxWizard *p_wizard ); - virtual ~hbWizardPageEncode(); - -private: - //DECLARE_EVENT_TABLE() -}; - -hbWizardPageEncode::hbWizardPageEncode( wxWizard *p_wizard ) : - wxWizardPageSimple(p_wizard) -{ - wxBoxSizer *sizer; - sizer = new wxBoxSizer( wxVERTICAL ); -#if 0 - wxGauge * gauge; - sizer->Add( new wxStaticText( this, -1, wxU("Progess: x%%" ) ) ); - - gauge = new wxGauge( this, -1, 100 ); - gauge->SetValue( 50 ); - - sizer->Add( gauge ); -#endif - - - hbWizardPageHeaders( this, "Success", - "The encode is finished", - sizer ); - -} - -hbWizardPageEncode::~hbWizardPageEncode() -{ -} - -/**************************************************************************** - * hbWizard: - ****************************************************************************/ -hbWizard::hbWizard( wxWindow *p_parent) : - wxWizard( p_parent, -1, wxU("HandBrake"), wxNullBitmap, wxDefaultPosition) -{ - page1 = new hbWizardPageSource( this ); - page2 = new hbWizardPageSettings( this ); - page3 = new hbWizardPageEncode( this ); - - wxWizardPageSimple::Chain( page1, page2 ); - wxWizardPageSimple::Chain( page2, page3 ); - - //SetPageSize( wxSize( 500, 400 ) ); - FitToPage( page1 ); - FitToPage( page2 ); - FitToPage( page3 ); -} - -hbWizard::~hbWizard() -{ - Destroy(); - /* Is that ok */ - delete page1; - delete page2; - delete page3; -} - -void hbWizard::Run() -{ - fprintf( stderr, "hbWizard::Run\n" ); - - RunWizard( page1 ); -} - diff --git a/wx/hbWizard.h b/wx/hbWizard.h deleted file mode 100644 index a66413abe..000000000 --- a/wx/hbWizard.h +++ /dev/null @@ -1,43 +0,0 @@ -/***************************************************************************** - * wizard.h: - ***************************************************************************** - * Copyright (C) - * $Id: hbWizard.h,v 1.1 2005/01/16 15:59:21 titer Exp $ - * - * Authors: - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. - *****************************************************************************/ - -class hbWizardPageSource; -class hbWizardPageSettings; -class hbWizardPageEncode; - -class hbWizard: public wxWizard -{ -public: - hbWizard( wxWindow *p_parent ); - virtual ~hbWizard(); - - void Run(); - -private: - int i_essai; - hbWizardPageSource *page1; - hbWizardPageSettings *page2; - hbWizardPageEncode *page3; - - //DECLARE_EVENT_TABLE() -}; diff --git a/wx/wxHB.cpp b/wx/wxHB.cpp deleted file mode 100644 index b336290dd..000000000 --- a/wx/wxHB.cpp +++ /dev/null @@ -1,684 +0,0 @@ -/***************************************************************************** - * wxHB: - ***************************************************************************** - * Copyright (C) - * $Id: wxHB.cpp,v 1.8 2005/03/26 23:04:17 titer Exp $ - * - * Authors: - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. - *****************************************************************************/ - -#include "wxHB.h" -#include "hbWizard.h" - -#ifdef SYS_CYGWIN -# include <windows.h> -#endif - -/**************************************************************************** - * Definitions / Variables - ****************************************************************************/ -class hbApp *g_hbApp = NULL; - -IMPLEMENT_APP( hbApp ) - -/**************************************************************************** - * Helpers class - ****************************************************************************/ -class hbAppTimer: public wxTimer -{ -public: - hbAppTimer() - { - Start( 50, wxTIMER_CONTINUOUS ); - } - virtual void Notify() - { - g_hbApp->Update(); - } -}; - -class hbAppProgress: public wxDialog -{ -public: - hbAppProgress( wxWindow *parent, wxString title, wxString msg ) : - wxDialog( parent, -1, title, wxDefaultPosition, wxSize( 250, 300), - wxDEFAULT_DIALOG_STYLE ) - { - /* Create widgets */ - txt = new wxStaticText( this, -1, msg ); - gauge = new wxGauge( this, -1, 100 ); - button = new wxButton( this, wxID_CANCEL, wxU("Cancel") ); - - /* Add evrything in a sizer */ - wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL ); - sizer->Add( txt, 1, wxEXPAND|wxALIGN_CENTER|wxALL, 5 ); - - wxBoxSizer *sizerH = new wxBoxSizer( wxHORIZONTAL ); - sizerH->Add( gauge, 1, wxALIGN_CENTER|wxALL, 5 ); - sizer->Add( sizerH, 0, wxALIGN_CENTER|wxALL, 5 ); - - sizer->Add( button, 0, wxALIGN_CENTER_HORIZONTAL| - wxALIGN_BOTTOM|wxALL, 5 ); - //SetSizerAndFit( sizer ); - SetSizer( sizer ); - } - - void SetProgress( int i_percent, wxString msg ) - { - gauge->SetValue( i_percent ); - txt->SetLabel( msg ); - } - - void OnClose( wxCloseEvent &event ) - { - EndModal( wxID_CANCEL ); - } - -private: - wxStaticText *txt; - wxGauge *gauge; - wxButton *button; - - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE( hbAppProgress, wxDialog ) - EVT_CLOSE( hbAppProgress::OnClose ) -END_EVENT_TABLE() - -/**************************************************************************** - * hbApp class - ****************************************************************************/ - -/* OnInit: Call at the very start and put every in place - */ -bool hbApp::OnInit() -{ - /* Export hbApp */ - g_hbApp = this; - - - /* Init all variables */ - isEnd = false; - - progress = NULL; - - i_title = -1; - titles = NULL; - title = NULL; - - audios = NULL; - subs = NULL; - - systemDrive = NULL; - - /* Start HB */ - if( Init() ) - return false; - - /* Start out timer */ - timer = new hbAppTimer(); - - /* Create and Start the wizard */ - wizard = new hbWizard( NULL ); - wizard->Run(); - - /* Special hack FIXME */ - isEnd = true; - - return true; -} - -/* OnExit: - */ -int hbApp::OnExit() -{ - delete timer; - delete wizard; - - /* End hb */ - End(); - - /* Delete others FIXME */ - - return 0; -} - -/* Init: - */ -int hbApp::Init() -{ - /* Create a hb instance */ - hbHandle = hb_init( HB_DEBUG_NONE, 1 ); - if( hbHandle == NULL ) - return -1; - - return 0; -} -/* Scan: - */ -int hbApp::Scan( wxString sDevice ) -{ - if( sDevice.IsEmpty() ) - return -1; - - /* Reset state */ - i_title = -1; - if( titles ) delete titles; titles = NULL; - if( audios ) delete audios; audios = NULL; - if( subs ) delete subs; subs = NULL; - title = NULL; - - /* Append a \ if needed */ - if( sDevice.Length() == 2 && sDevice.Last() == ':' ) - sDevice.Append( '\\' ); - - /* Launch the scan (all titles) */ - hb_scan( hbHandle, sDevice.ToAscii(), 0 ); - - /* Create a progress report */ - progress = new hbAppProgress( wizard, wxU("Scanning..."), wxU("Opening ")+sDevice); - progress->ShowModal(); - - if( !hb_list_count( hb_get_titles( hbHandle ) ) ) - { - hbError( wizard, wxU("Scanning failed") ); - return -1; - } - - /* FIXME test if the scan is complete */ - - - return 0; -} -/* Encode: - */ -int hbApp::Encode() -{ - hb_state_t s; - - /* Maybe check a few things like: - * - compatible muxer and codecs */ - - /* Start the encoding */ - hb_add( hbHandle, title->job ); - hb_start( hbHandle ); - - /* FIXME use the wizard instead */ - /* Create a progress report */ - progress = new hbAppProgress( wizard, wxU("Encoding..."), wxU("0%")); - progress->ShowModal(); - - hb_get_state( hbHandle, &s ); - if( s.param.workdone.error != HB_ERROR_NONE ) - { - hb_stop( hbHandle ); /* FIXME to a proper handling */ - hbError( wizard, wxU("Encoding failed/stopped") ); - return -1; - } - - /* bad */ - return 0; -} - -/* End: - */ -void hbApp::End() -{ - hb_close( &hbHandle ); -} - - -wxArrayString *hbApp::GetTitles() -{ - hb_list_t *list; - int i_count; - int i; - - if( titles ) - return titles; - - /* Create the title list */ - list = hb_get_titles( hbHandle ); - - i_count = hb_list_count( list ); - if( i_count <= 0 ) - return NULL; - - titles = new wxArrayString(); - for( i = 0; i < i_count; i++ ) - { - hb_title_t *t = (hb_title_t*)hb_list_item( list, i ); - wxString name = wxString::Format( wxU("%d - %d:%02d:%02d"), - t->index, - t->hours, t->minutes, t->seconds ); - titles->Add( name ); - } - - return titles; -} - -void hbApp::SetTitle( int _i_title ) -{ - int i; - - if( i_title == _i_title ) - return; - - i_title = _i_title; - title = (hb_title_t*)hb_list_item( hb_get_titles( hbHandle ), i_title ); - if( audios ) delete audios; audios = NULL; - if( subs ) delete subs; subs = NULL; - - for( i = 0; i < 8; i++ ) - title->job->audios[i] = -1; - title->job->subtitle = -1; -} - -int hbApp::GetDefaultTitle() -{ - hb_list_t *list; - int i_best = -1; - int i_best_length = 0; - int i; - - list = hb_get_titles( hbHandle ); - for( i = 0; i < hb_list_count( list ); i++ ) - { - hb_title_t *t = (hb_title_t*)hb_list_item( list, i ); - int i_length = t->hours * 3600 + t->minutes*60 + t->seconds; - - if( i_best < 0 || i_length > i_best_length ) - { - i_best = i; - i_best_length = i_length; - } - } - - return i_best; -} - - - -int hbApp::GetChaptersCount() -{ - if( i_title < 0 ) - return 0; - - return hb_list_count( title->list_chapter ); -} - -void hbApp::SetChapterStart( int i_chapter ) -{ - title->job->chapter_start = i_chapter; -} - -void hbApp::SetChapterEnd( int i_chapter ) -{ - title->job->chapter_end = i_chapter; -} - -wxArrayString *hbApp::GetTracksAudio() -{ - int i; - if( audios ) - return audios; - - audios = new wxArrayString(); - for( i = 0; i < hb_list_count( title->list_audio ); i++ ) - { - hb_audio_t *a = (hb_audio_t*)hb_list_item( title->list_audio, i ); - - audios->Add( wxU(a->lang) ); - } - audios->Add( wxU("None") ); - - return audios; -} -void hbApp::SetTrackAudio( int i_track, int i_pos ) -{ - if( i_pos >= 0 && i_pos < hb_list_count( title->list_audio ) ) - title->job->audios[i_pos] = i_track; - else - title->job->audios[i_pos] = -1; -} - -wxArrayString *hbApp::GetTracksSubtitle() -{ - int i; - - if( subs ) - return subs; - - subs = new wxArrayString(); - for( i = 0; i < hb_list_count( title->list_subtitle ); i++ ) - { - hb_subtitle_t *s = - (hb_subtitle_t*)hb_list_item( title->list_subtitle, i ); - - subs->Add( wxU(s->lang) ); - } - subs->Add( wxU("None") ); - - return subs; -} - -void hbApp::SetTrackSubtitle( int i_track ) -{ - if( i_track >= 0 && i_track < hb_list_count( title->list_subtitle ) ) - title->job->subtitle = i_track; - else - title->job->subtitle = -1; -} - -void hbApp::SetOutputFile( wxString sFile ) -{ - char *psz; - - title->job->file = strdup( sFile.ToAscii() ); /* FIXME do we need strdup ? */ - - psz = strrchr( title->job->file, '.' ); - if( psz == NULL ) - title->job->mux = HB_MUX_AVI; /* By default, FIXME */ - else if( !strcasecmp( psz, ".avi" ) ) - title->job->mux = HB_MUX_AVI; - else if( !strcasecmp( psz, ".mp4" ) || !strcasecmp( psz, ".mov") ) - title->job->mux = HB_MUX_MP4; - else if( !strcasecmp( psz, ".ogg" ) || !strcasecmp( psz, ".ogm") ) - title->job->mux = HB_MUX_OGM; - else - title->job->mux = HB_MUX_AVI; /* By default */ - - /* Fix acodec value */ - switch( title->job->mux ) - { - case HB_MUX_AVI: - title->job->acodec = HB_ACODEC_LAME; - break; - case HB_MUX_MP4: - title->job->acodec = HB_ACODEC_FAAC; - break; - case HB_MUX_OGM: - title->job->acodec = HB_ACODEC_VORBIS; - break; - } -} - -void hbApp::SetAudioBitrate( int i_bitrate ) -{ - int i_old = title->job->abitrate; - - title->job->abitrate = i_bitrate; - - if( title->job->vbitrate > 0 ) - title->job->vbitrate = title->job->vbitrate + (i_old - i_bitrate); -} - -void hbApp::SetTotalBitrate( int i_bitrate ) -{ - title->job->vbitrate = i_bitrate - title->job->abitrate; - - if( title->job->vbitrate <= 0 ) - title->job->vbitrate = 1; -} - -void hbApp::SetTotalSize( int i_size ) -{ - /* XXX */ -} - -void hbApp::SetVideoPass( int i_pass ) -{ - /* FIXME is 0 or 1 valid for 1 pass ? */ - if( i_pass <= 1 ) - title->job->pass = 0; - else if( i_pass == 2 ) - title->job->pass = 2; -} - -void hbApp::SetVideoCodec( wxString sCodec ) -{ - if( sCodec.Lower() == wxU("ffmpeg") ) - title->job->vcodec = HB_VCODEC_FFMPEG; - else if( sCodec.Lower() == wxU("xvid") ) - title->job->vcodec = HB_VCODEC_XVID; - else if( sCodec.Lower() == wxU("x264") ) - title->job->vcodec = HB_VCODEC_XVID; -} - -void hbApp::SetVideoDeinterlace( bool b_deinterlace ) -{ - title->job->deinterlace = b_deinterlace ? 1 : 0; -} - -void hbApp::SetPriority( int i_priority ) -{ - /* Doesn't work :(( */ -#ifdef SYS_CYGWIN - switch( i_priority ) - { - case HB_PRIORITY_ABOVE_NORMAL: - i_priority = THREAD_PRIORITY_ABOVE_NORMAL; - break; - case HB_PRIORITY_BELOW_NORMAL: - i_priority = THREAD_PRIORITY_BELOW_NORMAL; - break; - case HB_PRIORITY_LOWEST: - i_priority = THREAD_PRIORITY_LOWEST; - break; - case HB_PRIORITY_HIGHEST: - i_priority = THREAD_PRIORITY_HIGHEST; - break; - - case HB_PRIORITY_NORMAL: - default: - i_priority = THREAD_PRIORITY_NORMAL; - break; - } - ::SetThreadPriority( GetCurrentThread(), i_priority ); -#else - /* TODO */ -#endif -} - -void hbApp::SetCpuCount( int i_cpu ) -{ - hb_set_cpu_count( hbHandle, i_cpu ); -} - -int hbApp::GetVideoRateBase() -{ - return title->rate_base; -} - -void hbApp::SetVideoRateBase( int i_base ) -{ - title->job->vrate_base = i_base; - title->job->vrate = HB_VIDEO_RATE_BASE; -} -void hbApp::GetVideoAutocrop( int crop[4] ) -{ - int i; - for( i = 0; i < 4; i++ ) - crop[i] = title->crop[i]; -} -void hbApp::SetVideoCrop( int crop[4] ) -{ - int i; - for( i = 0; i < 4; i++ ) - title->job->crop[i] = crop ? crop[i] : 0; -} -void hbApp::GetVideoSize( int *pi_width, int *pi_height ) -{ - *pi_width = title->width; - *pi_height = title->height; -} -void hbApp::SetVideoSize( int i_width, int i_height ) -{ - title->job->width = i_width; - title->job->height = i_height; -} - - -int hbApp::GetAudioSamplerate() -{ - int idx = title->job->audios[0]; - if( idx >= 0 && idx < hb_list_count( title->list_audio ) ) - { - hb_audio_t *a = (hb_audio_t*)hb_list_item( title->list_audio, 0 ); - return a->rate; - } - - /* FIXME not good */ - return title->job->arate; -} - -void hbApp::SetAudioSamplerate( int i_rate ) -{ - title->job->arate = i_rate; -} - -wxString hbApp::GetDefaultAudio() -{ - return wxU("English"); -} - -wxString hbApp::GetDefaultSubtitle() -{ - return wxU("None"); -} - -int hbApp::GetDefaultCpuCount() -{ - return GetSystemCpuCount(); -} - -int hbApp::GetDefaultPriority() -{ - return HB_PRIORITY_NORMAL; -} - -int hbApp::GetDefaultVideoRateBase() -{ - return 0; -} - -int hbApp::GetDefaultAudioSamplerate() -{ - return 0; -} - -/* Drive */ -wxArrayString *hbApp::GetSystemDrive() -{ - if( systemDrive ) - return systemDrive; - - systemDrive = new wxArrayString(); -#ifdef SYS_CYGWIN - char c; - for( c = 'A'; c <= 'Z'; c++ ) - { - char pszDrive[4]; - pszDrive[0] = c; - pszDrive[1] = ':'; - pszDrive[2] = '\\'; - pszDrive[3] = '\0'; - - if( GetDriveType( pszDrive ) == DRIVE_CDROM ) - systemDrive->Add( wxString::Format( wxU("%c:"), c ) ); - } -#else - /* TODO true detection */ - systemDrive->Add( wxU("/dev/dvd") ); - systemDrive->Add( wxU("/dev/cdrom") ); -#endif - - return systemDrive; -} - -int hbApp::GetSystemCpuCount() -{ - return hb_get_cpu_count(); -} - -void hbApp::Update() -{ - hb_state_t s; - - /* Special hack FIXME */ - if( isEnd ) - { - g_hbApp->ExitMainLoop(); - return; - } - - /* */ - hb_get_state( hbHandle, &s ); - switch( s.state ) - { - case HB_STATE_IDLE: - break; - - case HB_STATE_SCANNING: - { - int i_cur = s.param.scanning.title_cur; - int i_cnt = s.param.scanning.title_count; - - if( i_cnt > 0 ) - { - progress->SetProgress( 100*(i_cur-1)/i_cnt, - wxString::Format(wxU("Scanning title %d of %d."), - i_cur, i_cnt) ); - } - break; - } - - case HB_STATE_SCANDONE: - if( progress ) - { - progress->SetProgress( 100, wxU("Scanning complete.") ); - progress->Close( TRUE ); - //delete progress; - progress = NULL; - } - break; - - case HB_STATE_WORKING: - { - float f_progress = s.param.working.progress; - float f_rate_cur = s.param.working.rate_cur; - float f_rate_avg = s.param.working.rate_avg; - - progress->SetProgress( (int)(100 * f_progress), - wxString::Format(wxU("Encoding: %.2f %% (%.2f fps, avg %.2f fps)\n"), - 100.0 * f_progress, f_rate_cur, f_rate_avg )); - break; - } - - case HB_STATE_WORKDONE: - if( progress ) - { - progress->SetProgress( 100, wxU("Encoding complete.") ); - progress->Close( TRUE ); - //delete progress; - progress = NULL; - } - break; - } -} - diff --git a/wx/wxHB.h b/wx/wxHB.h deleted file mode 100644 index c762305d7..000000000 --- a/wx/wxHB.h +++ /dev/null @@ -1,170 +0,0 @@ -/***************************************************************************** - * wxHB: - ***************************************************************************** - * Copyright (C) - * $Id: wxHB.h,v 1.2 2005/01/16 17:44:56 titer Exp $ - * - * Authors: - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. - *****************************************************************************/ - -#include "hb.h" - -#include <wx/wx.h> -#include <wx/wizard.h> -#include <wx/listctrl.h> -#include <wx/textctrl.h> -#include <wx/notebook.h> -#include <wx/spinctrl.h> -#include <wx/dnd.h> -#include <wx/treectrl.h> -#include <wx/gauge.h> -#include <wx/accel.h> -#include <wx/checkbox.h> -#include <wx/image.h> -#include <wx/wizard.h> - -#include "wx/file.h" -#include "wx/mstream.h" -#include "wx/wfstream.h" -#include <wx/statline.h> - -#if wxUSE_UNICODE -#define wxU(psz) wxString(psz, *wxConvCurrent) -#else -#define wxU(psz) psz -#endif - -/* Unique global variable: our App - * XXX: we could use wxGetApp() instead (but it is a bit longer ;) - */ -extern class hbApp *g_hbApp; - -/* */ -class hbAppTimer; -class hbAppProgress; -class hbWizard; - -/* */ -enum -{ - HB_PRIORITY_LOWEST = 0, - HB_PRIORITY_BELOW_NORMAL, - HB_PRIORITY_NORMAL, - HB_PRIORITY_ABOVE_NORMAL, - HB_PRIORITY_HIGHEST, -}; - -/* Our wxApp */ -class hbApp: public wxApp -{ -public: - virtual bool OnInit(); - virtual int OnExit(); - - /* HB related */ - int Init(); - int Scan( wxString sDevice ); - int Encode(); - void End(); - - /* */ - /* XXX: the wxArrayString aren't duplicated, so don't delete them */ - wxArrayString *GetTitles(); - void SetTitle( int i_title ); - - int GetChaptersCount(); - void SetChapterStart( int i_chapter ); - void SetChapterEnd( int i_chapter ); - - wxArrayString *GetTracksAudio(); - void SetTrackAudio( int i_track, int i_pos = 0 ); - - wxArrayString *GetTracksSubtitle(); - void SetTrackSubtitle( int i_track ); - - void SetOutputFile( wxString ); - void SetAudioBitrate( int ); - void SetTotalBitrate( int ); - void SetTotalSize( int ); - void SetVideoPass( int ); - void SetPriority( int ); - void SetVideoCodec( wxString ); - void SetVideoDeinterlace( bool ); - void SetCpuCount( int ); - - int GetVideoRateBase(); - void SetVideoRateBase( int ); - - int GetAudioSamplerate(); - void SetAudioSamplerate( int ); - - void GetVideoAutocrop( int crop[4] ); - void SetVideoCrop( int crop[4] ); - void GetVideoSize( int *pi_width, int *pi_height ); - void SetVideoSize( int i_width, int i_height ); - - - /* Get Default value (from config file or from logic) */ - int GetDefaultTitle(); - wxString GetDefaultAudio(); - wxString GetDefaultSubtitle(); - int GetDefaultCpuCount(); - int GetDefaultPriority(); - int GetDefaultVideoRateBase(); - int GetDefaultAudioSamplerate(); - - /* Drive */ - wxArrayString *GetSystemDrive(); - int GetSystemCpuCount(); - - - /* wx related */ - /* Called regulary by a timer - * FIXME derive hbApp from timer too instead ? */ - void Update(); - -private: - bool isEnd; - - hbAppTimer *timer; - hbWizard *wizard; - hbAppProgress *progress; - - hb_handle_t *hbHandle; - - /* */ - int i_title; - wxArrayString *titles; - hb_title_t *title; - - int i_chapters; - wxArrayString *audios; - wxArrayString *subs; - - /* System */ - wxArrayString *systemDrive; -}; - -static void hbError( wxWindow *p_parent, wxString sTitle ) -{ - wxMessageDialog *dlg = new wxMessageDialog( p_parent, - sTitle, - wxU("Error"), - wxOK|wxCENTRE|wxICON_ERROR ); - dlg->ShowModal(); - delete dlg; -} |