public virtual void GetBandInfo(UInt32 dwBandID, UInt32 dwViewMode, ref DESKBANDINFO dbi)
        {
            dbi.ptMinSize.X = MinimumSize.Width; //Constants.ToolBarMinWidth;
            dbi.ptMaxSize.X = MaximumSize.Width;//Constants.ToolBarMaxWidth;
            //dbi.ptIntegral.X = //Constants.ToolBarWidth;

            dbi.ptMinSize.Y = Constants.ToolBarHeight;
            dbi.ptMaxSize.Y = Constants.ToolBarHeight;
            //dbi.ptIntegral.Y = Constants.ToolBarHeight;
            
            //if ((dbi.dwMask & DBIM.TITLE) != 0)
            //{
            //    dbi.wszTitle = this.Title;
            //}
            dbi.dwMask &= ~DBIM.BKCOLOR;            

            // Set this flags to best feet to your desired toolbar layout behaviour
            dbi.dwModeFlags = DBIMF.NORMAL | DBIMF.VARIABLEHEIGHT | DBIMF.ALWAYSGRIPPER;            
        }
        public override void GetBandInfo(UInt32 dwBandID, UInt32 dwViewMode, ref DESKBANDINFO dbi)
        {
            this.SetButtonsLang();

            dbi.ptMinSize.X = this.toolStrip.Width;
            dbi.ptIntegral.X = 5;

            dbi.ptMinSize.Y = this.toolStrip.Height;
            dbi.ptIntegral.Y = 5;

            //if ((dbi.dwMask & DBIM.TITLE) != 0)
            //{
            //    dbi.wszTitle = this.Title;
            //}
            dbi.dwMask &= ~DBIM.BKCOLOR;

            // Set this flags to best feet to your desired toolbar layout behaviour
            dbi.dwModeFlags = DBIMF.USECHEVRON | DBIMF.UNDELETEABLE | DBIMF.FIXED;// | DBIMF.VARIABLEHEIGHT | DBIMF.ALWAYSGRIPPER;
        }
 int IDeskBand2.GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi)
 {
     return(_impl.GetBandInfo(dwBandID, dwViewMode, ref pdbi));
 }
示例#4
0
 int IDeskBand2.GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi)
 {
     Log("IDeskBand2.GetBandInfo called.");
     return(((IDeskBand)this).GetBandInfo(dwBandID, dwViewMode, ref pdbi));
 }
示例#5
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);
        }
