~ubuntu-branches/ubuntu/utopic/cairo-dock/utopic

« back to all changes in this revision

Viewing changes to src/gldit/cairo-dock-dock-manager.c

  • Committer: Matthieu Baerts
  • Date: 2014-02-19 22:56:20 UTC
  • mfrom: (1.1.38)
  • Revision ID: matttbe@gmail.com-20140219225620-5j86v0ccfmngbwdm
Tags: 3.3.99.beta1.1~20140219~bzr1717-0ubuntu1
* New upstream snapshot.
* Short Upstream ChangeLog:
  - Style: unified the style for all objects.
  - Menu: added the possibility to customise them
  - Config: updated some sections linked to the style
  - API:
    - Updated functions about the style
    - Added new features about PID monitoring
  - Some bugs have been fixed, other tweaks
* debian/control:
  - bumped plug-ins versions
  - bumped Standard Version (no change needed)

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
#include "cairo-dock-keybinder.h"
52
52
#include "cairo-dock-indicator-manager.h"  // myIndicatorsParam.bUseClassIndic
53
53
#include "cairo-dock-dialog-manager.h"
 
54
#include "cairo-dock-style-manager.h"
54
55
#include "cairo-dock-opengl.h"
55
56
#include "cairo-dock-dock-visibility.h"
56
57
#include "cairo-dock-dock-manager.h"
1414
1415
        CairoDocksParam *pAccessibility = pDocksParam;
1415
1416
        CairoDocksParam *pSystem = pDocksParam;
1416
1417
        
1417
 
        // cadre.
 
1418
        // frame
1418
1419
        pBackground->iDockRadius = cairo_dock_get_integer_key_value (pKeyFile, "Background", "corner radius", &bFlushConfFileNeeded, 12, NULL, NULL);
1419
1420
 
1420
1421
        pBackground->iDockLineWidth = cairo_dock_get_integer_key_value (pKeyFile, "Background", "line width", &bFlushConfFileNeeded, 2, NULL, NULL);
1426
1427
 
1427
1428
        pBackground->bRoundedBottomCorner = cairo_dock_get_boolean_key_value (pKeyFile, "Background", "rounded bottom corner", &bFlushConfFileNeeded, TRUE, NULL, NULL);
1428
1429
        
1429
 
        // image de fond.
1430
 
        gchar *cBgImage = cairo_dock_get_string_key_value (pKeyFile, "Background", "background image", &bFlushConfFileNeeded, NULL, NULL, NULL);
1431
 
        int iFillBg = cairo_dock_get_integer_key_value (pKeyFile, "Background", "fill bg", &bFlushConfFileNeeded, -1, NULL, NULL);  // -1 pour intercepter le cas ou la cle n'existe pas.
1432
 
        if (iFillBg == -1)  // nouvelle cle
1433
 
        {
1434
 
                iFillBg = (cBgImage != NULL ? 0 : 1);  // si une image etait definie auparavant, on dit qu'on veut le mode "image"
1435
 
                g_key_file_set_integer (pKeyFile, "Background", "fill bg", iFillBg);
1436
 
        }
1437
 
        else
