[haiku-webkit-commits] r277 - in webkit/trunk/WebKit: . haiku/WebPositive

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Wed, 03 Mar 2010 10:57:46 +0000

Author: stippi
Date: Wed Mar  3 10:57:46 2010
New Revision: 277
URL: http://mmlr.dyndns.org/changeset/277

Log:
Implemented basic settings window skeleton.

Added:
   webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp
   webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h
Modified:
   webkit/trunk/WebKit/Jamfile
   webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.cpp
   webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.h
   webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp
   webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h

Modified: webkit/trunk/WebKit/Jamfile
==============================================================================
--- webkit/trunk/WebKit/Jamfile Wed Mar  3 10:22:50 2010        (r276)
+++ webkit/trunk/WebKit/Jamfile Wed Mar  3 10:57:46 2010        (r277)
@@ -128,6 +128,7 @@
     IconButton.cpp
        BrowserApp.cpp
        BrowserWindow.cpp
+       SettingsWindow.cpp
        WebTabView.cpp
 
        :

Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.cpp        Wed Mar  3 
10:22:50 2010        (r276)
+++ webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.cpp        Wed Mar  3 
10:57:46 2010        (r277)
@@ -32,6 +32,7 @@
 #include "BrowserWindow.h"
 #include "BrowsingHistory.h"
 #include "DownloadWindow.h"
+#include "SettingsWindow.h"
 #include "WebPage.h"
 #include "WebSettings.h"
 #include "WebView.h"
@@ -52,12 +53,14 @@
 static const uint32 PRELOAD_BROWSING_HISTORY = 'plbh';
 
 BrowserApp::BrowserApp()
-       : BApplication(kApplicationSignature)
-       , fWindowCount(0)
-       , fLastWindowFrame(100, 100, 700, 750)
-       , fLaunchRefsMessage(0)
-       , fInitialized(false)
-       , fDownloadWindow(0)
+       :
+       BApplication(kApplicationSignature),
+       fWindowCount(0),
+       fLastWindowFrame(100, 100, 700, 750),
+       fLaunchRefsMessage(0),
+       fInitialized(false),
+       fDownloadWindow(NULL),
+       fSettingsWindow(NULL)
 {
 }
 
@@ -111,17 +114,26 @@
        BFile settingsFile;
        BRect windowFrameFromSettings = fLastWindowFrame;
        BRect downloadWindowFrame(100, 100, 300, 250);
+       BRect settingsWindowFrame;
        bool showDownloads = false;
        if (_OpenSettingsFile(settingsFile, B_READ_ONLY)) {
                BMessage settingsArchive;
                settingsArchive.Unflatten(&settingsFile);
-               settingsArchive.FindRect("window frame", 
&windowFrameFromSettings);
-               settingsArchive.FindRect("downloads window frame", 
&downloadWindowFrame);
-               settingsArchive.FindBool("show downloads", &showDownloads);
+               BRect rect;
+               if (settingsArchive.FindRect("window frame", &rect) == B_OK)
+                       windowFrameFromSettings = rect;
+               if (settingsArchive.FindRect("downloads window frame", &rect) 
== B_OK)
+                       downloadWindowFrame = rect;
+               if (settingsArchive.FindRect("settings window frame", &rect) == 
B_OK)
+                       settingsWindowFrame = rect;
+               bool flag;
+               if (settingsArchive.FindBool("show downloads", &flag) == B_OK)
+                       showDownloads = flag;
        }
        fLastWindowFrame = windowFrameFromSettings;
 
        fDownloadWindow = new DownloadWindow(downloadWindowFrame, 
showDownloads);
+       fSettingsWindow = new SettingsWindow(settingsWindowFrame);
 
        fInitialized = true;
 
@@ -176,17 +188,12 @@
                        PostMessage(B_QUIT_REQUESTED);
                break;
 
