commit 73f278bec474bd79406c86ecac2afe0473f3ff2b Author: Benedito Lobo Date: Sun Feb 1 16:44:59 2026 -0300 inicinado diff --git a/README.md b/README.md new file mode 100644 index 0000000..a001c5d --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# Benedito Globo WebView App + +Um aplicativo WebView simples criado em Vala que carrega o site https://beneditoglobo.com.br + +## Recursos + +- 🌐 Navegador web completo com WebKit +- ⬅️ ➡️ Botões de navegação (voltar/avançar) +- 🔄 Botão de recarregar página +- 📝 Barra de endereço editável +- 🪟 Janela de 1200x800 pixels + +## Dependências + +Para compilar e executar este aplicativo, você precisa instalar as seguintes dependências: + +### Ubuntu/Debian +```bash +sudo apt-get update +sudo apt-get install valac libgtk-3-dev libwebkit2gtk-4.1-dev +``` + +### Fedora +```bash +sudo dnf install vala gtk3-devel webkit2gtk3-devel +``` + +### Arch Linux +```bash +sudo pacman -S vala gtk3 webkit2gtk +``` + +## Compilação + +Para compilar o aplicativo, execute: + +```bash +valac --pkg gtk+-3.0 --pkg webkit2gtk-4.1 webview-app.vala -o benedito-globo +``` + +## Execução + +Após compilar, execute o aplicativo: + +```bash +./benedito-globo +``` + +## Como usar + +1. O aplicativo abre automaticamente com o site https://beneditoglobo.com.br carregado +2. Use os botões de navegação para voltar/avançar no histórico +3. Clique no botão de recarregar para atualizar a página +4. Digite uma nova URL na barra de endereço e pressione Enter ou clique em "Ir" + +## Estrutura do Código + +- **BeneditoGloboApp**: Classe principal que herda de `Gtk.Window` +- **webview**: Componente WebKit.WebView para renderizar páginas web +- **toolbar**: Barra de ferramentas com controles de navegação +- **load_url()**: Método para carregar URLs (adiciona https:// automaticamente se necessário) + +## Tecnologias Utilizadas + +- **Vala**: Linguagem de programação orientada a objetos +- **GTK+ 3**: Toolkit para interface gráfica +- **WebKit2GTK**: Engine de renderização web diff --git a/benedito-globo b/benedito-globo new file mode 100755 index 0000000..b2cd7db Binary files /dev/null and b/benedito-globo differ diff --git a/benedito-globo.desktop b/benedito-globo.desktop new file mode 100755 index 0000000..fa77529 --- /dev/null +++ b/benedito-globo.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=Benedito Globo +Comment=Navegador WebView para beneditoglobo.com.br +Exec=/home/manoiese/Área de trabalho/teste/benedito-globo +Icon=web-browser +Terminal=false +Categories=Network;WebBrowser; +Keywords=web;browser;internet; +StartupNotify=true diff --git a/compile.sh b/compile.sh new file mode 100755 index 0000000..02782f6 --- /dev/null +++ b/compile.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Script de compilação para o Benedito Globo WebView App + +echo "🔨 Compilando Benedito Globo WebView App..." + +# Verificar se o valac está instalado +if ! command -v valac &> /dev/null; then + echo "❌ Erro: valac não está instalado" + echo "Execute: sudo apt-get install valac libgtk-3-dev libwebkit2gtk-4.1-dev" + exit 1 +fi + +# Compilar o aplicativo +valac --pkg gtk+-3.0 --pkg webkit2gtk-4.1 webview-app.vala -o benedito-globo + +if [ $? -eq 0 ]; then + echo "✅ Compilação concluída com sucesso!" + echo "Execute o aplicativo com: ./benedito-globo" +else + echo "❌ Erro na compilação" + exit 1 +fi diff --git a/install-deps.sh b/install-deps.sh new file mode 100755 index 0000000..49fe34f --- /dev/null +++ b/install-deps.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Script de instalação de dependências para o Benedito Globo WebView App + +echo "📦 Instalando dependências necessárias..." +echo "" + +# Detectar distribuição Linux +if [ -f /etc/os-release ]; then + . /etc/os-release + OS=$ID +else + echo "❌ Não foi possível detectar a distribuição Linux" + exit 1 +fi + +case $OS in + ubuntu|debian|linuxmint|pop) + echo "🐧 Detectado: $OS" + echo "Instalando: valac, libgtk-3-dev, libwebkit2gtk-4.1-dev" + sudo apt-get update + sudo apt-get install -y valac libgtk-3-dev libwebkit2gtk-4.1-dev + ;; + fedora|rhel|centos) + echo "🎩 Detectado: $OS" + echo "Instalando: vala, gtk3-devel, webkit2gtk3-devel" + sudo dnf install -y vala gtk3-devel webkit2gtk3-devel + ;; + arch|manjaro) + echo "🏔️ Detectado: $OS" + echo "Instalando: vala, gtk3, webkit2gtk" + sudo pacman -S --noconfirm vala gtk3 webkit2gtk + ;; + *) + echo "⚠️ Distribuição não reconhecida: $OS" + echo "Por favor, instale manualmente:" + echo " - valac (compilador Vala)" + echo " - GTK+ 3 development files" + echo " - WebKit2GTK development files" + exit 1 + ;; +esac + +if [ $? -eq 0 ]; then + echo "" + echo "✅ Dependências instaladas com sucesso!" + echo "Agora você pode compilar o aplicativo com: ./compile.sh" +else + echo "" + echo "❌ Erro ao instalar dependências" + exit 1 +fi diff --git a/webview-app.vala b/webview-app.vala new file mode 100644 index 0000000..bc8ee27 --- /dev/null +++ b/webview-app.vala @@ -0,0 +1,109 @@ +using Gtk; +using WebKit; + +public class BeneditoGloboApp : Gtk.Window { + private WebKit.WebView webview; + private Gtk.Entry url_entry; + private Gtk.Button back_button; + private Gtk.Button forward_button; + private Gtk.Button reload_button; + + public BeneditoGloboApp() { + this.title = "Benedito G lobo"; + this.set_default_size(1200, 800); + this.window_position = WindowPosition.CENTER; + this.destroy.connect(Gtk.main_quit); + + // Create main vertical box + var vbox = new Gtk.Box(Gtk.Orientation.VERTICAL, 0); + + // Create toolbar + var toolbar = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 5); + toolbar.margin = 5; + + // Navigation buttons + back_button = new Gtk.Button.from_icon_name("go-previous", Gtk.IconSize.BUTTON); + back_button.clicked.connect(() => { + webview.go_back(); + }); + + forward_button = new Gtk.Button.from_icon_name("go-next", Gtk.IconSize.BUTTON); + forward_button.clicked.connect(() => { + webview.go_forward(); + }); + + reload_button = new Gtk.Button.from_icon_name("view-refresh", Gtk.IconSize.BUTTON); + reload_button.clicked.connect(() => { + webview.reload(); + }); + + // URL entry + url_entry = new Gtk.Entry(); + url_entry.set_text("https://beneditoglobo.com.br"); + url_entry.activate.connect(() => { + load_url(url_entry.get_text()); + }); + + // Go button + var go_button = new Gtk.Button.with_label("Ir"); + go_button.clicked.connect(() => { + load_url(url_entry.get_text()); + }); + + // Add widgets to toolbar + toolbar.pack_start(back_button, false, false, 0); + toolbar.pack_start(forward_button, false, false, 0); + toolbar.pack_start(reload_button, false, false, 0); + toolbar.pack_start(url_entry, true, true, 0); + toolbar.pack_start(go_button, false, false, 0); + + // Create WebView + webview = new WebKit.WebView(); + + // Update URL entry when page loads + webview.load_changed.connect((load_event) => { + if (load_event == WebKit.LoadEvent.COMMITTED) { + url_entry.set_text(webview.get_uri()); + } + + // Update button sensitivity + back_button.sensitive = webview.can_go_back(); + forward_button.sensitive = webview.can_go_forward(); + }); + + // Create scrolled window for webview + var scrolled = new Gtk.ScrolledWindow(null, null); + scrolled.add(webview); + + // Add widgets to main box + vbox.pack_start(toolbar, false, false, 0); + vbox.pack_start(scrolled, true, true, 0); + + this.add(vbox); + + // Load initial URL + load_url("https://beneditoglobo.com.br"); + } + + private void load_url(string url) { + string final_url = url; + + // Add https:// if no protocol is specified + if (!url.has_prefix("http://") && !url.has_prefix("https://")) { + final_url = "https://" + url; + } + + webview.load_uri(final_url); + } + + public static int main(string[] args) { + Gtk.init(ref args); + + var app = new BeneditoGloboApp(); + app.show_all(); + + Gtk.main(); + + return 0; + } +}