Beispiel #1
0
        private void OnNewScrollbarvalueOverviewPage(float value)
        {
            GuiElementHandbookList stacklist = overviewGui.GetHandbookStackList("stacklist");

            stacklist.insideBounds.fixedY = 3 - value;
            stacklist.insideBounds.CalcWorldBounds();
        }
Beispiel #2
0
        private void OnNewScrollbarValueOverviewPage(float value)
        {
            var handbookStackList = mainWindow.GetHandbookStackList("stackList");

            handbookStackList.insideBounds.fixedY = 3.0 - value;
            handbookStackList.insideBounds.CalcWorldBounds();
        }
Beispiel #3
0
        private void SetupGui()
        {
            // Stolen from base implementation
            var mainBounds = ElementStdBounds.AutosizedMainDialog.WithAlignment(EnumDialogArea.CenterFixed).WithFixedPosition(0.0, 100.0);
            var bkgrBounds = ElementBounds.Fill.WithFixedPadding(GuiStyle.ElementToDialogPadding);
            var listBounds = ElementBounds.Fixed(GuiStyle.ElementToDialogPadding - 2.0, 50.0, 500.0, 580);
            var clipBounds = listBounds.ForkBoundingParent();
            var sideBounds = listBounds.FlatCopy().FixedGrow(6.0).WithFixedOffset(-3.0, -3.0);
            var scrlBounds = sideBounds.CopyOffsetedSibling(3.0 + listBounds.fixedWidth + 7.0).WithFixedWidth(20.0);
            var quitBounds = ElementBounds.FixedSize(0.0, 0.0).FixedUnder(clipBounds, 18.0).WithAlignment(EnumDialogArea.RightFixed).WithFixedPadding(20.0, 4.0).WithFixedAlignmentOffset(2.0, 0.0);

            bkgrBounds.BothSizing = ElementSizing.FitToChildren;
            bkgrBounds.WithChildren(sideBounds, listBounds, scrlBounds, quitBounds);

            // Compose the window
            mainWindow = capi.Gui.CreateCompo("svgTest", mainBounds)
                         .AddShadedDialogBG(bkgrBounds)
                         .AddDialogTitleBar("SVG Sample", OnTitleBarClose)
                         .BeginChildElements(bkgrBounds)
                         .BeginClip(clipBounds)
                         .AddInset(sideBounds, 3)
                         .AddHandbookStackList(listBounds, OnLeftClickListElement, listItems, "stackList")
                         .EndClip()
                         .AddVerticalScrollbar(OnNewScrollbarValueOverviewPage, scrlBounds, "scrollbar")
                         .AddSmallButton(Lang.Get("general-close"), TryClose, quitBounds)
                         .EndChildElements()
                         .Compose();

            mainWindow.GetScrollbar("scrollbar")
            .SetHeights(580, (float)mainWindow.GetHandbookStackList("stackList").insideBounds.fixedHeight);
        }
Beispiel #4
0
        public void initOverviewGui()
        {
            ElementBounds searchFieldBounds = ElementBounds.Fixed(GuiStyle.ElementToDialogPadding - 2, 45, 300, 30);
            ElementBounds stackListBounds   = ElementBounds.Fixed(0, 0, 500, listHeight).FixedUnder(searchFieldBounds, 5);

            ElementBounds clipBounds  = stackListBounds.ForkBoundingParent();
            ElementBounds insetBounds = stackListBounds.FlatCopy().FixedGrow(6).WithFixedOffset(-3, -3);

            ElementBounds scrollbarBounds = insetBounds.CopyOffsetedSibling(3 + stackListBounds.fixedWidth + 7).WithFixedWidth(20);

            ElementBounds closeButtonBounds = ElementBounds
                                              .FixedSize(0, 0)
                                              .FixedUnder(clipBounds, 2 * 5 + 8)
                                              .WithAlignment(EnumDialogArea.RightFixed)
                                              .WithFixedPadding(20, 4)
                                              .WithFixedAlignmentOffset(2, 0)
            ;

            // 2. Around all that is 10 pixel padding
            ElementBounds bgBounds = ElementBounds.Fill.WithFixedPadding(GuiStyle.ElementToDialogPadding);

            bgBounds.BothSizing = ElementSizing.FitToChildren;
            bgBounds.WithChildren(insetBounds, stackListBounds, scrollbarBounds, closeButtonBounds);

            // 3. Finally Dialog
            ElementBounds dialogBounds = ElementStdBounds.AutosizedMainDialog.WithAlignment(EnumDialogArea.None).WithAlignment(EnumDialogArea.CenterFixed).WithFixedPosition(0, 70);

            ElementBounds tabBounds = ElementBounds.Fixed(-200, 35, 200, 545);

            int           curTab;
            ElementBounds backButtonBounds = ElementBounds
                                             .FixedSize(0, 0)
                                             .FixedUnder(clipBounds, 2 * 5 + 5)
                                             .WithAlignment(EnumDialogArea.LeftFixed)
                                             .WithFixedPadding(20, 4)
                                             .WithFixedAlignmentOffset(-6, 3)
            ;

            overviewGui = capi.Gui
                          .CreateCompo("handbook-overview", dialogBounds)
                          .AddShadedDialogBG(bgBounds, true)
                          .AddDialogTitleBar(Lang.Get("Survival Handbook"), OnTitleBarClose)
                          .AddVerticalTabs(genTabs(out curTab), tabBounds, OnTabClicked, "verticalTabs")
                          .AddTextInput(searchFieldBounds, FilterItemsBySearchText, CairoFont.WhiteSmallishText(), "searchField")
                          .BeginChildElements(bgBounds)
                          .BeginClip(clipBounds)
                          .AddInset(insetBounds, 3)
                          .AddHandbookStackList(stackListBounds, onLeftClickListElement, shownHandbookPages, "stacklist")
                          .EndClip()
                          .AddVerticalScrollbar(OnNewScrollbarvalueOverviewPage, scrollbarBounds, "scrollbar")
                          .AddSmallButton(Lang.Get("general-back"), OnButtonBack, backButtonBounds, EnumButtonStyle.Normal, EnumTextOrientation.Center, "backButton")
                          .AddSmallButton(Lang.Get("Close Handbook"), OnButtonClose, closeButtonBounds)
                          .EndChildElements()
                          .Compose()
            ;

            overviewGui.GetScrollbar("scrollbar").SetHeights(
                (float)listHeight,
                (float)overviewGui.GetHandbookStackList("stacklist").insideBounds.fixedHeight
                );

            overviewGui.GetTextInput("searchField").SetPlaceHolderText("Search...");

            overviewGui.GetVerticalTab("verticalTabs").SetValue(curTab, false);

            overviewGui.FocusElement(overviewGui.GetTextInput("searchField").TabIndex);

            if (curTab == 0)
            {
                currentCatgoryCode = null;
            }
            else
            {
                currentCatgoryCode = categoryCodes[curTab - 1];
            }
            FilterItems();
        }
