コード例 #1
0
        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;
        }
コード例 #2
0
 int IDeskBand2.GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi)
 {
     return ((IDeskBand)this).GetBandInfo(dwBandID, dwViewMode, ref pdbi);
 }