From ef0845c1d792b16e1556389ac82336b6c364154b Mon Sep 17 00:00:00 2001 From: Felipe Heidrich Date: Tue, 29 Apr 2003 15:32:51 +0000 Subject: 31941 --- .../gtk/org/eclipse/swt/internal/gtk/OS.java | 4 +++- .../gtk/org/eclipse/swt/widgets/ProgressBar.java | 16 ++++++++++++++++ .../Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java | 6 ++++++ 3 files changed, 25 insertions(+), 1 deletion(-) 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); -- cgit