#ifndef BUFFER_VIEW_H
#define BUFFER_VIEW_H
+#include "CoordCache.h"
#include "DocumentClassPtr.h"
#include "TexRow.h"
#include "update_flags.h"
namespace support { class FileName; }
-namespace frontend { class CaretGeometry; }
+namespace frontend { struct CaretGeometry; }
namespace frontend { class Painter; }
namespace frontend { class GuiBufferViewDelegate; }
class Buffer;
class Change;
-class CoordCache;
class Cursor;
class CursorSlice;
class Dimension;
class FuncStatus;
class Intl;
class Inset;
+class InsetMathNest;
class Length;
class MathData;
class MathRow;
///
void setFullScreen(bool full_screen) { full_screen_ = full_screen; }
+ /// default value for the margins
+ int defaultMargin() const;
/// right margin
int rightMargin() const;
/// left margin
/// bottom margin
int bottomMargin() const;
+ docstring const & searchRequestCache() const;
+ void setSearchRequestCache(docstring const & text);
+
/// return the on-screen size of this length
/*
* This is a wrapper around Length::inPixels that uses the
int horizScrollOffset(Text const * text,
pit_type pit, pos_type pos) const;
- /// reset the scrollbar to reflect current view position.
- void updateScrollbar();
+ /// reset the scrollbar parameters to reflect current view position.
+ void updateScrollbarParameters();
/// return the Scrollbar Parameters.
ScrollbarParameters const & scrollbarParameters() const;
/// \return Tool tip for the given position.
docstring toolTip(int x, int y) const;
/// \return the context menu for the given position.
std::string contextMenu(int x, int y) const;
+ /// \return the math inset with a context menu for the given position
+ Inset const * mathContextMenu(InsetMathNest const * inset,
+ CoordCache::Insets const & inset_cache, int x, int y) const;
+ /// \return the clickable math inset for the given position
+ Inset const * clickableMathInset(InsetMathNest const * inset,
+ CoordCache::Insets const & inset_cache, int x, int y) const;
/// Save the current position as bookmark.
/// if idx == 0, save to temp_bookmark
/// This method will automatically scroll and update the BufferView
/// (metrics+drawing) if needed.
/// \param recenter Whether the cursor should be centered on screen
- void showCursor(DocIterator const & dit, bool recenter,
+ /// \param force If true, disregard current position
+ void showCursor(DocIterator const & dit, bool recenter, bool force,
bool update);
/// Scroll to the cursor.
- void scrollToCursor();
- /// Scroll to the cursor.
/// \param recenter Whether the cursor should be centered on screen
- bool scrollToCursor(DocIterator const & dit, bool recenter);
+ /// \param force If true, disregard current position
+ bool scrollToCursor(DocIterator const & dit, bool recenter, bool force);
/// scroll down document by the given number of pixels.
int scrollDown(int pixels);
/// scroll up document by the given number of pixels.