Sandbox-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
June 2012
- 1 participants
- 3 discussions
r553 - in textjfx/src/main: java/org/codelutin/jfx resources
by echatellier@users.nuiton.org 29 Jun '12
by echatellier@users.nuiton.org 29 Jun '12
29 Jun '12
Author: echatellier
Date: 2012-06-29 23:36:18 +0200 (Fri, 29 Jun 2012)
New Revision: 553
Url: http://nuiton.org/repositories/revision/sandbox/553
Log:
Fix application init.
Add test dialog.
Added:
textjfx/src/main/java/org/codelutin/jfx/ModalDialog.java
Modified:
textjfx/src/main/java/org/codelutin/jfx/MainView.java
textjfx/src/main/resources/MainView.fxml
Modified: textjfx/src/main/java/org/codelutin/jfx/MainView.java
===================================================================
--- textjfx/src/main/java/org/codelutin/jfx/MainView.java 2012-06-29 19:58:58 UTC (rev 552)
+++ textjfx/src/main/java/org/codelutin/jfx/MainView.java 2012-06-29 21:36:18 UTC (rev 553)
@@ -18,12 +18,16 @@
package org.codelutin.jfx;
import java.io.IOException;
+import java.net.URL;
import java.util.Arrays;
+import java.util.ResourceBundle;
import javafx.application.Application;
+import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
@@ -37,60 +41,83 @@
* @author ceric35
* Date : 7 mai 2012
*/
-public class MainView extends Application {
+public class MainView extends Application implements Initializable {
@FXML
protected TreeView treeView;
+ protected Stage primaryStage;
+
public static void main(String[] args) {
launch(args);
}
+ public void initialize(URL arg0, ResourceBundle arg1) {
+
+ final TreeItem<String> treeRoot = new TreeItem<String>("Root node");
+ treeRoot.getChildren().addAll(Arrays.asList(
+ new TreeItem<String>("Child Node 1"),
+ new TreeItem<String>("Child Node 2"),
+ new TreeItem<String>("Child Node 3")));
+
+ treeRoot.getChildren().get(2).getChildren().addAll(Arrays.asList(
+ new TreeItem<String>("Child Node 4"),
+ new TreeItem<String>("Child Node 5"),
+ new TreeItem<String>("Child Node 6"),
+ new TreeItem<String>("Child Node 7"),
+ new TreeItem<String>("Child Node 8"),
+ new TreeItem<String>("Child Node 9"),
+ new TreeItem<String>("Child Node 10"),
+ new TreeItem<String>("Child Node 11"),
+ new TreeItem<String>("Child Node 12")));
+ treeView.setRoot(treeRoot);
+
+ }
+
/*
* @see javafx.application.Application#start(javafx.stage.Stage)
*/
@Override
public void start(Stage primaryStage) throws Exception {
+ this.primaryStage = primaryStage;
primaryStage.setTitle("fxTimer");
Scene scene = (Scene)FXMLLoader.load(getClass().getResource("/MainView.fxml"));
primaryStage.setScene(scene);
primaryStage.sizeToScene();
+
+ /*primaryStage.setOnShown(new EventHandler<WindowEvent>() {
+ public void handle(WindowEvent arg0) {
+ loadTree(null);
+ }
+ });*/
+
primaryStage.show();
}
@FXML
protected void quit() {
- System.exit(0);
+ Platform.exit();
}
@FXML
protected void loadTree(ActionEvent event) {
- final TreeItem<String> treeRoot = new TreeItem<String>("Root node");
- treeRoot.getChildren().addAll(Arrays.asList(
- new TreeItem<String>("Child Node 1"),
- new TreeItem<String>("Child Node 2"),
- new TreeItem<String>("Child Node 3")));
-
- treeRoot.getChildren().get(2).getChildren().addAll(Arrays.asList(
- new TreeItem<String>("Child Node 4"),
- new TreeItem<String>("Child Node 5"),
- new TreeItem<String>("Child Node 6"),
- new TreeItem<String>("Child Node 7"),
- new TreeItem<String>("Child Node 8"),
- new TreeItem<String>("Child Node 9"),
- new TreeItem<String>("Child Node 10"),
- new TreeItem<String>("Child Node 11"),
- new TreeItem<String>("Child Node 12")));
- treeView.setRoot(treeRoot);
+
}
-
+
@FXML
+ protected void newTask(ActionEvent event) {
+ ModalDialog d = new ModalDialog(primaryStage);
+ }
+
+ @FXML
protected void showReport(ActionEvent event) throws IOException {
Stage newStage = new Stage();
Scene scene = (Scene)FXMLLoader.load(getClass().getResource("/ReportView.fxml"));
newStage.setScene(scene);
newStage.show();
}
+
+
}
Added: textjfx/src/main/java/org/codelutin/jfx/ModalDialog.java
===================================================================
--- textjfx/src/main/java/org/codelutin/jfx/ModalDialog.java (rev 0)
+++ textjfx/src/main/java/org/codelutin/jfx/ModalDialog.java 2012-06-29 21:36:18 UTC (rev 553)
@@ -0,0 +1,47 @@
+package org.codelutin.jfx;
+
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.scene.Group;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextField;
+import javafx.scene.paint.Color;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+
+public class ModalDialog {
+ Button btn;
+ TextField textfield;
+
+ public ModalDialog(final Stage stg) {
+ btn = new Button();
+
+ final Stage stage = new Stage();
+ //Initialize the Stage with type of modal
+ stage.initModality(Modality.APPLICATION_MODAL);
+ //Set the owner of the Stage
+ stage.initOwner(stg);
+ stage.setTitle("Top Stage With Modality");
+ Group root = new Group();
+ Scene scene = new Scene(root, 300, 250, Color.LIGHTGREEN);
+
+ btn.setOnAction(new EventHandler<ActionEvent>() {
+
+ public void handle(ActionEvent event) {
+ stage.hide();
+
+ }
+ });
+
+ btn.setLayoutX(100);
+ btn.setLayoutY(80);
+ btn.setText("OK");
+
+ root.getChildren().add(btn);
+ stage.setScene(scene);
+ stage.show();
+
+ }
+
+}
\ No newline at end of file
Modified: textjfx/src/main/resources/MainView.fxml
===================================================================
--- textjfx/src/main/resources/MainView.fxml 2012-06-29 19:58:58 UTC (rev 552)
+++ textjfx/src/main/resources/MainView.fxml 2012-06-29 21:36:18 UTC (rev 553)
@@ -23,15 +23,15 @@
</Menu>
<Menu text="Project">
<items>
- <MenuItem text="New _project" onAction="#loadTree"/>
- <MenuItem text="Edit project" onAction="#loadTree"/>
- <MenuItem text="Open/Close project" onAction="#loadTree"/>
- <MenuItem text="Delete project" onAction="#loadTree"/>
+ <MenuItem text="New _project" />
+ <MenuItem text="Edit project" />
+ <MenuItem text="Open/Close project" />
+ <MenuItem text="Delete project" />
</items>
</Menu>
<Menu text="Task">
<items>
- <MenuItem text="_New task" mnemonicParsing="true" />
+ <MenuItem text="_New task" mnemonicParsing="true" onAction="#newTask" />
<MenuItem text="Edit task"/>
<MenuItem text="Open/Close task"/>
<MenuItem text="Delete task"/>
1
0
r552 - in jnijnajntest/src/main/java/org/test: . testbridj testbridj/x11 testjna/unix
by echatellier@users.nuiton.org 29 Jun '12
by echatellier@users.nuiton.org 29 Jun '12
29 Jun '12
Author: echatellier
Date: 2012-06-29 21:58:58 +0200 (Fri, 29 Jun 2012)
New Revision: 552
Url: http://nuiton.org/repositories/revision/sandbox/552
Log:
Add benchmark code
Added:
jnijnajntest/src/main/java/org/test/GlobalBench.java
Modified:
jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java
jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java
jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java
Added: jnijnajntest/src/main/java/org/test/GlobalBench.java
===================================================================
--- jnijnajntest/src/main/java/org/test/GlobalBench.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/GlobalBench.java 2012-06-29 19:58:58 UTC (rev 552)
@@ -0,0 +1,46 @@
+package org.test;
+
+import org.test.testjni.IdleJNI;
+
+public class GlobalBench {
+
+ public static final int COUNT = 20000;
+
+ public static void main(String... args) {
+
+ System.loadLibrary("testidle");
+
+ IdleJNI idleJNI = new IdleJNI();
+ org.test.testjna.unix.UnixSystemInfo idleJNA = new org.test.testjna.unix.UnixSystemInfo();
+ org.test.testbridj.x11.UnixSystemInfo idleBridj = new org.test.testbridj.x11.UnixSystemInfo();
+
+ for (int j = 0; j < 10; j++) {
+
+ System.out.println("\nRunning test suite...");
+
+ // first call jni
+ long before = System.currentTimeMillis();
+ for (int i = 0; i < COUNT; i++) {
+ idleJNI.getIdleTime();
+ }
+ long after = System.currentTimeMillis();
+ System.out.println(String.format("JNI : %d call take %d ms", COUNT, after - before));
+
+ // second jna
+ before = System.currentTimeMillis();
+ for (int i = 0; i < COUNT; i++) {
+ idleJNA.getIdleTime();
+ }
+ after = System.currentTimeMillis();
+ System.out.println(String.format("JNA : %d call take %d ms", COUNT, after - before));
+
+ // third bridj
+ before = System.currentTimeMillis();
+ for (int i = 0; i < COUNT; i++) {
+ idleBridj.getIdleTime();
+ }
+ after = System.currentTimeMillis();
+ System.out.println(String.format("Bridj : %d call take %d ms", COUNT, after - before));
+ }
+ }
+}
Modified: jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java 2012-06-29 19:35:30 UTC (rev 551)
+++ jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java 2012-06-29 19:58:58 UTC (rev 552)
@@ -44,7 +44,7 @@
while (true) {
Thread.sleep(1000);
- long idle = idleBridj.getIdleTimeMillis();
+ long idle = idleBridj.getIdleTime();
System.out.println("Idle since " + idle + "ms");
}
}
Modified: jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java 2012-06-29 19:35:30 UTC (rev 551)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java 2012-06-29 19:58:58 UTC (rev 552)
@@ -4,7 +4,9 @@
import org.test.testbridj.x11.Xss.XScreenSaverInfo;
public class UnixSystemInfo {
- public long getIdleTimeMillis() {
+ public long getIdleTime() {
+
+ long idleTime = 0;
Display display = null;
Pointer<XScreenSaverInfo> pInfo = null;
@@ -17,7 +19,7 @@
"XSreenSaver extension not supported !");
}
- return pInfo.get().idle();
+ idleTime = pInfo.get().idle();
} finally {
if (pInfo != null) {
X11.XFree(pInfo);
@@ -27,5 +29,7 @@
X11.XCloseDisplay(display);
}
}
+
+ return idleTime;
}
}
Modified: jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java 2012-06-29 19:35:30 UTC (rev 551)
+++ jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java 2012-06-29 19:58:58 UTC (rev 552)
@@ -83,59 +83,34 @@
long idleTime = 0;
- // get X11 display
- X11.Display display = X11.INSTANCE.XOpenDisplay(null);
- if (display == null) {
- logger.error("Can't open X11 display");
- } else {
- // Display is opened
+ X11.Display display = null;
+ Xss.XScreenSaverInfo screenSaverInfo = null;
- // check if screensaver extension is enabled
- IntByReference eventBase = new IntByReference();
- IntByReference errorBase = new IntByReference();
+ try {
+ // get X11 display
+ display = X11.INSTANCE.XOpenDisplay(null);
+ // get root window
+ X11.Window rootWindow = X11.INSTANCE.XDefaultRootWindow(display);
- if (!Xss.INSTANCE.XScreenSaverQueryExtension(display, eventBase,
- errorBase)) {
- if (logger.isErrorEnabled()) {
- logger.error("Can't find xscreensaver extension, "
- + "idle time can't be detected");
- }
- } else {
- // screensaver is enabled
+ // FIX : without this, cause random NPE
+ screenSaverInfo = Xss.INSTANCE.XScreenSaverAllocInfo();
- Xss.XScreenSaverInfo screenSaverInfo = Xss.INSTANCE
- .XScreenSaverAllocInfo();
+ if (Xss.INSTANCE.XScreenSaverQueryInfo(display, rootWindow,
+ screenSaverInfo) == 0) {
+ throw new UnsupportedOperationException(
+ "XSreenSaver extension not supported !");
+ }
- if (screenSaverInfo == null) {
- logger.error("Could not alloc screen saver info");
- } else {
- // get root window
- X11.Window rootWindow = X11.INSTANCE
- .XDefaultRootWindow(display);
-
- if (rootWindow == null) {
- logger.error("Could not query root window");
- } else {
-
- // FIX : without this, cause random NPE
- screenSaverInfo.window = rootWindow;
-
- Xss.INSTANCE.XScreenSaverQueryInfo(display, rootWindow,
- screenSaverInfo);
- if (screenSaverInfo.idle == null) {
- logger.error("screenSaverInfo.idle is null");
- } else {
- idleTime = screenSaverInfo.idle.longValue();
- }
- }
- }
-
- // free resources
+ idleTime = screenSaverInfo.idle.longValue();
+ }
+ finally {
+ if (screenSaverInfo != null) {
X11.INSTANCE.XFree(screenSaverInfo.getPointer());
}
-
- // free resources
- X11.INSTANCE.XCloseDisplay(display);
+ if (display != null) {
+ // free resources
+ X11.INSTANCE.XCloseDisplay(display);
+ }
}
return idleTime;
1
0
r551 - in jnijnajntest: . src/main/java/org/test src/main/java/org/test/testbridj src/main/java/org/test/testbridj/x11 src/main/java/org/test/testjna/unix
by echatellier@users.nuiton.org 29 Jun '12
by echatellier@users.nuiton.org 29 Jun '12
29 Jun '12
Author: echatellier
Date: 2012-06-29 21:35:30 +0200 (Fri, 29 Jun 2012)
New Revision: 551
Url: http://nuiton.org/repositories/revision/sandbox/551
Log:
Add bridj native libs call test
Added:
jnijnajntest/src/main/java/org/test/testbridj/
jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java
jnijnajntest/src/main/java/org/test/testbridj/x11/
jnijnajntest/src/main/java/org/test/testbridj/x11/Display.java
jnijnajntest/src/main/java/org/test/testbridj/x11/Drawable.java
jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java
jnijnajntest/src/main/java/org/test/testbridj/x11/Window.java
jnijnajntest/src/main/java/org/test/testbridj/x11/X11.java
jnijnajntest/src/main/java/org/test/testbridj/x11/Xss.java
Modified:
jnijnajntest/pom.xml
jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java
Modified: jnijnajntest/pom.xml
===================================================================
--- jnijnajntest/pom.xml 2012-05-30 17:51:18 UTC (rev 550)
+++ jnijnajntest/pom.xml 2012-06-29 19:35:30 UTC (rev 551)
@@ -35,5 +35,11 @@
<version>1.0.0</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>com.nativelibs4java</groupId>
+ <artifactId>bridj</artifactId>
+ <version>0.6.1</version>
+ <scope>compile</scope>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Added: jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/TestIdleBridj.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,51 @@
+/*
+ * #%L
+ *
+ *
+ * $Id: TestIdleJNA.java 533 2012-05-02 09:23:30Z echatellier $
+ * $HeadURL: http://svn.nuiton.org/svn/sandbox/jnijnajntest/src/main/java/org/test/testj… $
+ * %%
+ * Copyright (C) 2012 Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+
+package org.test.testbridj;
+
+import org.test.testbridj.x11.UnixSystemInfo;
+
+/**
+ * TODO add comment here.
+ *
+ * @author chatellier
+ * @version $Revision: 533 $
+ *
+ * Last update : $Date: 2012-05-02 11:23:30 +0200 (mer., 02 mai 2012) $
+ * By : $Author: echatellier $
+ */
+public class TestIdleBridj {
+
+ public static void main(String... args) throws InterruptedException {
+
+ UnixSystemInfo idleBridj = new UnixSystemInfo();
+ while (true) {
+ Thread.sleep(1000);
+
+ long idle = idleBridj.getIdleTimeMillis();
+ System.out.println("Idle since " + idle + "ms");
+ }
+ }
+}
Added: jnijnajntest/src/main/java/org/test/testbridj/x11/Display.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/Display.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/Display.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,8 @@
+package org.test.testbridj.x11;
+import org.bridj.Pointer;
+import org.bridj.TypedPointer;
+
+public class Display extends TypedPointer {
+ public Display(long peer) { super(peer); }
+ public Display(Pointer<?> ptr) { super(ptr); }
+}
Added: jnijnajntest/src/main/java/org/test/testbridj/x11/Drawable.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/Drawable.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/Drawable.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,8 @@
+package org.test.testbridj.x11;
+import org.bridj.Pointer;
+import org.bridj.TypedPointer;
+
+public class Drawable extends TypedPointer {
+ public Drawable(long peer) { super(peer); }
+ public Drawable(Pointer<?> ptr) { super(ptr); }
+}
Added: jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/UnixSystemInfo.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,31 @@
+package org.test.testbridj.x11;
+
+import org.bridj.Pointer;
+import org.test.testbridj.x11.Xss.XScreenSaverInfo;
+
+public class UnixSystemInfo {
+ public long getIdleTimeMillis() {
+ Display display = null;
+ Pointer<XScreenSaverInfo> pInfo = null;
+
+ try {
+ display = X11.XOpenDisplay(null);
+ Window window = X11.XDefaultRootWindow(display);
+ pInfo = Xss.XScreenSaverAllocInfo();
+ if (Xss.XScreenSaverQueryInfo(display, window, pInfo) == 0) {
+ throw new UnsupportedOperationException(
+ "XSreenSaver extension not supported !");
+ }
+
+ return pInfo.get().idle();
+ } finally {
+ if (pInfo != null) {
+ X11.XFree(pInfo);
+ }
+
+ if (display != null) {
+ X11.XCloseDisplay(display);
+ }
+ }
+ }
+}
Added: jnijnajntest/src/main/java/org/test/testbridj/x11/Window.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/Window.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/Window.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,7 @@
+package org.test.testbridj.x11;
+import org.bridj.Pointer;
+
+public class Window extends Drawable {
+ public Window(long peer) { super(peer); }
+ public Window(Pointer<?> ptr) { super(ptr); }
+}
Added: jnijnajntest/src/main/java/org/test/testbridj/x11/X11.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/X11.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/X11.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,15 @@
+package org.test.testbridj.x11;
+import org.bridj.BridJ;
+import org.bridj.Pointer;
+import org.bridj.ann.Library;
+
+@Library("X11")
+public class X11 {
+ static {
+ BridJ.register();
+ }
+ public static native Display XOpenDisplay(Pointer<Byte> name);
+ public static native Window XDefaultRootWindow(Display display);
+ public static native int XFree(Pointer data);
+ public static native int XCloseDisplay(Display display);
+}
Added: jnijnajntest/src/main/java/org/test/testbridj/x11/Xss.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testbridj/x11/Xss.java (rev 0)
+++ jnijnajntest/src/main/java/org/test/testbridj/x11/Xss.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -0,0 +1,105 @@
+package org.test.testbridj.x11;
+import org.bridj.BridJ;
+import org.bridj.Pointer;
+import org.bridj.StructObject;
+import org.bridj.ann.Field;
+import org.bridj.ann.Library;
+import org.bridj.ann.Ptr;
+
+@Library("Xss")
+public class Xss {
+ static {
+ BridJ.register();
+ }
+ public static class XScreenSaverInfo extends StructObject {
+ public XScreenSaverInfo() {
+ super();
+ }
+ public XScreenSaverInfo(Pointer pointer) {
+ super(pointer);
+ }
+ /**
+ * screen saver window<br>
+ * C type : Window
+ */
+ @Ptr
+ @Field(0)
+ public long window() {
+ return this.io.getSizeTField(this, 0);
+ }
+ /**
+ * screen saver window<br>
+ * C type : Window
+ */
+ @Ptr
+ @Field(0)
+ public XScreenSaverInfo window(long window) {
+ this.io.setSizeTField(this, 0, window);
+ return this;
+ }
+ /// ScreenSaver{Off,On,Disabled}
+ @Field(1)
+ public int state() {
+ return this.io.getIntField(this, 1);
+ }
+ /// ScreenSaver{Off,On,Disabled}
+ @Field(1)
+ public XScreenSaverInfo state(int state) {
+ this.io.setIntField(this, 1, state);
+ return this;
+ }
+ /// ScreenSaver{Blanked,Internal,External}
+ @Field(2)
+ public int kind() {
+ return this.io.getIntField(this, 2);
+ }
+ /// ScreenSaver{Blanked,Internal,External}
+ @Field(2)
+ public XScreenSaverInfo kind(int kind) {
+ this.io.setIntField(this, 2, kind);
+ return this;
+ }
+ /// milliseconds
+ @org.bridj.ann.CLong
+ @Field(3)
+ public long til_or_since() {
+ return this.io.getCLongField(this, 3);
+ }
+ /// milliseconds
+ @org.bridj.ann.CLong
+ @Field(3)
+ public XScreenSaverInfo til_or_since(long til_or_since) {
+ this.io.setCLongField(this, 3, til_or_since);
+ return this;
+ }
+ /// milliseconds
+ @org.bridj.ann.CLong
+ @Field(4)
+ public long idle() {
+ return this.io.getCLongField(this, 4);
+ }
+ /// milliseconds
+ @org.bridj.ann.CLong
+ @Field(4)
+ public XScreenSaverInfo idle(long idle) {
+ this.io.setCLongField(this, 4, idle);
+ return this;
+ }
+ /// events
+ @org.bridj.ann.CLong
+ @Field(5)
+ public long event_mask() {
+ return this.io.getCLongField(this, 5);
+ }
+ /// events
+ @org.bridj.ann.CLong
+ @Field(5)
+ public XScreenSaverInfo event_mask(long event_mask) {
+ this.io.setCLongField(this, 5, event_mask);
+ return this;
+ }
+ }
+
+ public static native Pointer<XScreenSaverInfo> XScreenSaverAllocInfo();
+ public static native int XScreenSaverQueryInfo(Display dpy, Drawable drawable, Pointer<XScreenSaverInfo> saver_info);
+}
Modified: jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java
===================================================================
--- jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java 2012-05-30 17:51:18 UTC (rev 550)
+++ jnijnajntest/src/main/java/org/test/testjna/unix/UnixSystemInfo.java 2012-06-29 19:35:30 UTC (rev 551)
@@ -131,8 +131,7 @@
}
// free resources
- // TODO should be freed
- //X11.INSTANCE.XFree(screenSaverInfo);
+ X11.INSTANCE.XFree(screenSaverInfo.getPointer());
}
// free resources
1
0