⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gnu_java_awt_peer_gtk_gdkgraphics.c

📁 gcc的组建
💻 C
📖 第 1 页 / 共 2 页
字号:
  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_fillRect  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_rectangle (g->drawable, g->gc, TRUE, 		      x + g->x_offset, y + g->y_offset, width, height);  gdk_flush ();  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_drawRect  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_rectangle (g->drawable, g->gc, FALSE, 		      x + g->x_offset, y + g->y_offset, width, height);  gdk_flush ();  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_copyArea  (JNIEnv *env, jobject obj, jint x, jint y,    jint width, jint height, jint dx, jint dy){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_drawable ((GdkWindow *)g->drawable,		     g->gc,		     (GdkWindow *)g->drawable,		     x + g->x_offset, y + g->y_offset,		     x + g->x_offset + dx, y + g->y_offset + dy,		     width, height);  gdk_flush ();  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_clearRect  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height){  struct graphics *g = NULL;  GdkGCValues saved;  GtkWidget *widget = NULL;  union widget_union w;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  if (!g)    {      gdk_threads_leave ();      return;    }  if (GDK_IS_WINDOW (g->drawable))    {      w.widget = &widget;      gdk_window_get_user_data (GDK_WINDOW (g->drawable), w.void_widget);      if (widget == NULL || !GTK_IS_EVENT_BOX (widget))        gdk_window_clear_area ((GdkWindow *) g->drawable,                               x + g->x_offset, y + g->y_offset,                               width, height);    }  else    {      gdk_gc_get_values (g->gc, &saved);      gdk_gc_set_foreground (g->gc, &(saved.background));      gdk_draw_rectangle (g->drawable, g->gc, TRUE, 			  x + g->x_offset, y + g->y_offset, width, height);      gdk_gc_set_foreground (g->gc, &(saved.foreground));    }  gdk_flush ();  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_setFunction  (JNIEnv *env, jobject obj, jint func){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_gc_set_function (g->gc, func);  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor  (JNIEnv *env, jobject obj, jint red, jint green, jint blue){  GdkColor color;  struct graphics *g = NULL;  gdk_threads_enter ();  color.red = red << 8;  color.green = green << 8;  color.blue = blue << 8;  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_colormap_alloc_color (g->cm, &color, TRUE, TRUE);  gdk_gc_set_foreground (g->gc, &color);  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_drawArc  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height,    jint angle1, jint angle2){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_arc (g->drawable, g->gc, FALSE, 		x + g->x_offset, y + g->y_offset, 		width, height, angle1 << 6, angle2 << 6);  gdk_flush ();  gdk_threads_leave ();}  static GdkPoint *translate_points (JNIEnv *env, jintArray xpoints, jintArray ypoints, 		  jint npoints, jint x_offset, jint y_offset){  GdkPoint *points;  jint *x, *y;  int i;  /* allocate one more point than necessary, in case we need to tack     on an extra due to the semantics of Java polygons. */  points = g_malloc (sizeof (GdkPoint) * (npoints + 1));    x = (*env)->GetIntArrayElements (env, xpoints, NULL);  y = (*env)->GetIntArrayElements (env, ypoints, NULL);  for (i = 0; i < npoints; i++)    {      points[i].x = x[i] + x_offset;      points[i].y = y[i] + y_offset;    }  (*env)->ReleaseIntArrayElements (env, xpoints, x, JNI_ABORT);  (*env)->ReleaseIntArrayElements (env, ypoints, y, JNI_ABORT);  return points;}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_drawPolyline  (JNIEnv *env, jobject obj, jintArray xpoints, jintArray ypoints,    jint npoints){  struct graphics *g = NULL;  GdkPoint *points = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  points = translate_points (env, xpoints, ypoints, npoints,			     g->x_offset, g->y_offset);  gdk_draw_lines (g->drawable, g->gc, points, npoints);  gdk_flush ();  g_free (points);  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_drawPolygon  (JNIEnv *env, jobject obj, jintArray xpoints, jintArray ypoints,    jint npoints){  struct graphics *g = NULL;  GdkPoint *points = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  points = translate_points (env, xpoints, ypoints, npoints,			     g->x_offset, g->y_offset);  /* make sure the polygon is closed, per Java semantics.     if it's not, we close it. */  if (points[0].x != points[npoints-1].x || points[0].y != points[npoints-1].y)    points[npoints++] = points[0];  gdk_draw_lines (g->drawable, g->gc, points, npoints);  gdk_flush ();  g_free (points);  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_fillPolygon  (JNIEnv *env, jobject obj, jintArray xpoints, jintArray ypoints,    jint npoints){  struct graphics *g = NULL;  GdkPoint *points = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  points = translate_points (env, xpoints, ypoints, npoints,			     g->x_offset, g->y_offset);  gdk_draw_polygon (g->drawable, g->gc, TRUE, points, npoints);  gdk_flush ();  g_free (points);  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_fillArc  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height,    jint angle1, jint angle2){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_arc (g->drawable, g->gc, TRUE, 		x + g->x_offset, y + g->y_offset, 		width, height, angle1 << 6, angle2 << 6);  gdk_flush ();  gdk_threads_leave ();}  JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_drawOval  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_arc (g->drawable, g->gc, FALSE, 		x + g->x_offset, y + g->y_offset, 		width, height, 0, 23040);  gdk_flush ();  gdk_threads_leave ();}  JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_fillOval  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height){  struct graphics *g = NULL;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  gdk_draw_arc (g->drawable, g->gc, TRUE, 		x + g->x_offset, y + g->y_offset, 		width, height, 0, 23040);  gdk_flush ();  gdk_threads_leave ();}JNIEXPORT void JNICALLJava_gnu_java_awt_peer_gtk_GdkGraphics_setClipRectangle  (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height){  struct graphics *g = NULL;  GdkRectangle rectangle;  gdk_threads_enter ();  g = (struct graphics *) NSA_GET_G_PTR (env, obj);  rectangle.x = x + g->x_offset;  rectangle.y = y + g->y_offset;  rectangle.width = width;  rectangle.height = height;  gdk_gc_set_clip_rectangle (g->gc, &rectangle);  gdk_threads_leave ();}static voidrealize_cb (GtkWidget *widget __attribute__ ((unused)), jobject jgraphics){  (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(),                                       jgraphics,                                       initComponentGraphicsUnlockedID);  NSA_DEL_GLOBAL_G_REF (cp_gtk_gdk_env(), jgraphics);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -