コード例 #1
0
 private void AddGroupToContent(string title, InteractiveItemsStack groupContent)
 {
     if (groupContent != null)
     {
         InteractiveHeaderedItem tg = PrepareGroup(title, groupContent);
         groupNames.Add(tg, title);
         groupsByName.Add(title, tg);
         groups.Add(tg);
     }
 }
コード例 #2
0
        public ClassCanvasItem(IClass ct)
        {
            classtype = ct;

            grad = new LinearGradientBrush(
                new PointF(0, 0), new PointF(1, 0),
                TitleBackground, Color.White);

            classItemHeaderedContent = new InteractiveHeaderedItem(titlesCollapsed, titlesExpanded, InitContentContainer(InitContent()));

            classItemContainer.Container = this;
            classItemContainer.Add(classItemHeaderedContent);
            Pen outlinePen = GetClassOutlinePen();

            if (RoundedCorners)
            {
                int radius = CornerRadius;
                containingShape = new DrawableRectangle(null, outlinePen, radius, radius, radius, radius);
            }
            else
            {
                containingShape = new DrawableRectangle(null, outlinePen, 0, 0, 0, 0);
            }

            classItemContainer.Add(containingShape);
            classItemContainer.OrientationAxis = Axis.Z;

            if (RoundedCorners)
            {
                int radius = CornerRadius;
                titlesBackgroundCollapsed = new DrawableRectangle(grad, null, radius, radius, radius, radius);
                titlesBackgroundExpanded  = new DrawableRectangle(grad, null, radius, radius, 0, 0);
            }
            else
            {
                titlesBackgroundCollapsed = new DrawableRectangle(grad, null, 0, 0, 0, 0);
                titlesBackgroundExpanded  = new DrawableRectangle(grad, null, 0, 0, 0, 0);
            }

            titles.Border = 5;

            titlesCollapsed.Add(titlesBackgroundCollapsed);
            titlesCollapsed.Add(titles);
            titlesCollapsed.OrientationAxis = Axis.Z;

            titlesExpanded.Add(titlesBackgroundExpanded);
            titlesExpanded.Add(titles);
            titlesExpanded.OrientationAxis = Axis.Z;

            if (classtype != null)
            {
                typeclass  = classtype.Modifiers.ToString();
                typeclass += " " + classtype.ClassType.ToString();
            }
        }
コード例 #3
0
        protected InteractiveHeaderedItem PrepareGroup(string title, IDrawableRectangle content)
        {
            #region Prepare Group Container
            DrawableItemsStack headerPlus  = new DrawableItemsStack();
            DrawableItemsStack headerMinus = new DrawableItemsStack();

            headerPlus.OrientationAxis  = Axis.X;
            headerMinus.OrientationAxis = Axis.X;
            #endregion

            #region Create Header
            TextSegment titleSegment = new TextSegment(Graphics, title, GroupTitleFont, true);

            PlusShape plus = new PlusShape();
            plus.Border = 3;
            headerPlus.Add(plus);
            headerPlus.Add(titleSegment);

            MinusShape minus = new MinusShape();
            minus.Border = 3;
            headerMinus.Add(minus);
            headerMinus.Add(titleSegment);

            DrawableItemsStack headerCollapsed = new DrawableItemsStack();
            DrawableItemsStack headerExpanded  = new DrawableItemsStack();

            headerCollapsed.OrientationAxis = Axis.Z;
            headerExpanded.OrientationAxis  = Axis.Z;

            headerCollapsed.Add(new DrawableRectangle(InnerTitlesBackground, null));
            headerCollapsed.Add(headerPlus);

            headerExpanded.Add(new DrawableRectangle(InnerTitlesBackground, null));
            headerExpanded.Add(headerMinus);
            #endregion

            InteractiveHeaderedItem tg = new InteractiveHeaderedItem(headerCollapsed, headerExpanded, content);
            tg.HeaderClicked += delegate { tg.Collapsed = !tg.Collapsed; };
            IMouseInteractable interactive = content as IMouseInteractable;
            if (interactive != null)
            {
                tg.ContentClicked += delegate(object sender, PointF pos) { interactive.HandleMouseClick(pos); }
            }
            ;
            tg.RedrawNeeded += HandleRedraw;

            return(tg);
        }