Commit 605900ae authored by alexey.musinov's avatar alexey.musinov

Merge branch 'develop' of https://github.com/ONLYOFFICE/sdkjs into develop

parents 73b87387 f2f6dded
......@@ -611,7 +611,33 @@ function TEST_PLUGINS()
"buttons" : []
}
]
}
},
{
"name" : "clipart",
"guid" : "asc.{F5BACB61-64C5-4711-AC8A-D01EC3B2B6F1}",
"variations" : [
{
"description" : "clipart",
"url" : "clipart/index.html",
"icons" : ["clipart/icon.png", "clipart/icon@2x.png"],
"isViewer" : true,
"EditorsSupport" : ["word"],
"isVisual" : true,
"isModal" : false,
"isInsideMode" : false,
"initDataType" : "none",
"initData" : "",
"isUpdateOleOnResize" : false,
"buttons" : [ { "text": "Ok", "primary": true } ]
}
]
}
];
window.g_asc_plugins.loadExtensionPlugins(_plugins);
......
......@@ -4503,6 +4503,9 @@ CDocument.prototype.Paragraph_Add = function(ParaItem, bRecalculate
case para_PageNum:
case para_Field:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
// Если у нас что-то заселекчено и мы вводим текст или пробел
// и т.д., тогда сначала удаляем весь селект.
......@@ -11502,7 +11505,7 @@ CDocument.prototype.OnKeyDown = function(e)
// {
// this.History.Create_NewPoint();
// var oFootnote = this.Footnotes.Create_Footnote();
//
//
// oFootnote.Paragraph_Add(new ParaFootnoteRef(oFootnote));
// oFootnote.Paragraph_Add(new ParaSpace());
// oFootnote.Paragraph_Add(new ParaText("F"));
......@@ -11513,10 +11516,22 @@ CDocument.prototype.OnKeyDown = function(e)
// oFootnote.Paragraph_Add(new ParaText("o"));
// oFootnote.Paragraph_Add(new ParaText("t"));
// oFootnote.Paragraph_Add(new ParaText("e"));
//
//
// this.Paragraph_Add(new ParaFootnoteReference(oFootnote));
// bRetValue = keydownresult_PreventAll;
// }
// else if (114 === e.KeyCode)
// {
// this.History.Create_NewPoint();
// this.Paragraph_Add(new ParaSeparator());
// bRetValue = keydownresult_PreventAll;
// }
// else if (115 === e.KeyCode)
// {
// this.History.Create_NewPoint();
// this.Paragraph_Add(new ParaContinuationSeparator());
// bRetValue = keydownresult_PreventAll;
// }
// TEST <--
else if (e.KeyCode == 121 && true === e.ShiftKey) // Shift + F10 - контекстное меню
{
......
......@@ -13,7 +13,7 @@
*/
function CFootEndnote(DocumentController)
{
CFootEndnote.superclass.constructor.call(this, DocumentController, DocumentController.Get_DrawingDocument(), 0, 0, 0, 0, true, false, false);
CFootEndnote.superclass.constructor.call(this, DocumentController, DocumentController.Get_DrawingDocument(), 0, 0, 0, 0, true, false, false);
}
AscCommon.extendClass(CFootEndnote, CDocumentContent);
\ No newline at end of file
......@@ -13,15 +13,16 @@
*/
function CFootnotesController(LogicDocument)
{
CFootnotesController.superclass.constructor.call(this, LogicDocument);
CFootnotesController.superclass.constructor.call(this, LogicDocument);
this.Id = LogicDocument.Get_IdCounter().Get_NewId();
this.Id = LogicDocument.Get_IdCounter().Get_NewId();
this.Footnote = {}; // Список всех сносок с ключом - Id.
this.Pages = [];
this.Footnote = {}; // Список всех сносок с ключом - Id.
this.Pages = [];
// Добавляем данный класс в таблицу Id (обязательно в конце конструктора)
LogicDocument.Get_TableId().Add(this, this.Id);
// Добавляем данный класс в таблицу Id (обязательно в конце конструктора)
LogicDocument.Get_TableId().Add(this, this.Id);
}
AscCommon.extendClass(CFootnotesController, CDocumentControllerBase);
......@@ -31,7 +32,7 @@ AscCommon.extendClass(CFootnotesController, CDocumentControllerBase);
*/
CFootnotesController.prototype.Get_Id = function()
{
return this.Id;
return this.Id;
};
/**
* Создаем новую сноску.
......@@ -39,9 +40,9 @@ CFootnotesController.prototype.Get_Id = function()
*/
CFootnotesController.prototype.Create_Footnote = function()
{
var NewFootnote = new CFootEndnote(this);
this.Footnote[NewFootnote.Get_Id()] = NewFootnote;
return NewFootnote;
var NewFootnote = new CFootEndnote(this);
this.Footnote[NewFootnote.Get_Id()] = NewFootnote;
return NewFootnote;
};
/**
* Сбрасываем рассчетные данный для заданной страницы.
......@@ -49,36 +50,35 @@ CFootnotesController.prototype.Create_Footnote = function()
*/
CFootnotesController.prototype.Reset = function(nPageIndex)
{
if (!this.Pages[nPageIndex])
this.Pages[nPageIndex] = new CFootEndnotePage();
if (!this.Pages[nPageIndex])
this.Pages[nPageIndex] = new CFootEndnotePage();
this.Pages[nPageIndex].Reset();
this.Pages[nPageIndex].Reset();
};
/**
* Пересчитываем сноски на заданной странице.
*/
CFootnotesController.prototype.Recalculate = function(nPageIndex, X, XLimit, Y, YLimit)
{
if (!this.Pages[nPageIndex])
this.Pages[nPageIndex] = new CFootEndnotePage();
// Мы пересчет начинаем с 0, потом просто делаем сдвиг, через функцию Shift.
if (!this.Pages[nPageIndex])
this.Pages[nPageIndex] = new CFootEndnotePage();
var CurY = Y;
// Мы пересчет начинаем с 0, потом просто делаем сдвиг, через функцию Shift.
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
Footnote.Reset(X, CurY, XLimit, 10000);
var CurY = Y;
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
Footnote.Reset(X, CurY, XLimit, 10000);
var CurPage = 0;
var RecalcResult = recalcresult2_NextPage;
while (recalcresult2_End != RecalcResult)
RecalcResult = Footnote.Recalculate_Page(CurPage++, true);
var CurPage = 0;
var RecalcResult = recalcresult2_NextPage;
while (recalcresult2_End != RecalcResult)
RecalcResult = Footnote.Recalculate_Page(CurPage++, true);
var Bounds = Footnote.Get_PageBounds(0);
CurY += Bounds.Bottom - Bounds.Top;
}
var Bounds = Footnote.Get_PageBounds(0);
CurY += Bounds.Bottom - Bounds.Top;
}
};
/**
* Получаем суммарную высоту, занимаемую сносками на заданной странице.
......@@ -86,15 +86,15 @@ CFootnotesController.prototype.Recalculate = function(nPageIndex, X, XLimit, Y,
*/
CFootnotesController.prototype.Get_Height = function(nPageIndex)
{
var nHeight = 0;
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
var Bounds = Footnote.Get_PageBounds(0);
nHeight += Bounds.Bottom - Bounds.Top;
}
return nHeight;
var nHeight = 0;
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
var Bounds = Footnote.Get_PageBounds(0);
nHeight += Bounds.Bottom - Bounds.Top;
}
return nHeight;
};
/**
* Отрисовываем сноски на заданной странице.
......@@ -103,11 +103,11 @@ CFootnotesController.prototype.Get_Height = function(nPageIndex)
*/
CFootnotesController.prototype.Draw = function(nPageIndex, pGraphics)
{
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
Footnote.Draw(0, pGraphics);
}
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
Footnote.Draw(0, pGraphics);
}
};
/**
* Сдвигаем все рассчитанные позиции на заданной странице.
......@@ -117,11 +117,11 @@ CFootnotesController.prototype.Draw = function(nPageIndex, pGraphics)
*/
CFootnotesController.prototype.Shift = function(nPageIndex, dX, dY)
{
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
Footnote.Shift(0, dX, dY);
}
for (var nIndex = 0; nIndex < this.Pages[nPageIndex].Elements.length; ++nIndex)
{
var Footnote = this.Pages[nPageIndex].Elements[nIndex];
Footnote.Shift(0, dX, dY);
}
};
/**
* Добавляем заданную сноску на страницу для пересчета.
......@@ -130,10 +130,10 @@ CFootnotesController.prototype.Shift = function(nPageIndex, dX, dY)
*/
CFootnotesController.prototype.Add_FootnoteOnPage = function(nPageIndex, oFootnote)
{
if (!this.Pages[nPageIndex])
this.Pages[nPageIndex] = new CFootEndnotePage();
if (!this.Pages[nPageIndex])
this.Pages[nPageIndex] = new CFootEndnotePage();
this.Pages[nPageIndex].Elements.push(oFootnote);
this.Pages[nPageIndex].Elements.push(oFootnote);
};
/**
* Проверяем, используется заданная сноска в документе.
......@@ -142,33 +142,33 @@ CFootnotesController.prototype.Add_FootnoteOnPage = function(nPageIndex, oFootno
*/
CFootnotesController.prototype.Is_UseInDocument = function(sFootnoteId)
{
// TODO: Надо бы еще проверить, если ли в документе ссылка на данную сноску.
for (var sId in this.Footnote)
{
if (sId === sFootnoteId)
return true;
}
return false;
// TODO: Надо бы еще проверить, если ли в документе ссылка на данную сноску.
for (var sId in this.Footnote)
{
if (sId === sFootnoteId)
return true;
}
return false;
};
function CFootEndnotePage()
{
this.X = 0;
this.Y = 0;
this.XLimit = 0;
this.YLimit = 0;
this.X = 0;
this.Y = 0;
this.XLimit = 0;
this.YLimit = 0;
this.Elements = [];
this.Elements = [];
}
CFootEndnotePage.prototype.Reset = function()
{
this.X = 0;
this.Y = 0;
this.XLimit = 0;
this.YLimit = 0;
this.X = 0;
this.Y = 0;
this.XLimit = 0;
this.YLimit = 0;
this.Elements = [];
this.Elements = [];
};
......
......@@ -3030,6 +3030,8 @@ Paragraph.prototype =
case para_NewLine:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
default:
{
// Элементы данного типа добавляем во внутренний элемент
......
This diff is collapsed.
......@@ -717,7 +717,7 @@ Paragraph.prototype.private_RecalculatePageXY = function(CurLine, CurPa
PRS.YLimit = YLimit;
PRS.Y = YStart;
this.Pages.length = CurPage + 1
this.Pages.length = CurPage + 1;
this.Pages[CurPage] = new CParaPage(XStart, YStart, XLimit, YLimit, CurLine);
};
......
......@@ -2251,10 +2251,15 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
case para_Text:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
// Отмечаем, что началось слово
StartWord = true;
if (para_ContinuationSeparator === ItemType)
Item.Update_Width(PRS);
// При проверке, убирается ли слово, мы должны учитывать ширину предшествующих пробелов.
var LetterLen = Item.Width / TEXTWIDTH_DIVIDER;//var LetterLen = Item.Get_Width();
......@@ -3098,6 +3103,8 @@ ParaRun.prototype.Recalculate_LineMetrics = function(PRS, ParaPr, _CurLine, _Cur
case para_PageNum:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
UpdateLineMetricsText = true;
break;
......@@ -3197,6 +3204,8 @@ ParaRun.prototype.Recalculate_Range_Width = function(PRSC, _CurLine, _CurRange)
case para_Text:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
PRSC.Letters++;
......@@ -3349,6 +3358,8 @@ ParaRun.prototype.Recalculate_Range_Spaces = function(PRSA, _CurLine, _CurRange,
case para_Text:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
var WidthVisible = 0;
......@@ -4248,6 +4259,8 @@ ParaRun.prototype.Draw_HighLights = function(PDSH)
case para_Sym:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
if ( para_Drawing === ItemType && !Item.Is_Inline() )
break;
......@@ -4439,6 +4452,8 @@ ParaRun.prototype.Draw_Elements = function(PDSE)
case para_Sym:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
if (para_Tab === ItemType)
{
......@@ -4711,6 +4726,8 @@ ParaRun.prototype.Draw_Lines = function(PDSL)
case para_Sym:
case para_FootnoteReference:
case para_FootnoteRef:
case para_Separator:
case para_ContinuationSeparator:
{
if ( para_Drawing != ItemType || Item.Is_Inline() )
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment