grim/src/gui/app.rs

51 lines
1.3 KiB
Rust
Raw Normal View History

2023-04-12 21:52:35 +03:00
// Copyright 2023 The Grim Developers
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use std::any::Any;
use eframe::Frame;
use egui::Context;
use crate::gui::PlatformCallbacks;
use crate::gui::screens::{Screen};
2023-04-18 16:19:43 +03:00
pub struct PlatformApp<Platform> {
pub(crate) screens: Screens,
2023-04-18 16:19:43 +03:00
pub(crate) platform: Platform,
}
pub struct Screens {
screens: Vec<Box<dyn Screen>>,
current: String,
}
impl Default for Screens {
fn default() -> Self {
Self::from_screens(vec![
Box::new(super::screens::Wallets::default())
])
}
}
impl Screens {
pub fn from_screens(screens: Vec<Box<dyn Screen>>) -> Self {
let current = screens[0].name().to_string();
Self {
screens,
current,
}
}
pub fn ui(&mut self, ctx: &Context, frame: &mut Frame, cb: &dyn PlatformCallbacks) {
}
2023-04-12 21:52:35 +03:00
}