public YesNoMessageBox(StringId stringId, int depth) : base(DialogPositioning.Center, depth) { // TODO: Block0 = yes text, Block1 = no text. var elements = new VerticalStack( new Spacing(0, 5), new FixedSizePanel(231, 30, new UiTextBuilder(stringId)), new Spacing(0, 5), new HorizontalStack( new Spacing(11, 0), new Button(Base.SystemText.MsgBox_Yes) { DoubleFrame = true } .OnClick(() => OnButton(true)), new Spacing(8, 0), new Button(Base.SystemText.MsgBox_No) { DoubleFrame = true } .OnClick(() => OnButton(false)), new Spacing(10, 0) ), new Spacing(0, 5) ); var horizontalPad = new HorizontalStack( new Spacing(6, 0), elements, new Spacing(6, 0) ); AttachChild(new DialogFrame(horizontalPad)); }
/*---------------------------------------------\ |/--------\2/---------------------------------\|^5 || | | Take how many items? || ||ITEM PIC| | || ||1:1 size| | 151x30(inner) || |\--------/ | || |^6 \---------------------------------/| | ^5 7^| | [<] [=======[ 3 ]==============] [>] | | [ OK ] ^4 | \---------------------------------------------*///^5 public ItemQuantityDialog(int depth, StringId stringId, AssetId id, int max, bool useTenths, Action <int> continuation) : base(DialogPositioning.Center, depth) { _continuation = continuation; IUiElement itemPic = new UiSpriteElement <AssetId>(id) { SubId = id.Type == AssetType.ItemGraphics ? id.Id : 0 }; var topStack = new HorizontalStack( new NonGreedy(new GroupingFrame(itemPic)), new Spacing(2, 0), new GroupingFrame(new FixedSize(151, 30, new UiTextBuilder(stringId))) ); Func <int, string> formatFunc = useTenths ? (Func <int, string>)FormatTenths : FormatUnits; var stack = new VerticalStack( topStack, new Spacing(0, 5), new FixedSize(106, 14, new Slider(() => _quantity, x => _quantity = x, 0, max, formatFunc)), new Spacing(0, 4), new FixedSize(52, 13, new Button(SystemTextId.MsgBox_OK) { DoubleFrame = true }.OnClick(Close)) ); AttachChild(new DialogFrame(new Padding(stack, 6)) { Background = DialogFrameBackgroundStyle.MainMenuPattern }); }
public override void InitElements() { base.InitElements(); SetBackground(0, 0, 0, 0); SetAlignment(ItemAlignment.HCenter); SetBorder(new Border(Color.DimGray, new CornerRadius(10), 1)); SetSize(280, 30); var layout = new HorizontalStack(); layout.SetBackground(Color.FromArgb(0, 0, 0, 0)); var name = new Label(Name); name.SetStyle(Styles.GetLabelStyle()); name.SetTextAlignment(ItemAlignment.Left, ItemAlignment.VCenter); name.SetPadding(5); name.SetWidth(Name.Length * 8); name.SetWidthPolicy(SizePolicy.Fixed); _text.SetAlignment(ItemAlignment.Right, ItemAlignment.VCenter); _text.SetPadding(10, 0, 5, 0); _text.SetMaxWidth(250); _text.SetBackground(255, 255, 255, 100); _text.SetForeground(Color.White); _text.SetBorder(new Border(Color.DimGray, new CornerRadius(10), 1)); _text.SetWidthPolicy(SizePolicy.Expand); AddItem(layout); layout.AddItems(name, _text); }
public InventoryMerchantPane(MerchantId id) { var slotSpans = new IUiElement[InventoryHeight]; for (int j = 0; j < InventoryHeight; j++) { var slotsInRow = new IUiElement[InventoryWidth]; for (int i = 0; i < InventoryWidth; i++) { int index = j * InventoryWidth + i; slotsInRow[i] = new LogicalInventorySlot(new InventorySlotId( InventoryType.Merchant, (ushort)id, (ItemSlotId)((int)ItemSlotId.Slot0 + index))); } slotSpans[j] = new HorizontalStack(slotsInRow); } var slotStack = new VerticalStack(slotSpans); var slotHalfFrame = new ButtonFrame(slotStack) { Theme = ButtonTheme.InventoryOuterFrame, Padding = -1 }; var header = new Header(new StringId(AssetType.SystemText, 0, (int)SystemTextId.Shop_Merchant)); var stack = new VerticalStack(header, slotHalfFrame) { Greedy = false }; AttachChild(stack); }
public TextDialog(IText text, SmallPortraitId?portraitId = null, int depth = 0) : base(DialogPositioning.Top, depth) { On <DismissMessageEvent>(_ => Close()); On <UiLeftClickEvent>(e => { Close(); e.Propagating = false; }); On <UiRightClickEvent>(e => { Close(); e.Propagating = false; }); On <CloseWindowEvent>(e => Close()); var textSection = new UiText(text); var padding = new Padding(textSection, 3, 7); UiElement content; if (portraitId.HasValue) { var portrait = new FixedSize(36, 38, new ButtonFrame(new UiSpriteElement <SmallPortraitId>(portraitId.Value)) { State = ButtonState.Pressed, Padding = 0 }); content = new HorizontalStack(new CentreContent(portrait), padding); } else { content = padding; } var stack = new FixedWidth(320, content); AttachChild(new DialogFrame(stack) { Background = DialogFrameBackgroundStyle.DarkTint }); }
public InventoryCharacterPane(PartyCharacterId activeCharacter, Func <InventoryPage> getPage) { _getPage = getPage; var page = _getPage(); _summaryButton = new Button(SummaryButtonId, "I") { DoubleFrame = true, IsPressed = page == InventoryPage.Summary }; _statsButton = new Button(StatsButtonId, "II") { DoubleFrame = true, IsPressed = page == InventoryPage.Stats }; _miscButton = new Button(MiscButtonId, "III") { DoubleFrame = true, IsPressed = page == InventoryPage.Misc }; var buttonStack = new HorizontalStack( new Padding(84, 0), new FixedSize(16, 15, _summaryButton), new FixedSize(16, 15, _statsButton), new FixedSize(16, 15, _miscButton)); var stack = new VerticalStack( new InventoryActivePageSelector(activeCharacter, getPage), new Padding(0, 4), buttonStack ); Children.Add(stack); }
public static HorizontalStack GetToolbar() { var toolbar = new HorizontalStack(); toolbar.SetStyle(Styles.GetToolbarStyle()); toolbar.SetContentAlignment(ItemAlignment.Bottom); return(toolbar); }
public static HorizontalStack GetToolBarLayout() { HorizontalStack layout = new HorizontalStack(); layout.SetHeightPolicy(SizePolicy.Fixed); layout.SetHeight(40); layout.SetBackground(35, 35, 35); layout.SetSpacing(3, 0); layout.SetPadding(10, 0, 0, 0); return(layout); }
public static HorizontalStack GetFixedHorizontalStack(int height) { HorizontalStack layout = new HorizontalStack(); layout.SetContentAlignment(ItemAlignment.HCenter); layout.SetSpacing(15, 0); layout.SetHeightPolicy(SizePolicy.Fixed); layout.SetHeight(30); return(layout); }
public static HorizontalStack GetToolbarLayout() { HorizontalStack layout = new HorizontalStack(); layout.SetContentAlignment(ItemAlignment.HCenter); layout.SetAlignment(ItemAlignment.Bottom, ItemAlignment.Left); layout.SetSizePolicy(SizePolicy.Expand, SizePolicy.Fixed); layout.SetHeight(30); layout.SetSpacing(5, 0); layout.SetMargin(20, 0, 20, 20); return(layout); }
internal static HorizontalStack GetToolbar() { HorizontalStack toolbar = new HorizontalStack(); toolbar.SetHeightPolicy(SizePolicy.Fixed); toolbar.SetHeight(40); toolbar.SetBackground(55, 55, 55); toolbar.SetPadding(10, 0, 0, 0); toolbar.SetSpacing(5); return(toolbar); }
public static HorizontalStack GetHorizontalButtonLayout() { var layout = new HorizontalStack(); //layout.SetStyle(Styles.GetHorizontalButtonLayoutStyle()); layout.SetMinWidth(300); layout.SetMaxHeight(50); layout.SetContentAlignment(ItemAlignment.HCenter); layout.SetSizePolicy(SizePolicy.Expand, SizePolicy.Fixed); layout.SetHeight(60); layout.SetSpacing(20); return(layout); }
public InventoryMidPane(PartyCharacterId activeCharacter, InventoryConfig.PlayerInventory config) { var background = new FixedPositionStack(); background.Add(new UiSprite <FullBodyPictureId>((FullBodyPictureId)activeCharacter), 1, -3); Children.Add(background); var bodyStack = new FixedPositionStack(); foreach (var bodyPart in config) { var itemSlotId = bodyPart.Key; var position = bodyPart.Value; bodyStack.Add(new InventoryBodyPart(activeCharacter, itemSlotId), (int)position.X, (int)position.Y); } var frame = new ButtonFrame(bodyStack) { Theme = new FrameTheme() }; var labelStack = new HorizontalStack( new InventoryOffensiveLabel(activeCharacter), new InventoryWeightLabel(activeCharacter), new InventoryDefensiveLabel(activeCharacter) ); var mainStack = new VerticalStack( new Header(new DynamicText(() => { var member = Resolve <IParty>()[activeCharacter]; var settings = Resolve <ISettings>(); if (member == null) { return(new TextBlock[0]); } var name = member.Apparent.GetName(settings.Gameplay.Language); return(new[] { new TextBlock(name) { Alignment = TextAlignment.Center } }); })), new HorizontalStack( new Padding(3, 0), frame, new Padding(3, 0)), labelStack ); Children.Add(mainStack); }
public override void InitWindow() { SetParameters(this.GetType().Name, this.GetType().Name, 800, 800, false); IsCentered = true; TitleBar titleBar = new TitleBar(this.GetType().Name); OpenGLLayer ogl = new OpenGLLayer(); ogl.SetMargin(0, titleBar.GetHeight(), 0, 0); HorizontalStack toolbar = Items.GetToolbarLayout(); ImagedButton btnRotateLeft = Items.GetImagedButton(EmbeddedImage.ArrowUp, -90); ImagedButton btnRotateRight = Items.GetImagedButton(EmbeddedImage.ArrowUp, 90); HorizontalSlider zoom = Items.GetSlider(); ImagedButton btnRestoreView = Items.GetImagedButton(EmbeddedImage.Refresh, 0); // adding AddItems(titleBar, ogl); ogl.AddItems(toolbar); toolbar.AddItems(btnRotateLeft, btnRotateRight, zoom, btnRestoreView); // assign events btnRestoreView.EventMousePress += (sender, args) => { ogl.RestoreView(); }; btnRotateLeft.EventMousePress += (sender, args) => { ogl.Rotate(KeyCode.Left); }; btnRotateRight.EventMousePress += (sender, args) => { ogl.Rotate(KeyCode.Right); }; zoom.EventValueChanged += (sender) => { ogl.SetZoom(zoom.GetCurrentValue()); }; // Set focus ogl.SetFocus(); zoom.SetCurrentValue(3); }
public override void InitWindow() { SetParameters( nameof(GraphView), nameof(GraphView), 800, 800, false); SetMinSize(1000, 1000); SetBackground(45, 45, 45); var title = UiElements.GetTitleBar(); var mainLayout = UiElements.GetMainLayout(); var buttonsList = UiElements.GetButtonsList(); _toolbar = UiElements.GetToolbar(); var leftLayoutItem = UiElements.GetLeftLayoutItem(); var tabView = UiElements.GetTabView(); var logTextArea = UiElements.GetLogTextArea(); _imageArea = new ImageItem( new Bitmap( "/home/nick/RiderProjects/DiscreteMaths/Graphs/Graphs/notGenerated.png")); _imageArea.SetMaxWidth(1024); _imageArea.SetMaxHeight(1024); _imageArea.KeepAspectRatio(true); _tabView = tabView; _buttonsList = buttonsList; _logTextArea = logTextArea; _logTextArea.SetText("Log Journal" + Environment.NewLine); _logTextArea.SetFont(new Font(FontFamily.GenericMonospace, 14, FontStyle.Bold)); AddItems(title, mainLayout); mainLayout.AssignLeftItem(leftLayoutItem); mainLayout.AssignRightItem(buttonsList); leftLayoutItem.AddItems(tabView, _toolbar); tabView.AddTabs(new Tab("Graph"), new Tab("Log")); tabView.AddItemToTabByName("Log", _logTextArea); tabView.AddItemToTabByName("Graph", _imageArea); PopulateButtonsList(); PopulateToolbar(); }
public override void InitElements() { border = new Ellipse(); contact = new Label(); signal = new BlankItem(); //contact image border border.SetBackground(114, 137, 208); border.SetSize(30, 30); border.SetSizePolicy(SizePolicy.Fixed, SizePolicy.Fixed); border.SetAlignment(ItemAlignment.VCenter | ItemAlignment.Left); //contact name contact.SetText(name); contact.SetFont(new Font(DefaultsService.GetDefaultFont().FontFamily, 14, FontStyle.Bold)); contact.SetForeground(Color.White); contact.SetSizePolicy(SizePolicy.Expand, SizePolicy.Expand); contact.SetMargin(40, 0, 0, 0); contact.SetAlignment(ItemAlignment.Top | ItemAlignment.Left); //signal signal.SetBackground(67, 181, 129); signal.SetSize(14, 14); signal.SetBorderFill(Color.FromArgb(255, 66, 70, 77)); signal.SetBorderThickness(2); signal.SetBorderRadius(7); signal.SetAlignment(ItemAlignment.Left | ItemAlignment.Bottom); signal.SetMargin(18, 0, 0, 3); //buttons bar HorizontalStack bar = new HorizontalStack(); bar.SetMargin(120, 0, 0, 0); bar.SetSpacing(5, 0); //adding AddItems(border, signal, contact, bar); bar.AddItems( InfinityItemsBox.GetUserBarButton(), InfinityItemsBox.GetUserBarButton(), InfinityItemsBox.GetUserBarButton() ); }
public override void InitWindow() { // apply new style for ToolTipItem InitToolTipStyle(); // window attr SetParameters("MainWindow", "ToolTipExample", 800, 450); IsCentered = true; // create toolbars HorizontalStack toolBar = ItemsFactory.GetToolBarLayout(); VerticalStack sideBar = ItemsFactory.GetSideBarLayout(); // add items to window AddItems( toolBar, sideBar, ItemsFactory.GetAreaForPermanentToolTip() ); // 1. add items with standard tooltip to ToolBar toolBar.AddItems( ItemsFactory.GetTool(DefaultsService.GetDefaultImage(EmbeddedImage.File, EmbeddedImageSize.Size32x32), "Create a new file"), ItemsFactory.GetTool(DefaultsService.GetDefaultImage(EmbeddedImage.Folder, EmbeddedImageSize.Size32x32), "Create a new folder"), ItemsFactory.GetTool(DefaultsService.GetDefaultImage(EmbeddedImage.RecycleBin, EmbeddedImageSize.Size32x32), "Delete"), ItemsFactory.GetTool(DefaultsService.GetDefaultImage(EmbeddedImage.Refresh, EmbeddedImageSize.Size32x32), "Refresh") ); // 2. add items with MyToolTip to sideBar sideBar.AddItems( ItemsFactory.GetSideTool(DefaultsService.GetDefaultImage(EmbeddedImage.File, EmbeddedImageSize.Size32x32), new MyToolTip(this, "Create new file:\nCreates a new file in the root directory.")), ItemsFactory.GetHorizontalDivider(), // divider ItemsFactory.GetSideTool(DefaultsService.GetDefaultImage(EmbeddedImage.Folder, EmbeddedImageSize.Size32x32), new MyToolTip(this, "Create new folder:\nCreates a new folder in the root directory.")), ItemsFactory.GetHorizontalDivider(), // divider ItemsFactory.GetSideTool(DefaultsService.GetDefaultImage(EmbeddedImage.RecycleBin, EmbeddedImageSize.Size32x32), new MyToolTip(this, "Delete:\nDelete selected file entry in root directory.")), ItemsFactory.GetHorizontalDivider(), // divider ItemsFactory.GetSideTool(DefaultsService.GetDefaultImage(EmbeddedImage.Refresh, EmbeddedImageSize.Size32x32), new MyToolTip(this, "Refresh:\nUpdates the root directory.")) ); }
public InventorySummaryPage(PartyCharacterId activeMember) { _activeMember = activeMember; var background = new FixedPosition( new Rectangle(0, 26, 135, 144), new UiSprite <SmallPortraitId>((SmallPortraitId)(int)activeMember)); var summarySource = new DynamicText(BuildSummary); var pointsSource = new DynamicText(BuildPoints); var pointsHeadingSource = new DynamicText(BuildPointsHeadings); var frameTheme = new FrameTheme(); var stack = new HorizontalStack( new Padding(4, 0), new VerticalStack( new Padding(0, 4), new ButtonFrame(new FixedSize(125, 41, new Text(summarySource))) { Theme = frameTheme, State = ButtonState.Pressed }, new Padding(0, 80), new ButtonFrame( new FixedSize(125, 41, new HorizontalStack( new Text(pointsHeadingSource), new Padding(5, 0), new FixedSize(41, 41, new Text(pointsSource) )))) { Theme = frameTheme, State = ButtonState.Pressed } ), new Padding(4, 0) ); Children.Add(background); Children.Add(stack); }
public override void InitWindow() { SetParameters(nameof(CharacterEditor), nameof(CharacterEditor), 1000, 600, false); IsCentered = true; //title TitleBar title = new TitleBar(nameof(CharacterEditor)); title.SetIcon( DefaultsService.GetDefaultImage(EmbeddedImage.User, EmbeddedImageSize.Size32x32), 20, 20); //layout VerticalStack layout = ItemFactory.GetStandardLayout(title.GetHeight()); ////////////////////////////////////////////////////////////////////////////// HorizontalStack toolbar = ItemFactory.GetToolbar(); VerticalSplitArea splitArea = ItemFactory.GetSplitArea(); BtnGenerate = ItemFactory.GetToolbarButton(); BtnSave = ItemFactory.GetToolbarButton(); NumberCount = ItemFactory.GetSpinItem(); ItemText.SetStyle(StyleFactory.GetTextAreaStyle()); ////////////////////////////////////////////////////////////////////////////// //adding AddItems(title, layout); layout.AddItems(toolbar, splitArea); splitArea.AssignLeftItem(ItemList); splitArea.AssignRightItem(ItemText); toolbar.AddItems(BtnGenerate, BtnSave, ItemFactory.GetVerticalDivider(), NumberCount); BtnGenerate.AddItem(ItemFactory.GetToolbarIcon( DefaultsService.GetDefaultImage(EmbeddedImage.Refresh, EmbeddedImageSize.Size32x32) )); BtnSave.AddItem(ItemFactory.GetToolbarIcon( DefaultsService.GetDefaultImage(EmbeddedImage.Diskette, EmbeddedImageSize.Size32x32) )); }
public InventorySummaryPage(PartyMemberId activeMember) { _activeMember = activeMember; var summarySource = new DynamicText(BuildSummary); var pointsSource = new DynamicText(BuildPoints); var pointsHeadingSource = new DynamicText(BuildPointsHeadings); var stack = new HorizontalStack( new Spacing(4, 0), new VerticalStack( new Spacing(0, 4), new GroupingFrame(new FixedSize(125, 41, new UiText(summarySource))), new Spacing(0, 80), new GroupingFrame( new FixedSize(125, 41, new HorizontalStack( new UiText(pointsHeadingSource), new Spacing(5, 0), new FixedSize(41, 41, new UiText(pointsSource) )))) ), new Spacing(4, 0) ); _portrait = new UiSpriteElement(SpriteId.None) { Flags = SpriteFlags.GradientPixels }; AttachChild(new LayerStack( new FixedPosition(new Rectangle(0, 25, 135, 145), _portrait), stack)); }
/*---------------- item name (yellow) ---------------\ |/--------------\ Type Normal | || | Weight 1100 g | || | Damage 0 | || ITEM PIC | Protection 1 | || | -----------------------------------| || | Can be used by: | |\--------------/ Pilot Oqulo Kamulos | | Scientist Warrior | | Druid | | Enlightened One | | Technician | \---------------------------------------------------*/ public InventoryDetailsDialog(ItemData item) : base(DialogPositioning.Center, 1) { if (item == null) { throw new ArgumentNullException(nameof(item)); } var heading = new Header(item.Name); var itemPic = new UiSpriteElement(item.Icon) { SubId = item.IconSubId, Flags = SpriteFlags.GradientPixels }; var picFrame = new FixedSize(64, 64, new GroupingFrame(itemPic)) { Position = DialogPositioning.Top }; var attribStack = new HorizontalStack( new VerticalStack( new UiTextBuilder(Base.SystemText.Examine1_Type).NoWrap(), new UiTextBuilder(Base.SystemText.Examine1_Weight).NoWrap(), new UiTextBuilder(Base.SystemText.Examine1_Damage).NoWrap(), new UiTextBuilder(Base.SystemText.Examine1_Protection).NoWrap() ), new Spacing(2, 0), new VerticalStack( new UiTextBuilder(Describe.DescribeItemType(item.TypeId)).NoWrap(), new SimpleText($"{item.Weight} g").NoWrap(), // i18n Literal String new SimpleText(item.Damage.ToString(CultureInfo.InvariantCulture)).NoWrap(), // i18n new SimpleText(item.Protection.ToString(CultureInfo.InvariantCulture)).NoWrap() // i18n ) ); var classElements = Enum.GetValues(typeof(PlayerClass)) .Cast <PlayerClass>() .Where(x => item.Class.IsAllowed(x)) .Select(x => (IUiElement) new UiTextBuilder(Describe.DescribePlayerClass(x)).NoWrap()); var classStack = new HorizontalStack( new VerticalStack(classElements.Take(5).ToArray()), new Spacing(2, 0), new VerticalStack(classElements.Skip(5).ToArray()) ); var stack = new VerticalStack( heading, new Spacing(0, 2), new HorizontalStack( picFrame, new Spacing(4, 0), new VerticalStack( attribStack, new Spacing(0, 2), new Divider(CommonColor.Yellow4), new Spacing(0, 2), new UiTextBuilder((TextId)Base.SystemText.Misc_CanBeUsedBy), classStack ) ), new Spacing(0, 2), new FixedSize(52, 13, new Button(Base.SystemText.MsgBox_OK) { DoubleFrame = true }.OnClick(Close)) ); AttachChild(new DialogFrame(new Padding(stack, 6)) { Background = DialogFrameBackgroundStyle.MainMenuPattern }); }
public override void InitWindow() { //window init SetParameters(nameof(MainWindow), nameof(MainWindow), 1300, 840, false); SetMinSize(500, 300); SetBackground(32, 34, 37); //title title = new TitleBar("Mimic"); title.SetStyle(Styles.GetTitleBarStyle()); HorizontalStack h_stack = new HorizontalStack(); h_stack.SetMargin(0, 22, 0, 0); h_stack.SetSpacing(0, 0); //left block VerticalStack left = new VerticalStack();//70 left.SetWidth(70); left.SetWidthPolicy(SizePolicy.Fixed); left.SetPadding(2, 0, 2, 2); left.SetSpacing(0, 10); SpaceVIL.Rectangle line = new SpaceVIL.Rectangle(); line.SetBackground(32, 34, 37); line.SetSizePolicy(SizePolicy.Expand, SizePolicy.Fixed); line.SetHeight(1); line.SetShadow(2, 0, 2, Color.FromArgb(150, 0, 0, 0)); line.SetMargin(8, 0, 8, 0); ButtonCore mimic_icon = new ButtonCore("M"); mimic_icon.SetFont(new Font(DefaultsService.GetDefaultFont().FontFamily, 30, FontStyle.Bold)); mimic_icon.SetSize(50, 50); mimic_icon.SetBackground(114, 137, 208); mimic_icon.SetAlignment(ItemAlignment.Top | ItemAlignment.HCenter); mimic_icon.SetBorderRadius(new CornerRadius(15)); SpaceVIL.Rectangle divider = new SpaceVIL.Rectangle(); divider.SetBackground(47, 49, 54); divider.SetSizePolicy(SizePolicy.Expand, SizePolicy.Fixed); divider.SetHeight(2); divider.SetMargin(15, 0, 15, 0); ButtonToggle notes_area_btn = new ButtonToggle("N"); notes_area_btn.SetFont(new Font(DefaultsService.GetDefaultFont().FontFamily, 30, FontStyle.Bold)); notes_area_btn.SetSize(50, 50); notes_area_btn.SetBackground(Color.Transparent); notes_area_btn.SetForeground(100, 101, 105); notes_area_btn.SetAlignment(ItemAlignment.Top | ItemAlignment.HCenter); notes_area_btn.SetBorderRadius(new CornerRadius(15)); notes_area_btn.SetBorderFill(100, 101, 105); notes_area_btn.SetBorderThickness(1); notes_area_btn.EventMouseClick += (sender, args) => { if (notes_area_btn.IsToggled()) { freeNotes.SetVisible(true); conversation.SetVisible(false); freeNotes.GetParent().Update(GeometryEventType.ResizeHeight); } else { freeNotes.SetVisible(false); conversation.SetVisible(true); freeNotes.GetParent().Update(GeometryEventType.ResizeHeight); } }; ButtonCore add_btn = new ButtonCore(); add_btn.SetSize(50, 50); add_btn.SetBackground(Color.Transparent); add_btn.SetAlignment(ItemAlignment.Top | ItemAlignment.HCenter); add_btn.SetBorderRadius(new CornerRadius(25)); add_btn.SetBorderFill(100, 101, 105); add_btn.SetBorderThickness(1); add_btn.SetToolTip("Add a new friend."); add_btn.EventMouseClick += (sender, args) => { AddMenuDialog dialog = new AddMenuDialog(); dialog.OnCloseDialog += () => { string result = dialog.InputResult; if (!result.Equals(String.Empty)) { contacts_bar.AddItem(InfinityItemsBox.GetVisualContact(result, input_message)); } }; dialog.Show(this); }; CustomShape plus = new CustomShape(); plus.SetBackground(100, 101, 105); plus.SetSize(20, 20); plus.SetAlignment(ItemAlignment.VCenter | ItemAlignment.HCenter); plus.SetTriangles(GraphicsMathService.GetCross(20, 20, 2, 0)); //middleblock VerticalStack middle = new VerticalStack();//240 middle.SetStyle(Styles.GetCommonContainerStyle()); middle.SetWidth(240); middle.SetWidthPolicy(SizePolicy.Fixed); middle.SetBackground(47, 49, 54); middle.SetBorderRadius(new CornerRadius(6, 0, 6, 0)); Frame search_bar = new Frame(); search_bar.SetBorderRadius(new CornerRadius(6, 0, 0, 0)); search_bar.SetBackground(47, 49, 54); search_bar.SetHeight(48); search_bar.SetPadding(15, 0, 15, 0); search_bar.SetHeightPolicy(SizePolicy.Fixed); search_bar.SetShadow(2, 0, 2, Color.FromArgb(150, 0, 0, 0)); contacts_bar = new ListBox(); contacts_bar.SetPadding(8, 8, 8, 8); contacts_bar.SetBackground(Color.Transparent); contacts_bar.SetHScrollBarVisible(ScrollBarVisibility.Never); contacts_bar.SetVScrollBarVisible(ScrollBarVisibility.Never); contacts_bar.SetSelectionVisible(false); Frame user_bar = new Frame(); user_bar.SetBorderRadius(new CornerRadius(0, 0, 6, 0)); user_bar.SetBackground(42, 44, 49); user_bar.SetHeight(48); user_bar.SetPadding(15, 0, 15, 0); user_bar.SetHeightPolicy(SizePolicy.Fixed); user_bar.SetAlignment(ItemAlignment.Bottom); TextEdit search = new TextEdit(); search.SetPadding(10, 0, 10, 0); search.SetFont(DefaultsService.GetDefaultFont(12)); search.SetForeground(150, 150, 150); search.SetSubstrateText("Find or start conversation"); search.SetSubstrateFontSize(12); search.SetSubstrateFontStyle(FontStyle.Regular); search.SetSubstrateForeground(100, 100, 100); search.SetHeight(32); search.SetBackground(37, 39, 43); search.SetAlignment(ItemAlignment.HCenter, ItemAlignment.VCenter); search.SetBorderRadius(4); search.SetBorderThickness(1); search.SetBorderFill(32, 34, 37); //right block VerticalStack right = new VerticalStack();//expand right.SetStyle(Styles.GetCommonContainerStyle()); right.SetSpacing(0, 2); HorizontalStack conversation_bar = new HorizontalStack(); conversation_bar.SetBackground(54, 57, 63); conversation_bar.SetHeight(48); conversation_bar.SetHeightPolicy(SizePolicy.Fixed); conversation_bar.SetPadding(10, 0, 0, 0); conversation_bar.SetSpacing(5, 0); conversation_bar.SetShadow(2, 0, 2, Color.FromArgb(150, 0, 0, 0)); freeNotes = new FreeArea(); freeNotes.SetVisible(false); freeNotes.SetBackground(Color.FromArgb(5, 255, 255, 255)); conversation = new ListBox(); conversation.SetPadding(4, 4, 4, 4); conversation.SetBackground(Color.Transparent); conversation.SetHScrollBarVisible(ScrollBarVisibility.Never); conversation.GetArea().SetPadding(16, 10, 2, 2); conversation.SetSelectionVisible(false); VerticalScrollBar vs = conversation.VScrollBar; vs.SetWidth(16); vs.SetBorderThickness(4); vs.SetBorderFill(54, 57, 63); vs.SetBorderRadius(new CornerRadius(9)); vs.SetArrowsVisible(false); vs.SetBackground(47, 49, 54); vs.SetPadding(0, 0, 0, 0); vs.Slider.Track.SetBackground(Color.Transparent); vs.Slider.SetBorderThickness(4); vs.Slider.SetBorderFill(54, 57, 63); vs.Slider.SetBorderRadius(new CornerRadius(9)); vs.Slider.SetBackground(32, 34, 37, 255); vs.Slider.SetMargin(new Indents(0, 0, 0, 0)); vs.Slider.RemoveAllItemStates(); HorizontalStack input_bar = new HorizontalStack(); input_bar.SetHeight(44); input_bar.SetHeightPolicy(SizePolicy.Fixed); input_bar.SetMargin(20, 10, 20, 30); input_bar.SetPadding(15, 0, 8, 0); input_bar.SetSpacing(10, 0); input_bar.SetBackground(72, 75, 81); input_bar.SetBorderRadius(new CornerRadius(6, 6, 6, 6)); ButtonCore emoji = new ButtonCore("+"); emoji.SetSize(24, 24); emoji.SetBackground(126, 128, 132); emoji.SetAlignment(ItemAlignment.VCenter | ItemAlignment.Left); emoji.SetBorderRadius(new CornerRadius(12)); SpaceVIL.Rectangle divider_v = new SpaceVIL.Rectangle(); divider_v.SetBackground(126, 128, 132); divider_v.SetWidth(2); divider_v.SetSizePolicy(SizePolicy.Fixed, SizePolicy.Expand); divider_v.SetMargin(0, 10, 0, 10); input_message = new TextEdit(); input_message.SetBackground(Color.Transparent); input_message.SetForeground(Color.White); input_message.SetAlignment(ItemAlignment.VCenter); input_message.SetBorderRadius(new CornerRadius(0, 3, 0, 3)); input_message.SetSubstrateText("Message @Jackson"); input_message.EventKeyPress += (sender, args) => { if (args.Key == KeyCode.Enter) { conversation.AddItem(InfinityItemsBox.GetMessage(input_message.GetText())); input_message.Clear(); } }; ButtonCore add_note = InfinityItemsBox.GetOrdinaryButton(); add_note.SetForeground(166, 167, 168); add_note.SetFont(new Font(DefaultsService.GetDefaultFont().FontFamily, 12, FontStyle.Bold)); add_note.SetText("Add new note"); add_note.SetWidth(100); add_note.SetShadow(4, 0, 2, Color.FromArgb(150, 0, 0, 0)); add_note.EventMouseClick += (sender, args) => { NoteBlock block = InfinityItemsBox.GetNoteBlock(); block.SetPosition(100, 100); freeNotes.AddItem(block); }; //adding items AddItems( title, h_stack ); h_stack.AddItems( left, middle, right ); left.AddItems( line, mimic_icon, divider, notes_area_btn, add_btn ); add_btn.AddItem( plus ); middle.AddItems( search_bar, contacts_bar, user_bar ); search_bar.AddItems( search ); user_bar.AddItems( new UserBar("Daniel") ); right.AddItems( conversation_bar, conversation, freeNotes, input_bar ); conversation_bar.AddItems( add_note, InfinityItemsBox.GetOrdinaryButton(), InfinityItemsBox.GetOrdinaryButton(), InfinityItemsBox.GetOrdinaryButton(), InfinityItemsBox.GetOrdinaryButton() ); input_bar.AddItems( emoji, divider_v, input_message ); contacts_bar.AddItems( InfinityItemsBox.GetVisualContact("Jackson", input_message), InfinityItemsBox.GetVisualContact("Evelyn", input_message), InfinityItemsBox.GetVisualContact("Alexander", input_message), InfinityItemsBox.GetVisualContact("Matthew", input_message) ); }
public InventoryRightPane(PartyCharacterId activeCharacter, string exitButtonId, bool showTotalPartyGold) : base(Handlers) { var header = new Header(new StringId(AssetType.SystemText, 0, (int)SystemTextId.Inv_Backpack)); var slotSpans = new IUiElement[InventoryHeight]; for (int j = 0; j < InventoryHeight; j++) { var slotsInRow = new IUiElement[InventoryWidth]; for (int i = 0; i < InventoryWidth; i++) { int index = j * InventoryWidth + i; slotsInRow[i] = new InventoryBackpackSlot(activeCharacter, index); } slotSpans[j] = new HorizontalStack(slotsInRow); } var slotStack = new VerticalStack(slotSpans); //var slotFrame = new ButtonFrame(slotStack) { State = ButtonState.Pressed, Theme = new FrameTheme() }; HorizontalStack moneyAndFoodStack; if (showTotalPartyGold) { var money = new Button(GoldSummaryButtonId, new VerticalStack( new Padding(64, 0), new UiSpriteElement <CoreSpriteId>(CoreSpriteId.UiGold) { Highlighted = true }, new Text("Total party gold $10.0") ) { Greedy = false } ) { IsPressed = true }; moneyAndFoodStack = new HorizontalStack(money); } else { var goldSource = new DynamicText(() => { var player = Resolve <IParty>()[activeCharacter]; var gold = player?.Apparent.Inventory.Gold ?? 0; return(new[] { new TextBlock($"{gold / 10}.{gold % 10}") }); }, x => _version); var goldButton = new Button(GoldButtonId, new VerticalStack( new Padding(31, 0), new UiSpriteElement <CoreSpriteId>(CoreSpriteId.UiGold), new Text(goldSource) ) { Greedy = false }); var foodSource = new DynamicText(() => { var player = Resolve <IParty>()[activeCharacter]; var food = player?.Apparent.Inventory.Rations ?? 0; return(new[] { new TextBlock(food.ToString()) }); }, x => _version); var foodButton = new Button(FoodButtonId, new VerticalStack( new Padding(31, 0), new UiSpriteElement <CoreSpriteId>(CoreSpriteId.UiFood), new Text(foodSource) ) { Greedy = false }); moneyAndFoodStack = new HorizontalStack(goldButton, foodButton); } var stack = new VerticalStack( header, slotStack, // slotFrame, new Padding(0, 2), moneyAndFoodStack, new Padding(0, 9), new InventoryExitButton(exitButtonId) ) { Greedy = false }; Children.Add(stack); }
public override void InitElements() { AssingSize(_languageList, _profileList, _inputModeList); HorizontalStack _profileToolbar = new HorizontalStack(); _profileToolbar.SetHeightPolicy(SizePolicy.Fixed); _profileToolbar.SetHeight(30); _profileToolbar.SetSpacing(10); AddItems( _headerTitle, _autoLaunchAppCheckBox, _startMinimizedCheckBox, _autoStartCheckBox, Items.GetHorizontalDivider(), _headerProfile, _profileToolbar, _inputModeList, Items.GetHorizontalDivider(), _headerLocale, _languageList ); _profileToolbar.AddItems(_profileList, _addProfile, _copyProfile, _removeProfile); // apply settings _languageList.SetCurrentIndex( Controller.GetLocalizations().Keys.ToList().IndexOf(Controller.GetLanguage()["Locale"])); _profileList.SetCurrentIndex( Controller.GetAllProfiles().Select(p => p.Name).ToList().IndexOf(Controller.GetProfile().Name)); _inputModeList.SetCurrentIndex( Parse.RepeatTypes(Controller.GetProfile().RepeatMode)); // events _languageList.SelectionChanged += () => { Controller.InvokeEventLanguageChanged(_languageList.GetTextSelection()); }; _profileList.SelectionChanged += () => { Controller.InvokeEventProfileChanged(_profileList.GetTextSelection()); }; _inputModeList.SelectionChanged += () => { Controller.GetProfile().RepeatMode = (RepeatType)_inputModeList.GetCurrentIndex(); }; _autoLaunchAppCheckBox.EventToggle += (value) => { Controller.GetSettings().AutoLaunchOnSystemStartUp = value; }; _startMinimizedCheckBox.EventToggle += (value) => { Controller.GetSettings().StartAppMinimized = value; }; _autoStartCheckBox.EventToggle += (value) => { Controller.GetSettings().AutoStart = value; }; _addProfile.EventMouseClick += (sender, args) => { InputDialog input = new InputDialog(Controller.GetLanguage()["InputTitle"], Controller.GetLanguage()["AddButton"]); input.SetCancelVisible(false); input.OnCloseDialog += () => { if (input.GetResult().Length > 0) { Controller.InvokeEventAddProfile(input.GetResult()); } }; input.Show(GetHandler()); }; _copyProfile.EventMouseClick += (sender, args) => { InputDialog input = new InputDialog(Controller.GetLanguage()["InputTitle"], Controller.GetLanguage()["AddButton"]); input.SetCancelVisible(false); input.OnCloseDialog += () => { if (input.GetResult().Length > 0) { Controller.InvokeEventAddProfile(input.GetResult(), true); } }; input.Show(GetHandler()); }; _removeProfile.EventMouseClick += (sender, args) => { MessageItem msg = new MessageItem( Controller.GetLanguage()["MsgDeleteProfile"] + " " + Controller.GetProfile().Name + "\n" + Controller.GetLanguage()["MsgConfirm"], Controller.GetLanguage()["DeleteProfileTitle"]); msg.GetOkButton().SetText(Controller.GetLanguage()["DeleteButton"]); msg.GetCancelButton().SetText(Controller.GetLanguage()["CancelButton"]); msg.OnCloseDialog += () => { if (msg.GetResult()) { Controller.InvokeEventDeleteProfile(); } }; msg.Show(GetHandler()); }; }
public InventoryRightPane(PartyCharacterId activeCharacter, bool showTotalPartyGold) { var header = new Header(new StringId(AssetType.SystemText, 0, (int)SystemTextId.Inv_Backpack)); var slotSpans = new IUiElement[InventoryHeight]; for (int j = 0; j < InventoryHeight; j++) { var slotsInRow = new IUiElement[InventoryWidth]; for (int i = 0; i < InventoryWidth; i++) { int index = j * InventoryWidth + i; slotsInRow[i] = new LogicalInventorySlot(new InventorySlotId( InventoryType.Player, (ushort)activeCharacter, (ItemSlotId)((int)ItemSlotId.Slot0 + index))); } slotSpans[j] = new HorizontalStack(slotsInRow); } var slotStack = new VerticalStack(slotSpans); var slotHalfFrame = new ButtonFrame(slotStack) { Theme = ButtonTheme.InventoryOuterFrame, Padding = -1 }; HorizontalStack moneyAndFoodStack; if (showTotalPartyGold) { var tf = Resolve <ITextFormatter>(); int total = Resolve <IParty>().StatusBarOrder.Sum(x => x.Apparent.Inventory.Gold.Amount); var money = new Button( new VerticalStack( new Spacing(64, 0), new UiSpriteElement <CoreSpriteId>(CoreSpriteId.UiGold) { Flags = SpriteFlags.Highlight }, new UiText(tf.Format(SystemTextId.Shop_GoldAll)), new SimpleText($"{total / 10}.{total % 10}") ) { Greedy = false }) { IsPressed = true }; moneyAndFoodStack = new HorizontalStack(money); } else { var goldButton = new LogicalInventorySlot(new InventorySlotId( InventoryType.Player, (ushort)activeCharacter, ItemSlotId.Gold)); var foodButton = new LogicalInventorySlot(new InventorySlotId( InventoryType.Player, (ushort)activeCharacter, ItemSlotId.Rations)); moneyAndFoodStack = new HorizontalStack(goldButton, foodButton); } var stack = new VerticalStack( new Spacing(0, 1), header, new Spacing(0, 1), slotHalfFrame, new Spacing(0, 2), moneyAndFoodStack, new Spacing(0, 9), new InventoryExitButton().OnClick(() => Raise(new InventoryCloseEvent())) ) { Greedy = false }; AttachChild(stack); }
public InventoryChestPane(ChestId id) { On <InventoryChangedEvent>(e => { if (e.Id != new InventoryId(_id)) { return; } UpdateBackground(); }); _id = id; _background = new UiSpriteElement(Base.Picture.OpenChestWithGold); var backgroundStack = new FixedPositionStack(); backgroundStack.Add(_background, 0, 0); AttachChild(backgroundStack); var slotSpans = new IUiElement[InventoryHeight]; for (int j = 0; j < InventoryHeight; j++) { var slotsInRow = new IUiElement[InventoryWidth]; for (int i = 0; i < InventoryWidth; i++) { int index = j * InventoryWidth + i; slotsInRow[i] = new LogicalInventorySlot(new InventorySlotId(_id, (ItemSlotId)((int)ItemSlotId.Slot0 + index))); } slotSpans[j] = new HorizontalStack(slotsInRow); } var slotStack = new VerticalStack(slotSpans); var slotHalfFrame = new ButtonFrame(slotStack) { Theme = ButtonTheme.InventoryOuterFrame, Padding = -1 }; var goldButton = new LogicalInventorySlot(new InventorySlotId(_id, ItemSlotId.Gold)); var foodButton = new LogicalInventorySlot(new InventorySlotId(_id, ItemSlotId.Rations)); var takeAllButton = new Button( (UiElement) new UiTextBuilder(TextId.From(Base.UAlbionString.TakeAll)).Center() ).OnClick(() => Raise(new InventoryTakeAllEvent(_id))); var header = new Header(Base.SystemText.Chest_Chest); var moneyAndFoodStack = new HorizontalStack(goldButton, takeAllButton, foodButton); var stack = new VerticalStack( header, slotHalfFrame, new Spacing(0, 78), moneyAndFoodStack ) { Greedy = false }; AttachChild(stack); }
public override void InitElements() { base.InitElements(); Color gray = Color.FromArgb(150, 150, 150); Indents margin = new Indents(); int width = 120; _win.SetWidth(width); _win.SetMargin(margin); _win.SetBackground(gray); _lMouse.SetWidth(width); _lMouse.SetMargin(margin); _lMouse.SetBackground(gray); _rMouse.SetWidth(width); _rMouse.SetMargin(margin); _rMouse.SetBackground(gray); _mMouse.SetWidth(width); _mMouse.SetMargin(margin); _mMouse.SetBackground(gray); _apply.SetAlignment(ItemAlignment.Bottom, ItemAlignment.Right); _apply.SetMargin(0, 0, 20, 20); _deleteLast.IsFocusable = false; _win.IsFocusable = false; _lMouse.IsFocusable = false; _rMouse.IsFocusable = false; _mMouse.IsFocusable = false; HorizontalStack textFieldlayout = Factory.Items.GetFixedHorizontalStack(30); textFieldlayout.SetMargin(100, 100, 100, 0); HorizontalStack toolbarlayout = Factory.Items.GetFixedHorizontalStack(30); toolbarlayout.SetMargin(40, 0, 40, 100); toolbarlayout.SetAlignment(ItemAlignment.Bottom, ItemAlignment.Left); toolbarlayout.SetSpacing(6, 0); Frame header = new Frame(); header.SetHeightPolicy(SizePolicy.Fixed); header.SetHeight(40); header.SetBackground(Factory.Palette.ExclusiveDark); Window.SetMinSize(600, 300); Window.AddItems(header, _close, textFieldlayout, toolbarlayout, _apply); textFieldlayout.AddItems(_bind, _deleteLast); toolbarlayout.AddItems(_win, _lMouse, _rMouse, _mMouse); _deleteLast.EventMouseClick += (sender, args) => { if (_keySequence.Count > 0) { _keySequence.RemoveAt(_keySequence.Count - 1); SetShortcutSequence(); } }; _win.EventMouseClick += (sender, args) => { OnKeyDown(HardwareButtons.LeftSuper); }; _lMouse.EventMouseClick += (sender, args) => { OnKeyDown(HardwareButtons.MouseLeft); }; _rMouse.EventMouseClick += (sender, args) => { OnKeyDown(HardwareButtons.MouseRight); }; _mMouse.EventMouseClick += (sender, args) => { OnKeyDown(HardwareButtons.MouseMiddle); }; _bind.SetEditable(false); _bind.EventKeyPress += (sender, args) => { OnKeyDown((HardwareButtons)args.Key); }; _close.EventMouseClick += (sender, args) => { Close(); }; _apply.EventMouseClick += (sender, args) => { Result = _bind.GetText(); Close(); }; }