BExplorer.Shell.ShellView.SetColInView C# (CSharp) Method

SetColInView() public method

public SetColInView ( Collumns col, Boolean remove ) : void
col Collumns
remove Boolean
return void
    public void SetColInView(Collumns col, Boolean remove) {
      if (remove) {
        var theColumn = this.Collumns.FirstOrDefault(s => s.pkey.fmtid == col.pkey.fmtid && s.pkey.pid == col.pkey.pid);
        if (theColumn != null) {
          var colIndex = this.Collumns.IndexOf(theColumn);
          this.Collumns.Remove(theColumn);
          User32.SendMessage(this.LVHandle, MSG.LVM_DELETECOLUMN, colIndex, 0);
          if (theColumn.ID == this.LastSortedColumnId) {
            User32.SendMessage(this.LVHandle, MSG.LVM_SETSELECTEDCOLUMN, -1, 0);
          }
        }
      } else if (!this.Collumns.Any(s => s.pkey.fmtid == col.pkey.fmtid && s.pkey.pid == col.pkey.pid)) {
        this.Collumns.Add(col);
        var column = col.ToNativeColumn(this.View == ShellViewStyle.Details);
        var colIndex = this.Collumns.Count - 1;
        User32.SendMessage(this.LVHandle, MSG.LVM_INSERTCOLUMN, colIndex, ref column);
        if (col.ID == this.LastSortedColumnId) {
          this.SetSortIcon(colIndex, this.LastSortOrder);
          User32.SendMessage(this.LVHandle, MSG.LVM_SETSELECTEDCOLUMN, colIndex, 0);
        }
        if (this.View != ShellViewStyle.Details) {
          this.AutosizeColumn(this.Collumns.Count - 1, -2);
        }
      }

      var headerhandle = User32.SendMessage(this.LVHandle, MSG.LVM_GETHEADER, 0, 0);
      for (var i = 0; i < this.Collumns.Count; i++) {
        this.Collumns[i].SetSplitButton(headerhandle, i);
      }

		this.OnListViewCollumnsChanged?.Invoke(this, new CollumnsChangedArgs(remove));
    }
ShellView