Index: trunk/src/ash/launcher/launcher_item_delegate_manager.h |
=================================================================== |
--- trunk/src/ash/launcher/launcher_item_delegate_manager.h (revision 226578) |
+++ trunk/src/ash/launcher/launcher_item_delegate_manager.h (working copy) |
@@ -8,62 +8,40 @@ |
#include <map> |
#include "ash/ash_export.h" |
-#include "ash/launcher/launcher_model_observer.h" |
#include "ash/launcher/launcher_types.h" |
#include "base/compiler_specific.h" |
-#include "base/memory/scoped_ptr.h" |
namespace ash { |
class LauncherItemDelegate; |
-class LauncherModel; |
-namespace test { |
-class LauncherItemDelegateManagerTestAPI; |
-} |
- |
-// LauncherItemDelegateManager manages the set of LauncherItemDelegates for the |
-// launcher. LauncherItemDelegateManager does not create LauncherItemDelegates, |
-// rather it is expected that someone else invokes SetLauncherItemDelegate |
-// appropriately. On the other hand, LauncherItemDelegateManager destroys |
-// LauncherItemDelegates when the corresponding item from the model is removed. |
-class ASH_EXPORT LauncherItemDelegateManager |
- : public ash::LauncherModelObserver { |
+// LauncherItemDelegateManager helps Launcher/LauncherView to choose right |
+// LauncherItemDelegate based on LauncherItemType. |
+// When new LauncherItemDelegate is created, it must be registered by |
+// RegisterLauncherItemDelegate(). If not, Launcher/LauncherView can't get |
+// LauncherItem's LauncherItemDelegate. |
+// TODO(simon.hong81): This class should own all LauncherItemDelegate. |
+class ASH_EXPORT LauncherItemDelegateManager { |
public: |
- explicit LauncherItemDelegateManager(ash::LauncherModel* model); |
+ LauncherItemDelegateManager(); |
virtual ~LauncherItemDelegateManager(); |
- // Set |item_delegate| for |id| and take an ownership. |
- void SetLauncherItemDelegate( |
- ash::LauncherID id, |
- scoped_ptr<ash::LauncherItemDelegate> item_delegate); |
+ // Returns LauncherItemDelegate for |item_type|. |
+ // This class doesn't own each LauncherItemDelegate for now. |
+ LauncherItemDelegate* GetLauncherItemDelegate( |
+ ash::LauncherItemType item_type); |
- // Returns LauncherItemDelegate for |item_type|. Always returns non-NULL. |
- LauncherItemDelegate* GetLauncherItemDelegate(ash::LauncherID id); |
+ // Register |item_delegate| for |type|. |
+ // For now, This class doesn't own |item_delegate|. |
+ // TODO(simon.hong81): Register LauncherItemDelegate with LauncherID. |
+ void RegisterLauncherItemDelegate( |
+ ash::LauncherItemType type, LauncherItemDelegate* item_delegate); |
- // ash::LauncherModelObserver overrides: |
- virtual void LauncherItemAdded(int model_index) OVERRIDE; |
- virtual void LauncherItemRemoved(int index, ash::LauncherID id) OVERRIDE; |
- virtual void LauncherItemMoved(int start_index, int targetindex) OVERRIDE; |
- virtual void LauncherItemChanged( |
- int index, |
- const ash::LauncherItem& old_item) OVERRIDE; |
- virtual void LauncherStatusChanged() OVERRIDE; |
- |
private: |
- friend class ash::test::LauncherItemDelegateManagerTestAPI; |
+ typedef std::map<ash::LauncherItemType, LauncherItemDelegate*> |
+ LauncherItemTypeToItemDelegateMap; |
- typedef std::map<ash::LauncherID, LauncherItemDelegate*> |
- LauncherIDToItemDelegateMap; |
+ LauncherItemTypeToItemDelegateMap item_type_to_item_delegate_map_; |
- // Remove and destroy LauncherItemDelegate for |id|. |
- void RemoveLauncherItemDelegate(ash::LauncherID id); |
- |
- // Clear all exsiting LauncherItemDelegate for test. |
- // Not owned by LauncherItemDelegate. |
- ash::LauncherModel* model_; |
- |
- LauncherIDToItemDelegateMap id_to_item_delegate_map_; |
- |
DISALLOW_COPY_AND_ASSIGN(LauncherItemDelegateManager); |
}; |