source: trunk/gcc/libjava/gnu/awt/gtk/natGtkLabelPeer.cc

Last change on this file was 2, checked in by bird, 22 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.3 KB
Line 
1// Native Gtk AWT label code.
2
3#include <config.h>
4
5#include <gcj/cni.h>
6
7#include "gtkcommon.h"
8
9#include <gnu/awt/gtk/GtkLabelPeer.h>
10#include <java/awt/Label.h>
11
12void
13gnu::awt::gtk::GtkLabelPeer::setText (java::lang::String *text)
14{
15 _Jv_GdkThreadLock sync;
16 jsize len = 0;
17 if (text)
18 len = JvGetStringUTFLength (text);
19 // FIXME: this can allocate an unbounded amount. Should use heap
20 // even though it is slower.
21 char buf[len + 1];
22 if (text)
23 JvGetStringUTFRegion (text, 0, len, buf);
24 buf[len] = '\0';
25 gtk_label_set_text (GTK_LABEL (ptr), buf);
26}
27
28void
29gnu::awt::gtk::GtkLabelPeer::setAlignment (jint alignment)
30{
31 using namespace java::awt;
32
33 gfloat value = 0.5;
34 if (alignment == Label::LEFT)
35 value = 0.0;
36 else if (alignment == Label::RIGHT)
37 value = 1.0;
38
39 _Jv_GdkThreadLock sync;
40 gtk_misc_set_alignment (GTK_MISC (ptr), 0.5f, value);
41}
42
43void
44gnu::awt::gtk::GtkLabelPeer::create ()
45{
46 if (! ptr)
47 {
48 _Jv_GdkThreadLock sync;
49 // This is a little inefficient.
50 ptr = (gnu::gcj::RawData *) gtk_label_new ("");
51
52 using namespace ::java::awt;
53 Label *label = reinterpret_cast<Label *> (awtComponent);
54 setText (label->getText ());
55 setAlignment (label->getAlignment ());
56 }
57
58 gnu::awt::gtk::GtkComponentPeer::create ();
59}
Note: See TracBrowser for help on using the repository browser.