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)); }
int IDeskBand2.GetBandInfo(uint dwBandID, DESKBANDINFO.DBIF dwViewMode, ref DESKBANDINFO pdbi) { Log("IDeskBand2.GetBandInfo called."); return(((IDeskBand)this).GetBandInfo(dwBandID, dwViewMode, ref pdbi)); }
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); }
/// <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); }
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); }
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); }