-       case SHOW_DOWNLOAD_WINDOW: {
-               BAutolock _(fDownloadWindow);
-               uint32 workspaces;
-               if (message->FindUInt32("workspaces", &workspaces) == B_OK)
-                       fDownloadWindow->SetWorkspaces(workspaces);
-               if (fDownloadWindow->IsHidden())
-                       fDownloadWindow->Show();
-               else
-                       fDownloadWindow->Activate();
+       case SHOW_DOWNLOAD_WINDOW:
+               _ShowWindow(message, fDownloadWindow);
+               break;
+       case SHOW_SETTINGS_WINDOW:
+               _ShowWindow(message, fSettingsWindow);
                break;
-       }
 
        default:
                BApplication::MessageReceived(message);
@@ -251,6 +258,10 @@
                        settingsArchive.AddBool("show downloads", 
!fDownloadWindow->IsHidden());
                        fDownloadWindow->Unlock();
                }
+               if (fSettingsWindow->Lock()) {
+                       settingsArchive.AddRect("settings window frame", 
fSettingsWindow->Frame());
+                       fSettingsWindow->Unlock();
+               }
                settingsArchive.Flatten(&settingsFile);
        }
 
@@ -324,6 +335,20 @@
 }
 
 
+void
+BrowserApp::_ShowWindow(const BMessage* message, BWindow* window)
+{
+       BAutolock _(window);
+       uint32 workspaces;
+       if (message->FindUInt32("workspaces", &workspaces) == B_OK)
+               window->SetWorkspaces(workspaces);
+       if (window->IsHidden())
+               window->Show();
+       else
+               window->Activate();
+}
+
+
 // #pragma mark -
 
 

Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.h
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.h  Wed Mar  3 10:22:50 
2010        (r276)
+++ webkit/trunk/WebKit/haiku/WebPositive/BrowserApp.h  Wed Mar  3 10:57:46 
2010        (r277)
@@ -35,6 +35,7 @@
 class BFile;
 class DownloadWindow;
 class BrowserWindow;
+class SettingsWindow;
 
 
 class BrowserApp : public BApplication {
@@ -55,6 +56,8 @@
                        void                            _CreateNewWindow(const 
BString& url);
                        void                            
_CreateNewTab(BrowserWindow* window,
                                                                        const 
BString& url, bool select);
+                       void                            _ShowWindow(const 
BMessage* message,
+                                                                       
BWindow* window);
 
 private:
                        int                                     fWindowCount;
@@ -63,6 +66,7 @@
                        bool                            fInitialized;
 
                        DownloadWindow*         fDownloadWindow;
+                       SettingsWindow*         fSettingsWindow;
 };
 
 

Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp     Wed Mar  3 
10:22:50 2010        (r276)
+++ webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp     Wed Mar  3 
10:57:46 2010        (r277)
@@ -187,6 +187,7 @@
                menu->AddItem(new BMenuItem("Close tab", new 
BMessage(CLOSE_TAB), 'W'));
                menu->AddSeparatorItem();
                menu->AddItem(new BMenuItem("Show downloads", new 
BMessage(SHOW_DOWNLOAD_WINDOW), 'J'));
+               menu->AddItem(new BMenuItem("Show settings", new 
BMessage(SHOW_SETTINGS_WINDOW)));
                menu->AddSeparatorItem();
                BMenuItem* quitItem = new BMenuItem("Quit", new 
BMessage(B_QUIT_REQUESTED), 'Q');
                menu->AddItem(quitItem);
@@ -473,6 +474,7 @@
                break;
 
        case SHOW_DOWNLOAD_WINDOW:
+       case SHOW_SETTINGS_WINDOW:
                message->AddUInt32("workspaces", Workspaces());
                be_app->PostMessage(message);
                break;

Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h       Wed Mar  3 
10:22:50 2010        (r276)
+++ webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h       Wed Mar  3 
10:57:46 2010        (r277)
@@ -56,7 +56,8 @@
        NEW_TAB = 'ntab',
        WINDOW_OPENED = 'wndo',
        WINDOW_CLOSED = 'wndc',
-       SHOW_DOWNLOAD_WINDOW = 'sdwd'
+       SHOW_DOWNLOAD_WINDOW = 'sdwd',
+       SHOW_SETTINGS_WINDOW = 'sswd'
 };
 
 #define INTEGRATE_MENU_INTO_TAB_BAR 0

Added: webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.cpp    Wed Mar  3 
10:57:46 2010        (r277)
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2010 Stephan Aßmus <superstippi@xxxxxx>
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "SettingsWindow.h"
+
+#include "BrowserApp.h"
+#include "WebSettings.h"
+
+#include <Button.h>
+#include <ControlLook.h>
+#include <GridLayoutBuilder.h>
+#include <GroupLayout.h>
+#include <GroupLayoutBuilder.h>
+#include <MenuItem.h>
+#include <ScrollView.h>
+#include <SeparatorView.h>
+#include <SpaceLayoutItem.h>
+#include <stdio.h>
+
+
+enum {
+       MSG_OK                  = 'aply',
+       MSG_CANCEL              = 'cncl',
+       MSG_REVERT              = 'rvrt',
+};
+
+
+SettingsWindow::SettingsWindow(BRect frame)
+       :
+       BWindow(frame, "Settings", B_TITLED_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
+               B_AUTO_UPDATE_SIZE_LIMITS | B_ASYNCHRONOUS_CONTROLS | 
B_NOT_ZOOMABLE)
+{
+       SetLayout(new BGroupLayout(B_VERTICAL));
+
+       fOkButton = new BButton("OK", new BMessage(MSG_OK));
+       fCancelButton = new BButton("Cancel", new BMessage(MSG_CANCEL));
+       fRevertButton = new BButton("Revert", new BMessage(MSG_REVERT));
+
+       float spacing = be_control_look->DefaultItemSpacing();
+
+       AddChild(BGroupLayoutBuilder(B_VERTICAL)
+               .Add(BGridLayoutBuilder(spacing, spacing)
+               )
+               .Add(new BSeparatorView(B_HORIZONTAL, B_PLAIN_BORDER))
+               .Add(BGroupLayoutBuilder(B_HORIZONTAL, spacing)
+                       .Add(fRevertButton)
+                       .AddGlue()
+                       .Add(fCancelButton)
+                       .Add(fOkButton)
+                       .SetInsets(spacing, spacing, spacing, spacing)
+               )
+       );
+
+       fOkButton->MakeDefault(true);
+
+       if (!frame.IsValid())
+               CenterOnScreen();
+
+       // Start hidden
+       Hide();
+       Show();
+}
+
+
+SettingsWindow::~SettingsWindow()
+{
+}
+
+
+void
+SettingsWindow::MessageReceived(BMessage* message)
+{
+       switch (message->what) {
+       case MSG_OK:
+               _ApplySettings();
+               PostMessage(B_QUIT_REQUESTED);
+               break;
+       case MSG_CANCEL:
+               _RevertSettings();
+               PostMessage(B_QUIT_REQUESTED);
+               break;
+       case MSG_REVERT:
+               _RevertSettings();
+               break;
+       default:
+               BWindow::MessageReceived(message);
+               break;
+       }
+}
+
+
+bool
+SettingsWindow::QuitRequested()
+{
+       if (!IsHidden())
+               Hide();
+       return false;
+}
+
+
+// #pragma mark - private
+
+
+void
+SettingsWindow::_ApplySettings()
+{
+}
+
+
+void
+SettingsWindow::_RevertSettings()
+{
+}
+
+

Added: webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ webkit/trunk/WebKit/haiku/WebPositive/SettingsWindow.h      Wed Mar  3 
10:57:46 2010        (r277)
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2010 Stephan Aßmus <superstippi@xxxxxx>
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef SETTINGS_WINDOW_H
+#define SETTINGS_WINDOW_H
+
+#include <Window.h>
+
+class BButton;
+
+
+class SettingsWindow : public BWindow {
+public:
+                                                               
SettingsWindow(BRect frame);
+       virtual                                         ~SettingsWindow();
+
+       virtual void                            MessageReceived(BMessage* 
message);
+       virtual bool                            QuitRequested();
+
+private:
+                       void                            _ApplySettings();
+                       void                            _RevertSettings();
+
+private:
+                       BButton*                        fOkButton;
+                       BButton*                        fCancelButton;
+                       BButton*                        fRevertButton;
+};
+
+
+#endif // SETTINGS_WINDOW_H
+

Other related posts:

  • » [haiku-webkit-commits] r277 - in webkit/trunk/WebKit: . haiku/WebPositive - webkit