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), }, }); }
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); }); }
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); }
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, }); } }