Merge pull request #8561 from volzhs/modulate-transparency-2.1
Show transparency and accurate color for property
This commit is contained in:
commit
e936089161
Binary file not shown.
After Width: | Height: | Size: 177 B |
Binary file not shown.
After Width: | Height: | Size: 158 B |
|
@ -2028,7 +2028,7 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String &p
|
|||
} break;
|
||||
case Variant::COLOR: {
|
||||
|
||||
p_item->set_custom_bg_color(1, obj->get(p_name));
|
||||
tree->update();
|
||||
//p_item->set_text(1,obj->get(p_name));
|
||||
|
||||
} break;
|
||||
|
@ -3165,7 +3165,7 @@ void PropertyEditor::update_tree() {
|
|||
item->set_cell_mode(1, TreeItem::CELL_MODE_CUSTOM);
|
||||
item->set_editable(1, !read_only);
|
||||
// item->set_text(1,obj->get(p.name));
|
||||
item->set_custom_bg_color(1, obj->get(p.name));
|
||||
item->set_custom_draw(1, this, "_draw_transparency");
|
||||
if (show_type_icons)
|
||||
item->set_icon(0, get_icon("Color", "EditorIcons"));
|
||||
|
||||
|
@ -3306,6 +3306,24 @@ void PropertyEditor::update_tree() {
|
|||
}
|
||||
}
|
||||
|
||||
void PropertyEditor::_draw_transparency(Object *t, const Rect2 &p_rect) {
|
||||
|
||||
TreeItem *ti = t->cast_to<TreeItem>();
|
||||
if (!ti)
|
||||
return;
|
||||
|
||||
Color color = obj->get(ti->get_metadata(1));
|
||||
Ref<Texture> arrow = tree->get_icon("select_arrow");
|
||||
|
||||
// make a little space between consecutive color fields
|
||||
Rect2 area = p_rect;
|
||||
area.pos.y += 1;
|
||||
area.size.height -= 2;
|
||||
area.size.width -= arrow->get_size().width + 5;
|
||||
tree->draw_texture_rect(get_icon("Transparent", "EditorIcons"), area, true);
|
||||
tree->draw_rect(area, color);
|
||||
}
|
||||
|
||||
void PropertyEditor::_item_selected() {
|
||||
|
||||
TreeItem *item = tree->get_selected();
|
||||
|
@ -3787,6 +3805,7 @@ void PropertyEditor::_bind_methods() {
|
|||
ObjectTypeDB::bind_method("update_tree", &PropertyEditor::update_tree);
|
||||
ObjectTypeDB::bind_method("_resource_preview_done", &PropertyEditor::_resource_preview_done);
|
||||
ObjectTypeDB::bind_method("refresh", &PropertyEditor::refresh);
|
||||
ObjectTypeDB::bind_method("_draw_transparency", &PropertyEditor::_draw_transparency);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &PropertyEditor::get_drag_data_fw);
|
||||
ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &PropertyEditor::can_drop_data_fw);
|
||||
|
|
|
@ -234,6 +234,7 @@ class PropertyEditor : public Control {
|
|||
void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from);
|
||||
|
||||
void _resource_preview_done(const String &p_path, const Ref<Texture> &p_preview, Variant p_ud);
|
||||
void _draw_transparency(Object *t, const Rect2 &p_rect);
|
||||
|
||||
UndoRedo *undo_redo;
|
||||
|
||||
|
|
Loading…
Reference in New Issue