2023-05-09 13:25:39 +02:00
|
|
|
<!DOCTYPE html>
|
2019-03-21 09:57:27 +01:00
|
|
|
<html lang="en">
|
2023-05-09 13:25:39 +02:00
|
|
|
<head>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
<title>PIXI PopupMenu</title>
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
<link rel="stylesheet" href=".././3rdparty/highlight/styles/default.css" />
|
|
|
|
<link rel="stylesheet" href="../../css/doctest.css" />
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
<script src="../3rdparty/highlight/highlight.pack.js"></script>
|
|
|
|
<script src="../../dist/iwmlib.3rdparty.js"></script>
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
<script src="../../dist/iwmlib.js"></script>
|
|
|
|
<script src="../../dist/iwmlib.pixi.js"></script>
|
|
|
|
</head>
|
|
|
|
<body onload="Doctest.run()">
|
|
|
|
<h1><a href="../index.html">lib.</a><a href="index.html">pixi.</a>PopupMenu</h1>
|
|
|
|
<p>
|
|
|
|
A popup menu is a menu in a graphical user interface (GUI) that appears upon user interaction, such as a
|
|
|
|
click or touch operation. A context menu offers a limited set of choices that are available in the current
|
|
|
|
state, or context, of the application to which the menu belongs. Usually the available choices are actions
|
|
|
|
related to the selected object.
|
|
|
|
</p>
|
|
|
|
<p>Let's look at some popup menu examples:</p>
|
|
|
|
<br />
|
|
|
|
<canvas id="canvas" class="interactive"></canvas>
|
|
|
|
<p>What you should see: Some buttons whichs open popup menues.</p>
|
|
|
|
<script class="doctest">
|
|
|
|
const app = new PIXIApp({
|
|
|
|
view: canvas,
|
|
|
|
width: 900,
|
|
|
|
height: 250
|
|
|
|
})
|
|
|
|
.setup()
|
|
|
|
.run()
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
app.loadSprites(
|
|
|
|
[
|
|
|
|
'./assets/popupmenu-1.jpg',
|
|
|
|
'./assets/popupmenu-2.jpg',
|
|
|
|
'./assets/popupmenu-3.jpg',
|
|
|
|
'./assets/popupmenu-4.jpg',
|
|
|
|
'./assets/popupmenu-5.jpg'
|
|
|
|
],
|
|
|
|
(sprites) => {
|
|
|
|
const buttonGroup1 = new ButtonGroup({
|
|
|
|
buttons: [
|
|
|
|
{
|
|
|
|
icon: 'looks_1',
|
|
|
|
action: () => {
|
|
|
|
const popupmenu = new PopupMenu({
|
|
|
|
items: [
|
|
|
|
{ label: 'Speichern', action: () => alert('Gespeichert') },
|
|
|
|
{ label: 'Editieren', action: () => alert('Editiert') },
|
|
|
|
{ label: 'Löschen', action: () => alert('Gelöscht'), disabled: true }
|
|
|
|
]
|
|
|
|
})
|
|
|
|
app.scene.addChild(popupmenu)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
icon: 'looks_2',
|
|
|
|
action: () => {
|
|
|
|
const popupmenu = new PopupMenu({
|
|
|
|
closeButton: true,
|
|
|
|
closeOnPopup: false,
|
|
|
|
closeOnAction: true,
|
|
|
|
items: [
|
|
|
|
{ label: 'Option 1' },
|
|
|
|
{ label: 'Option 2' },
|
|
|
|
{ label: 'Option 3', action: () => {} },
|
|
|
|
{ label: 'Option 4', action: () => {} },
|
|
|
|
{ label: 'Option 5' },
|
|
|
|
{ label: 'Option 6' }
|
|
|
|
]
|
|
|
|
})
|
|
|
|
popupmenu.x = 400
|
|
|
|
app.scene.addChild(popupmenu)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
icon: 'looks_3',
|
|
|
|
action: () => {
|
|
|
|
const popupmenu = new PopupMenu({
|
|
|
|
items: [
|
|
|
|
{ label: 'Option 01', textStyle: { fill: 0x637a38, fontSize: 14 } },
|
|
|
|
{ label: 'Option 02', textStyle: { fill: 0x8ca351, fontSize: 14 } },
|
|
|
|
{ label: 'Option 03', textStyle: { fill: 0xb5d16a, fontSize: 14 } },
|
|
|
|
{ label: 'Option 04', textStyle: { fill: 0xcedc9c, fontSize: 14 } },
|
|
|
|
{ label: 'Option 05', textStyle: { fill: 0x8c6e31, fontSize: 14 } },
|
|
|
|
{ label: 'Option 06', textStyle: { fill: 0xbda038, fontSize: 14 } },
|
|
|
|
{ label: 'Option 07', textStyle: { fill: 0xe7bc51, fontSize: 14 } },
|
|
|
|
{ label: 'Option 08', textStyle: { fill: 0xe7cc94, fontSize: 14 } },
|
|
|
|
{ label: 'Option 09', textStyle: { fill: 0x843d39, fontSize: 14 } },
|
|
|
|
{ label: 'Option 10', textStyle: { fill: 0xae4a4a, fontSize: 14 } },
|
|
|
|
{ label: 'Option 11', textStyle: { fill: 0xd7626c, fontSize: 14 } },
|
|
|
|
{ label: 'Option 12', textStyle: { fill: 0xe8979c, fontSize: 14 } }
|
|
|
|
],
|
|
|
|
x: 155,
|
|
|
|
margin: 2
|
|
|
|
})
|
|
|
|
app.scene.addChild(popupmenu)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
icon: 'looks_4',
|
|
|
|
action: () => {
|
|
|
|
sprites.forEach((sprite) => sprite.scale.set(0.33, 0.33))
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
const popupmenu = new PopupMenu({
|
|
|
|
items: [
|
|
|
|
{ content: sprites.get('./assets/popupmenu-1.jpg') },
|
|
|
|
{ content: sprites.get('./assets/popupmenu-2.jpg') },
|
|
|
|
{ content: sprites.get('./assets/popupmenu-3.jpg') },
|
|
|
|
{ content: sprites.get('./assets/popupmenu-4.jpg') },
|
|
|
|
{ content: sprites.get('./assets/popupmenu-5.jpg') }
|
|
|
|
],
|
|
|
|
x: 220,
|
|
|
|
margin: 2,
|
|
|
|
padding: 2
|
|
|
|
})
|
|
|
|
app.scene.addChild(popupmenu)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
})
|
2019-03-21 09:57:27 +01:00
|
|
|
|
2023-05-09 13:25:39 +02:00
|
|
|
app.scene.addChild(buttonGroup1)
|
|
|
|
},
|
|
|
|
{ resolutionDependent: false }
|
|
|
|
)
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|