Tweaked tooltips so that item name and kind are next to image, to reduce amount of empty space.

This commit is contained in:
Sam 2022-07-30 11:38:28 -04:00
parent 29dd9eac9b
commit ea0192b7e3

View File

@ -534,24 +534,12 @@ impl<'a> Widget for ItemTooltip<'a> {
.set(state.ids.image, ui); .set(state.ids.image, ui);
} }
// Title
widget::Text::new(&title)
.w(text_w)
.graphics_for(id)
.parent(id)
.with_style(self.style.title)
.top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD)
.center_justify()
.color(quality)
.set(state.ids.title, ui);
// Item frame // Item frame
widget::Image::new(quality_col_img) widget::Image::new(quality_col_img)
.wh(ICON_SIZE) .wh(ICON_SIZE)
.graphics_for(id) .graphics_for(id)
.parent(id) .parent(id)
.top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD) .top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD)
.down_from(state.ids.title, V_PAD)
.set(state.ids.item_frame, ui); .set(state.ids.item_frame, ui);
// Item render // Item render
@ -566,14 +554,27 @@ impl<'a> Widget for ItemTooltip<'a> {
.middle_of(state.ids.item_frame) .middle_of(state.ids.item_frame)
.set(state.ids.item_render, ui); .set(state.ids.item_render, ui);
let title_w = (text_w - H_PAD * 3.0 - ICON_SIZE[0]).max(0.0);
// Title
widget::Text::new(&title)
.w(title_w)
.graphics_for(id)
.parent(id)
.with_style(self.style.title)
.top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD)
.right_from(state.ids.item_frame, H_PAD)
.color(quality)
.set(state.ids.title, ui);
// Subtitle // Subtitle
widget::Text::new(&subtitle) widget::Text::new(&subtitle)
.w(text_w) .w(title_w)
.graphics_for(id) .graphics_for(id)
.parent(id) .parent(id)
.with_style(self.style.desc) .with_style(self.style.desc)
.color(conrod_core::color::GREY) .color(conrod_core::color::GREY)
.right_from(state.ids.item_frame, H_PAD) .down_from(state.ids.title, V_PAD)
.set(state.ids.subtitle, ui); .set(state.ids.subtitle, ui);
// Stats // Stats
@ -1220,18 +1221,10 @@ impl<'a> Widget for ItemTooltip<'a> {
fn default_y_dimension(&self, ui: &Ui) -> Dimension { fn default_y_dimension(&self, ui: &Ui) -> Dimension {
let item = &self.item; let item = &self.item;
let (title, desc) = (item.name().to_string(), item.description().to_string()); let desc = item.description().to_string();
let (text_w, _image_w) = self.text_image_width(260.0); let (text_w, _image_w) = self.text_image_width(260.0);
// Title
let title_h = widget::Text::new(&title)
.w(text_w)
.with_style(self.style.title)
.get_h(ui)
.unwrap_or(0.0)
+ V_PAD;
// Item frame // Item frame
let frame_h = ICON_SIZE[1] + V_PAD; let frame_h = ICON_SIZE[1] + V_PAD;
@ -1282,7 +1275,7 @@ impl<'a> Widget for ItemTooltip<'a> {
0.0 0.0
}; };
let height = title_h + frame_h + stat_h + desc_h + price_h + V_PAD + 5.0; // extra padding to fit frame top padding let height = frame_h + stat_h + desc_h + price_h + V_PAD + 5.0; // extra padding to fit frame top padding
Dimension::Absolute(height) Dimension::Absolute(height)
} }
} }