~uriboni/compiz/unminimize-configurable-independently

« back to all changes in this revision

Viewing changes to plugins/animation/src/animation.cpp

  • Committer: Ugo Riboni
  • Date: 2012-08-20 14:24:34 UTC
  • Revision ID: ugo.riboni@canonical.com-20120820142434-88cq476eb8vlwbtc
Use a slightly nicer syntax for including and excluding effects

Show diffs side-by-side

added added

removed removed

Lines of Context:
2465
2465
  return usedFor;
2466
2466
}
2467
2467
 
 
2468
AnimEffectUsedFor& AnimEffectUsedFor::exclude (AnimEvent event)
 
2469
{
 
2470
  switch (event) {
 
2471
    case AnimEventOpen: open = false; break;
 
2472
    case AnimEventClose: close = false; break;
 
2473
    case AnimEventMinimize: minimize = false; break;
 
2474
    case AnimEventShade: shade = false; break;
 
2475
    case AnimEventUnMinimize: unMinimize = false; break;
 
2476
    case AnimEventFocus: focus = false; break;
 
2477
    default: break;
 
2478
  }
 
2479
  return *this;
 
2480
}
 
2481
 
 
2482
AnimEffectUsedFor& AnimEffectUsedFor::include (AnimEvent event)
 
2483
{
 
2484
  switch (event) {
 
2485
    case AnimEventOpen: open = true; break;
 
2486
    case AnimEventClose: close = true; break;
 
2487
    case AnimEventMinimize: minimize = true; break;
 
2488
    case AnimEventShade: shade = true; break;
 
2489
    case AnimEventUnMinimize: unMinimize = true; break;
 
2490
    case AnimEventFocus: focus = true; break;
 
2491
    default: break;
 
2492
  }
 
2493
  return *this;
 
2494
}
 
2495
 
2468
2496
AnimEffectInfo::AnimEffectInfo (const char *name,
2469
 
                               AnimEffectUsedFor& usedFor,
 
2497
                               AnimEffectUsedFor usedFor,
2470
2498
                                CreateAnimFunc create,
2471
2499
                                bool isRestackAnim) :
2472
2500
    name (name),
