taskswitcher/utils/inc/tswindowgroupsobserver.h
changeset 125 26079c1bb561
parent 119 50e220be30d1
equal deleted inserted replaced
123:d1dadafc5584 125:26079c1bb561
    15  *
    15  *
    16  */
    16  */
    17 #ifndef TSWINDOWGROUPSOBSERVER_H
    17 #ifndef TSWINDOWGROUPSOBSERVER_H
    18 #define TSWINDOWGROUPSOBSERVER_H
    18 #define TSWINDOWGROUPSOBSERVER_H
    19 
    19 
    20 #include "tsresourcemanager.h"
    20 class MTsResourceManager;
    21 
    21 class MTsRunningApplicationStorage;
    22 class MTsRunningApplication
       
    23     {
       
    24 public:
       
    25     virtual TUid UidL()const =0;
       
    26     virtual const TDesC& CaptionL() const =0;
       
    27     virtual TBool IsHiddenL() const =0;
       
    28     virtual TBool IsSystemL() const =0;
       
    29     virtual TInt WindowGroupId() const =0;
       
    30     virtual TInt ParentWindowGroupId() const =0;
       
    31     virtual TBool IsEmbeded() const =0;
       
    32     
       
    33 
       
    34     };
       
    35 
       
    36 class MTsRunningApplicationStorage
       
    37     {
       
    38 public:
       
    39     virtual const MTsRunningApplication& operator[] (TInt aOffset) const=0;
       
    40     virtual TInt Count() const =0;
       
    41     virtual TInt ParentIndex( const MTsRunningApplication& aRaunningApp ) const =0;
       
    42     virtual TArray<TInt> BlockedWindowGroups() const =0;
       
    43 
       
    44     };
       
    45 
       
    46 /**
    22 /**
    47  * Interface declare mathods to notify about window server events
    23  * Interface declare mathods to notify about window server events
    48  */
    24  */
    49 class MTsWindowGroupsObserver
    25 class MTsWindowGroupsObserver
    50 {
    26     {
    51 public:
    27 public:
    52     /**
    28     /**
    53      * Method notify about window group changes.
    29      * Method notify about window group changes.
    54      * @param aResources - resource manager
    30      * @param aResources - resource manager
    55      * @param aStorage - list of running applications
    31      * @param aStorage - list of running applications
    56      */
    32      */
    57     virtual void HandleWindowGroupChanged(MTsResourceManager &aResources, 
    33     virtual void HandleWindowGroupChanged(
    58                                           const MTsRunningApplicationStorage& aStorage) =0;
    34                               MTsResourceManager& aResources, 
    59 };
    35                               const MTsRunningApplicationStorage& aStorage) =0;
    60 
    36     };
    61 /**
       
    62  * Interface declare methods to subscribe windo server events
       
    63  */
       
    64 class MTsWindowGroupsMonitor
       
    65 {
       
    66 public:
       
    67     /**
       
    68      * Method make subscription for window server events
       
    69      * @param observer - events observer
       
    70      */
       
    71     virtual void SubscribeL(MTsWindowGroupsObserver & observer) =0;
       
    72     
       
    73     /**
       
    74      * Method cancel subscription for window server events
       
    75      * @param observer - events observer
       
    76      */
       
    77     virtual void Cancel(MTsWindowGroupsObserver &) =0;
       
    78 };
       
    79 
       
    80 /**
       
    81  * Window server observer implementation. Class automaticly subscribe / cancel subscription
       
    82  * at construction / destruction level.
       
    83  * 
       
    84  */
       
    85 class CTsWindowGroupsObserver: public CBase,
       
    86                                public MTsWindowGroupsObserver
       
    87 {
       
    88 public:
       
    89     /**
       
    90      * Destructor
       
    91      * Function automaticly cancel subscrption to window server events
       
    92      */
       
    93     ~CTsWindowGroupsObserver();
       
    94     
       
    95 protected:
       
    96     /**
       
    97      * First phase constructor
       
    98      */
       
    99     CTsWindowGroupsObserver(MTsWindowGroupsMonitor &);
       
   100     
       
   101     /**
       
   102      * Second phase constructor.
       
   103      * Function automaticly subscribe window server events
       
   104      */
       
   105     void BaseConstructL();
       
   106 
       
   107 private:
       
   108     MTsWindowGroupsMonitor & mMonitor;
       
   109 };
       
   110 
    37 
   111 #endif //TSWINDOWGROUPSOBSERVER_H
    38 #endif //TSWINDOWGROUPSOBSERVER_H