diff options
Diffstat (limited to 'MainForm.cs')
-rw-r--r-- | MainForm.cs | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/MainForm.cs b/MainForm.cs new file mode 100644 index 0000000..7eae71e --- /dev/null +++ b/MainForm.cs @@ -0,0 +1,157 @@ +// GfxView - Simple GFX viewer
+// Copyright (C) 2005 Ian Cowburn
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+// $Id$
+//
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Imaging;
+using System.Windows.Forms;
+
+namespace GfxView
+{
+ /// <summary>
+ /// Description of MainForm.
+ /// </summary>
+ public class MainForm : System.Windows.Forms.Form
+ {
+ private System.Windows.Forms.PictureBox m_gfx;
+ private int m_height;
+ private double m_size;
+ private string m_file;
+
+ public MainForm(string file)
+ {
+ //
+ // The InitializeComponent() call is required for Windows Forms designer support.
+ //
+ InitializeComponent();
+
+ m_file=file;
+ m_gfx.Image=Bitmap.FromFile(file);
+
+ m_height=m_gfx.Image.Height;
+
+ m_size=1.0;
+
+ while(m_size>0.1 && (Screen.PrimaryScreen.WorkingArea.Height < (m_height*m_size)))
+ {
+ m_size-=0.01;
+ }
+
+ SetSize();
+ }
+
+ [STAThread]
+ public static void Main(string[] args)
+ {
+ string file=null;
+
+ if (args.Length>0)
+ {
+ file=args[0];
+ }
+ else
+ {
+ OpenFileDialog fsel=new OpenFileDialog();
+
+ if (fsel.ShowDialog()==DialogResult.OK)
+ {
+ file=fsel.FileName;
+ }
+ }
+
+ if (file!=null)
+ {
+ try
+ {
+ Application.Run(new MainForm(file));
+ }
+ catch (Exception e)
+ {
+ MessageBox.Show(e.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
+ }
+ }
+ }
+
+ #region Windows Forms Designer generated code
+ /// <summary>
+ /// This method is required for Windows Forms designer support.
+ /// Do not change the method contents inside the source code editor. The Forms designer might
+ /// not be able to load this method if it was changed manually.
+ /// </summary>
+ private void InitializeComponent() {
+ this.m_gfx = new System.Windows.Forms.PictureBox();
+ this.SuspendLayout();
+ //
+ // m_gfx
+ //
+ this.m_gfx.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.m_gfx.Location = new System.Drawing.Point(0, 0);
+ this.m_gfx.Name = "m_gfx";
+ this.m_gfx.Size = new System.Drawing.Size(292, 266);
+ this.m_gfx.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
+ this.m_gfx.TabIndex = 0;
+ this.m_gfx.TabStop = false;
+ //
+ // MainForm
+ //
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.ClientSize = new System.Drawing.Size(292, 266);
+ this.Controls.Add(this.m_gfx);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "MainForm";
+ this.Text = "MainForm";
+ this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.OnKey);
+ this.ResumeLayout(false);
+ }
+ #endregion
+
+ private void SetSize()
+ {
+ Width=(int)(m_gfx.Image.Width*m_size);
+ Height=(int)(m_gfx.Image.Height*m_size);
+
+ Text=m_file + " [" + (m_size*100).ToString() + "%]";
+ }
+
+ void OnKey(object sender, System.Windows.Forms.KeyPressEventArgs e)
+ {
+ switch(Char.ToLower(e.KeyChar))
+ {
+ case 'q':
+ Close();
+ break;
+
+ case '+':
+ m_size+=0.1;
+ SetSize();
+ break;
+
+ case '-':
+ m_size=Math.Max(0.01,m_size-0.1);
+ SetSize();
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ }
+}
|