*
* LyX, The Document Processor
*
- * Copyright 1995-2000 the LyX Team.
+ * Copyright 1995-2001 the LyX Team.
*
* This file Copyright 2000 Baruch Even.
* ====================================================== */
{}
+InsetGraphics::InsetGraphics(InsetGraphics const & ig, bool same_id)
+ : Inset(), SigC::Object()
+ , cacheHandle(ig.cacheHandle)
+ , imageLoaded(ig.imageLoaded)
+{
+ setParams(ig.getParams());
+ if (same_id)
+ id_ = ig.id_;
+}
+
+
InsetGraphics::~InsetGraphics()
{
// Emits the hide signal to the dialog connected (if any)
}
-char const *
+string const
InsetGraphics::statusMessage() const
{
- char const * msg = 0;
+ string msg;
if (cacheHandle.get()) {
switch (cacheHandle->getImageStatus()) {
if (cacheHandle.get() && (pixmap = cacheHandle->getImage()))
return pixmap->getWidth();
else {
- char const * msg = statusMessage();
+ string const msg = statusMessage();
int font_width = 0;
- if (msg)
+ if (!msg.empty())
font_width = lyxfont::width(msg, font);
return std::max(50, font_width + 15);
int lwidth = width(bv, font);
// Make sure x is updated upon exit from this routine
- float old_x = x;
+ int old_x = int(x);
x += lwidth;
// This will draw the graphics. If the graphics has not been loaded yet,
// we draw just a rectangle.
if (imageLoaded) {
- paint.image(int(old_x) + 2, baseline - lascent,
- lwidth - 4, lascent + ldescent,
- cacheHandle->getImage());
+ paint.image(old_x + 2, baseline - lascent,
+ lwidth - 4, lascent + ldescent,
+ cacheHandle->getImage());
} else {
// Get the image status, default to unknown error.
imageLoaded = true;
// Tell BufferView we need to be updated!
- bv->text->status = LyXText::CHANGED_IN_DRAW;
+ bv->text->status(bv, LyXText::CHANGED_IN_DRAW);
return;
}
- char const * msg = statusMessage();
- paint.rectangle(int(old_x) + 2, baseline - lascent,
+ paint.rectangle(old_x + 2, baseline - lascent,
lwidth - 4,
lascent + ldescent);
- if (msg) {
+ string const msg = statusMessage();
+ if (!msg.empty()) {
// Print the message.
LyXFont msgFont(font);
msgFont.setFamily(LyXFont::SANS_FAMILY);
msgFont.setSize(LyXFont::SIZE_FOOTNOTE);
string const justname = OnlyFilename (params.filename);
- paint.text(int(old_x) + 8,
- baseline - lyxfont::maxAscent(msgFont) - 4,
- justname, msgFont);
+ paint.text(old_x + 8,
+ baseline - lyxfont::maxAscent(msgFont) - 4,
+ justname, msgFont);
msgFont.setSize(LyXFont::SIZE_TINY);
- paint.text(int(old_x) + 8, baseline - 4,
- msg, strlen(msg), msgFont);
+ paint.text(old_x + 8, baseline - 4, msg, msgFont);
}
}
}
-void InsetGraphics::Edit(BufferView *bv, int, int, unsigned int)
+void InsetGraphics::edit(BufferView *bv, int, int, unsigned int)
{
bv->owner()->getDialogs()->showGraphics(this);
}
-Inset::EDITABLE InsetGraphics::Editable() const
+void InsetGraphics::edit(BufferView * bv, bool)
+{
+ edit(bv, 0, 0, 0);
+}
+
+
+Inset::EDITABLE InsetGraphics::editable() const
{
return IS_EDITABLE;
}
-void InsetGraphics::Write(Buffer const * buf, ostream & os) const
+void InsetGraphics::write(Buffer const * buf, ostream & os) const
{
os << "GRAPHICS FormatVersion 1\n";
}
-void InsetGraphics::Read(Buffer const * buf, LyXLex & lex)
+void InsetGraphics::read(Buffer const * buf, LyXLex & lex)
{
bool finished = false;
lex.next();
string const token = lex.GetString();
- lyxerr.debug() << "Token: '" << token << '\'' << std::endl;
+ lyxerr[Debug::INFO] << "Token: '" << token << '\''
+ << std::endl;
if (token.empty()) {
continue;
// Calculate the options part of the command, we must do it to a string
// stream since we might have a trailing comma that we would like to remove
// before writing it to the output stream.
- std::ostringstream options;
+ ostringstream options;
formatResize(options, "width", params.widthResize, params.widthSize);
formatResize(options, "height", params.heightResize, params.heightSize);
}
-int InsetGraphics::Latex(Buffer const *buf, ostream & os,
- bool /*fragile*/, bool/*fs*/) const
+int InsetGraphics::latex(Buffer const *buf, ostream & os,
+ bool /*fragile*/, bool/*fs*/) const
{
// MISSING: We have to decide how to do the order of the options
// that is dependent of order, like width, height, angle. Should
}
-int InsetGraphics::Ascii(Buffer const *, ostream &, int) const
+int InsetGraphics::ascii(Buffer const *, ostream &, int) const
{
// No graphics in ascii output. Possible to use gifscii to convert
// images to ascii approximation.
}
-int InsetGraphics::Linuxdoc(Buffer const *, ostream &) const
+int InsetGraphics::linuxdoc(Buffer const *, ostream &) const
{
// No graphics in LinuxDoc output. Should check how/what to add.
return 0;
// For explanation on inserting graphics into DocBook checkout:
// http://linuxdoc.org/LDP/LDP-Author-Guide/inserting-pictures.html
// See also the docbook guide at http://www.docbook.org/
-int InsetGraphics::DocBook(Buffer const * buf, ostream & os) const
+int InsetGraphics::docBook(Buffer const * buf, ostream & os) const
{
// Change the path to be relative to the main file.
string const buffer_dir = OnlyPath(buf->fileName());
- string const filename = RemoveExtension(MakeRelPath(params.filename, buffer_dir));
+ string const filename = RemoveExtension(
+ MakeRelPath(params.filename, buffer_dir));
// In DocBook v5.0, the graphic tag will be eliminated from DocBook, will
// need to switch to MediaObject. However, for now this is sufficient and
}
-void InsetGraphics::Validate(LaTeXFeatures & features) const
+void InsetGraphics::validate(LaTeXFeatures & features) const
{
// If we have no image, we should not require anything.
if (params.filename.empty())
}
-bool InsetGraphics::setParams(InsetGraphicsParams const & params)
+bool InsetGraphics::setParams(InsetGraphicsParams const & p)
{
// If nothing is changed, just return and say so.
- if (this->params == params)
+ if (params == p)
return false;
// Copy the new parameters.
- this->params = params;
+ params = p;
// Update the inset with the new parameters.
updateInset();
}
-Inset * InsetGraphics::Clone(Buffer const &) const
+Inset * InsetGraphics::clone(Buffer const &, bool same_id) const
{
-#warning use the copy constructor instead. (Lgb)
- InsetGraphics * newInset = new InsetGraphics;
-
- newInset->cacheHandle = cacheHandle;
- newInset->imageLoaded = imageLoaded;
-
- newInset->setParams(getParams());
-
- return newInset;
+ return new InsetGraphics(*this, same_id);
}