summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Heidrich <fheidric>2003-04-29 15:32:51 +0000
committerFelipe Heidrich <fheidric>2003-04-29 15:32:51 +0000
commitef0845c1d792b16e1556389ac82336b6c364154b (patch)
treea2a662fd021628bf5d657d880b21a336bd300725
parent49fe23b3c86198b5087c44952997cc27c23aac40 (diff)
downloadeclipse.platform.swt-ef0845c1d792b16e1556389ac82336b6c364154b.tar.gz
eclipse.platform.swt-ef0845c1d792b16e1556389ac82336b6c364154b.tar.xz
eclipse.platform.swt-ef0845c1d792b16e1556389ac82336b6c364154b.zip
31941v2133m
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java6
3 files changed, 25 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index c30f79a290..349bfd5b43 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -177,6 +177,7 @@ public class OS {
public static final int GTK_PROGRESS_DISCRETE = 0x1;
public static final int GTK_PROGRESS_LEFT_TO_RIGHT = 0x0;
public static final int GTK_PROGRESS_TOP_TO_BOTTOM = 0x3;
+ public static final int GTK_REALIZED = 1 << 6;
public static final int GTK_RELIEF_NONE = 0x2;
public static final int GTK_RESPONSE_OK = 0xfffffffb;
public static final int GTK_SELECTION_BROWSE = 0x2;
@@ -242,7 +243,8 @@ public class OS {
public static final byte[] mnemonic_activate = signal("mnemonic_activate");
public static final byte[] motion_notify_event = signal("motion_notify_event");
public static final byte[] popup_menu = signal("popup_menu");
- public static final byte[] preedit_changed = signal("preedit_changed");
+ public static final byte[] preedit_changed = signal("preedit_changed");
+ public static final byte[] realize = signal("realize");
public static final byte[] row_activated = signal("row_activated");
public static final byte[] row_collapsed = signal("row_collapsed");
public static final byte[] row_expanded = signal("row_expanded");
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java
index 3a2767c2e8..56de5dbbfe 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/ProgressBar.java
@@ -139,6 +139,20 @@ public int getSelection () {
return selection;
}
+int gtk_realize (int widget) {
+ int result = super.gtk_realize (widget);
+ if (result != 0) return result;
+ updateBar (selection, minimum, maximum);
+ return 0;
+}
+
+void hookEvents () {
+ super.hookEvents ();
+ Display display = getDisplay ();
+ int windowProc2 = display.windowProc2;
+ OS.g_signal_connect_after (handle, OS.realize, windowProc2, REALIZE);
+}
+
void releaseWidget () {
super.releaseWidget ();
if (timerId != 0) OS.gtk_timeout_remove (timerId);
@@ -209,6 +223,8 @@ int timerProc (int widget) {
}
void updateBar (int selection, int minimum, int maximum) {
+ if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) == 0) return;
+
double fraction = minimum == maximum ? 1 : (double)(selection - minimum) / (maximum - minimum);
OS.gtk_progress_bar_set_fraction (handle, fraction);
/*
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
index 8907662dd0..dac71f6280 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
@@ -101,6 +101,7 @@ public abstract class Widget {
static final int MOTION_NOTIFY_EVENT = 24;
static final int POPUP_MENU = 25;
static final int PREEDIT_CHANGED = 26;
+ static final int REALIZE = 40;
static final int ROW_ACTIVATED = 27;
static final int ROW_COLLAPSED = 28;
static final int ROW_EXPANDED = 29;
@@ -590,6 +591,10 @@ int gtk_preedit_changed (int imcontext) {
return 0;
}
+int gtk_realize (int widget) {
+ return 0;
+}
+
int gtk_row_activated (int tree, int path, int column) {
return 0;
}
@@ -1129,6 +1134,7 @@ int windowProc (int handle, int user_data) {
case HIDE: return gtk_hide (handle);
case POPUP_MENU: return gtk_popup_menu (handle);
case PREEDIT_CHANGED: return gtk_preedit_changed (handle);
+ case REALIZE: return gtk_realize (handle);
case SELECT: return gtk_select (handle);
case SHOW: return gtk_show (handle);
case VALUE_CHANGED: return gtk_value_changed (handle);