Пример #1
0
        // Toggles between gid label (id) and detail label ( #id + model)
        public void ToggleUIInfo(ScreenLayoutType layoutType)
        {
            try
            {
                // Switch looks more neat
                switch (layoutType)
                {
                case ScreenLayoutType.Carousel:
                    nodeGridTextLabel.Enabled   = false;
                    nodeDetailTextLabel.Enabled = true;
                    break;

                case ScreenLayoutType.Grid:
                    nodeGridTextLabel.Enabled   = true;
                    nodeDetailTextLabel.Enabled = false;
                    break;
                }
            }
            catch (Exception e)
            {
                // An exception is sometimes thrown when switching layout mode.
                // -----------------------------------------------------------
                // Exception: Underlying native object was deleted for Handle=-1078990336. Node.SetEnabled
                // -----------------------------------------------------------
                // Attempting to access a node which is currently disabled? Either way,
                // catch the little troll and all is well.
                Debug.WriteLine("CameraScreen::ToggleUIInfo - " + e.Message);
            }
        }
Пример #2
0
        public bool Matches(PlaceholderModel placeholder, ref string description, ScreenLayoutType layout, List <Fix> fixes)
        {
            if (this.layout == RuleLayoutType.SINGLE && layout != ScreenLayoutType.SINGLE ||
                this.layout == RuleLayoutType.TRIPLE && layout != ScreenLayoutType.TRIPLE)
            {
                return(false);
            }

            // If no target specified, all targets are concerned.
            if (targets.Count > 0 && !targets.Contains(placeholder.Name))
            {
                return(false);
            }

            bool isMatch = false;

            foreach (var part in parts)
            {
                if (part.Matches(placeholder))
                {
                    isMatch = true;

                    description += (description.Length > 0 ? Environment.NewLine : "") + part.Description;
                    fixes.AddRange(part.Fixes);
                }
            }

            return(isMatch);
        }
        // Switches screen layout from carousel to grid and viceversa
        private void SwitchScreenLayout(ScreenLayoutType layoutType)
        {
            currentScreenLayout = screenLayout[layoutType];
            ToggleCameraUIInfo(layoutType);

            // Enable screen frames if going into grid mode
            // --------------------------------------------
            // Enable grid mode image streaming (streams all cameras at once) if going to grid mode,
            // otherwise turn it off
            if (layoutType == ScreenLayoutType.Grid)
            {
                ToggleCameraScreenFrame(true);
                EnableGridModeImageStreaming();
            }
            else
            {
                ToggleCameraScreenFrame(false);

                if (cameraStreamService == null)
                {
                    return;
                }

                DisableGridModeImageStreaming();
            }
        }
 public ImportBackgroundEventArgs(int eventId, string name, ScreenLayoutType layout, Rect cropArea, string filePath) : base(eventId)
 {
     Name     = name;
     Layout   = layout;
     FilePath = filePath;
     CropArea = cropArea;
 }
Пример #5
0
 public BackgroundModel(int id, string name, string fileName, BaseDirectoryType directoryType, bool IsBuiltInt, ScreenLayoutType layout)
 {
     Id              = id;
     Name            = name;
     FileName        = fileName;
     DirectoryType   = directoryType;
     this.IsBuiltInt = IsBuiltInt;
     Layout          = layout;
 }
Пример #6
0
 public RenderManager(Game game, StatusType statusType,
                      ScreenLayoutType screenLayoutType,
                      ObjectManager objectManager,
                      CameraManager <Camera3D> cameraManager) : base(game, statusType)
 {
     this.screenLayoutType = screenLayoutType;
     this.objectManager    = objectManager;
     this.cameraManager    = cameraManager;
 }
        // Handles camera info depending on view mode
        private void ToggleCameraUIInfo(ScreenLayoutType screenLayoutType)
        {
            List <DataModels.Camera> cameras = CameraStore.GetCameras();

            // Iterate over screens and toggle the info
            foreach (DataModels.Camera camera in cameras)
            {
                camera.Screen.ToggleUIInfo(screenLayoutType);
            }
        }
        public OurRenderManager(Microsoft.Xna.Framework.Game game, StatusType statusType,
                                ScreenLayoutType screenLayoutType,
                                OurObjectManager objectManager,
                                CameraManager <Camera3D> cameraManager) : base(game, statusType)
        {
            this.screenLayoutType = screenLayoutType;
            this.objectManager    = objectManager;
            this.cameraManager    = cameraManager;

            InitializeGraphics();
        }
Пример #9
0
        public ImageSource GetLayoutIcon(ScreenLayoutType layout)
        {
            string cacheKey = layout == ScreenLayoutType.SINGLE ? "ScreenLayoutType.SINGLE" : "ScreenLayoutType.TRIPLE";

            if (!cache.ContainsKey(cacheKey))
            {
                cache.Add(cacheKey, GetScreenLayoutIcon(layout));
            }

            return(cache[cacheKey]);
        }
        // Handles camera info depending on view mode
        private void ToggleCameraUIInfo(ScreenLayoutType screenLayoutType)
        {
            List <DataModels.Camera> cameras = CameraManager.GetCameras();

            if (cameras == null)
            {
                return;
            }

            // Iterate over screens and toggle the info
            foreach (DataModels.Camera camera in cameras)
            {
                if (camera.Screen != null)
                {
                    camera.Screen.ToggleUIInfo(screenLayoutType);
                }
            }
        }
