ToolBarManagerControl.cs
Description du code
ToolBarManagerControl.cs est un fichier du projet BrolDev.Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.
Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.
Code source ou contenu du fichier
Code c# (ToolBarManagerControl.cs) (197 lignes)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using be.gaudry.view.style; namespace be.gaudry.view.controls { public partial class ToolBarManagerControl : UserControl { private Dictionary<string, IToolBarControl> toolBars; private int preferdWidth = 200, minimumWidth=25; public ToolBarManagerControl() { InitializeComponent(); } #region properties [ Category("Display"), Browsable(true), Description("Event called on click on the pushpin button (Auto-hide)") ] public event System.EventHandler onPickPushpin_Click; [ Category("Display"), Browsable(true), Description("Event called on click on the hide button (manual-hide)") ] public event System.EventHandler onHide_Click; /// <summary> /// Gets or sets the <code>be.gaudry.view.controls.IToolBarControl</code> that is selected in the <code>be.gaudry.view.controls.ToolBarControlManager</code>. /// </summary> [ Browsable(false), DefaultValue(null) ] public IToolBarControl CurrentToolBar { get { string currentToolBar = toolBarsICB.SelectedInnerText; if (currentToolBar!=null && toolBars.ContainsKey(currentToolBar)) { return toolBars[currentToolBar]; } return null; } set { toolBarsICB.SelectedInnerText = value.ToolBarText; } } /// <summary> /// Get the width of the panel. /// </summary> [ Browsable(false) ] public int PreferedWidth { get { return preferdWidth; } } /// <summary> /// Get the minimum width of the panel. /// </summary> [ Browsable(false) ] public int MinimumWidth { get { return minimumWidth; } } #endregion public void addToolBar(IToolBarControl toolBar) { { ((Control)toolBar).Dock = DockStyle.Fill; toolBars.Add(toolBar.ToolBarText, toolBar); toolBarsICB.addItem(toolBar.ToolBarText, toolBar.ToolBarImage); defineGradientBackground((Control)toolBar); //(Control)toolBar.Resize += new System.EventHandler(this.ToolBarHomeControl_Resize); } } /// <summary> /// Defines a bitmap as BackgroundImageLayout to avoid gradient background flickering on paint event /// </summary> private void defineGradientBackground(Control toolBarControl) { //todo : put this on an abstract class AbstractToolBarControl /*toolBarControl.SetStyle(ControlStyles.ResizeRedraw, true); toolBarControl.SetStyle(ControlStyles.UserPaint, true); toolBarControl.SetStyle(ControlStyles.AllPaintingInWmPaint, true); toolBarControl.SetStyle(ControlStyles.DoubleBuffer, true); System.Drawing.Drawing2D.LinearGradientBrush gradientBrush;*/ Point(0, 0), StyleFactory.CustomSystemColors.Control, StyleFactory.CustomSystemColors.ControlLightLight ); Graphics g = Graphics.FromImage(bmp); toolBarControl.BackgroundImage = bmp; toolBarControl.BackgroundImageLayout = ImageLayout.Stretch; } private void toolBarsICB_SelectedIndexChanged(object sender, EventArgs e) { string currentToolBar = toolBarsICB.SelectedInnerText; if (toolBars.ContainsKey(currentToolBar)) { Control toolBar = (Control)toolBars[currentToolBar]; splitContainer1.Panel2.Controls.Clear(); splitContainer1.Panel2.Controls.Add(toolBar); //toolBar.Dock = DockStyle.Fill; } } private void ToolBarManagerControl_Load(object sender, EventArgs e) { if (toolBarsICB.Items.Count > 0) { toolBarsICB.SelectedIndex = 0; } } private void autoHideButton_Click(object sender, EventArgs e) { if (onPickPushpin_Click != null) { onPickPushpin_Click(sender, e); } else { Width = (Width > minimumWidth) ? minimumWidth : preferdWidth; splitContainer1.Panel2Collapsed = (Width <= minimumWidth); } } private void panelSizeTsMi_Click(object sender, EventArgs e) { ToolStripMenuItem curTsMi = sender as ToolStripMenuItem; foreach (ToolStripMenuItem tsMi in panelSizeTsMi.DropDownItems) { if (!tsMi.Equals(curTsMi)) { } } int width; if (int.TryParse(((ToolStripMenuItem)sender).Text, out width)) { preferdWidth = width; Width = preferdWidth; splitContainer1.Panel2Collapsed = (Width > minimumWidth); //CurrentToolBar.Visible = (width > minimumWidth); } } private void hideButton_Click(object sender, EventArgs e) { if (onHide_Click != null) { onHide_Click(sender, e); } else { this.Visible = false; } } private void ToolBarManagerControl_MouseEnter(object sender, EventArgs e) { Width = preferdWidth; splitContainer1.Panel2Collapsed = false; } private void ToolBarManagerControl_MouseLeave(object sender, EventArgs e) { Width = minimumWidth; splitContainer1.Panel2Collapsed = true; } private void ToolBarManagerControl_SizeChanged(object sender, EventArgs e) { IToolBarControl control = CurrentToolBar; if(control!=null)control.PerformLayout(); } } }
Structure et Fichiers du projet
Afficher/masquer...Icône | Nom | Taille | Modification |
Pas de sous-répertoires. | |||
Icône | Nom | Taille | Modification |
| _ | Répertoire parent | 0 octets | 1732240456 22/11/2024 02:54:16 |
Utilisation de l'explorateur de code
- Navigation :
- Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
- Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
- La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
- Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
- Affichage :
- Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
- Actions :
- Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.
Version en cache
22/11/2024 02:54:16 Cette version de la page est en cache (à la date du 22/11/2024 02:54:16) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-view/controls/ToolBarManagerControl.cs.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.