Com选择优化为下拉框, 修改界面主题
This commit is contained in:
parent
db54dc28c0
commit
61b2edca36
10
Cargo.lock
generated
10
Cargo.lock
generated
@ -286,6 +286,15 @@ dependencies = [
|
||||
"cmake",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fltk-theme"
|
||||
version = "0.7.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3539d27a815514b56af2afa6b8e7c6d6b9274a103239487d5a60daa6340a4868"
|
||||
dependencies = [
|
||||
"fltk",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fluid-parser"
|
||||
version = "0.1.15"
|
||||
@ -1127,6 +1136,7 @@ dependencies = [
|
||||
"chrono",
|
||||
"fl2rust",
|
||||
"fltk",
|
||||
"fltk-theme",
|
||||
"lazy_static",
|
||||
"libsqlite3-sys",
|
||||
"log",
|
||||
|
@ -8,6 +8,7 @@ edition = "2021"
|
||||
[dependencies]
|
||||
anyhow = "^1.0.86"
|
||||
fltk = { version = "^1.4", features = ["fltk-bundled"] }
|
||||
fltk-theme = "0.7.2"
|
||||
calamine = "0.25.0"
|
||||
serialport = "4.4.0"
|
||||
rusqlite = "0.25.4"
|
||||
@ -21,3 +22,8 @@ serde_json="1.0.120"
|
||||
|
||||
[build-dependencies]
|
||||
fl2rust = "0.5.19"
|
||||
|
||||
[package.metadata.windows]
|
||||
# For windows subsystem
|
||||
link-args = ["/SUBSYSTEM:windows", "/ENTRY:mainCRTStartup"]
|
||||
subsystem = "windows"
|
@ -1,12 +1,13 @@
|
||||
use fltk::{*};
|
||||
|
||||
use crate::services::ui_service::UiService;
|
||||
|
||||
use fltk_theme::{WidgetTheme, ThemeType};
|
||||
mod services;
|
||||
mod models;
|
||||
mod ui;
|
||||
fn main() {
|
||||
let app = app::App::default();
|
||||
let widget_theme = WidgetTheme::new(ThemeType::Metro);
|
||||
widget_theme.apply();
|
||||
let mut ui_service = UiService::new();
|
||||
ui_service.init_components();
|
||||
app.run().unwrap();
|
||||
|
@ -2,8 +2,7 @@ use std::cell::RefCell;
|
||||
use std::process;
|
||||
use std::rc::Rc;
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
use fltk::prelude::{DisplayExt, InputExt, WidgetExt};
|
||||
use fltk::prelude::{DisplayExt, InputExt, MenuExt, WidgetExt};
|
||||
use fltk::text::TextBuffer;
|
||||
|
||||
use crate::services::log_service::LOGGER;
|
||||
@ -26,6 +25,10 @@ impl UiService {
|
||||
let work_service_clone = Rc::clone(&work_service_rc);
|
||||
let current_com;
|
||||
let should_current_line;
|
||||
let comports = WorkService::get_port_names();
|
||||
for com in comports {
|
||||
ui.borrow_mut().com_choice.add_choice(&com);
|
||||
}
|
||||
|
||||
{
|
||||
let work_service = work_service_clone.borrow_mut();
|
||||
@ -36,7 +39,8 @@ impl UiService {
|
||||
if work_service_rc.borrow().config_model.excel_path != "" {
|
||||
ui.borrow_mut().excel_file_textbox.set_value(&work_service_rc.borrow().config_model.excel_path);
|
||||
ui.borrow_mut().current_line_textbox.set_value(&work_service_rc.borrow().config_model.current_line.to_string());
|
||||
ui.borrow_mut().com_textbox.set_value(&*current_com.clone());
|
||||
let index = ui.borrow().com_choice.find_index(¤t_com);
|
||||
ui.borrow_mut().com_choice.set_value(index);
|
||||
|
||||
work_service_rc.borrow_mut().excel_service.as_mut().unwrap().set_current_line(should_current_line).unwrap();
|
||||
}
|
||||
@ -54,13 +58,26 @@ impl UiService {
|
||||
self.init_start_btn();
|
||||
self.init_set_line_btn();
|
||||
self.init_log();
|
||||
self.init_exit_callback()
|
||||
self.init_refresh_com_button();
|
||||
self.init_exit_callback();
|
||||
}
|
||||
|
||||
fn init_exit_callback(&mut self){
|
||||
fn init_refresh_com_button(&mut self) {
|
||||
let ui_rc = Rc::clone(&self.ui);
|
||||
let ui_rc_clone = Rc::clone(&ui_rc);
|
||||
ui_rc.borrow_mut().refresh_com_btn.set_callback(move |_| {
|
||||
let comports = WorkService::get_port_names();
|
||||
let mut ui = ui_rc_clone.borrow_mut();
|
||||
ui.com_choice.clear();
|
||||
for com in comports {
|
||||
ui.com_choice.add_choice(&com);
|
||||
}
|
||||
});
|
||||
}
|
||||
fn init_exit_callback(&mut self) {
|
||||
let ui_rc = Rc::clone(&self.ui);
|
||||
let work_service_rc = Rc::clone(&self.work_service);
|
||||
ui_rc.borrow_mut().main_window.set_callback(move |_|{
|
||||
ui_rc.borrow_mut().main_window.set_callback(move |_| {
|
||||
let work_service = work_service_rc.borrow_mut();
|
||||
work_service.save_config();
|
||||
process::exit(0);
|
||||
@ -79,7 +96,7 @@ impl UiService {
|
||||
if let Ok(line) = set_dialog.line_textbox.value().parse::<usize>() {
|
||||
match work_service_rc_clone.borrow_mut().set_current_line(line) {
|
||||
Ok(_) => {
|
||||
ui_clone.borrow_mut().current_line_textbox.set_value(&line.to_string())
|
||||
ui_clone.borrow_mut().current_line_textbox.set_value(&line.to_string());
|
||||
}
|
||||
Err(msg) => fltk::dialog::message_default(&msg)
|
||||
}
|
||||
@ -107,7 +124,7 @@ impl UiService {
|
||||
}
|
||||
Some(_) => {}
|
||||
}
|
||||
let selected_com = ui.com_textbox.value();
|
||||
let selected_com = ui.com_choice.choice().unwrap();
|
||||
if let Err(msg) = work_service.init_serial_service(selected_com) {
|
||||
fltk::dialog::message_default(&msg);
|
||||
return;
|
||||
@ -121,7 +138,8 @@ impl UiService {
|
||||
}
|
||||
Err(msg) => {
|
||||
work_service.roll_back();
|
||||
fltk::dialog::message_default(&msg) }
|
||||
fltk::dialog::message_default(&msg)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -129,10 +147,6 @@ impl UiService {
|
||||
|
||||
fn init_log(&mut self) {
|
||||
let ui_rc = Rc::clone(&self.ui);
|
||||
if self.work_service.borrow_mut().config_model.last_com != ""{
|
||||
ui_rc.borrow_mut().com_textbox.set_value(&self.work_service.borrow_mut().config_model.last_com);
|
||||
}
|
||||
|
||||
let text_buffer = TextBuffer::default();
|
||||
ui_rc.borrow_mut().log_content.set_buffer(text_buffer.clone());
|
||||
let text_buffer_arc = Arc::new(Mutex::new(text_buffer));
|
||||
@ -153,6 +167,7 @@ impl UiService {
|
||||
dialog.show();
|
||||
let binding = dialog.filename();
|
||||
let path = binding.to_str().unwrap();
|
||||
if path == "" {return;}
|
||||
work_service.init_excel_service(path.to_string()).unwrap();
|
||||
let current_line = &work_service.get_current_line().to_string();
|
||||
work_service.config_model.excel_path = path.to_string();
|
||||
|
@ -2,8 +2,10 @@
|
||||
version 1.0400
|
||||
header_name {.h}
|
||||
code_name {.cxx}
|
||||
class UserInterface {} {
|
||||
Function {make_window()} {} {
|
||||
class UserInterface {open
|
||||
} {
|
||||
Function {make_window()} {open
|
||||
} {
|
||||
Fl_Window main_window {
|
||||
label WriteTool_RS open
|
||||
xywh {721 399 693 467} type Double visible
|
||||
@ -30,24 +32,28 @@ class UserInterface {} {
|
||||
}
|
||||
Fl_Button start_btn {
|
||||
label Start
|
||||
xywh {445 155 240 35} shortcut 0xff0d color 51 labeltype ENGRAVED_LABEL labelsize 18
|
||||
xywh {532 156 138 35} shortcut 0xff0d color 51 labeltype ENGRAVED_LABEL labelsize 18
|
||||
}
|
||||
Fl_Text_Display log_content {
|
||||
Fl_Text_Display log_content {selected
|
||||
xywh {10 210 670 250}
|
||||
}
|
||||
Fl_Input com_textbox {
|
||||
label {COM:}
|
||||
xywh {135 155 285 35}
|
||||
Fl_Choice com_choice {
|
||||
label {Com:} open
|
||||
xywh {135 156 235 35} down_box BORDER_BOX
|
||||
} {}
|
||||
Fl_Button refresh_com_btn {
|
||||
label Refresh
|
||||
xywh {390 156 120 35}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class UserInterface1 {open selected
|
||||
class UserInterface1 {open
|
||||
} {
|
||||
Function {make_set_line_window()} {} {
|
||||
Fl_Window {} {open
|
||||
xywh {828 554 228 43} type Double visible
|
||||
xywh {1171 275 228 43} type Double visible
|
||||
} {
|
||||
Fl_Input line_textbox {
|
||||
label {Line:}
|
||||
|
Loading…
Reference in New Issue
Block a user