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