~ubuntu-branches/ubuntu/quantal/cairo-dock-plug-ins/quantal-201208191523

« back to all changes in this revision

Viewing changes to Xgamma/src/applet-notifications.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthieu Baerts (matttbe)
  • Date: 2011-04-20 20:46:51 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20110420204651-ftnpzesj6uc7qeul
Tags: 2.3.0~1-0ubuntu1
* New Upstream Version (LP: #723995)
* Upstream short ChangeLog (since 2.3.0~0rc1):
 - Updated translations
 - Updated the integration of the new versions of kwin and compiz
    (Switcher, ShowDesktop, etc.)
 - Removed a lot of useless g_print
 - Updated a few plug-ins to fit with the new version of the API (gldit)
 - Fixed a few bugs
 - Updated MeMenu, MessagingMenu and Status-Notifier to works
    with the latest version of dbusmenu, etc.
* Switch to dpkg-source 3.0 (quilt) format
* debian/cairo-dock-plug-ins.install:
 - Added new files (interfaces for python, ruby, vala and mono)
* debian/control:
 - Added new dependences for new applets (sensors and zeitgeist)
    and new interfaces (python, valac, ruby and mono)
 - Updated the version of cairo-dock build-dependences
* debian/rules:
 - Added a new CMake flag to install python interface in debian/tmp
* Updated debian/watch

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
CD_APPLET_ON_CLICK_BEGIN
31
31
        if (myDock)
32
32
        {
33
 
                double fGamma = xgamma_get_gamma (&myData.Xgamma);
34
 
                if (fGamma > 0)
35
 
                {
36
 
                        fGamma = cairo_dock_show_value_and_wait (D_("Set up gamma:"), myIcon, myContainer, fGamma, GAMMA_MAX);
37
 
                        if (fGamma > 0)
38
 
                        {
39
 
                                fGamma = MAX (fGamma, GAMMA_MIN);
40
 
                                
41
 
                                myData.Xgamma.red = fGamma;
42
 
                                myData.Xgamma.blue = fGamma;
43
 
                                myData.Xgamma.green = fGamma;
44
 
                                xgamma_set_gamma (&myData.Xgamma);
45
 
                        }
46
 
                }
 
33
                xgamma_build_dialog_simple ();
47
34
        }
48
35
CD_APPLET_ON_CLICK_END
49
36
 
 
37
 
 
38
static void _cd_xgamma_set_up_gamma_correction (void)
 
39
{
 
40
        double fGamma = xgamma_get_gamma (&myData.Xgamma);
 
41
        if (fGamma > 0)
 
42
        {
 
43
                //\___________________ On construit notre widget si c'est la 1ere fois.
 
44
                if (myData.pWidget == NULL)
 
45
                {
 
46
                        xgamma_build_and_show_widget ();
 
47
                }
 
48
                else
 
49
                {
 
50
                        //\___________________ On lui met les valeurs a jour, sans appeler les callbacks.
 
51
                        g_signal_handler_block (myData.pGlobalScale, myData.iGloalScaleSignalID);
 
52
                        g_signal_handler_block (myData.pRedScale, myData.iRedScaleSignalID);
 
53
                        g_signal_handler_block (myData.pGreenScale, myData.iGreenScaleSignalID);
 
54
                        g_signal_handler_block (myData.pBlueScale, myData.iBlueScaleSignalID);
 
55
                        
 
56
                        gtk_range_set_value (GTK_RANGE (myData.pGlobalScale), fGamma);
 
57
                        gtk_range_set_value (GTK_RANGE (myData.pRedScale), myData.Xgamma.red);
 
58
                        gtk_range_set_value (GTK_RANGE (myData.pGreenScale), myData.Xgamma.green);
 
59
                        gtk_range_set_value (GTK_RANGE (myData.pBlueScale), myData.Xgamma.blue);
 
60
                        myData.XoldGamma = myData.Xgamma;
 
61
                        
 
62
                        g_signal_handler_unblock (myData.pGlobalScale, myData.iGloalScaleSignalID);
 
63
                        g_signal_handler_unblock (myData.pRedScale, myData.iRedScaleSignalID);
 
64
                        g_signal_handler_unblock (myData.pGreenScale, myData.iGreenScaleSignalID);
 
65
                        g_signal_handler_unblock (myData.pBlueScale, myData.iBlueScaleSignalID);
 
66
                        
 
67
                        if (myData.pDialog != NULL)
 
68
                        {
 
69
                                cairo_dock_unhide_dialog (myData.pDialog);
 
70
                        }
 
71
                }
 
72
        }
 
73
}
 
74
 
50
75
static void _cd_xgamma_remember_current_gamma (GtkMenuItem *menu_item, CairoDockModuleInstance *myApplet)
51
76
{
52
77
        double fGamma = xgamma_get_gamma (&myData.Xgamma);
57
82
                G_TYPE_INVALID);
58
83
}
59
84
CD_APPLET_ON_BUILD_MENU_BEGIN
 
85
        GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
 
86
        // Main Menu
 
87
        if (myDock)
 
88
        {
 
89
                gchar *cLabel = g_strdup_printf ("%s (%s)", D_("Set up gamma correction"), D_("middle-click"));
 
90
                CD_APPLET_ADD_IN_MENU_WITH_STOCK (cLabel, GTK_STOCK_DIALOG_INFO, _cd_xgamma_set_up_gamma_correction, CD_APPLET_MY_MENU);
 
91
                g_free (cLabel);
 
92
        }
