UltimateZoneBuilder/Source/Controls/TextureSelectorControl.cs

87 lines
2.2 KiB
C#
Raw Normal View History

2007-12-26 14:29:36 +00:00
#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;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Diagnostics;
using CodeImp.DoomBuilder.Actions;
2007-12-26 14:29:36 +00:00
using CodeImp.DoomBuilder.Data;
using CodeImp.DoomBuilder.Config;
using CodeImp.DoomBuilder.Rendering;
using SlimDX.Direct3D9;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Windows;
2007-12-26 14:29:36 +00:00
#endregion
namespace CodeImp.DoomBuilder.Controls
2007-12-26 14:29:36 +00:00
{
2008-01-04 00:16:58 +00:00
public class TextureSelectorControl : ImageSelectorControl
2007-12-26 14:29:36 +00:00
{
// Variables
private bool required;
// Properties
public bool Required { get { return required; } set { required = value; } }
2007-12-27 01:24:11 +00:00
// Setup
public void Initialize()
{
// Fill autocomplete list
name.AutoCompleteCustomSource.AddRange(General.Map.Data.TextureNames.ToArray());
2009-01-24 11:49:40 +00:00
allowclear = true;
2007-12-27 01:24:11 +00:00
}
2007-12-26 14:29:36 +00:00
// This finds the image we need for the given texture name
2007-12-27 01:24:11 +00:00
protected override Image FindImage(string imagename)
2007-12-26 14:29:36 +00:00
{
// Check if name is a "none" texture
2007-12-27 01:24:11 +00:00
if((imagename.Length < 1) || (imagename[0] == '-'))
2007-12-26 14:29:36 +00:00
{
// Determine image to show
if(required)
return CodeImp.DoomBuilder.Properties.Resources.MissingTexture;
else
return null;
}
else
{
// Set the image
return General.Map.Data.GetTextureImage(imagename).GetPreview();
2007-12-26 14:29:36 +00:00
}
}
// This browses for a texture
2007-12-27 01:24:11 +00:00
protected override string BrowseImage(string imagename)
2007-12-26 14:29:36 +00:00
{
string result;
// Browse for texture
2007-12-27 01:24:11 +00:00
result = TextureBrowserForm.Browse(this.ParentForm, imagename);
if(result != null) return result; else return imagename;
2007-12-26 14:29:36 +00:00
}
}
}