use std::any::Any;
use backend::backend::{BackendHandle, BroadcastMessage, NoteId};
-use ui_rs::{action, button, ui_actions, UiModel};
+use ui_rs::{action, button, hbox, ui_actions, UiModel};
use ui_rs::ui::*;
use crate::{App, AppStates};
use entity::collection::{Model as Collection, Node};
});
button!(obj, label = "Open", action = "open_extern");
});
+
+ hbox!(obj, spacing = 10, |obj| {
+
+ });
}
);
});
use crate::ui::ffi::*;
use crate::ui::{toolkit};
+#[macro_export]
+macro_rules! vbox {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.hbox_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! hbox {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.hbox_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! grid {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.grid_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! frame {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.frame_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! expander {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.expander_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! scrolledwindow {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.scrolledwindow_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! hsplitpane {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.hsplitpane_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! vsplitpane {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.vsplitpane_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! sidebar {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.sidebar_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! left_panel {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.left_panel_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
+#[macro_export]
+macro_rules! right_panel {
+ (
+ $parent:expr
+ $(, $name:ident = $value:expr )*
+ ,
+ |$child:ident| $body:block
+ ) => {{
+ $parent.right_panel_builder()
+ $(.$name($value))*
+ .create(|$child| $body)
+ }};
+}
+
macro_rules! container_fn {
($fn_name:ident, $builder_fn:ident, $builder_ty:ident) => {
pub fn $fn_name<F, U>(&mut self, build: F, ui: U)