--- a/WebCore/page/Page.cpp Fri Sep 17 09:02:29 2010 +0300
+++ b/WebCore/page/Page.cpp Mon Oct 04 01:32:07 2010 +0300
@@ -166,6 +166,7 @@
, m_customHTMLTokenizerTimeDelay(-1)
, m_customHTMLTokenizerChunkSize(-1)
, m_canStartMedia(true)
+ , m_viewMode(ViewModeWindowed)
{
#if !ENABLE(CONTEXT_MENUS)
UNUSED_PARAM(contextMenuClient);
@@ -232,6 +233,45 @@
#endif
}
+struct ViewModeInfo {
+ const char* name;
+ Page::ViewMode type;
+};
+static const int viewModeMapSize = 5;
+static ViewModeInfo viewModeMap[viewModeMapSize] = {
+ {"windowed", Page::ViewModeWindowed},
+ {"floating", Page::ViewModeFloating},
+ {"fullscreen", Page::ViewModeFullscreen},
+ {"maximized", Page::ViewModeMaximized},
+ {"minimized", Page::ViewModeMinimized}
+};
+
+Page::ViewMode Page::stringToViewMode(const String& text)
+{
+ for (int i = 0; i < viewModeMapSize; ++i) {
+ if (text == viewModeMap[i].name)
+ return viewModeMap[i].type;
+ }
+ return Page::ViewModeInvalid;
+}
+
+void Page::setViewMode(ViewMode viewMode)
+{
+ if (viewMode == m_viewMode || viewMode == ViewModeInvalid)
+ return;
+
+ m_viewMode = viewMode;
+
+ if (!m_mainFrame)
+ return;
+
+ if (m_mainFrame->view())
+ m_mainFrame->view()->forceLayout();
+
+ if (m_mainFrame->document())
+ m_mainFrame->document()->updateStyleSelector();
+}
+
void Page::setMainFrame(PassRefPtr<Frame> mainFrame)
{
ASSERT(!m_mainFrame); // Should only be called during initialization