[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[platform-swt-dev] Adding functions to OS.JAVA
|
Hello,
I'm new to swt development. I'm having issues with adding a new gtk
wrapper to OS.java and was hoping someone could help?
@Fedora 20, gtk3.10
As part of the button-size issue (394534), I need to add an extra
wrapper to OS.java.
I followed instructions:
https://www.eclipse.org/swt/jnigen.php
However, I'm running into UnsatisfiedLinkError.
My steps:
1) Added the following to OS.java
/** @method flags=dynamic */
public static final native void _gtk_widget_set_margin_right(long
/*int*/ widget, int margin); //LINFO Margin ++ func.
public static final void gtk_widget_set_margin_right(long /*int*/
widget, int margin) {
lock.lock();
try {
_gtk_widget_set_margin_right(widget,margin);
} finally {
lock.unlock();
}
}
//Note, gtk_widget_set_margin_right is deprecated as of gtk3.12. But
since I'm using gtk3.10, for the time being I thought I'd use this guy
first.
2) Cleaned all projects
3) ran build.xml from org.eclipse.swt.gtk.linux.x86_64/build.xml
- the following were selected:
build.jars
build_libraries
Build fails with:
/home/lufimtse/git/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml:928:
The following error occurred while executing this line:
/home/lufimtse/git/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml:900:
javax.script.ScriptException: ReferenceError: "importClass" is not
defined in <eval> at line number 3
4) Open terminal. Export vars:
export JAVA_HOME=/usr/lib/jvm/java/
export GTK_VERSION=3.0
5) Re-build wrappers.
cd ~/git/eclipse.platform.swt/bundles/org.eclipse.swt/bin/library/
sh ./build.sh
6) Copy new .so's across:
cp -v
~/git/eclipse.platform.swt/bundles/org.eclipse.swt/bin/library/*.so
~/git/eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.x86_64/
When I attempt to run my program that calls the native function, I get
an unsatisfied link exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
org.eclipse.swt.internal.gtk.OS._gtk_widget_set_margin_right(JI)V
at org.eclipse.swt.internal.gtk.OS._gtk_widget_set_margin_right(Native
Method)
at
org.eclipse.swt.internal.gtk.OS.gtk_widget_set_margin_right(OS.java:14565)
at org.eclipse.swt.widgets.DateTime.createText(DateTime.java:139)
at org.eclipse.swt.widgets.DateTime.<init>(DateTime.java:122)
at
org.eclipse.swt.examples.controlexample.DateTimeTab.createExampleWidgets(DateTimeTab.java:65)
at
org.eclipse.swt.examples.controlexample.Tab.createTabFolderPage(Tab.java:1307)
at
org.eclipse.swt.examples.controlexample.ControlExample.<init>(ControlExample.java:60)
at
org.eclipse.swt.examples.controlexample.ControlExample.main(ControlExample.java:217)
Thoughts?
Thank you
Leo Ufimtsev | Red Hat