private void load(OsuConfigManager config) { Children = new Drawable[] { new CheckBoxOption { LabelText = "Integrate with Yahoo! status display", Bindable = config.GetBindable<bool>(OsuConfig.YahooIntegration) }, new CheckBoxOption { LabelText = "Integrate with MSN Live status display", Bindable = config.GetBindable<bool>(OsuConfig.MsnIntegration) }, new CheckBoxOption { LabelText = "Automatically start osu!direct downloads", Bindable = config.GetBindable<bool>(OsuConfig.AutomaticDownload) }, new CheckBoxOption { LabelText = "Prefer no-video downloads", Bindable = config.GetBindable<bool>(OsuConfig.AutomaticDownloadNoVideo) }, }; }
private void load(OsuConfigManager config) { Children = new[] { new CheckBoxOption { LabelText = "Snow", Bindable = config.GetBindable<bool>(OsuConfig.MenuSnow) }, new CheckBoxOption { LabelText = "Parallax", Bindable = config.GetBindable<bool>(OsuConfig.MenuParallax) }, new CheckBoxOption { LabelText = "Menu tips", Bindable = config.GetBindable<bool>(OsuConfig.ShowMenuTips) }, new CheckBoxOption { LabelText = "Interface voices", Bindable = config.GetBindable<bool>(OsuConfig.MenuVoice) }, new CheckBoxOption { LabelText = "osu! music theme", Bindable = config.GetBindable<bool>(OsuConfig.MenuMusic) }, }; }
private void load(OsuConfigManager config) { // NOTE: Compatability mode omitted Children = new Drawable[] { // TODO: this needs to be a custom dropdown at some point new DropdownOption<FrameSync> { LabelText = "Frame limiter", Bindable = config.GetBindable<FrameSync>(OsuConfig.FrameSync) }, new CheckBoxOption { LabelText = "Show FPS counter", Bindable = config.GetBindable<bool>(OsuConfig.FpsCounter), }, new CheckBoxOption { LabelText = "Reduce dropped frames", Bindable = config.GetBindable<bool>(OsuConfig.ForceFrameFlush), }, new CheckBoxOption { LabelText = "Detect performance issues", Bindable = config.GetBindable<bool>(OsuConfig.DetectPerformanceIssues), }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SpriteText { Text = "Resolution: TODO dropdown" }, new CheckBoxOption { LabelText = "Fullscreen mode", Bindable = config.GetBindable<bool>(OsuConfig.Fullscreen), }, new CheckBoxOption { LabelText = "Letterboxing", Bindable = config.GetBindable<bool>(OsuConfig.Letterboxing), }, new SliderOption<int> { LabelText = "Horizontal position", Bindable = (BindableInt)config.GetBindable<int>(OsuConfig.LetterboxPositionX) }, new SliderOption<int> { LabelText = "Vertical position", Bindable = (BindableInt)config.GetBindable<int>(OsuConfig.LetterboxPositionY) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new CheckBoxOption { LabelText = "OS TabletPC support", Bindable = config.GetBindable<bool>(OsuConfig.Tablet) }, new CheckBoxOption { LabelText = "Wiimote/TaTaCon Drum Support", Bindable = config.GetBindable<bool>(OsuConfig.Wiimote) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new CheckBoxOption { LabelText = "Share your city location with others", Bindable = config.GetBindable<bool>(OsuConfig.DisplayCityLocation) }, new CheckBoxOption { LabelText = "Allow multiplayer game invites from all users", Bindable = config.GetBindable<bool>(OsuConfig.AllowPublicInvites) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SliderOption<double> { LabelText = "Display beatmaps from", Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.DisplayStarsMinimum) }, new SliderOption<double> { LabelText = "up to", Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.DisplayStarsMaximum) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new CheckBoxOption { LabelText = "Snaking in sliders", Bindable = config.GetBindable<bool>(OsuConfig.SnakingInSliders) }, new CheckBoxOption { LabelText = "Snaking out sliders", Bindable = config.GetBindable<bool>(OsuConfig.SnakingOutSliders) }, new CheckBoxOption { LabelText = "Background video", Bindable = config.GetBindable<bool>(OsuConfig.Video) }, new CheckBoxOption { LabelText = "Storyboards", Bindable = config.GetBindable<bool>(OsuConfig.ShowStoryboard) }, new CheckBoxOption { LabelText = "Combo bursts", Bindable = config.GetBindable<bool>(OsuConfig.ComboBurst) }, new CheckBoxOption { LabelText = "Hit lighting", Bindable = config.GetBindable<bool>(OsuConfig.HitLighting) }, new CheckBoxOption { LabelText = "Shaders", Bindable = config.GetBindable<bool>(OsuConfig.Bloom) }, new CheckBoxOption { LabelText = "Softening filter", Bindable = config.GetBindable<bool>(OsuConfig.BloomSoftening) }, new DropdownOption<ScreenshotFormat> { LabelText = "Screenshot", Bindable = config.GetBindable<ScreenshotFormat>(OsuConfig.ScreenshotFormat) } }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SpriteText { Text = "TODO: Dropdown" }, new CheckBoxOption { LabelText = "Prefer metadata in original language", Bindable = config.GetBindable<bool>(OsuConfig.ShowUnicode) }, new CheckBoxOption { LabelText = "Use alternative font for chat display", Bindable = config.GetBindable<bool>(OsuConfig.AlternativeChatFont) }, }; }
private void load(OsuConfigManager config) { Children = new[] { new CheckBoxOption { LabelText = "Show thumbnails", Bindable = config.GetBindable<bool>(OsuConfig.SongSelectThumbnails) } }; }
private void load(OsuConfigManager config, AudioManager audio) { Children = new Drawable[] { new SliderOption<double> { LabelText = "Master", Bindable = audio.Volume }, new SliderOption<double> { LabelText = "Effect", Bindable = audio.VolumeSample }, new SliderOption<double> { LabelText = "Music", Bindable = audio.VolumeTrack }, new CheckBoxOption { LabelText = "Ignore beatmap hitsounds", Bindable = config.GetBindable<bool>(OsuConfig.IgnoreBeatmapSamples) } }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SliderOption<int> { LabelText = "Background dim", Bindable = (BindableInt)config.GetBindable<int>(OsuConfig.DimLevel) }, new DropdownOption<ProgressBarType> { LabelText = "Progress display", Bindable = config.GetBindable<ProgressBarType>(OsuConfig.ProgressBarType) }, new DropdownOption<ScoreMeterType> { LabelText = "Score meter type", Bindable = config.GetBindable<ScoreMeterType>(OsuConfig.ScoreMeter) }, new SliderOption<double> { LabelText = "Score meter size", Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.ScoreMeterScale) }, new CheckBoxOption { LabelText = "Always show key overlay", Bindable = config.GetBindable<bool>(OsuConfig.KeyOverlay) }, new CheckBoxOption { LabelText = "Show approach circle on first \"Hidden\" object", Bindable = config.GetBindable<bool>(OsuConfig.HiddenShowFirstApproach) }, new CheckBoxOption { LabelText = "Scale osu!mania scroll speed with BPM", Bindable = config.GetBindable<bool>(OsuConfig.ManiaSpeedBPMScale) }, new CheckBoxOption { LabelText = "Remember osu!mania scroll speed per beatmap", Bindable = config.GetBindable<bool>(OsuConfig.UsePerBeatmapManiaSpeed) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SliderOption<int> { LabelText = "Universal Offset", Bindable = (BindableInt)config.GetBindable<int>(OsuConfig.Offset) }, new OsuButton { RelativeSizeAxes = Axes.X, Text = "Offset wizard" } }; }
private void load(OsuConfigManager config) { content.Spacing = new Vector2(0, 5); Children = new Drawable[] { new SpriteText { Text = "TODO: Skin preview textures" }, new SpriteText { Text = "Current skin: TODO dropdown" }, new OsuButton { RelativeSizeAxes = Axes.X, Text = "Preview gameplay", }, new OsuButton { RelativeSizeAxes = Axes.X, Text = "Open skin folder", }, new OsuButton { RelativeSizeAxes = Axes.X, Text = "Export as .osk", }, new CheckBoxOption { LabelText = "Ignore all beatmap skins", Bindable = config.GetBindable<bool>(OsuConfig.IgnoreBeatmapSkins) }, new CheckBoxOption { LabelText = "Use skin's sound samples", Bindable = config.GetBindable<bool>(OsuConfig.SkinSamples) }, new CheckBoxOption { LabelText = "Use Taiko skin for Taiko mode", Bindable = config.GetBindable<bool>(OsuConfig.UseTaikoSkin) }, new CheckBoxOption { LabelText = "Always use skin cursor", Bindable = config.GetBindable<bool>(OsuConfig.UseSkinCursor) }, new SliderOption<double> { LabelText = "Cursor size", Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.CursorSize) }, new CheckBoxOption { LabelText = "Automatic cursor size", Bindable = config.GetBindable<bool>(OsuConfig.AutomaticCursorSizing) }, }; }
private void load(BasicStorage storage, OsuConfigManager config) { Children = new Drawable[] { new DropdownOption<ReleaseStream> { LabelText = "Release stream", Bindable = config.GetBindable<ReleaseStream>(OsuConfig.ReleaseStream), }, new SpriteText { Text = "Your osu! is up to date" }, // TODO: map this to reality new OsuButton { RelativeSizeAxes = Axes.X, Text = "Open osu! folder", Action = () => storage.OpenInNativeExplorer(), } }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SliderOption<double> { LabelText = "Sensitivity", Bindable = (BindableDouble)config.GetBindable<double>(OsuConfig.MouseSpeed), }, new CheckBoxOption { LabelText = "Raw input", Bindable = config.GetBindable<bool>(OsuConfig.RawInput) }, new CheckBoxOption { LabelText = "Map absolute raw input to the osu! window", Bindable = config.GetBindable<bool>(OsuConfig.AbsoluteToOsuWindow) }, new DropdownOption<ConfineMouseMode> { LabelText = "Confine mouse cursor", Bindable = config.GetBindable<ConfineMouseMode>(OsuConfig.ConfineMouse), }, new CheckBoxOption { LabelText = "Disable mouse wheel in play mode", Bindable = config.GetBindable<bool>(OsuConfig.MouseDisableWheel) }, new CheckBoxOption { LabelText = "Disable mouse buttons in play mode", Bindable = config.GetBindable<bool>(OsuConfig.MouseDisableButtons) }, new CheckBoxOption { LabelText = "Cursor ripples", Bindable = config.GetBindable<bool>(OsuConfig.CursorRipple) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new CheckBoxOption { LabelText = "Filter offensive words", Bindable = config.GetBindable<bool>(OsuConfig.ChatFilter) }, new CheckBoxOption { LabelText = "Filter foreign characters", Bindable = config.GetBindable<bool>(OsuConfig.ChatRemoveForeign) }, new CheckBoxOption { LabelText = "Log private messages", Bindable = config.GetBindable<bool>(OsuConfig.LogPrivateMessages) }, new CheckBoxOption { LabelText = "Block private messages from non-friends", Bindable = config.GetBindable<bool>(OsuConfig.BlockNonFriendPM) }, new SpriteText { Text = "Chat ignore list (space-seperated list)" }, chatIgnoreList = new TextBoxOption { Height = 20, RelativeSizeAxes = Axes.X, Bindable = config.GetBindable<string>(OsuConfig.IgnoreList) }, new SpriteText { Text = "Chat highlight words (space-seperated list)" }, chatHighlightWords = new TextBoxOption { Height = 20, RelativeSizeAxes = Axes.X, Bindable = config.GetBindable<string>(OsuConfig.HighlightWords) }, }; }
private void load(OsuConfigManager config) { content.Spacing = new Vector2(0, 5); Children = new Drawable[] { new CheckBoxOption { LabelText = "Background video", Bindable = config.GetBindable<bool>(OsuConfig.VideoEditor) }, new CheckBoxOption { LabelText = "Always use default skin", Bindable = config.GetBindable<bool>(OsuConfig.EditorDefaultSkin) }, new CheckBoxOption { LabelText = "Snaking sliders", Bindable = config.GetBindable<bool>(OsuConfig.EditorSnakingSliders) }, new CheckBoxOption { LabelText = "Hit animations", Bindable = config.GetBindable<bool>(OsuConfig.EditorHitAnimations) }, new CheckBoxOption { LabelText = "Follow points", Bindable = config.GetBindable<bool>(OsuConfig.EditorFollowPoints) }, new CheckBoxOption { LabelText = "Stacking", Bindable = config.GetBindable<bool>(OsuConfig.EditorStacking) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new CheckBoxOption { LabelText = "Enable chat ticker", Bindable = config.GetBindable<bool>(OsuConfig.Ticker) }, new CheckBoxOption { LabelText = "Show a notification popup when someone says your name", Bindable = config.GetBindable<bool>(OsuConfig.ChatHighlightName) }, new CheckBoxOption { LabelText = "Show chat message notifications", Bindable = config.GetBindable<bool>(OsuConfig.ChatMessageNotification) }, new CheckBoxOption { LabelText = "Play a sound when someone says your name", Bindable = config.GetBindable<bool>(OsuConfig.ChatAudibleHighlight) }, new CheckBoxOption { LabelText = "Show notification popups instantly during gameplay", Bindable = config.GetBindable<bool>(OsuConfig.PopupDuringGameplay) }, new CheckBoxOption { LabelText = "Show notification popups when friends change status", Bindable = config.GetBindable<bool>(OsuConfig.NotifyFriends) }, }; }
private void load(OsuConfigManager config) { Children = new Drawable[] { new SettingsSlider <double> { LabelText = "Background dim", Current = config.GetBindable <double>(OsuSetting.DimLevel), KeyboardStep = 0.01f, DisplayAsPercentage = true }, new SettingsSlider <double> { LabelText = "Background blur", Current = config.GetBindable <double>(OsuSetting.BlurLevel), KeyboardStep = 0.01f, DisplayAsPercentage = true }, new SettingsCheckbox { LabelText = "Lighten playfield during breaks", Current = config.GetBindable <bool>(OsuSetting.LightenDuringBreaks) }, new SettingsEnumDropdown <HUDVisibilityMode> { LabelText = "HUD overlay visibility mode", Current = config.GetBindable <HUDVisibilityMode>(OsuSetting.HUDVisibilityMode) }, new SettingsCheckbox { LabelText = "Show difficulty graph on progress bar", Current = config.GetBindable <bool>(OsuSetting.ShowDifficultyGraph) }, new SettingsCheckbox { LabelText = "Show health display even when you can't fail", Current = config.GetBindable <bool>(OsuSetting.ShowHealthDisplayWhenCantFail), Keywords = new[] { "hp", "bar" } }, new SettingsCheckbox { LabelText = "Fade playfield to red when health is low", Current = config.GetBindable <bool>(OsuSetting.FadePlayfieldWhenHealthLow), }, new SettingsCheckbox { LabelText = "Always show key overlay", Current = config.GetBindable <bool>(OsuSetting.KeyOverlay) }, new SettingsCheckbox { LabelText = "Positional hitsounds", Current = config.GetBindable <bool>(OsuSetting.PositionalHitSounds) }, new SettingsCheckbox { LabelText = "Always play first combo break sound", Current = config.GetBindable <bool>(OsuSetting.AlwaysPlayFirstComboBreak) }, new SettingsEnumDropdown <ScoringMode> { LabelText = "Score display mode", Current = config.GetBindable <ScoringMode>(OsuSetting.ScoreDisplayMode), Keywords = new[] { "scoring" } }, }; if (RuntimeInfo.OS == RuntimeInfo.Platform.Windows) { Add(new SettingsCheckbox { LabelText = "Disable Windows key during gameplay", Current = config.GetBindable <bool>(OsuSetting.GameplayDisableWinKey) }); } }
private void load(OsuConfigManager config) { this.config = config; preferUnicode = config.GetBindable<bool>(OsuConfig.ShowUnicode); preferUnicode.ValueChanged += preferUnicode_changed; preferUnicode_changed(preferUnicode, null); }
private void load(OsuConfigManager config) { snakingIn = config.GetBindable<bool>(OsuConfig.SnakingInSliders); snakingOut = config.GetBindable<bool>(OsuConfig.SnakingOutSliders); int textureWidth = (int)PathWidth * 2; //initialise background var upload = new TextureUpload(textureWidth * 4); var bytes = upload.Data; const float aa_portion = 0.02f; const float border_portion = 0.18f; const float gradient_portion = 1 - border_portion; const float opacity_at_centre = 0.3f; const float opacity_at_edge = 0.8f; for (int i = 0; i < textureWidth; i++) { float progress = (float)i / (textureWidth - 1); if (progress <= border_portion) { bytes[i * 4] = 255; bytes[i * 4 + 1] = 255; bytes[i * 4 + 2] = 255; bytes[i * 4 + 3] = (byte)(Math.Min(progress / aa_portion, 1) * 255); } else { progress -= border_portion; bytes[i * 4] = (byte)(slider.Colour.R * 255); bytes[i * 4 + 1] = (byte)(slider.Colour.G * 255); bytes[i * 4 + 2] = (byte)(slider.Colour.B * 255); bytes[i * 4 + 3] = (byte)((opacity_at_edge - (opacity_at_edge - opacity_at_centre) * progress / gradient_portion) * (slider.Colour.A * 255)); } } var texture = new Texture(textureWidth, 1); texture.SetData(upload); path.Texture = texture; }
private void load(OsuConfigManager config) { mouseDisabled = config.GetBindable<bool>(OsuConfig.MouseDisableButtons) ?? new Bindable<bool>(false); }
private void load(OsuConfigManager config, OsuColour colours, TextureStore textures) { const float padding = 5; Children = new Drawable[] { channelSelectionContainer = new Container { RelativeSizeAxes = Axes.Both, Height = 1f - DEFAULT_HEIGHT, Masking = true, Children = new[] { ChannelSelectionOverlay = new ChannelSelectionOverlay { RelativeSizeAxes = Axes.Both, }, }, }, chatContainer = new Container { Name = @"chat container", Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft, RelativeSizeAxes = Axes.Both, Height = DEFAULT_HEIGHT, Children = new[] { new Container { Name = @"chat area", RelativeSizeAxes = Axes.Both, Padding = new MarginPadding { Top = TAB_AREA_HEIGHT }, Children = new Drawable[] { chatBackground = new Box { RelativeSizeAxes = Axes.Both, }, new OnlineViewContainer("Sign in to chat") { RelativeSizeAxes = Axes.Both, Children = new Drawable[] { currentChannelContainer = new Container <DrawableChannel> { RelativeSizeAxes = Axes.Both, Padding = new MarginPadding { Bottom = textbox_height }, }, new Container { Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft, RelativeSizeAxes = Axes.X, Height = textbox_height, Padding = new MarginPadding { Top = padding * 2, Bottom = padding * 2, Left = ChatLine.LEFT_PADDING + padding * 2, Right = padding * 2, }, Children = new Drawable[] { textbox = new FocusedTextBox { RelativeSizeAxes = Axes.Both, Height = 1, PlaceholderText = "type your message", ReleaseFocusOnCommit = false, HoldFocus = true, } } }, loading = new LoadingSpinner(), }, } } }, tabsArea = new TabsArea { Children = new Drawable[] { tabBackground = new Box { RelativeSizeAxes = Axes.Both, Colour = Colour4.Black, }, new Sprite { Texture = textures.Get(IconTexture), Anchor = Anchor.CentreLeft, Origin = Anchor.CentreLeft, Size = new Vector2(OverlayTitle.ICON_SIZE), Margin = new MarginPadding { Left = 10 }, }, ChannelTabControl = CreateChannelTabControl().With(d => { d.Anchor = Anchor.BottomLeft; d.Origin = Anchor.BottomLeft; d.RelativeSizeAxes = Axes.Both; d.OnRequestLeave = channelManager.LeaveChannel; d.IsSwitchable = true; }), } }, }, }, }; textbox.OnCommit += postMessage; ChannelTabControl.Current.ValueChanged += current => channelManager.CurrentChannel.Value = current.NewValue; ChannelTabControl.ChannelSelectorActive.ValueChanged += active => ChannelSelectionOverlay.State.Value = active.NewValue ? Visibility.Visible : Visibility.Hidden; ChannelSelectionOverlay.State.ValueChanged += state => { // Propagate the visibility state to ChannelSelectorActive ChannelTabControl.ChannelSelectorActive.Value = state.NewValue == Visibility.Visible; if (state.NewValue == Visibility.Visible) { textbox.HoldFocus = false; if (1f - ChatHeight.Value < channel_selection_min_height) { this.TransformBindableTo(ChatHeight, 1f - channel_selection_min_height, 800, Easing.OutQuint); } } else { textbox.HoldFocus = true; } }; ChannelSelectionOverlay.OnRequestJoin = channel => channelManager.JoinChannel(channel); ChannelSelectionOverlay.OnRequestLeave = channelManager.LeaveChannel; ChatHeight = config.GetBindable <float>(OsuSetting.ChatDisplayHeight); ChatHeight.BindValueChanged(height => { chatContainer.Height = height.NewValue; channelSelectionContainer.Height = 1f - height.NewValue; tabBackground.FadeTo(height.NewValue == 1f ? 1f : 0.8f, 200); }, true); chatBackground.Colour = colours.ChatBlue; loading.Show(); // This is a relatively expensive (and blocking) operation. // Scheduling it ensures that it won't be performed unless the user decides to open chat. // TODO: Refactor OsuFocusedOverlayContainer / OverlayContainer to support delayed content loading. Schedule(() => { // TODO: consider scheduling bindable callbacks to not perform when overlay is not present. channelManager.JoinedChannels.CollectionChanged += joinedChannelsChanged; foreach (Channel channel in channelManager.JoinedChannels) { ChannelTabControl.AddChannel(channel); } channelManager.AvailableChannels.CollectionChanged += availableChannelsChanged; availableChannelsChanged(null, null); currentChannel = channelManager.CurrentChannel.GetBoundCopy(); currentChannel.BindValueChanged(currentChannelChanged, true); }); }