Пример #1
0
            public static void KeyPress(object obj, KeyEventArgs args)
            {
                var self = (Frame)obj;

                if (args.Shift && !self.GridEnable)
                {
                    self.GridEnable = true;
                    self.RepaintGlobal();
                }

                if (args.KeyCode == Keys.Tab)
                {
                    SoundElement.SetEditMode(!SoundElement.IsEditing);
                }

                if (args.Control && args.KeyCode == Keys.S)
                {
                    g.engine.config.SaveSound();
                }

                if (args.Control && args.KeyCode == Keys.O)
                {
                    g.engine.config.LoadSound();
                }

                if (args.Control && args.KeyCode == Keys.A)
                {
                    g.engine.config.AddSoundFromFileBrowser();
                }
            }
Пример #2
0
 public static void MouseDown(object obj, MouseEventArgs args)
 {
     if (args.Button == MouseButtons.Middle)
     {
         SoundElement.SetEditMode(!SoundElement.IsEditing);
     }
     else if (!SoundElement.IsEditing && args.Button == MouseButtons.Right)
     {
         g.engine.StopSound(true);
     }
 }
Пример #3
0
        //
        // contructor
        //
        public Frame()
        {
            Text      = SBEngine.PName;
            AllowDrop = true;

            MinimumSize = new Size(300, 300);

            // events
            DragEnter  += new DragEventHandler(Hook.DragEnter);
            DragDrop   += new DragEventHandler(Hook.DragDrop);
            KeyDown    += new KeyEventHandler(Hook.KeyPress);
            KeyUp      += new KeyEventHandler(Hook.KeyUp);
            MouseHover += (object obj, EventArgs args) =>
            {
                Cursor.Current = Cursors.Cross;
                Application.DoEvents();
            };
            MouseLeave += (object obj, EventArgs args) =>
            {
                Cursor.Current = Cursors.Default;
                Application.DoEvents();
            };
            Resize += (object obj, EventArgs args) =>
            {
                RepaintGlobal();
            };
            FormClosing += (object obj, FormClosingEventArgs args) => g.ProgramWorking = false;

            // init timer for info Label
            timer = new Thread(() =>
            {
                while (g.ProgramWorking)
                {
                    Thread.Sleep(50);

                    if (info == null || !g.vars.EnableInfo || !info.InvokeRequired)
                    {
                        continue;
                    }

                    try
                    {
                        info?.Invoke((Action) delegate()
                        {
                            info.Text = $"Sound count: {g.engine.soundElements.Count()} | " +
                                        $"Current sound: {g.engine.currentSound.name()} | " +
                                        $"Mode: {(SoundElement.IsEditing ? "Edit" : "Normal")}";
                        });
                    }
                    catch { }
                }
            });
            timer.Start();

            //
            // init global window
            //
            global            = new Panel();
            global.Parent     = this;
            global.Dock       = DockStyle.Fill;
            global.AutoScroll = true;

            global.MouseDown += new MouseEventHandler(Hook.MouseDown);
            global.Paint     += new PaintEventHandler(Hook.Paint);

            global.BackColor = Color.Black;             // bg

            //
            // init info panel
            //
            info        = new Label();
            info.Parent = this;

            info.Size = new Size(0, 14);

            info.Dock = DockStyle.Bottom;

            info.BackColor = Color.Gray;
            info.ForeColor = Color.White;

            info.Visible = g.vars.EnableInfo;

            //
            // init menu bar
            //
            menubar        = new MenuStrip();
            menubar.Parent = this;
            menubar.Dock   = DockStyle.Top;

            // Bar -> Debug -> ...;
            ToolStripMenuItem reloadfont    = new ToolStripMenuItem("Reload font", null, (object obj, EventArgs args) => SoundElement.RefontAllElements());
            ToolStripMenuItem repaint       = new ToolStripMenuItem("Repaint all", null, (object obj, EventArgs args) => SoundElement.RepaintAllElements());
            ToolStripMenuItem reloadtext    = new ToolStripMenuItem("Reload text", null, (object obj, EventArgs args) => SoundElement.RetextAllElements());
            ToolStripMenuItem reloadFrame   = new ToolStripMenuItem("Force update main frame", null, (object obj, EventArgs args) => UpdateElements());
            ToolStripMenuItem reloadDevices = new ToolStripMenuItem("Reload devices", null, (object obj, EventArgs args) => WindowSettings.DeviceButton.ReloadDeviceButtons());
            ToolStripMenuItem reloadOptions = new ToolStripMenuItem("Reload options frame", null, (object obj, EventArgs args) => WindowSettings.GUI.SetupAllValues());
            ToolStripMenuItem stopsound     = new ToolStripMenuItem("Force stop sound", null, (object obj, EventArgs args) => g.engine.StopSound(true));


            ToolStripMenuItem fileSaveOld = new ToolStripMenuItem("Save sounds (Old method)", null, (object obj, EventArgs args) => g.engine.config.SaveOld());
            ToolStripMenuItem fileLoadOld = new ToolStripMenuItem("Load sounds (Old method)", null, (object obj, EventArgs args) => g.engine.config.LoadOld());

            //
            // Bar -> Debug -> Old features
            //
            ToolStripMenuItem oldfeat = new ToolStripMenuItem("Old Features");

            oldfeat.DropDownItems.AddRange(new ToolStripItem[] { fileSaveOld, fileLoadOld });

            //
            // Bar -> Debug
            //
            ToolStripMenuItem debug = new ToolStripMenuItem("Debug");

            debug.DropDownItems.AddRange(new ToolStripItem[] { reloadfont, repaint, reloadtext, reloadFrame, reloadDevices, reloadOptions, stopsound, oldfeat });



            // Bar -> Options -> Settings;
            ToolStripMenuItem settings = new ToolStripMenuItem("Settings", null, (object obj, EventArgs args) => g.Settings.Show());

            //
            // Bar -> Options
            //
            ToolStripMenuItem options = new ToolStripMenuItem("Options");

            options.DropDownItems.AddRange(new ToolStripItem[] { settings });



            // Bar -> View -> Open track window;
            ToolStripMenuItem opentrack = new ToolStripMenuItem("Open Tracks Window", null, (object obj, EventArgs args) => g.tracksFrame.Show());

            //
            // Bar -> View
            //
            ToolStripMenuItem View = new ToolStripMenuItem("View");

            View.DropDownItems.AddRange(new ToolStripItem[] { opentrack });



            // Bar -> Edit -> Set edit mode;
            ToolStripMenuItem editmodeOn = new ToolStripMenuItem("Set edit mode", null, (object obj, EventArgs args) => SoundElement.SetEditMode(true));

            // Bar -> Edit -> Set normal mode;
            ToolStripMenuItem editmodeOff = new ToolStripMenuItem("Set normal mode", null, (object obj, EventArgs args) => SoundElement.SetEditMode(false));

            //
            // Bar -> Edit -> Mode
            //
            ToolStripMenuItem editmode = new ToolStripMenuItem("[TAB | MMB] Mode");

            editmode.DropDownItems.AddRange(new ToolStripItem[] { editmodeOn, editmodeOff });

            // Bar -> Edit -> Clear all elements;
            ToolStripMenuItem editClear = new ToolStripMenuItem("Clear all elements", null, (object obj, EventArgs args) =>
            {
                if (MessageBox.Show("Are you sure?", "what.", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    g.engine.ClearSoundElements();
                }
            });

            //
            // Bar -> Edit
            //
            ToolStripMenuItem edit = new ToolStripMenuItem("Edit");

            edit.DropDownItems.AddRange(new ToolStripItem[] { editmode, editClear });



            // Bar -> File -> Save;
            ToolStripMenuItem fileSave = new ToolStripMenuItem("[Ctrl + S] Save sounds", null, (object obj, EventArgs args) => g.engine.config.SaveSound());
            // Bar -> File -> Load;
            ToolStripMenuItem fileLoad = new ToolStripMenuItem("[Ctrl + O] Load sounds", null, (object obj, EventArgs args) => g.engine.config.LoadSound());

            ToolStripMenuItem fileAdd = new ToolStripMenuItem("[Ctrl + A] Add sound", null, (object obj, EventArgs args) => g.engine.config.AddSoundFromFileBrowser());



            //
            // Bar -> File -> Save/Load ;
            //
            ToolStripMenuItem saveload = new ToolStripMenuItem("Save/Load");

            // add elements to
            // Bar -> Options -> ...
            saveload.DropDownItems.AddRange(new ToolStripItem[] { fileSave, fileLoad, fileAdd });

            //
            // Bar -> File -> ... ;
            //
            ToolStripMenuItem file = new ToolStripMenuItem("File");

            // add elements to
            // Bar -> Options -> ...
            file.DropDownItems.AddRange(new ToolStripItem[] { saveload });



            //
            // add elements to
            // Bar -> ...
            //
            menubar.Items.AddRange(new ToolStripItem[] { file, edit, View, options, debug });
        }