示例#1
0
        private void DrawHeaderText(Graphics g)
        {
            if (!(Entity is TypeBase))
            {
                return;
            }

            TypeBase         type      = (TypeBase)Entity;
            ContentAlignment alignment = Style.CurrentStyle.HeaderAlignment;

            RectangleF textArea;
            string     name = type.Name;

            textArea = new RectangleF(MarginSize, MarginSize, Width - MarginSize * 2,
                                      HeaderHeight - MarginSize * 2 + 1);

            if (HasIdentifier)
            {
                string identifier = (Style.CurrentStyle.ShowSignature) ?
                                    type.Signature : type.Stereotype;
                float nameHeight       = NameFont.GetHeight();
                float identifierHeight = IdentifierFont.GetHeight();
                float textHeight       = nameHeight + identifierHeight;

                textArea.Y = GetHeaderTextTop(textArea, textHeight,
                                              Style.CurrentStyle.HeaderAlignment);
                textArea.Height = textHeight;

                // Drawing signature
                if (Style.CurrentStyle.ShowSignature)
                {
                    stringFormat.LineAlignment = StringAlignment.Near;
                    g.DrawString(name, NameFont, nameBrush, textArea, stringFormat);

                    stringFormat.LineAlignment = StringAlignment.Far;
                    g.DrawString(identifier, IdentifierFont, identifierBrush,
                                 textArea, stringFormat);
                }
                // Drawing stereotype
                else
                {
                    stringFormat.LineAlignment = StringAlignment.Near;
                    g.DrawString(type.Stereotype, IdentifierFont, identifierBrush,
                                 textArea, stringFormat);

                    stringFormat.LineAlignment = StringAlignment.Far;
                    g.DrawString(name, NameFont, nameBrush, textArea, stringFormat);
                }
            }
            else
            {
                stringFormat.LineAlignment = GetVerticalAlignment(alignment);
                g.DrawString(name, NameFont, nameBrush, textArea, stringFormat);
            }

            DrawLine(g, HeaderHeight);
        }
示例#2
0
文件: Style.cs 项目: Victov/NClass
        public Style Clone( )
        {
            Style newStyle = ( Style )MemberwiseClone( );

            newStyle.nameFont             = ( Font )NameFont.Clone( );
            newStyle.abstractNameFont     = ( Font )AbstractNameFont.Clone( );
            newStyle.identifierFont       = ( Font )IdentifierFont.Clone( );
            newStyle.memberFont           = ( Font )MemberFont.Clone( );
            newStyle.staticMemberFont     = ( Font )StaticMemberFont.Clone( );
            newStyle.abstractMemberFont   = ( Font )AbstractMemberFont.Clone( );
            newStyle.commentFont          = ( Font )CommentFont.Clone( );
            newStyle.relationshipTextFont = ( Font )RelationshipTextFont.Clone( );

            return(newStyle);
        }