]> git.lyx.org Git - lyx.git/blobdiff - src/insets/figinset.h
2001-12-28 Lars Gullik Bj�nnes <larsbj@birdstep.com>
[lyx.git] / src / insets / figinset.h
index 6eb11a733689ba08dca14cb475c0a649318ef666..73d70d95d159732a40900a35a60662969f2cb34a 100644 (file)
@@ -1,85 +1,92 @@
 // -*- 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 "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(LString &file, signed char fragile);
+       int ascii(Buffer const *, std::ostream &, int linelen) const;
        ///
-       int Linuxdoc(LString &file);
+       int linuxdoc(Buffer const *, std::ostream &) const;
        ///
-       int DocBook(LString &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;
        ///
-       Inset* Clone();
+       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
-       LString fname;
+       string fname;
        /// changed filename -> for recompute
        bool changedfname;
 
@@ -109,39 +116,48 @@ public:
        HWTYPE thtype;
 
        /// width and height
-       float xwid, xhgh;
+       float xwid;
+       float xhgh;
 
        /// rotation angle
        float angle;
        
        /// graphics command, latex version
-       LString cmd;
+       mutable string cmd;
        
        /// Caption for subfigure package
-       LString subcaption;
+       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_;
 };
 
 
@@ -160,7 +176,7 @@ struct figdata {
        /// width and height on screen
        int wid, hgh;
        /// pointer to file name
-       LString fname;
+       string fname;
        /// type; 0-none, 1-B/W, 2-Grayscale, 3-Color
        char flags;
        /// reading request is pending on this figure
@@ -177,9 +193,9 @@ struct figdata {
 ///
 struct Figref {
        /// figure data (image)
-       figdata *data;
+       figdata * data;
        /// inset of this figure
-       InsetFig *inset;
+       InsetFig * inset;
 };
 
 #endif