From: Nil Gradisnik Date: Sun, 3 Dec 2017 01:17:02 +0000 (-0800) Subject: Added about dialog X-Git-Url: https://git.ozva.co.uk/?a=commitdiff_plain;h=117f3d83b218e1c222707a7e40a94fc42bc1430c;p=gn-editor Added about dialog --- diff --git a/Cargo.toml b/Cargo.toml index a726562..3d99d4e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,10 @@ name = "markdown-rs" version = "0.1.0" authors = ["Nil Gradisnik "] +description = "Fast, simple, distraction free Markdown editor." +repository = "@nilgradisnik/markdown-rs" +readme = "README.md" +license = "MIT" [dependencies] gio = "0.3" diff --git a/README.md b/README.md index 8b085e0..ffd5650 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Markdown Rust -A distraction free Markdown editor. +Fast, simple, distraction free Markdown editor. ## Motivation There seem to be no simple, fast Markdown editors on Linux. Most of them are built with some version of Chrome and Javascript. diff --git a/src/gtk-ui.glade b/src/gtk-ui.glade index 48a004e..a5d0585 100644 --- a/src/gtk-ui.glade +++ b/src/gtk-ui.glade @@ -33,6 +33,48 @@ Author: Nil Gradisnik + + False + dialog + Markdown Rust + 0.1.0 + Fast, simple, distraction free Markdown editor. + https://github.com/nilgradisnik/markdown-rs + markdown-rs + Nil Gradisnik <nil.gradisnik@gmail.com> + text-x-generic + mit-x11 + + + False + vertical + 2 + + + False + end + + + + + + + + + False + False + 0 + + + + + + + + + + + False Markdown Rust @@ -93,6 +135,30 @@ Author: Nil Gradisnik True + + + True + False + False + False + + + True + True + + + + + True + False + True + gtk-about + + + False + False + + False diff --git a/src/main.rs b/src/main.rs index e397327..1ff84fa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,6 +18,11 @@ use gtk::Builder; use markdown::{string_to_html, buffer_to_html}; +const NAME: &str = env!("CARGO_PKG_NAME"); +const VERSION: &str = env!("CARGO_PKG_VERSION"); +const AUTHORS: &str = env!("CARGO_PKG_AUTHORS"); +const DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION"); + // http://gtk-rs.org/tuto/closures macro_rules! clone { (@param _) => ( _ ); @@ -44,12 +49,19 @@ fn build_ui(application: >k::Application) { let window: gtk::ApplicationWindow = builder.get_object("window").expect("Couldn't get window"); window.set_application(application); - let open_button: gtk::ToolButton = builder.get_object("open_button").expect("Couldn't get builder"); - let render_button: gtk::ToolButton = builder.get_object("render_button").expect("Couldn't get builder"); - let live_button: gtk::ToggleToolButton = builder.get_object("live_button").expect("Couldn't get builder"); + let open_button: gtk::ToolButton = builder.get_object("open_button").unwrap(); + let render_button: gtk::ToolButton = builder.get_object("render_button").unwrap(); + let live_button: gtk::ToggleToolButton = builder.get_object("live_button").unwrap(); + let about_button: gtk::ToolButton = builder.get_object("about_button").unwrap(); + + let text_view: sourceview::View = builder.get_object("text_view").unwrap(); + let markdown_view: gtk::TextView = builder.get_object("markdown_view").unwrap(); - let text_view: sourceview::View = builder.get_object("text_view").expect("Couldn't get text_view"); - let markdown_view: gtk::TextView = builder.get_object("markdown_view").expect("Couldn't get text_view"); + let about_dialog: gtk::AboutDialog = builder.get_object("about_dialog").unwrap(); + about_dialog.set_program_name(NAME); + about_dialog.set_version(VERSION); + about_dialog.set_authors(&[AUTHORS]); + about_dialog.set_comments(DESCRIPTION); open_button.connect_clicked(clone!(window, text_view, markdown_view => move |_| { let file_chooser = gtk::FileChooserDialog::new(Some("Open File"), Some(&window), gtk::FileChooserAction::Open); @@ -85,6 +97,15 @@ fn build_ui(application: >k::Application) { markdown_view.get_buffer().unwrap().set_text(&buffer_to_html(buffer)); })); + about_button.connect_clicked(clone!(about_dialog => move |_| { + about_dialog.show(); + })); + + about_dialog.connect_delete_event(clone!(about_dialog => move |_, _| { + about_dialog.hide(); + Inhibit(true) + })); + window.connect_delete_event(clone!(window => move |_, _| { window.destroy(); Inhibit(false)