/* * Updates the display device page to reflect the current * configuration of the display device. */ static void display_device_setup(CtkDisplayDevice *ctk_object) { CtrlTarget *ctrl_target = ctk_object->ctrl_target; /* Disable the reset button here and allow the controls below to (re)enable * it if need be,. */ gtk_widget_set_sensitive(ctk_object->reset_button, FALSE); update_display_enabled_flag(ctrl_target, &ctk_object->display_enabled); /* Update info */ update_device_info(ctk_object); ctk_edid_setup(CTK_EDID(ctk_object->edid)); /* Update controls */ ctk_color_controls_setup(CTK_COLOR_CONTROLS(ctk_object->color_controls)); ctk_dithering_controls_setup (CTK_DITHERING_CONTROLS(ctk_object->dithering_controls)); ctk_image_sliders_setup(CTK_IMAGE_SLIDERS(ctk_object->image_sliders)); } /* display_device_setup() */
static void reset_button_clicked(GtkButton *button, gpointer user_data) { CtkDisplayDeviceDfp *ctk_display_device_dfp = CTK_DISPLAY_DEVICE_DFP(user_data); gint value; ctk_image_sliders_reset (CTK_IMAGE_SLIDERS(ctk_display_device_dfp->image_sliders)); /* * if scaling is active, send the default scaling value to the * server and update the radio button group */ if (ctk_display_device_dfp->active_attributes & __SCALING) { value = MAKE_SCALING_VALUE(ctk_display_device_dfp->default_scaling_target, ctk_display_device_dfp->default_scaling_method); NvCtrlSetDisplayAttribute(ctk_display_device_dfp->handle, ctk_display_device_dfp->display_device_mask, NV_CTRL_GPU_SCALING, value); dfp_scaling_setup(ctk_display_device_dfp); } /* Reset the color configuration */ if (ctk_display_device_dfp->color_controls) { ctk_color_controls_reset (CTK_COLOR_CONTROLS(ctk_display_device_dfp->color_controls)); } /* Reset the dithering configuration */ if (ctk_display_device_dfp->dithering_controls) { ctk_dithering_controls_reset (CTK_DITHERING_CONTROLS(ctk_display_device_dfp->dithering_controls)); } /* Update the reset button */ gtk_widget_set_sensitive(ctk_display_device_dfp->reset_button, FALSE); /* status bar message */ ctk_config_statusbar_message(ctk_display_device_dfp->ctk_config, "Reset hardware defaults for %s.", ctk_display_device_dfp->name); } /* reset_button_clicked() */
GtkTextBuffer *ctk_display_device_create_help(GtkTextTagTable *table, CtkDisplayDevice *ctk_object) { GtkTextIter i; GtkTextBuffer *b; gchar *tip_text; int j; b = gtk_text_buffer_new(table); gtk_text_buffer_get_iter_at_offset(b, &i, 0); ctk_help_title(b, &i, "%s Help", ctk_object->name); ctk_help_heading(b, &i, "Device Information"); ctk_help_para(b, &i, "%s", __info_help); for (j = 0; j < ARRAY_LEN(__info_entry_data); j++) { InfoEntryData *entryData = __info_entry_data+j; InfoEntry *entry = ctk_object->info_entries+j; if (entry->present) { ctk_help_term(b, &i, "%s", entryData->str); ctk_help_para(b, &i, "%s", *entryData->tooltip); } } add_acquire_edid_help(b, &i); add_color_controls_help (CTK_COLOR_CONTROLS(ctk_object->color_controls), b, &i); add_dithering_controls_help (CTK_DITHERING_CONTROLS(ctk_object->dithering_controls), b, &i); add_image_sliders_help (CTK_IMAGE_SLIDERS(ctk_object->image_sliders), b, &i); if (ctk_object->color_correction_available) { ctk_color_correction_tab_help(b, &i, "X Server Color Correction", TRUE); } tip_text = ctk_widget_get_tooltip_text(GTK_WIDGET(ctk_object->reset_button)); ctk_help_reset_hardware_defaults(b, &i, tip_text); g_free(tip_text); ctk_help_finish(b); return b; } /* ctk_display_device_create_help() */
static void reset_button_clicked(GtkButton *button, gpointer user_data) { CtkDisplayDevice *ctk_object = CTK_DISPLAY_DEVICE(user_data); /* Disable the reset button here and allow the controls below to (re)enable * it if need be,. */ gtk_widget_set_sensitive(ctk_object->reset_button, FALSE); ctk_color_controls_reset(CTK_COLOR_CONTROLS(ctk_object->color_controls)); ctk_dithering_controls_reset (CTK_DITHERING_CONTROLS(ctk_object->dithering_controls)); ctk_image_sliders_reset(CTK_IMAGE_SLIDERS(ctk_object->image_sliders)); ctk_config_statusbar_message(ctk_object->ctk_config, "Reset hardware defaults for %s.", ctk_object->name); } /* reset_button_clicked() */
GtkTextBuffer *ctk_display_device_dfp_create_help(GtkTextTagTable *table, CtkDisplayDeviceDfp *ctk_display_device_dfp) { GtkTextIter i; GtkTextBuffer *b; b = gtk_text_buffer_new(table); gtk_text_buffer_get_iter_at_offset(b, &i, 0); ctk_help_title(b, &i, "%s Help", ctk_display_device_dfp->name); ctk_help_heading(b, &i, "Flat Panel Information"); ctk_help_para(b, &i, __info_help); ctk_help_term(b, &i, "Chip Location"); ctk_help_para(b, &i, "Report whether the flat panel is driven by " "the on-chip controller (internal), or a " "separate controller chip elsewhere on the " "graphics board (external)."); ctk_help_term(b, &i, "Link"); ctk_help_para(b, &i, "Report whether the specified display device " "is driven by a single link or dual link DVI " "connection."); ctk_help_term(b, &i, "Signal"); ctk_help_para(b, &i, "Report whether the flat panel is driven by " "an LVDS, TMDS, or DisplayPort signal."); ctk_help_term(b, &i, "Native Resolution"); ctk_help_para(b, &i, __native_res_help); ctk_help_term(b, &i, "Best Fit Resolution"); ctk_help_para(b, &i, __best_fit_res_help); ctk_help_term(b, &i, "Frontend Resolution"); ctk_help_para(b, &i, __frontend_res_help); ctk_help_term(b, &i, "Backend Resolution"); ctk_help_para(b, &i, __backend_res_help); ctk_help_term(b, &i, "Refresh Rate"); ctk_help_para(b, &i, __refresh_rate_help); ctk_help_heading(b, &i, "Flat Panel Scaling"); ctk_help_para(b, &i, __scaling_help); ctk_help_term(b, &i, "Force Full GPU Scaling"); ctk_help_para(b, &i, __force_gpu_scaling_help); ctk_help_term(b, &i, "Scaling"); ctk_help_para(b, &i, "Reports whether the GPU and/or DFP are actively " "scaling the current resolution."); ctk_help_term(b, &i, "Stretched"); ctk_help_para(b, &i, "The image will be expanded to fit the entire " "flat panel."); ctk_help_term(b, &i, "Centered"); ctk_help_para(b, &i, "The image will only occupy the number of pixels " "needed and be centered on the flat panel. Setting this " "will disable image sharpening for the display device."); ctk_help_term(b, &i, "Aspect Ratio Scaled"); ctk_help_para(b, &i, "The image will be scaled (retaining the original " "aspect ratio) to expand and fit as much of the entire " "flat panel as possible."); if (ctk_display_device_dfp->color_controls) { add_color_controls_help (CTK_COLOR_CONTROLS(ctk_display_device_dfp->color_controls), b, &i); } if (ctk_display_device_dfp->dithering_controls) { add_dithering_controls_help (CTK_DITHERING_CONTROLS(ctk_display_device_dfp->dithering_controls), b, &i); } add_image_sliders_help (CTK_IMAGE_SLIDERS(ctk_display_device_dfp->image_sliders), b, &i); if (ctk_display_device_dfp->edid) { add_acquire_edid_help(b, &i); } ctk_help_reset_hardware_defaults(b, &i, ctk_display_device_dfp->name); ctk_help_finish(b); return b; } /* ctk_display_device_dfp_create_help() */