UltimateZoneBuilder/Source/Core/Controls/TextureSelectorControl.cs
MaxED 99f3ba2844 Changed long texture names handling. Texture names conversion is no longer required.
Texture browser form: added "Long texture names" check-box. It can be used to toggle between displaying long and short texture names.
Texture browser form: added "Show image size" check-box.
Texture browser form: image size is now shown differently.
Image Selector: added a button to toggle between long and short texture name.
Linedef info panel: long texture names are now displayed properly.
Sector info panel: long texture names are now displayed properly.
Fixed: "Save Screenshot" and "Save Edit Area Screenshot" actions were triggered multiple times when a child window was open.
Fixed: used textures should be always updated after using "Change map in current WAD" action.
Fixed, "Change map in current WAD": fixed a crash when trying to switch from a map with missing game configuration path.
Updated ZDoom_ACS.cfg.
2014-12-03 09:06:05 +00:00

92 lines
2.6 KiB
C#

#region ================== Copyright (c) 2007 Pascal vd Heiden
/*
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
* This program is released under GNU General Public License
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#endregion
#region ================== Namespaces
using System.Drawing;
using CodeImp.DoomBuilder.Windows;
using CodeImp.DoomBuilder.Data;
#endregion
namespace CodeImp.DoomBuilder.Controls
{
public class TextureSelectorControl : ImageSelectorControl
{
// Variables
private bool required;
// Properties
public bool Required { get { return required; } set { required = value; } }
// Setup
public override void Initialize()
{
base.Initialize();
// Fill autocomplete list
name.AutoCompleteCustomSource.AddRange(General.Map.Data.TextureNames.ToArray());
//mxd
if(required) Refresh();
}
// This finds the image we need for the given texture name
protected override Image FindImage(string imagename)
{
timer.Stop(); //mxd
// Check if name is a "none" texture
if(string.IsNullOrEmpty(imagename))
{
DisplayImageSize(0, 0); //mxd
UpdateToggleImageNameButton(null); //mxd
//mxd. Determine image to show
if (multipletextures) return Properties.Resources.ImageStack;
return (required ? Properties.Resources.MissingTexture : null);
}
else if(imagename == "-") //mxd
{
DisplayImageSize(0, 0);
UpdateToggleImageNameButton(null); //mxd
// Determine image to show
return (required ? Properties.Resources.MissingTexture : null);
}
else
{
ImageData texture = General.Map.Data.GetTextureImage(imagename); //mxd
UpdateToggleImageNameButton(texture); //mxd
if(string.IsNullOrEmpty(texture.FullName) || texture is UnknownImage) DisplayImageSize(0, 0); //mxd
else DisplayImageSize(texture.ScaledWidth, texture.ScaledHeight); //mxd
if(usepreviews ? !texture.IsPreviewLoaded : !texture.IsImageLoaded) timer.Start(); //mxd
// Set the image
return (usepreviews ? texture.GetPreview() : texture.GetBitmap());
}
}
// This browses for a texture
protected override string BrowseImage(string imagename)
{
// Browse for texture
string result = TextureBrowserForm.Browse(this.ParentForm, imagename, false);
return result ?? imagename;
}
}
}