├── .gitignore ├── gtk-hello ├── .gitignore ├── Cargo.toml ├── src │ └── main.rs └── Cargo.lock ├── gtk-gallary ├── .gitignore ├── Cargo.toml ├── src │ └── main.rs └── Cargo.lock ├── gtk-subclass ├── .gitignore ├── Cargo.toml ├── src │ ├── custom_button │ │ ├── mod.rs │ │ └── imp.rs │ └── main.rs └── Cargo.lock ├── Cargo.toml ├── gtk-memory-management ├── Cargo.toml ├── src │ └── main.rs └── Cargo.lock ├── wado ├── Cargo.toml └── src │ ├── row_widget │ ├── mod.rs │ └── imp.rs │ ├── payment │ ├── mod.rs │ └── imp.rs │ ├── util.rs │ ├── ui.rs │ └── main.rs ├── README.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | -------------------------------------------------------------------------------- /gtk-hello/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /gtk-gallary/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /gtk-subclass/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["gtk-hello", "gtk-gallary","gtk-memory-management", "gtk-subclass", "wado"] -------------------------------------------------------------------------------- /gtk-hello/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "gtk-hello" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | gtk = { version = "0.6.2", package = "gtk4" } 10 | -------------------------------------------------------------------------------- /gtk-gallary/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "gtk-gallary" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | gtk = { version = "0.6.2", package = "gtk4" } 10 | -------------------------------------------------------------------------------- /gtk-subclass/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "gtk-subclass" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | gtk = { version = "0.6.6", package = "gtk4" } 10 | -------------------------------------------------------------------------------- /gtk-memory-management/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "gtk-memory-management" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | gtk = { version = "0.6.2", package = "gtk4" } 10 | -------------------------------------------------------------------------------- /wado/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "wado" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | gtk = { version = "0.6.6", package = "gtk4" } 10 | time = "0.3.20" 11 | uuid = { version = "1.3.2", features = ["v4"] } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | このリポジトリはRust Monthly Topicsに掲載したGTKの記事のサンプルコードの置き場です 2 | 3 | ## gtk-rsでデスクトップアプリ開発をはじめよう 4 | 5 | * [gtk-hello](gtk-hello): 最初のプロジェクト 6 | * [gtk-gallary](gtk-gallary): ウィジェットを色々使ってみる 7 | 8 | ## GTKのオブジェクトについて 9 | 10 | * [gtk-memory-management](gtk-memory-management): メモリ管理について 11 | * [gtk-subclass](gtk-subclass): サブクラス、プロパティ、シグナル 12 | 13 | 14 | ## 家計簿アプリを作ってみよう 15 | 16 | * [wado](wado): アプリケーション -------------------------------------------------------------------------------- /wado/src/row_widget/mod.rs: -------------------------------------------------------------------------------- 1 | mod imp; 2 | use crate::Payment; 3 | use gtk::glib; 4 | 5 | glib::wrapper! { 6 | pub struct RowWidget(ObjectSubclass) 7 | @extends gtk::Widget, gtk::ListBoxRow; 8 | } 9 | 10 | impl RowWidget { 11 | pub fn new(payment: &Payment) -> Self { 12 | glib::Object::builder() 13 | .property("row-data", &payment) 14 | .build() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /wado/src/payment/mod.rs: -------------------------------------------------------------------------------- 1 | mod imp; 2 | use gtk; 3 | use gtk::glib::{self, DateTime}; 4 | 5 | glib::wrapper! { 6 | pub struct Payment(ObjectSubclass); 7 | } 8 | 9 | impl Payment { 10 | pub fn new(name: String, amount: i64, date: DateTime) -> Self { 11 | let obj = glib::Object::new::(); 12 | obj.set_name(name); 13 | obj.set_amount(amount); 14 | obj.set_date(date); 15 | obj 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /gtk-subclass/src/custom_button/mod.rs: -------------------------------------------------------------------------------- 1 | mod imp; 2 | 3 | use glib::Object; 4 | use gtk::glib; 5 | 6 | glib::wrapper! { 7 | pub struct CustomButton(ObjectSubclass) 8 | @extends gtk::Button, gtk::Widget, 9 | @implements gtk::Accessible, gtk::Actionable, gtk::Buildable, gtk::ConstraintTarget; 10 | } 11 | 12 | impl CustomButton { 13 | pub fn new() -> Self { 14 | Object::builder().build() 15 | } 16 | 17 | pub fn with_label(label: &str) -> Self { 18 | Object::builder().property("label", label).build() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /gtk-hello/src/main.rs: -------------------------------------------------------------------------------- 1 | // 1 2 | use gtk::prelude::*; 3 | 4 | fn main() { 5 | // 2 6 | let application = 7 | gtk::Application::new(Some("com.github.gtk-rs.examples.basic"), Default::default()); 8 | // 3 9 | application.connect_activate(build_ui); 10 | // 4 11 | application.run(); 12 | } 13 | 14 | fn build_ui(application: >k::Application) { 15 | // 5 16 | let window = gtk::ApplicationWindow::new(application); 17 | 18 | // 6 19 | window.set_title(Some("First GTK Program")); 20 | window.set_default_size(350, 70); 21 | 22 | // 7 23 | let button = gtk::Button::with_label("Click me!"); 24 | // 8 25 | button.connect_clicked(|_| { 26 | println!("Clicked!"); 27 | }); 28 | 29 | // 9 30 | window.set_child(Some(&button)); 31 | 32 | // 10 33 | window.show(); 34 | } 35 | -------------------------------------------------------------------------------- /gtk-subclass/src/custom_button/imp.rs: -------------------------------------------------------------------------------- 1 | use gtk::glib; 2 | use gtk::glib::Properties; 3 | use gtk::prelude::*; 4 | use gtk::subclass::prelude::*; 5 | use std::cell::Cell; 6 | 7 | // オブジェクトの状態を保持する 8 | #[derive(Default, Properties)] 9 | #[properties(wrapper_type = super::CustomButton)] 10 | pub struct CustomButton { 11 | #[property(get, set)] 12 | clicked_count: Cell, 13 | } 14 | 15 | // サブクラスを定義するときの主要なトレイト 16 | #[glib::object_subclass] 17 | impl ObjectSubclass for CustomButton { 18 | const NAME: &'static str = "MyGtkAppCustomButton"; 19 | type Type = super::CustomButton; 20 | type ParentType = gtk::Button; 21 | } 22 | 23 | // GObjectのサブクラスが実装するトレイト 24 | impl ObjectImpl for CustomButton { 25 | fn properties() -> &'static [glib::ParamSpec] { 26 | Self::derived_properties() 27 | } 28 | fn set_property(&self, id: usize, value: &glib::Value, pspec: &glib::ParamSpec) { 29 | self.derived_set_property(id, value, pspec) 30 | } 31 | fn property(&self, id: usize, pspec: &glib::ParamSpec) -> glib::Value { 32 | self.derived_property(id, pspec) 33 | } 34 | } 35 | 36 | // Widgetのサブクラスが実装するトレイト 37 | impl WidgetImpl for CustomButton {} 38 | 39 | // Buttonのサブクラスが実装するトレイト 40 | impl ButtonImpl for CustomButton {} 41 | -------------------------------------------------------------------------------- /gtk-subclass/src/main.rs: -------------------------------------------------------------------------------- 1 | mod custom_button; 2 | 3 | use custom_button::CustomButton; 4 | use gtk::prelude::*; 5 | use gtk::{Application, ApplicationWindow}; 6 | 7 | const APP_ID: &str = "org.gtk_rs.GObjectSubclassing1"; 8 | 9 | fn main() { 10 | // Create a new application 11 | let app = Application::builder().application_id(APP_ID).build(); 12 | 13 | // Connect to "activate" signal of `app` 14 | app.connect_activate(build_ui); 15 | 16 | // Run the application 17 | app.run(); 18 | } 19 | 20 | fn build_ui(app: &Application) { 21 | // Create a button 22 | let button = CustomButton::with_label("Press me!"); 23 | button.set_margin_top(12); 24 | button.set_margin_bottom(12); 25 | button.set_margin_start(12); 26 | button.set_margin_end(12); 27 | 28 | // Connect to "clicked" signal of `button` 29 | button.connect_clicked(move |button| { 30 | // Set the label to "Hello World!" after the button has been clicked on 31 | button.set_label("Hello World!"); 32 | }); 33 | 34 | // Create a window 35 | let window = ApplicationWindow::builder() 36 | .application(app) 37 | .title("My GTK App") 38 | .child(&button) 39 | .build(); 40 | 41 | // Present window 42 | window.present(); 43 | } 44 | -------------------------------------------------------------------------------- /wado/src/payment/imp.rs: -------------------------------------------------------------------------------- 1 | use gtk::glib; 2 | use gtk::glib::{prelude::*, DateTime, Properties}; 3 | use gtk::subclass::prelude::*; 4 | use std::cell::{Cell, RefCell}; 5 | 6 | #[derive(Debug, Properties)] 7 | #[properties(wrapper=super::Payment)] 8 | pub struct Payment { 9 | #[property(get, set)] 10 | name: RefCell, 11 | #[property(get, set)] 12 | amount: Cell, 13 | #[property(get, set)] 14 | date: RefCell, 15 | } 16 | 17 | impl Default for Payment { 18 | // for object_subclass 19 | fn default() -> Self { 20 | Self { 21 | name: RefCell::new(String::new()), 22 | amount: Cell::new(0), 23 | date: RefCell::new(DateTime::now_local().unwrap()), 24 | } 25 | } 26 | } 27 | 28 | #[glib::object_subclass] 29 | impl ObjectSubclass for Payment { 30 | const NAME: &'static str = "Payment"; 31 | type Type = super::Payment; 32 | type ParentType = glib::Object; 33 | } 34 | 35 | impl ObjectImpl for Payment { 36 | fn properties() -> &'static [glib::ParamSpec] { 37 | Self::derived_properties() 38 | } 39 | 40 | fn set_property(&self, id: usize, value: &glib::Value, pspec: &glib::ParamSpec) { 41 | self.derived_set_property(id, value, pspec) 42 | } 43 | 44 | fn property(&self, id: usize, pspec: &glib::ParamSpec) -> glib::Value { 45 | self.derived_property(id, pspec) 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /wado/src/util.rs: -------------------------------------------------------------------------------- 1 | use gtk::glib; 2 | use gtk::prelude::*; 3 | 4 | pub fn format_date(d: glib::DateTime) -> String { 5 | format!("{:04}-{:02}-{:02}", d.year(), d.month(), d.day_of_month()) 6 | } 7 | 8 | pub fn datepicker() -> (gtk::Box, gtk::Calendar) { 9 | let hbox = gtk::Box::builder() 10 | .homogeneous(false) 11 | .orientation(gtk::Orientation::Horizontal) 12 | .build(); 13 | let button = gtk::Button::new(); 14 | let cal = gtk::Calendar::new(); 15 | // デフォルトで今日の日付を選択しておく 16 | cal.select_day(&glib::DateTime::now_local().unwrap()); 17 | let pop = gtk::Popover::builder().child(&cal).autohide(true).build(); 18 | 19 | button.connect_clicked(glib::clone!(@weak pop => move |_| { 20 | pop.popup() 21 | })); 22 | button.set_label(&format_date(cal.date())); 23 | cal.connect_day_selected(glib::clone!(@weak pop, @weak button => move |cal| { 24 | pop.popdown(); 25 | // 日付が選ばれたらボタンのラベルに反映しておく 26 | button.set_label(&format_date(cal.date())); 27 | })); 28 | 29 | hbox.append(&button); 30 | hbox.append(&pop); 31 | 32 | // 親ウィジェットに追加するためのBoxと 33 | // 選択された日付を取り出すためのカレンダーを返す 34 | (hbox, cal) 35 | } 36 | 37 | pub fn dialog(title: &str, message: &str) { 38 | let label = gtk::Label::new(Some(message)); 39 | let button = gtk::Button::with_label("OK"); 40 | let vbox = gtk::Box::builder() 41 | .orientation(gtk::Orientation::Vertical) 42 | .spacing(10) 43 | .build(); 44 | vbox.append(&label); 45 | vbox.append(&button); 46 | let dialog = gtk::Window::builder().title(title).child(&vbox).build(); 47 | button.connect_clicked(glib::clone!(@weak dialog => move |_| { 48 | dialog.close() 49 | })); 50 | dialog.show(); 51 | } 52 | -------------------------------------------------------------------------------- /gtk-memory-management/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{cell::Cell, rc::Rc}; 2 | 3 | use gtk::{glib, prelude::*, Application, ApplicationWindow}; 4 | 5 | const APP_ID: &str = "com.github.keens.gtk-examples.memory-management"; 6 | 7 | fn main() -> glib::ExitCode { 8 | let app = Application::builder().application_id(APP_ID).build(); 9 | 10 | app.connect_activate(build_ui); 11 | 12 | app.run() 13 | } 14 | 15 | fn build_ui(application: &Application) { 16 | // ボタンを2つ作る 17 | let button_increase = gtk::Button::builder() 18 | .label("Increase") 19 | .margin_top(12) 20 | .margin_bottom(12) 21 | .margin_start(12) 22 | .margin_end(12) 23 | .build(); 24 | let button_decrease = gtk::Button::builder() 25 | .label("Decrease") 26 | .margin_top(12) 27 | .margin_bottom(12) 28 | .margin_start(12) 29 | .margin_end(12) 30 | .build(); 31 | 32 | // 2つのボタンから変更する数字を用意する 33 | let number = Rc::new(Cell::new(0)); 34 | 35 | // コールバックを接続する 36 | // ボタンをクリックすると `number` ともう1つのボタンのラベルを変える 37 | 38 | button_increase.connect_clicked(glib::clone!(@strong number, @weak button_decrease => 39 | move |_| { 40 | number.set(number.get() + 1); 41 | button_decrease.set_label(&number.get().to_string()); 42 | })); 43 | button_decrease.connect_clicked(glib::clone!(@weak button_increase => 44 | move |_| { 45 | number.set(number.get() - 1); 46 | button_increase.set_label(&number.get().to_string()); 47 | })); 48 | 49 | // ボタンをgtk_boxに追加する 50 | let gtk_box = gtk::Box::builder() 51 | .orientation(gtk::Orientation::Vertical) 52 | .build(); 53 | gtk_box.append(&button_increase); 54 | gtk_box.append(&button_decrease); 55 | 56 | // ウィンドウを作る 57 | let window = ApplicationWindow::builder() 58 | .application(application) 59 | .title("My GTK App") 60 | .child(>k_box) 61 | .build(); 62 | 63 | // ウィンドウを表示する 64 | window.present(); 65 | } 66 | -------------------------------------------------------------------------------- /wado/src/row_widget/imp.rs: -------------------------------------------------------------------------------- 1 | use crate::util; 2 | use std::cell::RefCell; 3 | 4 | use gtk::{ 5 | glib::{self, clone, DateTime, ParamSpec, Properties, Value}, 6 | prelude::*, 7 | subclass::prelude::*, 8 | ResponseType, 9 | }; 10 | 11 | use crate::Payment; 12 | 13 | #[derive(Default, Properties, Debug)] 14 | #[properties(wrapper_type = super::RowWidget)] 15 | pub struct RowWidget { 16 | #[property(get, set, construct_only)] 17 | row_data: RefCell>, 18 | } 19 | 20 | #[glib::object_subclass] 21 | impl ObjectSubclass for RowWidget { 22 | const NAME: &'static str = "RowWidget"; 23 | type ParentType = gtk::ListBoxRow; 24 | type Type = super::RowWidget; 25 | } 26 | 27 | impl ObjectImpl for RowWidget { 28 | fn properties() -> &'static [ParamSpec] { 29 | Self::derived_properties() 30 | } 31 | 32 | fn set_property(&self, id: usize, value: &Value, pspec: &ParamSpec) { 33 | self.derived_set_property(id, value, pspec) 34 | } 35 | 36 | fn property(&self, id: usize, pspec: &ParamSpec) -> Value { 37 | self.derived_property(id, pspec) 38 | } 39 | 40 | fn constructed(&self) { 41 | self.parent_constructed(); 42 | let obj = self.obj(); 43 | 44 | let item = self.row_data.borrow(); 45 | let item = item.as_ref().cloned().unwrap(); 46 | 47 | let b = gtk::Box::builder() 48 | .orientation(gtk::Orientation::Horizontal) 49 | .spacing(10) 50 | .vexpand(true) 51 | .homogeneous(true) 52 | .build(); 53 | let date = gtk::Label::builder().halign(gtk::Align::Start).build(); 54 | item.bind_property("date", &date, "label") 55 | .transform_to(|_, d: DateTime| Some(util::format_date(d))) 56 | .sync_create() 57 | .build(); 58 | let name = gtk::Label::new(None); 59 | item.bind_property("name", &name, "label") 60 | .sync_create() 61 | .build(); 62 | let amount = gtk::Label::builder().halign(gtk::Align::End).build(); 63 | item.bind_property("amount", &amount, "label") 64 | .transform_to(|_, a: i64| Some(format!("{}円", a))) 65 | .sync_create() 66 | .build(); 67 | b.append(&date); 68 | b.append(&name); 69 | b.append(&amount); 70 | 71 | obj.set_child(Some(&b)); 72 | } 73 | } 74 | 75 | impl WidgetImpl for RowWidget {} 76 | impl ListBoxRowImpl for RowWidget {} 77 | -------------------------------------------------------------------------------- /gtk-gallary/src/main.rs: -------------------------------------------------------------------------------- 1 | use gtk::prelude::*; 2 | 3 | fn main() { 4 | let application = gtk::Application::new(Some("com.github.gallery"), Default::default()); 5 | application.connect_activate(build_ui); 6 | application.run(); 7 | } 8 | 9 | fn build_ui(application: >k::Application) { 10 | let window = gtk::ApplicationWindow::new(application); 11 | 12 | window.set_title(Some("Gallery")); 13 | window.set_default_size(350, 70); 14 | 15 | let vbox = gtk::Box::builder() 16 | // アイテムを縦に並べる 17 | .orientation(gtk::Orientation::Vertical) 18 | // アイテムを左(開始位置)寄せする 19 | .halign(gtk::Align::Start) 20 | // 見た目を整える 21 | .spacing(6) 22 | .margin_bottom(6) 23 | .margin_top(6) 24 | .margin_start(6) 25 | .margin_end(6) 26 | //ビルドする 27 | .build(); 28 | 29 | window.set_child(Some(&vbox)); 30 | 31 | vbox.append(&build_button()); 32 | 33 | vbox.append(&build_scale()); 34 | 35 | vbox.append(&build_switch()); 36 | 37 | vbox.append(&build_password_entry()); 38 | 39 | vbox.append(&build_frame()); 40 | 41 | window.show(); 42 | } 43 | 44 | fn build_button() -> gtk::Button { 45 | let button = gtk::Button::with_label("Click me!"); 46 | button.connect_clicked(|_| { 47 | println!("Clicked!"); 48 | }); 49 | button 50 | } 51 | 52 | fn build_scale() -> gtk::Scale { 53 | let scale = gtk::Scale::builder() 54 | .draw_value(true) 55 | // 1 56 | .adjustment( 57 | >k::Adjustment::builder() 58 | .lower(0.0) 59 | .upper(100.0) 60 | .value(50.0) 61 | .step_increment(1.0) 62 | .page_increment(10.0) 63 | .build(), 64 | ) 65 | // 2 66 | .digits(0) 67 | .round_digits(0) 68 | .build(); 69 | // 3 70 | scale.connect_value_changed(|s| { 71 | println!("value changed: {}", s.value()); 72 | }); 73 | scale 74 | } 75 | 76 | fn build_switch() -> gtk::Switch { 77 | let switch = gtk::Switch::builder().halign(gtk::Align::End).build(); 78 | switch.connect_active_notify(|s| println!("state changed: {:?}", s.is_active())); 79 | switch 80 | } 81 | 82 | fn build_password_entry() -> gtk::PasswordEntry { 83 | gtk::PasswordEntry::new() 84 | } 85 | 86 | fn build_frame() -> gtk::Frame { 87 | let frame = gtk::Frame::builder() 88 | .label("Frame") 89 | .child(&build_switch()) 90 | .build(); 91 | frame 92 | } 93 | -------------------------------------------------------------------------------- /wado/src/ui.rs: -------------------------------------------------------------------------------- 1 | use crate::{util, Payment}; 2 | use gtk; 3 | use gtk::gio; 4 | use gtk::glib::{self, DateTime}; 5 | use gtk::prelude::*; 6 | 7 | pub fn display_ui(payment: &Payment) -> impl IsA { 8 | let hbox = gtk::Box::builder() 9 | .orientation(gtk::Orientation::Horizontal) 10 | .spacing(10) 11 | .homogeneous(true) 12 | .build(); 13 | let date = gtk::Label::builder().halign(gtk::Align::Start).build(); 14 | payment 15 | .bind_property("date", &date, "label") 16 | .transform_to(|_, d: DateTime| Some(util::format_date(d))) 17 | .sync_create() 18 | .build(); 19 | let name = gtk::Label::new(None); 20 | payment 21 | .bind_property("name", &name, "label") 22 | .sync_create() 23 | .build(); 24 | let amount = gtk::Label::builder().halign(gtk::Align::End).build(); 25 | payment 26 | .bind_property("amount", &amount, "label") 27 | .transform_to(|_, a: i64| Some(format!("{}円", a))) 28 | .sync_create() 29 | .build(); 30 | hbox.append(&date); 31 | hbox.append(&name); 32 | hbox.append(&amount); 33 | hbox 34 | } 35 | 36 | pub fn edit_ui( 37 | payment: &Payment, 38 | model: &gio::ListStore, 39 | row: >k::ListBoxRow, 40 | ) -> impl IsA { 41 | let hbox = gtk::Box::builder() 42 | .orientation(gtk::Orientation::Horizontal) 43 | .build(); 44 | let name_entry = gtk::Entry::builder() 45 | .placeholder_text("name") 46 | .buffer(>k::EntryBuffer::builder().text(payment.name()).build()) 47 | .build(); 48 | let amount_entry = gtk::Entry::builder() 49 | .placeholder_text("amount") 50 | .buffer( 51 | >k::EntryBuffer::builder() 52 | .text(format!("{}", payment.amount())) 53 | .build(), 54 | ) 55 | .input_purpose(gtk::InputPurpose::Digits) 56 | .build(); 57 | let (picker, cal) = util::datepicker(); 58 | cal.select_day(&payment.date()); 59 | let update_button = gtk::Button::builder().label("update").build(); 60 | let delete_button = gtk::Button::builder().label("delete").build(); 61 | 62 | let index = row.index() as u32; 63 | update_button.connect_clicked( 64 | glib::clone!(@weak name_entry, @weak amount_entry, @weak cal, @weak payment, @weak row, @weak model => move |_| { 65 | let name = name_entry.buffer().text().to_string(); 66 | let amount = match amount_entry.buffer().text().parse::() { 67 | Ok(a) => a, 68 | Err(_) => { 69 | util::dialog("エラー", "金額は整数値で入力して下さい"); 70 | return; 71 | }, 72 | }; 73 | let date = cal.date(); 74 | // オブジェクトを更新 75 | payment.set_name(name); 76 | payment.set_amount(amount); 77 | payment.set_date(date); 78 | // ウィジェットを元に戻す 79 | row.set_child(Some(&display_ui(&payment))); 80 | // 残高を更新するために items-changed シグナルを発行 81 | model.items_changed(index, 0, 0); 82 | }), 83 | ); 84 | delete_button.connect_clicked(glib::clone!(@weak model => move|_|{ 85 | model.remove(index); 86 | })); 87 | 88 | hbox.append(&picker); 89 | hbox.append(&name_entry); 90 | hbox.append(&amount_entry); 91 | hbox.append(&update_button); 92 | hbox.append(&delete_button); 93 | hbox 94 | } 95 | -------------------------------------------------------------------------------- /wado/src/main.rs: -------------------------------------------------------------------------------- 1 | use gtk::gio; 2 | use gtk::glib; 3 | use gtk::prelude::*; 4 | use std::cell::RefCell; 5 | use std::rc::Rc; 6 | 7 | mod payment; 8 | mod ui; 9 | mod util; 10 | use payment::Payment; 11 | 12 | #[derive(Debug)] 13 | pub struct Wado { 14 | model: gio::ListStore, 15 | balance: gtk::Label, 16 | } 17 | 18 | impl Default for Wado { 19 | fn default() -> Self { 20 | let label = gtk::Label::new(None); 21 | let model = gio::ListStore::new(Payment::static_type()); 22 | model.connect_items_changed(glib::clone!(@weak label => move |m, _, _, _| { 23 | let balance = m 24 | .into_iter() 25 | .map(|item| item.unwrap().downcast::().unwrap().amount()) 26 | .sum::(); 27 | label.set_markup(&format!("{}円", balance)); 28 | })); 29 | Self { 30 | model, 31 | balance: label, 32 | } 33 | } 34 | } 35 | 36 | impl Wado { 37 | pub fn record_payment(&mut self, payment: Payment) { 38 | self.model.append(&payment); 39 | } 40 | 41 | pub fn model(&self) -> &gio::ListStore { 42 | &self.model 43 | } 44 | pub fn balance(&self) -> >k::Label { 45 | &self.balance 46 | } 47 | } 48 | 49 | fn main() -> glib::ExitCode { 50 | let application = gtk::Application::new( 51 | Some("com.github.keens.gtk-examples.wado"), 52 | Default::default(), 53 | ); 54 | 55 | application.connect_activate(build_ui); 56 | application.run() 57 | } 58 | 59 | fn build_ui(app: >k::Application) { 60 | // See https://github.com/gtk-rs/gtk4-rs/blob/master/examples/list_box_model/main.rs 61 | let window = gtk::ApplicationWindow::builder() 62 | .default_width(600) 63 | .default_height(600) 64 | .application(app) 65 | .title("ワドー") 66 | .build(); 67 | 68 | let mut wado = Wado::default(); 69 | 70 | wado.record_payment(Payment::new( 71 | "お小遣い".into(), 72 | 1000, 73 | glib::DateTime::now_local().unwrap(), 74 | )); 75 | wado.record_payment(Payment::new( 76 | "きゅうり".into(), 77 | -150, 78 | glib::DateTime::now_local().unwrap(), 79 | )); 80 | 81 | let list_box = gtk::ListBox::new(); 82 | list_box.bind_model(Some(wado.model()), |item| { 83 | let payment = item.downcast_ref::().unwrap(); 84 | ui::display_ui(payment).upcast::() 85 | }); 86 | 87 | let model = wado.model(); 88 | list_box.connect_row_activated(glib::clone!(@weak model => move |_lbox, row| { 89 | let payment = model.item(row.index() as u32).unwrap().downcast::().unwrap(); 90 | 91 | row.set_child(Some(&ui::edit_ui(&payment, &model, row))); 92 | })); 93 | 94 | let scrolled_window = gtk::ScrolledWindow::builder() 95 | .hscrollbar_policy(gtk::PolicyType::Never) // Disable horizontal scrolling 96 | .min_content_height(400) 97 | .child(&list_box) 98 | .build(); 99 | 100 | let vbox = gtk::Box::builder() 101 | .orientation(gtk::Orientation::Vertical) 102 | .spacing(10) 103 | .margin_bottom(10) 104 | .margin_end(10) 105 | .margin_start(10) 106 | .margin_top(10) 107 | .build(); 108 | 109 | let wado = Rc::new(RefCell::new(wado)); 110 | 111 | let frame = gtk::Frame::builder() 112 | .label("残高") 113 | .child(wado.borrow_mut().balance()) 114 | .build(); 115 | vbox.append(&frame); 116 | vbox.append(&scrolled_window); 117 | vbox.append(&input_box(wado)); 118 | window.set_child(Some(&vbox)); 119 | window.show(); 120 | } 121 | 122 | fn input_box(wado: Rc>) -> gtk::Box { 123 | let hbox = gtk::Box::builder() 124 | .orientation(gtk::Orientation::Horizontal) 125 | .build(); 126 | let name = gtk::Entry::builder().placeholder_text("name").build(); 127 | let amount = gtk::Entry::builder() 128 | .placeholder_text("amount") 129 | .input_purpose(gtk::InputPurpose::Digits) 130 | .build(); 131 | let (picker, cal) = util::datepicker(); 132 | let new_button = gtk::Button::builder().label("new").build(); 133 | 134 | new_button.connect_clicked( 135 | glib::clone!(@weak name, @weak amount, @weak cal, @strong wado => move |_| { 136 | let n = name.buffer().text().to_string(); 137 | let amount = match amount.buffer().text().parse() { 138 | Ok(a) => a, 139 | Err(_) => { 140 | util::dialog("エラー", "金額は整数値で入力して下さい"); 141 | return; 142 | }, 143 | }; 144 | let date = cal.date(); 145 | let payment = Payment::new(n, amount, date); 146 | wado.borrow_mut().record_payment(payment); 147 | }), 148 | ); 149 | 150 | // 並びは出入金リストと同じく日付、名前、金額の順 151 | hbox.append(&picker); 152 | hbox.append(&name); 153 | hbox.append(&amount); 154 | hbox.append(&new_button); 155 | hbox 156 | } 157 | -------------------------------------------------------------------------------- /gtk-gallary/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "anyhow" 7 | version = "1.0.68" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" 10 | 11 | [[package]] 12 | name = "autocfg" 13 | version = "1.1.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 16 | 17 | [[package]] 18 | name = "bitflags" 19 | version = "1.3.2" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 22 | 23 | [[package]] 24 | name = "cairo-rs" 25 | version = "0.17.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" 28 | dependencies = [ 29 | "bitflags", 30 | "cairo-sys-rs", 31 | "glib", 32 | "libc", 33 | "once_cell", 34 | "thiserror", 35 | ] 36 | 37 | [[package]] 38 | name = "cairo-sys-rs" 39 | version = "0.17.0" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" 42 | dependencies = [ 43 | "glib-sys", 44 | "libc", 45 | "system-deps", 46 | ] 47 | 48 | [[package]] 49 | name = "cfg-expr" 50 | version = "0.11.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" 53 | dependencies = [ 54 | "smallvec", 55 | ] 56 | 57 | [[package]] 58 | name = "field-offset" 59 | version = "0.3.4" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" 62 | dependencies = [ 63 | "memoffset", 64 | "rustc_version", 65 | ] 66 | 67 | [[package]] 68 | name = "futures-channel" 69 | version = "0.3.25" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 72 | dependencies = [ 73 | "futures-core", 74 | ] 75 | 76 | [[package]] 77 | name = "futures-core" 78 | version = "0.3.25" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 81 | 82 | [[package]] 83 | name = "futures-executor" 84 | version = "0.3.25" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" 87 | dependencies = [ 88 | "futures-core", 89 | "futures-task", 90 | "futures-util", 91 | ] 92 | 93 | [[package]] 94 | name = "futures-io" 95 | version = "0.3.25" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" 98 | 99 | [[package]] 100 | name = "futures-macro" 101 | version = "0.3.25" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" 104 | dependencies = [ 105 | "proc-macro2", 106 | "quote", 107 | "syn", 108 | ] 109 | 110 | [[package]] 111 | name = "futures-task" 112 | version = "0.3.25" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 115 | 116 | [[package]] 117 | name = "futures-util" 118 | version = "0.3.25" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 121 | dependencies = [ 122 | "futures-core", 123 | "futures-macro", 124 | "futures-task", 125 | "pin-project-lite", 126 | "pin-utils", 127 | "slab", 128 | ] 129 | 130 | [[package]] 131 | name = "gdk-pixbuf" 132 | version = "0.17.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" 135 | dependencies = [ 136 | "bitflags", 137 | "gdk-pixbuf-sys", 138 | "gio", 139 | "glib", 140 | "libc", 141 | "once_cell", 142 | ] 143 | 144 | [[package]] 145 | name = "gdk-pixbuf-sys" 146 | version = "0.17.0" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" 149 | dependencies = [ 150 | "gio-sys", 151 | "glib-sys", 152 | "gobject-sys", 153 | "libc", 154 | "system-deps", 155 | ] 156 | 157 | [[package]] 158 | name = "gdk4" 159 | version = "0.6.2" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "e5042053ee765aeef08d9d7e3f0f1e36a4d37f1659b3f93ad3d6997515dbb64a" 162 | dependencies = [ 163 | "bitflags", 164 | "cairo-rs", 165 | "gdk-pixbuf", 166 | "gdk4-sys", 167 | "gio", 168 | "glib", 169 | "libc", 170 | "pango", 171 | ] 172 | 173 | [[package]] 174 | name = "gdk4-sys" 175 | version = "0.6.2" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "14f0fb00507af1e9299681dd09965f720e2b5ea95536d49a5681e8994ef10c7a" 178 | dependencies = [ 179 | "cairo-sys-rs", 180 | "gdk-pixbuf-sys", 181 | "gio-sys", 182 | "glib-sys", 183 | "gobject-sys", 184 | "libc", 185 | "pango-sys", 186 | "pkg-config", 187 | "system-deps", 188 | ] 189 | 190 | [[package]] 191 | name = "gio" 192 | version = "0.17.2" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "65acfc24267314eee46f49e0a531e08fd6c3025040d1cfb4a7cd8e41c5e06116" 195 | dependencies = [ 196 | "bitflags", 197 | "futures-channel", 198 | "futures-core", 199 | "futures-io", 200 | "futures-util", 201 | "gio-sys", 202 | "glib", 203 | "libc", 204 | "once_cell", 205 | "pin-project-lite", 206 | "smallvec", 207 | "thiserror", 208 | ] 209 | 210 | [[package]] 211 | name = "gio-sys" 212 | version = "0.17.0" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46" 215 | dependencies = [ 216 | "glib-sys", 217 | "gobject-sys", 218 | "libc", 219 | "system-deps", 220 | "winapi", 221 | ] 222 | 223 | [[package]] 224 | name = "glib" 225 | version = "0.17.2" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "a78b6a0901e258cb03c761ca94c84d519427ede489cae12cd5ba0d7d584e69e9" 228 | dependencies = [ 229 | "bitflags", 230 | "futures-channel", 231 | "futures-core", 232 | "futures-executor", 233 | "futures-task", 234 | "futures-util", 235 | "gio-sys", 236 | "glib-macros", 237 | "glib-sys", 238 | "gobject-sys", 239 | "libc", 240 | "memchr", 241 | "once_cell", 242 | "smallvec", 243 | "thiserror", 244 | ] 245 | 246 | [[package]] 247 | name = "glib-macros" 248 | version = "0.17.2" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "55e93d79ed130f0f0b58bc0aa29fb0e40c9dfd63997fec51f8adf780d1520bc4" 251 | dependencies = [ 252 | "anyhow", 253 | "heck", 254 | "proc-macro-crate", 255 | "proc-macro-error", 256 | "proc-macro2", 257 | "quote", 258 | "syn", 259 | ] 260 | 261 | [[package]] 262 | name = "glib-sys" 263 | version = "0.17.2" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "72a0985cf568e18cf63b443c9a14f4bdaa947fed7437476000dba84926a20b25" 266 | dependencies = [ 267 | "libc", 268 | "system-deps", 269 | ] 270 | 271 | [[package]] 272 | name = "gobject-sys" 273 | version = "0.17.0" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d" 276 | dependencies = [ 277 | "glib-sys", 278 | "libc", 279 | "system-deps", 280 | ] 281 | 282 | [[package]] 283 | name = "graphene-rs" 284 | version = "0.17.1" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" 287 | dependencies = [ 288 | "glib", 289 | "graphene-sys", 290 | "libc", 291 | ] 292 | 293 | [[package]] 294 | name = "graphene-sys" 295 | version = "0.17.0" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" 298 | dependencies = [ 299 | "glib-sys", 300 | "libc", 301 | "pkg-config", 302 | "system-deps", 303 | ] 304 | 305 | [[package]] 306 | name = "gsk4" 307 | version = "0.6.2" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "2fa9cd285a72a95124b65c069a9cb1b8fb8e310be71783404c39fccf3bf7774c" 310 | dependencies = [ 311 | "bitflags", 312 | "cairo-rs", 313 | "gdk4", 314 | "glib", 315 | "graphene-rs", 316 | "gsk4-sys", 317 | "libc", 318 | "pango", 319 | ] 320 | 321 | [[package]] 322 | name = "gsk4-sys" 323 | version = "0.6.2" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "5a445ae1e50cbf181a1d5c61b920a7e7e8657b96e0ecdbbf8911a86fad462a32" 326 | dependencies = [ 327 | "cairo-sys-rs", 328 | "gdk4-sys", 329 | "glib-sys", 330 | "gobject-sys", 331 | "graphene-sys", 332 | "libc", 333 | "pango-sys", 334 | "system-deps", 335 | ] 336 | 337 | [[package]] 338 | name = "gtk-gallary" 339 | version = "0.1.0" 340 | dependencies = [ 341 | "gtk4", 342 | ] 343 | 344 | [[package]] 345 | name = "gtk4" 346 | version = "0.6.2" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "e47dca53cb1a8ae3006e869b5711ae7370180db537f6d98e3bcaf23fabfd911f" 349 | dependencies = [ 350 | "bitflags", 351 | "cairo-rs", 352 | "field-offset", 353 | "futures-channel", 354 | "gdk-pixbuf", 355 | "gdk4", 356 | "gio", 357 | "glib", 358 | "graphene-rs", 359 | "gsk4", 360 | "gtk4-macros", 361 | "gtk4-sys", 362 | "libc", 363 | "once_cell", 364 | "pango", 365 | ] 366 | 367 | [[package]] 368 | name = "gtk4-macros" 369 | version = "0.6.0" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61" 372 | dependencies = [ 373 | "anyhow", 374 | "proc-macro-crate", 375 | "proc-macro-error", 376 | "proc-macro2", 377 | "quote", 378 | "syn", 379 | ] 380 | 381 | [[package]] 382 | name = "gtk4-sys" 383 | version = "0.6.2" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "65463dc801460e498d5e7ffa6e9ae2cfbed7d05fabd1ca5a8d024adbc89eeda6" 386 | dependencies = [ 387 | "cairo-sys-rs", 388 | "gdk-pixbuf-sys", 389 | "gdk4-sys", 390 | "gio-sys", 391 | "glib-sys", 392 | "gobject-sys", 393 | "graphene-sys", 394 | "gsk4-sys", 395 | "libc", 396 | "pango-sys", 397 | "system-deps", 398 | ] 399 | 400 | [[package]] 401 | name = "heck" 402 | version = "0.4.0" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" 405 | 406 | [[package]] 407 | name = "libc" 408 | version = "0.2.139" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 411 | 412 | [[package]] 413 | name = "memchr" 414 | version = "2.5.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 417 | 418 | [[package]] 419 | name = "memoffset" 420 | version = "0.6.5" 421 | source = "registry+https://github.com/rust-lang/crates.io-index" 422 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 423 | dependencies = [ 424 | "autocfg", 425 | ] 426 | 427 | [[package]] 428 | name = "once_cell" 429 | version = "1.17.0" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" 432 | 433 | [[package]] 434 | name = "pango" 435 | version = "0.17.0" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc" 438 | dependencies = [ 439 | "bitflags", 440 | "gio", 441 | "glib", 442 | "libc", 443 | "once_cell", 444 | "pango-sys", 445 | ] 446 | 447 | [[package]] 448 | name = "pango-sys" 449 | version = "0.17.0" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" 452 | dependencies = [ 453 | "glib-sys", 454 | "gobject-sys", 455 | "libc", 456 | "system-deps", 457 | ] 458 | 459 | [[package]] 460 | name = "pest" 461 | version = "2.5.2" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "0f6e86fb9e7026527a0d46bc308b841d73170ef8f443e1807f6ef88526a816d4" 464 | dependencies = [ 465 | "thiserror", 466 | "ucd-trie", 467 | ] 468 | 469 | [[package]] 470 | name = "pin-project-lite" 471 | version = "0.2.9" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 474 | 475 | [[package]] 476 | name = "pin-utils" 477 | version = "0.1.0" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 480 | 481 | [[package]] 482 | name = "pkg-config" 483 | version = "0.3.26" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 486 | 487 | [[package]] 488 | name = "proc-macro-crate" 489 | version = "1.2.1" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" 492 | dependencies = [ 493 | "once_cell", 494 | "thiserror", 495 | "toml", 496 | ] 497 | 498 | [[package]] 499 | name = "proc-macro-error" 500 | version = "1.0.4" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 503 | dependencies = [ 504 | "proc-macro-error-attr", 505 | "proc-macro2", 506 | "quote", 507 | "syn", 508 | "version_check", 509 | ] 510 | 511 | [[package]] 512 | name = "proc-macro-error-attr" 513 | version = "1.0.4" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 516 | dependencies = [ 517 | "proc-macro2", 518 | "quote", 519 | "version_check", 520 | ] 521 | 522 | [[package]] 523 | name = "proc-macro2" 524 | version = "1.0.49" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" 527 | dependencies = [ 528 | "unicode-ident", 529 | ] 530 | 531 | [[package]] 532 | name = "quote" 533 | version = "1.0.23" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 536 | dependencies = [ 537 | "proc-macro2", 538 | ] 539 | 540 | [[package]] 541 | name = "rustc_version" 542 | version = "0.3.3" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 545 | dependencies = [ 546 | "semver", 547 | ] 548 | 549 | [[package]] 550 | name = "semver" 551 | version = "0.11.0" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 554 | dependencies = [ 555 | "semver-parser", 556 | ] 557 | 558 | [[package]] 559 | name = "semver-parser" 560 | version = "0.10.2" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 563 | dependencies = [ 564 | "pest", 565 | ] 566 | 567 | [[package]] 568 | name = "serde" 569 | version = "1.0.152" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 572 | 573 | [[package]] 574 | name = "slab" 575 | version = "0.4.7" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 578 | dependencies = [ 579 | "autocfg", 580 | ] 581 | 582 | [[package]] 583 | name = "smallvec" 584 | version = "1.10.0" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 587 | 588 | [[package]] 589 | name = "syn" 590 | version = "1.0.107" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" 593 | dependencies = [ 594 | "proc-macro2", 595 | "quote", 596 | "unicode-ident", 597 | ] 598 | 599 | [[package]] 600 | name = "system-deps" 601 | version = "6.0.3" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" 604 | dependencies = [ 605 | "cfg-expr", 606 | "heck", 607 | "pkg-config", 608 | "toml", 609 | "version-compare", 610 | ] 611 | 612 | [[package]] 613 | name = "thiserror" 614 | version = "1.0.38" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 617 | dependencies = [ 618 | "thiserror-impl", 619 | ] 620 | 621 | [[package]] 622 | name = "thiserror-impl" 623 | version = "1.0.38" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 626 | dependencies = [ 627 | "proc-macro2", 628 | "quote", 629 | "syn", 630 | ] 631 | 632 | [[package]] 633 | name = "toml" 634 | version = "0.5.10" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" 637 | dependencies = [ 638 | "serde", 639 | ] 640 | 641 | [[package]] 642 | name = "ucd-trie" 643 | version = "0.1.5" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 646 | 647 | [[package]] 648 | name = "unicode-ident" 649 | version = "1.0.6" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 652 | 653 | [[package]] 654 | name = "version-compare" 655 | version = "0.1.1" 656 | source = "registry+https://github.com/rust-lang/crates.io-index" 657 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 658 | 659 | [[package]] 660 | name = "version_check" 661 | version = "0.9.4" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 664 | 665 | [[package]] 666 | name = "winapi" 667 | version = "0.3.9" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 670 | dependencies = [ 671 | "winapi-i686-pc-windows-gnu", 672 | "winapi-x86_64-pc-windows-gnu", 673 | ] 674 | 675 | [[package]] 676 | name = "winapi-i686-pc-windows-gnu" 677 | version = "0.4.0" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 680 | 681 | [[package]] 682 | name = "winapi-x86_64-pc-windows-gnu" 683 | version = "0.4.0" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 686 | -------------------------------------------------------------------------------- /gtk-hello/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "anyhow" 7 | version = "1.0.68" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" 10 | 11 | [[package]] 12 | name = "autocfg" 13 | version = "1.1.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 16 | 17 | [[package]] 18 | name = "bitflags" 19 | version = "1.3.2" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 22 | 23 | [[package]] 24 | name = "cairo-rs" 25 | version = "0.17.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" 28 | dependencies = [ 29 | "bitflags", 30 | "cairo-sys-rs", 31 | "glib", 32 | "libc", 33 | "once_cell", 34 | "thiserror", 35 | ] 36 | 37 | [[package]] 38 | name = "cairo-sys-rs" 39 | version = "0.17.0" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" 42 | dependencies = [ 43 | "glib-sys", 44 | "libc", 45 | "system-deps", 46 | ] 47 | 48 | [[package]] 49 | name = "cfg-expr" 50 | version = "0.11.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" 53 | dependencies = [ 54 | "smallvec", 55 | ] 56 | 57 | [[package]] 58 | name = "field-offset" 59 | version = "0.3.4" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" 62 | dependencies = [ 63 | "memoffset", 64 | "rustc_version", 65 | ] 66 | 67 | [[package]] 68 | name = "futures-channel" 69 | version = "0.3.25" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 72 | dependencies = [ 73 | "futures-core", 74 | ] 75 | 76 | [[package]] 77 | name = "futures-core" 78 | version = "0.3.25" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 81 | 82 | [[package]] 83 | name = "futures-executor" 84 | version = "0.3.25" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" 87 | dependencies = [ 88 | "futures-core", 89 | "futures-task", 90 | "futures-util", 91 | ] 92 | 93 | [[package]] 94 | name = "futures-io" 95 | version = "0.3.25" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" 98 | 99 | [[package]] 100 | name = "futures-macro" 101 | version = "0.3.25" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" 104 | dependencies = [ 105 | "proc-macro2", 106 | "quote", 107 | "syn", 108 | ] 109 | 110 | [[package]] 111 | name = "futures-task" 112 | version = "0.3.25" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 115 | 116 | [[package]] 117 | name = "futures-util" 118 | version = "0.3.25" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 121 | dependencies = [ 122 | "futures-core", 123 | "futures-macro", 124 | "futures-task", 125 | "pin-project-lite", 126 | "pin-utils", 127 | "slab", 128 | ] 129 | 130 | [[package]] 131 | name = "gdk-pixbuf" 132 | version = "0.17.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" 135 | dependencies = [ 136 | "bitflags", 137 | "gdk-pixbuf-sys", 138 | "gio", 139 | "glib", 140 | "libc", 141 | "once_cell", 142 | ] 143 | 144 | [[package]] 145 | name = "gdk-pixbuf-sys" 146 | version = "0.17.0" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" 149 | dependencies = [ 150 | "gio-sys", 151 | "glib-sys", 152 | "gobject-sys", 153 | "libc", 154 | "system-deps", 155 | ] 156 | 157 | [[package]] 158 | name = "gdk4" 159 | version = "0.6.2" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "e5042053ee765aeef08d9d7e3f0f1e36a4d37f1659b3f93ad3d6997515dbb64a" 162 | dependencies = [ 163 | "bitflags", 164 | "cairo-rs", 165 | "gdk-pixbuf", 166 | "gdk4-sys", 167 | "gio", 168 | "glib", 169 | "libc", 170 | "pango", 171 | ] 172 | 173 | [[package]] 174 | name = "gdk4-sys" 175 | version = "0.6.2" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "14f0fb00507af1e9299681dd09965f720e2b5ea95536d49a5681e8994ef10c7a" 178 | dependencies = [ 179 | "cairo-sys-rs", 180 | "gdk-pixbuf-sys", 181 | "gio-sys", 182 | "glib-sys", 183 | "gobject-sys", 184 | "libc", 185 | "pango-sys", 186 | "pkg-config", 187 | "system-deps", 188 | ] 189 | 190 | [[package]] 191 | name = "gio" 192 | version = "0.17.2" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "65acfc24267314eee46f49e0a531e08fd6c3025040d1cfb4a7cd8e41c5e06116" 195 | dependencies = [ 196 | "bitflags", 197 | "futures-channel", 198 | "futures-core", 199 | "futures-io", 200 | "futures-util", 201 | "gio-sys", 202 | "glib", 203 | "libc", 204 | "once_cell", 205 | "pin-project-lite", 206 | "smallvec", 207 | "thiserror", 208 | ] 209 | 210 | [[package]] 211 | name = "gio-sys" 212 | version = "0.17.0" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46" 215 | dependencies = [ 216 | "glib-sys", 217 | "gobject-sys", 218 | "libc", 219 | "system-deps", 220 | "winapi", 221 | ] 222 | 223 | [[package]] 224 | name = "glib" 225 | version = "0.17.2" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "a78b6a0901e258cb03c761ca94c84d519427ede489cae12cd5ba0d7d584e69e9" 228 | dependencies = [ 229 | "bitflags", 230 | "futures-channel", 231 | "futures-core", 232 | "futures-executor", 233 | "futures-task", 234 | "futures-util", 235 | "gio-sys", 236 | "glib-macros", 237 | "glib-sys", 238 | "gobject-sys", 239 | "libc", 240 | "memchr", 241 | "once_cell", 242 | "smallvec", 243 | "thiserror", 244 | ] 245 | 246 | [[package]] 247 | name = "glib-macros" 248 | version = "0.17.2" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "55e93d79ed130f0f0b58bc0aa29fb0e40c9dfd63997fec51f8adf780d1520bc4" 251 | dependencies = [ 252 | "anyhow", 253 | "heck", 254 | "proc-macro-crate", 255 | "proc-macro-error", 256 | "proc-macro2", 257 | "quote", 258 | "syn", 259 | ] 260 | 261 | [[package]] 262 | name = "glib-sys" 263 | version = "0.17.2" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "72a0985cf568e18cf63b443c9a14f4bdaa947fed7437476000dba84926a20b25" 266 | dependencies = [ 267 | "libc", 268 | "system-deps", 269 | ] 270 | 271 | [[package]] 272 | name = "gobject-sys" 273 | version = "0.17.0" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d" 276 | dependencies = [ 277 | "glib-sys", 278 | "libc", 279 | "system-deps", 280 | ] 281 | 282 | [[package]] 283 | name = "graphene-rs" 284 | version = "0.17.1" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" 287 | dependencies = [ 288 | "glib", 289 | "graphene-sys", 290 | "libc", 291 | ] 292 | 293 | [[package]] 294 | name = "graphene-sys" 295 | version = "0.17.0" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" 298 | dependencies = [ 299 | "glib-sys", 300 | "libc", 301 | "pkg-config", 302 | "system-deps", 303 | ] 304 | 305 | [[package]] 306 | name = "gsk4" 307 | version = "0.6.2" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "2fa9cd285a72a95124b65c069a9cb1b8fb8e310be71783404c39fccf3bf7774c" 310 | dependencies = [ 311 | "bitflags", 312 | "cairo-rs", 313 | "gdk4", 314 | "glib", 315 | "graphene-rs", 316 | "gsk4-sys", 317 | "libc", 318 | "pango", 319 | ] 320 | 321 | [[package]] 322 | name = "gsk4-sys" 323 | version = "0.6.2" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "5a445ae1e50cbf181a1d5c61b920a7e7e8657b96e0ecdbbf8911a86fad462a32" 326 | dependencies = [ 327 | "cairo-sys-rs", 328 | "gdk4-sys", 329 | "glib-sys", 330 | "gobject-sys", 331 | "graphene-sys", 332 | "libc", 333 | "pango-sys", 334 | "system-deps", 335 | ] 336 | 337 | [[package]] 338 | name = "gtk-hello" 339 | version = "0.1.0" 340 | dependencies = [ 341 | "gtk4", 342 | ] 343 | 344 | [[package]] 345 | name = "gtk4" 346 | version = "0.6.2" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "e47dca53cb1a8ae3006e869b5711ae7370180db537f6d98e3bcaf23fabfd911f" 349 | dependencies = [ 350 | "bitflags", 351 | "cairo-rs", 352 | "field-offset", 353 | "futures-channel", 354 | "gdk-pixbuf", 355 | "gdk4", 356 | "gio", 357 | "glib", 358 | "graphene-rs", 359 | "gsk4", 360 | "gtk4-macros", 361 | "gtk4-sys", 362 | "libc", 363 | "once_cell", 364 | "pango", 365 | ] 366 | 367 | [[package]] 368 | name = "gtk4-macros" 369 | version = "0.6.0" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61" 372 | dependencies = [ 373 | "anyhow", 374 | "proc-macro-crate", 375 | "proc-macro-error", 376 | "proc-macro2", 377 | "quote", 378 | "syn", 379 | ] 380 | 381 | [[package]] 382 | name = "gtk4-sys" 383 | version = "0.6.2" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "65463dc801460e498d5e7ffa6e9ae2cfbed7d05fabd1ca5a8d024adbc89eeda6" 386 | dependencies = [ 387 | "cairo-sys-rs", 388 | "gdk-pixbuf-sys", 389 | "gdk4-sys", 390 | "gio-sys", 391 | "glib-sys", 392 | "gobject-sys", 393 | "graphene-sys", 394 | "gsk4-sys", 395 | "libc", 396 | "pango-sys", 397 | "system-deps", 398 | ] 399 | 400 | [[package]] 401 | name = "heck" 402 | version = "0.4.0" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" 405 | 406 | [[package]] 407 | name = "libc" 408 | version = "0.2.139" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 411 | 412 | [[package]] 413 | name = "memchr" 414 | version = "2.5.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 417 | 418 | [[package]] 419 | name = "memoffset" 420 | version = "0.6.5" 421 | source = "registry+https://github.com/rust-lang/crates.io-index" 422 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 423 | dependencies = [ 424 | "autocfg", 425 | ] 426 | 427 | [[package]] 428 | name = "once_cell" 429 | version = "1.16.0" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" 432 | 433 | [[package]] 434 | name = "pango" 435 | version = "0.17.0" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc" 438 | dependencies = [ 439 | "bitflags", 440 | "gio", 441 | "glib", 442 | "libc", 443 | "once_cell", 444 | "pango-sys", 445 | ] 446 | 447 | [[package]] 448 | name = "pango-sys" 449 | version = "0.17.0" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" 452 | dependencies = [ 453 | "glib-sys", 454 | "gobject-sys", 455 | "libc", 456 | "system-deps", 457 | ] 458 | 459 | [[package]] 460 | name = "pest" 461 | version = "2.5.2" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "0f6e86fb9e7026527a0d46bc308b841d73170ef8f443e1807f6ef88526a816d4" 464 | dependencies = [ 465 | "thiserror", 466 | "ucd-trie", 467 | ] 468 | 469 | [[package]] 470 | name = "pin-project-lite" 471 | version = "0.2.9" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 474 | 475 | [[package]] 476 | name = "pin-utils" 477 | version = "0.1.0" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 480 | 481 | [[package]] 482 | name = "pkg-config" 483 | version = "0.3.26" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 486 | 487 | [[package]] 488 | name = "proc-macro-crate" 489 | version = "1.2.1" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" 492 | dependencies = [ 493 | "once_cell", 494 | "thiserror", 495 | "toml", 496 | ] 497 | 498 | [[package]] 499 | name = "proc-macro-error" 500 | version = "1.0.4" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 503 | dependencies = [ 504 | "proc-macro-error-attr", 505 | "proc-macro2", 506 | "quote", 507 | "syn", 508 | "version_check", 509 | ] 510 | 511 | [[package]] 512 | name = "proc-macro-error-attr" 513 | version = "1.0.4" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 516 | dependencies = [ 517 | "proc-macro2", 518 | "quote", 519 | "version_check", 520 | ] 521 | 522 | [[package]] 523 | name = "proc-macro2" 524 | version = "1.0.49" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" 527 | dependencies = [ 528 | "unicode-ident", 529 | ] 530 | 531 | [[package]] 532 | name = "quote" 533 | version = "1.0.23" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 536 | dependencies = [ 537 | "proc-macro2", 538 | ] 539 | 540 | [[package]] 541 | name = "rustc_version" 542 | version = "0.3.3" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 545 | dependencies = [ 546 | "semver", 547 | ] 548 | 549 | [[package]] 550 | name = "semver" 551 | version = "0.11.0" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 554 | dependencies = [ 555 | "semver-parser", 556 | ] 557 | 558 | [[package]] 559 | name = "semver-parser" 560 | version = "0.10.2" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 563 | dependencies = [ 564 | "pest", 565 | ] 566 | 567 | [[package]] 568 | name = "serde" 569 | version = "1.0.152" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 572 | 573 | [[package]] 574 | name = "slab" 575 | version = "0.4.7" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 578 | dependencies = [ 579 | "autocfg", 580 | ] 581 | 582 | [[package]] 583 | name = "smallvec" 584 | version = "1.10.0" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 587 | 588 | [[package]] 589 | name = "syn" 590 | version = "1.0.107" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" 593 | dependencies = [ 594 | "proc-macro2", 595 | "quote", 596 | "unicode-ident", 597 | ] 598 | 599 | [[package]] 600 | name = "system-deps" 601 | version = "6.0.3" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" 604 | dependencies = [ 605 | "cfg-expr", 606 | "heck", 607 | "pkg-config", 608 | "toml", 609 | "version-compare", 610 | ] 611 | 612 | [[package]] 613 | name = "thiserror" 614 | version = "1.0.38" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 617 | dependencies = [ 618 | "thiserror-impl", 619 | ] 620 | 621 | [[package]] 622 | name = "thiserror-impl" 623 | version = "1.0.38" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 626 | dependencies = [ 627 | "proc-macro2", 628 | "quote", 629 | "syn", 630 | ] 631 | 632 | [[package]] 633 | name = "toml" 634 | version = "0.5.10" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" 637 | dependencies = [ 638 | "serde", 639 | ] 640 | 641 | [[package]] 642 | name = "ucd-trie" 643 | version = "0.1.5" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 646 | 647 | [[package]] 648 | name = "unicode-ident" 649 | version = "1.0.6" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 652 | 653 | [[package]] 654 | name = "version-compare" 655 | version = "0.1.1" 656 | source = "registry+https://github.com/rust-lang/crates.io-index" 657 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 658 | 659 | [[package]] 660 | name = "version_check" 661 | version = "0.9.4" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 664 | 665 | [[package]] 666 | name = "winapi" 667 | version = "0.3.9" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 670 | dependencies = [ 671 | "winapi-i686-pc-windows-gnu", 672 | "winapi-x86_64-pc-windows-gnu", 673 | ] 674 | 675 | [[package]] 676 | name = "winapi-i686-pc-windows-gnu" 677 | version = "0.4.0" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 680 | 681 | [[package]] 682 | name = "winapi-x86_64-pc-windows-gnu" 683 | version = "0.4.0" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 686 | -------------------------------------------------------------------------------- /gtk-subclass/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "anyhow" 7 | version = "1.0.69" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" 10 | 11 | [[package]] 12 | name = "autocfg" 13 | version = "1.1.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 16 | 17 | [[package]] 18 | name = "bitflags" 19 | version = "1.3.2" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 22 | 23 | [[package]] 24 | name = "cairo-rs" 25 | version = "0.17.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" 28 | dependencies = [ 29 | "bitflags", 30 | "cairo-sys-rs", 31 | "glib", 32 | "libc", 33 | "once_cell", 34 | "thiserror", 35 | ] 36 | 37 | [[package]] 38 | name = "cairo-sys-rs" 39 | version = "0.17.0" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" 42 | dependencies = [ 43 | "glib-sys", 44 | "libc", 45 | "system-deps", 46 | ] 47 | 48 | [[package]] 49 | name = "cfg-expr" 50 | version = "0.11.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" 53 | dependencies = [ 54 | "smallvec", 55 | ] 56 | 57 | [[package]] 58 | name = "field-offset" 59 | version = "0.3.4" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" 62 | dependencies = [ 63 | "memoffset", 64 | "rustc_version", 65 | ] 66 | 67 | [[package]] 68 | name = "futures-channel" 69 | version = "0.3.26" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" 72 | dependencies = [ 73 | "futures-core", 74 | ] 75 | 76 | [[package]] 77 | name = "futures-core" 78 | version = "0.3.26" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" 81 | 82 | [[package]] 83 | name = "futures-executor" 84 | version = "0.3.26" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" 87 | dependencies = [ 88 | "futures-core", 89 | "futures-task", 90 | "futures-util", 91 | ] 92 | 93 | [[package]] 94 | name = "futures-io" 95 | version = "0.3.26" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" 98 | 99 | [[package]] 100 | name = "futures-macro" 101 | version = "0.3.26" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" 104 | dependencies = [ 105 | "proc-macro2", 106 | "quote", 107 | "syn", 108 | ] 109 | 110 | [[package]] 111 | name = "futures-task" 112 | version = "0.3.26" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" 115 | 116 | [[package]] 117 | name = "futures-util" 118 | version = "0.3.26" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" 121 | dependencies = [ 122 | "futures-core", 123 | "futures-macro", 124 | "futures-task", 125 | "pin-project-lite", 126 | "pin-utils", 127 | "slab", 128 | ] 129 | 130 | [[package]] 131 | name = "gdk-pixbuf" 132 | version = "0.17.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" 135 | dependencies = [ 136 | "bitflags", 137 | "gdk-pixbuf-sys", 138 | "gio", 139 | "glib", 140 | "libc", 141 | "once_cell", 142 | ] 143 | 144 | [[package]] 145 | name = "gdk-pixbuf-sys" 146 | version = "0.17.0" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" 149 | dependencies = [ 150 | "gio-sys", 151 | "glib-sys", 152 | "gobject-sys", 153 | "libc", 154 | "system-deps", 155 | ] 156 | 157 | [[package]] 158 | name = "gdk4" 159 | version = "0.6.0" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "6e4887e17b6926db51f1e538d871a8b1f5ceb5dfa3bd0034dc42ec355b390d8f" 162 | dependencies = [ 163 | "bitflags", 164 | "cairo-rs", 165 | "gdk-pixbuf", 166 | "gdk4-sys", 167 | "gio", 168 | "glib", 169 | "libc", 170 | "pango", 171 | ] 172 | 173 | [[package]] 174 | name = "gdk4-sys" 175 | version = "0.6.0" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "f4993c019bf03d18137c00ddafb2b23e73f7cbb45ae244f52af2542a3f4a9452" 178 | dependencies = [ 179 | "cairo-sys-rs", 180 | "gdk-pixbuf-sys", 181 | "gio-sys", 182 | "glib-sys", 183 | "gobject-sys", 184 | "libc", 185 | "pango-sys", 186 | "pkg-config", 187 | "system-deps", 188 | ] 189 | 190 | [[package]] 191 | name = "gio" 192 | version = "0.17.0" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "1981edf8679d2f2c8ec3120015867f45aa0a1c2d5e3e129ca2f7dda174d3d2a9" 195 | dependencies = [ 196 | "bitflags", 197 | "futures-channel", 198 | "futures-core", 199 | "futures-io", 200 | "futures-util", 201 | "gio-sys", 202 | "glib", 203 | "libc", 204 | "once_cell", 205 | "pin-project-lite", 206 | "smallvec", 207 | "thiserror", 208 | ] 209 | 210 | [[package]] 211 | name = "gio-sys" 212 | version = "0.17.0" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46" 215 | dependencies = [ 216 | "glib-sys", 217 | "gobject-sys", 218 | "libc", 219 | "system-deps", 220 | "winapi", 221 | ] 222 | 223 | [[package]] 224 | name = "glib" 225 | version = "0.17.1" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "91b429154ec5943185aeeaf79e646297567b6a056965f1e89da2657a0e23255b" 228 | dependencies = [ 229 | "bitflags", 230 | "futures-channel", 231 | "futures-core", 232 | "futures-executor", 233 | "futures-task", 234 | "futures-util", 235 | "gio-sys", 236 | "glib-macros", 237 | "glib-sys", 238 | "gobject-sys", 239 | "libc", 240 | "memchr", 241 | "once_cell", 242 | "smallvec", 243 | "thiserror", 244 | ] 245 | 246 | [[package]] 247 | name = "glib-macros" 248 | version = "0.17.1" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "9bc80ac951300ca288dd9ab3863743c37a608fb0e5ca12863495640ec6b781ab" 251 | dependencies = [ 252 | "anyhow", 253 | "heck", 254 | "proc-macro-crate", 255 | "proc-macro-error", 256 | "proc-macro2", 257 | "quote", 258 | "syn", 259 | ] 260 | 261 | [[package]] 262 | name = "glib-sys" 263 | version = "0.17.0" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "9ddcb73fa8236277bedadaaadb76aef49c85d66340f83bece244f46c2d4f0e01" 266 | dependencies = [ 267 | "libc", 268 | "system-deps", 269 | ] 270 | 271 | [[package]] 272 | name = "gobject-sys" 273 | version = "0.17.0" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d" 276 | dependencies = [ 277 | "glib-sys", 278 | "libc", 279 | "system-deps", 280 | ] 281 | 282 | [[package]] 283 | name = "graphene-rs" 284 | version = "0.17.1" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" 287 | dependencies = [ 288 | "glib", 289 | "graphene-sys", 290 | "libc", 291 | ] 292 | 293 | [[package]] 294 | name = "graphene-sys" 295 | version = "0.17.0" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" 298 | dependencies = [ 299 | "glib-sys", 300 | "libc", 301 | "pkg-config", 302 | "system-deps", 303 | ] 304 | 305 | [[package]] 306 | name = "gsk4" 307 | version = "0.6.0" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "432f981e4ea9f0739a5731d8a649acb794a3a729d2254e559ce7d613b17caf95" 310 | dependencies = [ 311 | "bitflags", 312 | "cairo-rs", 313 | "gdk4", 314 | "glib", 315 | "graphene-rs", 316 | "gsk4-sys", 317 | "libc", 318 | "pango", 319 | ] 320 | 321 | [[package]] 322 | name = "gsk4-sys" 323 | version = "0.6.0" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "096cb59175b0915ebf69c05a45263c0c989bd8537b8f2169912d0de644ba6a76" 326 | dependencies = [ 327 | "cairo-sys-rs", 328 | "gdk4-sys", 329 | "glib-sys", 330 | "gobject-sys", 331 | "graphene-sys", 332 | "libc", 333 | "pango-sys", 334 | "system-deps", 335 | ] 336 | 337 | [[package]] 338 | name = "gtk-subclass" 339 | version = "0.1.0" 340 | dependencies = [ 341 | "gtk4", 342 | ] 343 | 344 | [[package]] 345 | name = "gtk4" 346 | version = "0.6.1" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "73421200ad9c3919d0720779b345b05d31a6ce9998e74fc27012f12580822e46" 349 | dependencies = [ 350 | "bitflags", 351 | "cairo-rs", 352 | "field-offset", 353 | "futures-channel", 354 | "gdk-pixbuf", 355 | "gdk4", 356 | "gio", 357 | "glib", 358 | "graphene-rs", 359 | "gsk4", 360 | "gtk4-macros", 361 | "gtk4-sys", 362 | "libc", 363 | "once_cell", 364 | "pango", 365 | ] 366 | 367 | [[package]] 368 | name = "gtk4-macros" 369 | version = "0.6.0" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61" 372 | dependencies = [ 373 | "anyhow", 374 | "proc-macro-crate", 375 | "proc-macro-error", 376 | "proc-macro2", 377 | "quote", 378 | "syn", 379 | ] 380 | 381 | [[package]] 382 | name = "gtk4-sys" 383 | version = "0.6.0" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "e13cf3bc9559f71963c957eb639060b643e1276ae47b892ef6091d5bc15c3e1b" 386 | dependencies = [ 387 | "cairo-sys-rs", 388 | "gdk-pixbuf-sys", 389 | "gdk4-sys", 390 | "gio-sys", 391 | "glib-sys", 392 | "gobject-sys", 393 | "graphene-sys", 394 | "gsk4-sys", 395 | "libc", 396 | "pango-sys", 397 | "system-deps", 398 | ] 399 | 400 | [[package]] 401 | name = "hashbrown" 402 | version = "0.12.3" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 405 | 406 | [[package]] 407 | name = "heck" 408 | version = "0.4.1" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 411 | 412 | [[package]] 413 | name = "indexmap" 414 | version = "1.9.2" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 417 | dependencies = [ 418 | "autocfg", 419 | "hashbrown", 420 | ] 421 | 422 | [[package]] 423 | name = "libc" 424 | version = "0.2.139" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 427 | 428 | [[package]] 429 | name = "memchr" 430 | version = "2.5.0" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 433 | 434 | [[package]] 435 | name = "memoffset" 436 | version = "0.6.5" 437 | source = "registry+https://github.com/rust-lang/crates.io-index" 438 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 439 | dependencies = [ 440 | "autocfg", 441 | ] 442 | 443 | [[package]] 444 | name = "nom8" 445 | version = "0.2.0" 446 | source = "registry+https://github.com/rust-lang/crates.io-index" 447 | checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" 448 | dependencies = [ 449 | "memchr", 450 | ] 451 | 452 | [[package]] 453 | name = "once_cell" 454 | version = "1.17.1" 455 | source = "registry+https://github.com/rust-lang/crates.io-index" 456 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 457 | 458 | [[package]] 459 | name = "pango" 460 | version = "0.17.0" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc" 463 | dependencies = [ 464 | "bitflags", 465 | "gio", 466 | "glib", 467 | "libc", 468 | "once_cell", 469 | "pango-sys", 470 | ] 471 | 472 | [[package]] 473 | name = "pango-sys" 474 | version = "0.17.0" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" 477 | dependencies = [ 478 | "glib-sys", 479 | "gobject-sys", 480 | "libc", 481 | "system-deps", 482 | ] 483 | 484 | [[package]] 485 | name = "pest" 486 | version = "2.5.5" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" 489 | dependencies = [ 490 | "thiserror", 491 | "ucd-trie", 492 | ] 493 | 494 | [[package]] 495 | name = "pin-project-lite" 496 | version = "0.2.9" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 499 | 500 | [[package]] 501 | name = "pin-utils" 502 | version = "0.1.0" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 505 | 506 | [[package]] 507 | name = "pkg-config" 508 | version = "0.3.26" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 511 | 512 | [[package]] 513 | name = "proc-macro-crate" 514 | version = "1.3.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" 517 | dependencies = [ 518 | "once_cell", 519 | "toml_edit", 520 | ] 521 | 522 | [[package]] 523 | name = "proc-macro-error" 524 | version = "1.0.4" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 527 | dependencies = [ 528 | "proc-macro-error-attr", 529 | "proc-macro2", 530 | "quote", 531 | "syn", 532 | "version_check", 533 | ] 534 | 535 | [[package]] 536 | name = "proc-macro-error-attr" 537 | version = "1.0.4" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 540 | dependencies = [ 541 | "proc-macro2", 542 | "quote", 543 | "version_check", 544 | ] 545 | 546 | [[package]] 547 | name = "proc-macro2" 548 | version = "1.0.51" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" 551 | dependencies = [ 552 | "unicode-ident", 553 | ] 554 | 555 | [[package]] 556 | name = "quote" 557 | version = "1.0.23" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 560 | dependencies = [ 561 | "proc-macro2", 562 | ] 563 | 564 | [[package]] 565 | name = "rustc_version" 566 | version = "0.3.3" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 569 | dependencies = [ 570 | "semver", 571 | ] 572 | 573 | [[package]] 574 | name = "semver" 575 | version = "0.11.0" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 578 | dependencies = [ 579 | "semver-parser", 580 | ] 581 | 582 | [[package]] 583 | name = "semver-parser" 584 | version = "0.10.2" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 587 | dependencies = [ 588 | "pest", 589 | ] 590 | 591 | [[package]] 592 | name = "serde" 593 | version = "1.0.152" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 596 | 597 | [[package]] 598 | name = "slab" 599 | version = "0.4.8" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 602 | dependencies = [ 603 | "autocfg", 604 | ] 605 | 606 | [[package]] 607 | name = "smallvec" 608 | version = "1.10.0" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 611 | 612 | [[package]] 613 | name = "syn" 614 | version = "1.0.107" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" 617 | dependencies = [ 618 | "proc-macro2", 619 | "quote", 620 | "unicode-ident", 621 | ] 622 | 623 | [[package]] 624 | name = "system-deps" 625 | version = "6.0.3" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" 628 | dependencies = [ 629 | "cfg-expr", 630 | "heck", 631 | "pkg-config", 632 | "toml", 633 | "version-compare", 634 | ] 635 | 636 | [[package]] 637 | name = "thiserror" 638 | version = "1.0.38" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 641 | dependencies = [ 642 | "thiserror-impl", 643 | ] 644 | 645 | [[package]] 646 | name = "thiserror-impl" 647 | version = "1.0.38" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 650 | dependencies = [ 651 | "proc-macro2", 652 | "quote", 653 | "syn", 654 | ] 655 | 656 | [[package]] 657 | name = "toml" 658 | version = "0.5.11" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 661 | dependencies = [ 662 | "serde", 663 | ] 664 | 665 | [[package]] 666 | name = "toml_datetime" 667 | version = "0.5.1" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" 670 | 671 | [[package]] 672 | name = "toml_edit" 673 | version = "0.18.1" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" 676 | dependencies = [ 677 | "indexmap", 678 | "nom8", 679 | "toml_datetime", 680 | ] 681 | 682 | [[package]] 683 | name = "ucd-trie" 684 | version = "0.1.5" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 687 | 688 | [[package]] 689 | name = "unicode-ident" 690 | version = "1.0.6" 691 | source = "registry+https://github.com/rust-lang/crates.io-index" 692 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 693 | 694 | [[package]] 695 | name = "version-compare" 696 | version = "0.1.1" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 699 | 700 | [[package]] 701 | name = "version_check" 702 | version = "0.9.4" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 705 | 706 | [[package]] 707 | name = "winapi" 708 | version = "0.3.9" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 711 | dependencies = [ 712 | "winapi-i686-pc-windows-gnu", 713 | "winapi-x86_64-pc-windows-gnu", 714 | ] 715 | 716 | [[package]] 717 | name = "winapi-i686-pc-windows-gnu" 718 | version = "0.4.0" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 721 | 722 | [[package]] 723 | name = "winapi-x86_64-pc-windows-gnu" 724 | version = "0.4.0" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 727 | -------------------------------------------------------------------------------- /gtk-memory-management/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "anyhow" 7 | version = "1.0.69" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" 10 | 11 | [[package]] 12 | name = "autocfg" 13 | version = "1.1.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 16 | 17 | [[package]] 18 | name = "bitflags" 19 | version = "1.3.2" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 22 | 23 | [[package]] 24 | name = "cairo-rs" 25 | version = "0.17.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" 28 | dependencies = [ 29 | "bitflags", 30 | "cairo-sys-rs", 31 | "glib", 32 | "libc", 33 | "once_cell", 34 | "thiserror", 35 | ] 36 | 37 | [[package]] 38 | name = "cairo-sys-rs" 39 | version = "0.17.0" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" 42 | dependencies = [ 43 | "glib-sys", 44 | "libc", 45 | "system-deps", 46 | ] 47 | 48 | [[package]] 49 | name = "cfg-expr" 50 | version = "0.11.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" 53 | dependencies = [ 54 | "smallvec", 55 | ] 56 | 57 | [[package]] 58 | name = "field-offset" 59 | version = "0.3.4" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" 62 | dependencies = [ 63 | "memoffset", 64 | "rustc_version", 65 | ] 66 | 67 | [[package]] 68 | name = "futures-channel" 69 | version = "0.3.26" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" 72 | dependencies = [ 73 | "futures-core", 74 | ] 75 | 76 | [[package]] 77 | name = "futures-core" 78 | version = "0.3.26" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" 81 | 82 | [[package]] 83 | name = "futures-executor" 84 | version = "0.3.26" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" 87 | dependencies = [ 88 | "futures-core", 89 | "futures-task", 90 | "futures-util", 91 | ] 92 | 93 | [[package]] 94 | name = "futures-io" 95 | version = "0.3.26" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" 98 | 99 | [[package]] 100 | name = "futures-macro" 101 | version = "0.3.26" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" 104 | dependencies = [ 105 | "proc-macro2", 106 | "quote", 107 | "syn", 108 | ] 109 | 110 | [[package]] 111 | name = "futures-task" 112 | version = "0.3.26" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" 115 | 116 | [[package]] 117 | name = "futures-util" 118 | version = "0.3.26" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" 121 | dependencies = [ 122 | "futures-core", 123 | "futures-macro", 124 | "futures-task", 125 | "pin-project-lite", 126 | "pin-utils", 127 | "slab", 128 | ] 129 | 130 | [[package]] 131 | name = "gdk-pixbuf" 132 | version = "0.17.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" 135 | dependencies = [ 136 | "bitflags", 137 | "gdk-pixbuf-sys", 138 | "gio", 139 | "glib", 140 | "libc", 141 | "once_cell", 142 | ] 143 | 144 | [[package]] 145 | name = "gdk-pixbuf-sys" 146 | version = "0.17.0" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" 149 | dependencies = [ 150 | "gio-sys", 151 | "glib-sys", 152 | "gobject-sys", 153 | "libc", 154 | "system-deps", 155 | ] 156 | 157 | [[package]] 158 | name = "gdk4" 159 | version = "0.6.2" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "e5042053ee765aeef08d9d7e3f0f1e36a4d37f1659b3f93ad3d6997515dbb64a" 162 | dependencies = [ 163 | "bitflags", 164 | "cairo-rs", 165 | "gdk-pixbuf", 166 | "gdk4-sys", 167 | "gio", 168 | "glib", 169 | "libc", 170 | "pango", 171 | ] 172 | 173 | [[package]] 174 | name = "gdk4-sys" 175 | version = "0.6.2" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "14f0fb00507af1e9299681dd09965f720e2b5ea95536d49a5681e8994ef10c7a" 178 | dependencies = [ 179 | "cairo-sys-rs", 180 | "gdk-pixbuf-sys", 181 | "gio-sys", 182 | "glib-sys", 183 | "gobject-sys", 184 | "libc", 185 | "pango-sys", 186 | "pkg-config", 187 | "system-deps", 188 | ] 189 | 190 | [[package]] 191 | name = "gio" 192 | version = "0.17.2" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "65acfc24267314eee46f49e0a531e08fd6c3025040d1cfb4a7cd8e41c5e06116" 195 | dependencies = [ 196 | "bitflags", 197 | "futures-channel", 198 | "futures-core", 199 | "futures-io", 200 | "futures-util", 201 | "gio-sys", 202 | "glib", 203 | "libc", 204 | "once_cell", 205 | "pin-project-lite", 206 | "smallvec", 207 | "thiserror", 208 | ] 209 | 210 | [[package]] 211 | name = "gio-sys" 212 | version = "0.17.0" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46" 215 | dependencies = [ 216 | "glib-sys", 217 | "gobject-sys", 218 | "libc", 219 | "system-deps", 220 | "winapi", 221 | ] 222 | 223 | [[package]] 224 | name = "glib" 225 | version = "0.17.2" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "a78b6a0901e258cb03c761ca94c84d519427ede489cae12cd5ba0d7d584e69e9" 228 | dependencies = [ 229 | "bitflags", 230 | "futures-channel", 231 | "futures-core", 232 | "futures-executor", 233 | "futures-task", 234 | "futures-util", 235 | "gio-sys", 236 | "glib-macros", 237 | "glib-sys", 238 | "gobject-sys", 239 | "libc", 240 | "memchr", 241 | "once_cell", 242 | "smallvec", 243 | "thiserror", 244 | ] 245 | 246 | [[package]] 247 | name = "glib-macros" 248 | version = "0.17.2" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "55e93d79ed130f0f0b58bc0aa29fb0e40c9dfd63997fec51f8adf780d1520bc4" 251 | dependencies = [ 252 | "anyhow", 253 | "heck", 254 | "proc-macro-crate", 255 | "proc-macro-error", 256 | "proc-macro2", 257 | "quote", 258 | "syn", 259 | ] 260 | 261 | [[package]] 262 | name = "glib-sys" 263 | version = "0.17.2" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "72a0985cf568e18cf63b443c9a14f4bdaa947fed7437476000dba84926a20b25" 266 | dependencies = [ 267 | "libc", 268 | "system-deps", 269 | ] 270 | 271 | [[package]] 272 | name = "gobject-sys" 273 | version = "0.17.0" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d" 276 | dependencies = [ 277 | "glib-sys", 278 | "libc", 279 | "system-deps", 280 | ] 281 | 282 | [[package]] 283 | name = "graphene-rs" 284 | version = "0.17.1" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" 287 | dependencies = [ 288 | "glib", 289 | "graphene-sys", 290 | "libc", 291 | ] 292 | 293 | [[package]] 294 | name = "graphene-sys" 295 | version = "0.17.0" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" 298 | dependencies = [ 299 | "glib-sys", 300 | "libc", 301 | "pkg-config", 302 | "system-deps", 303 | ] 304 | 305 | [[package]] 306 | name = "gsk4" 307 | version = "0.6.2" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "2fa9cd285a72a95124b65c069a9cb1b8fb8e310be71783404c39fccf3bf7774c" 310 | dependencies = [ 311 | "bitflags", 312 | "cairo-rs", 313 | "gdk4", 314 | "glib", 315 | "graphene-rs", 316 | "gsk4-sys", 317 | "libc", 318 | "pango", 319 | ] 320 | 321 | [[package]] 322 | name = "gsk4-sys" 323 | version = "0.6.2" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "5a445ae1e50cbf181a1d5c61b920a7e7e8657b96e0ecdbbf8911a86fad462a32" 326 | dependencies = [ 327 | "cairo-sys-rs", 328 | "gdk4-sys", 329 | "glib-sys", 330 | "gobject-sys", 331 | "graphene-sys", 332 | "libc", 333 | "pango-sys", 334 | "system-deps", 335 | ] 336 | 337 | [[package]] 338 | name = "gtk-memory-management" 339 | version = "0.1.0" 340 | dependencies = [ 341 | "gtk4", 342 | ] 343 | 344 | [[package]] 345 | name = "gtk4" 346 | version = "0.6.2" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "e47dca53cb1a8ae3006e869b5711ae7370180db537f6d98e3bcaf23fabfd911f" 349 | dependencies = [ 350 | "bitflags", 351 | "cairo-rs", 352 | "field-offset", 353 | "futures-channel", 354 | "gdk-pixbuf", 355 | "gdk4", 356 | "gio", 357 | "glib", 358 | "graphene-rs", 359 | "gsk4", 360 | "gtk4-macros", 361 | "gtk4-sys", 362 | "libc", 363 | "once_cell", 364 | "pango", 365 | ] 366 | 367 | [[package]] 368 | name = "gtk4-macros" 369 | version = "0.6.0" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61" 372 | dependencies = [ 373 | "anyhow", 374 | "proc-macro-crate", 375 | "proc-macro-error", 376 | "proc-macro2", 377 | "quote", 378 | "syn", 379 | ] 380 | 381 | [[package]] 382 | name = "gtk4-sys" 383 | version = "0.6.2" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "65463dc801460e498d5e7ffa6e9ae2cfbed7d05fabd1ca5a8d024adbc89eeda6" 386 | dependencies = [ 387 | "cairo-sys-rs", 388 | "gdk-pixbuf-sys", 389 | "gdk4-sys", 390 | "gio-sys", 391 | "glib-sys", 392 | "gobject-sys", 393 | "graphene-sys", 394 | "gsk4-sys", 395 | "libc", 396 | "pango-sys", 397 | "system-deps", 398 | ] 399 | 400 | [[package]] 401 | name = "hashbrown" 402 | version = "0.12.3" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 405 | 406 | [[package]] 407 | name = "heck" 408 | version = "0.4.1" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 411 | 412 | [[package]] 413 | name = "indexmap" 414 | version = "1.9.2" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 417 | dependencies = [ 418 | "autocfg", 419 | "hashbrown", 420 | ] 421 | 422 | [[package]] 423 | name = "libc" 424 | version = "0.2.139" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 427 | 428 | [[package]] 429 | name = "memchr" 430 | version = "2.5.0" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 433 | 434 | [[package]] 435 | name = "memoffset" 436 | version = "0.6.5" 437 | source = "registry+https://github.com/rust-lang/crates.io-index" 438 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 439 | dependencies = [ 440 | "autocfg", 441 | ] 442 | 443 | [[package]] 444 | name = "nom8" 445 | version = "0.2.0" 446 | source = "registry+https://github.com/rust-lang/crates.io-index" 447 | checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" 448 | dependencies = [ 449 | "memchr", 450 | ] 451 | 452 | [[package]] 453 | name = "once_cell" 454 | version = "1.17.1" 455 | source = "registry+https://github.com/rust-lang/crates.io-index" 456 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 457 | 458 | [[package]] 459 | name = "pango" 460 | version = "0.17.0" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc" 463 | dependencies = [ 464 | "bitflags", 465 | "gio", 466 | "glib", 467 | "libc", 468 | "once_cell", 469 | "pango-sys", 470 | ] 471 | 472 | [[package]] 473 | name = "pango-sys" 474 | version = "0.17.0" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" 477 | dependencies = [ 478 | "glib-sys", 479 | "gobject-sys", 480 | "libc", 481 | "system-deps", 482 | ] 483 | 484 | [[package]] 485 | name = "pest" 486 | version = "2.5.5" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" 489 | dependencies = [ 490 | "thiserror", 491 | "ucd-trie", 492 | ] 493 | 494 | [[package]] 495 | name = "pin-project-lite" 496 | version = "0.2.9" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 499 | 500 | [[package]] 501 | name = "pin-utils" 502 | version = "0.1.0" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 505 | 506 | [[package]] 507 | name = "pkg-config" 508 | version = "0.3.26" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 511 | 512 | [[package]] 513 | name = "proc-macro-crate" 514 | version = "1.3.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" 517 | dependencies = [ 518 | "once_cell", 519 | "toml_edit", 520 | ] 521 | 522 | [[package]] 523 | name = "proc-macro-error" 524 | version = "1.0.4" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 527 | dependencies = [ 528 | "proc-macro-error-attr", 529 | "proc-macro2", 530 | "quote", 531 | "syn", 532 | "version_check", 533 | ] 534 | 535 | [[package]] 536 | name = "proc-macro-error-attr" 537 | version = "1.0.4" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 540 | dependencies = [ 541 | "proc-macro2", 542 | "quote", 543 | "version_check", 544 | ] 545 | 546 | [[package]] 547 | name = "proc-macro2" 548 | version = "1.0.51" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" 551 | dependencies = [ 552 | "unicode-ident", 553 | ] 554 | 555 | [[package]] 556 | name = "quote" 557 | version = "1.0.23" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 560 | dependencies = [ 561 | "proc-macro2", 562 | ] 563 | 564 | [[package]] 565 | name = "rustc_version" 566 | version = "0.3.3" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 569 | dependencies = [ 570 | "semver", 571 | ] 572 | 573 | [[package]] 574 | name = "semver" 575 | version = "0.11.0" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 578 | dependencies = [ 579 | "semver-parser", 580 | ] 581 | 582 | [[package]] 583 | name = "semver-parser" 584 | version = "0.10.2" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 587 | dependencies = [ 588 | "pest", 589 | ] 590 | 591 | [[package]] 592 | name = "serde" 593 | version = "1.0.152" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 596 | 597 | [[package]] 598 | name = "slab" 599 | version = "0.4.8" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 602 | dependencies = [ 603 | "autocfg", 604 | ] 605 | 606 | [[package]] 607 | name = "smallvec" 608 | version = "1.10.0" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 611 | 612 | [[package]] 613 | name = "syn" 614 | version = "1.0.108" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "d56e159d99e6c2b93995d171050271edb50ecc5288fbc7cc17de8fdce4e58c14" 617 | dependencies = [ 618 | "proc-macro2", 619 | "quote", 620 | "unicode-ident", 621 | ] 622 | 623 | [[package]] 624 | name = "system-deps" 625 | version = "6.0.3" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" 628 | dependencies = [ 629 | "cfg-expr", 630 | "heck", 631 | "pkg-config", 632 | "toml", 633 | "version-compare", 634 | ] 635 | 636 | [[package]] 637 | name = "thiserror" 638 | version = "1.0.38" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 641 | dependencies = [ 642 | "thiserror-impl", 643 | ] 644 | 645 | [[package]] 646 | name = "thiserror-impl" 647 | version = "1.0.38" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 650 | dependencies = [ 651 | "proc-macro2", 652 | "quote", 653 | "syn", 654 | ] 655 | 656 | [[package]] 657 | name = "toml" 658 | version = "0.5.11" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 661 | dependencies = [ 662 | "serde", 663 | ] 664 | 665 | [[package]] 666 | name = "toml_datetime" 667 | version = "0.5.1" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" 670 | 671 | [[package]] 672 | name = "toml_edit" 673 | version = "0.18.1" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" 676 | dependencies = [ 677 | "indexmap", 678 | "nom8", 679 | "toml_datetime", 680 | ] 681 | 682 | [[package]] 683 | name = "ucd-trie" 684 | version = "0.1.5" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 687 | 688 | [[package]] 689 | name = "unicode-ident" 690 | version = "1.0.6" 691 | source = "registry+https://github.com/rust-lang/crates.io-index" 692 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 693 | 694 | [[package]] 695 | name = "version-compare" 696 | version = "0.1.1" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 699 | 700 | [[package]] 701 | name = "version_check" 702 | version = "0.9.4" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 705 | 706 | [[package]] 707 | name = "winapi" 708 | version = "0.3.9" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 711 | dependencies = [ 712 | "winapi-i686-pc-windows-gnu", 713 | "winapi-x86_64-pc-windows-gnu", 714 | ] 715 | 716 | [[package]] 717 | name = "winapi-i686-pc-windows-gnu" 718 | version = "0.4.0" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 721 | 722 | [[package]] 723 | name = "winapi-x86_64-pc-windows-gnu" 724 | version = "0.4.0" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 727 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "anyhow" 7 | version = "1.0.69" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" 10 | 11 | [[package]] 12 | name = "autocfg" 13 | version = "1.1.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 16 | 17 | [[package]] 18 | name = "bitflags" 19 | version = "1.3.2" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 22 | 23 | [[package]] 24 | name = "cairo-rs" 25 | version = "0.17.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871" 28 | dependencies = [ 29 | "bitflags", 30 | "cairo-sys-rs", 31 | "glib", 32 | "libc", 33 | "once_cell", 34 | "thiserror", 35 | ] 36 | 37 | [[package]] 38 | name = "cairo-sys-rs" 39 | version = "0.17.0" 40 | source = "registry+https://github.com/rust-lang/crates.io-index" 41 | checksum = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e" 42 | dependencies = [ 43 | "glib-sys", 44 | "libc", 45 | "system-deps", 46 | ] 47 | 48 | [[package]] 49 | name = "cfg-expr" 50 | version = "0.11.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b0357a6402b295ca3a86bc148e84df46c02e41f41fef186bda662557ef6328aa" 53 | dependencies = [ 54 | "smallvec", 55 | ] 56 | 57 | [[package]] 58 | name = "cfg-if" 59 | version = "1.0.0" 60 | source = "registry+https://github.com/rust-lang/crates.io-index" 61 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 62 | 63 | [[package]] 64 | name = "field-offset" 65 | version = "0.3.4" 66 | source = "registry+https://github.com/rust-lang/crates.io-index" 67 | checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" 68 | dependencies = [ 69 | "memoffset", 70 | "rustc_version", 71 | ] 72 | 73 | [[package]] 74 | name = "futures-channel" 75 | version = "0.3.26" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" 78 | dependencies = [ 79 | "futures-core", 80 | ] 81 | 82 | [[package]] 83 | name = "futures-core" 84 | version = "0.3.26" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" 87 | 88 | [[package]] 89 | name = "futures-executor" 90 | version = "0.3.26" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" 93 | dependencies = [ 94 | "futures-core", 95 | "futures-task", 96 | "futures-util", 97 | ] 98 | 99 | [[package]] 100 | name = "futures-io" 101 | version = "0.3.26" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" 104 | 105 | [[package]] 106 | name = "futures-macro" 107 | version = "0.3.26" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" 110 | dependencies = [ 111 | "proc-macro2", 112 | "quote", 113 | "syn", 114 | ] 115 | 116 | [[package]] 117 | name = "futures-task" 118 | version = "0.3.26" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" 121 | 122 | [[package]] 123 | name = "futures-util" 124 | version = "0.3.26" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" 127 | dependencies = [ 128 | "futures-core", 129 | "futures-macro", 130 | "futures-task", 131 | "pin-project-lite", 132 | "pin-utils", 133 | "slab", 134 | ] 135 | 136 | [[package]] 137 | name = "gdk-pixbuf" 138 | version = "0.17.0" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf" 141 | dependencies = [ 142 | "bitflags", 143 | "gdk-pixbuf-sys", 144 | "gio", 145 | "glib", 146 | "libc", 147 | "once_cell", 148 | ] 149 | 150 | [[package]] 151 | name = "gdk-pixbuf-sys" 152 | version = "0.17.0" 153 | source = "registry+https://github.com/rust-lang/crates.io-index" 154 | checksum = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b" 155 | dependencies = [ 156 | "gio-sys", 157 | "glib-sys", 158 | "gobject-sys", 159 | "libc", 160 | "system-deps", 161 | ] 162 | 163 | [[package]] 164 | name = "gdk4" 165 | version = "0.6.2" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "e5042053ee765aeef08d9d7e3f0f1e36a4d37f1659b3f93ad3d6997515dbb64a" 168 | dependencies = [ 169 | "bitflags", 170 | "cairo-rs", 171 | "gdk-pixbuf", 172 | "gdk4-sys", 173 | "gio", 174 | "glib", 175 | "libc", 176 | "pango", 177 | ] 178 | 179 | [[package]] 180 | name = "gdk4-sys" 181 | version = "0.6.2" 182 | source = "registry+https://github.com/rust-lang/crates.io-index" 183 | checksum = "14f0fb00507af1e9299681dd09965f720e2b5ea95536d49a5681e8994ef10c7a" 184 | dependencies = [ 185 | "cairo-sys-rs", 186 | "gdk-pixbuf-sys", 187 | "gio-sys", 188 | "glib-sys", 189 | "gobject-sys", 190 | "libc", 191 | "pango-sys", 192 | "pkg-config", 193 | "system-deps", 194 | ] 195 | 196 | [[package]] 197 | name = "getrandom" 198 | version = "0.2.9" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" 201 | dependencies = [ 202 | "cfg-if", 203 | "libc", 204 | "wasi", 205 | ] 206 | 207 | [[package]] 208 | name = "gio" 209 | version = "0.17.2" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "65acfc24267314eee46f49e0a531e08fd6c3025040d1cfb4a7cd8e41c5e06116" 212 | dependencies = [ 213 | "bitflags", 214 | "futures-channel", 215 | "futures-core", 216 | "futures-io", 217 | "futures-util", 218 | "gio-sys", 219 | "glib", 220 | "libc", 221 | "once_cell", 222 | "pin-project-lite", 223 | "smallvec", 224 | "thiserror", 225 | ] 226 | 227 | [[package]] 228 | name = "gio-sys" 229 | version = "0.17.0" 230 | source = "registry+https://github.com/rust-lang/crates.io-index" 231 | checksum = "b5d3076ecb86c8c3a672c9843d6232b3a344fb81d304d0ba1ac64b23343efa46" 232 | dependencies = [ 233 | "glib-sys", 234 | "gobject-sys", 235 | "libc", 236 | "system-deps", 237 | "winapi", 238 | ] 239 | 240 | [[package]] 241 | name = "glib" 242 | version = "0.17.2" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "a78b6a0901e258cb03c761ca94c84d519427ede489cae12cd5ba0d7d584e69e9" 245 | dependencies = [ 246 | "bitflags", 247 | "futures-channel", 248 | "futures-core", 249 | "futures-executor", 250 | "futures-task", 251 | "futures-util", 252 | "gio-sys", 253 | "glib-macros", 254 | "glib-sys", 255 | "gobject-sys", 256 | "libc", 257 | "memchr", 258 | "once_cell", 259 | "smallvec", 260 | "thiserror", 261 | ] 262 | 263 | [[package]] 264 | name = "glib-macros" 265 | version = "0.17.2" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | checksum = "55e93d79ed130f0f0b58bc0aa29fb0e40c9dfd63997fec51f8adf780d1520bc4" 268 | dependencies = [ 269 | "anyhow", 270 | "heck", 271 | "proc-macro-crate", 272 | "proc-macro-error", 273 | "proc-macro2", 274 | "quote", 275 | "syn", 276 | ] 277 | 278 | [[package]] 279 | name = "glib-sys" 280 | version = "0.17.2" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "72a0985cf568e18cf63b443c9a14f4bdaa947fed7437476000dba84926a20b25" 283 | dependencies = [ 284 | "libc", 285 | "system-deps", 286 | ] 287 | 288 | [[package]] 289 | name = "gobject-sys" 290 | version = "0.17.0" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "9a0155d388840c77d61b033b66ef4f9bc7f4133d83df83572d6b4fb234a3be7d" 293 | dependencies = [ 294 | "glib-sys", 295 | "libc", 296 | "system-deps", 297 | ] 298 | 299 | [[package]] 300 | name = "graphene-rs" 301 | version = "0.17.1" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "21cf11565bb0e4dfc2f99d4775b6c329f0d40a2cff9c0066214d31a0e1b46256" 304 | dependencies = [ 305 | "glib", 306 | "graphene-sys", 307 | "libc", 308 | ] 309 | 310 | [[package]] 311 | name = "graphene-sys" 312 | version = "0.17.0" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "cf80a4849a8d9565410a8fec6fc3678e9c617f4ac7be182ca55ab75016e07af9" 315 | dependencies = [ 316 | "glib-sys", 317 | "libc", 318 | "pkg-config", 319 | "system-deps", 320 | ] 321 | 322 | [[package]] 323 | name = "gsk4" 324 | version = "0.6.2" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "2fa9cd285a72a95124b65c069a9cb1b8fb8e310be71783404c39fccf3bf7774c" 327 | dependencies = [ 328 | "bitflags", 329 | "cairo-rs", 330 | "gdk4", 331 | "glib", 332 | "graphene-rs", 333 | "gsk4-sys", 334 | "libc", 335 | "pango", 336 | ] 337 | 338 | [[package]] 339 | name = "gsk4-sys" 340 | version = "0.6.2" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "5a445ae1e50cbf181a1d5c61b920a7e7e8657b96e0ecdbbf8911a86fad462a32" 343 | dependencies = [ 344 | "cairo-sys-rs", 345 | "gdk4-sys", 346 | "glib-sys", 347 | "gobject-sys", 348 | "graphene-sys", 349 | "libc", 350 | "pango-sys", 351 | "system-deps", 352 | ] 353 | 354 | [[package]] 355 | name = "gtk-gallary" 356 | version = "0.1.0" 357 | dependencies = [ 358 | "gtk4", 359 | ] 360 | 361 | [[package]] 362 | name = "gtk-hello" 363 | version = "0.1.0" 364 | dependencies = [ 365 | "gtk4", 366 | ] 367 | 368 | [[package]] 369 | name = "gtk-memory-management" 370 | version = "0.1.0" 371 | dependencies = [ 372 | "gtk4", 373 | ] 374 | 375 | [[package]] 376 | name = "gtk-subclass" 377 | version = "0.1.0" 378 | dependencies = [ 379 | "gtk4", 380 | ] 381 | 382 | [[package]] 383 | name = "gtk4" 384 | version = "0.6.6" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "b28a32a04cd75cef14a0983f8b0c669e0fe152a0a7725accdeb594e2c764c88b" 387 | dependencies = [ 388 | "bitflags", 389 | "cairo-rs", 390 | "field-offset", 391 | "futures-channel", 392 | "gdk-pixbuf", 393 | "gdk4", 394 | "gio", 395 | "glib", 396 | "graphene-rs", 397 | "gsk4", 398 | "gtk4-macros", 399 | "gtk4-sys", 400 | "libc", 401 | "once_cell", 402 | "pango", 403 | ] 404 | 405 | [[package]] 406 | name = "gtk4-macros" 407 | version = "0.6.0" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "db4676c4f90d8b010e88cb4558f61f47d76d6f6b8e6f6b89e62640f443907f61" 410 | dependencies = [ 411 | "anyhow", 412 | "proc-macro-crate", 413 | "proc-macro-error", 414 | "proc-macro2", 415 | "quote", 416 | "syn", 417 | ] 418 | 419 | [[package]] 420 | name = "gtk4-sys" 421 | version = "0.6.2" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "65463dc801460e498d5e7ffa6e9ae2cfbed7d05fabd1ca5a8d024adbc89eeda6" 424 | dependencies = [ 425 | "cairo-sys-rs", 426 | "gdk-pixbuf-sys", 427 | "gdk4-sys", 428 | "gio-sys", 429 | "glib-sys", 430 | "gobject-sys", 431 | "graphene-sys", 432 | "gsk4-sys", 433 | "libc", 434 | "pango-sys", 435 | "system-deps", 436 | ] 437 | 438 | [[package]] 439 | name = "hashbrown" 440 | version = "0.12.3" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 443 | 444 | [[package]] 445 | name = "heck" 446 | version = "0.4.1" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 449 | 450 | [[package]] 451 | name = "indexmap" 452 | version = "1.9.2" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 455 | dependencies = [ 456 | "autocfg", 457 | "hashbrown", 458 | ] 459 | 460 | [[package]] 461 | name = "libc" 462 | version = "0.2.139" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 465 | 466 | [[package]] 467 | name = "memchr" 468 | version = "2.5.0" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 471 | 472 | [[package]] 473 | name = "memoffset" 474 | version = "0.6.5" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 477 | dependencies = [ 478 | "autocfg", 479 | ] 480 | 481 | [[package]] 482 | name = "nom8" 483 | version = "0.2.0" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" 486 | dependencies = [ 487 | "memchr", 488 | ] 489 | 490 | [[package]] 491 | name = "once_cell" 492 | version = "1.17.1" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 495 | 496 | [[package]] 497 | name = "pango" 498 | version = "0.17.0" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "243c048be90312220fb3bd578176eed8290568274a93c95040289d39349384bc" 501 | dependencies = [ 502 | "bitflags", 503 | "gio", 504 | "glib", 505 | "libc", 506 | "once_cell", 507 | "pango-sys", 508 | ] 509 | 510 | [[package]] 511 | name = "pango-sys" 512 | version = "0.17.0" 513 | source = "registry+https://github.com/rust-lang/crates.io-index" 514 | checksum = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8" 515 | dependencies = [ 516 | "glib-sys", 517 | "gobject-sys", 518 | "libc", 519 | "system-deps", 520 | ] 521 | 522 | [[package]] 523 | name = "pest" 524 | version = "2.5.5" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" 527 | dependencies = [ 528 | "thiserror", 529 | "ucd-trie", 530 | ] 531 | 532 | [[package]] 533 | name = "pin-project-lite" 534 | version = "0.2.9" 535 | source = "registry+https://github.com/rust-lang/crates.io-index" 536 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 537 | 538 | [[package]] 539 | name = "pin-utils" 540 | version = "0.1.0" 541 | source = "registry+https://github.com/rust-lang/crates.io-index" 542 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 543 | 544 | [[package]] 545 | name = "pkg-config" 546 | version = "0.3.26" 547 | source = "registry+https://github.com/rust-lang/crates.io-index" 548 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 549 | 550 | [[package]] 551 | name = "proc-macro-crate" 552 | version = "1.3.0" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" 555 | dependencies = [ 556 | "once_cell", 557 | "toml_edit", 558 | ] 559 | 560 | [[package]] 561 | name = "proc-macro-error" 562 | version = "1.0.4" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 565 | dependencies = [ 566 | "proc-macro-error-attr", 567 | "proc-macro2", 568 | "quote", 569 | "syn", 570 | "version_check", 571 | ] 572 | 573 | [[package]] 574 | name = "proc-macro-error-attr" 575 | version = "1.0.4" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 578 | dependencies = [ 579 | "proc-macro2", 580 | "quote", 581 | "version_check", 582 | ] 583 | 584 | [[package]] 585 | name = "proc-macro2" 586 | version = "1.0.51" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" 589 | dependencies = [ 590 | "unicode-ident", 591 | ] 592 | 593 | [[package]] 594 | name = "quote" 595 | version = "1.0.23" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 598 | dependencies = [ 599 | "proc-macro2", 600 | ] 601 | 602 | [[package]] 603 | name = "rustc_version" 604 | version = "0.3.3" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 607 | dependencies = [ 608 | "semver", 609 | ] 610 | 611 | [[package]] 612 | name = "semver" 613 | version = "0.11.0" 614 | source = "registry+https://github.com/rust-lang/crates.io-index" 615 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 616 | dependencies = [ 617 | "semver-parser", 618 | ] 619 | 620 | [[package]] 621 | name = "semver-parser" 622 | version = "0.10.2" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 625 | dependencies = [ 626 | "pest", 627 | ] 628 | 629 | [[package]] 630 | name = "serde" 631 | version = "1.0.152" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 634 | 635 | [[package]] 636 | name = "slab" 637 | version = "0.4.8" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 640 | dependencies = [ 641 | "autocfg", 642 | ] 643 | 644 | [[package]] 645 | name = "smallvec" 646 | version = "1.10.0" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 649 | 650 | [[package]] 651 | name = "syn" 652 | version = "1.0.108" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "d56e159d99e6c2b93995d171050271edb50ecc5288fbc7cc17de8fdce4e58c14" 655 | dependencies = [ 656 | "proc-macro2", 657 | "quote", 658 | "unicode-ident", 659 | ] 660 | 661 | [[package]] 662 | name = "system-deps" 663 | version = "6.0.3" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | checksum = "2955b1fe31e1fa2fbd1976b71cc69a606d7d4da16f6de3333d0c92d51419aeff" 666 | dependencies = [ 667 | "cfg-expr", 668 | "heck", 669 | "pkg-config", 670 | "toml", 671 | "version-compare", 672 | ] 673 | 674 | [[package]] 675 | name = "thiserror" 676 | version = "1.0.38" 677 | source = "registry+https://github.com/rust-lang/crates.io-index" 678 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 679 | dependencies = [ 680 | "thiserror-impl", 681 | ] 682 | 683 | [[package]] 684 | name = "thiserror-impl" 685 | version = "1.0.38" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 688 | dependencies = [ 689 | "proc-macro2", 690 | "quote", 691 | "syn", 692 | ] 693 | 694 | [[package]] 695 | name = "time" 696 | version = "0.3.20" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" 699 | dependencies = [ 700 | "serde", 701 | "time-core", 702 | ] 703 | 704 | [[package]] 705 | name = "time-core" 706 | version = "0.1.0" 707 | source = "registry+https://github.com/rust-lang/crates.io-index" 708 | checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" 709 | 710 | [[package]] 711 | name = "toml" 712 | version = "0.5.11" 713 | source = "registry+https://github.com/rust-lang/crates.io-index" 714 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 715 | dependencies = [ 716 | "serde", 717 | ] 718 | 719 | [[package]] 720 | name = "toml_datetime" 721 | version = "0.5.1" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" 724 | 725 | [[package]] 726 | name = "toml_edit" 727 | version = "0.18.1" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" 730 | dependencies = [ 731 | "indexmap", 732 | "nom8", 733 | "toml_datetime", 734 | ] 735 | 736 | [[package]] 737 | name = "ucd-trie" 738 | version = "0.1.5" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 741 | 742 | [[package]] 743 | name = "unicode-ident" 744 | version = "1.0.6" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 747 | 748 | [[package]] 749 | name = "uuid" 750 | version = "1.3.2" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" 753 | dependencies = [ 754 | "getrandom", 755 | ] 756 | 757 | [[package]] 758 | name = "version-compare" 759 | version = "0.1.1" 760 | source = "registry+https://github.com/rust-lang/crates.io-index" 761 | checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" 762 | 763 | [[package]] 764 | name = "version_check" 765 | version = "0.9.4" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 768 | 769 | [[package]] 770 | name = "wado" 771 | version = "0.1.0" 772 | dependencies = [ 773 | "gtk4", 774 | "time", 775 | "uuid", 776 | ] 777 | 778 | [[package]] 779 | name = "wasi" 780 | version = "0.11.0+wasi-snapshot-preview1" 781 | source = "registry+https://github.com/rust-lang/crates.io-index" 782 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 783 | 784 | [[package]] 785 | name = "winapi" 786 | version = "0.3.9" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 789 | dependencies = [ 790 | "winapi-i686-pc-windows-gnu", 791 | "winapi-x86_64-pc-windows-gnu", 792 | ] 793 | 794 | [[package]] 795 | name = "winapi-i686-pc-windows-gnu" 796 | version = "0.4.0" 797 | source = "registry+https://github.com/rust-lang/crates.io-index" 798 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 799 | 800 | [[package]] 801 | name = "winapi-x86_64-pc-windows-gnu" 802 | version = "0.4.0" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 805 | --------------------------------------------------------------------------------