]> git.lyx.org Git - lyx.git/blobdiff - src/insets/inset.C
more changes...read the Changelog
[lyx.git] / src / insets / inset.C
index 12a904a78f78d3d1a57ce558c780d8c8aa9c8c74..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 _("Opened inset");
+}
+
+
+LyXText * Inset::getLyXText(BufferView * bv) const
 {
-  return font;
+    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;
 }
 
 
@@ -107,30 +125,42 @@ void UpdatableInset::ToggleInsetCursor(BufferView *)
 {
 }
 
+
+void UpdatableInset::ShowInsetCursor(BufferView *)
+{
+}
+
+
+void UpdatableInset::HideInsetCursor(BufferView *)
+{
+}
+
+
 void UpdatableInset::Edit(BufferView * bv, int, int, unsigned int)
 {
-    LyXFont
-       font;
-//    bview = bv;
+    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;
 }
 
 
-void UpdatableInset::SetFont(LyXFont const &, bool )
+void UpdatableInset::SetFont(BufferView *, LyXFont const &, bool )
 {
 }
 
+
 ///  An updatable inset could handle lyx editing commands
 #ifdef SCROLL_INSET
 UpdatableInset::RESULT
@@ -153,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();
+}