X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=gtk%2Fsrc%2Fsettings.c;h=4bafd9b2d87ebdb36a2f328a21f816b3cb2aef85;hb=9460d9624a5cf24126bc39605bc47d43330fcdf4;hp=e3bec95ea6bfb4b10769905b2ae48863c52c6f21;hpb=465945016bd546a8eb524e0e6fcc61361f76b36d;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/gtk/src/settings.c b/gtk/src/settings.c index e3bec95e..4bafd9b2 100644 --- a/gtk/src/settings.c +++ b/gtk/src/settings.c @@ -98,7 +98,7 @@ ghb_settings_set_boolean(GValue *settings, const gchar *key, gboolean bval) } GValue* -ghb_settings_get_value(GValue *settings, const gchar *key) +ghb_settings_get_value(const GValue *settings, const gchar *key) { GValue *value; value = ghb_dict_lookup(settings, key); @@ -108,7 +108,7 @@ ghb_settings_get_value(GValue *settings, const gchar *key) } gboolean -ghb_settings_get_boolean(GValue *settings, const gchar *key) +ghb_settings_get_boolean(const GValue *settings, const gchar *key) { const GValue* value; value = ghb_settings_get_value(settings, key); @@ -117,7 +117,7 @@ ghb_settings_get_boolean(GValue *settings, const gchar *key) } gint64 -ghb_settings_get_int64(GValue *settings, const gchar *key) +ghb_settings_get_int64(const GValue *settings, const gchar *key) { const GValue* value; value = ghb_settings_get_value(settings, key); @@ -126,7 +126,7 @@ ghb_settings_get_int64(GValue *settings, const gchar *key) } gint -ghb_settings_get_int(GValue *settings, const gchar *key) +ghb_settings_get_int(const GValue *settings, const gchar *key) { const GValue* value; value = ghb_settings_get_value(settings, key); @@ -135,7 +135,7 @@ ghb_settings_get_int(GValue *settings, const gchar *key) } gdouble -ghb_settings_get_double(GValue *settings, const gchar *key) +ghb_settings_get_double(const GValue *settings, const gchar *key) { const GValue* value; value = ghb_settings_get_value(settings, key); @@ -144,7 +144,7 @@ ghb_settings_get_double(GValue *settings, const gchar *key) } gchar* -ghb_settings_get_string(GValue *settings, const gchar *key) +ghb_settings_get_string(const GValue *settings, const gchar *key) { const GValue* value; value = ghb_settings_get_value(settings, key); @@ -153,17 +153,29 @@ ghb_settings_get_string(GValue *settings, const gchar *key) } gint -ghb_settings_combo_int(GValue *settings, const gchar *key) +ghb_settings_combo_int(const GValue *settings, const gchar *key) { return ghb_lookup_combo_int(key, ghb_settings_get_value(settings, key)); } +gdouble +ghb_settings_combo_double(const GValue *settings, const gchar *key) +{ + return ghb_lookup_combo_double(key, ghb_settings_get_value(settings, key)); +} + const gchar* -ghb_settings_combo_option(GValue *settings, const gchar *key) +ghb_settings_combo_option(const GValue *settings, const gchar *key) { return ghb_lookup_combo_option(key, ghb_settings_get_value(settings, key)); } +const gchar* +ghb_settings_combo_string(const GValue *settings, const gchar *key) +{ + return ghb_lookup_combo_string(key, ghb_settings_get_value(settings, key)); +} + // Map widget names to setting keys // Widgets that map to settings have names // of this format: s_ @@ -226,6 +238,20 @@ ghb_widget_value(GtkWidget *widget) bval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); value = ghb_boolean_value_new(bval); } + else if (type == GTK_TYPE_TOGGLE_TOOL_BUTTON) + { + g_debug("\ttoggle_tool_button"); + gboolean bval; + bval = gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)); + value = ghb_boolean_value_new(bval); + } + else if (type == GTK_TYPE_TOGGLE_BUTTON) + { + g_debug("\ttoggle_button"); + gboolean bval; + bval = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); + value = ghb_boolean_value_new(bval); + } else if (type == GTK_TYPE_TOGGLE_ACTION) { g_debug("\ttoggle action"); @@ -290,7 +316,24 @@ ghb_widget_value(GtkWidget *widget) else if (type == GTK_TYPE_HSCALE) { gdouble dval; + gint digits; + + digits = gtk_scale_get_digits(GTK_SCALE(widget)); dval = gtk_range_get_value(GTK_RANGE(widget)); + if (digits) + { + value = ghb_double_value_new(dval); + } + else + { + value = ghb_int_value_new(dval); + } + } + else if (type == GTK_TYPE_SCALE_BUTTON) + { + gdouble dval; + + dval = gtk_scale_button_get_value(GTK_SCALE_BUTTON(widget)); value = ghb_double_value_new(dval); } else if (type == GTK_TYPE_TEXT_VIEW) @@ -311,6 +354,16 @@ ghb_widget_value(GtkWidget *widget) str = gtk_label_get_text (GTK_LABEL(widget)); value = ghb_string_value_new(str); } + else if (type == GTK_TYPE_FILE_CHOOSER_BUTTON) + { + gchar *str; + str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(widget)); + if (str == NULL) + str = gtk_file_chooser_get_current_folder(GTK_FILE_CHOOSER(widget)); + value = ghb_string_value_new(str); + if (str != NULL) + g_free(str); + } else { g_debug("Attempt to set unknown widget type: %s\n", name); @@ -434,6 +487,16 @@ update_widget(GtkWidget *widget, const GValue *value) g_debug("check button"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), ival); } + else if (type == GTK_TYPE_TOGGLE_TOOL_BUTTON) + { + g_debug("toggle button"); + gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(widget), ival); + } + else if (type == GTK_TYPE_TOGGLE_BUTTON) + { + g_debug("toggle button"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), ival); + } else if (type == GTK_TYPE_TOGGLE_ACTION) { g_debug("toggle action"); @@ -449,7 +512,7 @@ update_widget(GtkWidget *widget, const GValue *value) GtkTreeModel *store; GtkTreeIter iter; gchar *shortOpt; - gint ivalue; + gdouble ivalue; gboolean foundit = FALSE; g_debug("combo (%s)", str); @@ -475,7 +538,7 @@ update_widget(GtkWidget *widget, const GValue *value) do { gtk_tree_model_get(store, &iter, 3, &ivalue, -1); - if (ivalue == ival) + if ((gint)ivalue == ival || ivalue == dval) { gtk_combo_box_set_active_iter ( GTK_COMBO_BOX(widget), &iter); @@ -494,7 +557,7 @@ update_widget(GtkWidget *widget, const GValue *value) GtkTreeModel *store; GtkTreeIter iter; gchar *shortOpt; - gint ivalue; + gdouble ivalue; gboolean foundit = FALSE; g_debug("GTK_COMBO_BOX_ENTRY"); @@ -520,7 +583,7 @@ update_widget(GtkWidget *widget, const GValue *value) do { gtk_tree_model_get(store, &iter, 3, &ivalue, -1); - if (ivalue == ival) + if ((gint)ivalue == ival || ivalue == dval) { gtk_combo_box_set_active_iter ( GTK_COMBO_BOX(widget), &iter); @@ -548,6 +611,11 @@ update_widget(GtkWidget *widget, const GValue *value) g_debug("hscale"); gtk_range_set_value(GTK_RANGE(widget), dval); } + else if (type == GTK_TYPE_SCALE_BUTTON) + { + g_debug("scale_button"); + gtk_scale_button_set_value(GTK_SCALE_BUTTON(widget), dval); + } else if (type == GTK_TYPE_TEXT_VIEW) { g_debug("textview (%s)", str); @@ -557,7 +625,47 @@ update_widget(GtkWidget *widget, const GValue *value) } else if (type == GTK_TYPE_LABEL) { - gtk_label_set_text (GTK_LABEL(widget), str); + gtk_label_set_markup (GTK_LABEL(widget), str); + } + else if (type == GTK_TYPE_FILE_CHOOSER_BUTTON) + { + GtkFileChooserAction act; + act = gtk_file_chooser_get_action(GTK_FILE_CHOOSER(widget)); + if (str[0] == 0) + { + // Do nothing + ; + } + else if (act == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER || + act == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER) + { + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), str); + } + else if (act == GTK_FILE_CHOOSER_ACTION_SAVE) + { + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), str); + } + else + { + if (g_file_test(str, G_FILE_TEST_IS_DIR)) + { + gtk_file_chooser_set_current_folder( + GTK_FILE_CHOOSER(widget), str); + } + else if (g_file_test(str, G_FILE_TEST_EXISTS)) + { + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER(widget), str); + } + else + { + gchar *dirname; + + dirname = g_path_get_dirname(str); + gtk_file_chooser_set_current_folder( + GTK_FILE_CHOOSER(widget), dirname); + g_free(dirname); + } + } } else { @@ -587,76 +695,3 @@ ghb_ui_update(signal_user_data_t *ud, const gchar *name, const GValue *value) return 0; } -gint -ghb_pref_acount(GValue *settings) -{ - GValue *acodec; - acodec = ghb_settings_get_value(settings, "pref_audio_codec"); - return ghb_array_len(acodec); -} - -gint -ghb_pref_acodec(GValue *settings, gint index) -{ - GValue *acodec; - gint count; - - acodec = ghb_settings_get_value(settings, "pref_audio_codec"); - count = ghb_array_len(acodec); - if (index >= count) - return 0; - return ghb_value_int(ghb_array_get_nth(acodec, index)); -} - -gint -ghb_pref_bitrate(GValue *settings, gint index) -{ - GValue *bitrate; - gint count; - - bitrate = ghb_settings_get_value(settings, "pref_audio_bitrate"); - count = ghb_array_len(bitrate); - if (index >= count) - return 0; - return ghb_value_int(ghb_array_get_nth(bitrate, index)); -} - -gint -ghb_pref_rate(GValue *settings, gint index) -{ - GValue *rate; - gint count; - - rate = ghb_settings_get_value(settings, "pref_audio_rate"); - count = ghb_array_len(rate); - if (index >= count) - return 0; - return ghb_value_int(ghb_array_get_nth(rate, index)); -} - -gint -ghb_pref_mix(GValue *settings, gint index) -{ - GValue *mix; - gint count; - - mix = ghb_settings_get_value(settings, "pref_audio_mix"); - count = ghb_array_len(mix); - if (index >= count) - return 0; - return ghb_value_int(ghb_array_get_nth(mix, index)); -} - -gdouble -ghb_pref_drc(GValue *settings, gint index) -{ - GValue *drc; - gint count; - - drc = ghb_settings_get_value(settings, "pref_audio_drc"); - count = ghb_array_len(drc); - if (index >= count) - return 0; - return ghb_value_double(ghb_array_get_nth(drc, index)); -} -