Beispiel #5
0
        void initOverviewGui()
        {
            ElementBounds searchFieldBounds = ElementBounds.Fixed(GuiStyle.ElementToDialogPadding - 2, 45, 300, 30);
            ElementBounds stackListBounds   = ElementBounds.Fixed(0, 0, 400, listHeight).FixedUnder(searchFieldBounds, 5);

            ElementBounds clipBounds  = stackListBounds.ForkBoundingParent();
            ElementBounds insetBounds = stackListBounds.FlatCopy().FixedGrow(6).WithFixedOffset(-3, -3);

            ElementBounds scrollbarBounds = insetBounds.CopyOffsetedSibling(3 + stackListBounds.fixedWidth + 7).WithFixedWidth(20);

            ElementBounds closeButtonBounds = ElementBounds
                                              .FixedSize(0, 0)
                                              .FixedUnder(clipBounds, 2 * 5 + 8)
                                              .WithAlignment(EnumDialogArea.RightFixed)
                                              .WithFixedPadding(20, 4)
                                              .WithFixedAlignmentOffset(2, 0)
            ;

            // 2. Around all that is 10 pixel padding
            ElementBounds bgBounds = ElementBounds.Fill.WithFixedPadding(GuiStyle.ElementToDialogPadding);

            bgBounds.BothSizing = ElementSizing.FitToChildren;
            bgBounds.WithChildren(insetBounds, stackListBounds, scrollbarBounds, closeButtonBounds);

            // 3. Finally Dialog
            ElementBounds dialogBounds = ElementStdBounds.AutosizedMainDialog.WithAlignment(EnumDialogArea.CenterMiddle);

            ElementBounds tabBounds = ElementBounds.Fixed(-130, 35, 130, 545);

            GuiTab[] tabs = new GuiTab[2];
            tabs[0] = new GuiTab()
            {
                DataInt = 0,
                Name    = Lang.Get("Blocks and Items"),
            };
            tabs[1] = new GuiTab()
            {
                DataInt = 1,
                Name    = Lang.Get("Crafting mechanics")
            };

            overviewGui = capi.Gui
                          .CreateCompo("handbook-overview", dialogBounds)
                          .AddShadedDialogBG(bgBounds, true)
                          .AddDialogTitleBar(Lang.Get("Survival Handbook"), OnTitleBarClose)
                          //.AddVerticalTabs(tabs, tabBounds, OnTabClicked, "verticalTabs")
                          .AddTextInput(searchFieldBounds, FilterItemsBySearchText, CairoFont.WhiteSmallishText(), "searchField")
                          .BeginChildElements(bgBounds)
                          .BeginClip(clipBounds)
                          .AddInset(insetBounds, 3)
                          .AddHandbookStackList(stackListBounds, onLeftClickListElement, listElements, "stacklist")
                          .EndClip()
                          .AddVerticalScrollbar(OnNewScrollbarvalueOverviewPage, scrollbarBounds, "scrollbar")
                          .AddSmallButton(Lang.Get("Close Handbook"), OnButtonClose, closeButtonBounds)
                          .EndChildElements()
                          .Compose()
            ;

            overviewGui.GetScrollbar("scrollbar").SetHeights(
                (float)listHeight, (float)overviewGui.GetHandbookStackList("stacklist").insideBounds.fixedHeight
                );
        }