mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 20:23:53 +00:00
Merge pull request #32112 from Calinou/project-manager-add-hover-style
Add an "hover" style to items in the project manager
This commit is contained in:
commit
d249bb37e5
@ -714,6 +714,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
|
||||
style_tree_btn->set_border_width_all(0);
|
||||
theme->set_stylebox("button_pressed", "Tree", style_tree_btn);
|
||||
|
||||
Ref<StyleBoxFlat> style_tree_hover = style_default->duplicate();
|
||||
style_tree_hover->set_bg_color(highlight_color * Color(1, 1, 1, 0.4));
|
||||
style_tree_hover->set_border_width_all(0);
|
||||
theme->set_stylebox("hover", "Tree", style_tree_hover);
|
||||
|
||||
Ref<StyleBoxFlat> style_tree_focus = style_default->duplicate();
|
||||
style_tree_focus->set_bg_color(highlight_color);
|
||||
style_tree_focus->set_border_width_all(0);
|
||||
|
@ -928,16 +928,36 @@ public:
|
||||
TextureButton *favorite_button;
|
||||
TextureRect *icon;
|
||||
bool icon_needs_reload;
|
||||
bool hover;
|
||||
|
||||
ProjectListItemControl() {
|
||||
favorite_button = NULL;
|
||||
icon = NULL;
|
||||
icon_needs_reload = true;
|
||||
hover = false;
|
||||
}
|
||||
|
||||
void set_is_favorite(bool fav) {
|
||||
favorite_button->set_modulate(fav ? Color(1, 1, 1, 1) : Color(1, 1, 1, 0.2));
|
||||
}
|
||||
|
||||
void _notification(int p_what) {
|
||||
switch (p_what) {
|
||||
case NOTIFICATION_MOUSE_ENTER: {
|
||||
hover = true;
|
||||
update();
|
||||
} break;
|
||||
case NOTIFICATION_MOUSE_EXIT: {
|
||||
hover = false;
|
||||
update();
|
||||
} break;
|
||||
case NOTIFICATION_DRAW: {
|
||||
if (hover) {
|
||||
draw_style_box(get_stylebox("hover", "Tree"), Rect2(Point2(), get_size() - Size2(10, 0) * EDSCALE));
|
||||
}
|
||||
} break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class ProjectList : public ScrollContainer {
|
||||
@ -1260,6 +1280,8 @@ void ProjectList::create_project_item_control(int p_index) {
|
||||
TextureButton *favorite = memnew(TextureButton);
|
||||
favorite->set_name("FavoriteButton");
|
||||
favorite->set_normal_texture(favorite_icon);
|
||||
// This makes the project's "hover" style display correctly when hovering the favorite icon
|
||||
favorite->set_mouse_filter(MOUSE_FILTER_PASS);
|
||||
favorite->connect("pressed", this, "_favorite_pressed", varray(hb));
|
||||
favorite_box->add_child(favorite);
|
||||
favorite_box->set_alignment(BoxContainer::ALIGN_CENTER);
|
||||
|
Loading…
Reference in New Issue
Block a user