// -*- 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 FORMS_H_LOCATION
+#include "figure_form.h"
#include "LString.h"
+#include "buffer.h"
#include "LaTeXFeatures.h"
-
+#include "insets/inset.h"
+#include <sigc++/signal_system.h>
/* the rest is figure stuff */
struct Figref;
///
-class InsetFig: public Inset {
+class InsetFig: public Inset, public SigC::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;
+ void edit(BufferView * bv, bool front = true);
///
- bool Deletable() const;
+ EDITABLE editable() const;
///
- Inset::Code LyxCode() const;
+ bool deletable() const;
///
- InsetFig * Clone() const;
+ Inset::Code lyxCode() const;
///
- void CallbackFig(long arg);
+ Inset * clone(Buffer const &, bool same_id = false) const;
///
- void Preview(char const *p);
+ void callbackFig(long arg);
+ ///
+ void preview(string const & p);
/// browse for file
- void BrowseFile();
+ void browseFile();
/// form for user input
- FD_Figure *form;
+ FD_Figure * form;
/// width and height in pixels on screen
- int wid, hgh;
+ int wid;
+ int hgh;
/// width and height in postscript units (1/72 inch)
- int pswid, pshgh;
+ int pswid;
+ int pshgh;
/// width of raw figure w/o rotation
int raw_wid;
/// heigt of raw figure w/o rotation
int raw_hgh;
/// x and y coordinate in ps units
- int psx, psy;
+ int psx;
+ int psy;
/// .eps file name
string fname;
HWTYPE thtype;
/// width and height
- float xwid, xhgh;
+ float xwid;
+ float xhgh;
/// rotation angle
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();
+ void restoreForm();
/// recompute screen params
- void Recompute();
+ void recompute();
/// regenerate \includegraphics{} command
- void Regenerate();
+ void regenerate() const;
/// regenerate \inlcudegraphics{} command in temporary buffer
- void TempRegenerate();
+ void tempRegenerate();
/// get sizes from .eps file
- void GetPSSizes();
+ void getPSSizes();
+ /// Redraw connection.
+ SigC::Connection r_;
};
///
struct Figref {
/// figure data (image)
- figdata *data;
+ figdata * data;
/// inset of this figure
- InsetFig *inset;
+ InsetFig * inset;
};
#endif