// -*- C++ -*-
-/* This file is part of
- * ======================================================
+/**
+ * \file paragraph_funcs.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * LyX, The Document Processor
+ * \author Lars Gullik Bjønnes
*
- * Copyright 1995 Matthias Ettrich
- * Copyright 1995-2001 The LyX Team.
- *
- * ====================================================== */
+ * Full author contact details are available in file CREDITS.
+ */
#ifndef PARAGRAPH_FUNCS_H
#define PARAGRAPH_FUNCS_H
-#include "ParagraphList.h"
-#include "paragraph.h"
-
#include "support/types.h"
+class Buffer;
class BufferParams;
+class InsetBase;
+class LyXFont;
+class Paragraph;
+class ParagraphList;
+
///
void breakParagraph(BufferParams const & bparams,
- Paragraph *,
+ ParagraphList & paragraphs,
+ lyx::pit_type par,
lyx::pos_type pos,
int flag);
///
void breakParagraphConservative(BufferParams const & bparams,
- Paragraph *,
+ ParagraphList & paragraphs,
+ lyx::pit_type par,
lyx::pos_type pos);
-/** Paste this paragraph with the next one.
- Be carefull, this doesent make any check at all.
-*/
-void pasteParagraph(BufferParams const & bparams,
- Paragraph *);
+/**
+ * Append the next paragraph onto the tail of this one.
+ * Be careful, this doesent make any check at all.
+ */
+void mergeParagraph(BufferParams const & bparams,
+ ParagraphList & paragraphs, lyx::pit_type par);
-#if 0
/// for the environments
-Paragraph * depthHook(Paragraph * par, Paragraph::depth_type depth);
+lyx::pit_type depthHook(lyx::pit_type par,
+ ParagraphList const & plist, lyx::depth_type depth);
-Paragraph * outerHook(Paragraph * par);
+lyx::pit_type outerHook(lyx::pit_type par, ParagraphList const & plist);
/// Is it the first par with same depth and layout?
-bool isFirstInSequence(Paragraph * par);
+bool isFirstInSequence(lyx::pit_type par, ParagraphList const & plist);
/** Check if the current paragraph is the last paragraph in a
proof environment */
-int getEndLabel(Paragraph * para, BufferParams const & bparams);
-#endif
+int getEndLabel(lyx::pit_type par, ParagraphList const & plist);
+
+LyXFont const outerFont(lyx::pit_type par, ParagraphList const & plist);
+
+/// find outermost paragraph containing an inset
+lyx::pit_type outerPar(Buffer const & buf, InsetBase const * inset);
+
+/// return the range of pars [beg, end[ owning the range of y [ystart, yend]
+void getParsInRange(ParagraphList & plist,
+ int ystart, int yend,
+ lyx::pit_type & beg,
+ lyx::pit_type & end);
+
+/// return the number of InsetOptArg in a paragraph
+int numberOfOptArgs(Paragraph const & par);
+
-#endif
+#endif // PARAGRAPH_FUNCS_H