Beispiel #1
0
        /// <summary>
        /// Private constructor, instances are created by the static function CreateDisplay()
        /// </summary>
        private NetworkDisplay(NetworkVisualizer visualizer, int fps, LayoutOptions options)
        {
            if (options != null)
            {
                LayoutOptions = options;
            }
            else
            {
                LayoutOptions = new LayoutOptions();
            }

            NetworkVisualizer = visualizer;

            NetworkDisplay.DisplayCounter++;

            // start event queue in new main thread
            _mainThread = new Thread(new ThreadStart(new Action(delegate() {
                InitializeComponent();
                visualizer.SetGraphics(drawPanel.CreateGraphics(), drawPanel.DisplayRectangle);

                this.Text = visualizer.Network.Name;

                drawPanel.Paint      += new PaintEventHandler(drawPanel_Paint);
                drawPanel.MouseDown  += new MouseEventHandler(drawPanel_MouseDown);
                drawPanel.MouseUp    += new MouseEventHandler(drawPanel_MouseUp);
                drawPanel.MouseMove  += new MouseEventHandler(drawPanel_MouseMove);
                drawPanel.MouseClick += new MouseEventHandler(drawPanel_MouseClick);

                this.MouseWheel += new MouseEventHandler(drawPanel_MouseWheel);

                // Add the layout options to the menu
                LayoutOptions.ItemAdded += new GUI.LayoutOptions.ItemAddedDelegate(LayoutOptions_ItemAdded);
                foreach (string name in LayoutOptions.LayoutNames)
                {
                    ToolStripItem i = layoutToolStripMenuItem.DropDownItems.Add(name);
                    i.Click        += new EventHandler(i_Click);
                }

                System.Threading.Timer t = new System.Threading.Timer(timerCallbackFunction, null, 50, 1000 / fps);

                Application.Run(this);
            })));

            // Set the main thread to Single Thread Apartment
            _mainThread.SetApartmentState(ApartmentState.STA);
            _mainThread.Name = "STA Thread for NETGen Display";

            // Startup the thread ...
            _mainThread.Start();
        }
Beispiel #2
0
 /// <summary>
 /// The panel has been resized. The presentation settings need to be changed accordingly.
 /// </summary>
 /// <param name='sender'>
 /// Sender.
 /// </param>
 /// <param name='e'>
 /// E.
 /// </param>
 private void drawPanel_Resize(object sender, EventArgs e)
 {
     NetworkVisualizer.SetGraphics(drawPanel.CreateGraphics(), drawPanel.DisplayRectangle);
     NetworkVisualizer.PresentationSettings.ScreenWidth  = drawPanel.Width;
     NetworkVisualizer.PresentationSettings.ScreenHeight = drawPanel.Height;
 }