Example #1
0
        public RoundSpectrum(RoundOptions options)
        {
            opts           = options;
            DoubleBuffered = true;

            //если в спектре только один вариант положения окна, то не имеет смысла показывать трекер
            if (opts.SpecSize > 1)
            {
                var tracker = new WindowTracker(opts);
                tracker.Dock         = DockStyle.Bottom;
                tracker.Invalidated += (sender, ev) => { Invalidate(); };
                Controls.Add(tracker);
            }

            //фишка для увеличения графика при помощи скролла. Пока не работает.
            MouseWheel += (sender, ev) =>
            {
                opts.ZoomScale(1.1);
                var log = new Logger("zoom.txt");
                log.WriteLog(opts.ScalePercents.ToString());
                log.Flush();
            };

            Invalidate();
        }
Example #2
0
        public SpectrumViewManager(FreqPoint[][] spectrum)
        {
            var opts = new RoundOptions(spectrum);

            view              = new RoundSpectrum(opts);
            view.Dock         = DockStyle.Fill;
            view.Invalidated += (sender, ev) => { Invalidate(); };
            Controls.Add(view);
        }
Example #3
0
        public WindowTracker(RoundOptions options, int size)
        {
            var trackLabel = new Label
            {
                Font     = options.TextFont,
                Text     = String.Format("Центр окна: {0}\n", 0),
                AutoSize = true,
                Location = new Point(ClientRectangle.Width / 2, 0)
            };

            //создание бегунка для смещения центра окна
            var winTrack = new TrackBar
            {
                Orientation   = Orientation.Horizontal,
                TickFrequency = options.WinStep,
                Maximum       = size,
                Location      = new Point(0, trackLabel.Height),
                TickStyle     = TickStyle.BottomRight
            };

            winTrack.Scroll += (sender, ev) =>
            {
                options.ViewSpec(winTrack.Value);
                trackLabel.Text = String.Format("Центр окна: {0}\n", winTrack.Value);
                Invalidate();
            };

            Controls.Add(winTrack);
            Controls.Add(trackLabel);

            Resize += (sender, ev) =>
            {
                trackLabel.Location = new Point((ClientRectangle.Width - trackLabel.Width) / 2, 0);
                winTrack.SetBounds(0, trackLabel.Height, ClientRectangle.Width, 50);
            };
        }