feat: create starter component for GettingStartedPage
parent
0c43be616e
commit
fa6f4b6b5b
|
@ -0,0 +1,35 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use gtk::prelude::*;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::CompositeTemplate;
|
||||
|
||||
#[derive(Default, CompositeTemplate)]
|
||||
#[template(file = "./getting-started.ui")]
|
||||
pub struct GettingStartedPage {
|
||||
#[template_child]
|
||||
pub link_new_file: TemplateChild<gtk::LinkButton>,
|
||||
#[template_child]
|
||||
pub link_open_file: TemplateChild<gtk::Button>,
|
||||
}
|
||||
|
||||
#[glib::object_subclass]
|
||||
impl ObjectSubclass for GettingStartedPage {
|
||||
const NAME: &'static str = "GettingStartedPage";
|
||||
type Type = super::GettingStartedPage;
|
||||
type ParentType = gtk::Box;
|
||||
|
||||
fn class_init(class: &mut Self::Class) {
|
||||
Self::bind_template(class);
|
||||
}
|
||||
|
||||
fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {
|
||||
obj.init_template();
|
||||
}
|
||||
}
|
||||
|
||||
impl ObjectImpl for GettingStartedPage {}
|
||||
impl WidgetImpl for GettingStartedPage {}
|
||||
impl BoxImpl for GettingStartedPage {}
|
|
@ -0,0 +1,28 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
pub mod imp;
|
||||
use crate::components::prelude::*;
|
||||
use glib::clone;
|
||||
use gtk::prelude::*;
|
||||
use gtk::subclass::prelude::*;
|
||||
|
||||
glib::wrapper! {
|
||||
pub struct GettingStartedPage(ObjectSubclass<imp::GettingStartedPage>)
|
||||
@extends gtk::Box, gtk::Widget,
|
||||
@implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget, gtk::Orientable;
|
||||
}
|
||||
|
||||
impl GettingStartedPage {
|
||||
pub fn new() -> Self {
|
||||
glib::Object::new(&[]).expect("Failed to create 'GettingStartedPage' component.")
|
||||
}
|
||||
|
||||
pub fn setup_actions<P: glib::IsA<crate::components::EchidnaWindow>>(&self, window: &P)
|
||||
where
|
||||
P: FileImplementedEditor,
|
||||
{
|
||||
let imp_class = imp::GettingStartedPage::from_instance(self);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue