コード例 #1
0
ファイル: MainControler.cs プロジェクト: ntj/GravurGIS
        ////////////////////////////////
        // Constructors & Destructors
        ////////////////////////////////
        public MainControler(String appName)
        {
            CheckEnvironment();

            coordCalculator = new CoordCalculator(this);

            config.SetDefaults();

            layerManager    = new LayerManager(this, config); // must be initialized first
            mainForm        = new MainForm(this, config, appName);

            // initialize the hardware key function mappings
            hardwareKeyDownFunctionMapping = new SortedList<HardwareKeyMappings, KeyPressedDelegate>();
            hardwareKeyDownFunctionMapping.Add(HardwareKeyMappings.TempMove, delegate() { mainForm.toggleTemporaryTool(Tool.Move); });
            hardwareKeyDownFunctionMapping.Add(HardwareKeyMappings.GPSTrackingTrigger, StartGPSTracking);
            hardwareKeyDownFunctionMapping.Add(HardwareKeyMappings.GPSTrackingStop, StopGPSTracking);
            hardwareKeyDownFunctionMapping.Add(HardwareKeyMappings.None, null);

            hardwareKeyUpFunctionMapping = new SortedList<HardwareKeyMappings, KeyPressedDelegate>();
            hardwareKeyUpFunctionMapping.Add(HardwareKeyMappings.TempMove, delegate() { mainForm.toggleTemporaryTool(Tool.Move); });
            hardwareKeyUpFunctionMapping.Add(HardwareKeyMappings.GPSTrackingTrigger, null);
            hardwareKeyUpFunctionMapping.Add(HardwareKeyMappings.GPSTrackingStop, null);
            hardwareKeyUpFunctionMapping.Add(HardwareKeyMappings.None, null);

            Point mapTabClientArea = mainForm.getMapTabClientArea();
            mapPanel = new MapPanel(this, config, mainForm, mapTabClientArea.X,
                mapTabClientArea.Y, 2);

            this.SettingsLoaded += new SettingsLoadedDelegate(MainControler_SettingsLoaded);

            LoadSettings(Program.AppDataPath + "\\" + config.ConfigFileName);

            mainForm.InitializeMyOwnComponents(mapPanel);
            activeDialogs = new List<IDialog>();

            //layerManager.ScaleChanged += new LayerManager.ScaleChangedDelegate(layerManager_ScaleChanged);
            //layerManager.DrawInfChanged += new LayerManager.DrawShapeInformationDelegate(layerManager_DrawInfChanged);
            layerManager.DrawInfChanged += new LayerManager.DrawShapeInformationDelegate(mainForm.OnDrawInfChanged);
            layerManager.DrawInfChanged += new LayerManager.DrawShapeInformationDelegate(mapPanel.OnDrawInfChanged);

            this.SettingsLoaded += new SettingsLoadedDelegate(this.SaveSettings);
            actionList.Clear();

            if (config.UseDefaultProject && File.Exists(config.DefaultProject))
                if (!openMWD(config.DefaultProject)) config.UseDefaultProject = false;
                else this.MainForm.ViewMode = ViewMode.Map;

            SystemWakeUp += new WakeUpDelegate(MainControler_SystemWakeUp);

            Program.NotifyIcon.Click += new EventHandler(notifyIcon_Click);
            mainForm.Deactivate += new EventHandler(mainForm_Deactivate);
            mainForm.Activated += new EventHandler(mainForm_Activated);
        }
コード例 #2
0
ファイル: MapPanel.cs プロジェクト: ntj/GravurGIS
        public MapPanel(MainControler mc, Config config, MainForm mainForm, int width, int height, int margin)
        {
            this.config = config;
            this.mainControler = mc;
            this.Visible = false;
            this.mainForm = mainForm;
            this.Width   = width - 2 * margin;
            this.Height  = height - 2 * margin;
            this.Top = margin;
            this.Left = margin;
            this.margin = margin;

            this.MouseDown += new MouseEventHandler(PanelMouseDown);
            this.MouseUp += new MouseEventHandler(PanelMouseUp);
            this.MouseMove += new MouseEventHandler(PanelMouseMove);

            dragStartPoint = new System.Drawing.Point(0, 0);
            itemList = new List<QuadTreePositionItem<IShape>>();

            drawingArea = new System.Drawing.Rectangle(1, 1, this.Width - 2, this.Height - 2);
            vectorRenderer = new GdiVectorRenderer();

            //backBuffer = new FastBitmap(this.ClientRectangle.Width,
             //   this.ClientRectangle.Height);

            // Menus
            shapeEditMenu = new ShapeEditMenu(mainForm);
            //geometryEditMenu = new EditGeometryMenu(mainForm);

            LayerManager lm = mainControler.LayerManager;

            lm.FirstLayerAdded += new LayerManager.LayerAddedDelegate(LayerManager_FirstLayerAdded);
            lm.LayerAdded += new LayerManager.LayerAddedDelegate(layerAdded);
            lm.ScaleChanged += new LayerManager.ScaleChangedDelegate(LayerManager_ScaleChanged);
            mainControler.SettingsLoaded += new MainControler.SettingsLoadedDelegate(mainControler_SettingsLoaded);
            lm.TransportPointLayer.ElementAdded += new TransportMultiPointLayer.ElementAddedDelagate(TransportLayer_ElementAdded);
            lm.TransportPolygonLayer.ElementAdded += new TransportPolygonLayer.ElementAddedDelegate(TransportLayer_ElementAdded);
            lm.TransportPolylineLayer.ElementAdded += new TransportPolylineLayer.ElementAddedDelagate(TransportLayer_ElementAdded);
            lm.ShapeRemoved += new LayerManager.ChangedDelegate(Model_ShapeRemoved);

            this.BackColor = System.Drawing.Color.White;

            toolTip = new GravurGIS.GUI.Controls.ToolTip();
            toolTip.Visible = false;

            this.Controls.Add(toolTip);

            northPointingMatrix = new Matrix2D();

            mainControler.WaypointAdded += new MainControler.WaypointAddedDelegate(mainControler_WaypointAdded);
            mainControler.TrackingStarted += new MainControler.WaypointAddedDelegate(mainControler_TrackingStarted);
            mainControler.TrackingStopped += new MainControler.NoParamDelegate(mainControler_TrackingStopped);
        }