Пример #11
0
        private BitmapSource GetScreenLayoutIcon(ScreenLayoutType layout)
        {
            string text = layout == ScreenLayoutType.SINGLE ? "S" : "T";

            DrawingVisual  drawingVisual  = new DrawingVisual();
            DrawingContext drawingContext = drawingVisual.RenderOpen();

            Typeface      typeface      = new Typeface(new FontFamily(), FontStyles.Normal, FontWeights.Normal, new FontStretch());
            FormattedText formattedText = new FormattedText(text, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, typeface, 13, new SolidColorBrush(Colors.DarkGray));

            drawingContext.DrawText(formattedText, new Point(4, 2));
            drawingContext.Close();

            RenderTargetBitmap image = new RenderTargetBitmap(16, 16, 96, 96, PixelFormats.Pbgra32);

            image.Render(drawingVisual);

            return(image);
        }
Пример #12
0
        public void Execute()
        {
            ScreenLayoutType currentLayout = screenModel.Layout;
            BackgroundModel  background    = backgroundCollection.Get(args.ItemId);

            screenModel.SetBackground(background);

            bool layoutFixed = false;

            if (currentLayout == ScreenLayoutType.TRIPLE && background.Layout == ScreenLayoutType.SINGLE)
            {
                layoutFixed = ScreenUtils.PromptUserIfOutsideOfCenterScreenPlaceholders(placeholderCollection, preferences, database);
            }

            if (!layoutFixed)
            {
                Injector.ExecuteCommand <ValidatePlaceholderCollectionCommand>(new CollectionEventArgs <PlaceholderModel>(0, placeholderCollection, placeholderCollection.Items.ToArray()));
            }
        }
Пример #13
0
        internal void TripleScreenChanged(ScreenLayoutType layout)
        {
            isTripleScreen = layout == ScreenLayoutType.TRIPLE;

            UpdateTripleScreenUI();
        }
Пример #14
0
        private void InitializeCameras(ScreenLayoutType screenLayoutType)
        {
            Viewport             viewport             = new Viewport(0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
            float                aspectRatio          = (float)this.resolution.X / this.resolution.Y;
            ProjectionParameters projectionParameters = new ProjectionParameters(MathHelper.PiOver4, aspectRatio, 1, 2500);

            if (screenLayoutType == ScreenLayoutType.FirstPerson)
            {
                AddFirstPersonCamera(viewport, projectionParameters);
            }
            else if (screenLayoutType == ScreenLayoutType.ThirdPerson)
            {
                AddThirdPersonCamera(viewport, projectionParameters);
            }
            else if (screenLayoutType == ScreenLayoutType.Flight)
            {
                AddFlightCamera(viewport, projectionParameters);
            }
            else if (screenLayoutType == ScreenLayoutType.Rail)
            {
                AddRailCamera(viewport, projectionParameters);
            }
            else if (screenLayoutType == ScreenLayoutType.Track)
            {
                AddTrack3DCamera(viewport, projectionParameters);
            }
            else if (screenLayoutType == ScreenLayoutType.Pip)
            {
                AddMainAndPipCamera(viewport, projectionParameters);
            }

            else if (screenLayoutType == ScreenLayoutType.Multi1x4) //splits the screen vertically x4
            {
                viewport = new Viewport(0, 0, (int)(graphics.PreferredBackBufferWidth / 4.0f), graphics.PreferredBackBufferHeight);
                AddFirstPersonCamera(viewport, projectionParameters);

                viewport.X += viewport.Width; //move the next camera over to start at x = 1/4 screen width
                AddRailCamera(viewport, projectionParameters);

                viewport.X += viewport.Width; //move the next camera over to start at x = 2/4 screen width
                AddTrack3DCamera(viewport, projectionParameters);

                viewport.X += viewport.Width; //move the next camera over to start at x = 3/4 screen width
                AddSecurityCamera(viewport, projectionParameters);
            }
            else if (screenLayoutType == ScreenLayoutType.Multi2x2) //splits the screen in 4 equal parts
            {
                //top left
                viewport = new Viewport(0, 0, (int)(graphics.PreferredBackBufferWidth / 2.0f), (int)(graphics.PreferredBackBufferHeight / 2.0f));
                AddFirstPersonCamera(viewport, projectionParameters);

                //top right
                viewport.X = viewport.Width;
                AddRailCamera(viewport, projectionParameters);

                ////bottom left
                viewport.X = 0;
                viewport.Y = viewport.Height;
                AddTrack3DCamera(viewport, projectionParameters);

                ////bottom right
                viewport.X = viewport.Width;
                viewport.Y = viewport.Height;
                AddSecurityCamera(viewport, projectionParameters);
            }
            else //in all other cases just add a security camera - saves us having to implement all enum options at the moment
            {
                AddSecurityCamera(viewport, projectionParameters);
            }
        }
Пример #15
0
        public static BackgroundModel NewBackgroundModel(int databaseId, string name, string filePath, BaseDirectoryType directoryType, bool IsBuiltInt, ScreenLayoutType layout)
        {
            if (databaseId > idCounter)
            {
                idCounter = databaseId;
            }

            return(new BackgroundModel(databaseId, name, filePath, directoryType, IsBuiltInt, layout));
        }
Пример #16
0
 public static BackgroundModel NewBackgroundModel(string name, string filePath, BaseDirectoryType directoryType, bool IsBuiltInt, ScreenLayoutType layout)
 {
     return(new BackgroundModel(++idCounter, name, filePath, directoryType, IsBuiltInt, layout));
 }
 public void Set(ScreenLayoutType type)
 {
     currentLayout = layouts[type];
 }