11package io.writeopia.ui.components
22
33import androidx.compose.foundation.clickable
4+ import androidx.compose.foundation.horizontalScroll
45import androidx.compose.foundation.layout.PaddingValues
56import androidx.compose.foundation.layout.Row
67import androidx.compose.foundation.layout.Spacer
78import androidx.compose.foundation.layout.padding
89import androidx.compose.foundation.layout.size
910import androidx.compose.foundation.layout.width
11+ import androidx.compose.foundation.rememberScrollState
1012import androidx.compose.material.icons.Icons
1113import androidx.compose.material.icons.filled.ContentCut
1214import androidx.compose.material.icons.filled.DeleteOutline
@@ -36,6 +38,7 @@ fun EditionScreen(
3638 onDelete : () -> Unit = {},
3739 onCopy : () -> Unit = {},
3840 onCut : () -> Unit = {},
41+ onAddPage : () -> Unit = {},
3942 onClose : () -> Unit = {},
4043) {
4144 val iconPadding = PaddingValues (vertical = 4 .dp)
@@ -46,119 +49,137 @@ fun EditionScreen(
4649 Row (modifier = modifier.padding(8 .dp), verticalAlignment = Alignment .CenterVertically ) {
4750 val tint = MaterialTheme .colorScheme.onPrimary
4851
49- Icon (
52+ Row (
5053 modifier = Modifier
51- .clip(clipShape)
52- .clickable {
53- onSpanClick(Span .BOLD )
54- }
55- .size(iconSize)
56- .padding(iconPadding),
57- imageVector = Icons .Outlined .FormatBold ,
58- contentDescription = " BOLD" ,
54+ .weight(1f )
55+ .horizontalScroll(rememberScrollState()),
56+ verticalAlignment = Alignment .CenterVertically
57+ ) {
58+ Icon (
59+ modifier = Modifier
60+ .clip(clipShape)
61+ .clickable {
62+ onSpanClick(Span .BOLD )
63+ }
64+ .size(iconSize)
65+ .padding(iconPadding),
66+ imageVector = Icons .Outlined .FormatBold ,
67+ contentDescription = " BOLD" ,
5968// contentDescription = stringResource(R.string.delete),
60- tint = tint
61- )
62-
63- Icon (
64- modifier = Modifier
65- .clip(clipShape)
66- .clickable {
67- onSpanClick(Span .ITALIC )
68- }
69- .size(iconSize)
70- .padding(iconPadding),
71- imageVector = Icons .Outlined .FormatItalic ,
72- contentDescription = " ITALIC" ,
69+ tint = tint
70+ )
71+
72+ Icon (
73+ modifier = Modifier
74+ .clip(clipShape)
75+ .clickable {
76+ onSpanClick(Span .ITALIC )
77+ }
78+ .size(iconSize)
79+ .padding(iconPadding),
80+ imageVector = Icons .Outlined .FormatItalic ,
81+ contentDescription = " ITALIC" ,
7382// contentDescription = stringResource(R.string.delete),
74- tint = tint
75- )
76-
77- Spacer (modifier = Modifier .width(spaceWidth))
78-
79- Icon (
80- modifier = Modifier
81- .clip(clipShape)
82- .clickable {
83- onSpanClick(Span .UNDERLINE )
84- }
85- .size(iconSize)
86- .padding(iconPadding),
87- imageVector = Icons .Outlined .FormatUnderlined ,
88- contentDescription = " UNDERLINE" ,
83+ tint = tint
84+ )
85+
86+ Spacer (modifier = Modifier .width(spaceWidth))
87+
88+ Icon (
89+ modifier = Modifier
90+ .clip(clipShape)
91+ .clickable {
92+ onSpanClick(Span .UNDERLINE )
93+ }
94+ .size(iconSize)
95+ .padding(iconPadding),
96+ imageVector = Icons .Outlined .FormatUnderlined ,
97+ contentDescription = " UNDERLINE" ,
8998// contentDescription = stringResource(R.string.delete),
90- tint = tint
91- )
92-
93- Spacer (modifier = Modifier .width(spaceWidth))
94-
95- Icon (
96- modifier = Modifier
97- .clip(clipShape)
98- .clickable(onClick = checkboxClick)
99- .size(iconSize)
100- .padding(iconPadding),
101- imageVector = WrSdkIcons .checkbox,
102- contentDescription = " Checkbox" ,
99+ tint = tint
100+ )
101+
102+ Spacer (modifier = Modifier .width(spaceWidth))
103+
104+ Icon (
105+ modifier = Modifier
106+ .clip(clipShape)
107+ .clickable(onClick = checkboxClick)
108+ .size(iconSize)
109+ .padding(iconPadding),
110+ imageVector = WrSdkIcons .checkbox,
111+ contentDescription = " Checkbox" ,
103112// contentDescription = stringResource(R.string.delete),
104- tint = tint
105- )
106-
107- Spacer (modifier = Modifier .width(spaceWidth))
108-
109- Icon (
110- modifier = Modifier
111- .clip(clipShape)
112- .clickable(onClick = listItemClick)
113- .size(iconSize)
114- .padding(iconPadding),
115- imageVector = WrSdkIcons .list,
116- contentDescription = " List item" ,
113+ tint = tint
114+ )
115+
116+ Spacer (modifier = Modifier .width(spaceWidth))
117+
118+ Icon (
119+ modifier = Modifier
120+ .clip(clipShape)
121+ .clickable(onClick = listItemClick)
122+ .size(iconSize)
123+ .padding(iconPadding),
124+ imageVector = WrSdkIcons .list,
125+ contentDescription = " List item" ,
117126// contentDescription = stringResource(R.string.delete),
118- tint = tint
119- )
120-
121- Spacer (modifier = Modifier .width(spaceWidth))
122-
123- Icon (
124- modifier = Modifier
125- .clip(clipShape)
126- .clickable(onClick = onCopy)
127- .size(32 .dp)
128- .padding(iconPadding),
129- imageVector = WrSdkIcons .copy,
130- contentDescription = " Copy" ,
131- tint = tint
132- )
133-
134- Spacer (modifier = Modifier .width(spaceWidth))
135-
136- Icon (
137- modifier = Modifier
138- .clip(clipShape)
139- .clickable(onClick = onCut)
140- .size(32 .dp)
141- .padding(iconPadding),
142- imageVector = Icons .Default .ContentCut ,
143- contentDescription = " Cut" ,
144- tint = tint
145- )
146-
147- Spacer (modifier = Modifier .width(spaceWidth))
148-
149- Icon (
150- modifier = Modifier
151- .clip(clipShape)
152- .clickable(onClick = onDelete)
153- .size(iconSize)
154- .padding(iconPadding),
155- imageVector = Icons .Default .DeleteOutline ,
156- contentDescription = " Delete" ,
127+ tint = tint
128+ )
129+
130+ Spacer (modifier = Modifier .width(spaceWidth))
131+
132+ Icon (
133+ modifier = Modifier
134+ .clip(clipShape)
135+ .clickable(onClick = onCopy)
136+ .size(32 .dp)
137+ .padding(iconPadding),
138+ imageVector = WrSdkIcons .copy,
139+ contentDescription = " Copy" ,
140+ tint = tint
141+ )
142+
143+ Spacer (modifier = Modifier .width(spaceWidth))
144+
145+ Icon (
146+ modifier = Modifier
147+ .clip(clipShape)
148+ .clickable(onClick = onCut)
149+ .size(32 .dp)
150+ .padding(iconPadding),
151+ imageVector = Icons .Default .ContentCut ,
152+ contentDescription = " Cut" ,
153+ tint = tint
154+ )
155+
156+ Spacer (modifier = Modifier .width(spaceWidth))
157+
158+ Icon (
159+ modifier = Modifier
160+ .clip(clipShape)
161+ .clickable(onClick = onDelete)
162+ .size(iconSize)
163+ .padding(iconPadding),
164+ imageVector = Icons .Default .DeleteOutline ,
165+ contentDescription = " Delete" ,
157166// contentDescription = stringResource(R.string.delete),
158- tint = tint
159- )
160-
161- Spacer (modifier = Modifier .weight(1F ))
167+ tint = tint
168+ )
169+
170+ Spacer (modifier = Modifier .width(spaceWidth))
171+
172+ Icon (
173+ modifier = Modifier
174+ .clip(clipShape)
175+ .clickable(onClick = onAddPage)
176+ .size(iconSize)
177+ .padding(iconPadding),
178+ imageVector = WrSdkIcons .linkPage,
179+ contentDescription = " Link to page" ,
180+ tint = tint
181+ )
182+ }
162183
163184 Icon (
164185 modifier = Modifier
@@ -167,7 +188,7 @@ fun EditionScreen(
167188 .size(iconSize)
168189 .padding(iconPadding),
169190 imageVector = WrSdkIcons .close,
170- contentDescription = " List item " ,
191+ contentDescription = " Close " ,
171192// contentDescription = stringResource(R.string.delete),
172193 tint = tint
173194 )
0 commit comments