// 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
{
///
/// Description of MainForm.
///
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
///
/// 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.
///
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;
}
}
}
}