1438
 
        {
1439
 
                if (iFillBg != 0)  // remplissage avec un degrade => on ne veut pas d'image
 
1430
        // background image
 
1431
        int iStyle = cairo_dock_get_integer_key_value (pKeyFile, "Background", "style", &bFlushConfFileNeeded, -1, NULL, NULL);  // -1 pour intercepter le cas ou la cle n'existe pas.
 
1432
        if (iStyle == -1)  // old params < 3.4
 
1433
        {
 
1434
                iStyle = g_key_file_get_integer (pKeyFile, "Background", "fill bg", NULL);
 
1435
                iStyle ++;
 
1436
                g_key_file_set_integer (pKeyFile, "Background", "style", iStyle);
 
1437
        }
 
1438
        
 
1439
        if (iStyle == 0)
 
1440
        {
 
1441
                pBackground->bUseDefaultColors = TRUE;
 
1442
                pBackground->iDockRadius = myStyleParam.iCornerRadius;
 
1443
                pBackground->iDockLineWidth = myStyleParam.iLineWidth;
 
1444
        }
 
1445
        else if (iStyle == 1)
 
1446
        {
 
1447
                gchar *cBgImage = (iStyle == 1 ? cairo_dock_get_string_key_value (pKeyFile, "Background", "background image", &bFlushConfFileNeeded, NULL, NULL, NULL) : NULL);
 
1448
                if (cBgImage != NULL)
1440
1449
                {
 
1450
                        pBackground->cBackgroundImageFile = cairo_dock_search_image_s_path (cBgImage);
1441
1451
                        g_free (cBgImage);
1442
 
                        cBgImage = NULL;
 
1452
                        pBackground->fBackgroundImageAlpha = cairo_dock_get_double_key_value (pKeyFile, "Background", "image alpha", &bFlushConfFileNeeded, 0.5, NULL, NULL);
 
1453
                        pBackground->bBackgroundImageRepeat = cairo_dock_get_boolean_key_value (pKeyFile, "Background", "repeat image", &bFlushConfFileNeeded, FALSE, NULL, NULL);
1443
1454
                }
1444
1455
        }
1445
1456
        
1446
 
        if (cBgImage != NULL)
1447
 
        {
1448
 
                pBackground->cBackgroundImageFile = cairo_dock_search_image_s_path (cBgImage);
1449
 
                g_free (cBgImage);
1450
 
        }
1451
 
        
1452
 
        pBackground->fBackgroundImageAlpha = cairo_dock_get_double_key_value (pKeyFile, "Background", "image alpha", &bFlushConfFileNeeded, 0.5, NULL, NULL);
1453
 
 
1454
 
        pBackground->bBackgroundImageRepeat = cairo_dock_get_boolean_key_value (pKeyFile, "Background", "repeat image", &bFlushConfFileNeeded, FALSE, NULL, NULL);
1455
 
        
1456
 
        // degrade du fond.
1457
 
        if (pBackground->cBackgroundImageFile == NULL)
 
1457
        // background gradation
 
1458
        if (iStyle != 0 && pBackground->cBackgroundImageFile == NULL)
1458
1459
        {
1459
1460
                pBackground->iNbStripes = cairo_dock_get_integer_key_value (pKeyFile, "Background", "number of stripes", &bFlushConfFileNeeded, 10, NULL, NULL);
1460
1461
                
1731
1732
        CairoDocksParam *pAccessibility = pDocksParam;
1732
1733
        // CairoDocksParam *pViews = pDocksParam;
1733
1734
        // CairoDocksParam *pSystem = pDocksParam;
1734
 
         CairoDocksParam *pPrevBackground = pPrevDocksParam;
 
1735
        CairoDocksParam *pPrevBackground = pPrevDocksParam;
1735
1736
        CairoDocksParam *pPrevPosition = pPrevDocksParam;
1736
1737
        CairoDocksParam *pPrevAccessibility = pPrevDocksParam;
1737
1738
        // CairoDocksParam *pPrevViews = pPrevDocksParam;
1853
1854
 /// INIT ///
1854
1855
////////////
1855
1856
 
 
1857
static gboolean on_style_changed (G_GNUC_UNUSED gpointer data)
 
1858
{
 
1859
        g_print ("%s (Docks, %d)\n", __func__, myDocksParam.bUseDefaultColors);
 
1860
        if (myDocksParam.bUseDefaultColors)  // reload bg
 
1861
        {
 
1862
                g_print (" reload dock's bg...\n");
 
1863
                
 
1864
                myDocksParam.iDockRadius = myStyleParam.iCornerRadius;
 
1865
                myDocksParam.iDockLineWidth = myStyleParam.iLineWidth;
 
1866
                
 
1867
                gldi_docks_foreach_root ((GFunc)_reload_bg, NULL);
 
1868
        }
 
1869
        return GLDI_NOTIFICATION_LET_PASS;
 
1870
}
 
1871
 
1856
1872
static void init (void)
1857
1873
{
1858
1874
        s_hDocksTable = g_hash_table_new_full (g_str_hash,
1892
1908
                NOTIFICATION_NEW,
1893
1909
                (GldiNotificationFunc) _on_new_dialog,
1894
1910
                GLDI_RUN_AFTER, NULL);
 
1911
        gldi_object_register_notification (&myStyleMgr,
 
1912
                NOTIFICATION_STYLE_CHANGED,
 
1913
                (GldiNotificationFunc) on_style_changed,
 
1914
                GLDI_RUN_AFTER, NULL);
1895
1915
        
1896
1916
        gldi_docks_visibility_start ();
1897
1917
}