// -*- C++ -*-
/*
figinset.h - Figure inset header - part of LyX project
- (C)1996 by Ivan Schreter
+ Copyright 1996 by Ivan Schreter
*/
-#ifndef _FIGINSET_H
-#define _FIGINSET_H
+#ifndef FIGINSET_H
+#define FIGINSET_H
#include "form1.h"
-#include "buffer.h"
#include "LString.h"
+#include "buffer.h"
#include "LaTeXFeatures.h"
-
+#include "insets/lyxinset.h"
+#include <sigc++/signal_system.h>
/* the rest is figure stuff */
struct Figref;
+#ifdef SIGC_CXX_NAMESPACES
+using SigC::Object;
+using SigC::Connection;
+#endif
+
///
-class InsetFig: public Inset {
+class InsetFig: public Inset, public Object {
public:
///
- InsetFig(int tmpx, int tmpy, Buffer *);
+ InsetFig(int tmpx, int tmpy, Buffer const &);
///
~InsetFig();
///
- int Ascent(LyXFont const &font) const;
+ int ascent(BufferView *, LyXFont const & font) const;
///
- int Descent(LyXFont const &font) const;
+ int descent(BufferView *, LyXFont const & font) const;
///
- int Width(LyXFont const &font) const;
+ int width(BufferView *, LyXFont const & font) const;
///
- void Draw(LyXFont font, LyXScreen &scr, int baseline, float &x);
+ void draw(BufferView *, LyXFont const &, int, float &, bool) const;
///
- void Write(FILE *file);
+ void Write(Buffer const *, std::ostream &) const;
///
- void Read(LyXLex &lex);
+ void Read(Buffer const *, LyXLex & lex);
///
- int Latex(FILE *file, signed char fragile);
+ int Latex(Buffer const *, std::ostream &, bool fragile, bool free_space) const;
///
- int Latex(string &file, signed char fragile);
+ int Ascii(Buffer const *, std::ostream &, int linelen) const;
///
- int Linuxdoc(string &file);
+ int Linuxdoc(Buffer const *, std::ostream &) const;
///
- int DocBook(string &file);
+ int DocBook(Buffer const *, std::ostream &) const;
/// Updates needed features for this inset.
- void Validate(LaTeXFeatures &features) const;
+ void Validate(LaTeXFeatures & features) const;
/// what appears in the minibuffer when opening
- char const* EditMessage() {return "Opened figure";}
+ string const EditMessage() const;
+
///
- void Edit(int, int);
+ void Edit(BufferView *, int, int, unsigned int);
///
- unsigned char Editable() const;
+ EDITABLE Editable() const;
///
bool Deletable() const;
///
Inset::Code LyxCode() const;
///
- InsetFig * Clone() const;
+ Inset * Clone(Buffer const &) const;
///
void CallbackFig(long arg);
///
- void Preview(char const *p);
+ void Preview(string const & p);
/// browse for file
void BrowseFile();
/// form for user input
- FD_Figure *form;
+ FD_Figure * form;
/// width and height in pixels on screen
int wid, hgh;
/// width and height in postscript units (1/72 inch)
float angle;
/// graphics command, latex version
- string cmd;
+ mutable string cmd;
/// Caption for subfigure package
string subcaption;
/// various flags
int flags;
- bool subfigure : 1;
+ ///
+ bool subfigure;
/// figure reference
- Figref *figure;
+ Figref * figure;
/// temporary flags
int pflags;
- bool psubfigure : 1;
+ ///
+ bool psubfigure;
private:
+ /** Redraw the form (on receipt of a Signal indicating, for example,
+ that the xform colors have been re-mapped).
+ */
+ void redraw();
///
- Buffer *owner;
+ Buffer const * owner;
/// restore values on the form
void RestoreForm();
/// recompute screen params
void Recompute();
/// regenerate \includegraphics{} command
- void Regenerate();
+ void Regenerate() const;
/// regenerate \inlcudegraphics{} command in temporary buffer
void TempRegenerate();
/// get sizes from .eps file
void GetPSSizes();
+ /// Redraw connection.
+ Connection r_;
};
///
struct Figref {
/// figure data (image)
- figdata *data;
+ figdata * data;
/// inset of this figure
- InsetFig *inset;
+ InsetFig * inset;
};
#endif