aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/awt/gtk/natGtkToolkit.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/awt/gtk/natGtkToolkit.cc')
-rw-r--r--libjava/gnu/awt/gtk/natGtkToolkit.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/libjava/gnu/awt/gtk/natGtkToolkit.cc b/libjava/gnu/awt/gtk/natGtkToolkit.cc
new file mode 100644
index 0000000..e794939
--- /dev/null
+++ b/libjava/gnu/awt/gtk/natGtkToolkit.cc
@@ -0,0 +1,75 @@
+// This file was created by `gcjh -stubs'. -*- c++ -*-
+//
+// This file is intended to give you a head start on implementing native
+// methods using CNI.
+// Be aware: running `gcjh -stubs ' once more for this class may
+// overwrite any edits you have made to this file.
+
+#include <java/awt/Dimension.h>
+
+#include <gnu/awt/gtk/GtkToolkit.h>
+#include <gcj/cni.h>
+
+#include <gtk/gtk.h>
+
+
+// GTK requires the program's argc and argv variables.
+extern char **_Jv_argv;
+extern int _Jv_argc;
+
+// Call gtk_init. It is very important that this happen before any other
+// gtk calls.
+void
+gnu::awt::gtk::GtkToolkit::gtkInit ()
+{
+ // Initialize GLib in thread-safe mode. We assume that GLib is using the
+ // same native threads library as libgcj. Refer to comments in
+ // GtkComponentPeer constructor.
+ g_thread_init (NULL);
+ gtk_init (&_Jv_argc, &_Jv_argv);
+}
+
+void
+gnu::awt::gtk::GtkToolkit::beep ()
+{
+ GDK_THREADS_ENTER ();
+ gdk_beep ();
+ GDK_THREADS_LEAVE ();
+}
+
+jint
+gnu::awt::gtk::GtkToolkit::getScreenResolution ()
+{
+ jint res;
+
+ GDK_THREADS_ENTER ();
+
+ res = (int) (gdk_screen_width () / (gdk_screen_width_mm () / 25.4));
+
+ GDK_THREADS_LEAVE ();
+ return res;
+}
+
+::java::awt::Dimension *
+gnu::awt::gtk::GtkToolkit::getScreenSize ()
+{
+ ::java::awt::Dimension *dim = new ::java::awt::Dimension ();
+
+ GDK_THREADS_ENTER ();
+
+ dim->width = gdk_screen_width ();
+ dim->height = gdk_screen_height ();
+
+ GDK_THREADS_LEAVE ();
+ return dim;
+}
+
+void
+gnu::awt::gtk::GtkToolkit::sync ()
+{
+ GDK_THREADS_ENTER ();
+ gdk_flush ();
+ GDK_THREADS_LEAVE ();
+}
+
+