示例#6
0
        /// <inheritdoc/>
        public int GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi)
        {
            // Sizing information is requested whenever the taskbar changes size/orientation
            _id = dwBandID;

            if (pdbi.dwMask.HasFlag(DBIM_MINSIZE))
            {
                if (dwViewMode.HasFlag(DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptMinSize.Y = Options.MinVerticalSize.Width;
                    pdbi.ptMinSize.X = Options.MinVerticalSize.Height;
                }
                else
                {
                    pdbi.ptMinSize.X = Options.MinHorizontalSize.Width;
                    pdbi.ptMinSize.Y = Options.MinHorizontalSize.Height;
                }
            }

            // X is ignored
            if (pdbi.dwMask.HasFlag(DBIM_MAXSIZE))
            {
                if (dwViewMode.HasFlag(DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptMaxSize.Y = Options.MaxVerticalWidth;
                    pdbi.ptMaxSize.X = 0;
                }
                else
                {
                    pdbi.ptMaxSize.X = 0;
                    pdbi.ptMaxSize.Y = Options.MaxHorizontalHeight;
                }
            }

            // x member is ignored
            if (pdbi.dwMask.HasFlag(DBIM_INTEGRAL))
            {
                pdbi.ptIntegral.Y = Options.HeightIncrement;
                pdbi.ptIntegral.X = 0;
            }

            if (pdbi.dwMask.HasFlag(DBIM_ACTUAL))
            {
                if (dwViewMode.HasFlag(DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptActual.Y = Options.VerticalSize.Width;
                    pdbi.ptActual.X = Options.VerticalSize.Height;
                }
                else
                {
                    pdbi.ptActual.X = Options.HorizontalSize.Width;
                    pdbi.ptActual.Y = Options.HorizontalSize.Height;
                }
            }

            if (pdbi.dwMask.HasFlag(DBIM_TITLE))
            {
                pdbi.wszTitle = Options.Title;
                if (!Options.ShowTitle)
                {
                    pdbi.dwMask &= ~DBIM_TITLE;
                }
            }

            if (pdbi.dwMask.HasFlag(DBIM_MODEFLAGS))
            {
                pdbi.dwModeFlags  = DBIMF_NORMAL;
                pdbi.dwModeFlags |= Options.IsFixed ? DBIMF_FIXED | DBIMF_NOGRIPPER : 0;
                pdbi.dwModeFlags |= Options.HeightCanChange ? DBIMF_VARIABLEHEIGHT : 0;
                pdbi.dwModeFlags &= ~DBIMF_BKCOLOR; // Don't use background color
            }

            TaskbarInfo.UpdateInfo();

            return(HRESULT.S_OK);
        }
示例#7
0
        private int GetBandInfoImpl(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi)
        {
            DeskBandID = dwBandID;

            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MINSIZE))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptMinSize.Y = MinSizeVertical.Width;
                    pdbi.ptMinSize.X = MinSizeVertical.Height;
                }
                else
                {
                    pdbi.ptMinSize.X = MinSize.Width;
                    pdbi.ptMinSize.Y = MinSize.Height;
                }
            }
            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MAXSIZE))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptMaxSize.Y = MaxSize.Width;
                    pdbi.ptMaxSize.X = MaxSize.Height;
                }
                else
                {
                    pdbi.ptMaxSize.X = MaxSize.Width;
                    pdbi.ptMaxSize.Y = MaxSize.Height;
                }
            }
            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_INTEGRAL))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptIntegral.Y = IntegralSize.Width;
                    pdbi.ptIntegral.X = IntegralSize.Height;
                }
                else
                {
                    pdbi.ptIntegral.X = IntegralSize.Width;
                    pdbi.ptIntegral.Y = IntegralSize.Height;
                }
            }

            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_ACTUAL))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptActual.Y = Size.Width;
                    pdbi.ptActual.X = Size.Height;
                }
                else
                {
                    pdbi.ptActual.X = Size.Width;
                    pdbi.ptActual.Y = Size.Height;
                }
            }

            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_TITLE))
            {
                pdbi.wszTitle = Title;
                pdbi.dwMask  &= ShowTitle ? DESKBANDINFO.DBIM.DBIM_TITLE : ~DESKBANDINFO.DBIM.DBIM_TITLE;
            }

            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MODEFLAGS))
            {
                pdbi.dwModeFlags  = DESKBANDINFO.DBIMF.DBIMF_NORMAL;
                pdbi.dwModeFlags |= IsFixed ? DESKBANDINFO.DBIMF.DBIMF_FIXED | DESKBANDINFO.DBIMF.DBIMF_NOGRIPPER : 0;
                pdbi.dwModeFlags |= HeightCanChange ? DESKBANDINFO.DBIMF.DBIMF_VARIABLEHEIGHT : 0;
                pdbi.dwModeFlags &= ~DESKBANDINFO.DBIMF.DBIMF_BKCOLOR;
            }

            return(S_OK);
        }
示例#8
0
        public int GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi)
        {
            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MINSIZE))
            {
                // Support for a vertical taskbar
                // Most examples have no support for a vertical taskbar. Who in hell uses their taskbar vertically? Me! Very practical on a 21:9 monitor.
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptMinSize.Y = this.MinSizeVertical.Width;
                    pdbi.ptMinSize.X = this.MinSizeVertical.Height;
                }
                else
                {
                    pdbi.ptMinSize.X = this.MinSize.Width;
                    pdbi.ptMinSize.Y = this.MinSize.Height;
                }
            }
            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_MAXSIZE))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptMaxSize.Y = this.MaxSize.Width;
                    pdbi.ptMaxSize.X = this.MaxSize.Height;
                }
                else
                {
                    pdbi.ptMaxSize.X = this.MaxSize.Width;
                    pdbi.ptMaxSize.Y = this.MaxSize.Height;
                }
            }
            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_INTEGRAL))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptIntegral.Y = this.IntegralSize.Width;
                    pdbi.ptIntegral.X = this.IntegralSize.Height;
                }
                else
                {
                    pdbi.ptIntegral.X = this.IntegralSize.Width;
                    pdbi.ptIntegral.Y = this.IntegralSize.Height;
                }
            }

            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_ACTUAL))
            {
                if (dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_FLOATING) || dwViewMode.HasFlag(DESKBANDINFO.DBIF.DBIF_VIEWMODE_VERTICAL))
                {
                    pdbi.ptActual.Y = this.Size.Width;
                    pdbi.ptActual.X = this.Size.Height;
                }
                else
                {
                    pdbi.ptActual.X = this.Size.Width;
                    pdbi.ptActual.Y = this.Size.Height;
                }
            }

            if (pdbi.dwMask.HasFlag(DESKBANDINFO.DBIM.DBIM_TITLE))
            {
                pdbi.wszTitle = this.Title;
            }

            pdbi.dwModeFlags = DESKBANDINFO.DBIMF.DBIMF_ALWAYSGRIPPER | DESKBANDINFO.DBIMF.DBIMF_NORMAL | DESKBANDINFO.DBIMF.DBIMF_VARIABLEHEIGHT;
            pdbi.dwMask      = pdbi.dwMask | DESKBANDINFO.DBIM.DBIM_BKCOLOR | DESKBANDINFO.DBIM.DBIM_TITLE; // Testen

            return(S_OK);
        }