allow mouse input for scrolling, don't update text area model when nothing has changed
2 * Copyright (c) 2008-2010, Matthias Mann
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
9 * * Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * * Neither the name of Matthias Mann nor the names of its contributors may
15 * be used to endorse or promote products derived from this software
16 * without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 import de.matthiasmann.twl.GUI;
33 import de.matthiasmann.twl.ScrollPane;
34 import de.matthiasmann.twl.renderer.lwjgl.LWJGLRenderer;
35 import de.matthiasmann.twl.theme.ThemeManager;
36 import org.lwjgl.opengl.Display;
37 import org.lwjgl.opengl.DisplayMode;
38 import org.lwjgl.opengl.GL11;
39 import test.TestUtils;
42 * @author Matthias Mann
44 public class NodeDemo {
46 public static void main(String[] args) {
48 Display.setDisplayMode(new DisplayMode(1024, 600));
50 Display.setTitle("TWL Node Demo");
51 Display.setVSyncEnabled(true);
53 NodeArea nodeArea = new NodeArea();
54 ScrollPane scrollPane = new ScrollPane(nodeArea);
55 scrollPane.setExpandContentSize(true);
57 LWJGLRenderer renderer = new LWJGLRenderer();
58 //renderer.setUseQuadsForLines(true);
59 GUI gui = new GUI(scrollPane, renderer);
61 ThemeManager theme = ThemeManager.createThemeManager(
62 NodeDemo.class.getResource("nodes.xml"), renderer);
63 gui.applyTheme(theme);
66 Node nodeSource = nodeArea.addNode("Source");
67 nodeSource.setPosition(50, 50);
68 Pad nodeSourceColor = nodeSource.addPad("Color", false);
69 Pad nodeSourceAlpha = nodeSource.addPad("Alpha", false);
71 Node nodeSink = nodeArea.addNode("Sink");
72 nodeSink.setPosition(350, 200);
73 Pad nodeSinkColor = nodeSink.addPad("Color", true);
75 nodeArea.addConnection(nodeSourceColor, nodeSinkColor);
77 while(!Display.isCloseRequested()) {
78 GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
86 } catch (Exception ex) {
87 TestUtils.showErrMsg(ex);