20
20
21
21
use druid:: widget:: prelude:: * ;
22
22
use druid:: widget:: { Flex , Label } ;
23
- use druid:: { AppDelegate , AppLauncher , Command , Data , DelegateCtx , Handled , Lens , Menu , MenuItem , Selector , Target , WidgetExt , WindowDesc } ;
23
+ use druid:: {
24
+ AppDelegate , AppLauncher , Command , Data , DelegateCtx , Handled , Lens , Menu , MenuItem , Selector ,
25
+ Target , WidgetExt , WindowDesc ,
26
+ } ;
24
27
25
28
const COMMAND : Selector = Selector :: new ( "custom_Selector" ) ;
26
29
@@ -31,13 +34,11 @@ struct AppState {
31
34
}
32
35
33
36
pub fn main ( ) {
34
-
35
-
36
37
// describe the main window
37
38
let main_window = WindowDesc :: new ( build_root_widget ( ) )
38
39
. title ( "Hello World!" )
39
40
. window_size ( ( 400.0 , 400.0 ) )
40
- . menu ( |_, _, _|build_menu ( ) ) ;
41
+ . menu ( |_, _, _| build_menu ( ) ) ;
41
42
42
43
// create the initial app state
43
44
let initial_state: AppState = AppState {
@@ -55,75 +56,86 @@ pub fn main() {
55
56
56
57
fn build_root_widget ( ) -> impl Widget < AppState > {
57
58
Flex :: column ( )
58
- . with_child ( Label :: new ( |data : & AppState , _: & _ |format ! ( "Current value: {}" , data. value) ) )
59
+ . with_child ( Label :: new ( |data : & AppState , _: & _ | {
60
+ format ! ( "Current value: {}" , data. value)
61
+ } ) )
59
62
. with_default_spacer ( )
60
- . with_child ( Label :: new ( |data : & AppState , _: & _ |format ! ( "IS selected: {}" , data. option) ) )
63
+ . with_child ( Label :: new ( |data : & AppState , _: & _ | {
64
+ format ! ( "IS selected: {}" , data. option)
65
+ } ) )
61
66
. center ( )
62
67
}
63
68
64
69
fn build_menu ( ) -> Menu < AppState > {
65
70
let menu = Menu :: new ( "Druid Menu" )
66
- . entry (
67
- MenuItem :: new ( "Send Command" )
68
- . command ( COMMAND )
69
- )
71
+ . entry ( MenuItem :: new ( "Send Command" ) . command ( COMMAND ) )
70
72
. separator ( )
71
73
. entry (
72
74
MenuItem :: new ( "Change value" )
73
- . on_activate ( |_, data : & mut AppState , _|data. value = ( data. value + 1 ) % 4 )
75
+ . on_activate ( |_, data : & mut AppState , _| data. value = ( data. value + 1 ) % 4 ) ,
74
76
)
75
77
. entry (
76
78
MenuItem :: new ( "1 Selected" )
77
79
. radio_item ( 1 , Some ( 0 ) )
78
- . lens ( AppState :: value)
80
+ . lens ( AppState :: value) ,
79
81
)
80
82
. entry (
81
83
MenuItem :: new ( "2 Selected" )
82
84
. radio_item ( 2 , Some ( 0 ) )
83
- . lens ( AppState :: value)
85
+ . lens ( AppState :: value) ,
84
86
)
85
87
. entry (
86
88
// Implementing the radio item from hand
87
89
MenuItem :: new ( "3 Selected" )
88
- . on_activate ( |_, data : & mut AppState , _|if data. value == 3 { data. value = 0 } else { data. value = 3 } )
89
- . selected_if ( |data : & AppState , _|data. value == 3 )
90
+ . on_activate ( |_, data : & mut AppState , _| {
91
+ if data. value == 3 {
92
+ data. value = 0
93
+ } else {
94
+ data. value = 3
95
+ }
96
+ } )
97
+ . selected_if ( |data : & AppState , _| data. value == 3 ) ,
90
98
)
91
99
. separator ( )
92
100
. entry (
93
101
MenuItem :: new ( "CheckBox" )
94
102
. toggle_data ( )
95
- . lens ( AppState :: option)
103
+ . lens ( AppState :: option) ,
96
104
)
97
105
. entry (
98
106
// Implementing the CheckBox from hand
99
107
MenuItem :: new ( "Manual CheckBox" )
100
- . on_activate ( |_, data : & mut AppState , _|data. option = !data. option )
101
- . selected_if ( |data : & AppState , _|data. option )
108
+ . on_activate ( |_, data : & mut AppState , _| data. option = !data. option )
109
+ . selected_if ( |data : & AppState , _| data. option ) ,
102
110
)
103
111
. entry (
104
112
MenuItem :: new ( "Disabled" )
105
- . on_activate ( |_, _, _|panic ! ( "disabled Menu Item was activated!" ) )
106
- . enabled ( false )
107
-
113
+ . on_activate ( |_, _, _| panic ! ( "disabled Menu Item was activated!" ) )
114
+ . enabled ( false ) ,
108
115
)
109
116
. entry (
110
117
MenuItem :: new ( "Disabled Selectable" )
111
- . on_activate ( |_, _, _|panic ! ( "disabled Menu Item was activated!" ) )
118
+ . on_activate ( |_, _, _| panic ! ( "disabled Menu Item was activated!" ) )
112
119
. selected ( false )
113
- . enabled ( false )
120
+ . enabled ( false ) ,
114
121
)
115
122
//we dont add new menu items based on data!
116
- . rebuild_on ( |_, _, _|false ) ;
117
-
118
- Menu :: empty ( )
119
- . entry ( menu)
123
+ . rebuild_on ( |_, _, _| false ) ;
120
124
125
+ Menu :: empty ( ) . entry ( menu)
121
126
}
122
127
123
128
struct Delegate ;
124
129
125
130
impl AppDelegate < AppState > for Delegate {
126
- fn command ( & mut self , _: & mut DelegateCtx , _: Target , cmd : & Command , _: & mut AppState , _: & Env ) -> Handled {
131
+ fn command (
132
+ & mut self ,
133
+ _: & mut DelegateCtx ,
134
+ _: Target ,
135
+ cmd : & Command ,
136
+ _: & mut AppState ,
137
+ _: & Env ,
138
+ ) -> Handled {
127
139
if cmd. is ( COMMAND ) {
128
140
println ! ( "Clicked \" Send Command\" !" ) ;
129
141
Handled :: Yes
0 commit comments