int IDeskBand.GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi) { // Log key events. Log("IDeskBand.GetBandInfo called."); // Depending on what we've been asked for, we'll return various band properties. var bandOptions = GetBandOptions(); var bandUi = lazyDeskBand.Value; // Return the min size if needed. if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MINSIZE)) { var minSize = GetMinimumSize(); pdbi.ptMinSize.X = minSize.Width; pdbi.ptMinSize.Y = minSize.Height; } // Return the max size if needed. if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MAXSIZE)) { var maxSize = GetMinimumSize(); pdbi.ptMaxSize.X = maxSize.Width; pdbi.ptMaxSize.Y = maxSize.Height; } if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_INTEGRAL)) { // Set the integral. pdbi.ptIntegral.Y = (int)bandOptions.VerticalSizingIncrement; } if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_ACTUAL)) { // Return the ideal size. var idealSize = bandUi.Size; pdbi.ptActual.X = idealSize.Width; pdbi.ptActual.Y = idealSize.Height; } if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_TITLE)) { // Set the title. if (bandOptions.ShowTitle) { pdbi.wszTitle = bandUi.Text; } else { pdbi.dwMask &= ~DESKBANDINFO.DBIM.DBIM_TITLE; } } if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_BKCOLOR)) { if (bandOptions.UseBackgroundColour) { pdbi.wszTitle = bandUi.Text; pdbi.crBkgnd = new COLORREF(bandUi.BackColor); } else { pdbi.dwMask &= ~DESKBANDINFO.DBIM.DBIM_BKCOLOR; } } if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MODEFLAGS)) { // Set the flags. pdbi.dwModeFlags = DESKBANDINFO.DBIMF.DBIMF_NORMAL; if (bandOptions.HasVariableHeight) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_VARIABLEHEIGHT; if (bandOptions.IsSunken) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_DEBOSSED; if (bandOptions.UseBackgroundColour) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_BKCOLOR; if (bandOptions.IsFixed) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_FIXED; if (bandOptions.IsFixed) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_NOGRIPPER; if (bandOptions.IsUndeletable) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_UNDELETEABLE; if (bandOptions.HasChevron) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_USECHEVRON; if (bandOptions.AlwaysShowGripper) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_ALWAYSGRIPPER; if (bandOptions.HasNoMargins) pdbi.dwModeFlags |= DESKBANDINFO.DBIMF.DBIMF_NOMARGINS; } // Return success. return WinError.S_OK; }
int IDeskBand2.GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi) { return ((IDeskBand)this).GetBandInfo(dwBandID, dwViewMode, ref pdbi); }