summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-05 23:33:01 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-05 23:33:01 +0000
commit01083a0d17b0f5a4100fadb2bd5523359d3b938b (patch)
tree4f24ead093a1dcf88099d522d632a58caa23a06f /chrome
parent630201eb53202b8b4ae81c4ed8f936be92c135c3 (diff)
downloadchromium_src-01083a0d17b0f5a4100fadb2bd5523359d3b938b.zip
chromium_src-01083a0d17b0f5a4100fadb2bd5523359d3b938b.tar.gz
chromium_src-01083a0d17b0f5a4100fadb2bd5523359d3b938b.tar.bz2
Stub implementation of gtk browser window.
Review URL: http://codereview.chromium.org/21107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9276 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/chrome_dll_main.cc12
-rw-r--r--chrome/browser/browser.scons2
-rw-r--r--chrome/browser/browser_window_factory_gtk.cc12
-rw-r--r--chrome/browser/browser_window_gtk.cc173
-rw-r--r--chrome/browser/browser_window_gtk.h65
-rw-r--r--chrome/common/temp_scaffolding_stubs.cc7
6 files changed, 264 insertions, 7 deletions
diff --git a/chrome/app/chrome_dll_main.cc b/chrome/app/chrome_dll_main.cc
index 94cedf4..c15f2fc 100644
--- a/chrome/app/chrome_dll_main.cc
+++ b/chrome/app/chrome_dll_main.cc
@@ -16,6 +16,10 @@
#include <new.h>
#endif
+#if defined(OS_LINUX)
+#include <gtk/gtk.h>
+#endif
+
#include "base/at_exit.h"
#include "base/command_line.h"
#include "base/icu_util.h"
@@ -203,6 +207,14 @@ int ChromeMain(int argc, const char** argv) {
// before we invoke the main UI loop near the bottom of this function.
base::ScopedNSAutoreleasePool autorelease_pool;
+#if defined(OS_LINUX)
+ // gtk_init() can change |argc| and |argv| and thus must be called before
+ // CommandLine::Init().
+ // TODO(estade): we should make a copy of |argv| instead of const_casting
+ // it.
+ gtk_init(&argc, const_cast<char***>(&argv));
+#endif
+
// Initialize the command line.
#if defined(OS_WIN)
CommandLine::Init(0, NULL);
diff --git a/chrome/browser/browser.scons b/chrome/browser/browser.scons
index b11d554..a3e9b70 100644
--- a/chrome/browser/browser.scons
+++ b/chrome/browser/browser.scons
@@ -815,6 +815,8 @@ if not env.Bit('windows'):
if env.Bit('linux'):
input_files.Extend([
'browser_main_gtk.cc',
+ 'browser_window_factory_gtk.cc',
+ 'browser_window_gtk.cc',
'renderer_host/render_widget_host_view_gtk.cc',
])
diff --git a/chrome/browser/browser_window_factory_gtk.cc b/chrome/browser/browser_window_factory_gtk.cc
new file mode 100644
index 0000000..0d0ffb6
--- /dev/null
+++ b/chrome/browser/browser_window_factory_gtk.cc
@@ -0,0 +1,12 @@
+// Copyright (c) 2009 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.
+
+#include "chrome/browser/browser_window.h"
+
+#include "chrome/browser/browser_window_gtk.h"
+
+BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) {
+ return new BrowserWindowGtk(browser);
+}
+
diff --git a/chrome/browser/browser_window_gtk.cc b/chrome/browser/browser_window_gtk.cc
new file mode 100644
index 0000000..af251453
--- /dev/null
+++ b/chrome/browser/browser_window_gtk.cc
@@ -0,0 +1,173 @@
+// Copyright (c) 2009 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.
+
+#include "chrome/browser/browser_window_gtk.h"
+
+#include <gtk/gtk.h>
+
+#include "base/gfx/rect.h"
+#include "base/logging.h"
+
+BrowserWindowGtk::BrowserWindowGtk(Browser* browser) : browser_(browser) {
+ Init();
+}
+
+// TODO(estade): are we the owners of browser_? If so, we need to free it here.
+BrowserWindowGtk::~BrowserWindowGtk() {
+ Close();
+}
+
+void BrowserWindowGtk::Init() {
+ window_ = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
+ gtk_window_set_title(window_, "Chromium");
+ gtk_window_set_default_size(window_, 640, 480);
+}
+
+void BrowserWindowGtk::Show() {
+ gtk_widget_show_all(GTK_WIDGET(window_));
+}
+
+void BrowserWindowGtk::SetBounds(const gfx::Rect& bounds) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::Close() {
+ if (!window_)
+ return;
+
+ gtk_widget_destroy(GTK_WIDGET(window_));
+ window_ = NULL;
+}
+
+void BrowserWindowGtk::Activate() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::FlashFrame() {
+ NOTIMPLEMENTED();
+}
+
+void* BrowserWindowGtk::GetNativeHandle() {
+ NOTIMPLEMENTED();
+ return NULL;
+}
+
+BrowserWindowTesting* BrowserWindowGtk::GetBrowserWindowTesting() {
+ NOTIMPLEMENTED();
+ return NULL;
+}
+
+StatusBubble* BrowserWindowGtk::GetStatusBubble() {
+ NOTIMPLEMENTED();
+ return NULL;
+}
+
+void BrowserWindowGtk::SelectedTabToolbarSizeChanged(bool is_animating) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::UpdateTitleBar() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::UpdateLoadingAnimations(bool should_animate) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::SetStarredState(bool is_starred) {
+ NOTIMPLEMENTED();
+}
+
+gfx::Rect BrowserWindowGtk::GetNormalBounds() const {
+ NOTIMPLEMENTED();
+ return gfx::Rect();
+}
+
+bool BrowserWindowGtk::IsMaximized() {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+LocationBar* BrowserWindowGtk::GetLocationBar() const {
+ NOTIMPLEMENTED();
+ return NULL;
+}
+
+void BrowserWindowGtk::UpdateStopGoState(bool is_loading) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::UpdateToolbar(TabContents* contents,
+ bool should_restore_state) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::FocusToolbar() {
+ NOTIMPLEMENTED();
+}
+
+bool BrowserWindowGtk::IsBookmarkBarVisible() const {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+void BrowserWindowGtk::ToggleBookmarkBar() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowAboutChromeDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowBookmarkManager() {
+ NOTIMPLEMENTED();
+}
+
+bool BrowserWindowGtk::IsBookmarkBubbleVisible() const {
+ NOTIMPLEMENTED();
+ return false;
+}
+
+void BrowserWindowGtk::ShowBookmarkBubble(const GURL& url,
+ bool already_bookmarked) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowReportBugDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowClearBrowsingDataDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowImportDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowSearchEnginesDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowPasswordManager() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowSelectProfileDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowNewProfileDialog() {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::ShowHTMLDialog(HtmlDialogContentsDelegate* delegate,
+ void* parent_window) {
+ NOTIMPLEMENTED();
+}
+
+void BrowserWindowGtk::DestroyBrowser() {
+ NOTIMPLEMENTED();
+}
+
diff --git a/chrome/browser/browser_window_gtk.h b/chrome/browser/browser_window_gtk.h
new file mode 100644
index 0000000..36be2a8
--- /dev/null
+++ b/chrome/browser/browser_window_gtk.h
@@ -0,0 +1,65 @@
+// Copyright (c) 2009 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_WINDOW_GTK_H_
+#define CHROME_BROWSER_WINDOW_GTK_H_
+
+#include "chrome/browser/browser_window.h"
+
+typedef struct _GtkWindow GtkWindow;
+
+// An implementation of BrowserWindow for GTK.
+// Cross-platform code will interact with this object when
+// it needs to manipulate the window.
+
+class BrowserWindowGtk : public BrowserWindow {
+ public:
+ explicit BrowserWindowGtk(Browser* browser);
+ virtual ~BrowserWindowGtk();
+
+ // Overridden from BrowserWindow
+ virtual void Init();
+ virtual void Show();
+ virtual void SetBounds(const gfx::Rect& bounds);
+ virtual void Close();
+ virtual void Activate();
+ virtual void FlashFrame();
+ virtual void* GetNativeHandle();
+ virtual BrowserWindowTesting* GetBrowserWindowTesting();
+ virtual StatusBubble* GetStatusBubble();
+ virtual void SelectedTabToolbarSizeChanged(bool is_animating);
+ virtual void UpdateTitleBar();
+ virtual void UpdateLoadingAnimations(bool should_animate);
+ virtual void SetStarredState(bool is_starred);
+ virtual gfx::Rect GetNormalBounds() const;
+ virtual bool IsMaximized();
+ virtual LocationBar* GetLocationBar() const;
+ virtual void UpdateStopGoState(bool is_loading);
+ virtual void UpdateToolbar(TabContents* contents,
+ bool should_restore_state);
+ virtual void FocusToolbar();
+ virtual bool IsBookmarkBarVisible() const;
+ virtual void ToggleBookmarkBar();
+ virtual void ShowAboutChromeDialog();
+ virtual void ShowBookmarkManager();
+ virtual bool IsBookmarkBubbleVisible() const;
+ virtual void ShowBookmarkBubble(const GURL& url, bool already_bookmarked);
+ virtual void ShowReportBugDialog();
+ virtual void ShowClearBrowsingDataDialog();
+ virtual void ShowImportDialog();
+ virtual void ShowSearchEnginesDialog();
+ virtual void ShowPasswordManager();
+ virtual void ShowSelectProfileDialog();
+ virtual void ShowNewProfileDialog();
+ virtual void ShowHTMLDialog(HtmlDialogContentsDelegate* delegate,
+ void* parent_window);
+
+ protected:
+ virtual void DestroyBrowser();
+ GtkWindow* window_;
+ Browser* browser_;
+};
+
+#endif // CHROME_BROWSER_WINDOW_GTK_H_
+
diff --git a/chrome/common/temp_scaffolding_stubs.cc b/chrome/common/temp_scaffolding_stubs.cc
index d050cb7..df04efe 100644
--- a/chrome/common/temp_scaffolding_stubs.cc
+++ b/chrome/common/temp_scaffolding_stubs.cc
@@ -262,13 +262,6 @@ std::string CreateHistoryStateForURL(const GURL& url) { return ""; }
}
#endif
-#if defined(OS_LINUX)
-BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) {
- NOTIMPLEMENTED() << "CreateBrowserWindow";
- return NULL;
-}
-#endif
-
//--------------------------------------------------------------------------
namespace chrome_browser_net {