+bool InsetGraphicsParams::Read(Buffer const * buf, LyXLex & lex,
+ string const& token)
+{
+ if (token == "filename") {
+ lex.next();
+ filename = lex.getString();
+ if (!filename.empty()) {
+ // Make the filename with absolute directory.
+ filename = MakeAbsPath(filename, buf->filePath());
+ }
+ } else if (token == "BoundingBox") {
+ for (int i=0; i<4 ;i++) {
+ lex.next();
+ bb += (lex.getString()+" ");
+ }
+ } else if (token == "clip") {
+ clip = true;
+ } else if (token == "draft") {
+ draft = true;
+ } else if (token == "display") {
+ lex.next();
+ string const type = lex.getString();
+ display = displayTranslator.find(type);
+ } else if (token == "subcaption") {
+ subcaption = true;
+ } else if (token == "subcaptionText") {
+ lex.next();
+ subcaptionText = lex.getString();
+ } else if (token == "noUnzip") {
+ noUnzip = true;
+ } else if (token == "size_type") {
+ lex.next();
+ switch (lex.getInteger()) {
+ case 0 : size_type = DEFAULT_SIZE;
+ break;
+ case 1 : size_type = WH;
+ break;
+ case 2 : size_type = SCALE;
+ }
+ } else if (token == "width") {
+ lex.next();
+ width = LyXLength(lex.getString());
+ size_type = WH;
+ } else if (token == "height") {
+ lex.next();
+ height = LyXLength(lex.getString());
+ size_type = WH;
+ } else if (token == "keepAspectRatio") {
+ keepAspectRatio = true;
+ } else if (token == "scale") {
+ lex.next();
+ scale = lex.getInteger();
+ } else if (token == "rotate") {
+ rotate = true;
+ } else if (token == "rotateAngle") {
+ lex.next();
+ rotateAngle = lex.getFloat();
+ } else if (token == "rotateOrigin") {
+ lex.next();
+ rotateOrigin=lex.getString();
+ } else if (token == "lyxsize_type") {
+ lex.next();
+ switch (lex.getInteger()) {
+ case 0 : lyxsize_type = DEFAULT_SIZE;
+ break;
+ case 1 : lyxsize_type = WH;
+ break;
+ case 2 : lyxsize_type = SCALE;
+ }
+ } else if (token == "lyxwidth") {
+ lex.next();
+ lyxwidth = LyXLength(lex.getString());
+ } else if (token == "lyxheight") {
+ lex.next();
+ lyxheight = LyXLength(lex.getString());
+ } else if (token == "lyxscale") {
+ lex.next();
+ lyxscale = lex.getInteger();
+ // now the compytibility stuff for "old" 1.2.0 files which uses
+ // the first try of the new graphic inset. Can be deleted, when
+ // 1.3 comes out
+ } else if (token == "widthResize") {
+ if (lex.next()) {
+ string const token = lex.getString();
+ if (token == "scale") {
+ lex.next();
+ scale = lex.getInteger();
+ size_type = SCALE;
+ }
+ else {
+ width = convertResizeValue(token, lex);
+ size_type = WH;
+ }
+ }
+ } else if (token == "heightResize") {
+ if (lex.next())
+ height = convertResizeValue(lex.getString(), lex);
+ // end compytibility stuff
+ } else { // If it's none of the above, its not ours.
+ return false;
+ }
+ return true;