/[classpath]/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
ViewVC logotype

Diff of /classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by fitzsim, Thu Sep 25 18:44:19 2003 UTC revision 1.11 by fitzsim, Thu Oct 2 18:39:55 2003 UTC
# Line 43  exception statement from your version. * Line 43  exception statement from your version. *
43  #include <gdk/gdkx.h>  #include <gdk/gdkx.h>
44    
45  /*  /*
46   * Make a new window (any type)   * Make a new window.
47   */   */
48    
49  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
50  Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create  Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
51    (JNIEnv *env, jobject obj, jint type, jint width, jint height)    (JNIEnv *env, jobject obj, jint type, jboolean decorated,
52       jint width, jint height, jobject parent)
53  {  {
54    GtkWidget *window;    GtkWidget *window_widget;
55      GtkWindow *window;
56      void *window_parent;
57    GtkWidget *vbox, *layout;    GtkWidget *vbox, *layout;
58    
59    gdk_threads_enter ();    gdk_threads_enter ();
60    window = gtk_window_new (type);    window_widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
61      window = GTK_WINDOW (window_widget);
62    
63    gtk_window_set_default_size (GTK_WINDOW(window), width, height);    gtk_window_set_default_size (window, width, height);
64    
65    /* We must set this window's size requisition.  Otherwise when a    /* We must set this window's size requisition.  Otherwise when a
66       resize is queued (when gtk_widget_queue_resize is called) the       resize is queued (when gtk_widget_queue_resize is called) the
# Line 65  Java_gnu_java_awt_peer_gtk_GtkWindowPeer Line 69  Java_gnu_java_awt_peer_gtk_GtkWindowPeer
69       when their resizable property changes. */       when their resizable property changes. */
70    gtk_widget_set_size_request (window, width, height);    gtk_widget_set_size_request (window, width, height);
71    
72      /* Keep this window in front of its parent, if it has one. */
73      if (parent)
74        {
75          window_parent = NSA_GET_PTR (env, parent);
76          gtk_window_set_transient_for (window, GTK_WINDOW(window_parent));
77        }
78    
79      gtk_window_set_decorated (window, decorated);
80    
81      gtk_window_set_type_hint (window, type);
82    
83    vbox = gtk_vbox_new (0, 0);    vbox = gtk_vbox_new (0, 0);
84    layout = gtk_layout_new (NULL, NULL);    layout = gtk_layout_new (NULL, NULL);
85    gtk_box_pack_end (GTK_BOX (vbox), layout, 1, 1, 0);    gtk_box_pack_end (GTK_BOX (vbox), layout, 1, 1, 0);
86    gtk_container_add (GTK_CONTAINER (window), vbox);    gtk_container_add (GTK_CONTAINER (window_widget), vbox);
87    
88    gtk_widget_show (layout);    gtk_widget_show (layout);
89    gtk_widget_show (vbox);    gtk_widget_show (vbox);
90    
91    gdk_threads_leave ();    gdk_threads_leave ();
92    
93    NSA_SET_PTR (env, obj, window);    NSA_SET_PTR (env, obj, window_widget);
94  }  }
95    
96  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisible  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisible
# Line 218  Java_gnu_java_awt_peer_gtk_GtkWindowPeer Line 233  Java_gnu_java_awt_peer_gtk_GtkWindowPeer
233    gdk_threads_leave ();    gdk_threads_leave ();
234  }  }
235    
236  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setBounds  JNIEXPORT void JNICALL
237    (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)  Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setBoundsCallback
238      (JNIEnv *env, jobject obj, jobject window,
239       jint x, jint y, jint width, jint height)
240  {  {
241    void *ptr;    /* Circumvent package-private access to call Window's
242    GtkWidget *widget;       setBoundsCallback method. */
243      (*gdk_env)->CallVoidMethod (gdk_env, window, setBoundsCallbackID,
244                                  x, y, width, height);
245    }
246    
247    ptr = NSA_GET_PTR (env, obj);  JNIEXPORT void JNICALL
248    Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize
249      (JNIEnv *env, jobject obj, jint width, jint height)
250    {
251      void *ptr = NSA_GET_PTR (env, obj);
252    
253    gdk_threads_enter ();    gdk_threads_enter ();
254      gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height);
255      gdk_threads_leave ();
256    }
257    
258    widget = GTK_WIDGET (ptr);  JNIEXPORT void JNICALL
259    gtk_widget_set_size_request (widget, width, height);  Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBounds
260    gtk_window_resize (GTK_WINDOW(widget), width, height);    (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
261    {
262      void *ptr = NSA_GET_PTR (env, obj);
263    
264      gdk_threads_enter ();
265      gtk_window_move (GTK_WINDOW(ptr), x, y);
266      /* Need to change the widget's request size. */
267      gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height);
268      /* Also need to call gtk_window_resize.  If the resize is requested
269         by the program and the window's "resizable" property is true then
270         the size request will not be honoured. */
271      gtk_window_resize (GTK_WINDOW (ptr), width, height);
272    gdk_threads_leave ();    gdk_threads_leave ();
273  }  }
274    

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26