/// <summary> /// Get the current state of this group from the underlying control /// </summary> protected int SetState(GroupState newState, GroupState mask) { NativeMethods.LVGROUP2 group = new NativeMethods.LVGROUP2(); group.cbSize = ((uint)Marshal.SizeOf(typeof(NativeMethods.LVGROUP2))); group.mask = (uint)GroupMask.LVGF_STATE; group.state = (uint)newState; group.stateMask = (uint)mask; return(NativeMethods.SetGroupInfo(this.ListView, this.GroupId, group)); }
/// <summary> /// Get the current state of this group from the underlying control /// </summary> protected int SetState(GroupState state, GroupState stateMask) { NativeMethods.LVGROUP2 group = new NativeMethods.LVGROUP2(); group.cbSize = ((uint)Marshal.SizeOf(typeof(NativeMethods.LVGROUP2))); group.mask = (uint)GroupMask.LVGF_STATE; group.state = (uint)state; group.stateMask = (uint)stateMask; return NativeMethods.SetGroupInfo(this.ListView, this.GroupId, group); }
/// <summary> /// Create a native LVGROUP structure that matches this group /// </summary> internal NativeMethods.LVGROUP2 AsNativeGroup(bool withId) { NativeMethods.LVGROUP2 group = new NativeMethods.LVGROUP2(); group.cbSize = (uint)Marshal.SizeOf(typeof(NativeMethods.LVGROUP2)); group.mask = (uint)(GroupMask.LVGF_HEADER ^ GroupMask.LVGF_ALIGN ^ GroupMask.LVGF_STATE); group.pszHeader = this.Header; group.uAlign = (uint)this.HeaderAlignment; group.stateMask = (uint)this.StateMask; group.state = (uint)this.State; if (withId) { group.iGroupId = this.GroupId; group.mask ^= (uint)GroupMask.LVGF_GROUPID; } if (!String.IsNullOrEmpty(this.Footer)) { group.pszFooter = this.Footer; group.mask ^= (uint)GroupMask.LVGF_FOOTER; } if (!String.IsNullOrEmpty(this.Subtitle)) { group.pszSubtitle = this.Subtitle; group.mask ^= (uint)GroupMask.LVGF_SUBTITLE; } if (!String.IsNullOrEmpty(this.Task)) { group.pszTask = this.Task; group.mask ^= (uint)GroupMask.LVGF_TASK; } if (!String.IsNullOrEmpty(this.TopDescription)) { group.pszDescriptionTop = this.TopDescription; group.mask ^= (uint)GroupMask.LVGF_DESCRIPTIONTOP; } if (!String.IsNullOrEmpty(this.BottomDescription)) { group.pszDescriptionBottom = this.BottomDescription; group.mask ^= (uint)GroupMask.LVGF_DESCRIPTIONBOTTOM; } int imageIndex = this.GetImageIndex(this.TitleImage); if (imageIndex >= 0) { group.iTitleImage = imageIndex; group.mask ^= (uint)GroupMask.LVGF_TITLEIMAGE; } imageIndex = this.GetImageIndex(this.ExtendedImage); if (imageIndex >= 0) { group.iExtendedImage = imageIndex; group.mask ^= (uint)GroupMask.LVGF_EXTENDEDIMAGE; } if (!String.IsNullOrEmpty(this.SubsetTitle)) { group.pszSubsetTitle = this.SubsetTitle; group.mask ^= (uint)GroupMask.LVGF_SUBSET; } if (this.VirtualItemCount > 0) { group.cItems = this.VirtualItemCount; group.mask ^= (uint)GroupMask.LVGF_ITEMS; } return(group); }
/// <summary> /// Create a native LVGROUP structure that matches this group /// </summary> internal NativeMethods.LVGROUP2 AsNativeGroup(bool withId) { NativeMethods.LVGROUP2 group = new NativeMethods.LVGROUP2(); group.cbSize = ((uint)Marshal.SizeOf(typeof(NativeMethods.LVGROUP2))); group.mask = (uint)(GroupMask.LVGF_HEADER ^ GroupMask.LVGF_ALIGN ^ GroupMask.LVGF_STATE); group.pszHeader = this.Header; group.uAlign = (uint)this.HeaderAlignment; group.stateMask = (uint)this.StateMask; group.state = (uint)this.State; if (withId) { group.iGroupId = this.GroupId; group.mask ^= (uint)GroupMask.LVGF_GROUPID; } if (!String.IsNullOrEmpty(this.Footer)) { group.pszFooter = this.Footer; group.mask ^= (uint)GroupMask.LVGF_FOOTER; } if (!String.IsNullOrEmpty(this.Subtitle)) { group.pszSubtitle = this.Subtitle; group.mask ^= (uint)GroupMask.LVGF_SUBTITLE; } if (!String.IsNullOrEmpty(this.Task)) { group.pszTask = this.Task; group.mask ^= (uint)GroupMask.LVGF_TASK; } if (!String.IsNullOrEmpty(this.TopDescription)) { group.pszDescriptionTop = this.TopDescription; group.mask ^= (uint)GroupMask.LVGF_DESCRIPTIONTOP; } if (!String.IsNullOrEmpty(this.BottomDescription)) { group.pszDescriptionBottom = this.BottomDescription; group.mask ^= (uint)GroupMask.LVGF_DESCRIPTIONBOTTOM; } int imageIndex = this.GetImageIndex(this.TitleImage); if (imageIndex >= 0) { group.iTitleImage = imageIndex; group.mask ^= (uint)GroupMask.LVGF_TITLEIMAGE; } imageIndex = this.GetImageIndex(this.ExtendedImage); if (imageIndex >= 0) { group.iExtendedImage = imageIndex; group.mask ^= (uint)GroupMask.LVGF_EXTENDEDIMAGE; } if (!String.IsNullOrEmpty(this.SubsetTitle)) { group.pszSubsetTitle = this.SubsetTitle; group.mask ^= (uint)GroupMask.LVGF_SUBSET; } if (this.VirtualItemCount > 0) { group.cItems = this.VirtualItemCount; group.mask ^= (uint)GroupMask.LVGF_ITEMS; } return group; }