示例#1
0
		/// <summary>
		/// Adiciona um botão à barra de botões.
		/// </summary>
		/// <param name="botão">Botão a ser adicionado.</param>
        public void AdicionarBotão(Botão botão)
        {
            Botão[] anterior = this.botões;
            int i = 0;

            botões = new Botão[anterior.Length + 1];
            anterior.CopyTo(botões, 0);

            while (i < anterior.Length && botão.Ordenação > anterior[i].Ordenação)
                i++;

            for (int j = anterior.Length; j > i; j--)
                botões[j] = botões[j - 1];

            botões[i] = botão;

            if (!DesignMode)
            {
                botão.BaseFormulário = ParentForm as BaseFormulário;
                botão.Modificado += new Botão.ModificadoCallback(AoModificarBotão);
            }

            Invalidate();
        }
示例#2
0
        /// <summary>
        /// Remove um botão da barra.
        /// </summary>
        public void RemoverBotão(Botão botão)
        {
            Botão[] anterior = this.botões;
            int i = 0;

            botões = new Botão[anterior.Length - 1];

            foreach (Botão aux in anterior)
                if (aux != botão)
                    botões[i++] = aux;

            Invalidate();
        }
        /// <summary>
        /// Insere o botão exportado à barra de botões.
        /// </summary>
        private Botão ExportarBotão(Assembly assembly, ExporBotãoAttribute exportação)
        {
            if (exportação.ExigirFuncionário && Entidades.Pessoa.Funcionário.FuncionárioAtual == null)
                return null;

            if (PermissãoFuncionário.ValidarPermissão(exportação.Permissões))
            {
                Botão botão;

                if (exportação.Botão == null)
                {
                    try
                    {
                        botão = new Botão();
                        botão.Texto = exportação.Texto;
                        botão.Privilégios = exportação.Permissões;
                        botão.BaseFormulário = this;

                        if (exportação.Ordenação.HasValue)
                            botão.Ordenação = exportação.Ordenação.Value;
                        else
                        {
                            botão.Ordenação = ordem;

                            if (ordem > 0)
                                ordem = -ordem - 1;
                            else
                                ordem = -ordem + 1;
                        }

                        if (exportação.Controlador != null)
                            botão.Controlador = (ControladorBaseInferior)exportação.Controlador.Assembly.
                                CreateInstance(exportação.Controlador.FullName);

                        botão.RetornarÀPrimeira = exportação.RetornarÀPrimeira;

                        foreach (Type tipo in exportação.Bases)
                        {
                            BaseInferior novaBase = (BaseInferior)tipo.Assembly.CreateInstance(tipo.FullName);
                            botão.Controlador.InserirBaseInferior(novaBase);
                        }

                        if (botão.Controlador.Bases.Count > 0 && botão.Controlador.Bases[0].Imagem != null)
                            botão.Imagem = botão.Controlador.Bases[0].Imagem;
                    }
                    catch (ExceçãoBotãoNãoSuportado)
                    {
                        return null;
                    }
                }
                else
                    botão = (Botão)exportação.Botão.Assembly.CreateInstance(exportação.Botão.FullName);

                barraBotões.AdicionarBotão(botão);

                return botão;
            }

            return null;
        }
示例#4
0
		/// <summary>
		/// Ocorre ao redimensionar um botão.
		/// </summary>
		private void AoModificarBotão(Botão botão)
		{
            Invalidate();
		}
		/// <summary>
		/// Define o botão associado ao controlador.
		/// </summary>
		/// <param name="botão">Botão associado.</param>
		/// <remarks>Só deve ser chamado pelo Botão.</remarks>
		internal void DefinirBotão(Botão botão)
		{
			if (this.botão != null)
				throw new Exception("Botão já associado a este controlador.");

			this.botão = botão;
		}