Exemplo n.º 1
0
void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const Ref<Texture> &p_image) {

	switch (p_type) {

		case EditorAssetLibrary::IMAGE_QUEUE_ICON: {

			item->call("set_image", p_type, p_index, p_image);
			icon = p_image;
		} break;
		case EditorAssetLibrary::IMAGE_QUEUE_THUMBNAIL: {

			for (int i = 0; i < preview_images.size(); i++) {
				if (preview_images[i].id == p_index) {
					preview_images[i].button->set_icon(p_image);
					break;
				}
			}
			//item->call("set_image",p_type,p_index,p_image);
		} break;
		case EditorAssetLibrary::IMAGE_QUEUE_SCREENSHOT: {

			for (int i = 0; i < preview_images.size(); i++) {
				if (preview_images[i].id == p_index) {
					preview_images[i].image = p_image;
					if (preview_images[i].button->is_pressed()) {
						_preview_click(p_index);
					}
					break;
				}
			}
			//item->call("set_image",p_type,p_index,p_image);
		} break;
	}
}
Exemplo n.º 2
0
void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const Ref<Texture> &p_image) {

	switch (p_type) {

		case EditorAssetLibrary::IMAGE_QUEUE_ICON: {

			item->call("set_image", p_type, p_index, p_image);
			icon = p_image;
		} break;
		case EditorAssetLibrary::IMAGE_QUEUE_THUMBNAIL: {

			for (int i = 0; i < preview_images.size(); i++) {
				if (preview_images[i].id == p_index) {
					if (preview_images[i].is_video) {
						Ref<Image> overlay = get_icon("PlayOverlay", "EditorIcons")->get_data();
						Ref<Image> thumbnail = p_image->get_data();
						Point2 overlay_pos = Point2((thumbnail->get_width() - overlay->get_width()) / 2, (thumbnail->get_height() - overlay->get_height()) / 2);

						thumbnail->lock();
						thumbnail->blend_rect(overlay, overlay->get_used_rect(), overlay_pos);
						thumbnail->unlock();

						Ref<ImageTexture> tex;
						tex.instance();
						tex->create_from_image(thumbnail);

						preview_images[i].button->set_icon(tex);
					} else {
						preview_images[i].button->set_icon(p_image);
					}
					break;
				}
			}
			//item->call("set_image",p_type,p_index,p_image);
		} break;
		case EditorAssetLibrary::IMAGE_QUEUE_SCREENSHOT: {

			for (int i = 0; i < preview_images.size(); i++) {
				if (preview_images[i].id == p_index) {
					preview_images[i].image = p_image;
					if (preview_images[i].button->is_pressed()) {
						_preview_click(p_index);
					}
					break;
				}
			}
			//item->call("set_image",p_type,p_index,p_image);
		} break;
	}
}
Exemplo n.º 3
0
void EditorAssetLibraryItemDescription::add_preview(int p_id, bool p_video, const String &p_url) {

	Preview preview;
	preview.id = p_id;
	preview.video_link = p_url;
	preview.is_video = p_video;
	preview.button = memnew(Button);
	preview.button->set_flat(true);
	preview.button->set_icon(get_icon("ThumbnailWait", "EditorIcons"));
	preview.button->set_toggle_mode(true);
	preview.button->connect("pressed", this, "_preview_click", varray(p_id));
	preview_hb->add_child(preview.button);
	if (!p_video) {
		preview.image = get_icon("ThumbnailWait", "EditorIcons");
	}
	if (preview_images.size() == 0 && !p_video) {
		_preview_click(p_id);
	}
	preview_images.push_back(preview);
}