* Re: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line
[not found] <16A89C34DEA6347B.26412@groups.io>
@ 2021-09-28 5:17 ` Gao, Zhichao
2021-09-28 5:26 ` 回复: " gaoliming
0 siblings, 1 reply; 4+ messages in thread
From: Gao, Zhichao @ 2021-09-28 5:17 UTC (permalink / raw)
To: devel@edk2.groups.io, Gao, Zhichao; +Cc: Wang, Jian J, Liming Gao, Ni, Ray
Hi Liming/Ray,
I have updated the commit message and the BZ comments. Do you agree to merge the code?
Thanks,
Zhichao
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> Zhichao
> Sent: Monday, September 27, 2021 3:10 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> Subject: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp:
> Limit string drawing within one line
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3590
>
> Limit the draw box always within the screen's column and row.
> Limit the string drawing within one line.For the incompleted string the last 3
> characters in one line wouldbe replaced with "...".
>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Ray Ni <ray.ni@intel.com>
> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>Reviewed-by: Ray Ni
> <ray.ni@intel.com> ---V2:Drop the change in UefiBootManagerLib in V1.Add
> the limitation in BootManagerMenuApp instead.V3:Update the commit
> message only.
> .../BootManagerMenuApp/BootManagerMenu.c | 72
> ++++++++++++++++++-
> 1 file changed, 69 insertions(+), 3 deletions(-)
>
> diff --git
> a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> c
> b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> c
> index 9e729074ec..d4bdeba073 100644
> ---
> a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> c
> +++
> b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> c
> @@ -1,7 +1,7 @@
> /** @file The application to show the Boot Manager Menu. -Copyright (c)
> 2011 - 2018, Intel Corporation. All rights reserved.<BR>+Copyright (c) 2011 -
> 2021, Intel Corporation. All rights reserved.<BR> SPDX-License-Identifier:
> BSD-2-Clause-Patent **/@@ -45,9 +45,56 @@ PrintStringAt (
> IN CHAR16 *String ) {+ UINTN ScreenWidth;+ UINTN
> ScreenRows;+ CHAR16 *TurncateString;+ EFI_STATUS Status;+ UINTN
> ShowingLength; gST->ConOut->SetCursorPosition (gST->ConOut, Column,
> Row);- return Print (L"%s", String);++ gST->ConOut->QueryMode (+
> gST->ConOut,+ gST->ConOut->Mode->Mode,+
> &ScreenWidth,+ &ScreenRows+ );++ if (Column >
> (ScreenWidth - 1) || Row > (ScreenRows - 1)) {+ return 0;+ }++ if ((StrLen
> (String) + Column) > (ScreenWidth - 1)) {+ //+ // | - ScreenWidth - |+
> // ...Column.....................+ // TurncateString length should leave one
> character for draw box and+ // require one character for string end.+ //+
> ShowingLength = ScreenWidth - Column - 1;+ TurncateString = AllocatePool
> ((ShowingLength + 1) * sizeof (CHAR16));++ if (TurncateString == NULL) {+
> return 0;+ }++ Status = StrnCpyS (TurncateString, ShowingLength + 1,
> String, ShowingLength - 3);++ if (EFI_ERROR (Status)) {+ FreePool
> (TurncateString);+ return 0;+ }++ *(TurncateString + ShowingLength - 3)
> = L'.';+ *(TurncateString + ShowingLength - 2) = L'.';+ *(TurncateString +
> ShowingLength - 1) = L'.';+ *(TurncateString + ShowingLength) = L'\0';+
> ShowingLength = Print (L"%s", TurncateString);+ FreePool
> (TurncateString);+ return ShowingLength;+ } else {+ return Print (L"%s",
> String);+ } } /**@@ -68,7 +115,22 @@ PrintCharAt (
> CHAR16 Character ) {+ UINTN ScreenWidth;+ UINTN
> ScreenRows;+ gST->ConOut->SetCursorPosition (gST->ConOut, Column,
> Row);++ gST->ConOut->QueryMode (+ gST->ConOut,+ gST-
> >ConOut->Mode->Mode,+ &ScreenWidth,+
> &ScreenRows+ );++ if (Column > (ScreenWidth - 1) || Row >
> (ScreenRows - 1)) {+ return 0;+ }+ return Print (L"%c", Character); } @@ -
> 193,7 +255,11 @@ InitializeBootMenuScreen (
> MaxPrintRows = Row - 6; UnSelectableItmes = TITLE_TOKEN_COUNT + 2 +
> HELP_TOKEN_COUNT + 2;- BootMenuData->MenuScreen.Width =
> MaxStrWidth + 8;+ if (MaxStrWidth + 8 > Column) {+ BootMenuData-
> >MenuScreen.Width = Column;+ } else {+ BootMenuData-
> >MenuScreen.Width = MaxStrWidth + 8;+ } if (BootMenuData->ItemCount
> + UnSelectableItmes > MaxPrintRows) { BootMenuData-
> >MenuScreen.Height = MaxPrintRows; BootMenuData-
> >ScrollBarControl.HasScrollBar = TRUE;--
> 2.31.1.windows.1
>
>
>
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#81153): https://edk2.groups.io/g/devel/message/81153
> Mute This Topic: https://groups.io/mt/85895022/1768756
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [zhichao.gao@intel.com]
> -=-=-=-=-=-=
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* 回复: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line
2021-09-28 5:17 ` [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line Gao, Zhichao
@ 2021-09-28 5:26 ` gaoliming
2021-09-29 1:32 ` Gao, Zhichao
0 siblings, 1 reply; 4+ messages in thread
From: gaoliming @ 2021-09-28 5:26 UTC (permalink / raw)
To: devel, zhichao.gao; +Cc: 'Wang, Jian J', 'Ni, Ray'
I am ok for this change. Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Gao, Zhichao
> 发送时间: 2021年9月28日 13:18
> 收件人: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> 抄送: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> 主题: Re: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp:
> Limit string drawing within one line
>
> Hi Liming/Ray,
>
> I have updated the commit message and the BZ comments. Do you agree to
> merge the code?
>
> Thanks,
> Zhichao
>
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> > Zhichao
> > Sent: Monday, September 27, 2021 3:10 PM
> > To: devel@edk2.groups.io
> > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> > Subject: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp:
> > Limit string drawing within one line
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3590
> >
> > Limit the draw box always within the screen's column and row.
> > Limit the string drawing within one line.For the incompleted string the
last 3
> > characters in one line wouldbe replaced with "...".
> >
> > Cc: Jian J Wang <jian.j.wang@intel.com>
> > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > Cc: Ray Ni <ray.ni@intel.com>
> > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>Reviewed-by: Ray Ni
> > <ray.ni@intel.com> ---V2:Drop the change in UefiBootManagerLib in
> V1.Add
> > the limitation in BootManagerMenuApp instead.V3:Update the commit
> > message only.
> > .../BootManagerMenuApp/BootManagerMenu.c | 72
> > ++++++++++++++++++-
> > 1 file changed, 69 insertions(+), 3 deletions(-)
> >
> > diff --git
> > a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > c
> > b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > c
> > index 9e729074ec..d4bdeba073 100644
> > ---
> > a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > c
> > +++
> > b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > c
> > @@ -1,7 +1,7 @@
> > /** @file The application to show the Boot Manager Menu. -Copyright
> (c)
> > 2011 - 2018, Intel Corporation. All rights reserved.<BR>+Copyright (c)
2011 -
> > 2021, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier:
> > BSD-2-Clause-Patent **/@@ -45,9 +45,56 @@ PrintStringAt (
> > IN CHAR16 *String ) {+ UINTN ScreenWidth;+
> UINTN
> > ScreenRows;+ CHAR16 *TurncateString;+ EFI_STATUS
> Status;+ UINTN
> > ShowingLength; gST->ConOut->SetCursorPosition (gST->ConOut,
> Column,
> > Row);- return Print (L"%s", String);++ gST->ConOut->QueryMode (+
> > gST->ConOut,+ gST->ConOut->Mode->Mode,+
> > &ScreenWidth,+
> &ScreenRows+ );++ if (Column >
> > (ScreenWidth - 1) || Row > (ScreenRows - 1)) {+ return 0;+ }++ if
> ((StrLen
> > (String) + Column) > (ScreenWidth - 1)) {+ //+ // | -
> ScreenWidth - |+
> > // ...Column.....................+ // TurncateString length should
leave one
> > character for draw box and+ // require one character for string end.+
> //+
> > ShowingLength = ScreenWidth - Column - 1;+ TurncateString =
> AllocatePool
> > ((ShowingLength + 1) * sizeof (CHAR16));++ if (TurncateString ==
NULL)
> {+
> > return 0;+ }++ Status = StrnCpyS (TurncateString, ShowingLength +
> 1,
> > String, ShowingLength - 3);++ if (EFI_ERROR (Status)) {+
FreePool
> > (TurncateString);+ return 0;+ }++ *(TurncateString +
> ShowingLength - 3)
> > = L'.';+ *(TurncateString + ShowingLength - 2) = L'.';+
> *(TurncateString +
> > ShowingLength - 1) = L'.';+ *(TurncateString + ShowingLength) =
> L'\0';+
> > ShowingLength = Print (L"%s", TurncateString);+ FreePool
> > (TurncateString);+ return ShowingLength;+ } else {+ return Print
> (L"%s",
> > String);+ } } /**@@ -68,7 +115,22 @@ PrintCharAt (
> > CHAR16 Character ) {+ UINTN ScreenWidth;+
> UINTN
> > ScreenRows;+ gST->ConOut->SetCursorPosition (gST->ConOut, Column,
> > Row);++ gST->ConOut->QueryMode (+
> gST->ConOut,+ gST-
> > >ConOut->Mode->Mode,+ &ScreenWidth,+
> > &ScreenRows+ );++ if (Column > (ScreenWidth - 1) ||
> Row >
> > (ScreenRows - 1)) {+ return 0;+ }+ return Print (L"%c",
Character); }
> @@ -
> > 193,7 +255,11 @@ InitializeBootMenuScreen (
> > MaxPrintRows = Row - 6; UnSelectableItmes =
> TITLE_TOKEN_COUNT + 2 +
> > HELP_TOKEN_COUNT + 2;- BootMenuData->MenuScreen.Width =
> > MaxStrWidth + 8;+ if (MaxStrWidth + 8 > Column) {+ BootMenuData-
> > >MenuScreen.Width = Column;+ } else {+ BootMenuData-
> > >MenuScreen.Width = MaxStrWidth + 8;+ } if
> (BootMenuData->ItemCount
> > + UnSelectableItmes > MaxPrintRows) { BootMenuData-
> > >MenuScreen.Height = MaxPrintRows; BootMenuData-
> > >ScrollBarControl.HasScrollBar = TRUE;--
> > 2.31.1.windows.1
> >
> >
> >
> > -=-=-=-=-=-=
> > Groups.io Links: You receive all messages sent to this group.
> > View/Reply Online (#81153):
> https://edk2.groups.io/g/devel/message/81153
> > Mute This Topic: https://groups.io/mt/85895022/1768756
> > Group Owner: devel+owner@edk2.groups.io
> > Unsubscribe: https://edk2.groups.io/g/devel/unsub
> [zhichao.gao@intel.com]
> > -=-=-=-=-=-=
> >
>
>
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line
2021-09-28 5:26 ` 回复: " gaoliming
@ 2021-09-29 1:32 ` Gao, Zhichao
2021-09-29 1:39 ` 回复: " gaoliming
0 siblings, 1 reply; 4+ messages in thread
From: Gao, Zhichao @ 2021-09-29 1:32 UTC (permalink / raw)
To: devel@edk2.groups.io, gaoliming@byosoft.com.cn; +Cc: Wang, Jian J, Ni, Ray
I have created the PR at: https://github.com/tianocore/edk2/pull/2019.
It shows all the checks are passed. Can you help to add your 'push' label and reopen it?
Thanks,
Zhichao
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> gaoliming
> Sent: Tuesday, September 28, 2021 1:27 PM
> To: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Ni, Ray <ray.ni@intel.com>
> Subject: 回复: [edk2-devel] [PATCH V3]
> MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line
>
> I am ok for this change. Reviewed-by: Liming Gao
> <gaoliming@byosoft.com.cn>
>
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Gao,
> Zhichao
> > 发送时间: 2021年9月28日 13:18
> > 收件人: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> > 抄送: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> > 主题: Re: [edk2-devel] [PATCH V3]
> MdeModulePkg/BootManagerMenuApp:
> > Limit string drawing within one line
> >
> > Hi Liming/Ray,
> >
> > I have updated the commit message and the BZ comments. Do you agree
> to
> > merge the code?
> >
> > Thanks,
> > Zhichao
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> > > Zhichao
> > > Sent: Monday, September 27, 2021 3:10 PM
> > > To: devel@edk2.groups.io
> > > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > > <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> > > Subject: [edk2-devel] [PATCH V3]
> MdeModulePkg/BootManagerMenuApp:
> > > Limit string drawing within one line
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3590
> > >
> > > Limit the draw box always within the screen's column and row.
> > > Limit the string drawing within one line.For the incompleted string
> > > the
> last 3
> > > characters in one line wouldbe replaced with "...".
> > >
> > > Cc: Jian J Wang <jian.j.wang@intel.com>
> > > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > > Cc: Ray Ni <ray.ni@intel.com>
> > > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>Reviewed-by: Ray
> > > Ni <ray.ni@intel.com> ---V2:Drop the change in UefiBootManagerLib in
> > V1.Add
> > > the limitation in BootManagerMenuApp instead.V3:Update the commit
> > > message only.
> > > .../BootManagerMenuApp/BootManagerMenu.c | 72
> > > ++++++++++++++++++-
> > > 1 file changed, 69 insertions(+), 3 deletions(-)
> > >
> > > diff --git
> > >
> a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > c
> > >
> b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > c
> > > index 9e729074ec..d4bdeba073 100644
> > > ---
> > >
> a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > c
> > > +++
> > >
> b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > c
> > > @@ -1,7 +1,7 @@
> > > /** @file The application to show the Boot Manager Menu. -Copyright
> > (c)
> > > 2011 - 2018, Intel Corporation. All rights reserved.<BR>+Copyright
> > > (c)
> 2011 -
> > > 2021, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier:
> > > BSD-2-Clause-Patent **/@@ -45,9 +45,56 @@ PrintStringAt (
> > > IN CHAR16 *String ) {+ UINTN ScreenWidth;+
> > UINTN
> > > ScreenRows;+ CHAR16 *TurncateString;+ EFI_STATUS
> > Status;+ UINTN
> > > ShowingLength; gST->ConOut->SetCursorPosition (gST->ConOut,
> > Column,
> > > Row);- return Print (L"%s", String);++ gST->ConOut->QueryMode (+
> > > gST->ConOut,+ gST->ConOut->Mode->Mode,+
> > > &ScreenWidth,+
> > &ScreenRows+ );++ if (Column >
> > > (ScreenWidth - 1) || Row > (ScreenRows - 1)) {+ return 0;+ }++ if
> > ((StrLen
> > > (String) + Column) > (ScreenWidth - 1)) {+ //+ // | -
> > ScreenWidth - |+
> > > // ...Column.....................+ // TurncateString length should
> leave one
> > > character for draw box and+ // require one character for string end.+
> > //+
> > > ShowingLength = ScreenWidth - Column - 1;+ TurncateString =
> > AllocatePool
> > > ((ShowingLength + 1) * sizeof (CHAR16));++ if (TurncateString ==
> NULL)
> > {+
> > > return 0;+ }++ Status = StrnCpyS (TurncateString, ShowingLength +
> > 1,
> > > String, ShowingLength - 3);++ if (EFI_ERROR (Status)) {+
> FreePool
> > > (TurncateString);+ return 0;+ }++ *(TurncateString +
> > ShowingLength - 3)
> > > = L'.';+ *(TurncateString + ShowingLength - 2) = L'.';+
> > *(TurncateString +
> > > ShowingLength - 1) = L'.';+ *(TurncateString + ShowingLength) =
> > L'\0';+
> > > ShowingLength = Print (L"%s", TurncateString);+ FreePool
> > > (TurncateString);+ return ShowingLength;+ } else {+ return Print
> > (L"%s",
> > > String);+ } } /**@@ -68,7 +115,22 @@ PrintCharAt (
> > > CHAR16 Character ) {+ UINTN ScreenWidth;+
> > UINTN
> > > ScreenRows;+ gST->ConOut->SetCursorPosition (gST->ConOut, Column,
> > > Row);++ gST->ConOut->QueryMode (+
> > gST->ConOut,+ gST-
> > > >ConOut->Mode->Mode,+ &ScreenWidth,+
> > > &ScreenRows+ );++ if (Column > (ScreenWidth - 1) ||
> > Row >
> > > (ScreenRows - 1)) {+ return 0;+ }+ return Print (L"%c",
> Character); }
> > @@ -
> > > 193,7 +255,11 @@ InitializeBootMenuScreen (
> > > MaxPrintRows = Row - 6; UnSelectableItmes =
> > TITLE_TOKEN_COUNT + 2 +
> > > HELP_TOKEN_COUNT + 2;- BootMenuData->MenuScreen.Width =
> > > MaxStrWidth + 8;+ if (MaxStrWidth + 8 > Column) {+ BootMenuData-
> > > >MenuScreen.Width = Column;+ } else {+ BootMenuData-
> > > >MenuScreen.Width = MaxStrWidth + 8;+ } if
> > (BootMenuData->ItemCount
> > > + UnSelectableItmes > MaxPrintRows) { BootMenuData-
> > > >MenuScreen.Height = MaxPrintRows; BootMenuData-
> > > >ScrollBarControl.HasScrollBar = TRUE;--
> > > 2.31.1.windows.1
> > >
> > >
> > >
> > > -=-=-=-=-=-=
> > > Groups.io Links: You receive all messages sent to this group.
> > > View/Reply Online (#81153):
> > https://edk2.groups.io/g/devel/message/81153
> > > Mute This Topic: https://groups.io/mt/85895022/1768756
> > > Group Owner: devel+owner@edk2.groups.io
> > > Unsubscribe: https://edk2.groups.io/g/devel/unsub
> > [zhichao.gao@intel.com]
> > > -=-=-=-=-=-=
> > >
> >
> >
> >
> >
> >
>
>
>
>
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* 回复: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line
2021-09-29 1:32 ` Gao, Zhichao
@ 2021-09-29 1:39 ` gaoliming
0 siblings, 0 replies; 4+ messages in thread
From: gaoliming @ 2021-09-29 1:39 UTC (permalink / raw)
To: devel, zhichao.gao; +Cc: 'Wang, Jian J', 'Ni, Ray'
I just merge it.
Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Gao, Zhichao
> 发送时间: 2021年9月29日 9:32
> 收件人: devel@edk2.groups.io; gaoliming@byosoft.com.cn
> 抄送: Wang, Jian J <jian.j.wang@intel.com>; Ni, Ray <ray.ni@intel.com>
> 主题: Re: [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp:
> Limit string drawing within one line
>
> I have created the PR at: https://github.com/tianocore/edk2/pull/2019.
> It shows all the checks are passed. Can you help to add your 'push' label and
> reopen it?
>
> Thanks,
> Zhichao
>
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> > gaoliming
> > Sent: Tuesday, September 28, 2021 1:27 PM
> > To: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> > Cc: Wang, Jian J <jian.j.wang@intel.com>; Ni, Ray <ray.ni@intel.com>
> > Subject: 回复: [edk2-devel] [PATCH V3]
> > MdeModulePkg/BootManagerMenuApp: Limit string drawing within one
> line
> >
> > I am ok for this change. Reviewed-by: Liming Gao
> > <gaoliming@byosoft.com.cn>
> >
> > > -----邮件原件-----
> > > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Gao,
> > Zhichao
> > > 发送时间: 2021年9月28日 13:18
> > > 收件人: devel@edk2.groups.io; Gao, Zhichao <zhichao.gao@intel.com>
> > > 抄送: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > > <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> > > 主题: Re: [edk2-devel] [PATCH V3]
> > MdeModulePkg/BootManagerMenuApp:
> > > Limit string drawing within one line
> > >
> > > Hi Liming/Ray,
> > >
> > > I have updated the commit message and the BZ comments. Do you agree
> > to
> > > merge the code?
> > >
> > > Thanks,
> > > Zhichao
> > >
> > > > -----Original Message-----
> > > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> Gao,
> > > > Zhichao
> > > > Sent: Monday, September 27, 2021 3:10 PM
> > > > To: devel@edk2.groups.io
> > > > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > > > <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@intel.com>
> > > > Subject: [edk2-devel] [PATCH V3]
> > MdeModulePkg/BootManagerMenuApp:
> > > > Limit string drawing within one line
> > > >
> > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3590
> > > >
> > > > Limit the draw box always within the screen's column and row.
> > > > Limit the string drawing within one line.For the incompleted string
> > > > the
> > last 3
> > > > characters in one line wouldbe replaced with "...".
> > > >
> > > > Cc: Jian J Wang <jian.j.wang@intel.com>
> > > > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > > > Cc: Ray Ni <ray.ni@intel.com>
> > > > Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>Reviewed-by: Ray
> > > > Ni <ray.ni@intel.com> ---V2:Drop the change in UefiBootManagerLib in
> > > V1.Add
> > > > the limitation in BootManagerMenuApp instead.V3:Update the commit
> > > > message only.
> > > > .../BootManagerMenuApp/BootManagerMenu.c | 72
> > > > ++++++++++++++++++-
> > > > 1 file changed, 69 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git
> > > >
> > a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > > c
> > > >
> > b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > > c
> > > > index 9e729074ec..d4bdeba073 100644
> > > > ---
> > > >
> > a/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > > c
> > > > +++
> > > >
> > b/MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.
> > > > c
> > > > @@ -1,7 +1,7 @@
> > > > /** @file The application to show the Boot Manager Menu.
> -Copyright
> > > (c)
> > > > 2011 - 2018, Intel Corporation. All rights reserved.<BR>+Copyright
> > > > (c)
> > 2011 -
> > > > 2021, Intel Corporation. All rights reserved.<BR>
> > SPDX-License-Identifier:
> > > > BSD-2-Clause-Patent **/@@ -45,9 +45,56 @@ PrintStringAt (
> > > > IN CHAR16 *String ) {+ UINTN ScreenWidth;+
> > > UINTN
> > > > ScreenRows;+ CHAR16 *TurncateString;+ EFI_STATUS
> > > Status;+ UINTN
> > > > ShowingLength; gST->ConOut->SetCursorPosition (gST->ConOut,
> > > Column,
> > > > Row);- return Print (L"%s", String);++ gST->ConOut->QueryMode (+
> > > > gST->ConOut,+ gST->ConOut->Mode->Mode,+
> > > > &ScreenWidth,+
> > > &ScreenRows+ );++ if (Column >
> > > > (ScreenWidth - 1) || Row > (ScreenRows - 1)) {+ return 0;+ }++ if
> > > ((StrLen
> > > > (String) + Column) > (ScreenWidth - 1)) {+ //+ // | -
> > > ScreenWidth - |+
> > > > // ...Column.....................+ // TurncateString length should
> > leave one
> > > > character for draw box and+ // require one character for string
> end.+
> > > //+
> > > > ShowingLength = ScreenWidth - Column - 1;+ TurncateString =
> > > AllocatePool
> > > > ((ShowingLength + 1) * sizeof (CHAR16));++ if (TurncateString ==
> > NULL)
> > > {+
> > > > return 0;+ }++ Status = StrnCpyS (TurncateString,
> ShowingLength +
> > > 1,
> > > > String, ShowingLength - 3);++ if (EFI_ERROR (Status)) {+
> > FreePool
> > > > (TurncateString);+ return 0;+ }++ *(TurncateString +
> > > ShowingLength - 3)
> > > > = L'.';+ *(TurncateString + ShowingLength - 2) = L'.';+
> > > *(TurncateString +
> > > > ShowingLength - 1) = L'.';+ *(TurncateString + ShowingLength)
> =
> > > L'\0';+
> > > > ShowingLength = Print (L"%s", TurncateString);+ FreePool
> > > > (TurncateString);+ return ShowingLength;+ } else {+ return
> Print
> > > (L"%s",
> > > > String);+ } } /**@@ -68,7 +115,22 @@ PrintCharAt (
> > > > CHAR16 Character ) {+ UINTN
> ScreenWidth;+
> > > UINTN
> > > > ScreenRows;+ gST->ConOut->SetCursorPosition (gST->ConOut,
> Column,
> > > > Row);++ gST->ConOut->QueryMode (+
> > > gST->ConOut,+ gST-
> > > > >ConOut->Mode->Mode,+ &ScreenWidth,+
> > > > &ScreenRows+ );++ if (Column > (ScreenWidth - 1)
> ||
> > > Row >
> > > > (ScreenRows - 1)) {+ return 0;+ }+ return Print (L"%c",
> > Character); }
> > > @@ -
> > > > 193,7 +255,11 @@ InitializeBootMenuScreen (
> > > > MaxPrintRows = Row - 6; UnSelectableItmes =
> > > TITLE_TOKEN_COUNT + 2 +
> > > > HELP_TOKEN_COUNT + 2;- BootMenuData->MenuScreen.Width =
> > > > MaxStrWidth + 8;+ if (MaxStrWidth + 8 > Column) {+
> BootMenuData-
> > > > >MenuScreen.Width = Column;+ } else {+ BootMenuData-
> > > > >MenuScreen.Width = MaxStrWidth + 8;+ } if
> > > (BootMenuData->ItemCount
> > > > + UnSelectableItmes > MaxPrintRows) { BootMenuData-
> > > > >MenuScreen.Height = MaxPrintRows; BootMenuData-
> > > > >ScrollBarControl.HasScrollBar = TRUE;--
> > > > 2.31.1.windows.1
> > > >
> > > >
> > > >
> > > > -=-=-=-=-=-=
> > > > Groups.io Links: You receive all messages sent to this group.
> > > > View/Reply Online (#81153):
> > > https://edk2.groups.io/g/devel/message/81153
> > > > Mute This Topic: https://groups.io/mt/85895022/1768756
> > > > Group Owner: devel+owner@edk2.groups.io
> > > > Unsubscribe: https://edk2.groups.io/g/devel/unsub
> > > [zhichao.gao@intel.com]
> > > > -=-=-=-=-=-=
> > > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> >
> >
> >
> >
>
>
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-09-29 1:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <16A89C34DEA6347B.26412@groups.io>
2021-09-28 5:17 ` [edk2-devel] [PATCH V3] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line Gao, Zhichao
2021-09-28 5:26 ` 回复: " gaoliming
2021-09-29 1:32 ` Gao, Zhichao
2021-09-29 1:39 ` 回复: " gaoliming
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox