-A barra de ferramentas fornece um conjunto bem organizado de ícones/botões para a execução de vários comandos ou ações. Ao contrário de um menu que também é utilizado para a execução de ações, as barras de ferramentas estão sempre visíveis para o usuário e de fácil acesso.
As barras de ferramentas podem ser utilizadas quando há várias ações que precisam ser apresentados para o usuário. Em vez de fornecer um botão para cada ação, uma barra de ferramentas pode ser usado em seu lugar.
Criar uma barra de ferramentas;
Salve o seguinte código como app2.vala
using Gtk;
class MainWindow : Window {
public static int main (string[] args)
{
Gtk.init(ref args); //Gtk intialization
var window = new MainWindow (); //Create a window
window.destroy.connect (Gtk.main_quit); //Quit app after window is closed
window.show_all (); //Makes all widgets visible
Gtk.main(); //Start the main loop
return 0;
}
public MainWindow()
{
this.title = "Toolbars";
this.set_default_size (250, 60);
this.window_position = WindowPosition.CENTER;
this.destroy.connect(Gtk.main_quit); //Quit app when window is closed
// vboxMain
var vboxMain = new Box (Orientation.VERTICAL, 0);
add (vboxMain);
// Create Toolbar
var toolbar = new Gtk.Toolbar ();
toolbar.toolbar_style = ToolbarStyle.BOTH_HORIZ;
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);
vboxMain.pack_start (toolbar, false, false, 0);
// Create Toolbar buttons
var btnAdd = new Gtk.ToolButton.from_stock (Gtk.Stock.ADD);
btnAdd.is_important = true;
toolbar.add (btnAdd);
var btnRemove = new Gtk.ToolButton.from_stock (Gtk.Stock.REMOVE);
toolbar.add (btnRemove);
var btnClear = new Gtk.ToolButton.from_stock (Gtk.Stock.CLEAR);
toolbar.add (btnClear);
// Create a treeview showing a list of Items
var treeview = new TreeView();
treeview.insert_column_with_attributes (-1, "Item", new CellRendererText(), "text", 0);
// Add the treeview to a scrollable window
var scrolledwin = new ScrolledWindow(treeview.get_hadjustment (), treeview.get_vadjustment ());
scrolledwin.set_shadow_type (ShadowType.ETCHED_IN);
scrolledwin.add (treeview);
scrolledwin.set_size_request (-1, 150);
vboxMain.pack_start (scrolledwin, true, true, 0);
}
}
Vamos compilá-lo com o seguinte comando:
valac --pkg gtk+-3.0 app2.vala -o app2
Agora para o executar vamos abrir um Terminal no lucal onde temos o Ficheiro app2.vala e executa-lo com o seguinte comando;
./app2
Vamos agora adicionar um botão acrescentando o seguinte código;
var btnAdd = new Gtk.ToolButton.from_stock (Gtk.Stock.ADD);
btnAdd.is_important = true;
toolbar.add (btnAdd);
Criamos o botão da barra de ferramentas usando o construtor ToolButton.from_stock (). Esse construtor cria um botão com um ícone padrão e texto padrão. O ícone é definido a partir do tema de ícones do sistema e que o texto é definido com base no idioma do sistema. O ícone e o texto também podem ser configurados manualmente.
Vamos definir o estilo;
toolbar.toolbar_style = ToolbarStyle.BOTH_HORIZ;
- ToolbarStyle.ICONS - Somente os ícones são exibidos.
- ToolbarStyle.TEXT - Somente os rótulos são exibidos.
- ToolbarStyle.BOTH - Rótulo será exibido verticalmente abaixo do ícone para todos os botões da barra de ferramentas.
- ToolbarStyle.BOTH_HORIZ (Recomendado) - Rótulo será exibido horizontalmente para a direita do ícone. Etiqueta é exibida somente se a propriedade "is_important" é verdadeiro para o ToolButton. Esta propriedade tem de ser ajustada manualmente para os botões que devem mostrar o rótulo.
Vamos agora especificar os botões importantes;
Defina o is_important propriedade para TRUE para todos os botões da barra de ferramentas que são importantes. Labels será exibido para esses itens quando o estilo da barra de ferramentas é BOTH_HORIZ.
Agora definimos o fundo;
GTK3 tem uma opção para especificar se uma barra de ferramentas em particular é a barra de ferramentas principal numa janela. A barra de ferramentas principal será highlighed com um agradável efeito de fundo, se o tema GTK suportar o estilo.
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);
Por favor, note que todos os temas GTK3 não suportam esta propriedade.
Colocar botões à direita;
Adicionar um separador e definir o empate e expandir as propriedades como mostrado abaixo. Todos os itens adicionados após o separador serão colocados no lado direito da barra de ferramentas.
var separator = new Gtk.SeparatorToolItem();
separator.set_draw (false);
separator.set_expand (true);
toolbar.add (separator);
var btnSettings = new Gtk.ToolButton.from_stockA imagem que se segue, mostra este ultimo botão adicionado a Barra de Ferramentas;
(Gtk.Stock.PREFERENCES);
toolbar.add (btnSettings);
Fonte; TeeJee Tech
Deixem os vossos comentários a respeito deste artigo.