Skip to content

Commit 27e6ec7

Browse files
committed
File drop down is completed.
1 parent a8f0c3e commit 27e6ec7

2 files changed

Lines changed: 91 additions & 30 deletions

File tree

app/src/processing/app/ui/ComposeTopBar.kt

Lines changed: 90 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,7 @@ package processing.app.ui
33

44
import androidx.compose.foundation.background
55
import androidx.compose.foundation.clickable
6-
import androidx.compose.foundation.layout.Arrangement
7-
import androidx.compose.foundation.layout.Box
8-
import androidx.compose.foundation.layout.Row
9-
import androidx.compose.foundation.layout.fillMaxWidth
10-
import androidx.compose.foundation.layout.padding
11-
import androidx.compose.foundation.layout.heightIn
6+
import androidx.compose.foundation.layout.*
127
import androidx.compose.material.Text
138
import androidx.compose.runtime.Composable
149
import androidx.compose.runtime.mutableStateOf
@@ -23,11 +18,12 @@ import androidx.compose.ui.text.style.TextAlign
2318
import androidx.compose.ui.unit.IntOffset
2419
import androidx.compose.ui.unit.dp
2520
import processing.app.Base
21+
import processing.app.Language
2622
import processing.app.Preferences
2723
import processing.app.UpdateCheck
28-
import java.awt.Color as AwtColor
2924
import javax.swing.JMenuItem
3025
import javax.swing.JPopupMenu
26+
import java.awt.Color as AwtColor
3127

