summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/extensions/browser_action_drag_data.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-11-25 19:40:10 +0000
committerBen Murdoch <benm@google.com>2010-12-03 13:52:53 +0000
commit4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7 (patch)
tree938665d93a11fe7a6d0124e3c1e020d1f9d3f947 /chrome/browser/ui/views/extensions/browser_action_drag_data.h
parent7c627d87728a355737862918d144f98f69406954 (diff)
downloadexternal_chromium-4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7.zip
external_chromium-4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7.tar.gz
external_chromium-4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7.tar.bz2
Merge Chromium at r66597: Initial merge by git.
Change-Id: I9639f8a997f90ec219573aa22a49f5dbde78cc7b
Diffstat (limited to 'chrome/browser/ui/views/extensions/browser_action_drag_data.h')
-rw-r--r--chrome/browser/ui/views/extensions/browser_action_drag_data.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/chrome/browser/ui/views/extensions/browser_action_drag_data.h b/chrome/browser/ui/views/extensions/browser_action_drag_data.h
new file mode 100644
index 0000000..ae26cca
--- /dev/null
+++ b/chrome/browser/ui/views/extensions/browser_action_drag_data.h
@@ -0,0 +1,64 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_BROWSER_ACTION_DRAG_DATA_H_
+#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_BROWSER_ACTION_DRAG_DATA_H_
+#pragma once
+
+#include <string>
+
+#include "base/basictypes.h"
+#include "chrome/browser/profile.h"
+
+#if defined(TOOLKIT_VIEWS)
+#include "app/os_exchange_data.h"
+#endif
+
+class BrowserActionButton;
+class FilePath;
+class Pickle;
+class Profile;
+
+class BrowserActionDragData {
+ public:
+ BrowserActionDragData();
+ BrowserActionDragData(const std::string& id, int index);
+
+ const std::string& id() const { return id_; }
+
+ size_t index() const { return index_; }
+
+ // Returns true if this data is from the specified profile.
+ bool IsFromProfile(Profile* profile) const;
+
+#if defined(TOOLKIT_VIEWS)
+ void Write(Profile* profile, OSExchangeData* data) const;
+
+ // Restores this data from the clipboard, returning true on success.
+ bool Read(const OSExchangeData& data);
+
+ // Returns the Custom Format this class supports (for Browser Actions).
+ static OSExchangeData::CustomFormat GetBrowserActionCustomFormat();
+#endif
+
+ private:
+ void WriteToPickle(Profile* profile, Pickle* pickle) const;
+ bool ReadFromPickle(Pickle* pickle);
+
+ // ID of the profile we originated from.
+ ProfileId profile_id_;
+
+ // The id of the view being dragged.
+ std::string id_;
+
+ // The index of the view being dragged.
+ size_t index_;
+
+ // The MIME type for the clipboard format for BrowserActionDragData.
+ static const char* kClipboardFormatString;
+
+ DISALLOW_COPY_AND_ASSIGN(BrowserActionDragData);
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_BROWSER_ACTION_DRAG_DATA_H_