Skip to content

Commit

Permalink
DIF_CENTERTEXT fix
Browse files Browse the repository at this point in the history
  • Loading branch information
alabuzhev committed Aug 16, 2017
1 parent 04fe60d commit 36c9105
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
4 changes: 4 additions & 0 deletions far/changelog
@@ -1,3 +1,7 @@
drkns 16.08.2017 09:22:10 +0000 - build 5007

1. C форума: DI_TEXT + DIF_CENTERTEXT выравнивался по центру диалога вместо относительно координат X1 и X2.

drkns 14.08.2017 21:38:39 +0000 - build 5006

1. Теперь FCTL_<G|S>ETUSERSCREEN можно использовать и из режимов редактора (-e) и просмотра (-v).
Expand Down
10 changes: 6 additions & 4 deletions far/dialog.cpp
Expand Up @@ -1724,7 +1724,7 @@ void Dialog::ShowDialog(size_t ID)
{
LenText=LenStrItem(I,strStr);

if (!(Items[I].Flags & (DIF_SEPARATORUSER | DIF_SEPARATOR | DIF_SEPARATOR2)) && (Items[I].Flags & DIF_CENTERTEXT) && CX1 != -1)
if (!(Items[I].Flags & (DIF_SEPARATORUSER | DIF_SEPARATOR | DIF_SEPARATOR2)) && (Items[I].Flags & DIF_CENTERTEXT) && CX1 != -1 && CX2 != -1)
{
inplace::fit_to_center(strStr, CX2 - CX1 + 1);
LenText = LenStrItem(I, strStr);
Expand All @@ -1733,7 +1733,7 @@ void Dialog::ShowDialog(size_t ID)
if ((CX2 <= 0) || (CX2 < CX1))
CW = LenText;

X=(CX1==-1 || (Items[I].Flags & DIF_CENTERTEXT))?(m_X2-m_X1+1-LenText)/2:CX1;
X=(CX1==-1)?(m_X2-m_X1+1-LenText)/2:CX1;
Y=(CY1==-1)?(m_Y2-m_Y1+1)/2:CY1;
int XS=(CX1==-1 || !(Items[I].Flags&DIF_SEPARATORUSER))?X:CX1;

Expand Down Expand Up @@ -1806,6 +1806,8 @@ void Dialog::ShowDialog(size_t ID)
inplace::fit_to_center(strResult, CW);
else if (Items[I].Flags & DIF_RIGHTTEXT)
inplace::fit_to_right(strResult, CW);
else
inplace::fit_to_left(strResult, CW);

LenText=LenStrItem(I,strResult);
X=(CX1==-1 || (Items[I].Flags & DIF_CENTERTEXT))?(CW-LenText)/2:CX1;
Expand Down Expand Up @@ -1834,7 +1836,7 @@ void Dialog::ShowDialog(size_t ID)
strStr = Items[I].strData;
LenText=LenStrItem(I,strStr);

if (!(Items[I].Flags & (DIF_SEPARATORUSER | DIF_SEPARATOR | DIF_SEPARATOR2)) && (Items[I].Flags & DIF_CENTERTEXT) && CY1 != -1)
if (!(Items[I].Flags & (DIF_SEPARATORUSER | DIF_SEPARATOR | DIF_SEPARATOR2)) && (Items[I].Flags & DIF_CENTERTEXT) && CY1 != -1 && CY1 != -1)
{
inplace::fit_to_center(strStr, CY2 - CY1 + 1);
LenText = static_cast<int>(strStr.size());
Expand All @@ -1844,7 +1846,7 @@ void Dialog::ShowDialog(size_t ID)
CH = LenStrItem(I,strStr);

X=(CX1==-1)?(m_X2-m_X1+1)/2:CX1;
Y=(CY1==-1 || (Items[I].Flags & DIF_CENTERTEXT))?(m_Y2-m_Y1+1-LenText)/2:CY1;
Y=(CY1==-1)?(m_Y2-m_Y1+1-LenText)/2:CY1;
int YS=(CY1==-1 || !(Items[I].Flags&DIF_SEPARATORUSER))?Y:CY1;

if( (Items[I].Flags & DIF_RIGHTTEXT) && CY2 > CY1 )
Expand Down
2 changes: 1 addition & 1 deletion far/vbuild.m4
@@ -1 +1 @@
m4_define(BUILD,5006)m4_dnl
m4_define(BUILD,5007)m4_dnl

0 comments on commit 36c9105

Please sign in to comment.