Reviewed by Trey.
[WebKit-https.git] / WebCore / khtml / ecma / kjs_window.h
index 10c7bdd6063711098cfffe4ada8e44de401171cc..a29118d641a264cfa19a9b830bedc49d574a28a0 100644 (file)
@@ -39,6 +39,7 @@ namespace KJS {
   class WindowQObject;
   class Location;
   class Selection;
+  class BarInfo;
   class History;
   class FrameArray;
   class JSEventListener;
@@ -102,6 +103,12 @@ namespace KJS {
     bool isSafeScript(ExecState *exec) const;
     Location *location() const;
     Selection *selection() const;
+    BarInfo *locationbar(ExecState *exec) const;
+    BarInfo *menubar(ExecState *exec) const;
+    BarInfo *personalbar(ExecState *exec) const;
+    BarInfo *scrollbars(ExecState *exec) const;
+    BarInfo *statusbar(ExecState *exec) const;
+    BarInfo *toolbar(ExecState *exec) const;
     JSEventListener *getJSEventListener(const Value &val, bool html = false);
     JSLazyEventListener *getJSLazyEventListener(const QString &code, bool html = false, int lineno = 0);
     void clear( ExecState *exec );
@@ -115,8 +122,8 @@ namespace KJS {
     static const ClassInfo info;
     enum { Closed, Crypto, DefaultStatus, Status, Document, Node, EventCtor, Range,
            NodeFilter, DOMException, CSSRule, Frames, _History, Event, InnerHeight,
-           InnerWidth, Length, _Location, Name, _Navigator, _Konqueror, ClientInformation,
-           OffscreenBuffering, Opener, OuterHeight, OuterWidth, PageXOffset, PageYOffset,
+           InnerWidth, Length, _Location, Locationbar, Name, _Navigator, _Konqueror, ClientInformation,
+           Menubar, OffscreenBuffering, Opener, OuterHeight, OuterWidth, PageXOffset, PageYOffset,
            Parent, Personalbar, ScreenX, ScreenY, Scrollbars, Scroll, ScrollBy,
            ScreenTop, ScreenLeft,
            ScrollTo, ScrollX, ScrollY, MoveBy, MoveTo, ResizeBy, ResizeTo, Self, _Window, Top, _Screen,
@@ -126,7 +133,8 @@ namespace KJS {
           Onabort, Onblur, Onchange, Onclick, Ondblclick, Ondragdrop, Onerror, 
           Onfocus, Onkeydown, Onkeypress, Onkeyup, Onload, Onmousedown, Onmousemove,
            Onmouseout, Onmouseover, Onmouseup, Onmove, Onreset, Onresize, Onscroll, Onsearch,
-           Onselect, Onsubmit, Onunload };
+           Onselect, Onsubmit, Onunload,
+           Statusbar, Toolbar };
   protected:
     Value getListener(ExecState *exec, int eventId) const;
     void setListener(ExecState *exec, int eventId, Value func);
@@ -139,6 +147,12 @@ namespace KJS {
     FrameArray *frames;
     Location *loc;
     Selection *m_selection;
+    BarInfo *m_locationbar;
+    BarInfo *m_menubar;
+    BarInfo *m_personalbar;
+    BarInfo *m_scrollbars;
+    BarInfo *m_statusbar;
+    BarInfo *m_toolbar;
     WindowQObject *winq;
     DOM::Event *m_evt;
   };
@@ -225,6 +239,23 @@ namespace KJS {
     QGuardedPtr<KHTMLPart> m_part;
   };
 
+  class BarInfo : public ObjectImp {
+  public:
+    ~BarInfo();
+    virtual Value get(ExecState *exec, const Identifier &propertyName) const;
+    virtual void put(ExecState *exec, const Identifier &propertyName, const Value &value, int attr = None);
+    enum { Visible };
+    enum Type { Locationbar, Menubar, Personalbar, Scrollbars, Statusbar, Toolbar };
+    KHTMLPart *part() const { return m_part; }
+    virtual const ClassInfo* classInfo() const { return &info; }
+    static const ClassInfo info;
+  private:
+    friend class Window;
+    BarInfo(ExecState *exec, KHTMLPart *p, Type barType);
+    QGuardedPtr<KHTMLPart> m_part;
+    Type m_type;
+  };
+
 #ifdef Q_WS_QWS
   class Konqueror : public ObjectImp {
     friend class KonquerorFunc;