Exemplo n.º 1
0
 private void load(ImageFinderOverlay imageFinder)
 {
     Height = 50;
     Action = () => imageFinder.ChangeToDirectory(target);
     AddRange(new Drawable[]
     {
         new SpriteIcon
         {
             Icon   = icon,
             Colour = Colour4.Black,
             Size   = new Vector2(35),
             X      = 10,
             Anchor = Anchor.CentreLeft,
             Origin = Anchor.CentreLeft,
         },
         new SpriteText
         {
             X        = 50,
             Anchor   = Anchor.CentreLeft,
             Origin   = Anchor.CentreLeft,
             Truncate = true,
             MaxWidth = ImageFinderOverlay.ENTRY_WIDTH - 50 - 10,
             Colour   = Colour4.Black,
             Text     = Name,
             Font     = new FontUsage(size: 30),
         },
     });
 }
Exemplo n.º 2
0
        private void load(TextureStore textures, APIController api, ImageFinderOverlay imageFinder, SplashInfoOverlay infoOverlay)
        {
            AutoSizeAxes = Axes.Both;
            Child        = new CircularContainer
            {
                BorderColour    = Colour4.Black,
                BorderThickness = 3.5f,
                Masking         = true,
                Size            = ButtonSize,
                Children        = new Drawable[]
                {
                    image = new Sprite
                    {
                        RelativeSizeAxes = Axes.Both,
                        Texture          = textures.Get($"https://gamestogo.company/api/Users/DownloadImage/{api.LocalUser.Value.ID}"),
                    },
                    hoverContainer = new Container
                    {
                        RelativeSizeAxes = Axes.Both,
                        Alpha            = 0,
                        Children         = new Drawable[]
                        {
                            new Box
                            {
                                RelativeSizeAxes = Axes.Both,
                                Colour           = Colour4.Black.Opacity(0.5f),
                            },
                            new SpriteIcon
                            {
                                Anchor = Anchor.Centre,
                                Origin = Anchor.BottomCentre,
                                Icon   = FontAwesome.Regular.Images,
                                Size   = new Vector2(60),
                            },
                            new SpriteText
                            {
                                Anchor = Anchor.Centre,
                                Origin = Anchor.TopCentre,
                                Font   = new FontUsage(size: 40),
                                Text   = @"Cambiar imagen",
                            },
                        },
                    },
                },
            };

            Action = () => imageFinder.Show(i =>
            {
                var req      = new UploadUserImageRequest(i);
                req.Success += () => image.Texture = Texture.FromStream(new MemoryStream(i));
                req.Failure += e => infoOverlay.Show(@"Falló como siempre", Colour4.DarkRed);
                api.Queue(req);
            });
        }
Exemplo n.º 3
0
        private void load(FrameworkConfigManager config, Storage store) //Esta es la manera en la que se acceden a elementos de las dependencias, su tipo y un nombre local.
        {
            Host.Window.Title = Name;
            Resources.AddStore(new DllResourceStore(@"GamesToGo.Editor.dll"));
            Textures.AddStore(Host.CreateTextureLoaderStore(new OnlineStore()));
            Textures.AddStore(Host.CreateTextureLoaderStore(new StorageBackedResourceStore(store)));
            Textures.AddExtension("");
            dependencies.CacheAs(dbContext = new Context(Host.Storage.GetDatabaseConnectionString(Name)));

            previewEvents();
            previewActions();
            previewArguments();

            try
            {
                dbContext.Database.Migrate();
            }
            catch
            {
                Host.Storage.DeleteDatabase(Name);

                try
                {
                    dbContext.Database.Migrate();
                }
                catch
                {
                    //Can't get a database going, bail!
                    Exit();
                }

                store.DeleteDirectory("files");
            }
            finally
            {
                foreach (var _ in dbContext.Projects)
                {
                }
                foreach (var _ in dbContext.Files)
                {
                }
                foreach (var _ in dbContext.Relations)
                {
                }
            }

            //Ventana sin bordes, sin requerir modo exclusivo.
            config.GetBindable <WindowMode>(FrameworkSetting.WindowMode).Value             = WindowMode.Borderless;
            config.GetBindable <FrameSync>(FrameworkSetting.FrameSync).Value               = FrameSync.VSync;
            config.GetBindable <ConfineMouseMode>(FrameworkSetting.ConfineMouseMode).Value = ConfineMouseMode.Never;

            //Para agregar un elemento a las dependencias se agrega a su caché. En este caso se agrega el "juego" como un GamesToGoEditor
            dependencies.CacheAs(this);

            base.Content.Add(content = new DrawSizePreservingFillContainer {
                TargetDrawSize = new Vector2(1920, 1080)
            });

            //Cargamos y agregamos nuestra pila de pantallas a la ventana.
            content.Add(stack = new ScreenStack {
                RelativeSizeAxes = Axes.Both, Depth = 0
            });

            content.Add(api = new APIController());

            dependencies.Cache(api);

            content.Add(splashOverlay = new SplashInfoOverlay(SplashPosition.Bottom, 80, 30)
            {
                Depth = -2
            });

            dependencies.Cache(splashOverlay);

            content.Add(imageFinder = new ImageFinderOverlay {
                Depth = -1
            });

            dependencies.Cache(imageFinder);

            content.Add(optionsOverlay = new MultipleOptionOverlay {
                Depth = -3
            });

            dependencies.Cache(optionsOverlay);
        }
Exemplo n.º 4
0
        private void load(ImageFinderOverlay imageFinder)
        {
            Height = ImageFinderOverlay.ENTRY_WIDTH;

            Add(new SpriteText
            {
                Y        = -10,
                Anchor   = Anchor.BottomCentre,
                Origin   = Anchor.BottomCentre,
                Font     = new FontUsage(size: 30),
                Truncate = true,
                Text     = Path.GetFileName(path),
                MaxWidth = ImageFinderOverlay.ENTRY_WIDTH - 20,
                Colour   = Colour4.Black,
            });

            Add(displayContainer = new Container
            {
                RelativeSizeAxes = Axes.Both,
                Anchor           = Anchor.TopCentre,
                Origin           = Anchor.TopCentre,
                Padding          = new MarginPadding(15)
                {
                    Bottom = 55
                },
            });

            Texture tex = null;

            try
            {
                var file = File.OpenRead(path);
                tex = Texture.FromStream(file);
                file.Dispose();
            }
            catch (Exception e)
            {
                Logger.Log(@$ "No se puede abrir {path}: {e.Message}", LoggingTarget.Runtime, LogLevel.Error);
            }

            if (tex == null)
            {
                Action = () => imageFinder.ShowError(@$ "No se puede abrir la imagen: {path}");
                displayContainer.Add(new SpriteIcon
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                    Size   = new Vector2(50),
                    Icon   = FontAwesome.Solid.File,
                    Colour = Colour4.Black,
                });
            }
            else
            {
                Action = () => imageFinder.SelectImage(path);
                displayContainer.Add(new Sprite
                {
                    RelativeSizeAxes = displayContainer.ChildSize.X > tex.Size.X && displayContainer.ChildSize.Y > tex.Size.Y ? Axes.None : Axes.Both,
                    Anchor           = Anchor.Centre,
                    Origin           = Anchor.Centre,
                    FillMode         = FillMode.Fit,
                    Texture          = tex,
                });
            }
        }