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

Update Button to correctly align contained image #4891

Merged
merged 3 commits into from
Aug 5, 2024

Conversation

PrimmR
Copy link
Contributor

@PrimmR PrimmR commented Jul 31, 2024

Similar to #4889

Updated the ui method of the Button widget so that the alignment given by the layout is applied to the image contained in the button (if one exists).

Currently, only the text inside the button has alignment applied to it, and only when it is not accompanied by an image or shortcut text. Images within buttons are always aligned to the centre left, no matter the alignment of the containing Ui. This update now also applies this alignment to an image when it has no accompanying text, which makes buttons with an image and no text more consistent with the appearance of ones with text and no image.

I've also made an additional change so that the vertical alignment is now also respected when displaying some combination of image and text, but the original horizontal alignment remains the same, so that the image always appears left of the text. Any shortcut text now also follows vertical alignment, but is always horizontally aligned to the right.

Here are some comparisons of the difference between how buttons look with different alignments, before and after this change:

Before

Before

After

After

  • I have followed the instructions in the PR template

@PrimmR PrimmR changed the title Update Button to correctly align image Update Button to correctly align contained image Jul 31, 2024
@PrimmR PrimmR marked this pull request as ready for review July 31, 2024 11:50
@emilk emilk added layout Related to widget layout egui labels Aug 5, 2024
@emilk emilk merged commit ed02542 into emilk:master Aug 5, 2024
20 of 21 checks passed
486c pushed a commit to 486c/egui that referenced this pull request Oct 9, 2024
Similar to emilk#4889

Updated the `ui` method of the `Button` widget so that the alignment
given by the layout is applied to the image contained in the button (if
one exists).

Currently, only the text inside the button has alignment applied to it,
and only when it is not accompanied by an image or shortcut text. Images
within buttons are always aligned to the centre left, no matter the
alignment of the containing `Ui`. This update now also applies this
alignment to an image when it has no accompanying text, which makes
buttons with an image and no text more consistent with the appearance of
ones with text and no image.

I've also made an additional change so that the vertical alignment is
now also respected when displaying some combination of image and text,
but the original horizontal alignment remains the same, so that the
image always appears left of the text. Any shortcut text now also
follows vertical alignment, but is always horizontally aligned to the
right.

Here are some comparisons of the difference between how buttons look
with different alignments, before and after this change:

### Before

![Before](https://github.com/user-attachments/assets/b5086ccb-765d-42e6-88a5-8fa427544568)

### After

![After](https://github.com/user-attachments/assets/ecf6c6aa-b1b9-4b45-be44-8c71665df5c3)

* [x] I have followed the instructions in the PR template
hacknus pushed a commit to hacknus/egui that referenced this pull request Oct 30, 2024
Similar to emilk#4889

Updated the `ui` method of the `Button` widget so that the alignment
given by the layout is applied to the image contained in the button (if
one exists).

Currently, only the text inside the button has alignment applied to it,
and only when it is not accompanied by an image or shortcut text. Images
within buttons are always aligned to the centre left, no matter the
alignment of the containing `Ui`. This update now also applies this
alignment to an image when it has no accompanying text, which makes
buttons with an image and no text more consistent with the appearance of
ones with text and no image.

I've also made an additional change so that the vertical alignment is
now also respected when displaying some combination of image and text,
but the original horizontal alignment remains the same, so that the
image always appears left of the text. Any shortcut text now also
follows vertical alignment, but is always horizontally aligned to the
right.

Here are some comparisons of the difference between how buttons look
with different alignments, before and after this change:

### Before

![Before](https://github.com/user-attachments/assets/b5086ccb-765d-42e6-88a5-8fa427544568)

### After

![After](https://github.com/user-attachments/assets/ecf6c6aa-b1b9-4b45-be44-8c71665df5c3)

* [x] I have followed the instructions in the PR template
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
egui layout Related to widget layout
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants