summaryrefslogtreecommitdiffstats
path: root/tdehtml/rendering/render_frames.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdehtml/rendering/render_frames.h')
-rw-r--r--tdehtml/rendering/render_frames.h172
1 files changed, 172 insertions, 0 deletions
diff --git a/tdehtml/rendering/render_frames.h b/tdehtml/rendering/render_frames.h
new file mode 100644
index 000000000..79171c747
--- /dev/null
+++ b/tdehtml/rendering/render_frames.h
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the KDE project.
+ *
+ * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
+ * (C) 2000 Simon Hausmann <hausmann@kde.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+#ifndef __render_frames_h__
+#define __render_frames_h__
+
+#include "rendering/render_replaced.h"
+#include "xml/dom_nodeimpl.h"
+#include "html/html_baseimpl.h"
+class KHTMLView;
+
+namespace DOM
+{
+ class HTMLFrameElementImpl;
+ class HTMLElementImpl;
+ class MouseEventImpl;
+}
+
+namespace tdehtml
+{
+ class ChildFrame;
+
+class RenderFrameSet : public RenderBox
+{
+ friend class DOM::HTMLFrameSetElementImpl;
+public:
+ RenderFrameSet( DOM::HTMLFrameSetElementImpl *frameSet );
+
+ virtual ~RenderFrameSet();
+
+ virtual const char *renderName() const { return "RenderFrameSet"; }
+ virtual bool isFrameSet() const { return true; }
+
+ virtual void layout();
+
+ void positionFrames( );
+
+ bool resizing() const { return m_resizing; }
+ bool noResize() const { return element()->noResize(); }
+
+ bool userResize( DOM::MouseEventImpl *evt );
+ bool canResize( int _x, int _y);
+ void setResizing(bool e);
+
+ Qt::CursorShape cursorShape() const { return m_cursor; }
+
+ bool nodeAtPoint(NodeInfo& info, int x, int y, int tx, int ty, HitTestAction hitTestAction, bool inside);
+
+ DOM::HTMLFrameSetElementImpl *element() const
+ { return static_cast<DOM::HTMLFrameSetElementImpl*>(RenderObject::element()); }
+
+#ifdef ENABLE_DUMP
+ virtual void dump(TQTextStream &stream, const TQString &ind) const;
+#endif
+
+private:
+ Qt::CursorShape m_cursor;
+ int m_oldpos;
+ int m_gridLen[2];
+ int* m_gridDelta[2];
+ int* m_gridLayout[2];
+
+ bool *m_hSplitVar; // is this split variable?
+ bool *m_vSplitVar;
+
+ int m_hSplit; // the split currently resized
+ int m_vSplit;
+ int m_hSplitPos;
+ int m_vSplitPos;
+
+ bool m_resizing;
+ bool m_clientresizing;
+};
+
+class RenderPart : public tdehtml::RenderWidget
+{
+ Q_OBJECT
+public:
+ RenderPart(DOM::HTMLElementImpl* node);
+
+ virtual const char *renderName() const { return "RenderPart"; }
+
+ virtual void setWidget( TQWidget *widget );
+
+ /**
+ * Called by KHTMLPart to notify the frame object that loading the
+ * part was not successfuly. (called either asyncroniously after a
+ * after the servicetype of the given url (the one passed with requestObject)
+ * has been determined or syncroniously from within requestObject)
+ *
+ * The default implementation does nothing.
+ *
+ * Return false in the normal case, return true if a fallback was found
+ * and the url was successfully opened.
+ */
+ virtual bool partLoadingErrorNotify( tdehtml::ChildFrame *childFrame, const KURL& url, const TQString& serviceType );
+
+ virtual short intrinsicWidth() const;
+ virtual int intrinsicHeight() const;
+
+public slots:
+ virtual void slotViewCleared();
+};
+
+class RenderFrame : public tdehtml::RenderPart
+{
+ Q_OBJECT
+public:
+ RenderFrame( DOM::HTMLFrameElementImpl *frame );
+
+ virtual const char *renderName() const { return "RenderFrame"; }
+ virtual bool isFrame() const { return true; }
+
+ // frames never have padding
+ virtual int paddingTop() const { return 0; }
+ virtual int paddingBottom() const { return 0; }
+ virtual int paddingLeft() const { return 0; }
+ virtual int paddingRight() const { return 0; }
+
+ DOM::HTMLFrameElementImpl *element() const
+ { return static_cast<DOM::HTMLFrameElementImpl*>(RenderObject::element()); }
+
+public slots:
+ void slotViewCleared();
+};
+
+// I can hardly call the class RenderObject ;-)
+class RenderPartObject : public tdehtml::RenderPart
+{
+ Q_OBJECT
+public:
+ RenderPartObject( DOM::HTMLElementImpl * );
+
+ virtual const char *renderName() const { return "RenderPartObject"; }
+
+ virtual void close();
+
+ virtual void layout( );
+ virtual void updateWidget();
+
+ virtual bool canHaveBorder() const { return true; }
+
+ virtual bool partLoadingErrorNotify( tdehtml::ChildFrame *childFrame, const KURL& url, const TQString& serviceType );
+
+public slots:
+ void slotViewCleared();
+private slots:
+ void slotPartLoadingErrorNotify();
+};
+
+}
+
+#endif