major change, little still left, optimisation left
This commit is contained in:
parent
1d174d87f1
commit
28a8c7782c
|
|
@ -118,13 +118,19 @@ version = "0.1.10"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "crc32fast"
|
||||
version = "1.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cfg-if 0.1.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -311,11 +317,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ee8025cf36f917e6a52cce185b7c7177689b838b7ec138364e50cc2277a56cf4"
|
||||
checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"cfg-if 1.0.0",
|
||||
"libc",
|
||||
"wasi",
|
||||
]
|
||||
|
|
@ -556,7 +562,7 @@ checksum = "dd0eaf8df8bab402257e0a5c17a254e4cc1f72a93588a1ddfb5d356c801aa7cb"
|
|||
dependencies = [
|
||||
"bitflags",
|
||||
"cc",
|
||||
"cfg-if",
|
||||
"cfg-if 0.1.10",
|
||||
"libc",
|
||||
"void",
|
||||
]
|
||||
|
|
@ -732,13 +738,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.8.0"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a76330fb486679b4ace3670f117bbc9e16204005c4bde9c4bd372f45bed34f12"
|
||||
checksum = "c24fcd450d3fa2b592732565aa4f17a27a61c65ece4726353e000939b0edee34"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core 0.6.0",
|
||||
"rand_core 0.6.1",
|
||||
"rand_hc",
|
||||
]
|
||||
|
||||
|
|
@ -749,7 +755,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core 0.6.0",
|
||||
"rand_core 0.6.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -769,9 +775,9 @@ checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
|
|||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.0"
|
||||
version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a8b34ba8cfb21243bd8df91854c830ff0d785fff2e82ebd4434c2644cb9ada18"
|
||||
checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
|
@ -782,7 +788,7 @@ version = "0.3.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
|
||||
dependencies = [
|
||||
"rand_core 0.6.0",
|
||||
"rand_core 0.6.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -827,7 +833,7 @@ dependencies = [
|
|||
"CoreFoundation-sys",
|
||||
"IOKit-sys",
|
||||
"bitflags",
|
||||
"cfg-if",
|
||||
"cfg-if 0.1.10",
|
||||
"libudev",
|
||||
"mach 0.2.3",
|
||||
"nix",
|
||||
|
|
@ -933,8 +939,7 @@ dependencies = [
|
|||
"gtk",
|
||||
"libmath",
|
||||
"png",
|
||||
"rand 0.8.0",
|
||||
"regex",
|
||||
"rand 0.8.1",
|
||||
"serialport",
|
||||
]
|
||||
|
||||
|
|
@ -970,9 +975,9 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
|||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.9.0+wasi-snapshot-preview1"
|
||||
version = "0.10.1+wasi-snapshot-preview1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
|
||||
checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9"
|
||||
|
||||
[[package]]
|
||||
name = "winapi"
|
||||
|
|
|
|||
|
|
@ -14,5 +14,4 @@ gio = "0.9.1"
|
|||
glib = "0.10.3"
|
||||
png = "0.16.8"
|
||||
cairo-rs = { version = "0.9.1", features = ["png"] }
|
||||
rand = "0.8.0"
|
||||
regex = "1.4.2"
|
||||
rand = "0.8.1"
|
||||
|
|
|
|||
67
src/graph.rs
67
src/graph.rs
|
|
@ -3,6 +3,7 @@ use gtk::DrawingArea;
|
|||
|
||||
use std::rc::Rc;
|
||||
use std::cell::RefCell;
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub struct Graph {
|
||||
pub area: DrawingArea,
|
||||
|
|
@ -12,7 +13,8 @@ pub struct Graph {
|
|||
pub scale_y_size: f64,
|
||||
pub draw_patch: bool,
|
||||
pub auto_adjust_y: bool,
|
||||
pub lines: Vec<Line>
|
||||
pub lines: HashMap<String, Line>,
|
||||
pub pankti_sankya: f64
|
||||
}
|
||||
|
||||
pub struct Line {
|
||||
|
|
@ -37,7 +39,8 @@ impl Graph {
|
|||
scale_y_size: f64,
|
||||
draw_patch: bool,
|
||||
auto_adjust_y: bool,
|
||||
lines: Vec<Line>) -> Rc<RefCell<Self>> {
|
||||
lines: HashMap<String, Line>,
|
||||
pankti_sankya: f64) -> Rc<RefCell<Self>> {
|
||||
|
||||
let graph = Rc::new(RefCell::new(Graph {
|
||||
area,
|
||||
|
|
@ -47,7 +50,8 @@ impl Graph {
|
|||
scale_y_size,
|
||||
draw_patch,
|
||||
auto_adjust_y,
|
||||
lines
|
||||
lines,
|
||||
pankti_sankya
|
||||
}));
|
||||
|
||||
let graph_tmp = Rc::clone(&graph);
|
||||
|
|
@ -69,11 +73,11 @@ impl Graph {
|
|||
let width = area.get_allocated_width() as f64;
|
||||
let height = area.get_allocated_height() as f64;
|
||||
|
||||
graph.borrow_mut().trim_lines();
|
||||
if graph.borrow().auto_adjust_y {
|
||||
graph.borrow_mut().adjust_scale_automatic_y();
|
||||
}
|
||||
// graph.borrow_mut().adjust_scale_automatic_x();
|
||||
graph.borrow_mut().adjust_scale_automatic_x();
|
||||
graph.borrow_mut().trim_lines();
|
||||
|
||||
Graph::draw_boxes(ctx, width, height, 40.0, 20.0, 5.0, 0.3);
|
||||
Graph::draw_boxes(ctx, width, height, 40.0, 20.0, 50.0, 0.1);
|
||||
|
|
@ -89,7 +93,7 @@ impl Graph {
|
|||
ctx.set_line_width(2.0);
|
||||
ctx.set_line_cap(cairo::LineCap::Round);
|
||||
let draw_patch = graph.borrow().draw_patch;
|
||||
for line in graph.borrow().lines.iter() {
|
||||
for (_,line) in graph.borrow().lines.iter() {
|
||||
for p in line.points.iter().enumerate() {
|
||||
let xp = if p.0 < line.points.len() - 1 {
|
||||
line.points[p.0 + 1]
|
||||
|
|
@ -147,11 +151,20 @@ impl Graph {
|
|||
}
|
||||
|
||||
pub fn adjust_scale_automatic_y(&mut self) {
|
||||
if self.lines.len() == 0 {
|
||||
return;
|
||||
}
|
||||
|
||||
let mut mx:Option<f64> = None;
|
||||
let mut mi:Option<f64> = None;
|
||||
|
||||
for line in self.lines.iter() {
|
||||
for (_, line) in self.lines.iter() {
|
||||
if line.points.len() == 0 {
|
||||
mx = Some(0.0);
|
||||
mi = Some(0.0);
|
||||
continue;
|
||||
}
|
||||
|
||||
if let None = mx {
|
||||
mx = Some(line.points[0].1);
|
||||
}
|
||||
|
|
@ -166,15 +179,8 @@ impl Graph {
|
|||
}
|
||||
}
|
||||
|
||||
let mx = match mx {
|
||||
Some(val) => val,
|
||||
None => 0.0
|
||||
};
|
||||
|
||||
let mi = match mi {
|
||||
Some(val) => val,
|
||||
None => 0.0
|
||||
};
|
||||
let mx = mx.unwrap();
|
||||
let mi = mi.unwrap();
|
||||
|
||||
let spread = (mx - mi).abs();
|
||||
|
||||
|
|
@ -183,10 +189,20 @@ impl Graph {
|
|||
}
|
||||
|
||||
pub fn adjust_scale_automatic_x(&mut self) {
|
||||
if self.lines.len() == 0 {
|
||||
return;
|
||||
}
|
||||
|
||||
let mut mx:Option<f64> = None;
|
||||
let mut mi:Option<f64> = None;
|
||||
|
||||
for line in self.lines.iter() {
|
||||
for (_, line) in self.lines.iter() {
|
||||
if line.points.len() == 0 {
|
||||
mx = Some(0.0);
|
||||
mi = Some(0.0);
|
||||
continue;
|
||||
}
|
||||
|
||||
if let None = mx {
|
||||
mx = Some(line.points[0].0);
|
||||
}
|
||||
|
|
@ -211,27 +227,24 @@ impl Graph {
|
|||
}
|
||||
|
||||
pub fn trim_lines(&mut self) {
|
||||
let mut j = 0;
|
||||
while j < self.lines.len() {
|
||||
for (_, line) in self.lines.iter_mut() {
|
||||
let mut i = 0;
|
||||
while i < self.lines[j].points.len() {
|
||||
println!("{:?}", self.lines[j].points);
|
||||
match self.lines[j].points.get(i + 2) {
|
||||
while i < line.points.len() {
|
||||
match line.points.get(i + 2) {
|
||||
Some(_) => {
|
||||
if self.lines[j].points[i+1].0 < self.scale_x_start {
|
||||
self.lines[j].points.remove(i);
|
||||
if line.points[i+1].0 < self.scale_x_start {
|
||||
line.points.remove(i);
|
||||
}
|
||||
},
|
||||
None => {
|
||||
if self.lines[j].points[self.lines[j].points.len() - 1].0 < self.scale_x_start {
|
||||
self.lines.remove(j);
|
||||
if line.points[line.points.len() - 1].0 < self.scale_x_start {
|
||||
line.points.clear();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
j += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
101
src/lib.rs
101
src/lib.rs
|
|
@ -1,14 +1,16 @@
|
|||
mod graph;
|
||||
|
||||
use gtk::prelude::*;
|
||||
use graph::{Graph, Line};
|
||||
|
||||
use std::sync::{Arc, Mutex};
|
||||
use rand::Rng;
|
||||
|
||||
use std::{collections::HashMap, sync::{Arc, Mutex}};
|
||||
use std::rc::Rc;
|
||||
|
||||
use std::io::prelude::*;
|
||||
use std::io::BufReader;
|
||||
|
||||
use graph::Graph;
|
||||
|
||||
pub enum Status {
|
||||
JAGRIT, SAYAN, AVRODTIH, PARIVARTIT, NIKAS
|
||||
}
|
||||
|
|
@ -48,15 +50,32 @@ pub fn build_ui(app: >k::Application, config: Arc::<Mutex::<Config>>) {
|
|||
0.0, 100.0,
|
||||
true,
|
||||
true,
|
||||
vec![
|
||||
Line::new(1.0,1.0,0.0,vec![(10.0,10.0),(20.0,20.0),(30.0,25.0), (40.0, 50.0),(50.0,25.0)]),
|
||||
// Line::new(1.0,0.0,0.0,vec![(50.0,10.0),(70.0,60.0)]),
|
||||
// Line::new(0.0,1.0,0.0,vec![(50.0,50.0)])
|
||||
]
|
||||
HashMap::new(),
|
||||
0.0
|
||||
);
|
||||
|
||||
win.show_all();
|
||||
|
||||
// exit_menu
|
||||
let exit_menu = builder.get_object::<gtk::MenuItem>("exit_menu").expect("Resource file missing!");
|
||||
let tmp_win = win.clone();
|
||||
exit_menu.connect_activate(move |_|{
|
||||
unsafe {
|
||||
tmp_win.destroy();
|
||||
}
|
||||
});
|
||||
|
||||
// about_menu
|
||||
let about_menu = builder.get_object::<gtk::MenuItem>("about_menu").expect("Resource file missing!");
|
||||
let about = builder.get_object::<gtk::AboutDialog>("about").expect("Resource file missing!");
|
||||
|
||||
about_menu.connect_activate(move |_|{
|
||||
about.show_all();
|
||||
});
|
||||
|
||||
// save_log
|
||||
|
||||
|
||||
// pankti
|
||||
let pankti = builder.get_object::<gtk::SpinButton>("pankti").expect("Resource file missing!");
|
||||
|
||||
|
|
@ -167,6 +186,7 @@ pub fn build_ui(app: >k::Application, config: Arc::<Mutex::<Config>>) {
|
|||
|
||||
let tmp_graph = Rc::clone(&graph);
|
||||
clear_graph.connect_clicked(move |_ | {
|
||||
tmp_graph.borrow_mut().pankti_sankya = 0.0;
|
||||
tmp_graph.borrow_mut().lines.clear();
|
||||
tmp_graph.borrow().area.queue_draw();
|
||||
});
|
||||
|
|
@ -176,9 +196,13 @@ pub fn build_ui(app: >k::Application, config: Arc::<Mutex::<Config>>) {
|
|||
|
||||
let tmp_bar = bar.clone();
|
||||
let tmp_config = Arc::clone(&config);
|
||||
let tmp_graph = Rc::clone(&graph);
|
||||
jagrit_btn.connect_clicked(move |_ | {
|
||||
match tmp_config.lock() {
|
||||
Ok(mut config) => {
|
||||
tmp_graph.borrow_mut().pankti_sankya = 0.0;
|
||||
tmp_graph.borrow_mut().lines.clear();
|
||||
tmp_graph.borrow().area.queue_draw();
|
||||
tmp_bar.push(1, "Jagrit");
|
||||
config.status = Status::PARIVARTIT;
|
||||
}, Err(_) => {
|
||||
|
|
@ -187,7 +211,7 @@ pub fn build_ui(app: >k::Application, config: Arc::<Mutex::<Config>>) {
|
|||
}
|
||||
});
|
||||
|
||||
//jagrit_btn
|
||||
//avrodith_btn
|
||||
let avrodith_btn = builder.get_object::<gtk::ToolButton>("avrodith_btn").expect("Resource file missing!");
|
||||
|
||||
let tmp_bar = bar.clone();
|
||||
|
|
@ -276,11 +300,66 @@ pub fn build_ui(app: >k::Application, config: Arc::<Mutex::<Config>>) {
|
|||
});
|
||||
|
||||
let full_log = builder.get_object::<gtk::CheckButton>("full_log").expect("Resource file missing!");
|
||||
let tmp_graph = Rc::clone(&graph);
|
||||
receiver.attach(None, move |msg| {
|
||||
match msg {
|
||||
Message::Msg(text) => {
|
||||
if !full_log.get_active() && text.starts_with("#") {
|
||||
if text.starts_with("#") {
|
||||
tmp_graph.borrow_mut().pankti_sankya += 1.0;
|
||||
for (index, line) in text[1..].split(" ").enumerate() {
|
||||
let part = line.split("=");
|
||||
let part = part.into_iter().collect::<Vec<&str>>();
|
||||
if part.len() == 1 {
|
||||
let num = match part[0].trim().parse::<f64>() {
|
||||
Ok(val) => val,
|
||||
Err(_) => {
|
||||
continue;
|
||||
}
|
||||
};
|
||||
let mut gp = tmp_graph.borrow_mut();
|
||||
|
||||
let sankhya = gp.pankti_sankya;
|
||||
match gp.lines.get_mut(&index.to_string()) {
|
||||
Some(val) => {
|
||||
val.points.push((sankhya, num));
|
||||
} None => {
|
||||
let v = vec![(sankhya, num)];
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
gp.lines.insert(index.to_string(), graph::Line::new(rng.gen_range(0.0..1.0), 0.0, rng.gen_range(0.0..1.0), v));
|
||||
}
|
||||
}
|
||||
gp.area.queue_draw();
|
||||
} else if part.len() == 2 {
|
||||
let num = match part[1].trim().parse::<f64>() {
|
||||
Ok(val) => val,
|
||||
Err(_) => {
|
||||
continue;
|
||||
}
|
||||
};
|
||||
let mut gp = tmp_graph.borrow_mut();
|
||||
|
||||
let sankhya = gp.pankti_sankya;
|
||||
match gp.lines.get_mut(part[0]) {
|
||||
Some(val) => {
|
||||
val.points.push((sankhya, num));
|
||||
} None => {
|
||||
let v = vec![(sankhya, num)];
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
gp.lines.insert(part[0].to_owned(), graph::Line::new(rng.gen_range(0.0..1.0), 0.0, rng.gen_range(0.0..1.0), v));
|
||||
}
|
||||
}
|
||||
gp.area.queue_draw();
|
||||
}
|
||||
}
|
||||
|
||||
if full_log.get_active(){
|
||||
let buf = log_area.get_buffer()
|
||||
.expect("Couldn't get log_area");
|
||||
buf.insert(&mut buf.get_end_iter(), &text);
|
||||
log_area.scroll_to_iter(&mut buf.get_end_iter(), 0.4, true, 0.0, 0.0);
|
||||
}
|
||||
} else {
|
||||
let buf = log_area.get_buffer()
|
||||
.expect("Couldn't get log_area");
|
||||
|
|
@ -295,7 +374,7 @@ pub fn build_ui(app: >k::Application, config: Arc::<Mutex::<Config>>) {
|
|||
glib::Continue(true)
|
||||
});
|
||||
|
||||
|
||||
// Time ke hisab se pankti ko aage bhadhay
|
||||
// let (sender, receiver) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
|
||||
// glib::timeout_add(300, move || {
|
||||
// sender.send(()).unwrap();
|
||||
|
|
|
|||
|
|
@ -1,34 +1,5 @@
|
|||
|
||||
#[test]
|
||||
fn start() {
|
||||
let a = vec![0,1,2,3,4,5,6,7,8,9];
|
||||
|
||||
let mut skiped = false;
|
||||
let b: Vec<i32> = a.into_iter().filter(|x| {
|
||||
if *x <= 4 {
|
||||
return false;
|
||||
}
|
||||
|
||||
if !skiped {
|
||||
skiped = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}).collect();
|
||||
|
||||
println!("{:?}", b);
|
||||
|
||||
// for (i, x) in a.iter().enumerate() {
|
||||
// if *x <= 4 {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// if !skiped {
|
||||
// skiped = true;
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// a.remove(i);
|
||||
// }
|
||||
}
|
||||
|
|
@ -2,6 +2,42 @@
|
|||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.22"/>
|
||||
<object class="GtkAboutDialog" id="about">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<property name="program-name">Tarangam (तरंगम्)</property>
|
||||
<property name="comments" translatable="yes">A simple serial plotter.
|
||||
एक सरल सीरीय्ल पलौटर।</property>
|
||||
<property name="authors">Piyush Mishra</property>
|
||||
<property name="logo-icon-name">image-missing</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="layout-style">end</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkImage" id="document_save">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -44,7 +80,7 @@
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem">
|
||||
<object class="GtkImageMenuItem" id="save_menu">
|
||||
<property name="label">Save Log</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -59,7 +95,7 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem">
|
||||
<object class="GtkImageMenuItem" id="exit_menu">
|
||||
<property name="label">gtk-quit</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -82,7 +118,7 @@
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem">
|
||||
<object class="GtkImageMenuItem" id="about_menu">
|
||||
<property name="label">gtk-about</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -213,25 +249,6 @@
|
|||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolItem">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">Timeframe</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolItem">
|
||||
<property name="visible">True</property>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,42 @@
|
|||
<!-- Generated with glade 3.38.2 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.22"/>
|
||||
<object class="GtkAboutDialog" id="about">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<property name="program-name">Tarangam (तरंगम्)</property>
|
||||
<property name="comments" translatable="yes">A simple serial plotter.
|
||||
एक सरल सीरीय्ल पलौटर।</property>
|
||||
<property name="authors">Piyush Mishra</property>
|
||||
<property name="logo-icon-name">image-missing</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="layout-style">end</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkImage" id="document_save">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -59,7 +95,7 @@
|
|||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem">
|
||||
<object class="GtkImageMenuItem" id="exit_menu">
|
||||
<property name="label">gtk-quit</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -82,7 +118,7 @@
|
|||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem">
|
||||
<object class="GtkImageMenuItem" id="about_menu">
|
||||
<property name="label">gtk-about</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
|
@ -213,25 +249,6 @@
|
|||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolItem">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton">
|
||||
<property name="label" translatable="yes">Timeframe</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="homogeneous">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToolItem">
|
||||
<property name="visible">True</property>
|
||||
|
|
|
|||
Loading…
Reference in New Issue