first commit
This commit is contained in:
commit
8f34249a8b
8 changed files with 1272 additions and 0 deletions
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
## Cargo generated directory
|
||||
/target
|
||||
## cargo-packager generated directory
|
||||
/dist
|
||||
|
||||
.DS_Store
|
1111
Cargo.lock
generated
Normal file
1111
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
10
Cargo.toml
Normal file
10
Cargo.toml
Normal file
|
@ -0,0 +1,10 @@
|
|||
[package]
|
||||
name = "testpane"
|
||||
version = "1.0.0"
|
||||
edition = "2021"
|
||||
license = "MIT OR Apache-2.0"
|
||||
metadata.makepad-auto-version = "EVyKRfOGV339Re5CS45PMHHxw_M="
|
||||
|
||||
[dependencies]
|
||||
# makepad-widgets = { git = "https://github.com/makepad/makepad", branch = "dev" }
|
||||
makepad-widgets = { git = "https://github.com/kevinaboos/makepad", branch = "emit_key_down_unhandled_on_unused_hit" }
|
1
README.md
Normal file
1
README.md
Normal file
|
@ -0,0 +1 @@
|
|||
# test sliding pane
|
14
resources/menu/context_menu.xml
Normal file
14
resources/menu/context_menu.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/menu_copy"
|
||||
android:title="Copy" />
|
||||
<item
|
||||
android:id="@+id/menu_cut"
|
||||
android:title="Cut" />
|
||||
<item
|
||||
android:id="@+id/menu_paste"
|
||||
android:title="Paste" />
|
||||
</menu>
|
||||
|
121
src/app.rs
Normal file
121
src/app.rs
Normal file
|
@ -0,0 +1,121 @@
|
|||
|
||||
use makepad_widgets::*;
|
||||
|
||||
live_design!{
|
||||
use link::theme::*;
|
||||
use link::shaders::*;
|
||||
use link::widgets::*;
|
||||
|
||||
App = {{App}} {
|
||||
ui: <Root>{
|
||||
main_window = <Window>{
|
||||
body = <View>{
|
||||
flow: Down,
|
||||
spacing:30,
|
||||
align: {
|
||||
x: 0.5,
|
||||
y: 0.5
|
||||
},
|
||||
show_bg: true,
|
||||
draw_bg:{
|
||||
fn pixel(self) -> vec4 {
|
||||
|
||||
let center = vec2(0.5, 0.5);
|
||||
let uv = self.pos - center;
|
||||
let radius = length(uv);
|
||||
let angle = atan(uv.y, uv.x);
|
||||
let color1 = mix(#f00, #00f, 0.5 + 10.5 * cos(angle + self.time));
|
||||
let color2 = mix(#0f0, #ff0, 0.5 + 0.5 * sin(angle + self.time));
|
||||
let color = mix(color1, color2, radius);
|
||||
return depth_clip(self.world, color, self.depth_clip);
|
||||
}
|
||||
}
|
||||
<Rotary>{
|
||||
text:"Slide"
|
||||
}
|
||||
button_1 = <Button> {
|
||||
text: "Click 福 me 😊"
|
||||
draw_text:{text_style:{font_size:18}}
|
||||
}
|
||||
text_input = <TextInput> {
|
||||
width: 100,
|
||||
flow: RightWrap,
|
||||
text: "Lorem ipsum"
|
||||
draw_text:{text_style:{font_size:18}}
|
||||
}
|
||||
/*
|
||||
md = <Markdown> {
|
||||
font_size:10
|
||||
draw_normal:{
|
||||
font_scale: 20.0
|
||||
}
|
||||
body: "是"
|
||||
}*/
|
||||
/*
|
||||
button_2 = <Button> {
|
||||
text: "Click me 345 1234"
|
||||
draw_text:{color:#fff, text_style:{font_size:18}}
|
||||
}*/
|
||||
/*
|
||||
|
||||
<SliderRound> {
|
||||
text: "Short label",
|
||||
draw_bg: {
|
||||
val_color_1: #FFCC00
|
||||
val_color_1_hover: #FF9944
|
||||
val_color_1_focus: #FFCC44
|
||||
val_color_1_drag: #FFAA00
|
||||
|
||||
val_color_2: #F00
|
||||
val_color_2_hover: #F00
|
||||
val_color_2_focus: #F00
|
||||
val_color_2_drag: #F00
|
||||
|
||||
handle_color: #0000
|
||||
handle_color_hover: #0008
|
||||
handle_color_focus: #000C
|
||||
handle_color_drag: #000F
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
app_main!(App);
|
||||
|
||||
#[derive(Live, LiveHook)]
|
||||
pub struct App {
|
||||
#[live] ui: WidgetRef,
|
||||
#[rust] counter: usize,
|
||||
}
|
||||
|
||||
impl LiveRegister for App {
|
||||
fn live_register(cx: &mut Cx) {
|
||||
crate::makepad_widgets::live_design(cx);
|
||||
}
|
||||
}
|
||||
|
||||
impl MatchEvent for App{
|
||||
fn handle_startup(&mut self, _cx:&mut Cx){
|
||||
}
|
||||
|
||||
fn handle_actions(&mut self, cx: &mut Cx, actions:&Actions){
|
||||
if self.ui.button(id!(button_1)).clicked(&actions) {
|
||||
self.ui.button(id!(button_1)).set_text(cx, "Clicked 😀");
|
||||
log!("hi");
|
||||
self.counter += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl AppMain for App {
|
||||
fn handle_event(&mut self, cx: &mut Cx, event: &Event) {
|
||||
if let Event::XrUpdate(_e) = event{
|
||||
//log!("{:?}", e.now.left.trigger.analog);
|
||||
}
|
||||
self.match_event(cx, event);
|
||||
self.ui.handle_event(cx, event, &mut Scope::empty());
|
||||
}
|
||||
}
|
2
src/lib.rs
Normal file
2
src/lib.rs
Normal file
|
@ -0,0 +1,2 @@
|
|||
pub use makepad_widgets;
|
||||
pub mod app;
|
7
src/main.rs
Normal file
7
src/main.rs
Normal file
|
@ -0,0 +1,7 @@
|
|||
// this stub is necessary because some platforms require building
|
||||
// as dll (mobile / wasm) and some require to be built as executable
|
||||
// unfortunately cargo doesn't facilitate this without a main.rs stub
|
||||
|
||||
fn main() {
|
||||
testpane::app::app_main()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue