Beispiel #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();
                }
            }
Beispiel #2
0
        public void AddSound(SoundElement el)
        {
            el.OnRemove += (SoundElement element) => RemoveSound(element.baseSound);

            var item = new ListViewItem(new string[] { el.baseSound.ID.ToString(), el.baseSound.name() });

            list.Items.Add(item);
        }
Beispiel #3
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);
     }
 }
Beispiel #4
0
        public DrawElement(int x, int y, int w, int h, SoundElement element, Brush paintColor, bool editOnly = true)
        {
            this.x = x;
            this.y = y;
            this.w = w;
            this.h = h;

            this.paintColor = paintColor;
            this.editOnly   = editOnly;

            parent = element;

            DrawElements.Add(this);

            InitEvents();
        }
        public TabPage GUITab()
        {
            TabPage page = new TabPage("GUI");

            page.AutoScroll = true;


            //
            // grid size
            //
            GroupBox lGridSize = new GroupBox();

            lGridSize.Parent = page;
            lGridSize.Text   = "Grid Size";

            GUI.gridSize.Parent        = lGridSize;
            GUI.gridSize.Minimum       = 2;
            GUI.gridSize.Maximum       = 50;
            GUI.gridSize.Dock          = DockStyle.Top;
            GUI.gridSize.ValueChanged += (object obj, EventArgs args) =>
            {
                g.vars.GridSize = Convert.ToInt32(((NumericUpDown)obj).Value);

                GUI.SetupAllValues();
            };
            lGridSize.Dock   = DockStyle.Top;
            lGridSize.Height = 50;


            //
            // autoscroll
            //
            GUI.EnableScrolling.Parent = page;
            GUI.EnableScrolling.Dock   = DockStyle.Top;
            GUI.EnableScrolling.Text   = "Enable scrollbars for main window";
            GUI.EnableScrolling.Click += (object obj, EventArgs args) =>
            {
                g.vars.EnableScrolling = ((CheckBox)obj).Checked;

                GUI.SetupAllValues();
            };


            //
            // sound delay track
            //
            GUI.lSoundDelay.Parent = GUI.soundDelayKey;
            GUI.lSoundDelay.Text   = "Sound play delay while pressing binded keys";

            GUI.soundDelay.Parent        = GUI.lSoundDelay;
            GUI.soundDelay.Minimum       = 1;
            GUI.soundDelay.Maximum       = 2000;
            GUI.soundDelay.Dock          = DockStyle.Top;
            GUI.soundDelay.ValueChanged += (object obj, EventArgs args) =>
            {
                g.vars.SoundPlayDelay = Convert.ToInt32(((NumericUpDown)obj).Value);

                GUI.SetupAllValues();
            };


            //
            // sound delay bind
            //
            GUI.soundDelayKey.Parent       = page;
            GUI.soundDelayKey.Dock         = DockStyle.Top;
            GUI.soundDelayKey.BindChanged += (object obj, bool isCtrl, bool isAlt) =>
            {
                g.vars.SoundPlayDelayKey = BoolToKeyDict(isCtrl, isAlt);

                GUI.SetupAllValues();
            };


            //
            // enable play sound by hotkey
            //
            GUI.hotkeySound.Parent       = page;
            GUI.hotkeySound.Dock         = DockStyle.Top;
            GUI.hotkeySound.BindChanged += (object obj, bool isCtrl, bool isAlt) =>
            {
                g.vars.hotkeySound = BoolToKeyDict(isCtrl, isAlt);

                GUI.SetupAllValues();
            };


            //
            // enable info
            //
            GUI.info.Parent = page;
            GUI.info.Dock   = DockStyle.Top;
            GUI.info.Text   = "Enable info panel";
            GUI.info.Click += (object obj, EventArgs args) =>
            {
                g.vars.EnableInfo = ((CheckBox)obj).Checked;

                GUI.SetupAllValues();
            };


            //
            // font size
            //
            GroupBox lFontsize = new GroupBox();

            lFontsize.Parent = page;
            lFontsize.Text   = "Font size";

            GUI.fontsize.Parent        = lFontsize;
            GUI.fontsize.Minimum       = 6;
            GUI.fontsize.Maximum       = 48;
            GUI.fontsize.Dock          = DockStyle.Fill;
            GUI.fontsize.ValueChanged += (object obj, EventArgs args) =>
            {
                g.vars.FontSize = Convert.ToInt32(GUI.fontsize.Value);

                GUI.SetupAllValues();

                SoundElement.RefontAllElements();
            };
            lFontsize.Dock   = DockStyle.Top;
            lFontsize.Height = 50;


            //
            // volume
            //
            GroupBox lVolume = new GroupBox();

            lVolume.Parent = page;
            lVolume.Text   = "Volume";

            GUI.volume.Parent        = lVolume;
            GUI.volume.Minimum       = 1;
            GUI.volume.Maximum       = 100;
            GUI.volume.Dock          = DockStyle.Fill;
            GUI.volume.ValueChanged += (object obj, EventArgs args) =>
            {
                g.vars.Volume = Convert.ToSingle(GUI.volume.Value) / 100f;

                GUI.SetupAllValues();
            };
            lVolume.Dock   = DockStyle.Top;
            lVolume.Height = 50;


            // setup all values
            GUI.SetupAllValues();

            return(page);
        }
Beispiel #6
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 });
        }