aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/awt/Scrollbar.java
diff options
context:
space:
mode:
authorThomas Fitzsimmons <fitzsim@redhat.com>2004-02-05 19:45:02 +0000
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>2004-02-05 19:45:02 +0000
commitbc1ec7f70ec091fc96ffc8460172a005b61afb2b (patch)
tree295071a60052fcc7419762c498ef7483341c83ab /libjava/java/awt/Scrollbar.java
parent6039a93dd7214d5f1effdd2c165dc4e52b950139 (diff)
downloadgcc-bc1ec7f70ec091fc96ffc8460172a005b61afb2b.zip
gcc-bc1ec7f70ec091fc96ffc8460172a005b61afb2b.tar.gz
gcc-bc1ec7f70ec091fc96ffc8460172a005b61afb2b.tar.bz2
Scrollbar.java (next_scrollbar_number): New field.
2004-02-05 Thomas Fitzsimmons <fitzsim@redhat.com> * java/awt/Scrollbar.java (next_scrollbar_number): New field. (Scrollbar (int, int, int, int, int)): Make default page increment 10. (setValues): Only call peer.setValues if one of the values has changed. (generateName): New method. (getUniqueLong): New method. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c (range_scrollbar): Remove structure. (post_adjustment_event): Remove function. (post_change_event): Accept jobject argument. (create): Cast jints to gdoubles. Round scrollbar values to the nearest integer. Clamp min, max and value settings. (connectJObject): Connect hook to widget->window. (connectSignals): Remove range_scrollbar structure variables. Remove "move-slider" connection. Pass global peer reference to "value-changed" callback. (setLineIncrement): Cast jint value to gdouble. (setPageIncrement): Likewise. (setValues): Likewise. Clamp min, max and value settings. From-SVN: r77332
Diffstat (limited to 'libjava/java/awt/Scrollbar.java')
-rw-r--r--libjava/java/awt/Scrollbar.java55
1 files changed, 38 insertions, 17 deletions
diff --git a/libjava/java/awt/Scrollbar.java b/libjava/java/awt/Scrollbar.java
index 79b2e43..a01dc3c 100644
--- a/libjava/java/awt/Scrollbar.java
+++ b/libjava/java/awt/Scrollbar.java
@@ -120,6 +120,11 @@ private AdjustmentListener adjustment_listeners;
private transient boolean valueIsAdjusting = false;
+ /*
+ * The number used to generate the name returned by getName.
+ */
+ private static transient long next_scrollbar_number = 0;
+
/*************************************************************************/
/*
@@ -194,9 +199,8 @@ Scrollbar(int orientation, int value, int visibleAmount, int minimum,
// Default is 1 according to online docs.
lineIncrement = 1;
- pageIncrement = (maximum - minimum) / 5;
- if (pageIncrement == 0)
- pageIncrement = 1;
+ // Default is 10 according to javadocs.
+ pageIncrement = 10;
}
/*************************************************************************/
@@ -394,15 +398,17 @@ setValues(int value, int visibleAmount, int minimum, int maximum)
if (visibleAmount > maximum - minimum)
visibleAmount = maximum - minimum;
+ ScrollbarPeer peer = (ScrollbarPeer) getPeer ();
+ if (peer != null
+ && (this.value != value || this.visibleAmount != visibleAmount
+ || this.minimum != minimum || this.maximum != maximum))
+ peer.setValues(value, visibleAmount, minimum, maximum);
+
this.value = value;
this.visibleAmount = visibleAmount;
this.minimum = minimum;
this.maximum = maximum;
- ScrollbarPeer sp = (ScrollbarPeer)getPeer();
- if (sp != null)
- sp.setValues(value, visibleAmount, minimum, maximum);
-
int range = maximum - minimum;
if (lineIncrement > range)
{
@@ -411,8 +417,8 @@ setValues(int value, int visibleAmount, int minimum, int maximum)
else
lineIncrement = range;
- if (sp != null)
- sp.setLineIncrement(lineIncrement);
+ if (peer != null)
+ peer.setLineIncrement(lineIncrement);
}
if (pageIncrement > range)
@@ -422,8 +428,8 @@ setValues(int value, int visibleAmount, int minimum, int maximum)
else
pageIncrement = range;
- if (sp != null)
- sp.setPageIncrement(pageIncrement);
+ if (peer != null)
+ peer.setPageIncrement(pageIncrement);
}
}
@@ -503,9 +509,9 @@ setLineIncrement(int lineIncrement)
this.lineIncrement = lineIncrement;
- ScrollbarPeer sp = (ScrollbarPeer) getPeer ();
- if (sp != null)
- sp.setLineIncrement (this.lineIncrement);
+ ScrollbarPeer peer = (ScrollbarPeer) getPeer ();
+ if (peer != null)
+ peer.setLineIncrement (this.lineIncrement);
}
/*************************************************************************/
@@ -584,9 +590,9 @@ setPageIncrement(int pageIncrement)
this.pageIncrement = pageIncrement;
- ScrollbarPeer sp = (ScrollbarPeer) getPeer ();
- if (sp != null)
- sp.setPageIncrement (this.pageIncrement);
+ ScrollbarPeer peer = (ScrollbarPeer) getPeer ();
+ if (peer != null)
+ peer.setPageIncrement (this.pageIncrement);
}
/*************************************************************************/
@@ -746,5 +752,20 @@ paramString()
{
this.valueIsAdjusting = valueIsAdjusting;
}
+
+ /**
+ * Generate a unique name for this scroll bar.
+ *
+ * @return A unique name for this scroll bar.
+ */
+ String generateName ()
+ {
+ return "scrollbar" + getUniqueLong ();
+ }
+
+ private static synchronized long getUniqueLong ()
+ {
+ return next_scrollbar_number++;
+ }
} // class Scrollbar