Beispiel #1
0
        private void SetHeaderStyle(ViewDrawDocker drawDocker,
                                    PaletteTripleMetricRedirect palette,
                                    HeaderStyle style)
        {
            palette.SetStyles(style);

            if (_buttonManager != null)
            {
                switch (style)
                {
                case HeaderStyle.Primary:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetPrimary,
                                                    PaletteMetricPadding.HeaderButtonPaddingPrimary);
                    break;

                case HeaderStyle.Secondary:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetSecondary,
                                                    PaletteMetricPadding.HeaderButtonPaddingSecondary);
                    break;

                case HeaderStyle.DockActive:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetDockActive,
                                                    PaletteMetricPadding.HeaderButtonPaddingDockActive);
                    break;

                case HeaderStyle.DockInactive:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetDockInactive,
                                                    PaletteMetricPadding.HeaderButtonPaddingDockInactive);
                    break;

                case HeaderStyle.Form:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetForm,
                                                    PaletteMetricPadding.HeaderButtonPaddingForm);
                    break;

                case HeaderStyle.Calendar:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetCalendar,
                                                    PaletteMetricPadding.HeaderButtonPaddingCalendar);
                    break;

                case HeaderStyle.Custom1:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetCustom1,
                                                    PaletteMetricPadding.HeaderButtonPaddingCustom1);
                    break;

                case HeaderStyle.Custom2:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetCustom2,
                                                    PaletteMetricPadding.HeaderButtonPaddingCustom2);
                    break;
                }
            }
        }
Beispiel #2
0
        protected virtual void LoadViewState(object savedState)
        {
            object[] pieces = savedState as object[];

            if (pieces == null)
            {
                return;
            }

            if (pieces[0] != null)
            {
                viewstate.LoadViewState(pieces[0]);
            }
            if (pieces[1] != null)
            {
                FooterStyle.LoadViewState(pieces[1]);
            }
            if (pieces[2] != null)
            {
                HeaderStyle.LoadViewState(pieces[2]);
            }
            if (pieces[3] != null)
            {
                ItemStyle.LoadViewState(pieces[3]);
            }
        }
        private void RenderHeader(HtmlTextWriter writer)
        {
            //render Header row
            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
            if (HeaderStyle != null)
            {
                HeaderStyle.AddAttributesToRender(writer);
            }
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(Localization.GetString(ID + "_Available", LocalResourceFile));
            writer.RenderEndTag();

            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.RenderEndTag();
            if (HeaderStyle != null)
            {
                HeaderStyle.AddAttributesToRender(writer);
            }
            writer.RenderBeginTag(HtmlTextWriterTag.Td);
            writer.Write(Localization.GetString(ID + "_Selected", LocalResourceFile));
            writer.RenderEndTag();

            //Render end of Header Row
            writer.RenderEndTag();
        }
Beispiel #4
0
    public Rect GetTopLabelRect(string newLabel, int padding = 5)
    {
        // Determine how large the label will be with the text
        Vector2 labelSize = HeaderStyle.CalcSize(new GUIContent(newLabel));

        return(new Rect(Screen.width / 2 - ((labelSize.x + padding) / 2), 20 + padding, labelSize.x + padding, labelSize.y + padding));
    }
Beispiel #5
0
        /// <summary>
        /// Update the palette styles using a header style.
        /// </summary>
        /// <param name="headerStyle">New header style.</param>
        public void SetStyles(HeaderStyle headerStyle)
        {
            switch (headerStyle)
            {
            case HeaderStyle.Primary:
                SetStyles(PaletteBackStyle.HeaderPrimary,
                          PaletteBorderStyle.HeaderPrimary,
                          PaletteContentStyle.HeaderPrimary);
                break;

            case HeaderStyle.Secondary:
                SetStyles(PaletteBackStyle.HeaderSecondary,
                          PaletteBorderStyle.HeaderSecondary,
                          PaletteContentStyle.HeaderSecondary);
                break;

            case HeaderStyle.DockActive:
                SetStyles(PaletteBackStyle.HeaderDockActive,
                          PaletteBorderStyle.HeaderDockActive,
                          PaletteContentStyle.HeaderDockActive);
                break;

            case HeaderStyle.DockInactive:
                SetStyles(PaletteBackStyle.HeaderDockInactive,
                          PaletteBorderStyle.HeaderDockInactive,
                          PaletteContentStyle.HeaderDockInactive);
                break;

            case HeaderStyle.Form:
                SetStyles(PaletteBackStyle.HeaderForm,
                          PaletteBorderStyle.HeaderForm,
                          PaletteContentStyle.HeaderForm);
                break;

            case HeaderStyle.Calendar:
                SetStyles(PaletteBackStyle.HeaderCalendar,
                          PaletteBorderStyle.HeaderCalendar,
                          PaletteContentStyle.HeaderCalendar);
                break;

            case HeaderStyle.Custom1:
                SetStyles(PaletteBackStyle.HeaderCustom1,
                          PaletteBorderStyle.HeaderCustom1,
                          PaletteContentStyle.HeaderCustom1);
                break;

            case HeaderStyle.Custom2:
                SetStyles(PaletteBackStyle.HeaderCustom2,
                          PaletteBorderStyle.HeaderCustom2,
                          PaletteContentStyle.HeaderCustom2);
                break;

            default:
                // Should never happen!
                Debug.Assert(false);
                break;
            }
        }
        private Vector2 HeaderContentSize()
        {
            // Manually add the icon size specified in preferences.
            // This was done because using CalcSize(HeaderContent) (with the icon set in GUIContent's image)
            // caused the nodes to be incorrectly sized when opening a tree from the inspector.
            // e.g. Clicking on a GameObjects tree asset from Bonsai Tree Component.
            float   iconSize = BonsaiPreferences.Instance.iconSize;
            Vector2 size     = HeaderStyle.CalcSize(new GUIContent(HeaderText()));

            return(new Vector2(size.x + iconSize, Mathf.Max(size.y, iconSize)));
        }
Beispiel #7
0
        public override View GetSampleContent(Context context)
        {
            this.mContext = context;
            LinearLayout linearLayout = new LinearLayout(context);

            linearLayout.Orientation = Orientation.Vertical;
            //creating instance for Schedule
            sfSchedule = new SfSchedule(context);
            HeaderStyle headerStyle = new HeaderStyle();

            headerStyle.BackgroundColor = Color.Argb(255, 214, 214, 214);
            headerStyle.TextColor       = Color.Black;

            ViewHeaderStyle viewHeader = new ViewHeaderStyle();

            viewHeader.BackgroundColor = Color.Argb(255, 28, 28, 28);
            viewHeader.DayTextColor    = Color.Argb(255, 238, 199, 43);
            viewHeader.DateTextColor   = Color.Argb(255, 238, 199, 43);

            sfSchedule.HeaderStyle = headerStyle;
            //sfSchedule.ViewHeaderStyle = viewHeader;

            DayViewSettings dayViewSettings = new DayViewSettings();

            dayViewSettings.TimeSlotBorderStrokeWidth          = 2;
            dayViewSettings.VerticalLineStrokeWidth            = 0;
            dayViewSettings.VerticalLineColor                  = Color.Transparent;
            dayViewSettings.TimeSlotBorderColor                = Color.LightGray;
            dayViewSettings.NonWorkingHoursTimeSlotBorderColor = Color.LightGray;
            sfSchedule.DayViewSettings = dayViewSettings;

            Button button = new Button(context);

            button.Text = "+ New event";
            button.SetTextColor(Color.White);
            button.Gravity = GravityFlags.Left;
            button.SetBackgroundColor(Color.Rgb(0, 122, 255));
            button.Click            += Button_Click;
            sfSchedule.SelectionView = button;

            //set the appointment collection
            getAppointments();
            sfSchedule.Appointments          = appointmentCollection;
            sfSchedule.AppointmentViewLayout = ViewLayoutOptions.Overlay;
            sfSchedule.MonthCellLoaded      += SfSchedule_MonthCellLoaded;
            sfSchedule.LayoutParameters      = new FrameLayout.LayoutParams(
                LinearLayout.LayoutParams.MatchParent,
                LinearLayout.LayoutParams.MatchParent);
            sfSchedule.AppointmentLoaded += SfSchedule_AppointmentLoaded;
            sfSchedule.CellTapped        += sfSchedule_ScheduleTapped;
            linearLayout.AddView(sfSchedule);
            return(linearLayout);
        }
        static void Main(string[] args)
        {
            TextDocument doc = new TextDocument();

            Paragraph headerParagraph = new Paragraph();

            headerParagraph.Add("Header text");

            Header header1 = new Header();

            header1.Content.Add(headerParagraph);

            Paragraph footerParagraph = new Paragraph();

            footerParagraph.Add("Footer text");

            Footer footer1 = new Footer();

            footer1.Content.Add(footerParagraph);

            HeaderStyle headerStyle1 = new HeaderStyle();

            headerStyle1.BottomMargin = new Size(0.1965, Unit.Inch);

            FooterStyle footerStyle1 = new FooterStyle();

            footerStyle1.TopMargin = new Size(0.1965, Unit.Inch);

            PageLayout pageLayout1 = new PageLayout();

            pageLayout1.Name        = "Layout1";
            pageLayout1.HeaderStyle = headerStyle1;
            pageLayout1.FooterStyle = footerStyle1;

            doc.CommonStyles.AutomaticStyles = new AutomaticStyles();
            doc.CommonStyles.AutomaticStyles.PageLayouts.Add(pageLayout1);

            MasterPage masterPage1 = new MasterPage();

            masterPage1.Name       = "Standard";
            masterPage1.PageLayout = "Layout1";
            masterPage1.Header     = header1;
            masterPage1.Footer     = footer1;

            doc.CommonStyles.MasterStyles = new MasterStyles();
            doc.CommonStyles.MasterStyles.MasterPages.Add(masterPage1);

            doc.Save("c:\\test\\output.odt", true);
        }
Beispiel #9
0
        /// <summary>
        /// Initialize a new instance of the KryptonHeader class.
        /// </summary>
        public KryptonHeader()
        {
            // The header cannot take the focus
            SetStyle(ControlStyles.Selectable, false);

            // Set default values
            _style                         = HeaderStyle.Primary;
            _orientation                   = VisualOrientation.Top;
            AllowButtonSpecToolTips        = false;
            AllowButtonSpecToolTipPriority = false;

            // Create storage objects
            Values              = new HeaderValues(NeedPaintDelegate);
            Values.TextChanged += OnHeaderTextChanged;
            ButtonSpecs         = new HeaderButtonSpecCollection(this);

            // Create the palette storage
            StateCommon   = new PaletteHeaderRedirect(Redirector, PaletteBackStyle.HeaderPrimary, PaletteBorderStyle.HeaderPrimary, PaletteContentStyle.HeaderPrimary, NeedPaintDelegate);
            StateDisabled = new PaletteTripleMetric(StateCommon, NeedPaintDelegate);
            StateNormal   = new PaletteTripleMetric(StateCommon, NeedPaintDelegate);

            // Our view contains background and border with content inside
            _drawDocker  = new ViewDrawDocker(StateNormal.Back, StateNormal.Border, null);
            _drawContent = new ViewDrawContent(StateNormal.Content, Values, Orientation);
            _drawDocker.Add(_drawContent, ViewDockStyle.Fill);

            // Create the view manager instance
            ViewManager = new ViewManager(this, _drawDocker);

            // Create button specification collection manager
            _buttonManager = new ButtonSpecManagerDraw(this, Redirector, ButtonSpecs, null,
                                                       new ViewDrawDocker[] { _drawDocker },
                                                       new IPaletteMetric[] { StateCommon },
                                                       new PaletteMetricInt[] { PaletteMetricInt.HeaderButtonEdgeInsetPrimary },
                                                       new PaletteMetricPadding[] { PaletteMetricPadding.HeaderButtonPaddingPrimary },
                                                       CreateToolStripRenderer,
                                                       NeedPaintDelegate);

            // Create the manager for handling tooltips
            ToolTipManager                = new ToolTipManager();
            ToolTipManager.ShowToolTip   += OnShowToolTip;
            ToolTipManager.CancelToolTip += OnCancelToolTip;
            _buttonManager.ToolTipManager = ToolTipManager;

            // We want to be auto sized by default, but not the property default!
            AutoSize     = true;
            AutoSizeMode = AutoSizeMode.GrowAndShrink;
        }
        private void DrawPreview()
        {
            if (Properties.Settings.Default.UseChallengeBanner)
            {
                BaseBundle icon = new BaseBundle(Watermark_TxtBox.Text);
                using var ret = new SKBitmap(icon.Width, icon.HeaderHeight + icon.AdditionalSize, SKColorType.Rgba8888, SKAlphaType.Opaque);
                using var c   = new SKCanvas(ret);

                HeaderStyle.DrawHeaderPaint(c, icon);
                HeaderStyle.DrawHeaderText(c, icon);
                QuestStyle.DrawQuests(c, icon);

                SKImage image = SKImage.FromBitmap(ret);
                using var encoded = image.Encode();
                using var stream  = encoded.AsStream();
                BitmapImage photo = new BitmapImage();
                photo.BeginInit();
                photo.CacheOption  = BitmapCacheOption.OnLoad;
                photo.StreamSource = stream;
                photo.EndInit();
                photo.Freeze();

                Application.Current.Dispatcher.Invoke(delegate
                {
                    Preview_Img.Source = photo;
                });
            }
            else
            {
                using SKBitmap challengeBase = SKBitmap.Decode(Application.GetResourceStream(new Uri($"pack://application:,,,/Resources/T_Placeholder_Challenge_Image.png")).Stream);
                SKImage image = SKImage.FromBitmap(challengeBase);
                using var encoded = image.Encode();
                using var stream  = encoded.AsStream();
                BitmapImage photo = new BitmapImage();
                photo.BeginInit();
                photo.CacheOption  = BitmapCacheOption.OnLoad;
                photo.StreamSource = stream;
                photo.EndInit();
                photo.Freeze();

                Application.Current.Dispatcher.Invoke(delegate
                {
                    Preview_Img.Source = photo;
                });
            }
        }
        /// <summary>
        /// routine to assign display-style-properties. Handles propagation to HeaderStyle, FooterStyle and RowStyle. Assignment in aspx will not be overwritten.
        /// </summary>
        protected virtual void SetDefaultStyleItems()
        {
            this.Style.Add("class", "text");
            // check that each property has not been set in the aspx before using the default).
            TableItemStyle myStyle = new TableItemStyle();

            //properties for the outermost control (gridview)
            BorderColor = System.Drawing.Color.Gray;
            BorderStyle = BorderStyle.Outset;
            BorderWidth = Unit.Pixel(4);

            //new ItemStyle obj
            myStyle.BorderColor = BorderColor;
            myStyle.BorderStyle = BorderStyle;
            myStyle.BorderWidth = BorderWidth;

            // use as basis for other default styles
            HeaderStyle.MergeWith(myStyle);
            RowStyle.MergeWith(myStyle);
            FooterStyle.MergeWith(myStyle);
        }
Beispiel #12
0
        protected override void LoadViewState(object savedState)
        {
            object[] state = (object[])savedState;
            base.LoadViewState(state [0]);
            if (state [1] != null)
            {
                ItemStyle.LoadViewState(state [1]);
            }
            if (state [2] != null)
            {
                SelectedItemStyle.LoadViewState(state [2]);
            }
            if (state [3] != null)
            {
                AlternatingItemStyle.LoadViewState(state [3]);
            }
            if (state [4] != null)
            {
                EditItemStyle.LoadViewState(state [4]);
            }
            if (state [5] != null)
            {
                SeparatorStyle.LoadViewState(state [5]);
            }
            if (state [6] != null)
            {
                HeaderStyle.LoadViewState(state [6]);
            }
            if (state [7] != null)
            {
                FooterStyle.LoadViewState(state [7]);
            }
#if NET_2_0
            if (state [8] != null)
            {
                ControlStyle.LoadViewState(state [8]);
            }
#endif
        }
Beispiel #13
0
        public ExportDoAssetsBase(IAssetsOptionService assetsOptionService, int doAssetsId) : base()
        {
            AssetsOptionService = assetsOptionService;
            DoAssetsId          = doAssetsId;

            HeaderStyle                   = Workbook.CreateCellStyle();
            HeaderStyle.Alignment         = HorizontalAlignment.Center;
            HeaderStyle.VerticalAlignment = VerticalAlignment.Center;
            IFont font = Workbook.CreateFont();

            font.Boldweight = short.MaxValue;
            HeaderStyle.SetFont(font);


            CommCellStyle = Workbook.CreateCellStyle();
            CommCellStyle.VerticalAlignment = VerticalAlignment.Center;
            CommCellStyle.WrapText          = true;

            FooterCellStyle                   = Workbook.CreateCellStyle();
            FooterCellStyle.Alignment         = HorizontalAlignment.Center;
            FooterCellStyle.VerticalAlignment = VerticalAlignment.Center;
            FooterCellStyle.WrapText          = true;
        }
        /// <summary>
        /// Initialize a new instance of the NavigatorHeader class.
        /// </summary>
        /// <param name="navigator">Reference to owning navigator instance.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public NavigatorHeader(KryptonNavigator navigator,
                               NeedPaintHandler needPaint)
        {
            Debug.Assert(navigator != null);

            // Remember back reference
            _navigator = navigator;

            // Store the provided paint notification delegate
            NeedPaint = needPaint;

            // Default values
            _headerStylePrimary      = HeaderStyle.Primary;
            _headerStyleSecondary    = HeaderStyle.Secondary;
            _headerStyleBar          = HeaderStyle.Secondary;
            _headerPositionPrimary   = VisualOrientation.Top;
            _headerPositionSecondary = VisualOrientation.Bottom;
            _headerPositionBar       = VisualOrientation.Top;
            _headerVisiblePrimary    = true;
            _headerVisibleSecondary  = true;
            _headerVisibleBar        = true;
            HeaderValuesPrimary      = new HeaderGroupMappingPrimary(_navigator, needPaint);
            HeaderValuesSecondary    = new HeaderGroupMappingSecondary(_navigator, needPaint);
        }
Beispiel #15
0
        /// <summary>
        /// Initialize a new instance of the NavigatorHeader class.
        /// </summary>
        /// <param name="navigator">Reference to owning navigator instance.</param>
        /// <param name="needPaint">Delegate for notifying paint requests.</param>
        public NavigatorHeader(KryptonNavigator navigator,
                               NeedPaintHandler needPaint)
        {
            Debug.Assert(navigator != null);

            // Remember back reference
            _navigator = navigator;

            // Store the provided paint notification delegate
            NeedPaint = needPaint;

            // Default values
            _headerStylePrimary = HeaderStyle.Primary;
            _headerStyleSecondary = HeaderStyle.Secondary;
            _headerStyleBar = HeaderStyle.Secondary;
            _headerPositionPrimary = VisualOrientation.Top;
            _headerPositionSecondary = VisualOrientation.Bottom;
            _headerPositionBar = VisualOrientation.Top;
            _headerVisiblePrimary = true;
            _headerVisibleSecondary = true;
            _headerVisibleBar = true;
            _headerValuesPrimary = new HeaderGroupMappingPrimary(_navigator, needPaint);
            _headerValuesSecondary = new HeaderGroupMappingSecondary(_navigator, needPaint);
        }
        protected new void PrepareTextCell()
        {
            HeaderStyle.AssignToControl(TextCell, AttributesRange.Font);
            HeaderStyle.AssignToControl(TextCell, AttributesRange.Cell);

            RenderUtils.SetPaddings(TextCell, HeaderStyle.Paddings);


            if (NewButtonControl != null)
            {
                TextCell.HorizontalAlign = HorizontalAlign.Center;
            }

            if (Location == GridViewHeaderLocation.Group)
            {
                if (Grid.GroupPanelHeaderNoWrap)
                {
                    RenderUtils.SetWrap(TextCell, DefaultBoolean.False);
                }

                if (HeaderStyle.Paddings.GetPaddingLeft().IsEmpty)
                {
                    RenderUtils.SetStyleUnitAttribute(TextCell, "padding-left", Unit.Pixel(1));
                }
            }

            if (Location == GridViewHeaderLocation.Customization)
            {
                var horizontalAlign = RenderHelper.GetCustomizationWindowContentStyle().HorizontalAlign;

                if (horizontalAlign != HorizontalAlign.NotSet)
                {
                    RenderUtils.SetHorizontalAlign(TextCell, horizontalAlign);
                }
            }
        }
Beispiel #17
0
        /// <summary>
        /// i don't cache images because i don't wanna store a lot of SKCanvas in the memory
        /// </summary>
        /// <returns>true if an icon has been drawn</returns>
        public static bool TryDrawIcon(string assetPath, FName[] exportTypes, IUExport[] exports)
        {
            var    d           = new DirectoryInfo(assetPath);
            string assetName   = d.Name;
            string assetFolder = d.Parent.Name;

            if (Text.TypeFaces.NeedReload(false))
            {
                Text.TypeFaces = new Typefaces();                                   // when opening bundle creator settings without loading paks first
            }
            int    index      = Globals.Game.ActualGame == EGame.Valorant ? 1 : 0;
            string exportType = exportTypes.Length > index ? exportTypes[index].String : string.Empty;

            switch (exportType)
            {
            case "AthenaConsumableEmoteItemDefinition":
            case "AthenaSkyDiveContrailItemDefinition":
            case "AthenaLoadingScreenItemDefinition":
            case "AthenaVictoryPoseItemDefinition":
            case "AthenaPetCarrierItemDefinition":
            case "AthenaMusicPackItemDefinition":
            case "AthenaBattleBusItemDefinition":
            case "AthenaCharacterItemDefinition":
            case "AthenaBackpackItemDefinition":
            case "AthenaPickaxeItemDefinition":
            case "AthenaGadgetItemDefinition":
            case "AthenaGliderItemDefinition":
            case "AthenaDailyQuestDefinition":
            case "AthenaSprayItemDefinition":
            case "AthenaDanceItemDefinition":
            case "AthenaEmojiItemDefinition":
            case "AthenaItemWrapDefinition":
            case "AthenaToyItemDefinition":
            case "FortHeroType":
            case "FortTokenType":
            case "FortAbilityKit":
            case "FortWorkerType":
            case "RewardGraphToken":
            case "FortBannerTokenType":
            case "FortVariantTokenType":
            case "FortFeatItemDefinition":
            case "FortStatItemDefinition":
            case "FortTrapItemDefinition":
            case "FortAmmoItemDefinition":
            case "FortQuestItemDefinition":
            case "FortBadgeItemDefinition":
            case "FortAwardItemDefinition":
            case "FortGadgetItemDefinition":
            case "FortPlaysetItemDefinition":
            case "FortGiftBoxItemDefinition":
            case "FortSpyTechItemDefinition":
            case "FortAccoladeItemDefinition":
            case "FortCardPackItemDefinition":
            case "FortDefenderItemDefinition":
            case "FortCurrencyItemDefinition":
            case "FortResourceItemDefinition":
            case "FortSchematicItemDefinition":
            case "FortIngredientItemDefinition":
            case "FortAccountBuffItemDefinition":
            case "FortWeaponMeleeItemDefinition":
            case "FortContextTrapItemDefinition":
            case "FortPlayerPerksItemDefinition":
            case "FortPlaysetPropItemDefinition":
            case "FortHomebaseNodeItemDefinition":
            case "FortWeaponRangedItemDefinition":
            case "FortNeverPersistItemDefinition":
            case "FortPlaysetGrenadeItemDefinition":
            case "FortPersonalVehicleItemDefinition":
            case "FortHardcoreModifierItemDefinition":
            case "FortConsumableAccountItemDefinition":
            case "FortConversionControlItemDefinition":
            case "FortAccountBuffCreditItemDefinition":
            case "FortPersistentResourceItemDefinition":
            case "FortCampaignHeroLoadoutItemDefinition":
            case "FortConditionalResourceItemDefinition":
            case "FortChallengeBundleScheduleDefinition":
            case "FortWeaponMeleeDualWieldItemDefinition":
            case "FortDailyRewardScheduleTokenDefinition":
            {
                BaseIcon icon   = new BaseIcon(exports[index], exportType, ref assetName);
                int      height = icon.Size + icon.AdditionalSize;
                using (var ret = new SKBitmap(icon.Size, height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            Rarity.DrawRarity(c, icon);
                        }

                        LargeSmallImage.DrawPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                            {
                                Text.DrawBackground(c, icon);
                                Text.DrawDisplayName(c, icon);
                                Text.DrawDescription(c, icon);
                                if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.Mini)
                                {
                                    if (!icon.ShortDescription.Equals(icon.DisplayName) && !icon.ShortDescription.Equals(icon.Description))
                                    {
                                        Text.DrawToBottom(c, icon, ETextSide.Left, icon.ShortDescription);
                                    }
                                    Text.DrawToBottom(c, icon, ETextSide.Right, icon.CosmeticSource);
                                }
                            }
                            UserFacingFlag.DrawUserFacingFlags(c, icon);

                            // has more things to show
                            if (height > icon.Size)
                            {
                                Statistics.DrawStats(c, icon);
                            }
                        }

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "FortMtxOfferData":
            {
                BaseOffer icon = new BaseOffer(exports[index]);
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            icon.DrawBackground(c);
                        }
                        icon.DrawImage(c);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "FortItemSeriesDefinition":
            {
                BaseIcon icon = new BaseIcon();
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        Serie.GetRarity(icon, exports[index]);
                        Rarity.DrawRarity(c, icon);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "PlaylistUserOptionEnum":
            case "PlaylistUserOptionBool":
            case "PlaylistUserOptionString":
            case "PlaylistUserOptionIntEnum":
            case "PlaylistUserOptionIntRange":
            case "PlaylistUserOptionColorEnum":
            case "PlaylistUserOptionFloatEnum":
            case "PlaylistUserOptionFloatRange":
            case "PlaylistUserOptionPrimaryAsset":
            case "PlaylistUserOptionCollisionProfileEnum":
            {
                BaseUserOption icon = new BaseUserOption(exports[index]);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "FortChallengeBundleItemDefinition":
            {
                BaseBundle icon = new BaseBundle(exports[index], assetFolder);
                using (var ret = new SKBitmap(icon.Width, icon.HeaderHeight + icon.AdditionalSize, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        HeaderStyle.DrawHeaderPaint(c, icon);
                        HeaderStyle.DrawHeaderText(c, icon);
                        QuestStyle.DrawQuests(c, icon);
                        QuestStyle.DrawCompletionRewards(c, icon);

                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "MapUIData":
            {
                BaseMapUIData icon = new BaseMapUIData(exports[index]);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "ArmorUIData":
            case "SprayUIData":
            case "ThemeUIData":
            case "ContractUIData":
            case "CurrencyUIData":
            case "GameModeUIData":
            case "CharacterUIData":
            case "SprayLevelUIData":
            case "EquippableUIData":
            case "PlayerCardUIData":
            case "Gun_UIData_Base_C":
            case "CharacterRoleUIData":
            case "EquippableSkinUIData":
            case "EquippableCharmUIData":
            case "EquippableSkinLevelUIData":
            case "EquippableSkinChromaUIData":
            case "EquippableCharmLevelUIData":
            {
                BaseUIData icon = new BaseUIData(exports, index);
                using (var ret = new SKBitmap(icon.Width + icon.AdditionalWidth, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "StreamedVideoDataAsset":
            {
                if (Globals.Game.ActualGame == EGame.Valorant && exports[index].GetExport <StructProperty>("Uuid") is StructProperty s && s.Value is FGuid uuid)
                {
                    Process.Start(new ProcessStartInfo
                        {
                            FileName = string.Format(
                                "http://valorant.dyn.riotcdn.net/x/videos/release-01.05/{0}_default_universal.mp4",
                                $"{uuid.A:x8}-{uuid.B >> 16:x4}-{uuid.B & 0xFFFF:x4}-{uuid.C >> 16:x4}-{uuid.C & 0xFFFF:x4}{uuid.D:x8}"),
                            UseShellExecute = true
                        });
                }
                return(false);
            }
            }
            return(false);
        }
Beispiel #18
0
        /// <summary>
        /// we draw based on the fist export type of the asset, no need to check others it's a waste of time
        /// i don't cache images because i don't wanna store a lot of SKCanvas in the memory
        /// </summary>
        /// <returns>true if an icon has been drawn</returns>
        public static bool TryDrawFortniteIcon(string assetPath, string exportType, IUExport export)
        {
            var    d           = new DirectoryInfo(assetPath);
            string assetName   = d.Name;
            string assetFolder = d.Parent.Name;

            if (Text.TypeFaces.NeedReload(false))
            {
                Text.TypeFaces = new Typefaces(); // when opening bundle creator settings without loading paks first
            }
            // please respect my wave if you wanna add a new exportType
            // Athena first, then Fort, thank you
            switch (exportType)
            {
            case "AthenaConsumableEmoteItemDefinition":
            case "AthenaSkyDiveContrailItemDefinition":
            case "AthenaLoadingScreenItemDefinition":
            case "AthenaVictoryPoseItemDefinition":
            case "AthenaPetCarrierItemDefinition":
            case "AthenaMusicPackItemDefinition":
            case "AthenaBattleBusItemDefinition":
            case "AthenaCharacterItemDefinition":
            case "AthenaBackpackItemDefinition":
            case "AthenaPickaxeItemDefinition":
            case "AthenaGadgetItemDefinition":
            case "AthenaGliderItemDefinition":
            case "AthenaDailyQuestDefinition":
            case "AthenaSprayItemDefinition":
            case "AthenaDanceItemDefinition":
            case "AthenaEmojiItemDefinition":
            case "AthenaItemWrapDefinition":
            case "AthenaToyItemDefinition":
            case "FortHeroType":
            case "FortTokenType":
            case "FortAbilityKit":
            case "FortWorkerType":
            case "FortBannerTokenType":
            case "FortVariantTokenType":
            case "FortFeatItemDefinition":
            case "FortStatItemDefinition":
            case "FortTrapItemDefinition":
            case "FortAmmoItemDefinition":
            case "FortQuestItemDefinition":
            case "FortBadgeItemDefinition":
            case "FortAwardItemDefinition":
            case "FortGadgetItemDefinition":
            case "FortPlaysetItemDefinition":
            case "FortGiftBoxItemDefinition":
            case "FortSpyTechItemDefinition":
            case "FortAccoladeItemDefinition":
            case "FortCardPackItemDefinition":
            case "FortDefenderItemDefinition":
            case "FortCurrencyItemDefinition":
            case "FortResourceItemDefinition":
            case "FortSchematicItemDefinition":
            case "FortIngredientItemDefinition":
            case "FortWeaponMeleeItemDefinition":
            case "FortContextTrapItemDefinition":
            case "FortPlayerPerksItemDefinition":
            case "FortPlaysetPropItemDefinition":
            case "FortHomebaseNodeItemDefinition":
            case "FortWeaponRangedItemDefinition":
            case "FortNeverPersistItemDefinition":
            case "FortPlaysetGrenadeItemDefinition":
            case "FortPersonalVehicleItemDefinition":
            case "FortHardcoreModifierItemDefinition":
            case "FortConsumableAccountItemDefinition":
            case "FortConversionControlItemDefinition":
            case "FortPersistentResourceItemDefinition":
            case "FortCampaignHeroLoadoutItemDefinition":
            case "FortConditionalResourceItemDefinition":
            case "FortChallengeBundleScheduleDefinition":
            case "FortWeaponMeleeDualWieldItemDefinition":
            case "FortDailyRewardScheduleTokenDefinition":
            {
                BaseIcon icon   = new BaseIcon(export, exportType, ref assetName);
                int      height = icon.Size + icon.AdditionalSize;
                using (var ret = new SKBitmap(icon.Size, height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            Rarity.DrawRarity(c, icon);
                        }

                        LargeSmallImage.DrawPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                            {
                                Text.DrawBackground(c, icon);
                                Text.DrawDisplayName(c, icon);
                                Text.DrawDescription(c, icon);
                                if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.Mini)
                                {
                                    if (!icon.ShortDescription.Equals(icon.DisplayName) && !icon.ShortDescription.Equals(icon.Description))
                                    {
                                        Text.DrawToBottom(c, icon, ETextSide.Left, icon.ShortDescription);
                                    }
                                    Text.DrawToBottom(c, icon, ETextSide.Right, icon.CosmeticSource);
                                }
                            }
                            UserFacingFlag.DrawUserFacingFlags(c, icon);

                            // has more things to show
                            if (height > icon.Size)
                            {
                                Statistics.DrawStats(c, icon);
                            }
                        }

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "FortMtxOfferData":
            {
                BaseOffer icon = new BaseOffer(export);
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            icon.DrawBackground(c);
                        }
                        icon.DrawImage(c);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "FortItemSeriesDefinition":
            {
                BaseIcon icon = new BaseIcon();
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        Serie.GetRarity(icon, export);
                        Rarity.DrawRarity(c, icon);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "PlaylistUserOptionEnum":
            case "PlaylistUserOptionBool":
            case "PlaylistUserOptionString":
            case "PlaylistUserOptionIntEnum":
            case "PlaylistUserOptionIntRange":
            case "PlaylistUserOptionColorEnum":
            case "PlaylistUserOptionFloatEnum":
            case "PlaylistUserOptionFloatRange":
            case "PlaylistUserOptionPrimaryAsset":
            case "PlaylistUserOptionCollisionProfileEnum":
            {
                BaseUserOption icon = new BaseUserOption(export);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        Watermark.DrawWatermark(c);     // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }

            case "FortChallengeBundleItemDefinition":
            {
                BaseBundle icon = new BaseBundle(export, assetFolder);
                using (var ret = new SKBitmap(icon.Width, icon.HeaderHeight + icon.AdditionalSize, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        HeaderStyle.DrawHeaderPaint(c, icon);
                        HeaderStyle.DrawHeaderText(c, icon);
                        QuestStyle.DrawQuests(c, icon);
                        QuestStyle.DrawCompletionRewards(c, icon);

                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }
                return(true);
            }
            }
            return(false);
        }
Beispiel #19
0
            static EditorHelper()
            {
                headerStyle = new HeaderStyle();

                defaultAnimationCurve = new AnimationCurve(new Keyframe(0.0f, 1.0f, 0.0f, 0.0f), new Keyframe(1.0f, 0.0f, 0.0f, 0.0f));
            }
 /// <summary>
 /// Update the palette styles using a header style.
 /// </summary>
 /// <param name="headerStyle">New header style.</param>
 public void SetStyles(HeaderStyle headerStyle)
 {
     switch (headerStyle)
     {
         case HeaderStyle.Primary:
             SetStyles(PaletteBackStyle.HeaderPrimary,
                       PaletteBorderStyle.HeaderPrimary,
                       PaletteContentStyle.HeaderPrimary);
             break;
         case HeaderStyle.Secondary:
             SetStyles(PaletteBackStyle.HeaderSecondary,
                       PaletteBorderStyle.HeaderSecondary,
                       PaletteContentStyle.HeaderSecondary);
             break;
         case HeaderStyle.DockActive:
             SetStyles(PaletteBackStyle.HeaderDockActive,
                       PaletteBorderStyle.HeaderDockActive,
                       PaletteContentStyle.HeaderDockActive);
             break;
         case HeaderStyle.DockInactive:
             SetStyles(PaletteBackStyle.HeaderDockInactive,
                       PaletteBorderStyle.HeaderDockInactive,
                       PaletteContentStyle.HeaderDockInactive);
             break;
         case HeaderStyle.Form:
             SetStyles(PaletteBackStyle.HeaderForm,
                       PaletteBorderStyle.HeaderForm,
                       PaletteContentStyle.HeaderForm);
             break;
         case HeaderStyle.Calendar:
             SetStyles(PaletteBackStyle.HeaderCalendar,
                       PaletteBorderStyle.HeaderCalendar,
                       PaletteContentStyle.HeaderCalendar);
             break;
         case HeaderStyle.Custom1:
             SetStyles(PaletteBackStyle.HeaderCustom1,
                       PaletteBorderStyle.HeaderCustom1,
                       PaletteContentStyle.HeaderCustom1);
             break;
         case HeaderStyle.Custom2:
             SetStyles(PaletteBackStyle.HeaderCustom2,
                       PaletteBorderStyle.HeaderCustom2,
                       PaletteContentStyle.HeaderCustom2);
             break;
         default:
             // Should never happen!
             Debug.Assert(false);
             break;
     }
 }
Beispiel #21
0
 private void ResetHeaderStyle()
 {
     HeaderStyle = HeaderStyle.Primary;
 }
Beispiel #22
0
 private void ResetCalendarHeaderStyle()
 {
     CalendarHeaderStyle = HeaderStyle.Calendar;
 }
Beispiel #23
0
        private void SetHeaderStyle(ViewDrawDocker drawDocker,
                                    PaletteTripleMetricRedirect palette,
                                    HeaderStyle style)
        {
            palette.SetStyles(style);

            switch (style)
            {
            case HeaderStyle.Primary:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetPrimary,
                                                PaletteMetricPadding.HeaderButtonPaddingPrimary);
                break;

            case HeaderStyle.Secondary:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetSecondary,
                                                PaletteMetricPadding.HeaderButtonPaddingSecondary);
                break;

            case HeaderStyle.DockActive:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetDockActive,
                                                PaletteMetricPadding.HeaderButtonPaddingDockActive);
                break;

            case HeaderStyle.DockInactive:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetDockInactive,
                                                PaletteMetricPadding.HeaderButtonPaddingDockInactive);
                break;

            case HeaderStyle.Form:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetForm,
                                                PaletteMetricPadding.HeaderButtonPaddingForm);
                break;

            case HeaderStyle.Calendar:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetCalendar,
                                                PaletteMetricPadding.HeaderButtonPaddingCalendar);
                break;

            case HeaderStyle.Custom1:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetCustom1,
                                                PaletteMetricPadding.HeaderButtonPaddingCustom1);
                break;

            case HeaderStyle.Custom2:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetCustom2,
                                                PaletteMetricPadding.HeaderButtonPaddingCustom2);
                break;

            case HeaderStyle.Custom3:
                _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                PaletteMetricInt.HeaderButtonEdgeInsetCustom3,
                                                PaletteMetricPadding.HeaderButtonPaddingCustom3);
                break;

            default:
                // Should never happen!
                Debug.Assert(false);
                break;
            }
        }
        public override Task WriteToStreamAsync(Type type, object value, System.IO.Stream writeStream, System.Net.Http.HttpContent content, System.Net.TransportContext transportContext)
        {
            // Create a worksheet
            var package = new ExcelPackage();

            package.Workbook.Worksheets.Add("Data");
            var worksheet = package.Workbook.Worksheets[1];

            int rowCount  = 0;
            var valueType = value.GetType();

            // Apply cell styles.
            CellStyle?.Invoke(worksheet.Cells.Style);

            // Get the item type.
            var itemType = (util.IsSimpleType(valueType))
                ? null
                : util.GetEnumerableItemType(valueType);

            // If a single object was passed, treat it like a list with one value.
            if (itemType == null)
            {
                itemType = valueType;
                value    = new[] { value };
            }

            // Enumerations of primitive types are also handled separately, since they have
            // no properties to serialise (and thus, no headers or attributes to consider).
            if (util.IsSimpleType(itemType))
            {
                // Can't convert IEnumerable<primitive> to IEnumerable<object>
                var values = (IEnumerable)value;

                foreach (var val in values)
                {
                    AppendRow(new[] { val }, worksheet, ref rowCount);
                }

                // Autofit cells if specified.
                if (AutoFit)
                {
                    worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
                }

                // Save and done.
                return(Task.Factory.StartNew(() => package.SaveAs(writeStream)));
            }

            // What remains is an enumeration of object types.
            var serialisableMembers = util.GetMemberNames(itemType);

            var properties = (from p in itemType.GetProperties()
                              where p.CanRead & p.GetGetMethod().IsPublic & p.GetGetMethod().GetParameters().Length == 0
                              select p).ToList();

            var fields    = new List <string>();
            var fieldInfo = new ExcelFieldInfoCollection();

            // Instantiate field names and fieldInfo lists with serialisable members.
            foreach (var field in serialisableMembers)
            {
                var propName = field;
                var prop     = properties.FirstOrDefault(p => p.Name == propName);

                if (prop == null)
                {
                    continue;
                }

                fields.Add(field);
                fieldInfo.Add(new ExcelFieldInfo(field, util.GetAttribute <ExcelColumnAttribute>(prop)));
            }

            var props = itemType.GetProperties().ToList();

            foreach (var prop in props)
            {
                var attributes = prop.GetCustomAttributes(true);
                foreach (var attribute in attributes)
                {
                    var propertyName = prop.Name;
                    if (!fieldInfo.Contains(propertyName))
                    {
                        continue;
                    }

                    string displayFormatString    = null;
                    var    displayFormatAttribute = (DisplayFormatAttribute)prop.GetCustomAttributes(typeof(DisplayFormatAttribute), true).FirstOrDefault();
                    if (displayFormatAttribute != null)
                    {
                        displayFormatString = displayFormatAttribute.DataFormatString;
                    }

                    string displayName          = null;
                    var    displayNameAttribute = (DisplayNameAttribute)prop.GetCustomAttributes(typeof(DisplayNameAttribute), true).FirstOrDefault();
                    if (displayNameAttribute != null)
                    {
                        displayName = displayNameAttribute.DisplayName;
                    }

                    var field = fieldInfo[propertyName];
                    if (!field.IsExcelHeaderDefined)
                    {
                        field.Header = propertyName;
                    }

                    if (!field.IsExcelHeaderDefined)
                    {
                        field.Header = displayName ?? propertyName;
                    }

                    var excelAttribute = attribute as ExcelColumnAttribute;
                    if (excelAttribute != null && excelAttribute.UseDisplayFormatString)
                    {
                        field.FormatString = displayFormatString;
                    }
                }
            }

            if (fields.Count == 0)
            {
                return(Task.Factory.StartNew(() => package.SaveAs(writeStream)));
            }

            // Add header row
            AppendRow((from f in fieldInfo select f.Header).ToList(), worksheet, ref rowCount);

            var data = value as IEnumerable <object>;

            // Output each row of data
            if (data?.FirstOrDefault() != null)
            {
                foreach (var dataObject in data)
                {
                    var row = new List <object>();

                    for (int i = 0; i <= fields.Count - 1; i++)
                    {
                        var cellValue = GetFieldOrPropertyValue(dataObject, fields[i]);
                        var info      = fieldInfo[i];

                        // Boolean transformations.
                        if (info.ExcelAttribute != null && info.ExcelAttribute.TrueValue != null && cellValue.Equals("True"))
                        {
                            row.Add(info.ExcelAttribute.TrueValue);
                        }

                        else if (info.ExcelAttribute != null && info.ExcelAttribute.FalseValue != null && cellValue.Equals("False"))
                        {
                            row.Add(info.ExcelAttribute.FalseValue);
                        }

                        else if (!string.IsNullOrWhiteSpace(info.FormatString) & string.IsNullOrEmpty(info.ExcelNumberFormat))
                        {
                            row.Add(string.Format(info.FormatString, cellValue));
                        }

                        else
                        {
                            row.Add(cellValue);
                        }
                    }

                    AppendRow(row.ToArray(), worksheet, ref rowCount);
                }
            }

            // Enforce any attributes on columns.
            for (int i = 1; i <= fields.Count; i++)
            {
                if (!string.IsNullOrEmpty(fieldInfo[i - 1].ExcelNumberFormat))
                {
                    worksheet.Cells[2, i, rowCount, i].Style.Numberformat.Format = fieldInfo[i - 1].ExcelNumberFormat;
                }
            }

            // Header cell styles
            HeaderStyle?.Invoke(worksheet.Row(1).Style);
            if (FreezeHeader)
            {
                worksheet.View.FreezePanes(2, 1);
            }

            var cells = worksheet.Cells[worksheet.Dimension.Address];

            // Add autofilter and fit to max column width (if requested).
            if (AutoFilter)
            {
                cells.AutoFilter = AutoFilter;
            }
            if (AutoFit)
            {
                cells.AutoFitColumns();
            }

            // Set header row where specified.
            if (HeaderHeight.HasValue)
            {
                worksheet.Row(1).Height       = HeaderHeight.Value;
                worksheet.Row(1).CustomHeight = true;
            }

            return(Task.Factory.StartNew(() => package.SaveAs(writeStream)));
        }
Beispiel #25
0
 static CameraTransitionEditorHelper()
 {
     headerStyle = new HeaderStyle();
 }
Beispiel #26
0
        public CalendarioPage(CalendarioPageVM vm)
        {
            VM             = vm ?? new CalendarioPageVM();
            VM.UIPage      = this;
            BindingContext = VM;

            var calendar = new SfSchedule {
                ShowAppointmentsInline = true,
                ScheduleView           = ScheduleView.WeekView
            };

            #region Customization
            var headerStyle = new HeaderStyle();
            //headerStyle.TextSize = 15;
            //headerStyle.TextStyle
            headerStyle.TextColor = Color.Black;
            calendar.HeaderStyle  = headerStyle;
            #endregion

            ScheduleAppointmentMapping dataMapping = new ScheduleAppointmentMapping();
            dataMapping.SubjectMapping   = nameof(GoogleEventVM.Title);
            dataMapping.StartTimeMapping = nameof(GoogleEventVM.StartDate);
            dataMapping.EndTimeMapping   = nameof(GoogleEventVM.EndDate);
            dataMapping.ColorMapping     = nameof(GoogleEventVM.BackgroundColor);
            calendar.AppointmentMapping  = dataMapping;

            calendar.ScheduleCellTapped += async(object sender, ScheduleTappedEventArgs args) =>
            {
                var data   = args;
                var fine   = args.datetime.Add(TimeSpan.FromMinutes(calendar.TimeInterval));
                var events = VM.GetEventsFromDateTime(args.datetime, TimeSpan.FromMinutes(calendar.TimeInterval));
                if (events != null && events.Count > 0)
                {
                    var IsNuovoEvento       = false;
                    var stringaCrea         = "Crea evento";
                    var eventiListaStringhe = events.Select(x => x.Name).ToList();
                    eventiListaStringhe.Add(stringaCrea);

                    var stringaScelta = await DisplayActionSheet("Quale evento?", "Nessuno", null, eventiListaStringhe.ToArray());

                    if (stringaScelta == stringaCrea)
                    {
                        IsNuovoEvento = true;
                        await DoCrea(args.datetime, fine);

                        return;
                    }


                    var eventoScelto = VM.EventsObj.FirstOrDefault(x => x.Name == stringaScelta);
                    if (eventoScelto != null)
                    {
                        if (App.VM.user != null)
                        {
                            //se è modificabile, aprilo in edit
                            var eventoInterno = VM.EventiInterniObj.FirstOrDefault(x => x.data.RelatedGoogleEventID == eventoScelto.ID);
                            if (IsNuovoEvento || (eventoInterno != null && eventoInterno.data.RelatedOwnerGuid == App.VM.user.Guid))
                            {
                                var pageEditVM = new EventDetailEditVM {
                                    CalendarioVM = VM, ObjEvent = eventoScelto, ObjInternalEvent = eventoInterno,
                                    ObjAllEvents = VM.EventsObj
                                };
                                pageEditVM.DownloadData(false).ContinueWith(delegate {
                                    pageEditVM.UpdateVM();
                                });
                                await Navigation.PushAsync(new EventDetailViewEdit(pageEditVM));
                            }
                            else
                            {                              //altrimenti, aprilo in read only
                                var pageViewVM = new EventDetailViewModel {
                                    ObjEvent = eventoScelto
                                };
                                pageViewVM.DownloadData().ContinueWith(delegate
                                {
                                    pageViewVM.UpdateVM();
                                });
                                await Navigation.PushAsync(new EventDetailView(pageViewVM));
                            }
                        }
                        else
                        {                          //altrimenti, aprilo in read only
                            var pageViewVM = new EventDetailViewModel {
                                ObjEvent = eventoScelto
                            };
                            pageViewVM.UpdateVM();                             //non c'è bisogno qui di fare il download data perchè già ho gli oggetti interi che sto passando
                            await Navigation.PushAsync(new EventDetailView(pageViewVM));
                        }
                    }
                    else
                    {
                        //se non ho scelto nessun evento torna indietro
                        return;
                    }
                }
                else if (events == null || events.Count == 0)
                {
                    //se non ci sono già eventi in questa fascia oraria, permettine la creazione
                    await DoCrea(args.datetime, fine);
                }
            };
            //var listaVacanze = new List<DateTime> { };
            //listaVacanze.Add(DateTime.Now);
            //calendar.BlackoutDates = listaVacanze;

            calendar.SetBinding(SfSchedule.DataSourceProperty, new Binding(nameof(CalendarioPageVM.Items)));


            var loadingText = new Label {
                Text = "Caricamento in corso", HorizontalTextAlignment = TextAlignment.Center
            };
            loadingText.SetBinding(View.IsVisibleProperty, nameof(ViewModelBase.IsLoadingData));

            var grid = new Grid {
                RowDefinitions = new RowDefinitionCollection {
                    new RowDefinition {
                        Height = GridLength.Auto
                    },
                    new RowDefinition {
                        Height = GridLength.Star
                    },
                }
            };
            grid.AddChild(loadingText, 0, 0);
            grid.AddChild(calendar, 1, 0);
            this.Content = grid;
        }
Beispiel #27
0
 static EditorHelper()
 {
     headerStyle = new HeaderStyle();
 }
        /// <summary>
        /// Initialize a new instance of the KryptonMonthCalendar class.
        /// </summary>
        public KryptonMonthCalendar()
        {
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);

            // Create the palette storage
            _stateCommon = new PaletteMonthCalendarRedirect(Redirector, NeedPaintDelegate);
            _stateFocus = new PaletteMonthCalendarStateRedirect(Redirector, NeedPaintDelegate);
            _stateBolded = new PaletteMonthCalendarStateRedirect(Redirector, NeedPaintDelegate);
            _stateToday = new PaletteMonthCalendarStateRedirect(Redirector, NeedPaintDelegate);

            // Basic state storage
            _stateDisabled = new PaletteMonthCalendarDoubleState(_stateCommon, NeedPaintDelegate);
            _stateNormal = new PaletteMonthCalendarDoubleState(_stateCommon, NeedPaintDelegate);
            _stateTracking = new PaletteMonthCalendarState(_stateCommon, NeedPaintDelegate);
            _statePressed = new PaletteMonthCalendarState(_stateCommon, NeedPaintDelegate);
            _stateCheckedNormal = new PaletteMonthCalendarState(_stateCommon, NeedPaintDelegate);
            _stateCheckedTracking = new PaletteMonthCalendarState(_stateCommon, NeedPaintDelegate);
            _stateCheckedPressed = new PaletteMonthCalendarState(_stateCommon, NeedPaintDelegate);

            // Bold overrides
            _boldedDisabled = new PaletteTripleOverride(_stateBolded.Day, _stateDisabled.Day, PaletteState.BoldedOverride);
            _boldedNormal = new PaletteTripleOverride(_stateBolded.Day, _stateNormal.Day, PaletteState.BoldedOverride);
            _boldedTracking = new PaletteTripleOverride(_stateBolded.Day, _stateTracking.Day, PaletteState.BoldedOverride);
            _boldedPressed = new PaletteTripleOverride(_stateBolded.Day, _statePressed.Day, PaletteState.BoldedOverride);
            _boldedCheckedNormal = new PaletteTripleOverride(_stateBolded.Day, _stateCheckedNormal.Day, PaletteState.BoldedOverride);
            _boldedCheckedTracking = new PaletteTripleOverride(_stateBolded.Day, _stateCheckedTracking.Day, PaletteState.BoldedOverride);
            _boldedCheckedPressed = new PaletteTripleOverride(_stateBolded.Day, _stateCheckedPressed.Day, PaletteState.BoldedOverride);

            // Today overrides
            _todayDisabled = new PaletteTripleOverride(_stateToday.Day, _boldedDisabled, PaletteState.TodayOverride);
            _todayNormal = new PaletteTripleOverride(_stateToday.Day, _boldedNormal, PaletteState.TodayOverride);
            _todayTracking = new PaletteTripleOverride(_stateToday.Day, _boldedTracking, PaletteState.TodayOverride);
            _todayPressed = new PaletteTripleOverride(_stateToday.Day, _boldedPressed, PaletteState.TodayOverride);
            _todayCheckedNormal = new PaletteTripleOverride(_stateToday.Day, _boldedCheckedNormal, PaletteState.TodayOverride);
            _todayCheckedTracking = new PaletteTripleOverride(_stateToday.Day, _boldedCheckedTracking, PaletteState.TodayOverride);
            _todayCheckedPressed = new PaletteTripleOverride(_stateToday.Day, _boldedCheckedPressed, PaletteState.TodayOverride);

            // Focus overrides added to bold overrides
            _overrideDisabled = new PaletteTripleOverride(_stateFocus.Day, _todayDisabled, PaletteState.FocusOverride);
            _overrideNormal = new PaletteTripleOverride(_stateFocus.Day, _todayNormal, PaletteState.FocusOverride);
            _overrideTracking = new PaletteTripleOverride(_stateFocus.Day, _todayTracking, PaletteState.FocusOverride);
            _overridePressed = new PaletteTripleOverride(_stateFocus.Day, _todayPressed, PaletteState.FocusOverride);
            _overrideCheckedNormal = new PaletteTripleOverride(_stateFocus.Day, _todayCheckedNormal, PaletteState.FocusOverride);
            _overrideCheckedTracking = new PaletteTripleOverride(_stateFocus.Day, _todayCheckedTracking, PaletteState.FocusOverride);
            _overrideCheckedPressed = new PaletteTripleOverride(_stateFocus.Day, _todayCheckedPressed, PaletteState.FocusOverride);

            // Create view that is used by standalone control as well as this context menu element
            _drawMonths = new ViewLayoutMonths(null, null, null, this, Redirector, NeedPaintDelegate);

            // Place the months layout view inside a standard docker which provides the control border
            _drawDocker = new ViewDrawDocker(_stateNormal.Back, _stateNormal.Border, null);
            _drawDocker.Add(_drawMonths, ViewDockStyle.Fill);

            // Create the view manager instance
            ViewManager = new ViewManager(this, _drawDocker);

            // Set default property values
            _dimensions = new Size(1, 1);
            _firstDayOfWeek = Day.Default;
            _headerStyle = HeaderStyle.Calendar;
            _dayStyle = ButtonStyle.CalendarDay;
            _dayOfWeekStyle = ButtonStyle.CalendarDay;
            _selectionStart = DateTime.Now.Date;
            _selectionEnd = _selectionStart;
            _todayDate = _selectionStart;
            _minDate = DateTimePicker.MinimumDateTime;
            _maxDate = DateTimePicker.MaximumDateTime;
            _maxSelectionCount = 7;
            _annualDays = new int[12];
            _annualDates = new DateTimeList();
            _monthlyDates = new DateTimeList();
            _dates = new DateTimeList();
            _scrollChange = 0;
            _todayFormat = "d";
        }
        /// <summary>
        /// Initialize a new instance of the KryptonContextMenuMonthCalendar class.
        /// </summary>
        public KryptonContextMenuMonthCalendar()
        {
            // Default fields
            _autoClose = true;
            _enabled = true;
            _showToday = true;
            _showTodayCircle = true;
            _closeOnTodayClick = false;
            _dimensions = new Size(1, 1);
            _firstDayOfWeek = Day.Default;
            _headerStyle = HeaderStyle.Calendar;
            _dayStyle = ButtonStyle.CalendarDay;
            _dayOfWeekStyle = ButtonStyle.CalendarDay;
            _selectionStart = DateTime.Now.Date;
            _selectionEnd = _selectionStart;
            _todayDate = _selectionStart;
            _minDate = DateTimePicker.MinimumDateTime;
            _maxDate = DateTimePicker.MaximumDateTime;
            _maxSelectionCount = 7;
            _annualDays = new int[12];
            _annualDates = new DateTimeList();
            _monthlyDates = new DateTimeList();
            _dates = new DateTimeList();
            _today = _defaultToday;
            _todayFormat = "d";

            // Create the common/override state storage
            _stateCommon = new PaletteMonthCalendarRedirect();
            _stateFocus = new PaletteMonthCalendarStateRedirect();
            _stateBolded = new PaletteMonthCalendarStateRedirect();
            _stateToday = new PaletteMonthCalendarStateRedirect();

            // Basic state storage
            _stateDisabled = new PaletteMonthCalendarDoubleState(_stateCommon);
            _stateNormal = new PaletteMonthCalendarDoubleState(_stateCommon);
            _stateTracking = new PaletteMonthCalendarState(_stateCommon);
            _statePressed = new PaletteMonthCalendarState(_stateCommon);
            _stateCheckedNormal = new PaletteMonthCalendarState(_stateCommon);
            _stateCheckedTracking = new PaletteMonthCalendarState(_stateCommon);
            _stateCheckedPressed = new PaletteMonthCalendarState(_stateCommon);

            // Bold overrides
            _boldedDisabled = new PaletteTripleOverride(_stateBolded.Day, _stateDisabled.Day, PaletteState.BoldedOverride);
            _boldedNormal = new PaletteTripleOverride(_stateBolded.Day, _stateNormal.Day, PaletteState.BoldedOverride);
            _boldedTracking = new PaletteTripleOverride(_stateBolded.Day, _stateTracking.Day, PaletteState.BoldedOverride);
            _boldedPressed = new PaletteTripleOverride(_stateBolded.Day, _statePressed.Day, PaletteState.BoldedOverride);
            _boldedCheckedNormal = new PaletteTripleOverride(_stateBolded.Day, _stateCheckedNormal.Day, PaletteState.BoldedOverride);
            _boldedCheckedTracking = new PaletteTripleOverride(_stateBolded.Day, _stateCheckedTracking.Day, PaletteState.BoldedOverride);
            _boldedCheckedPressed = new PaletteTripleOverride(_stateBolded.Day, _stateCheckedPressed.Day, PaletteState.BoldedOverride);

            // Today overrides
            _todayDisabled = new PaletteTripleOverride(_stateToday.Day, _boldedDisabled, PaletteState.TodayOverride);
            _todayNormal = new PaletteTripleOverride(_stateToday.Day, _boldedNormal, PaletteState.TodayOverride);
            _todayTracking = new PaletteTripleOverride(_stateToday.Day, _boldedTracking, PaletteState.TodayOverride);
            _todayPressed = new PaletteTripleOverride(_stateToday.Day, _boldedPressed, PaletteState.TodayOverride);
            _todayCheckedNormal = new PaletteTripleOverride(_stateToday.Day, _boldedCheckedNormal, PaletteState.TodayOverride);
            _todayCheckedTracking = new PaletteTripleOverride(_stateToday.Day, _boldedCheckedTracking, PaletteState.TodayOverride);
            _todayCheckedPressed = new PaletteTripleOverride(_stateToday.Day, _boldedCheckedPressed, PaletteState.TodayOverride);

            // Focus overrides added to bold overrides
            _overrideDisabled = new PaletteTripleOverride(_stateFocus.Day, _todayDisabled, PaletteState.FocusOverride);
            _overrideNormal = new PaletteTripleOverride(_stateFocus.Day, _todayNormal, PaletteState.FocusOverride);
            _overrideTracking = new PaletteTripleOverride(_stateFocus.Day, _todayTracking, PaletteState.FocusOverride);
            _overridePressed = new PaletteTripleOverride(_stateFocus.Day, _todayPressed, PaletteState.FocusOverride);
            _overrideCheckedNormal = new PaletteTripleOverride(_stateFocus.Day, _todayCheckedNormal, PaletteState.FocusOverride);
            _overrideCheckedTracking = new PaletteTripleOverride(_stateFocus.Day, _todayCheckedTracking, PaletteState.FocusOverride);
            _overrideCheckedPressed = new PaletteTripleOverride(_stateFocus.Day, _todayCheckedPressed, PaletteState.FocusOverride);
        }
Beispiel #30
0
 public HeaderAreaAttribute(string label, HeaderStyle style = HeaderStyle.Unity)
 {
     Label = label;
     Style = style;
 }
        private void SetHeaderStyle(ViewDrawDocker drawDocker,
                                    PaletteTripleMetricRedirect palette,
                                    HeaderStyle style)
        {
            palette.SetStyles(style);

            switch (style)
            {
                case HeaderStyle.Primary:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetPrimary,
                                                    PaletteMetricPadding.HeaderButtonPaddingPrimary);
                    break;
                case HeaderStyle.Secondary:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetSecondary,
                                                    PaletteMetricPadding.HeaderButtonPaddingSecondary);
                    break;
                case HeaderStyle.DockActive:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetDockActive,
                                                    PaletteMetricPadding.HeaderButtonPaddingDockActive);
                    break;
                case HeaderStyle.DockInactive:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetDockInactive,
                                                    PaletteMetricPadding.HeaderButtonPaddingDockInactive);
                    break;
                case HeaderStyle.Form:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetForm,
                                                    PaletteMetricPadding.HeaderButtonPaddingForm);
                    break;
                case HeaderStyle.Calendar:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetCalendar,
                                                    PaletteMetricPadding.HeaderButtonPaddingCalendar);
                    break;
                case HeaderStyle.Custom1:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetCustom1,
                                                    PaletteMetricPadding.HeaderButtonPaddingCustom1);
                    break;
                case HeaderStyle.Custom2:
                    _buttonManager.SetDockerMetrics(drawDocker, palette,
                                                    PaletteMetricInt.HeaderButtonEdgeInsetCustom2,
                                                    PaletteMetricPadding.HeaderButtonPaddingCustom2);
                    break;
                default:
                    // Should never happen!
                    Debug.Assert(false);
                    break;
            }
        }
Beispiel #32
0
        TableVM prepareSampleViewmodel()
        {
            var model = new TableVM()
            {
                TestTable = new Table(
                    new Table.PageModel("First Table", 4, true))
                {
                    Responsive       = true,
                    UseVerticalTable = true
                }
            };

            var headerStyle = new HeaderStyle();
            var rowStyle    = new BasicStyle(Color.Red, textBold: true, htmlClasses: "text-danger");

            var rnd = new Random();

            model.TestTable
            .AddRow(new Row(RowEnum.Header)
                    .AddCell(new Cell(values: new StringValue("Rows"), style: headerStyle))
                    .UpdateTextPosition(TextPositionEnum.Left)
                    .AddCell(new Cell(values: new StringValue("Col1"), style: headerStyle))
                    .AddCell(new Cell(values: new StringValue("Col2"), style: headerStyle))
                    .AddCell(new Cell(values: new StringValue("Col3"), style: headerStyle))
                    .AddCell(new Cell(values: new StringValue("Col4"), style: headerStyle))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row1"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100)))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row2"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Int)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Single)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Double)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Triple))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row3"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100)))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row4"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Int)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Single)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Double)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Triple))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row5"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100)))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row6"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Int)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Single)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Double)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Triple))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row7"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100))))
                            .AddCell(new Cell(values: new IntValue(rnd.Next(-100, 100)))))
                    .AddRow(new Row()
                            .AddCell(new Cell(values: new StringValue("Row8"), style: rowStyle))
                            .UpdateTextPosition(TextPositionEnum.Left)
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Int)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Single)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Double)))
                            .AddCell(new Cell(values: new DoubleValue(rnd.NextDouble() * 100, ValueEnum.Triple)))));

            return(model);
        }
Beispiel #33
0
        /// <summary>
        /// i don't cache images because i don't wanna store a lot of SKCanvas in the memory
        /// </summary>
        /// <returns>true if an icon has been drawn</returns>
        public static bool TryDrawIcon(string assetPath, FName[] exportTypes, IUExport[] exports)
        {
            var    d           = new DirectoryInfo(assetPath);
            string assetName   = d.Name;
            string assetFolder = d.Parent.Name;

            if (Text.TypeFaces.NeedReload(false))
            {
                Text.TypeFaces = new Typefaces(); // when opening bundle creator settings without loading paks first
            }
            int index;
            {
                if (Globals.Game.ActualGame == EGame.Valorant || Globals.Game.ActualGame == EGame.Spellbreak)
                {
                    index = 1;
                }
                else
                {
                    index = 0;
                }
            }
            string exportType;

            {
                if (exportTypes.Length > index && (exportTypes[index].String == "BlueprintGeneratedClass" || exportTypes[index].String == "FortWeaponAdditionalData_AudioVisualizerData" || exportTypes[index].String == "FortWeaponAdditionalData_SingleWieldState"))
                {
                    index++;
                }

                exportType = exportTypes.Length > index ? exportTypes[index].String : string.Empty;
            }

            switch (exportType)
            {
            case "AthenaConsumableEmoteItemDefinition":
            case "AthenaSkyDiveContrailItemDefinition":
            case "AthenaLoadingScreenItemDefinition":
            case "AthenaVictoryPoseItemDefinition":
            case "AthenaPetCarrierItemDefinition":
            case "AthenaMusicPackItemDefinition":
            case "AthenaBattleBusItemDefinition":
            case "AthenaCharacterItemDefinition":
            case "FortAlterationItemDefinition":
            case "AthenaBackpackItemDefinition":
            case "AthenaPickaxeItemDefinition":
            case "AthenaGadgetItemDefinition":
            case "AthenaGliderItemDefinition":
            case "AthenaDailyQuestDefinition":
            case "FortBackpackItemDefinition":
            case "AthenaSprayItemDefinition":
            case "AthenaDanceItemDefinition":
            case "AthenaEmojiItemDefinition":
            case "AthenaItemWrapDefinition":
            case "AthenaToyItemDefinition":
            case "FortHeroType":
            case "FortTokenType":
            case "FortAbilityKit":
            case "FortWorkerType":
            case "RewardGraphToken":
            case "FortBannerTokenType":
            case "FortVariantTokenType":
            case "FortDecoItemDefinition":
            case "FortFeatItemDefinition":
            case "FortStatItemDefinition":
            case "FortTrapItemDefinition":
            case "FortAmmoItemDefinition":
            case "FortQuestItemDefinition":
            case "FortBadgeItemDefinition":
            case "FortAwardItemDefinition":
            case "FortGadgetItemDefinition":
            case "FortPlaysetItemDefinition":
            case "FortGiftBoxItemDefinition":
            case "FortSpyTechItemDefinition":
            case "FortOutpostItemDefinition":
            case "FortAccoladeItemDefinition":
            case "FortCardPackItemDefinition":
            case "FortDefenderItemDefinition":
            case "FortCurrencyItemDefinition":
            case "FortResourceItemDefinition":
            case "FortCodeTokenItemDefinition":
            case "FortSchematicItemDefinition":
            case "FortExpeditionItemDefinition":
            case "FortIngredientItemDefinition":
            case "FortAccountBuffItemDefinition":
            case "FortWeaponMeleeItemDefinition":
            case "FortContextTrapItemDefinition":
            case "FortPlayerPerksItemDefinition":
            case "FortPlaysetPropItemDefinition":
            case "FortHomebaseNodeItemDefinition":
            case "FortWeaponRangedItemDefinition":
            case "FortNeverPersistItemDefinition":
            case "RadioContentSourceItemDefinition":
            case "FortPlaysetGrenadeItemDefinition":
            case "FortPersonalVehicleItemDefinition":
            case "FortGameplayModifierItemDefinition":
            case "FortHardcoreModifierItemDefinition":
            case "FortConsumableAccountItemDefinition":
            case "FortConversionControlItemDefinition":
            case "FortAccountBuffCreditItemDefinition":
            case "FortEventCurrencyItemDefinitionRedir":
            case "FortPersistentResourceItemDefinition":
            case "FortHomebaseBannerIconItemDefinition":
            case "FortCampaignHeroLoadoutItemDefinition":
            case "FortConditionalResourceItemDefinition":
            case "FortChallengeBundleScheduleDefinition":
            case "FortWeaponMeleeDualWieldItemDefinition":
            case "FortDailyRewardScheduleTokenDefinition":
            case "FortCreativeRealEstatePlotItemDefinition":
            {
                BaseIcon icon   = new BaseIcon(exports[index], exportType, ref assetName);
                int      height = icon.Size + icon.AdditionalSize;
                using (var ret = new SKBitmap(icon.Size, height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            Rarity.DrawRarity(c, icon);
                        }

                        LargeSmallImage.DrawPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                            {
                                Text.DrawBackground(c, icon);
                                Text.DrawDisplayName(c, icon);
                                Text.DrawDescription(c, icon);
                                if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.Mini)
                                {
                                    if (!icon.ShortDescription.Equals(icon.DisplayName) &&
                                        !icon.ShortDescription.Equals(icon.Description))
                                    {
                                        Text.DrawToBottom(c, icon, ETextSide.Left, icon.ShortDescription);
                                    }
                                    Text.DrawToBottom(c, icon, ETextSide.Right, icon.CosmeticSource);
                                }
                            }

                            UserFacingFlag.DrawUserFacingFlags(c, icon);

                            // has more things to show
                            if (height > icon.Size)
                            {
                                Statistics.DrawStats(c, icon);
                            }
                        }

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "FortPlaylistAthena":
            {
                BasePlaylist icon = new BasePlaylist(exports[index]);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            Rarity.DrawRarity(c, icon);
                        }

                        LargeSmallImage.DrawNotStretchedPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                            {
                                Text.DrawBackground(c, icon);
                                Text.DrawDisplayName(c, icon);
                                Text.DrawDescription(c, icon);
                            }
                        }

                        // Watermark.DrawWatermark(c); // boi why would you watermark something you don't own ¯\_(ツ)_/¯
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "AthenaSeasonItemDefinition":
            {
                BaseSeason icon = new BaseSeason(exports[index], assetFolder);
                using (var ret = new SKBitmap(icon.Width, icon.HeaderHeight + icon.AdditionalSize,
                                              SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "FortMtxOfferData":
            {
                BaseOffer icon = new BaseOffer(exports[index]);
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            icon.DrawBackground(c);
                        }

                        icon.DrawImage(c);

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "MaterialInstanceConstant":
            {
                if (assetFolder.Equals("MI_OfferImages"))
                {
                    BaseOfferMaterial icon = new BaseOfferMaterial(exports[index]);
                    using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Premul))
                        using (var c = new SKCanvas(ret))
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                            {
                                icon.DrawBackground(c);
                            }

                            icon.DrawImage(c);

                            Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                            ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                        }

                    return(true);
                }

                return(false);
            }

            case "FortItemSeriesDefinition":
            {
                BaseIcon icon = new BaseIcon();
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        Serie.GetRarity(icon, exports[index]);
                        Rarity.DrawRarity(c, icon);

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "PlaylistUserOptionEnum":
            case "PlaylistUserOptionBool":
            case "PlaylistUserOptionString":
            case "PlaylistUserOptionIntEnum":
            case "PlaylistUserOptionIntRange":
            case "PlaylistUserOptionColorEnum":
            case "PlaylistUserOptionFloatEnum":
            case "PlaylistUserOptionFloatRange":
            case "PlaylistUserOptionPrimaryAsset":
            case "PlaylistUserOptionCollisionProfileEnum":
            {
                BaseUserOption icon = new BaseUserOption(exports[index]);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "FortChallengeBundleItemDefinition":
            {
                BaseBundle icon = new BaseBundle(exports[index], assetFolder);
                using (var ret = new SKBitmap(icon.Width, icon.HeaderHeight + icon.AdditionalSize,
                                              SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        HeaderStyle.DrawHeaderPaint(c, icon);
                        HeaderStyle.DrawHeaderText(c, icon);
                        QuestStyle.DrawQuests(c, icon);
                        QuestStyle.DrawCompletionRewards(c, icon);

                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "FortItemAccessTokenType":
            {
                BaseItemAccess icon = new BaseItemAccess(exports[index]);
                using (var ret = new SKBitmap(icon.Size, icon.Size, SKColorType.Rgba8888, SKAlphaType.Opaque))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "MapUIData":
            {
                BaseMapUIData icon = new BaseMapUIData(exports[index]);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "ArmorUIData":
            case "SprayUIData":
            case "ThemeUIData":
            case "ContractUIData":
            case "CurrencyUIData":
            case "GameModeUIData":
            case "CharacterUIData":
            case "SprayLevelUIData":
            case "EquippableUIData":
            case "PlayerCardUIData":
            case "Gun_UIData_Base_C":
            case "CharacterRoleUIData":
            case "EquippableSkinUIData":
            case "EquippableCharmUIData":
            case "EquippableSkinLevelUIData":
            case "EquippableSkinChromaUIData":
            case "EquippableCharmLevelUIData":
            {
                BaseUIData icon = new BaseUIData(exports, index);
                using (var ret = new SKBitmap(icon.Width + icon.AdditionalWidth, icon.Height, SKColorType.Rgba8888,
                                              SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        icon.Draw(c);

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            //case "StreamedVideoDataAsset": // must find a way to automatically gets the right version in the url
            //    {
            //        if (Globals.Game.ActualGame == EGame.Valorant && exports[index].GetExport<StructProperty>("Uuid") is StructProperty s && s.Value is FGuid uuid)
            //        {
            //            Process.Start(new ProcessStartInfo
            //            {
            //                FileName = string.Format(
            //                    "http://valorant.dyn.riotcdn.net/x/videos/release-01.05/{0}_default_universal.mp4",
            //                    $"{uuid.A:x8}-{uuid.B >> 16:x4}-{uuid.B & 0xFFFF:x4}-{uuid.C >> 16:x4}-{uuid.C & 0xFFFF:x4}{uuid.D:x8}"),
            //                UseShellExecute = true
            //            });
            //        }
            //        return false;
            //    }
            case "GQuest":
            case "GAccolade":
            case "GCosmeticSkin":
            case "GCharacterPerk":
            case "GCosmeticTitle":
            case "GCosmeticBadge":
            case "GCosmeticEmote":
            case "GCosmeticTriumph":
            case "GCosmeticRunTrail":
            case "GCosmeticArtifact":
            case "GCosmeticDropTrail":
            {
                BaseGCosmetic icon = new BaseGCosmetic(exports[index], exportType);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign == EIconDesign.Flat)
                        {
                            icon.Draw(c);
                        }
                        else if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            Rarity.DrawRarity(c, icon);
                        }

                        LargeSmallImage.DrawPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground &&
                            (EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                        {
                            Text.DrawBackground(c, icon);
                            Text.DrawDisplayName(c, icon);
                            Text.DrawDescription(c, icon);
                        }

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            case "GCosmeticCard":
            {
                BaseGCosmetic icon = new BaseGCosmetic(exports[index], exportType);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign == EIconDesign.Flat)
                        {
                            icon.Draw(c);
                        }
                        else
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                            {
                                Rarity.DrawRarity(c, icon);
                            }
                        }

                        LargeSmallImage.DrawPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                            {
                                Text.DrawBackground(c, icon);
                                Text.DrawDisplayName(c, icon);
                                Text.DrawDescription(c, icon);
                            }
                        }

                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }

            // Battle Breakers
            case "WExpGenericAccountItemDefinition":
            {
                BaseBBDefinition icon = new BaseBBDefinition(exports[index], exportType);
                using (var ret = new SKBitmap(icon.Width, icon.Height, SKColorType.Rgba8888, SKAlphaType.Premul))
                    using (var c = new SKCanvas(ret))
                    {
                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if (icon.RarityBackgroundImage != null)
                            {
                                c.DrawBitmap(icon.RarityBackgroundImage, new SKRect(icon.Margin, icon.Margin, icon.Width - icon.Margin, icon.Height - icon.Margin),
                                             new SKPaint {
                                        FilterQuality = SKFilterQuality.High, IsAntialias = true
                                    });
                            }
                            else
                            {
                                Rarity.DrawRarity(c, icon);
                            }
                        }

                        LargeSmallImage.DrawPreviewImage(c, icon);

                        if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoBackground)
                        {
                            if ((EIconDesign)Properties.Settings.Default.AssetsIconDesign != EIconDesign.NoText)
                            {
                                Text.DrawBackground(c, icon);
                                Text.DrawDisplayName(c, icon);
                                Text.DrawDescription(c, icon);
                            }
                        }

                        Watermark.DrawWatermark(c); // watermark should only be applied on icons with width = 512
                        ImageBoxVm.imageBoxViewModel.Set(ret, assetName);
                    }

                return(true);
            }
            }

            return(false);
        }
        public Customization()
        {
            schedule = new SFSchedule();

            label.Text      = "Select the Schedule Type";
            label.TextColor = UIColor.Black;

            headerStyle     = new HeaderStyle();
            viewHeaderStyle = new SFViewHeaderStyle();

            schedule.HeaderHeight       = 30;
            schedule.MonthCellLoaded   += Schedule_MonthCellLoaded;
            schedule.AppointmentLoaded += Schedule_AppointmentLoaded;

            textbutton.SetTitle("Day View", UIControlState.Normal);
            textbutton.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
            textbutton.BackgroundColor     = UIColor.Clear;
            textbutton.SetTitleColor(UIColor.Black, UIControlState.Normal);
            textbutton.Hidden             = false;
            textbutton.Layer.BorderColor  = UIColor.FromRGB(246, 246, 246).CGColor;
            textbutton.Layer.BorderWidth  = 4;
            textbutton.Layer.CornerRadius = 8;
            textbutton.TouchUpInside     += ShowPicker;

            button.SetTitle("Done\t", UIControlState.Normal);
            button.HorizontalAlignment = UIControlContentHorizontalAlignment.Right;
            button.BackgroundColor     = UIColor.FromRGB(240, 240, 240);
            button.SetTitleColor(UIColor.Black, UIControlState.Normal);
            button.Hidden         = true;
            button.TouchUpInside += HidePicker;

            schedule.ItemsSource  = CreateAppointments();
            schedule.ScheduleView = SFScheduleView.SFScheduleViewDay;

            schedule.DayViewSettings = new DayViewSettings();
            schedule.DayViewSettings.TimeTextColor       = UIColor.FromRGB(168, 168, 173);
            schedule.DayViewSettings.TimeSlotBorderColor = UIColor.FromRGB(219, 219, 219);
            schedule.DayViewSettings.NonWorkingHourTimeSlotBorderColor = UIColor.FromRGB(219, 219, 219);

            UIButton selectionView = new UIButton();

            selectionView.BackgroundColor = UIColor.FromRGB(0, 122, 255);
            selectionView.SetTitle("+ New Event", UIControlState.Normal);
            schedule.SelectionView = selectionView;

            viewHeaderStyle.BackgroundColor = UIColor.FromRGB(247, 247, 247);
            viewHeaderStyle.DayTextStyle    = UIFont.SystemFontOfSize(18);
            viewHeaderStyle.DayTextColor    = UIColor.FromRGB(3, 3, 3);

            headerStyle.TextPosition       = UITextAlignment.Center;
            headerStyle.TextColor          = UIColor.FromRGB(3, 3, 3);
            schedule.HeaderStyle           = headerStyle;
            schedule.DayHeaderStyle        = viewHeaderStyle;
            schedule.AppointmentViewLayout = SFViewLayoutOptions.Overlay;
            this.scheduleTypes.Add((NSString)"Day View");
            this.scheduleTypes.Add((NSString)"Month View");

            Localization.SchedulePickerModel model = new Localization.SchedulePickerModel(this.scheduleTypes);
            model.PickerChanged += (sender, e) =>
            {
                this.selectedType = e.SelectedValue;
                textbutton.SetTitle(selectedType, UIControlState.Normal);
                if (selectedType == "Day View")
                {
                    schedule.ScheduleView = SFScheduleView.SFScheduleViewDay;
                }
                else if (selectedType == "Month View")
                {
                    schedule.ScheduleView = SFScheduleView.SFScheduleViewMonth;
                }
            };
            scheduleTypePicker.ShowSelectionIndicator = true;
            scheduleTypePicker.Hidden          = true;
            scheduleTypePicker.Model           = model;
            scheduleTypePicker.BackgroundColor = UIColor.White;
        }
Beispiel #35
0
//-------------------------------------------------------------------------------------------
        protected void RenderContents(HtmlTextWriter output)
        {
            Page.ClientScript.RegisterHiddenField(this.UniqueID + "_RowDoubleClicked", "-1");
            TableItemStyle style = this.ItemStyle;

            if (HasControls())
            {
                foreach (DataGridItem row in Controls[0].Controls)
                {
                    bool itemrow = false;
                    switch (row.ItemType)
                    {
                    case ListItemType.Header:
                        HeaderStyle.AddAttributesToRender(output);
                        break;

                    case ListItemType.Footer:
                        FooterStyle.AddAttributesToRender(output);
                        break;

                    case ListItemType.Pager:
                        if (PagerStyle.Position == PagerPosition.Top && Controls[0].Controls.IndexOf(row) > 2)
                        {
                            continue;
                        }
                        if (PagerStyle.Position == PagerPosition.Bottom && Controls[0].Controls.IndexOf(row) < 2)
                        {
                            continue;
                        }
                        this.PagerStyle.ForeColor = this.PagerStyle.ForeColor;
                        this.PagerStyle.AddAttributesToRender(output);
                        break;

                    case ListItemType.EditItem:
                        itemrow = true;
                        this.EditItemStyle.AddAttributesToRender(output);
                        break;

                    case ListItemType.SelectedItem:
                        itemrow = true;
                        this.SelectedItemStyle.AddAttributesToRender(output);
                        break;

                    default:

                        break;
                    }
                    if (itemrow)
                    {
                        //output.AddAttribute("onclick", "CheckBoxForRow(this, '" + ColorTranslator.ToHtml(HighlightColor) + "')");
                    }
                    if (row.Visible)
                    {
                        //row.RenderControl(output);
                        row.RenderBeginTag(output);
                        for (int i = 0; i < row.Controls.Count; i++)
                        {
                            TableCell cell = (TableCell)row.Controls[i];
                            if (Columns[i].Visible && cell.Visible)
                            {
                                switch (row.ItemType)
                                {
                                case ListItemType.Header:
                                    break;

                                case ListItemType.Item:
                                    Columns[i].ItemStyle.AddAttributesToRender(output);
                                    break;

                                case ListItemType.AlternatingItem:
                                    Columns[i].ItemStyle.AddAttributesToRender(output);
                                    break;

                                case ListItemType.EditItem:
                                    //Columns[i].AddAttributesToRender(output);
                                    break;

                                case ListItemType.Footer:
                                    break;
                                }
                                cell.RenderControl(output);

                                //if (row.ItemType == ListItemType.Item ||
                                //     row.ItemType == ListItemType.AlternatingItem)
                                //     output.RenderEndTag();
                                //RenderControlTree(output, cell, !Columns[i].ItemStyle.Width.IsEmpty);
                            }
                        }
                        row.RenderEndTag(output);
                    }
                }
            }
        }