refactor: chore iced

This commit is contained in:
b1n
2024-07-16 12:05:49 +08:00
parent 3cb0cc7039
commit 11dd2ebfd6
6 changed files with 90 additions and 91 deletions

21
Cargo.lock generated
View File

@@ -1820,7 +1820,7 @@ dependencies = [
[[package]] [[package]]
name = "iced" name = "iced"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"iced_core", "iced_core",
"iced_futures", "iced_futures",
@@ -1834,7 +1834,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_core" name = "iced_core"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"bitflags 2.5.0", "bitflags 2.5.0",
"bytes", "bytes",
@@ -1852,7 +1852,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_futures" name = "iced_futures"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"futures", "futures",
"iced_core", "iced_core",
@@ -1866,7 +1866,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_graphics" name = "iced_graphics"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"bitflags 2.5.0", "bitflags 2.5.0",
"bytemuck", "bytemuck",
@@ -1887,7 +1887,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_renderer" name = "iced_renderer"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"iced_graphics", "iced_graphics",
"iced_tiny_skia", "iced_tiny_skia",
@@ -1899,7 +1899,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_runtime" name = "iced_runtime"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"bytes", "bytes",
"iced_core", "iced_core",
@@ -1911,7 +1911,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_tiny_skia" name = "iced_tiny_skia"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"cosmic-text", "cosmic-text",
@@ -1927,7 +1927,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_wgpu" name = "iced_wgpu"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"bitflags 2.5.0", "bitflags 2.5.0",
"bytemuck", "bytemuck",
@@ -1947,11 +1947,12 @@ dependencies = [
[[package]] [[package]]
name = "iced_widget" name = "iced_widget"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"iced_renderer", "iced_renderer",
"iced_runtime", "iced_runtime",
"num-traits", "num-traits",
"once_cell",
"rustc-hash", "rustc-hash",
"thiserror", "thiserror",
"unicode-segmentation", "unicode-segmentation",
@@ -1960,7 +1961,7 @@ dependencies = [
[[package]] [[package]]
name = "iced_winit" name = "iced_winit"
version = "0.13.0-dev" version = "0.13.0-dev"
source = "git+https://github.com/iced-rs/iced?rev=978327f9e7f68d3e5bc280faa0617487d8eabc57#978327f9e7f68d3e5bc280faa0617487d8eabc57" source = "git+https://github.com/iced-rs/iced?rev=143f4c86caeb43cfff6573fe192c8eb877bb044c#143f4c86caeb43cfff6573fe192c8eb877bb044c"
dependencies = [ dependencies = [
"iced_futures", "iced_futures",
"iced_graphics", "iced_graphics",

View File

@@ -33,9 +33,9 @@ flate2 = "1.0.30"
[dependencies.iced] [dependencies.iced]
version = "0.13.0-dev" version = "0.13.0-dev"
git = "https://github.com/iced-rs/iced" git = "https://github.com/iced-rs/iced"
rev = "978327f9e7f68d3e5bc280faa0617487d8eabc57" rev = "143f4c86caeb43cfff6573fe192c8eb877bb044c"
default-features = false default-features = false
features = ["advanced", "svg", "tokio", "wgpu", "image"] features = ["wgpu", "tiny-skia", "advanced", "svg", "tokio", "image"]
[package.metadata.winresource] [package.metadata.winresource]
LegalCopyright = "Copyright (c) 2024 b1n <b1n@b1n.io>" LegalCopyright = "Copyright (c) 2024 b1n <b1n@b1n.io>"

View File

@@ -5,13 +5,14 @@ use std::{fs, ops::Not, path::PathBuf};
use anyhow::{anyhow, bail}; use anyhow::{anyhow, bail};
use dirs::{desktop_dir, home_dir}; use dirs::{desktop_dir, home_dir};
use iced::{ use iced::{
alignment::{Horizontal, Vertical},
application, application,
futures::TryFutureExt, futures::TryFutureExt,
widget::{ widget::{
button, column, horizontal_rule, pick_list, radio, row, svg::Handle, text, text_editor, button, column, horizontal_rule, pick_list, radio, row, svg::Handle, text, text_editor,
text_input, Column, Svg, text_input, Column, Svg,
}, },
Alignment, Length, Size, Task, Theme, Length, Size, Task, Theme,
}; };
use pumpbin::{ use pumpbin::{
plugin::{Plugin, PluginInfo, PluginReplace}, plugin::{Plugin, PluginInfo, PluginReplace},
@@ -476,30 +477,30 @@ impl Maker {
text("Plugin Name"), text("Plugin Name"),
text_input("", self.plugin_name()).on_input(MakerMessage::PluginNameChanged), text_input("", self.plugin_name()).on_input(MakerMessage::PluginNameChanged),
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Author"), text("Author"),
text_input("", self.author()).on_input(MakerMessage::AuthorChanged), text_input("", self.author()).on_input(MakerMessage::AuthorChanged),
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Version"), text("Version"),
text_input("", self.version()).on_input(MakerMessage::VersionChanged), text_input("", self.version()).on_input(MakerMessage::VersionChanged),
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Prefix"), text("Prefix"),
text_input("", self.src_prefix()).on_input(MakerMessage::SrcPrefixChanged), text_input("", self.src_prefix()).on_input(MakerMessage::SrcPrefixChanged),
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Max Len"), text("Max Len"),
text_input("", self.max_len()).on_input(MakerMessage::MaxLenChanged), text_input("", self.max_len()).on_input(MakerMessage::MaxLenChanged),
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
] ]
.spacing(10) .spacing(10)
.align_items(Alignment::Center), .align_y(Vertical::Center),
column![ column![
text("Type"), text("Type"),
row![ row![
@@ -523,15 +524,15 @@ impl Maker {
text_input("", self.size_holder()) text_input("", self.size_holder())
.on_input(MakerMessage::SizeHolderChanged) .on_input(MakerMessage::SizeHolderChanged)
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
), ),
ShellcodeSaveType::Remote => None, ShellcodeSaveType::Remote => None,
}) })
.align_items(Alignment::Center) .align_y(Vertical::Center)
.height(30) .height(30)
.spacing(20) .spacing(20)
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Windows"), text("Windows"),
row![ row![
@@ -545,10 +546,10 @@ impl Maker {
choose_button() choose_button()
.on_press(MakerMessage::ChooseFileClicked(ChooseFileType::WindowsLib)), .on_press(MakerMessage::ChooseFileClicked(ChooseFileType::WindowsLib)),
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10) .spacing(10)
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Linux"), text("Linux"),
row![ row![
@@ -561,10 +562,10 @@ impl Maker {
choose_button() choose_button()
.on_press(MakerMessage::ChooseFileClicked(ChooseFileType::LinuxLib)), .on_press(MakerMessage::ChooseFileClicked(ChooseFileType::LinuxLib)),
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10) .spacing(10)
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text("Darwin"), text("Darwin"),
row![ row![
@@ -578,10 +579,10 @@ impl Maker {
choose_button() choose_button()
.on_press(MakerMessage::ChooseFileClicked(ChooseFileType::DarwinLib)), .on_press(MakerMessage::ChooseFileClicked(ChooseFileType::DarwinLib)),
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10) .spacing(10)
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
row![ row![
column![column![ column![column![
text("Encrypt Shellcode Plug-in"), text("Encrypt Shellcode Plug-in"),
@@ -592,10 +593,10 @@ impl Maker {
ChooseFileType::EncryptShellcodePlugin ChooseFileType::EncryptShellcodePlugin
)) ))
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10), .spacing(10),
] ]
.align_items(Alignment::Start)] .align_x(Horizontal::Left)]
.push_maybe(match self.shellcode_save_type() { .push_maybe(match self.shellcode_save_type() {
ShellcodeSaveType::Local => None, ShellcodeSaveType::Local => None,
ShellcodeSaveType::Remote => Some(column![ ShellcodeSaveType::Remote => Some(column![
@@ -607,12 +608,12 @@ impl Maker {
ChooseFileType::FormatUrlRemote ChooseFileType::FormatUrlRemote
)) ))
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10) .spacing(10)
]), ]),
}) })
.width(Length::FillPortion(1)) .width(Length::FillPortion(1))
.align_items(Alignment::Center), .align_x(Horizontal::Center),
column![column![ column![column![
text("Format Encrypted Shellcode Plug-in"), text("Format Encrypted Shellcode Plug-in"),
row![ row![
@@ -622,10 +623,10 @@ impl Maker {
ChooseFileType::FormatEncryptedShellcodePlugin ChooseFileType::FormatEncryptedShellcodePlugin
)) ))
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10), .spacing(10),
] ]
.align_items(Alignment::Start)] .align_x(Horizontal::Left)]
.push_maybe(match self.shellcode_save_type() { .push_maybe(match self.shellcode_save_type() {
ShellcodeSaveType::Local => None, ShellcodeSaveType::Local => None,
ShellcodeSaveType::Remote => Some( ShellcodeSaveType::Remote => Some(
@@ -640,16 +641,16 @@ impl Maker {
ChooseFileType::UploadFinalShellcodeRemote ChooseFileType::UploadFinalShellcodeRemote
)) ))
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10) .spacing(10)
] ]
.align_items(Alignment::Start) .align_x(Horizontal::Left)
), ),
}) })
.width(Length::FillPortion(1)) .width(Length::FillPortion(1))
.align_items(Alignment::Center) .align_x(Horizontal::Center)
] ]
.align_items(Alignment::Center) .align_y(Vertical::Center)
.spacing(10), .spacing(10),
column![ column![
text("Description"), text("Description"),
@@ -657,14 +658,14 @@ impl Maker {
.on_action(MakerMessage::DescAction) .on_action(MakerMessage::DescAction)
.height(Length::Fill) .height(Length::Fill)
] ]
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![row![ column![row![
button("Generate").on_press(MakerMessage::GenerateClicked) button("Generate").on_press(MakerMessage::GenerateClicked)
]] ]]
.align_items(Alignment::Center) .align_x(Horizontal::Center)
.width(Length::Fill), .width(Length::Fill),
] ]
.align_items(Alignment::Start) .align_x(Horizontal::Left)
.padding(20) .padding(20)
.spacing(10); .spacing(10);
@@ -703,20 +704,20 @@ impl Maker {
row![ row![
column![version] column![version]
.width(Length::Fill) .width(Length::Fill)
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![row![b1n, github].align_items(Alignment::Center)] column![row![b1n, github].align_y(Vertical::Center)]
.width(Length::Shrink) .width(Length::Shrink)
.align_items(Alignment::Center), .align_x(Horizontal::Center),
column![theme_list] column![theme_list]
.width(Length::Fill) .width(Length::Fill)
.align_items(Alignment::End) .align_x(Horizontal::Right)
] ]
.padding([0, 20]) .padding([0, 20])
.align_items(Alignment::Center) .align_y(Vertical::Center)
] ]
.align_items(Alignment::Center); .align_x(Horizontal::Center);
column![maker, footer].align_items(Alignment::Center) column![maker, footer].align_x(Horizontal::Center)
} }
pub fn theme(&self) -> Theme { pub fn theme(&self) -> Theme {

View File

@@ -11,13 +11,14 @@ use std::{fmt::Display, fs, ops::Not, path::PathBuf};
use anyhow::anyhow; use anyhow::anyhow;
use dirs::{desktop_dir, home_dir}; use dirs::{desktop_dir, home_dir};
use iced::{ use iced::{
alignment::{Horizontal, Vertical},
futures::TryFutureExt, futures::TryFutureExt,
widget::{ widget::{
button, column, container, horizontal_rule, pick_list, row, scrollable, button, column, container, horizontal_rule, pick_list, row,
svg::{self, Handle}, svg::{self, Handle},
text, text_editor, text_input, vertical_rule, Column, Scrollable, Svg, text, text_editor, text_input, vertical_rule, Column, Scrollable, Svg,
}, },
Alignment, Background, Length, Task, Theme, Background, Length, Task, Theme,
}; };
use plugin::{Plugin, Plugins}; use plugin::{Plugin, Plugins};
use plugin_system::Pass; use plugin_system::Pass;
@@ -489,7 +490,7 @@ impl Pumpbin {
.on_press(Message::ChooseShellcodeClicked), .on_press(Message::ChooseShellcodeClicked),
] ]
.spacing(3) .spacing(3)
.align_items(Alignment::Center); .align_y(Vertical::Center);
let pick_list_handle = || pick_list::Handle::Dynamic { let pick_list_handle = || pick_list::Handle::Dynamic {
closed: pick_list::Icon { closed: pick_list::Icon {
@@ -535,7 +536,7 @@ impl Pumpbin {
text!("Generate") text!("Generate")
] ]
.spacing(3) .spacing(3)
.align_items(Alignment::Center), .align_y(Vertical::Center),
) )
.on_press_maybe( .on_press_maybe(
if self.selected_binary_type().is_some() && self.shellcode_src().is_empty().not() { if self.selected_binary_type().is_some() && self.shellcode_src().is_empty().not() {
@@ -547,10 +548,10 @@ impl Pumpbin {
let setting_panel = row![shellcode_src, platform, binary_type, generate] let setting_panel = row![shellcode_src, platform, binary_type, generate]
.spacing(spacing) .spacing(spacing)
.align_items(Alignment::Center); .align_y(Vertical::Center);
let mut plugin_items = column![] let mut plugin_items = column![]
.align_items(Alignment::Center) .align_x(Horizontal::Center)
.spacing(10) .spacing(10)
.width(Length::Fill) .width(Length::Fill)
.padding(3); .padding(3);
@@ -568,7 +569,7 @@ impl Pumpbin {
.color(self.theme().extended_palette().primary.base.color) .color(self.theme().extended_palette().primary.base.color)
] ]
.spacing(spacing) .spacing(spacing)
.align_items(Alignment::Center), .align_y(Vertical::Center),
); );
} }
@@ -587,7 +588,7 @@ impl Pumpbin {
row![ row![
column![text!(" {}", plugin.info().author())] column![text!(" {}", plugin.info().author())]
.width(Length::Fill) .width(Length::Fill)
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![row!( column![row!(
text("").color(self.theme().extended_palette().primary.base.color), text("").color(self.theme().extended_palette().primary.base.color),
if plugin.bins().windows().is_platform_supported() { if plugin.bins().windows().is_platform_supported() {
@@ -608,13 +609,13 @@ impl Pumpbin {
text("").color(self.theme().extended_palette().danger.base.color) text("").color(self.theme().extended_palette().danger.base.color)
} }
) )
.align_items(Alignment::Center)] .align_y(Vertical::Center)]
.width(Length::Shrink) .width(Length::Shrink)
.align_items(Alignment::End) .align_x(Horizontal::Right)
] ]
.align_items(Alignment::Center), .align_y(Vertical::Center),
] ]
.align_items(Alignment::Center), .align_x(Horizontal::Center),
) )
.width(Length::Fill) .width(Length::Fill)
.style(match self.selected_plugin() { .style(match self.selected_plugin() {
@@ -672,14 +673,12 @@ impl Pumpbin {
plugin_info_title(" Darwin:"), plugin_info_title(" Darwin:"),
plugin_info_title(" Description:"), plugin_info_title(" Description:"),
] ]
.align_items(Alignment::Start)] .align_x(Horizontal::Left)]
.align_items(Alignment::Start), .align_y(Vertical::Top),
row![pumpkin] row![pumpkin].height(Length::Fill).align_y(Vertical::Bottom),
.height(Length::Fill)
.align_items(Alignment::End),
] ]
.width(Length::FillPortion(1)) .width(Length::FillPortion(1))
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![ column![
text(plugin.info().plugin_name()).size(16), text(plugin.info().plugin_name()).size(16),
text(plugin.info().author()).size(16), text(plugin.info().author()).size(16),
@@ -711,7 +710,7 @@ impl Pumpbin {
} }
] ]
.spacing(3) .spacing(3)
.align_items(Alignment::Center), .align_y(Vertical::Center),
row![ row![
text(BinaryType::Executable.to_string()), text(BinaryType::Executable.to_string()),
{ {
@@ -733,7 +732,7 @@ impl Pumpbin {
} }
] ]
.spacing(3) .spacing(3)
.align_items(Alignment::Center), .align_y(Vertical::Center),
row![ row![
text(BinaryType::Executable.to_string()), text(BinaryType::Executable.to_string()),
{ {
@@ -755,30 +754,27 @@ impl Pumpbin {
} }
] ]
.spacing(3) .spacing(3)
.align_items(Alignment::Center), .align_y(Vertical::Center),
text_editor(self.plugin_desc()) text_editor(self.plugin_desc())
.padding(10) .padding(10)
.height(Length::Fill) .height(Length::Fill)
.on_action(Message::EditorAction), .on_action(Message::EditorAction),
] ]
.width(Length::FillPortion(3)) .width(Length::FillPortion(3))
.align_items(Alignment::Start) .align_x(Horizontal::Left)
] ]
.spacing(spacing) .spacing(spacing)
.align_items(Alignment::Center) .align_y(Vertical::Center)
} }
None => row![pumpkin], None => row![pumpkin],
}] }]
.align_items(Alignment::Start); .align_x(Horizontal::Left);
let plugin_list_view = container( let plugin_list_view = container(
column![ column![
Scrollable::with_direction( Scrollable::new(plugin_items)
plugin_items, .width(Length::Fill)
scrollable::Direction::Vertical(scrollable::Properties::new()) .height(Length::Fill),
)
.width(Length::Fill)
.height(Length::Fill),
column![ column![
horizontal_rule(0), horizontal_rule(0),
row![ row![
@@ -818,16 +814,16 @@ impl Pumpbin {
vertical_rule(0), vertical_rule(0),
] ]
.width(Length::Fill) .width(Length::Fill)
.align_items(Alignment::Center), .align_y(Vertical::Center),
] ]
.width(Length::Fill) .width(Length::Fill)
.height(20) .height(20)
.align_items(Alignment::Center) .align_x(Horizontal::Center)
] ]
.spacing(3) .spacing(3)
.width(Length::Fill) .width(Length::Fill)
.height(Length::Fill) .height(Length::Fill)
.align_items(Alignment::Center), .align_x(Horizontal::Center),
) )
.height(Length::Fill) .height(Length::Fill)
.style(|theme: &Theme| { .style(|theme: &Theme| {
@@ -840,7 +836,7 @@ impl Pumpbin {
plugin_list_view.width(Length::FillPortion(1)) plugin_list_view.width(Length::FillPortion(1))
] ]
.spacing(spacing) .spacing(spacing)
.align_items(Alignment::Center) .align_y(Vertical::Center)
.width(Length::Fill) .width(Length::Fill)
.height(Length::Fill); .height(Length::Fill);
@@ -879,27 +875,27 @@ impl Pumpbin {
row![ row![
column![version] column![version]
.width(Length::Fill) .width(Length::Fill)
.align_items(Alignment::Start), .align_x(Horizontal::Left),
column![row![b1n, github].align_items(Alignment::Center)] column![row![b1n, github].align_y(Vertical::Center)]
.width(Length::Shrink) .width(Length::Shrink)
.align_items(Alignment::Center), .align_x(Horizontal::Center),
column![theme_list] column![theme_list]
.width(Length::Fill) .width(Length::Fill)
.align_items(Alignment::End) .align_x(Horizontal::Right)
] ]
.padding([0, padding]) .padding([0, padding])
.align_items(Alignment::Center) .align_y(Vertical::Center)
] ]
.align_items(Alignment::Center); .align_x(Horizontal::Center);
let home = column![ let home = column![
column![setting_panel, plugin_panel] column![setting_panel, plugin_panel]
.padding(padding) .padding(padding)
.align_items(Alignment::Center) .align_x(Horizontal::Center)
.spacing(spacing), .spacing(spacing),
footer footer
] ]
.align_items(Alignment::Center); .align_x(Horizontal::Center);
home home
} }

View File

@@ -40,5 +40,6 @@ fn try_main() -> anyhow::Result<()> {
.window(utils::window_settings()) .window(utils::window_settings())
.theme(Pumpbin::theme) .theme(Pumpbin::theme)
.run()?; .run()?;
Ok(()) Ok(())
} }

View File

@@ -73,7 +73,7 @@ pub fn replace(
let position = memmem::find_iter(bin, holder) let position = memmem::find_iter(bin, holder)
.next() .next()
.ok_or(anyhow!("Not found {}", String::from_utf8_lossy(holder)))?; .ok_or(anyhow!("Not found {}.", String::from_utf8_lossy(holder)))?;
let mut random: Vec<u8> = iter::repeat(b'0') let mut random: Vec<u8> = iter::repeat(b'0')
.take(max_len - replace_by.len()) .take(max_len - replace_by.len())
.collect(); .collect();