CairoDialog *xgamma_build_dialog_simple (void) { double fGamma = xgamma_get_gamma (&myData.Xgamma); g_return_val_if_fail (fGamma >= 0, NULL); double fGammaPercent = _gamma_to_percent (fGamma); myData.XoldGamma = myData.Xgamma; CairoDialogAttr attr; memset (&attr, 0, sizeof (CairoDialogAttr)); GtkWidget *pHScale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, 100., 1.); gtk_scale_set_digits (GTK_SCALE (pHScale), 0); gtk_range_set_value (GTK_RANGE (pHScale), fGammaPercent); g_object_set (pHScale, "width-request", 150, NULL); g_signal_connect (G_OBJECT (pHScale), "value-changed", G_CALLBACK (on_scale_value_changed_simple), NULL); gldi_dialog_set_widget_text_color (pHScale); attr.cText = D_("Set up gamma:"); attr.pInteractiveWidget = pHScale; const gchar *cButtons[3] = {"ok", "cancel", NULL}; attr.cButtonsImage = cButtons; attr.pActionFunc = (CairoDockActionOnAnswerFunc) _xgamma_apply_value_simple; attr.pUserData = myApplet; attr.pIcon = myIcon; attr.pContainer = myContainer; return gldi_dialog_new (&attr); }
void xgamma_add_gamma (XF86VidModeGamma *pGamma, gint iNbSteps) { if (iNbSteps == 0) return; double fGamma = xgamma_get_gamma (pGamma); double fGammaPercent = _gamma_to_percent (fGamma); fGammaPercent += iNbSteps * myConfig.iScrollVariation; double fNewGamma = _percent_to_gamma (fGammaPercent); double f = fNewGamma / fGamma; myData.Xgamma.red *= f; myData.Xgamma.green *= f; myData.Xgamma.blue *= f; xgamma_set_gamma (&myData.Xgamma); }
void xgamma_build_and_show_widget (void) { double fGamma = xgamma_get_gamma (&myData.Xgamma); g_return_if_fail (fGamma > 0); xgamma_create_scales_widget (fGamma, &myData.Xgamma); if (myDock) { myData.pDialog = xgamma_build_dialog (); } else { cairo_dock_add_interactive_widget_to_desklet (myData.pWidget, myDesklet); cairo_dock_set_desklet_renderer_by_name (myDesklet, NULL, NULL, ! CAIRO_DOCK_LOAD_ICONS_FOR_DESKLET, NULL); } }
void xgamma_build_and_show_widget (void) { double fGamma = xgamma_get_gamma (&myData.Xgamma); g_return_if_fail (fGamma >= 0); xgamma_create_scales_widget (fGamma, &myData.Xgamma); if (myDock) { myData.pDialog = xgamma_build_dialog (); } else { gldi_desklet_add_interactive_widget (myDesklet, myData.pWidget); CD_APPLET_SET_DESKLET_RENDERER (NULL); // pour empecher le clignotement du au double-buffer. CD_APPLET_SET_STATIC_DESKLET; } }