60
93
        //Sub-Menu
61
 
        GtkWidget *pSubMenu = CD_APPLET_CREATE_MY_SUB_MENU ();
62
 
                CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Apply current luminosity on startup"), GTK_STOCK_DIALOG_WARNING, _cd_xgamma_remember_current_gamma, pSubMenu);
63
 
                CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
64
 
                CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
 
94
        CD_APPLET_ADD_IN_MENU_WITH_STOCK (D_("Apply current luminosity on startup"), GTK_STOCK_DIALOG_WARNING, _cd_xgamma_remember_current_gamma, pSubMenu);
 
95
        CD_APPLET_ADD_SEPARATOR_IN_MENU (pSubMenu);
 
96
        CD_APPLET_ADD_ABOUT_IN_MENU (pSubMenu);
65
97
CD_APPLET_ON_BUILD_MENU_END
66
98
 
67
99
 
68
100
CD_APPLET_ON_MIDDLE_CLICK_BEGIN
69
101
        if (myDock)
70
102
        {
71
 
                double fGamma = xgamma_get_gamma (&myData.Xgamma);
72
 
                if (fGamma > 0)
73
 
                {
74
 
                        //\___________________ On construit notre widget si c'est la 1ere fois.
75
 
                        if (myData.pWidget == NULL)
76
 
                        {
77
 
                                xgamma_build_and_show_widget ();
78
 
                        }
79
 
                        else
80
 
                        {
81
 
                                //\___________________ On lui met les valeurs a jour, sans appeler les callbacks.
82
 
                                g_signal_handler_block (myData.pGlobalScale, myData.iGloalScaleSignalID);
83
 
                                g_signal_handler_block (myData.pRedScale, myData.iRedScaleSignalID);
84
 
                                g_signal_handler_block (myData.pGreenScale, myData.iGreenScaleSignalID);
85
 
                                g_signal_handler_block (myData.pBlueScale, myData.iBlueScaleSignalID);
86
 
                                
87
 
                                gtk_range_set_value (GTK_RANGE (myData.pGlobalScale), fGamma);
88
 
                                gtk_range_set_value (GTK_RANGE (myData.pRedScale), myData.Xgamma.red);
89
 
                                gtk_range_set_value (GTK_RANGE (myData.pGreenScale), myData.Xgamma.green);
90
 
                                gtk_range_set_value (GTK_RANGE (myData.pBlueScale), myData.Xgamma.blue);
91
 
                                myData.XoldGamma = myData.Xgamma;
92
 
                                
93
 
                                g_signal_handler_unblock (myData.pGlobalScale, myData.iGloalScaleSignalID);
94
 
                                g_signal_handler_unblock (myData.pRedScale, myData.iRedScaleSignalID);
95
 
                                g_signal_handler_unblock (myData.pGreenScale, myData.iGreenScaleSignalID);
96
 
                                g_signal_handler_unblock (myData.pBlueScale, myData.iBlueScaleSignalID);
97
 
                                
98
 
                                if (myData.pDialog != NULL)
99
 
                                {
100
 
                                        cairo_dock_unhide_dialog (myData.pDialog);
101
 
                                }
102
 
                        }
103
 
                }
 
103
                _cd_xgamma_set_up_gamma_correction ();
104
104
        }
105
105
CD_APPLET_ON_MIDDLE_CLICK_END
106
106
 
107
107
 
 
108
static gboolean _on_scroll (gpointer data)
 
109
{
 
110
        cd_debug ("%s (%d)", __func__, myData.iScrollCount);
 
111
        if (myData.iScrollCount != 0)
 
112
                xgamma_add_gamma (&myData.Xgamma, myData.iScrollCount);
 
113
        myData.iSidScrollAction = 0;
 
114
        myData.iScrollCount = 0;
 
115
        return FALSE;
 
116
}
108
117
CD_APPLET_ON_SCROLL_BEGIN
109
 
        double fGamma = xgamma_get_gamma (&myData.Xgamma);
110
 
        cd_debug ("%.2f;%.2f;%.2f\n", myData.Xgamma.red, myData.Xgamma.green, myData.Xgamma.blue);
111
 
        double f;
112
 
        if (CD_APPLET_SCROLL_UP)
113
 
        {
114
 
                f = (1. - myConfig.iScrollVariation/100.);
115
 
                myData.Xgamma.red *= f;
116
 
                myData.Xgamma.green *= f;
117
 
                myData.Xgamma.blue *= f;
118
 
        }
119
 
        else
120
 
        {
121
 
                f = (1. + myConfig.iScrollVariation/100.);
122
 
                myData.Xgamma.red *= f;
123
 
                myData.Xgamma.green *= f;
124
 
                myData.Xgamma.blue *= f;
125
 
        }
126
 
        
127
 
        xgamma_set_gamma (&myData.Xgamma);
 
118
        myData.iScrollCount += (CD_APPLET_SCROLL_UP ? 1 : -1);
 
119
        if (myData.iSidScrollAction == 0)
 
120
                myData.iSidScrollAction = g_timeout_add (200, (GSourceFunc) _on_scroll, NULL);
 
121
        xgamma_add_gamma (&myData.Xgamma, CD_APPLET_SCROLL_UP);
128
122
CD_APPLET_ON_SCROLL_END