//using System; //using System.ComponentModel; //using System.Drawing; // //namespace DevComponents.DotNetBar //{ // /// // /// Represents container item which contains it's subitems and arranges them vertically. // /// // public class GroupItem:ImageItem,IContainerWordWrap // { // #region Private Variables // private bool m_WordWrapSubItems=false; // private int m_ContentLeftIndentation=0; // private int m_ContentRightIndentation=0; // private int m_ItemSpacing=0; // private Rectangle m_HeaderRect=Rectangle.Empty; // // // Expand/Collapse button image // private Image m_ButtonExpand=null; // private Image m_ButtonCollapse=null; // private eItemAlignment m_ExpandButtonAlignment=eItemAlignment.Near; // private bool m_ExpandButtonVisible=true; // // // Image support // private System.Drawing.Image m_Image=null; // private int m_ImageIndex=-1; // Image index if image from ImageList is used // private System.Drawing.Image m_ImageCachedIdx=null; // #endregion // // #region Constructor // /// // /// Creates new instance of VerticalGroupItem. // /// // public GroupItem():this("","") {} // /// // /// Creates new instance of VerticalGroupItem and assigns the name to it. // /// // /// Item name. // public GroupItem(string sItemName):this(sItemName,"") {} // /// // /// Creates new instance of VerticalGroupItem and assigns the name and text to it. // /// // /// Item name. // /// item text. // public GroupItem(string sItemName, string ItemText):base(sItemName,ItemText) // { // m_IsContainer=true; // m_AllowOnlyOneSubItemExpanded=false; //// try //// { //// m_HeaderStyle.Font=new Font(System.Windows.Forms.SystemInformation.MenuFont,FontStyle.Bold); //// m_HeaderHotStyle.Font=new Font(System.Windows.Forms.SystemInformation.MenuFont,FontStyle.Bold); //// } //// catch(Exception e) //// { //// #if DEBUG //// throw(e); //// #endif //// m_HeaderStyle.Font=System.Windows.Forms.SystemInformation.MenuFont.Clone() as Font; //// m_HeaderHotStyle.Font=System.Windows.Forms.SystemInformation.MenuFont.Clone() as Font; //// } //// //// BarFunctions.SetExplorerBarStyle(this,m_StockStyle); //// //// m_BackgroundStyle.VisualPropertyChanged+=new EventHandler(this.VisualPropertyChanged); //// m_HeaderStyle.VisualPropertyChanged+=new EventHandler(this.VisualPropertyChanged); //// m_HeaderHotStyle.VisualPropertyChanged+=new EventHandler(this.VisualPropertyChanged); // } // #endregion // // #region Internal Implementation // /// // /// Returns copy of ExplorerBarGroupItem item. // /// // public override BaseItem Copy() // { // VerticalGroupItem objCopy=new VerticalGroupItem(); // this.CopyToItem(objCopy); // return objCopy; // } // /// // /// Copies the VerticalGroupItem to different instance of the same type. // /// // /// Destination VerticalGroupItem. // protected override void CopyToItem(BaseItem copy) // { // VerticalGroupItem objCopy=copy as VerticalGroupItem; // // base.CopyToItem(objCopy); // } // private void VisualPropertyChanged(object sender, EventArgs e) // { // VisualPropertyChanged(); // } // /// // /// Refreshes the display and applies any color scheme changes to the styles used by the item. // /// // internal void VisualPropertyChanged() // { // BarBaseControl eb=this.ContainerControl as BarBaseControl; // if(eb!=null) // { // ColorScheme cs=eb.ColorScheme; // m_BackgroundStyle.ApplyColorScheme(cs); // m_HeaderHotStyle.ApplyColorScheme(cs); // m_HeaderStyle.ApplyColorScheme(cs); // } // if(this.DesignMode) // { // m_NeedRecalcSize=true; // this.Refresh(); // } // } // private Image GetImage() // { // if(m_Image!=null) // return m_Image; // if(m_ImageIndex>=0) // { // return GetImageFromImageList(m_ImageIndex); // } // return null; // } // // private Image GetImageFromImageList(int ImageIndex) // { // if(ImageIndex>=0) // { // IOwner owner=null; // BarBaseControl bar=null; // if(owner==null) owner=this.GetOwner() as IOwner; // if(bar==null) bar=this.ContainerControl as BarBaseControl; // // if(owner!=null) // { // try // { // if(owner.ImagesMedium!=null) // { // if(m_ImageCachedIdx==null) // m_ImageCachedIdx=owner.ImagesMedium.Images[ImageIndex]; // return m_ImageCachedIdx; // } // } // catch(Exception) // { // return null; // } // } // } // return null; // } // // // Property Editor support for ImageIndex selection // [System.ComponentModel.Browsable(false),System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] // public System.Windows.Forms.ImageList ImageList // { // get // { // IOwner owner=this.GetOwner() as IOwner; // if(owner!=null) // return owner.ImagesMedium; // return null; // } // } // // /// // /// Specifies the image for the group. // /// // [System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Appearance"),System.ComponentModel.Description("The image that will be displayed on the face of the item."),System.ComponentModel.DefaultValue(null),System.ComponentModel.Editor(typeof(DevComponents.DotNetBar.ImageUITypeEditor), typeof(System.Drawing.Design.UITypeEditor)),System.ComponentModel.TypeConverter(typeof(ImageConverter2))] // public System.Drawing.Image Image // { // get // { // return m_Image; // } // set // { // m_NeedRecalcSize=true; // m_Image=value; // this.OnImageChanged(); // this.Refresh(); // } // } // // /// // /// Specifies the index of the image if ImageList is used. Note that GroupItem is using the image list specified in ImagesMedium property of control it belongs to. // /// // [System.ComponentModel.Browsable(true),DevCoBrowsable(true),System.ComponentModel.Category("Appearance"),System.ComponentModel.Description("The image list image index of the image that will be displayed on the face of the item."),System.ComponentModel.Editor(typeof(DevComponents.Editors.ImageIndexEditor), typeof(System.Drawing.Design.UITypeEditor)),System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.ImageIndexConverter)),System.ComponentModel.DefaultValue(-1)] // public int ImageIndex // { // get // { // return m_ImageIndex; // } // set // { // m_ImageCachedIdx=null; // if(m_ImageIndex!=value) // { // m_ImageIndex=value; // if(m_Name!="" && this.GlobalItem) // { // BarFunctions.SetProperty(this.GetOwner(),this.GetType(),m_Name,System.ComponentModel.TypeDescriptor.GetProperties(this)["ImageIndex"],m_ImageIndex); // } // if(m_Parent!=null) // { // OnImageChanged(); // m_NeedRecalcSize=true; // this.Refresh(); // } // } // } // } // #endregion // // #region Sizing and Painting // public override void RecalcSize() // { // System.Windows.Forms.Control objCtrl=this.ContainerControl as System.Windows.Forms.Control; // if(!IsHandleValid(objCtrl)) // return; // // bool bLeft=(objCtrl.RightToLeft==System.Windows.Forms.RightToLeft.No); // Graphics g=Graphics.FromHwnd(objCtrl.Handle); // SizeF objStringSize=SizeF.Empty; // System.Drawing.Size expandButtonSize=this.GetExpandButtonSize(); // System.Drawing.Image image=this.GetImage(); // // string text=m_Text; // if(text=="") // text=" "; // int textArea=m_Rect.Width-m_Margin*2; // if(m_ExpandButtonVisible) // textArea-=expandButtonSize.Width; // if(image!=null) // textArea-=(image.Width+m_Margin*2); // if(textArea<=0) // textArea=1; // objStringSize=g.MeasureString(text,this.GetFont(),textArea,m_HeaderStyle.StringFormat); // g.Dispose(); // // m_Rect.Height=expandButtonSize.Height+m_Margin*2; // if(m_Rect.Height<(int)objStringSize.Height+m_Margin*2) // m_Rect.Height=(int)objStringSize.Height+m_Margin*2; // // if(image!=null) // { // int h=m_Rect.Height; // if(image.Height>m_Rect.Height) // m_Rect.Height=image.Height+m_Margin*2; // } // m_HeaderRect=new Rectangle(0,0,m_Rect.Width,m_Rect.Height); // // if(m_ExpandButtonVisible) // { // if(m_ExpandButtonAlignment==eItemAlignment.Near && bLeft || m_ExpandButtonAlignment==eItemAlignment.Far && !bLeft) // m_ExpandButtonRect=new Rectangle(0,0,expandButtonSize.Width,m_HeaderRect.Height); // else // m_ExpandButtonRect=new Rectangle(m_HeaderRect.Right-expandButtonSize.Width,m_HeaderRect.Y,expandButtonSize.Width,m_HeaderRect.Height); // } // // if(this.Expanded) // { // if(m_SubItems!=null) // { // int iTop=m_Rect.Bottom+1; // int iLeft=m_Rect.Left+m_LeftIndentation; // // int iIndex=-1; // foreach(BaseItem item in m_SubItems) // { // iIndex++; // if(!item.Visible) // { // item.Displayed=false; // continue; // } // item.WidthInternal=m_Rect.Width-(m_LeftIndentation+m_RightIndentation); // item.RecalcSize(); // item.WidthInternal=m_Rect.Width-(m_LeftIndentation+m_RightIndentation); // if(item.BeginGroup) // { // iTop+=3; // } // item.TopInternal=iTop; // item.LeftInternal=iLeft; // iTop+=(item.HeightInternal+m_ItemSpacing);; // item.Displayed=true; // } // m_Rect.Height=iTop-m_Rect.Top+2; // } // } // else // { // foreach(BaseItem item in m_SubItems) // { // item.Displayed=false; // } // } // // if(this.Expanded && this.DesignMode && this.SubItems.Count==0 && this.Parent!=null && this.Parent.SubItems.Count==1) // { // // Empty space to display instruction text that tells user what to do... // m_Rect.Height+=64; // } // // base.RecalcSize(); // } // // private Size GetExpandButtonSize() // { // Size size=Size.Empty; // if(m_ButtonExpand!=null) // size=m_ButtonExpand.Size; // if(m_ButtonCollapse!=null) // { // if(m_ButtonCollapse.Height>size.Height) // size.Height=m_ButtonCollapse.Height; // if(m_ButtonCollapse.Width>size.Width) // size.Width=m_ButtonCollapse.Width; // } // // return size; // } // // #endregion // // #region IContainerWordWrap // /// // /// Gets or sets whether items hosted inside of the container will word-wrap the text. // /// // [Browsable(true),DevCoBrowsable(true),DefaultValue(false),Category("Appearance"),Description("Indicates whether items hosted inside of the container will word-wrap the text.")] // public bool WordWrapSubItems // { // get {return m_WordWrapSubItems;} // set // { // m_WordWrapSubItems=value; // m_NeedRecalcSize=true; // if(this.DesignMode) // { // BarBaseControl bar=this.ContainerControl as BarBaseControl; // if(bar!=null) // bar.RecalcLayout(); // } // } // } // #endregion // } //}