3228
fun awtToCompose(c: AwtColor): Color {
3329
return Color(c.red, c.green, c.blue, c.alpha)
@@ -40,34 +36,34 @@ fun themeColorOrFallback(key: String, fallback: AwtColor): Color {
4036

4137
data class TopBarItemData(
4238
val label: String,
43-
val onClick: (ComposePanel, Base, Int, Int) -> Unit
39+
val onClick: (ComposePanel, Base, Editor, Int, Int) -> Unit
4440
)
4541

4642
@Composable
47-
fun TopBar(panel: ComposePanel, base: Base) {
43+
fun TopBar(panel: ComposePanel, base: Base, editor: Editor) {
4844
val blueBarColor = themeColorOrFallback("toolbar.gradient.top", AwtColor(107, 160, 204))
4945
val textColor = themeColorOrFallback("toolbar.rollover.color", AwtColor(0, 0, 0))
5046

5147
val items = listOf(
52-
TopBarItemData("File") { p, b, x, y ->
53-
showMenuPopup(p, b, x, y)
48+
TopBarItemData("File") { p, b, e, x, y ->
49+
showMenuPopup(p, b, e, x, y)
5450
},
55-
TopBarItemData("Edit") { p, b, x, y ->
56-
showMenuPopup(p, b, x, y)
51+
TopBarItemData("Edit") { p, b, e, x, y ->
52+
//showMenuPopup(p, b, e, x, y)
5753
},
58-
TopBarItemData("Sketch") { p, b, x, y ->
59-
showMenuPopup(p, b, x, y)
54+
TopBarItemData("Sketch") { p, b, e, x, y ->
55+
//showMenuPopup(p, b, e, x, y)
6056
},
61-
TopBarItemData("Debug") { p, b, x, y ->
62-
showMenuPopup(p, b, x, y)
57+
TopBarItemData("Debug") { p, b, e, x, y ->
58+
//showMenuPopup(p, b, e, x, y)
6359
},
64-
TopBarItemData("Tools") { p, b, x, y ->
65-
showMenuPopup(p, b, x, y)
60+
TopBarItemData("Tools") { p, b, e, x, y ->
61+
//showMenuPopup(p, b, e, x, y)
6662
},
67-
TopBarItemData("Help") { p, b, x, y ->
68-
showMenuPopup(p, b, x, y)
63+
TopBarItemData("Help") { p, b, e, x, y ->
64+
//showMenuPopup(p, b, e, x, y)
6965
},
70-
TopBarItemData("Develop") { p, b, x, y ->
66+
TopBarItemData("Develop") { p, b, e, x, y ->
7167
showDevelopPopup(p, b, x, y)
7268
}
7369
)
@@ -85,7 +81,7 @@ fun TopBar(panel: ComposePanel, base: Base) {
8581
textColor = textColor,
8682
modifier = Modifier.weight(1f)
8783
) { x, y ->
88-
item.onClick(panel, base, x, y)
84+
item.onClick(panel, base, editor, x, y)
8985
}
9086
}
9187
}
@@ -128,6 +124,10 @@ private fun TopBarItem(
128124
}
129125
}
130126

127+
128+
129+
130+
///pop up menus///
131131
private fun showDevelopPopup(panel: ComposePanel, base: Base, x: Int, y: Int) {
132132
val popup = JPopupMenu()
133133

@@ -142,22 +142,78 @@ private fun showDevelopPopup(panel: ComposePanel, base: Base, x: Int, y: Int) {
142142
popup.show(panel, x, y)
143143
}
144144

145-
private fun showMenuPopup(panel: ComposePanel, base: Base, x: Int, y: Int) {
145+
private fun showMenuPopup(panel: ComposePanel, base: Base, editor: Editor, x: Int, y: Int) {
146146
val popup = JPopupMenu()
147147

148-
val fileNew = JMenuItem("New")
148+
val fileNew = Toolkit.newJMenuItem(Language.text("menu.file.new"), 'N'.code);
149149
fileNew.addActionListener {
150150
base.handleNew()
151151
}
152152
popup.add(fileNew);
153153

154-
val fileOpen = JMenuItem("Open")
154+
val fileOpen = Toolkit.newJMenuItem(Language.text("menu.file.open"), 'O'.code);
155155
fileOpen.addActionListener {
156156
base.handleOpenPrompt();
157157
}
158-
159158
popup.add(fileOpen);
160159

160+
val fileSketchbook = Toolkit.newJMenuItemShift(Language.text("menu.file.sketchbook"), 'K'.code);
161+
fileSketchbook.addActionListener {
162+
base.showSketchbookFrame()
163+
}
164+
popup.add(fileSketchbook);
165+
166+
val fileExamples = Toolkit.newJMenuItemShift(Language.text("menu.file.examples"), 'O'.code);
167+
fileExamples.addActionListener {
168+
base.showExamplesFrame()
169+
}
170+
popup.add(fileExamples);
171+
172+
val fileClose = Toolkit.newJMenuItem(Language.text("menu.file.close"), 'W'.code);
173+
fileClose.addActionListener {
174+
base.handleClose(editor, false);
175+
}
176+
popup.add(fileClose);
177+
178+
val fileSave = Toolkit.newJMenuItem(Language.text("menu.file.save"), 'S'.code)
179+
fileSave.addActionListener {
180+
editor.handleSave(false);
181+
}
182+
popup.add(fileSave);
183+
184+
val fileSaveAs = Toolkit.newJMenuItemShift(Language.text("menu.file.save_as"), 'S'.code);
185+
fileSaveAs.addActionListener {
186+
editor.handleSaveAs();
187+
}
188+
popup.add(fileSaveAs);
189+
190+
val filePageSetup = Toolkit.newJMenuItemShift(Language.text("menu.file.page_setup"), 'P'.code);
191+
filePageSetup.addActionListener {
192+
editor.handlePageSetup();
193+
}
194+
popup.add(filePageSetup);
195+
196+
val filePrint = Toolkit.newJMenuItem(Language.text("menu.file.print"), 'P'.code);
197+
filePrint.addActionListener {
198+
editor.handlePrint();
199+
}
200+
popup.add(filePrint);
201+
202+
203+
// UNDER MAC OS ONLY SECTION /// - will have to deal with this.
204+
val filePreferences = Toolkit.newJMenuItem(Language.text("menu.file.preferences"), ','.code);
205+
filePreferences.addActionListener {
206+
base.handlePrefs()
207+
}
208+
popup.add(filePreferences);
209+
210+
val fileQuit = Toolkit.newJMenuItem(Language.text("menu.file.quit"), 'Q'.code);
211+
fileQuit.addActionListener {
212+
base.handleQuit()
213+
}
214+
popup.add(fileQuit);
215+
216+
//^^^ UNDER MAC OS ONLY SECTION ^^^/////
161217

162218

163219

@@ -166,12 +222,17 @@ private fun showMenuPopup(panel: ComposePanel, base: Base, x: Int, y: Int) {
166222

167223

168224

169-
fun mountTopBar(panel: ComposePanel, base: Base) {
225+
226+
///^^^ pop up menus ^^^////
227+
228+
229+
230+
fun mountTopBar(panel: ComposePanel, base: Base, editor: Editor) {
170231
val awtBg = Theme.getColor("toolbar.gradient.top") ?: AwtColor(107, 160, 204)
171232
panel.background = awtBg
172233

173234
panel.setContent {
174-
TopBar(panel, base)
235+
TopBar(panel, base, editor)
175236
}
176237
}
177238

app/src/processing/app/ui/Editor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public void windowDeactivated(WindowEvent e) {
229229

230230
rebuildModePopup();
231231
ComposePanel composeTopBar = new ComposePanel();
232-
ComposeTopBarBridge.mountTopBar(composeTopBar, base);
232+
ComposeTopBarBridge.mountTopBar(composeTopBar, base, this);
233233

234234

235235

0 commit comments

Comments
 (0)