diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-05 23:33:01 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-05 23:33:01 +0000 |
commit | 01083a0d17b0f5a4100fadb2bd5523359d3b938b (patch) | |
tree | 4f24ead093a1dcf88099d522d632a58caa23a06f /chrome | |
parent | 630201eb53202b8b4ae81c4ed8f936be92c135c3 (diff) | |
download | chromium_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.cc | 12 | ||||
-rw-r--r-- | chrome/browser/browser.scons | 2 | ||||
-rw-r--r-- | chrome/browser/browser_window_factory_gtk.cc | 12 | ||||
-rw-r--r-- | chrome/browser/browser_window_gtk.cc | 173 | ||||
-rw-r--r-- | chrome/browser/browser_window_gtk.h | 65 | ||||
-rw-r--r-- | chrome/common/temp_scaffolding_stubs.cc | 7 |
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 { |