]> git.lyx.org Git - lyx.git/blobdiff - src/insets/inset.C
more changes...read the Changelog
[lyx.git] / src / insets / inset.C
index a8dce4e1b83fd59aa38e0babd3b87896483c255c..333c1a6b2c6dd91db3bba031e1f99187c78efe8e 100644 (file)
@@ -4,7 +4,7 @@
  *           LyX, The Document Processor
  *      
  *         Copyright 1995 Matthias Ettrich
- *          Copyright 1995-1999 The LyX Team.
+ *          Copyright 1995-2000 The LyX Team.
  *
  * ====================================================== */
 
@@ -18,6 +18,9 @@
 #include "debug.h"
 #include "BufferView.h"
 #include "support/lstrings.h"
+#include "Painter.h"
+
+using std::endl;
 
 /* Insets default methods */
 
@@ -33,9 +36,9 @@ bool Inset::DirectWrite() const
 }
 
 
-unsigned char Inset::Editable() const
+Inset::EDITABLE Inset::Editable() const
 {
-  return 0;
+  return NOT_EDITABLE;
 }
 
 
@@ -55,9 +58,24 @@ void Inset::Edit(BufferView *, int, int, unsigned int)
 }
 
 
-LyXFont Inset::ConvertFont(LyXFont font)
+LyXFont Inset::ConvertFont(LyXFont const & font) const
+{
+       return LyXFont(font);
+}
+
+
+char const * Inset::EditMessage() const 
 {
-  return font;
+       return _("Opened inset");
+}
+
+
+LyXText * Inset::getLyXText(BufferView * bv) const
+{
+    if (owner())
+           return owner()->getLyXText(bv);
+    else
+           return bv->text;
 }
 
 
@@ -97,9 +115,9 @@ void UpdatableInset::InsetUnlock(BufferView *)
 
 
 // An updatable inset is highly editable by definition
-unsigned char UpdatableInset::Editable() const
+Inset::EDITABLE UpdatableInset::Editable() const
 {
-       return 2; // and what does "2" siginify? (Lgb)
+       return HIGHLY_EDITABLE;
 }
 
 
@@ -108,22 +126,33 @@ void UpdatableInset::ToggleInsetCursor(BufferView *)
 }
 
 
+void UpdatableInset::ShowInsetCursor(BufferView *)
+{
+}
+
+
+void UpdatableInset::HideInsetCursor(BufferView *)
+{
+}
+
+
 void UpdatableInset::Edit(BufferView * bv, int, int, unsigned int)
 {
     LyXFont font;
 
     scx = 0;
 
-    mx_scx=abs((width(bv->getPainter(), font) - bv->paperWidth()) / 2);
+    mx_scx = abs((width(bv, font) - bv->workWidth()) / 2);
 }
 
 
-void UpdatableInset::draw(Painter &, LyXFont const &,
-                         int baseline, float & x) const
+void UpdatableInset::draw(BufferView *, LyXFont const &,
+                         int /* baseline */, float & x, bool/*cleared*/) const
 {
     if (scx) x += float(scx);
-    top_x = int(x);
-    top_baseline = baseline;
+// ATTENTION: don't do the following here!!!
+//    top_x = int(x);
+//    top_baseline = baseline;
 }
 
 
@@ -154,3 +183,11 @@ UpdatableInset::LocalDispatch(BufferView *, int, string const &)
 #endif
     return UNDISPATCHED; 
 }
+
+
+int UpdatableInset::getMaxWidth(Painter & pain, UpdatableInset const *) const
+{
+    if (owner())
+        return static_cast<UpdatableInset*>(owner())->getMaxWidth(pain, this);
+    return pain.paperWidth();
+}