2007-06-16 19:53:51 +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
2007-06-14 23:31:57 +00:00
using System ;
using System.Collections.Generic ;
using System.ComponentModel ;
using System.Drawing ;
using System.Text ;
using System.Windows.Forms ;
using CodeImp.DoomBuilder.Map ;
2007-09-25 05:57:42 +00:00
using CodeImp.DoomBuilder.Images ;
2007-06-14 23:31:57 +00:00
2007-06-16 19:53:51 +00:00
#endregion
2007-06-14 23:31:57 +00:00
namespace CodeImp.DoomBuilder.Interface
{
2007-06-26 08:03:36 +00:00
internal partial class MapOptionsForm : DelayedForm
2007-06-14 23:31:57 +00:00
{
// Variables
private MapOptions options ;
// Properties
public MapOptions Options { get { return options ; } }
2007-06-15 10:18:03 +00:00
2007-06-14 23:31:57 +00:00
// Constructor
public MapOptionsForm ( MapOptions options )
{
2007-09-30 20:07:14 +00:00
int index ;
2007-06-14 23:31:57 +00:00
// Initialize
InitializeComponent ( ) ;
// Keep settings
this . options = options ;
// Go for all configurations
for ( int i = 0 ; i < General . Configs . Count ; i + + )
{
// Add config name to list
2007-09-30 20:07:14 +00:00
index = config . Items . Add ( General . Configs [ i ] ) ;
2007-06-14 23:31:57 +00:00
// Is this configuration currently selected?
2007-09-27 22:55:03 +00:00
if ( string . Compare ( General . Configs [ i ] . Filename , options . ConfigFile , true ) = = 0 )
2007-06-14 23:31:57 +00:00
{
// Select this item
2007-09-30 20:07:14 +00:00
config . SelectedIndex = index ;
2007-06-14 23:31:57 +00:00
}
}
// Set the level name
levelname . Text = options . CurrentName ;
// Fill the resources list
2007-09-27 12:34:38 +00:00
resourcelocations . EditResourceLocationList ( options . Resources ) ;
2007-06-14 23:31:57 +00:00
}
// OK clicked
private void apply_Click ( object sender , EventArgs e )
{
// Configuration selected?
if ( config . SelectedIndex = = - 1 )
{
// Select a configuration!
MessageBox . Show ( this , "Please select a game configuration to use for editing your map." , Application . ProductName , MessageBoxButtons . OK , MessageBoxIcon . Warning ) ;
2007-06-14 23:34:31 +00:00
config . Focus ( ) ;
2007-06-14 23:31:57 +00:00
return ;
}
// Level name empty?
if ( levelname . Text . Length = = 0 )
{
// Enter a level name!
MessageBox . Show ( this , "Please enter a level name for your map." , Application . ProductName , MessageBoxButtons . OK , MessageBoxIcon . Warning ) ;
2007-06-14 23:34:31 +00:00
levelname . Focus ( ) ;
2007-06-14 23:31:57 +00:00
return ;
}
// Apply changes
options . ClearResources ( ) ;
2007-09-27 22:55:03 +00:00
options . ConfigFile = General . Configs [ config . SelectedIndex ] . Filename ;
2007-06-14 23:31:57 +00:00
options . CurrentName = levelname . Text . Trim ( ) . ToUpper ( ) ;
2007-09-27 12:34:38 +00:00
options . CopyResources ( resourcelocations . GetResources ( ) ) ;
2007-06-14 23:31:57 +00:00
// Hide window
this . DialogResult = DialogResult . OK ;
this . Hide ( ) ;
}
// Cancel clicked
private void cancel_Click ( object sender , EventArgs e )
{
// Just hide window
this . DialogResult = DialogResult . Cancel ;
this . Hide ( ) ;
}
2007-09-30 20:07:14 +00:00
// Game configuration chosen
private void config_SelectedIndexChanged ( object sender , EventArgs e )
{
ConfigurationInfo ci ;
// Anything selected?
if ( config . SelectedIndex > - 1 )
{
// Get the info
ci = ( ConfigurationInfo ) config . SelectedItem ;
// Show resources
resourcelocations . FixedResourceLocationList ( ci . Resources ) ;
}
}
2007-06-14 23:31:57 +00:00
}
}