airgorah 0.1.0

A WiFi auditing software that can perform deauth attacks and passwords recovery
mod connections;
mod interfaces;
mod widgets;

use crate::backend;
use connections::*;
use interfaces::*;

use gtk4::prelude::*;
use gtk4::*;
use std::rc::Rc;

pub fn build_ui(app: &Application) {
    let gui_data = Rc::new(AppData::new(app));

    if let Err(e) = backend::app_setup() {
        return ErrorDialog::spawn(&app.active_window().unwrap(), "Error", &e.to_string(), true);
    }

    connect_app_refresh(gui_data.clone());
    connect_cursor_changed(gui_data.clone());

    connect_interface_refresh(gui_data.clone());
    connect_interface_select(gui_data.clone());

    connect_scan_button(gui_data.clone());
    connect_clear_button(gui_data.clone());
    connect_save_button(gui_data.clone());

    connect_ghz_2_4_button(gui_data.clone());
    connect_ghz_5_button(gui_data.clone());
    connect_channel_entry(gui_data.clone());

    connect_deauth_button(gui_data.clone());
    connect_capture_button(gui_data);
}

#[macro_export]
macro_rules! list_store_get {
    ($storage:expr,$iter:expr,$pos:expr,$typ:ty) => {
        $storage.get_value($iter, $pos).get::<$typ>().unwrap()
    };
}