2598
2626
PrivateAnimScreen::initAnimationList ()
2599
2627
{
2600
2628
    int i = 0;
2601
 
    AnimEffectUsedFor usedFor;
2602
 
    
2603
 
    usedFor = AnimEffectUsedFor::all();
 
2629
 
2604
2630
    animEffects[i++] = AnimEffectNone =
2605
 
        new AnimEffectInfo ("animation:None", usedFor, 0);
 
2631
        new AnimEffectInfo ("animation:None",
 
2632
                            AnimEffectUsedFor::all(),
 
2633
                            0);
2606
2634
 
2607
 
    usedFor = AnimEffectUsedFor::all();
2608
 
    usedFor.focus = false;
2609
2635
    animEffects[i++] = AnimEffectRandom =
2610
 
        new AnimEffectInfo ("animation:Random", usedFor, 0);
 
2636
        new AnimEffectInfo ("animation:Random",
 
2637
                           AnimEffectUsedFor::all().exclude(AnimEventFocus),
 
2638
                           0);
2611
2639
 
2612
 
    usedFor = AnimEffectUsedFor::all();
2613
 
    usedFor.focus = false;
2614
2640
    animEffects[i++] = AnimEffectCurvedFold =
2615
 
        new AnimEffectInfo ("animation:Curved Fold", usedFor,
 
2641
        new AnimEffectInfo ("animation:Curved Fold",
 
2642
                           AnimEffectUsedFor::all().exclude(AnimEventFocus),
2616
2643
                            &createAnimation<CurvedFoldAnim>);
2617
2644
        
2618
 
    usedFor = AnimEffectUsedFor::none();
2619
 
    usedFor.focus = true;
2620
2645
    animEffects[i++] = AnimEffectDodge =
2621
 
        new AnimEffectInfo ("animation:Dodge", usedFor,
 
2646
        new AnimEffectInfo ("animation:Dodge", 
 
2647
                           AnimEffectUsedFor::none().include(AnimEventFocus),
2622
2648
                            &createAnimation<DodgeAnim>,
2623
2649
                            true);
2624
2650
        
2625
 
    usedFor = AnimEffectUsedFor::all();
2626
 
    usedFor.shade = false;
2627
 
    usedFor.focus = false;
2628
2651
    animEffects[i++] = AnimEffectDream =
2629
 
        new AnimEffectInfo ("animation:Dream", usedFor,
 
2652
        new AnimEffectInfo ("animation:Dream", 
 
2653
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2630
2654
                            &createAnimation<DreamAnim>);
2631
2655
 
2632
 
    usedFor = AnimEffectUsedFor::all();
2633
 
    usedFor.shade = false;
2634
 
    usedFor.focus = false;
2635
2656
    animEffects[i++] = AnimEffectFade =
2636
 
        new AnimEffectInfo ("animation:Fade", usedFor,
 
2657
        new AnimEffectInfo ("animation:Fade",
 
2658
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2637
2659
                            &createAnimation<FadeAnim>);
2638
2660
        
2639
 
    usedFor = AnimEffectUsedFor::none();
2640
 
    usedFor.focus = true;
2641
2661
    animEffects[i++] = AnimEffectFocusFade =
2642
 
        new AnimEffectInfo ("animation:Focus Fade", usedFor,
 
2662
        new AnimEffectInfo ("animation:Focus Fade", 
 
2663
                           AnimEffectUsedFor::none().include(AnimEventFocus),
2643
2664
                            &createAnimation<FocusFadeAnim>,
2644
2665
                            true);
2645
2666
        
2646
 
    usedFor = AnimEffectUsedFor::all();
2647
 
    usedFor.shade = false;
2648
 
    usedFor.focus = false;
2649
2667
    animEffects[i++] = AnimEffectGlide1 =
2650
 
        new AnimEffectInfo ("animation:Glide 1", usedFor,
 
2668
        new AnimEffectInfo ("animation:Glide 1",
 
2669
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2651
2670
                            &createAnimation<GlideAnim>);
2652
2671
        
2653
 
    usedFor = AnimEffectUsedFor::all();
2654
 
    usedFor.shade = false;
2655
 
    usedFor.focus = false;
2656
2672
    animEffects[i++] = AnimEffectGlide2 =
2657
 
        new AnimEffectInfo ("animation:Glide 2", usedFor,
 
2673
        new AnimEffectInfo ("animation:Glide 2",
 
2674
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2658
2675
                            &createAnimation<Glide2Anim>);
2659
2676
        
2660
 
    usedFor = AnimEffectUsedFor::all();
2661
 
    usedFor.focus = false;
2662
2677
    animEffects[i++] = AnimEffectHorizontalFolds =
2663
 
        new AnimEffectInfo ("animation:Horizontal Folds", usedFor,
 
2678
        new AnimEffectInfo ("animation:Horizontal Folds",
 
2679
                           AnimEffectUsedFor::all().exclude(AnimEventFocus),
2664
2680
                            &createAnimation<HorizontalFoldsAnim>);
2665
2681
        
2666
 
    usedFor = AnimEffectUsedFor::all();
2667
 
    usedFor.shade = false;
2668
 
    usedFor.focus = false;
2669
2682
    animEffects[i++] = AnimEffectMagicLamp =
2670
 
        new AnimEffectInfo ("animation:Magic Lamp", usedFor,
 
2683
        new AnimEffectInfo ("animation:Magic Lamp",
 
2684
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2671
2685
                            &createAnimation<MagicLampAnim>);
2672
2686
        
2673
 
    usedFor = AnimEffectUsedFor::all();
2674
 
    usedFor.shade = false;
2675
 
    usedFor.focus = false;
2676
2687
    animEffects[i++] = AnimEffectMagicLampWavy =
2677
 
        new AnimEffectInfo ("animation:Magic Lamp Wavy", usedFor,
 
2688
        new AnimEffectInfo ("animation:Magic Lamp Wavy",
 
2689
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2678
2690
                            &createAnimation<MagicLampWavyAnim>);
2679
2691
        
2680
 
    usedFor = AnimEffectUsedFor::none();
2681
 
    usedFor.shade = true;
2682
2692
    animEffects[i++] = AnimEffectRollUp =
2683
 
        new AnimEffectInfo ("animation:Roll Up", usedFor,
 
2693
        new AnimEffectInfo ("animation:Roll Up",
 
2694
                           AnimEffectUsedFor::none().include(AnimEventShade),
2684
2695
                            &createAnimation<RollUpAnim>);
2685
2696
        
2686
 
    usedFor = AnimEffectUsedFor::all();
2687
 
    usedFor.shade = false;
2688
 
    usedFor.focus = false;
2689
2697
    animEffects[i++] = AnimEffectSidekick =
2690
 
        new AnimEffectInfo ("animation:Sidekick", usedFor,
 
2698
        new AnimEffectInfo ("animation:Sidekick",
 
2699
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2691
2700
                            &createAnimation<SidekickAnim>);
2692
2701
        
2693
 
    usedFor = AnimEffectUsedFor::all();
2694
 
    usedFor.shade = false;
2695
2702
    animEffects[i++] = AnimEffectWave =
2696
 
        new AnimEffectInfo ("animation:Wave", usedFor,
 
2703
        new AnimEffectInfo ("animation:Wave",
 
2704
                           AnimEffectUsedFor::all().exclude(AnimEventShade),
2697
2705
                            &createAnimation<WaveAnim>);
2698
2706
    
2699
 
    usedFor = AnimEffectUsedFor::all();
2700
 
    usedFor.shade = false;
2701
 
    usedFor.focus = false;
2702
2707
    animEffects[i++] = AnimEffectZoom =
2703
 
        new AnimEffectInfo ("animation:Zoom", usedFor,
 
2708
        new AnimEffectInfo ("animation:Zoom", 
 
2709
                           AnimEffectUsedFor::all().exclude(AnimEventFocus).exclude(AnimEventShade),
2704
2710
                            &createAnimation<ZoomAnim>);
2705
2711
 
2706
2712
    animExtensionPluginInfo.effectOptions = &getOptions ();