~cairo-dock-team/cairo-dock-core/popup_from_shortkey

« back to all changes in this revision

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

  • Committer: Fabrice Rey
  • Date: 2013-06-04 22:58:28 UTC
  • Revision ID: fabounet03@gmail.com-20130604225828-x8lg3mv9135jr114
updated various parts of the core to the new API (new icons type, 'delete' method, simplified functions, etc)

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
#include "cairo-dock-surface-factory.h"
30
30
#include "cairo-dock-log.h"
31
31
#include "cairo-dock-dock-manager.h"
 
32
#include "cairo-dock-applet-manager.h"
 
33
#include "cairo-dock-launcher-manager.h"
 
34
#include "cairo-dock-stack-icon-manager.h"
 
35
#include "cairo-dock-separator-manager.h"
 
36
#include "cairo-dock-class-icon-manager.h"
32
37
#include "cairo-dock-dock-factory.h"
33
38
#include "cairo-dock-module-manager.h"  // GldiModule
34
39
#include "cairo-dock-module-instance-manager.h"  // GldiModuleInstance
263
268
                        cd_message ("  pour le sous-dock %s : indicateur <- %d", pPointingIcon->cName, bSubDockHasIndicator);
264
269
                        pPointingIcon->bHasIndicator = bSubDockHasIndicator;
265
270
                        if (pParentDock != NULL)
266
 
                                cairo_dock_redraw_icon (pPointingIcon, CAIRO_CONTAINER (pParentDock));
 
271
                                cairo_dock_redraw_icon (pPointingIcon);
267
272
                }
268
273
        }
269
274
}
302
307
                                                Icon *pPointingIcon = cairo_dock_search_icon_pointing_on_dock (pParentDock, &pMainDock);
303
308
                                                if (pMainDock && CAIRO_DOCK_ICON_TYPE_IS_CLASS_CONTAINER (pPointingIcon))
304
309
                                                {
305
 
                                                        cairo_dock_remove_icon_from_dock (pMainDock, pPointingIcon);
306
 
                                                        ///bNeedsRedraw |= pMainDock->bIsMainDock;
307
 
                                                        cairo_dock_free_icon (pPointingIcon);
 
310
                                                        cairo_dock_detach_icon_from_dock (pPointingIcon, pMainDock);
 
311
                                                        gldi_object_delete (GLDI_OBJECT(pPointingIcon));
308
312
                                                }
309
313
                                        }
310
314
                                        cairo_dock_destroy_class_subdock (cClass);
311
315
                                }
312
 
                                ///else  // non vide => on le met a jour.
313
 
                                ///     cairo_dock_update_dock_size (pParentDock);
314
316
                        }
315
 
                        ///else  // main dock => on le met a jour a la fin.
316
 
                        ///     bNeedsRedraw = TRUE;
317
317
                }
318
318
                g_free (cParentDockName);
319
319
                
322
322
                        pFirstFoundActor = pIcon->pAppli;
323
323
                }
324
324
        }
325
 
        /**if (! cairo_dock_is_loading () && bNeedsRedraw)  // mise a jour du main dock en 1 coup.
326
 
        {
327
 
                cairo_dock_update_dock_size (g_pMainDock);
328
 
                cairo_dock_calculate_dock_icons (g_pMainDock);
329
 
                gtk_widget_queue_draw (g_pMainDock->container.pWidget);
330
 
        }*/
331
325
        return pFirstFoundActor;
332
326
}
333
327
gboolean cairo_dock_inhibite_class (const gchar *cClass, Icon *pInhibitorIcon)
435
429
                                                else
436
430
                                                        g_free (pInhibitorIcon->cName);
437
431
                                                pInhibitorIcon->cName = NULL;
438
 
                                                cairo_dock_set_icon_name (pIcon->cName, pInhibitorIcon, CAIRO_CONTAINER (pInhibatorDock));
 
432
                                                gldi_icon_set_name (pInhibitorIcon, pIcon->cName);
439
433
                                        }
440
434
                                }
441
435
                                bToBeInhibited = (pInhibitorIcon->pAppli == pIcon->pAppli);
577
571
                                _cairo_dock_set_same_indicator_on_sub_dock (pIcon);
578
572
                                if (! pIcon->bHasIndicator)
579
573
                                {
580
 
                                        cairo_dock_set_icon_name (pIcon->cInitialName, pIcon, NULL);
 
574
                                        gldi_icon_set_name (pIcon, pIcon->cInitialName);
581
575
                                }
582
576
                                cd_message (" %s : bHasIndicator <- %d, pAppli <- %p", pIcon->cName, pIcon->bHasIndicator, pIcon->pAppli);
583
577
                                CairoDock *pParentDock = gldi_dock_get (pIcon->cParentDockName);
719
713
                                cd_debug (" %s aussi se %s", pInhibitorIcon->cName, (bIsHidden ? "cache" : "montre"));
720
714
                                if (! CAIRO_DOCK_ICON_TYPE_IS_APPLET (pInhibitorIcon) && myTaskbarParam.fVisibleAppliAlpha != 0)
721
715
                                {
722
 
                                        CairoDock *pInhibatorDock = gldi_dock_get (pInhibitorIcon->cParentDockName);
723
716
                                        pInhibitorIcon->fAlpha = 1;  // on triche un peu.
724
 
                                        cairo_dock_redraw_icon (pInhibitorIcon, CAIRO_CONTAINER (pInhibatorDock));
 
717
                                        cairo_dock_redraw_icon (pInhibitorIcon);
725
718
                                }
