Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #3229. TextFormatter should have a FillRemaining property. #3245

Merged

Conversation

BDisp
Copy link
Collaborator

@BDisp BDisp commented Feb 12, 2024

Fixes

Proposed Changes/Todos

  • Add FillRemaining property
  • Allow pass the property as parameter to the TextFormatter?.Draw
  • Add unit test

Pull Request checklist:

  • I've named my PR in the form of "Fixes #issue. Terse description."
  • My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
  • My code follows the Terminal.Gui library design guidelines
  • I ran dotnet test before commit
  • I have made corresponding changes to the API documentation (using /// style comments)
  • My changes generate no new warnings
  • I have checked my code and corrected any poor grammar or misspellings
  • I conducted basic QA to assure all features are working

@BDisp BDisp requested a review from tig as a code owner February 12, 2024 16:41
Copy link
Collaborator

@tig tig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless i'm missing something, I think this PR can be simplied per my comments.

@tig
Copy link
Collaborator

tig commented Feb 12, 2024

TextFormatter.Draw is an instance method. It is silly to have BOTH a fillRemaining parameter AND an instance property that do the same thing.

I suggest:

  • Add FillRemaining as a property
  • Remove the fillRemaining parameter from Draw
  • Have Draw reference FillRemaining where it currently references fillRemaining

Make sense?

@BDisp
Copy link
Collaborator Author

BDisp commented Feb 12, 2024

TextFormatter.Draw is an instance method. It is silly to have BOTH a fillRemaining parameter AND an instance property that do the same thing.

I suggest:

  • Add FillRemaining as a property
  • Remove the fillRemaining parameter from Draw
  • Have Draw reference FillRemaining where it currently references fillRemaining

Make sense?

Yes it makes sense, but you didn't answer about the default property value. Do you agree with this?

public bool FillRemaining { get; set; } = true;

@tig
Copy link
Collaborator

tig commented Feb 12, 2024

TextFormatter.Draw is an instance method. It is silly to have BOTH a fillRemaining parameter AND an instance property that do the same thing.
I suggest:

  • Add FillRemaining as a property
  • Remove the fillRemaining parameter from Draw
  • Have Draw reference FillRemaining where it currently references fillRemaining

Make sense?

Yes it makes sense, but you didn't answer about the default property value. Do you agree with this?

public bool FillRemaining { get; set; } = true;

I'm not sure. The call in View.OnDrawContent, Thickness.Draw, etc... specify false. That's because we need to minimize how much default drawing we're doing for perf reasons. If the background was already drawn, there's no need to make it true.

So, I guess I'd pick false as the default`.

@BDisp
Copy link
Collaborator Author

BDisp commented Feb 12, 2024

The difference is like bellow:

If FillRemaining is false:

image

If FillRemaining is true:

image

The advantage of true is when we need to draw the focused color even on empty strings. For labels isn't affected because they aren't focused. I'll set as false by default then.

@tig tig merged commit 7a041fc into gui-cs:v2_develop Feb 13, 2024
1 check passed
@BDisp BDisp deleted the v2_textformatter-fill-remaining-property_3229 branch February 13, 2024 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants