コード例 #1
0
ファイル: RedmineGuiUtility.cs プロジェクト: oqewok/gitter
 public static void PaintOptionalContent(string data, SubItemPaintEventArgs paintEventArgs)
 {
     if (data == null)
     {
         PaintGrayText(Resources.StrsUnassigned.SurroundWith('<', '>'), paintEventArgs);
     }
     else
     {
         paintEventArgs.PaintText(data, paintEventArgs.Brush);
     }
 }
コード例 #2
0
ファイル: RedmineGuiUtility.cs プロジェクト: oqewok/gitter
 public static void PaintOptionalContent(DateTime?date, SubItemPaintEventArgs paintEventArgs)
 {
     if (!date.HasValue)
     {
         PaintGrayText(Resources.StrsUnassigned.SurroundWith('<', '>'), paintEventArgs);
     }
     else
     {
         DateColumn.OnPaintSubItem(paintEventArgs, date.Value);
     }
 }
コード例 #3
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            Assert.IsNotNull(paintEventArgs);

            switch (paintEventArgs.SubItemId)
            {
            case 0:
                paintEventArgs.PaintText(DataContext.Name);
                break;
            }
        }
コード例 #4
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Name:
                paintEventArgs.PaintImageAndText(ImgConfig, DataContext.Name);
                break;

            case ColumnId.Value:
                ConfigParameterValueColumn.OnPaintSubItem(paintEventArgs, DataContext.Value);
                break;
            }
        }
コード例 #5
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Name:
                Bitmap image;
                switch (DataContext.ReferenceType)
                {
                case ReferenceType.LocalBranch:
                    image = ImgBranch;
                    break;

                case ReferenceType.Tag:
                    var tag = DataContext as RemoteRepositoryTag;
                    if (tag != null && tag.TagType == TagType.Annotated)
                    {
                        image = ImgTagAnnotated;
                    }
                    else
                    {
                        image = ImgTag;
                    }
                    break;

                default:
                    image = null;
                    break;
                }
                paintEventArgs.PaintImageAndText(image, DataContext.Name);
                break;

            case ColumnId.Hash:
                var  rhc = paintEventArgs.Column as HashColumn;
                bool abbreviate;
                int  abbrevLength = HashColumn.DefaultAbbrevLength;
                if (rhc != null)
                {
                    abbreviate = rhc.Abbreviate;
                }
                else
                {
                    abbreviate = HashColumn.DefaultAbbreviate;
                }
                paintEventArgs.PaintText(abbreviate
                                                ? DataContext.Hash.ToString(abbrevLength)
                                                : DataContext.Hash.ToString(),
                                         HashColumn.Font);
                break;
            }
        }
コード例 #6
0
ファイル: UserColumn.cs プロジェクト: oqewok/gitter
        public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, string userName, string userEmail, Brush textBrush)
        {
            bool showEmail = false;
            var  uc        = paintEventArgs.Column as UserColumn;

            if (uc != null)
            {
                showEmail = uc.ShowEmail;
            }
            else
            {
                showEmail = UserColumn.DefaultShowEmail;
            }
            paintEventArgs.PaintText(showEmail ? (string.Format(EmailFormat, userName, userEmail)) : (userName), textBrush);
        }
コード例 #7
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Name:
                var rli = Parent as RemoteListItem;
                paintEventArgs.PaintImageAndText(ImgBranchRemote,
                                                 rli != null ? DataContext.Name.Substring(rli.DataContext.Name.Length + 1) : DataContext.Name);
                break;

            default:
                base.OnPaintSubItem(paintEventArgs);
                break;
            }
        }
コード例 #8
0
ファイル: ReflogRecordListItem.cs プロジェクト: oqewok/gitter
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Hash:
                HashColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.HashString);
                break;

            case ColumnId.TreeHash:
                TreeHashColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.TreeHashString);
                break;

            case ColumnId.Name:
            case ColumnId.Message:
                paintEventArgs.PaintImageAndText(Image, DataContext.Message);
                break;

            case ColumnId.Subject:
                SubjectColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision, null, _drawnPointers, paintEventArgs.HoveredPart - PointerTagHitOffset);
                break;

            case ColumnId.Date:
            case ColumnId.CommitDate:
                CommitDateColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.CommitDate);
                break;

            case ColumnId.Committer:
                CommitterColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Committer);
                break;

            case ColumnId.CommitterEmail:
                CommitterEmailColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Committer.Email);
                break;

            case ColumnId.AuthorDate:
                AuthorDateColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.AuthorDate);
                break;

            case ColumnId.User:
            case ColumnId.Author:
                AuthorColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Author);
                break;

            case ColumnId.AuthorEmail:
                AuthorEmailColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Author.Email);
                break;
            }
        }
コード例 #9
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Subject:
                DrawSubjectColumn(paintEventArgs);
                break;

            case ColumnId.Graph:
            {
                var type = Type == FakeRevisionItemType.StagedChanges ?
                           RevisionGraphItemType.Uncommitted : RevisionGraphItemType.Unstaged;
                GraphColumn.OnPaintSubItem(paintEventArgs, Graph, type);
            }
            break;

            case ColumnId.User:
            case ColumnId.Author:
            case ColumnId.Committer:
                var user = Repository.UserIdentity;
                if (user != null)
                {
                    PaintGrayText(paintEventArgs, user, UserColumn.OnPaintSubItem);
                }
                break;

            case ColumnId.Email:
            case ColumnId.AuthorEmail:
            case ColumnId.CommitterEmail:
                var usermail = Repository.Configuration.TryGetParameterValue(GitConstants.UserEmailParameter);
                if (!string.IsNullOrWhiteSpace(usermail))
                {
                    PaintGrayText(paintEventArgs, usermail, EmailColumn.OnPaintSubItem);
                }
                break;

            case ColumnId.Date:
            case ColumnId.CommitDate:
            case ColumnId.AuthorDate:
                PaintGrayText(paintEventArgs, Resources.StrUncommitted.SurroundWith('<', '>'));
                break;

            case ColumnId.Hash:
            case ColumnId.TreeHash:
                PaintGrayText(paintEventArgs, NoHash, HashColumn.OnPaintSubItem);
                break;
            }
        }
コード例 #10
0
ファイル: RevisionListItem.cs プロジェクト: kiple/gitter
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Hash:
                HashColumn.OnPaintSubItem(paintEventArgs, DataContext.HashString);
                break;

            case ColumnId.TreeHash:
                TreeHashColumn.OnPaintSubItem(paintEventArgs, DataContext.TreeHashString);
                break;

            case ColumnId.Graph:
                GraphColumn.OnPaintSubItem(paintEventArgs, Graph, DataContext.IsCurrent ? RevisionGraphItemType.Current : RevisionGraphItemType.Generic);
                break;

            case ColumnId.Name:
            case ColumnId.Subject:
                SubjectColumn.OnPaintSubItem(paintEventArgs, DataContext, Graph, _drawnPointers, paintEventArgs.HoveredPart - PointerTagHitOffset);
                break;

            case ColumnId.Date:
            case ColumnId.CommitDate:
                CommitDateColumn.OnPaintSubItem(paintEventArgs, DataContext.CommitDate);
                break;

            case ColumnId.Committer:
                CommitterColumn.OnPaintSubItem(paintEventArgs, DataContext.Committer);
                break;

            case ColumnId.CommitterEmail:
                CommitterEmailColumn.OnPaintSubItem(paintEventArgs, DataContext.Committer.Email);
                break;

            case ColumnId.AuthorDate:
                AuthorDateColumn.OnPaintSubItem(paintEventArgs, DataContext.AuthorDate);
                break;

            case ColumnId.User:
            case ColumnId.Author:
                AuthorColumn.OnPaintSubItem(paintEventArgs, DataContext.Author);
                break;

            case ColumnId.AuthorEmail:
                AuthorEmailColumn.OnPaintSubItem(paintEventArgs, DataContext.Author.Email);
                break;
            }
        }
コード例 #11
0
 protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
 {
     switch (paintEventArgs.Column.Id)
     {
     case 0:
         if (DataContext.Icon != null)
         {
             paintEventArgs.PaintImageAndText(DataContext.Icon, DataContext.Name);
         }
         else
         {
             paintEventArgs.PaintText(DataContext.Name);
         }
         break;
     }
 }
コード例 #12
0
 protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
 {
     switch (paintEventArgs.SubItemId)
     {
     case 0:
         if (_repository == null)
         {
             paintEventArgs.PaintText("<no repository>");
         }
         else
         {
             paintEventArgs.PaintImageAndText(ImgRepository, _repository);
         }
         break;
     }
 }
コード例 #13
0
ファイル: FontListItem.cs プロジェクト: kiple/gitter
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch (paintEventArgs.SubItemId)
            {
            case 0:
                paintEventArgs.PaintText(DataContext.Name);
                break;

            case 1:
                if (_font != null)
                {
                    paintEventArgs.PaintText(_font.Name, _font);
                }
                break;
            }
        }
コード例 #14
0
ファイル: RedmineGuiUtility.cs プロジェクト: oqewok/gitter
        private static void PaintGrayText(string text, SubItemPaintEventArgs paintEventArgs)
        {
            var style = paintEventArgs.ListBox.Style;

            if ((paintEventArgs.State & ItemState.Selected) == ItemState.Selected && style.Type == GitterStyleType.DarkBackground)
            {
                paintEventArgs.PaintText(text, paintEventArgs.Brush);
            }
            else
            {
                using (var brush = new SolidBrush(style.Colors.GrayText))
                {
                    paintEventArgs.PaintText(text, brush);
                }
            }
        }
コード例 #15
0
ファイル: UserListItem.cs プロジェクト: kiple/gitter
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Name:
            case ColumnId.Author:
            case ColumnId.Committer:
                Bitmap image;
                if (GitterApplication.IntegrationFeatures.Gravatar.IsEnabled)
                {
                    if (_imgAvatar != null)
                    {
                        image = _imgAvatar;
                    }
                    else
                    {
                        var avatar    = DataContext.Avatar;
                        var imgAvatar = avatar.Image;
                        if (imgAvatar == null)
                        {
                            avatar.BeginUpdate();
                            image = ImgUser;
                        }
                        else
                        {
                            _imgAvatar = image = new Bitmap(imgAvatar, new Size(16, 16));
                        }
                    }
                }
                else
                {
                    image = ImgUser;
                }
                paintEventArgs.PaintImageAndText(image, DataContext.Name);
                break;

            case ColumnId.Email:
            case ColumnId.AuthorEmail:
            case ColumnId.CommitterEmail:
                paintEventArgs.PaintText(DataContext.Email);
                break;

            case ColumnId.Commits:
                paintEventArgs.PaintText(DataContext.Commits.ToString(CultureInfo.InvariantCulture));
                break;
            }
        }
コード例 #16
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Name:
                paintEventArgs.PaintImageAndText(ImgSubmodule, DataContext.Name);
                break;

            case ColumnId.Path:
                paintEventArgs.PaintText(DataContext.Path);
                break;

            case ColumnId.Url:
                paintEventArgs.PaintText(DataContext.Url);
                break;
            }
        }
コード例 #17
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Id:
                paintEventArgs.PaintText(DataContext.Id);
                break;

            case ColumnId.Name:
                paintEventArgs.PaintImageAndText(ImgIcon, DataContext.Name);
                break;

            case ColumnId.WebUrl:
                paintEventArgs.PaintText(DataContext.WebUrl);
                break;
            }
        }
コード例 #18
0
        private static void PaintGrayText <T>(SubItemPaintEventArgs paintEventArgs, T value, Action <SubItemPaintEventArgs, T, Brush> paintMethod)
        {
            Assert.IsNotNull(paintEventArgs);
            Assert.IsNotNull(paintMethod);

            var style = paintEventArgs.ListBox.Style;

            if ((paintEventArgs.State & ItemState.Selected) == ItemState.Selected && style.Type == GitterStyleType.DarkBackground)
            {
                paintMethod(paintEventArgs, value, paintEventArgs.Brush);
            }
            else
            {
                using (var textBrush = new SolidBrush(style.Colors.GrayText))
                {
                    paintMethod(paintEventArgs, value, textBrush);
                }
            }
        }
コード例 #19
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            if (paintEventArgs.SubItemId == (int)ColumnId.Name)
            {
                switch (DataContext)
                {
                case ReferenceType.LocalBranch:
                    paintEventArgs.PaintImageAndText(ImgRefsHeads, Resources.StrHeads);
                    break;

                case ReferenceType.RemoteBranch:
                    paintEventArgs.PaintImageAndText(ImgRefsRemotes, Resources.StrRemotes);
                    break;

                case ReferenceType.Tag:
                    paintEventArgs.PaintImageAndText(ImgRefsTags, Resources.StrTags);
                    break;
                }
            }
        }
コード例 #20
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Hash:
                HashColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.HashString);
                break;

            case ColumnId.Name:
            case ColumnId.Subject:
                SubjectColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision, null, null, -1);
                break;

            case ColumnId.Date:
            case ColumnId.CommitDate:
                CommitDateColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.CommitDate);
                break;

            case ColumnId.Committer:
                CommitterColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Committer);
                break;

            case ColumnId.CommitterEmail:
                CommitterEmailColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Committer.Email);
                break;

            case ColumnId.AuthorDate:
                AuthorDateColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.AuthorDate);
                break;

            case ColumnId.User:
            case ColumnId.Author:
                AuthorColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Author);
                break;

            case ColumnId.AuthorEmail:
                AuthorEmailColumn.OnPaintSubItem(paintEventArgs, DataContext.Revision.Author.Email);
                break;
            }
        }
コード例 #21
0
ファイル: GraphColumn.cs プロジェクト: oqewok/gitter
 public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, GraphAtom[] graph, RevisionGraphItemType itemType)
 {
     if (graph != null)
     {
         bool showColors;
         var  rgc = paintEventArgs.Column as GraphColumn;
         if (rgc != null)
         {
             showColors = rgc.ShowColors;
         }
         else
         {
             showColors = GraphColumn.DefaultShowColors;
         }
         GlobalBehavior.GraphStyle.DrawGraph(
             paintEventArgs.Graphics,
             graph,
             paintEventArgs.Bounds,
             GraphCellWidth,
             itemType,
             showColors);
     }
 }
コード例 #22
0
        protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
        {
            switch ((ColumnId)paintEventArgs.SubItemId)
            {
            case ColumnId.Id:
                paintEventArgs.PaintText(DataContext.Id.ToString(CultureInfo.InvariantCulture));
                break;

            case ColumnId.Name:
                paintEventArgs.PaintText(DataContext.Name);
                break;

            case ColumnId.Description:
                paintEventArgs.PaintText(DataContext.Description);
                break;

            case ColumnId.Project:
                RedmineGuiUtility.PaintOptionalContent(DataContext.Project, paintEventArgs);
                break;

            case ColumnId.Status:
                paintEventArgs.PaintText(DataContext.Status.ToString());
                break;

            case ColumnId.CreatedOn:
                VersionCreatedOnColumn.OnPaintSubItem(paintEventArgs, DataContext.CreatedOn);
                break;

            case ColumnId.UpdatedOn:
                VersionUpdatedOnColumn.OnPaintSubItem(paintEventArgs, DataContext.UpdatedOn);
                break;

            case ColumnId.DueDate:
                RedmineGuiUtility.PaintOptionalContent(DataContext.DueDate, paintEventArgs);
                break;
            }
        }
コード例 #23
0
            protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
            {
                switch (paintEventArgs.SubItemId)
                {
                case 0:
                    paintEventArgs.PaintImage(_fetch ? ImgPull : ImgPush);
                    break;

                case 1:
                    if (_forced)
                    {
                        paintEventArgs.PaintImage(ImgPlus);
                    }
                    break;

                case 2:
                    paintEventArgs.PaintText(_from);
                    break;

                case 3:
                    paintEventArgs.PaintText(_to);
                    break;
                }
            }
コード例 #24
0
ファイル: HookListItem.cs プロジェクト: oqewok/gitter
 protected override void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs)
 {
     throw new NotImplementedException();
 }
コード例 #25
0
 public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, string email, Brush textBrush)
 {
     paintEventArgs.PaintText(email, textBrush);
 }
コード例 #26
0
 public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, string email)
 {
     paintEventArgs.PaintText(email);
 }
コード例 #27
0
        private void DrawSubjectColumn(SubItemPaintEventArgs paintEventArgs)
        {
            bool alignToGraph;
            var  rsc  = paintEventArgs.Column as SubjectColumn;
            var  rect = paintEventArgs.Bounds;

            if (rsc != null)
            {
                alignToGraph = rsc.AlignToGraph;
            }
            else
            {
                alignToGraph = SubjectColumn.DefaultAlignToGraph;
            }
            var graphColumn = ListBox.GetPrevVisibleColumn(paintEventArgs.ColumnIndex);

            if (graphColumn != null && graphColumn.Id != (int)ColumnId.Graph)
            {
                graphColumn = null;
            }
            if (alignToGraph && graphColumn != null)
            {
                int availWidth;
                if (_graph != null)
                {
                    availWidth = graphColumn.Width - 21 * _graph.Length;
                    for (int i = _graph.Length - 1; i != -1; --i)
                    {
                        if (_graph[i].Elements != GraphElement.Space)
                        {
                            break;
                        }
                        availWidth += 21;
                    }
                }
                else
                {
                    availWidth = graphColumn.Width;
                }
                if (availWidth != 0)
                {
                    rect.X     -= availWidth;
                    rect.Width += availWidth;
                }
            }
            SubItemPaintEventArgs.PrepareContentRectangle(ref rect);
            if (rect.Width > 1)
            {
                string text = SubjectText;
                paintEventArgs.PrepareTextRectangle(ref rect);
                bool useDefaultBrush = (paintEventArgs.State & ItemState.Selected) == ItemState.Selected && paintEventArgs.ListBox.Style.Type == GitterStyleType.DarkBackground;
                var  textBrush       = useDefaultBrush ? paintEventArgs.Brush : new SolidBrush(paintEventArgs.ListBox.Style.Colors.GrayText);
                if (!string.IsNullOrWhiteSpace(text))
                {
                    var w = GitterApplication.TextRenderer.MeasureText(
                        paintEventArgs.Graphics, text, paintEventArgs.Font, int.MaxValue).Width;
                    GitterApplication.TextRenderer.DrawText(
                        paintEventArgs.Graphics, text, paintEventArgs.Font, textBrush, rect);
                    w          += 3;
                    rect.X     += w;
                    rect.Width -= w;
                }
                for (int i = 0; i < _iconEntries.Length; ++i)
                {
                    if (rect.Width <= 0)
                    {
                        break;
                    }
                    if (_iconEntries[i].Count != 0)
                    {
                        var image     = _iconEntries[i].Image;
                        var imageRect = new Rectangle(rect.X, rect.Y - 1 + (rect.Height - image.Height) / 2, image.Width, image.Height);
                        rect.X     += imageRect.Width + 2;
                        rect.Width -= imageRect.Width + 2;
                        if (rect.Width <= 0)
                        {
                            break;
                        }
                        paintEventArgs.Graphics.DrawImage(image, imageRect);
                        var countText = _iconEntries[i].Count.ToString(CultureInfo.CurrentCulture);
                        var textW     = GitterApplication.TextRenderer.MeasureText(
                            paintEventArgs.Graphics, countText, paintEventArgs.Font, int.MaxValue).Width;
                        GitterApplication.TextRenderer.DrawText(
                            paintEventArgs.Graphics, countText, paintEventArgs.Font, textBrush, rect);
                        textW      += 2;
                        rect.X     += textW;
                        rect.Width -= textW;
                    }
                }
                if (!useDefaultBrush)
                {
                    textBrush.Dispose();
                }
            }
        }
コード例 #28
0
ファイル: UserColumn.cs プロジェクト: oqewok/gitter
 public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, User user)
 {
     OnPaintSubItem(paintEventArgs, user.Name, user.Email);
 }
コード例 #29
0
ファイル: UserColumn.cs プロジェクト: oqewok/gitter
 public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, string userName, string userEmail)
 {
     OnPaintSubItem(paintEventArgs, userName, userEmail, paintEventArgs.Column.ContentBrush);
 }
コード例 #30
0
ファイル: UserColumn.cs プロジェクト: oqewok/gitter
 public static void OnPaintSubItem(SubItemPaintEventArgs paintEventArgs, User user, Brush textBrush)
 {
     OnPaintSubItem(paintEventArgs, user.Name, user.Email, textBrush);
 }