123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313 |
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using NEROLib;
- namespace LYFZ.NeroDiscBurn.NET
- {
- /// <summary>
- /// Summary description for BurnImage.
- /// </summary>
- public class BurnImageForm : System.Windows.Forms.Form
- {
- private NeroDrive m_drive;
- private Nero m_nero;
- private ChooseBurnFlagsForm m_frmChooseBurnFlags;
- private ChooseMediaForm m_frmChooseMedia;
- private ChooseSpeedForm m_frmChooseWriteSpeed;
- private System.Windows.Forms.TextBox c_ImageFilename;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Button c_Browse;
- private System.Windows.Forms.TextBox c_Device;
- private System.Windows.Forms.Label label8;
- private System.Windows.Forms.Button c_Burn;
- private System.Windows.Forms.Button c_Cancel;
- private System.Windows.Forms.Button c_ChooseBurnFlags;
- private System.Windows.Forms.Button c_ChooseWriteSpeed;
- private System.Windows.Forms.Button c_MediaType;
- private System.Windows.Forms.TextBox c_Settings;
- private System.Windows.Forms.Label label2;
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.Container components = null;
- public BurnImageForm(NeroDrive drive, Nero nero)
- {
- //
- // Required for Windows Form Designer support
- //
- InitializeComponent();
- m_drive = drive;
- m_nero = nero;
- m_frmChooseBurnFlags = new ChooseBurnFlagsForm ();
- m_frmChooseMedia = new ChooseMediaForm (m_nero);
- m_frmChooseWriteSpeed = new ChooseSpeedForm (m_drive, true);
- }
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- protected override void Dispose( bool disposing )
- {
- if( disposing )
- {
- if(components != null)
- {
- components.Dispose();
- }
- }
- base.Dispose( disposing );
- }
- #region Windows Form Designer generated code
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.c_ImageFilename = new System.Windows.Forms.TextBox();
- this.label1 = new System.Windows.Forms.Label();
- this.c_Browse = new System.Windows.Forms.Button();
- this.c_Device = new System.Windows.Forms.TextBox();
- this.label8 = new System.Windows.Forms.Label();
- this.c_Burn = new System.Windows.Forms.Button();
- this.c_Cancel = new System.Windows.Forms.Button();
- this.c_ChooseBurnFlags = new System.Windows.Forms.Button();
- this.c_ChooseWriteSpeed = new System.Windows.Forms.Button();
- this.c_MediaType = new System.Windows.Forms.Button();
- this.c_Settings = new System.Windows.Forms.TextBox();
- this.label2 = new System.Windows.Forms.Label();
- this.SuspendLayout();
- //
- // c_ImageFilename
- //
- this.c_ImageFilename.Location = new System.Drawing.Point(8, 88);
- this.c_ImageFilename.Name = "c_ImageFilename";
- this.c_ImageFilename.Size = new System.Drawing.Size(288, 20);
- this.c_ImageFilename.TabIndex = 1;
- this.c_ImageFilename.Text = "";
- this.c_ImageFilename.TextChanged += new System.EventHandler(this.c_ImageFilename_TextChanged);
- //
- // label1
- //
- this.label1.Location = new System.Drawing.Point(8, 72);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(88, 16);
- this.label1.TabIndex = 0;
- this.label1.Text = "Image filename:";
- //
- // c_Browse
- //
- this.c_Browse.Location = new System.Drawing.Point(304, 88);
- this.c_Browse.Name = "c_Browse";
- this.c_Browse.TabIndex = 2;
- this.c_Browse.Text = "Browse";
- this.c_Browse.Click += new System.EventHandler(this.c_Browse_Click);
- //
- // c_Device
- //
- this.c_Device.Location = new System.Drawing.Point(8, 24);
- this.c_Device.Name = "c_Device";
- this.c_Device.ReadOnly = true;
- this.c_Device.Size = new System.Drawing.Size(208, 20);
- this.c_Device.TabIndex = 9;
- this.c_Device.Text = "";
- //
- // label8
- //
- this.label8.Location = new System.Drawing.Point(8, 8);
- this.label8.Name = "label8";
- this.label8.Size = new System.Drawing.Size(56, 16);
- this.label8.TabIndex = 8;
- this.label8.Text = "Device:";
- //
- // c_Burn
- //
- this.c_Burn.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.c_Burn.Location = new System.Drawing.Point(304, 8);
- this.c_Burn.Name = "c_Burn";
- this.c_Burn.TabIndex = 10;
- this.c_Burn.Text = "Burn";
- this.c_Burn.Click += new System.EventHandler(this.c_Burn_Click);
- //
- // c_Cancel
- //
- this.c_Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.c_Cancel.Location = new System.Drawing.Point(304, 40);
- this.c_Cancel.Name = "c_Cancel";
- this.c_Cancel.TabIndex = 11;
- this.c_Cancel.Text = "Cancel";
- //
- // c_ChooseBurnFlags
- //
- this.c_ChooseBurnFlags.Location = new System.Drawing.Point(304, 136);
- this.c_ChooseBurnFlags.Name = "c_ChooseBurnFlags";
- this.c_ChooseBurnFlags.TabIndex = 5;
- this.c_ChooseBurnFlags.Text = "Burn Flags";
- this.c_ChooseBurnFlags.Click += new System.EventHandler(this.c_ChooseBurnFlags_Click);
- //
- // c_ChooseWriteSpeed
- //
- this.c_ChooseWriteSpeed.Location = new System.Drawing.Point(304, 168);
- this.c_ChooseWriteSpeed.Name = "c_ChooseWriteSpeed";
- this.c_ChooseWriteSpeed.TabIndex = 6;
- this.c_ChooseWriteSpeed.Text = "Write Speed";
- this.c_ChooseWriteSpeed.Click += new System.EventHandler(this.c_ChooseWriteSpeed_Click);
- //
- // c_MediaType
- //
- this.c_MediaType.Location = new System.Drawing.Point(304, 200);
- this.c_MediaType.Name = "c_MediaType";
- this.c_MediaType.TabIndex = 7;
- this.c_MediaType.Text = "Media Type";
- this.c_MediaType.Click += new System.EventHandler(this.c_MediaType_Click);
- //
- // c_Settings
- //
- this.c_Settings.Location = new System.Drawing.Point(8, 128);
- this.c_Settings.Multiline = true;
- this.c_Settings.Name = "c_Settings";
- this.c_Settings.ReadOnly = true;
- this.c_Settings.Size = new System.Drawing.Size(288, 96);
- this.c_Settings.TabIndex = 4;
- this.c_Settings.Text = "";
- //
- // label2
- //
- this.label2.Location = new System.Drawing.Point(8, 112);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(88, 16);
- this.label2.TabIndex = 3;
- this.label2.Text = "Settings:";
- //
- // BurnImageForm
- //
- this.AcceptButton = this.c_Burn;
- this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
- this.CancelButton = this.c_Cancel;
- this.ClientSize = new System.Drawing.Size(386, 232);
- this.Controls.Add(this.c_Settings);
- this.Controls.Add(this.c_Cancel);
- this.Controls.Add(this.c_Burn);
- this.Controls.Add(this.c_Device);
- this.Controls.Add(this.c_ImageFilename);
- this.Controls.Add(this.label8);
- this.Controls.Add(this.c_Browse);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.c_ChooseBurnFlags);
- this.Controls.Add(this.c_ChooseWriteSpeed);
- this.Controls.Add(this.c_MediaType);
- this.Controls.Add(this.label2);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "BurnImageForm";
- this.ShowInTaskbar = false;
- this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "BurnImage";
- this.ResumeLayout(false);
- }
- #endregion
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad (e);
- // Update GUI on load.
- //
- c_Device.Text = m_drive.DeviceName;
- UpdateBurnButton ();
- UpdateSettings ();
- }
- private void c_Browse_Click(object sender, System.EventArgs e)
- {
- // Open the file dialog asking for an image filename.
- //
- OpenFileDialog dlg = new OpenFileDialog ();
- dlg.CheckFileExists = true;
- dlg.CheckPathExists = true;
- dlg.DefaultExt = ".nrg";
- dlg.FileName = c_ImageFilename.Text;
- dlg.Filter = "All image files|*.nrg;*.iso|NRG files (*.nrg)|*.nrg|ISO files (*.iso)|*.iso|All files (*.*)|*.*";
- if (DialogResult.OK == dlg.ShowDialog (this))
- {
- c_ImageFilename.Text = dlg.FileName;
- UpdateBurnButton ();
- }
- }
- private void UpdateBurnButton ()
- {
- // Enable the burn button if image filename is not
- // empty.
- //
- bool bEnable = c_ImageFilename.Text != "";
- c_Burn.Enabled = bEnable;
- }
- private void c_ImageFilename_TextChanged(object sender, System.EventArgs e)
- {
- // When image filename is chaned by typing, update
- // the burn button as well.
- //
- UpdateBurnButton ();
- }
- private void c_Burn_Click(object sender, System.EventArgs e)
- {
- // When burning is requested, just do it. Pass all
- // the params.
- //
- BurnProgressForm frm = new BurnProgressForm (m_drive, m_nero);
- frm.BurnImage (c_ImageFilename.Text,
- m_frmChooseBurnFlags.GetBurnFlags (),
- m_frmChooseWriteSpeed.GetSpeed (),
- m_frmChooseMedia.GetMediaType (),
- this);
- }
- private void UpdateSettings ()
- {
- c_Settings.Text = "Burn flags: " + m_frmChooseBurnFlags.ToString () + "\r\n\r\n"
- + "Write speed: " + m_frmChooseWriteSpeed.ToString () + "\r\n\r\n"
- + "Media types: " + m_frmChooseMedia.ToString ();
- }
- private void c_ChooseBurnFlags_Click(object sender, System.EventArgs e)
- {
- if (DialogResult.OK == m_frmChooseBurnFlags.ShowDialog (this))
- {
- UpdateSettings ();
- }
- }
- private void c_ChooseWriteSpeed_Click(object sender, System.EventArgs e)
- {
- if (DialogResult.OK == m_frmChooseWriteSpeed.ShowDialog (this))
- {
- UpdateSettings ();
- }
- }
- private void c_MediaType_Click(object sender, System.EventArgs e)
- {
- if (DialogResult.OK == m_frmChooseMedia.ShowDialog (this))
- {
- UpdateSettings ();
- }
- }
- }
- }
|