726
719
                        }
727
720
                }
768
761
                                ///pInhibitorIcon->bIsActive = FALSE;
769
762
                                CairoDock *pParentDock = gldi_dock_get (pInhibitorIcon->cParentDockName);
770
763
                                if (pParentDock != NULL && ! pParentDock->bIsShrinkingDown)
771
 
                                        cairo_dock_redraw_icon (pInhibitorIcon, CAIRO_CONTAINER (pParentDock));
 
764
                                        cairo_dock_redraw_icon (pInhibitorIcon);
772
765
                        }
773
766
                }
774
767
        }
802
795
                                                        g_free (pInhibitorIcon->cName);
803
796
                                                pInhibitorIcon->cName = NULL;
804
797
                                                
805
 
                                                cairo_dock_set_icon_name ((cNewName != NULL ? cNewName : pInhibitorIcon->cInitialName), pInhibitorIcon, CAIRO_CONTAINER (pParentDock));
 
798
                                                gldi_icon_set_name (pInhibitorIcon, (cNewName != NULL ? cNewName : pInhibitorIcon->cInitialName));
806
799
                                        }
807
800
                                        if (! pParentDock->bIsShrinkingDown)
808
 
                                                cairo_dock_redraw_icon (pInhibitorIcon, CAIRO_CONTAINER (pParentDock));
 
801
                                                cairo_dock_redraw_icon (pInhibitorIcon);
809
802
                                }
810
803
                        }
811
804
                }
860
853
                pFakeClassIcon->pSubDock = NULL;
861
854
                if (CAIRO_DOCK_ICON_TYPE_IS_CLASS_CONTAINER (pFakeClassIcon))
862
855
                {
863
 
                        cairo_dock_remove_icon_from_dock (pFakeParentDock, pFakeClassIcon);
864
 
                        cairo_dock_free_icon (pFakeClassIcon);
 
856
                        cairo_dock_detach_icon_from_dock (pFakeClassIcon, pFakeParentDock);
 
857
                        gldi_object_delete (GLDI_OBJECT(pFakeClassIcon));
865
858
                        cairo_dock_update_dock_size (pFakeParentDock);
866
859
                        cairo_dock_calculate_dock_icons (pFakeParentDock);
867
860
                }
889
882
                        pFakeClassIcon->pSubDock = NULL;
890
883
                        
891
884
                        cd_debug ("on enleve l'icone de paille");
892
 
                        cairo_dock_remove_icon_from_dock (pFakeParentDock, pFakeClassIcon);
893
 
                        
894
 
                        cd_debug ("on detruit l'icone de paille");
895
 
                        cairo_dock_free_icon (pFakeClassIcon);
 
885
                        cairo_dock_detach_icon_from_dock (pFakeClassIcon, pFakeParentDock);
 
886
                        gldi_object_delete (GLDI_OBJECT(pFakeClassIcon));
896
887
                        
897
888
                        cd_debug (" puis on re-insere l'appli restante");
898
889
                        if (! bLastIconIsRemoving)
899
890
                        {
900
891
                                cairo_dock_insert_icon_in_dock (pLastClassIcon, pFakeParentDock, ! CAIRO_DOCK_ANIMATE_ICON);
901
 
                                ///cairo_dock_calculate_dock_icons (pFakeParentDock);
902
 
                                ///cairo_dock_redraw_icon (pLastClassIcon, CAIRO_CONTAINER (pFakeParentDock));  // on suppose que les tailles des 2 icones sont identiques.
903
 
                                ///cairo_dock_redraw_container (CAIRO_CONTAINER (pFakeParentDock));
904
892
                        }
905
893
                        else  // la derniere icone est en cours de suppression, inutile de la re-inserer. (c'est souvent lorsqu'on ferme toutes une classe d'un coup. donc les animations sont pratiquement dans le meme etat, donc la derniere icone en est aussi a la fin, donc on ne verrait de toute facon aucune animation.
906
894
                        {
907
895
                                cd_debug ("inutile de re-inserer l'icone restante");
908
 
                                cairo_dock_free_icon (pLastClassIcon);
909
 
                                ///cairo_dock_update_dock_size (pFakeParentDock);
910
 
                                ///cairo_dock_calculate_dock_icons (pFakeParentDock);
911
 
                                ///cairo_dock_redraw_container (CAIRO_CONTAINER (pFakeParentDock));
 
896
                                gldi_object_unref (GLDI_OBJECT (pLastClassIcon));
912
897
                        }
913
898
                }
914
899
                else  // le sous-dock est pointe par un inhibiteur (normal launcher ou applet).
928
913
                        else  // la derniere icone est en cours de suppression, inutile de la re-inserer
929
914
                        {
930
915
                                pFakeClassIcon->bHasIndicator = FALSE;
931
 
                                cairo_dock_free_icon (pLastClassIcon);
 
916
                                gldi_object_unref (GLDI_OBJECT (pLastClassIcon));
932
917
                        }
933
 
                        cairo_dock_redraw_icon (pFakeClassIcon, CAIRO_CONTAINER (g_pMainDock));
 
918
                        cairo_dock_redraw_icon (pFakeClassIcon);
934
919
                }
935
920
                cd_debug ("no more dock");
936
921
                return TRUE;