public frmModelViewer(String _mesh)
        {
            InitializeComponent();

            isPlaying = false;
            messageFilterKeyUp = null;
            messageFilterKeyDown = null;
            messageFilterMouseWheel = null;

            modelDirectory = String.Format("{0}Models", AppDomain.CurrentDomain.BaseDirectory);
            track_rotatespeed.Value = 20;

            this.Disposed += new EventHandler(MogreForm_Disposed);
            tree_files.ItemDrag += new ItemDragEventHandler(treeLoad_ItemDrag);

            Directory.SetCurrentDirectory(Application.StartupPath);

            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);

            mogreWin = new OgreWindow(new Point(mogrePanel.Location.X, mogrePanel.Location.Y), new Size(mogrePanel.Height, mogrePanel.Width), mogrePanel.Handle);
            mogreWin.InitMogre();

            tmr_rendering.Start();

            inputHandler = new CustomInputHandler(mogrePanel, this, mogreWin.camera);

            AddMessageFilter(this.Handle);

            Version v = AsmInfo.Version;
            this.Text = String.Format("{0} v{1}.{2}.{3}", AsmInfo.Title, v.Major, v.Minor, v.Build);
            mogreWin.SetGrid();

            if (!String.IsNullOrEmpty(_mesh))
            {
                if (SetMeshModel(_mesh, false))
                {
                    modelDirectory = Path.GetDirectoryName(_mesh);
                    OpenDirectory(true);
                }
            }
            else
            {
                OpenDirectory(true);
            }
        }
 private void list_animations_MouseLeave(object sender, EventArgs e)
 {
     Application.RemoveMessageFilter(messageFilterMouseWheel);
     messageFilterMouseWheel = new RedirectMessageFilter(WindowsMessages.WM_MOUSEWHEEL, this.Handle);
     Application.AddMessageFilter(messageFilterMouseWheel);
 }
 private void AddMessageFilter(IntPtr hWnd)
 {
     messageFilterKeyUp = new RedirectMessageFilter(WindowsMessages.WM_KEYUP, hWnd);
     messageFilterKeyDown = new RedirectMessageFilter(WindowsMessages.WM_KEYDOWN, hWnd);
     messageFilterMouseWheel = new RedirectMessageFilter(WindowsMessages.WM_MOUSEWHEEL, hWnd);
     Application.AddMessageFilter(messageFilterKeyUp);
     Application.AddMessageFilter(messageFilterKeyDown);
     Application.AddMessageFilter(messageFilterMouseWheel);
 }