Mercurial > projects > dwt-linux
diff dwt/widgets/Widget.d @ 59:8cec8f536af3
All D sources complete gvim retab (4 spaces), bug with Composite moveAbove/moveBelow fixed.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 12 Jan 2008 08:44:23 +0100 |
parents | a5c274fa5af9 |
children | 6537a52fde85 |
line wrap: on
line diff
--- a/dwt/widgets/Widget.d Sat Jan 12 07:02:08 2008 +0100 +++ b/dwt/widgets/Widget.d Sat Jan 12 08:44:23 2008 +0100 @@ -1,4 +1,4 @@ -/******************************************************************************* +/******************************************************************************* * Copyright (c) 2000, 2007 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -54,123 +54,123 @@ * @see #checkSubclass */ public abstract class Widget { - /** - * the handle to the OS resource - * (Warning: This field is platform dependent) - * <p> - * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT - * public API. It is marked public only so that it can be shared - * within the packages provided by SWT. It is not available on all - * platforms and should never be accessed from application code. - * </p> - */ - public GtkWidget* handle; - int style, state; - Display display; - EventTable eventTable; - Object data; + /** + * the handle to the OS resource + * (Warning: This field is platform dependent) + * <p> + * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT + * public API. It is marked public only so that it can be shared + * within the packages provided by SWT. It is not available on all + * platforms and should never be accessed from application code. + * </p> + */ + public GtkWidget* handle; + int style, state; + Display display; + EventTable eventTable; + Object data; - /* Global state flags */ - static const int DISPOSED = 1<<0; - static const int CANVAS = 1<<1; - static const int KEYED_DATA = 1<<2; - static const int HANDLE = 1<<3; - static const int DISABLED = 1<<4; - static const int MENU = 1<<5; - static const int OBSCURED = 1<<6; - static const int MOVED = 1<<7; - static const int RESIZED = 1<<8; - static const int ZERO_WIDTH = 1<<9; - static const int ZERO_HEIGHT = 1<<10; - static const int HIDDEN = 1<<11; - static const int FOREGROUND = 1<<12; - static const int BACKGROUND = 1<<13; - static const int FONT = 1<<14; - static const int PARENT_BACKGROUND = 1<<15; - static const int THEME_BACKGROUND = 1<<16; + /* Global state flags */ + static const int DISPOSED = 1<<0; + static const int CANVAS = 1<<1; + static const int KEYED_DATA = 1<<2; + static const int HANDLE = 1<<3; + static const int DISABLED = 1<<4; + static const int MENU = 1<<5; + static const int OBSCURED = 1<<6; + static const int MOVED = 1<<7; + static const int RESIZED = 1<<8; + static const int ZERO_WIDTH = 1<<9; + static const int ZERO_HEIGHT = 1<<10; + static const int HIDDEN = 1<<11; + static const int FOREGROUND = 1<<12; + static const int BACKGROUND = 1<<13; + static const int FONT = 1<<14; + static const int PARENT_BACKGROUND = 1<<15; + static const int THEME_BACKGROUND = 1<<16; - /* A layout was requested on this widget */ - static const int LAYOUT_NEEDED = 1<<17; + /* A layout was requested on this widget */ + static const int LAYOUT_NEEDED = 1<<17; - /* The preferred size of a child has changed */ - static const int LAYOUT_CHANGED = 1<<18; + /* The preferred size of a child has changed */ + static const int LAYOUT_CHANGED = 1<<18; - /* A layout was requested in this widget hierachy */ - static const int LAYOUT_CHILD = 1<<19; + /* A layout was requested in this widget hierachy */ + static const int LAYOUT_CHILD = 1<<19; - /* More global state flags */ - static const int RELEASED = 1<<20; - static const int DISPOSE_SENT = 1<<21; - static const int FOREIGN_HANDLE = 1<<22; - static const int DRAG_DETECT = 1<<23; + /* More global state flags */ + static const int RELEASED = 1<<20; + static const int DISPOSE_SENT = 1<<21; + static const int FOREIGN_HANDLE = 1<<22; + static const int DRAG_DETECT = 1<<23; - /* Default size for widgets */ - static const int DEFAULT_WIDTH = 64; - static const int DEFAULT_HEIGHT = 64; + /* Default size for widgets */ + static const int DEFAULT_WIDTH = 64; + static const int DEFAULT_HEIGHT = 64; - /* GTK signals data */ - static const int ACTIVATE = 1; - static const int BUTTON_PRESS_EVENT = 2; - static const int BUTTON_PRESS_EVENT_INVERSE = 3; - static const int BUTTON_RELEASE_EVENT = 4; - static const int BUTTON_RELEASE_EVENT_INVERSE = 5; - static const int CHANGED = 6; - static const int CHANGE_VALUE = 7; - static const int CLICKED = 8; - static const int COMMIT = 9; - static const int CONFIGURE_EVENT = 10; - static const int DELETE_EVENT = 11; - static const int DELETE_RANGE = 12; - static const int DELETE_TEXT = 13; - static const int ENTER_NOTIFY_EVENT = 14; - static const int EVENT = 15; - static const int EVENT_AFTER = 16; - static const int EXPAND_COLLAPSE_CURSOR_ROW = 17; - static const int EXPOSE_EVENT = 18; - static const int EXPOSE_EVENT_INVERSE = 19; - static const int FOCUS = 20; - static const int FOCUS_IN_EVENT = 21; - static const int FOCUS_OUT_EVENT = 22; - static const int GRAB_FOCUS = 23; - static const int HIDE = 24; - static const int INPUT = 25; - static const int INSERT_TEXT = 26; - static const int KEY_PRESS_EVENT = 27; - static const int KEY_RELEASE_EVENT = 28; - static const int LEAVE_NOTIFY_EVENT = 29; - static const int MAP = 30; - static const int MAP_EVENT = 31; - static const int MNEMONIC_ACTIVATE = 32; - static const int MOTION_NOTIFY_EVENT = 33; - static const int MOTION_NOTIFY_EVENT_INVERSE = 34; - static const int MOVE_FOCUS = 35; - static const int OUTPUT = 36; - static const int POPUP_MENU = 37; - static const int PREEDIT_CHANGED = 38; - static const int REALIZE = 39; - static const int ROW_ACTIVATED = 40; - static const int SCROLL_CHILD = 41; - static const int SCROLL_EVENT = 42; - static const int SELECT = 43; - static const int SHOW = 44; - static const int SHOW_HELP = 45; - static const int SIZE_ALLOCATE = 46; - static const int STYLE_SET = 47; - static const int SWITCH_PAGE = 48; - static const int TEST_COLLAPSE_ROW = 49; - static const int TEST_EXPAND_ROW = 50; - static const int TEXT_BUFFER_INSERT_TEXT = 51; - static const int TOGGLED = 52; - static const int UNMAP = 53; - static const int UNMAP_EVENT = 54; - static const int UNREALIZE = 55; - static const int VALUE_CHANGED = 56; - static const int VISIBILITY_NOTIFY_EVENT = 57; - static const int WINDOW_STATE_EVENT = 58; - static const int ACTIVATE_INVERSE = 59; - static const int DAY_SELECTED = 60; - static const int MONTH_CHANGED = 61; - static const int LAST_SIGNAL = 62; + /* GTK signals data */ + static const int ACTIVATE = 1; + static const int BUTTON_PRESS_EVENT = 2; + static const int BUTTON_PRESS_EVENT_INVERSE = 3; + static const int BUTTON_RELEASE_EVENT = 4; + static const int BUTTON_RELEASE_EVENT_INVERSE = 5; + static const int CHANGED = 6; + static const int CHANGE_VALUE = 7; + static const int CLICKED = 8; + static const int COMMIT = 9; + static const int CONFIGURE_EVENT = 10; + static const int DELETE_EVENT = 11; + static const int DELETE_RANGE = 12; + static const int DELETE_TEXT = 13; + static const int ENTER_NOTIFY_EVENT = 14; + static const int EVENT = 15; + static const int EVENT_AFTER = 16; + static const int EXPAND_COLLAPSE_CURSOR_ROW = 17; + static const int EXPOSE_EVENT = 18; + static const int EXPOSE_EVENT_INVERSE = 19; + static const int FOCUS = 20; + static const int FOCUS_IN_EVENT = 21; + static const int FOCUS_OUT_EVENT = 22; + static const int GRAB_FOCUS = 23; + static const int HIDE = 24; + static const int INPUT = 25; + static const int INSERT_TEXT = 26; + static const int KEY_PRESS_EVENT = 27; + static const int KEY_RELEASE_EVENT = 28; + static const int LEAVE_NOTIFY_EVENT = 29; + static const int MAP = 30; + static const int MAP_EVENT = 31; + static const int MNEMONIC_ACTIVATE = 32; + static const int MOTION_NOTIFY_EVENT = 33; + static const int MOTION_NOTIFY_EVENT_INVERSE = 34; + static const int MOVE_FOCUS = 35; + static const int OUTPUT = 36; + static const int POPUP_MENU = 37; + static const int PREEDIT_CHANGED = 38; + static const int REALIZE = 39; + static const int ROW_ACTIVATED = 40; + static const int SCROLL_CHILD = 41; + static const int SCROLL_EVENT = 42; + static const int SELECT = 43; + static const int SHOW = 44; + static const int SHOW_HELP = 45; + static const int SIZE_ALLOCATE = 46; + static const int STYLE_SET = 47; + static const int SWITCH_PAGE = 48; + static const int TEST_COLLAPSE_ROW = 49; + static const int TEST_EXPAND_ROW = 50; + static const int TEXT_BUFFER_INSERT_TEXT = 51; + static const int TOGGLED = 52; + static const int UNMAP = 53; + static const int UNMAP_EVENT = 54; + static const int UNREALIZE = 55; + static const int VALUE_CHANGED = 56; + static const int VISIBILITY_NOTIFY_EVENT = 57; + static const int WINDOW_STATE_EVENT = 58; + static const int ACTIVATE_INVERSE = 59; + static const int DAY_SELECTED = 60; + static const int MONTH_CHANGED = 61; + static const int LAST_SIGNAL = 62; /** * Prevents uninitialized instances from being created outside the package. @@ -207,15 +207,15 @@ * @see #getStyle */ public this (Widget parent, int style) { - checkSubclass (); - checkParent (parent); - this.style = style; - display = parent.display; + checkSubclass (); + checkParent (parent); + this.style = style; + display = parent.display; } void _addListener (int eventType, Listener listener) { - if (eventTable is null) eventTable = new EventTable (); - eventTable.hook (eventType, listener); + if (eventTable is null) eventTable = new EventTable (); + eventTable.hook (eventType, listener); } /** @@ -242,9 +242,9 @@ * @see #notifyListeners */ public void addListener (int eventType, Listener listener) { - checkWidget (); - if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); - _addListener (eventType, listener); + checkWidget (); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + _addListener (eventType, listener); } /** @@ -267,45 +267,45 @@ * @see #removeDisposeListener */ public void addDisposeListener (DisposeListener listener) { - checkWidget (); - if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); - TypedListener typedListener = new TypedListener (listener); - addListener (SWT.Dispose, typedListener); + checkWidget (); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + TypedListener typedListener = new TypedListener (listener); + addListener (SWT.Dispose, typedListener); } GdkWindow* paintWindow () { - return null; + return null; } static int checkBits (int style, int int0, int int1, int int2, int int3, int int4, int int5) { - int mask = int0 | int1 | int2 | int3 | int4 | int5; - if ((style & mask) is 0) style |= int0; - if ((style & int0) !is 0) style = (style & ~mask) | int0; - if ((style & int1) !is 0) style = (style & ~mask) | int1; - if ((style & int2) !is 0) style = (style & ~mask) | int2; - if ((style & int3) !is 0) style = (style & ~mask) | int3; - if ((style & int4) !is 0) style = (style & ~mask) | int4; - if ((style & int5) !is 0) style = (style & ~mask) | int5; - return style; + int mask = int0 | int1 | int2 | int3 | int4 | int5; + if ((style & mask) is 0) style |= int0; + if ((style & int0) !is 0) style = (style & ~mask) | int0; + if ((style & int1) !is 0) style = (style & ~mask) | int1; + if ((style & int2) !is 0) style = (style & ~mask) | int2; + if ((style & int3) !is 0) style = (style & ~mask) | int3; + if ((style & int4) !is 0) style = (style & ~mask) | int4; + if ((style & int5) !is 0) style = (style & ~mask) | int5; + return style; } int /*long*/ cellDataProc (int /*long*/ tree_column, int /*long*/ cell, int /*long*/ tree_model, int /*long*/ iter, GtkWidget* data) { - return 0; + return 0; } void checkOpen () { - /* Do nothing */ + /* Do nothing */ } void checkOrientation (Widget parent) { - style &= ~SWT.MIRRORED; - if ((style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT)) is 0) { - if (parent !is null) { - if ((parent.style & SWT.LEFT_TO_RIGHT) !is 0) style |= SWT.LEFT_TO_RIGHT; - if ((parent.style & SWT.RIGHT_TO_LEFT) !is 0) style |= SWT.RIGHT_TO_LEFT; - } - } - style = checkBits (style, SWT.LEFT_TO_RIGHT, SWT.RIGHT_TO_LEFT, 0, 0, 0, 0); + style &= ~SWT.MIRRORED; + if ((style & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT)) is 0) { + if (parent !is null) { + if ((parent.style & SWT.LEFT_TO_RIGHT) !is 0) style |= SWT.LEFT_TO_RIGHT; + if ((parent.style & SWT.RIGHT_TO_LEFT) !is 0) style |= SWT.RIGHT_TO_LEFT; + } + } + style = checkBits (style, SWT.LEFT_TO_RIGHT, SWT.RIGHT_TO_LEFT, 0, 0, 0, 0); } /** @@ -321,10 +321,10 @@ * </ul> */ void checkParent (Widget parent) { - if (parent is null) error (SWT.ERROR_NULL_ARGUMENT); - if (parent.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); - parent.checkWidget (); - parent.checkOpen (); + if (parent is null) error (SWT.ERROR_NULL_ARGUMENT); + if (parent.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); + parent.checkWidget (); + parent.checkOpen (); } /** @@ -357,7 +357,7 @@ * </ul> */ protected void checkSubclass () { - if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS); + if (!isValidSubclass ()) error (SWT.ERROR_INVALID_SUBCLASS); } /** @@ -383,33 +383,33 @@ * </ul> */ protected void checkWidget () { - Display display = this.display; - if (display is null) error (SWT.ERROR_WIDGET_DISPOSED); - if (display.thread !is Thread.getThis ()) error (SWT.ERROR_THREAD_INVALID_ACCESS); - if ((state & DISPOSED) !is 0) error (SWT.ERROR_WIDGET_DISPOSED); + Display display = this.display; + if (display is null) error (SWT.ERROR_WIDGET_DISPOSED); + if (display.thread !is Thread.getThis ()) error (SWT.ERROR_THREAD_INVALID_ACCESS); + if ((state & DISPOSED) !is 0) error (SWT.ERROR_WIDGET_DISPOSED); } void createHandle (int index) { } void createWidget (int index) { - createHandle (index); - setOrientation (); - hookEvents (); - register (); + createHandle (index); + setOrientation (); + hookEvents (); + register (); } void deregister () { - if (handle is null) return; - if ((state & HANDLE) !is 0) display.removeWidget (handle); + if (handle is null) return; + if ((state & HANDLE) !is 0) display.removeWidget (handle); } void destroyWidget () { - GtkWidget* h = topHandle (); - releaseHandle (); - if (h !is null && (state & HANDLE) !is 0) { - OS.gtk_widget_destroy (h); - } + GtkWidget* h = topHandle (); + releaseHandle (); + if (h !is null && (state & HANDLE) !is 0) { + OS.gtk_widget_destroy (h); + } } /** @@ -436,17 +436,17 @@ * @see #checkWidget */ public void dispose () { - /* - * Note: It is valid to attempt to dispose a widget - * more than once. If this happens, fail silently. - */ - if (isDisposed ()) return; - if (!isValidThread ()) error (SWT.ERROR_THREAD_INVALID_ACCESS); - release (true); + /* + * Note: It is valid to attempt to dispose a widget + * more than once. If this happens, fail silently. + */ + if (isDisposed ()) return; + if (!isValidThread ()) error (SWT.ERROR_THREAD_INVALID_ACCESS); + release (true); } void error (int code) { - SWT.error (code); + SWT.error (code); } /** @@ -472,8 +472,8 @@ * @see #setData(Object) */ public Object getData () { - checkWidget(); - return (state & KEYED_DATA) !is 0 ? (cast(ArrayWrapperObject)data).array[0] : data; + checkWidget(); + return (state & KEYED_DATA) !is 0 ? (cast(ArrayWrapperObject)data).array[0] : data; } /** * Returns the application defined property of the receiver @@ -486,7 +486,7 @@ * Dispose event on the widget and do so. * </p> * - * @param key the name of the property + * @param key the name of the property * @return the value of the property or null if it has not been set * * @exception IllegalArgumentException <ul> @@ -500,15 +500,15 @@ * @see #setData(String, Object) */ public Object getData (char[] key) { - checkWidget(); - if (key is null) error (SWT.ERROR_NULL_ARGUMENT); - if ((state & KEYED_DATA) !is 0) { - char[][] table = (cast(ArrayWrapperString2) data).array; - for (int i=1; i<table.length; i+=2) { - if (key ==/*eq*/ table [i] ) return new ArrayWrapperString( table [i+1] ); - } - } - return null; + checkWidget(); + if (key is null) error (SWT.ERROR_NULL_ARGUMENT); + if ((state & KEYED_DATA) !is 0) { + char[][] table = (cast(ArrayWrapperString2) data).array; + for (int i=1; i<table.length; i+=2) { + if (key ==/*eq*/ table [i] ) return new ArrayWrapperString( table [i+1] ); + } + } + return null; } /** @@ -527,23 +527,23 @@ * </ul> */ public Display getDisplay () { - Display display = this.display; - if (display is null) error (SWT.ERROR_WIDGET_DISPOSED); - return display; + Display display = this.display; + if (display is null) error (SWT.ERROR_WIDGET_DISPOSED); + return display; } char[] getName () { -// char[] str = getClass ().getName (); -// int index = str.lastIndexOf ('.'); -// if (index is -1) return str; - char[] str = this.classinfo.name; - int index = str.length; - while ((--index > 0) && (str[index] !is '.')) {} - return str[index + 1 .. $ ]; +// char[] str = getClass ().getName (); +// int index = str.lastIndexOf ('.'); +// if (index is -1) return str; + char[] str = this.classinfo.name; + int index = str.length; + while ((--index > 0) && (str[index] !is '.')) {} + return str[index + 1 .. $ ]; } char[] getNameText () { - return ""; + return ""; } /** @@ -567,284 +567,284 @@ * </ul> */ public int getStyle () { - checkWidget (); - return style; + checkWidget (); + return style; } int /*long*/ gtk_activate (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_button_press_event (GtkWidget* widget, GdkEventButton* event) { - return 0; + return 0; } int /*long*/ gtk_button_release_event (GtkWidget* widget, GdkEventButton* event) { - return 0; + return 0; } int /*long*/ gtk_changed (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_change_value (GtkWidget* widget, int /*long*/ scroll, int /*long*/ value1, int /*long*/ value2) { - return 0; + return 0; } int /*long*/ gtk_clicked (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_commit (GtkIMContext* imcontext, char* text) { - return 0; + return 0; } int /*long*/ gtk_configure_event (GtkWidget* widget, int /*long*/ event) { - return 0; + return 0; } int /*long*/ gtk_day_selected (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_delete_event (GtkWidget* widget, int /*long*/ event) { - return 0; + return 0; } int /*long*/ gtk_delete_range (GtkWidget* widget, int /*long*/ iter1, int /*long*/ iter2) { - return 0; + return 0; } int /*long*/ gtk_delete_text (GtkWidget* widget, int /*long*/ start_pos, int /*long*/ end_pos) { - return 0; + return 0; } int /*long*/ gtk_enter_notify_event (GtkWidget* widget, GdkEventCrossing* event) { - return 0; + return 0; } int /*long*/ gtk_event (GtkWidget* widget, GdkEvent* event) { - return 0; + return 0; } int /*long*/ gtk_event_after (GtkWidget* widget, GdkEvent* event) { - return 0; + return 0; } int /*long*/ gtk_expand_collapse_cursor_row (GtkWidget* widget, int /*long*/ logical, int /*long*/ expand, int /*long*/ open_all) { - return 0; + return 0; } int /*long*/ gtk_expose_event (GtkWidget* widget, GdkEventExpose* event) { - return 0; + return 0; } int /*long*/ gtk_focus (GtkWidget* widget, int directionType) { - return 0; + return 0; } int /*long*/ gtk_focus_in_event (GtkWidget* widget, GdkEventFocus* event) { - return 0; + return 0; } int /*long*/ gtk_focus_out_event (GtkWidget* widget, GdkEventFocus* event) { - return 0; + return 0; } int /*long*/ gtk_grab_focus (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_hide (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_input (GtkWidget* widget, int /*long*/ arg1) { - return 0; + return 0; } int /*long*/ gtk_insert_text (GtkWidget* widget, int /*long*/ new_text, int /*long*/ new_text_length, int /*long*/ position) { - return 0; + return 0; } int /*long*/ gtk_key_press_event (GtkWidget* widget, GdkEventKey* event) { - return sendKeyEvent (SWT.KeyDown, event) ? 0 : 1; + return sendKeyEvent (SWT.KeyDown, event) ? 0 : 1; } int /*long*/ gtk_key_release_event (GtkWidget* widget, GdkEventKey* event) { - return sendKeyEvent (SWT.KeyUp, event) ? 0 : 1; + return sendKeyEvent (SWT.KeyUp, event) ? 0 : 1; } int /*long*/ gtk_leave_notify_event (GtkWidget* widget, GdkEventCrossing* event) { - return 0; + return 0; } int /*long*/ gtk_map (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_map_event (GtkWidget* widget, int /*long*/ event) { - return 0; + return 0; } int /*long*/ gtk_mnemonic_activate (GtkWidget* widget, int /*long*/ arg1) { - return 0; + return 0; } int /*long*/ gtk_month_changed (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_motion_notify_event (GtkWidget* widget, GdkEventMotion* event) { - return 0; + return 0; } int /*long*/ gtk_move_focus (GtkWidget* widget, int directionType) { - return 0; + return 0; } int /*long*/ gtk_output (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_popup_menu (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_preedit_changed (GtkIMContext* imcontext) { - return 0; + return 0; } int /*long*/ gtk_realize (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_row_activated (int /*long*/ tree, int /*long*/ path, int /*long*/ column) { - return 0; + return 0; } int /*long*/ gtk_scroll_child (GtkWidget* widget, int /*long*/ scrollType, int /*long*/ horizontal) { - return 0; + return 0; } int /*long*/ gtk_scroll_event (GtkWidget* widget, GdkEventScroll* event) { - return 0; + return 0; } int /*long*/ gtk_select (int /*long*/ item) { - return 0; + return 0; } int /*long*/ gtk_show (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_show_help (GtkWidget* widget, int /*long*/ helpType) { - return 0; + return 0; } int /*long*/ gtk_size_allocate (GtkWidget* widget, int /*long*/ allocation) { - return 0; + return 0; } int /*long*/ gtk_style_set (GtkWidget* widget, int /*long*/ previousStyle) { - return 0; + return 0; } int /*long*/ gtk_switch_page (GtkWidget* widget, int /*long*/ page, int /*long*/ page_num) { - return 0; + return 0; } int /*long*/ gtk_test_collapse_row (int /*long*/ tree, int /*long*/ iter, int /*long*/ path) { - return 0; + return 0; } int /*long*/ gtk_test_expand_row (int /*long*/ tree, int /*long*/ iter, int /*long*/ path) { - return 0; + return 0; } int /*long*/ gtk_text_buffer_insert_text (GtkWidget* widget, int /*long*/ iter, int /*long*/ text, int /*long*/ length) { - return 0; + return 0; } int /*long*/ gtk_timer () { - return 0; + return 0; } int /*long*/ gtk_toggled (int /*long*/ renderer, int /*long*/ pathStr) { - return 0; + return 0; } int /*long*/ gtk_unmap (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_unmap_event (GtkWidget* widget, int /*long*/ event) { - return 0; + return 0; } int /*long*/ gtk_unrealize (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ gtk_value_changed (int /*long*/ adjustment) { - return 0; + return 0; } int /*long*/ gtk_visibility_notify_event (GtkWidget* widget, GdkEventVisibility* event) { - return 0; + return 0; } int /*long*/ gtk_window_state_event (GtkWidget* widget, GdkEventWindowState* event) { - return 0; + return 0; } int fontHeight ( PangoFontDescription* font, GtkWidget* widgetHandle ) { - auto context = OS.gtk_widget_get_pango_context (widgetHandle); - auto lang = OS.pango_context_get_language (context); - auto metrics = OS.pango_context_get_metrics (context, font, lang); - int ascent = OS.pango_font_metrics_get_ascent (metrics); - int descent = OS.pango_font_metrics_get_descent (metrics); - OS.pango_font_metrics_unref (metrics); - return OS.PANGO_PIXELS (ascent + descent); + auto context = OS.gtk_widget_get_pango_context (widgetHandle); + auto lang = OS.pango_context_get_language (context); + auto metrics = OS.pango_context_get_metrics (context, font, lang); + int ascent = OS.pango_font_metrics_get_ascent (metrics); + int descent = OS.pango_font_metrics_get_descent (metrics); + OS.pango_font_metrics_unref (metrics); + return OS.PANGO_PIXELS (ascent + descent); } int filterProc (XEvent* xEvent, GdkEvent* gdkEvent, void* data) { - return 0; + return 0; } bool filters (int eventType) { - return display.filters (eventType); + return display.filters (eventType); } int /*long*/ fixedMapProc (GtkWidget* widget) { - return 0; + return 0; } char [] fixMnemonic (char[] str) { - int len = str.length; - char [] text = new char [len]; - text = str[0 .. len]; - int i = 0, j = 0; - char [] result = new char [len * 2]; - while (i < len) { - switch (text [i]) { - case '&': - if (i + 1 < len && text [i + 1] is '&') { - i++; - } else { - text [i] = '_'; - } - break; - case '_': - result [j++] = '_'; - break; + int len = str.length; + char [] text = new char [len]; + text = str[0 .. len]; + int i = 0, j = 0; + char [] result = new char [len * 2]; + while (i < len) { + switch (text [i]) { + case '&': + if (i + 1 < len && text [i + 1] is '&') { + i++; + } else { + text [i] = '_'; + } + break; + case '_': + result [j++] = '_'; + break; default: - } - result [j++] = text [i++]; - } - return result; + } + result [j++] = text [i++]; + } + return result; } /** @@ -859,7 +859,7 @@ * @return <code>true</code> when the widget is disposed and <code>false</code> otherwise */ public bool isDisposed () { - return (state & DISPOSED) !is 0; + return (state & DISPOSED) !is 0; } /** @@ -879,16 +879,16 @@ * @see SWT */ public bool isListening (int eventType) { - checkWidget (); - return hooks (eventType); + checkWidget (); + return hooks (eventType); } bool isValidThread () { - return getDisplay ().isValidThread (); + return getDisplay ().isValidThread (); } bool isValidSubclass() { - return true;//Display.isValidClass(getClass()); + return true;//Display.isValidClass(getClass()); } void hookEvents () { @@ -908,29 +908,29 @@ * @see #isListening */ bool hooks (int eventType) { - if (eventTable is null) return false; - return eventTable.hooks (eventType); + if (eventTable is null) return false; + return eventTable.hooks (eventType); } int /*long*/ hoverProc (GtkWidget* widget) { - return 0; + return 0; } void menuPositionProc (GtkMenu* menu, int* x, int* y, int* push_in, void* user_data) { } bool mnemonicHit (GtkWidget* mnemonicHandle, char key) { - if (!mnemonicMatch (mnemonicHandle, key)) return false; - OS.g_signal_handlers_block_matched ( cast(void*)mnemonicHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, null, null, cast(void*)MNEMONIC_ACTIVATE); - bool result = cast(bool)OS.gtk_widget_mnemonic_activate (cast(GtkWidget*)mnemonicHandle, false); - OS.g_signal_handlers_unblock_matched (cast(void*)mnemonicHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, null, null, cast(void*)MNEMONIC_ACTIVATE); - return result; + if (!mnemonicMatch (mnemonicHandle, key)) return false; + OS.g_signal_handlers_block_matched ( cast(void*)mnemonicHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, null, null, cast(void*)MNEMONIC_ACTIVATE); + bool result = cast(bool)OS.gtk_widget_mnemonic_activate (cast(GtkWidget*)mnemonicHandle, false); + OS.g_signal_handlers_unblock_matched (cast(void*)mnemonicHandle, OS.G_SIGNAL_MATCH_DATA, 0, 0, null, null, cast(void*)MNEMONIC_ACTIVATE); + return result; } bool mnemonicMatch (GtkWidget* mnemonicHandle, char key) { - int keyval1 = OS.gdk_keyval_to_lower (OS.gdk_unicode_to_keyval (key)); - int keyval2 = OS.gdk_keyval_to_lower (OS.gtk_label_get_mnemonic_keyval (cast(GtkLabel*)mnemonicHandle)); - return keyval1 is keyval2; + int keyval1 = OS.gdk_keyval_to_lower (OS.gdk_unicode_to_keyval (key)); + int keyval2 = OS.gdk_keyval_to_lower (OS.gtk_label_get_mnemonic_keyval (cast(GtkLabel*)mnemonicHandle)); + return keyval1 is keyval2; } /** @@ -953,62 +953,62 @@ * @see #removeListener(int, Listener) */ public void notifyListeners (int eventType, Event event) { - checkWidget(); - if (event is null) event = new Event (); - sendEvent (eventType, event); + checkWidget(); + if (event is null) event = new Event (); + sendEvent (eventType, event); } void postEvent (int eventType) { - sendEvent (eventType, null, false); + sendEvent (eventType, null, false); } void postEvent (int eventType, Event event) { - sendEvent (eventType, event, false); + sendEvent (eventType, event, false); } void register () { - if (handle is null) return; - if ((state & HANDLE) !is 0) display.addWidget (handle, this); + if (handle is null) return; + if ((state & HANDLE) !is 0) display.addWidget (handle, this); } void release (bool destroy) { - if ((state & DISPOSE_SENT) is 0) { - state |= DISPOSE_SENT; - sendEvent (SWT.Dispose); - } - if ((state & DISPOSED) is 0) { - releaseChildren (destroy); - } - if ((state & RELEASED) is 0) { - state |= RELEASED; - if (destroy) { - releaseParent (); - releaseWidget (); - destroyWidget (); - } else { - releaseWidget (); - releaseHandle (); - } - } + if ((state & DISPOSE_SENT) is 0) { + state |= DISPOSE_SENT; + sendEvent (SWT.Dispose); + } + if ((state & DISPOSED) is 0) { + releaseChildren (destroy); + } + if ((state & RELEASED) is 0) { + state |= RELEASED; + if (destroy) { + releaseParent (); + releaseWidget (); + destroyWidget (); + } else { + releaseWidget (); + releaseHandle (); + } + } } void releaseChildren (bool destroy) { } void releaseHandle () { - handle = null; - state |= DISPOSED; - display = null; + handle = null; + state |= DISPOSED; + display = null; } void releaseParent () { - /* Do nothing */ + /* Do nothing */ } void releaseWidget () { - deregister (); - eventTable = null; - data = null; + deregister (); + eventTable = null; + data = null; } /** @@ -1033,10 +1033,10 @@ * @see #notifyListeners */ public void removeListener (int eventType, Listener handler) { - checkWidget (); - if (handler is null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable is null) return; - eventTable.unhook (eventType, handler); + checkWidget (); + if (handler is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; + eventTable.unhook (eventType, handler); } /** @@ -1064,18 +1064,18 @@ * @see #addListener */ protected void removeListener (int eventType, SWTEventListener handler) { - checkWidget (); - if (handler is null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable is null) return; - eventTable.unhook (eventType, handler); + checkWidget (); + if (handler is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; + eventTable.unhook (eventType, handler); } void rendererGetSizeProc(GtkCellRenderer *cell, GtkWidget *handle, GdkRectangle *cell_area, int *x_offset, int *y_offset, int *width, int *height) { - return 0; + return 0; } void rendererRenderProc (GtkCellRenderer * cell, GdkDrawable * window, GtkWidget * handle, GdkRectangle *background_area, GdkRectangle *cell_area, GdkRectangle *expose_area, int flags){ - return 0; + return 0; } /** @@ -1096,122 +1096,122 @@ * @see #addDisposeListener */ public void removeDisposeListener (DisposeListener listener) { - checkWidget (); - if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable is null) return; - eventTable.unhook (SWT.Dispose, listener); + checkWidget (); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; + eventTable.unhook (SWT.Dispose, listener); } void sendEvent (Event event) { - Display display = event.display; - if (!display.filterEvent (event)) { - if (eventTable !is null) eventTable.sendEvent (event); - } + Display display = event.display; + if (!display.filterEvent (event)) { + if (eventTable !is null) eventTable.sendEvent (event); + } } void sendEvent (int eventType) { - sendEvent (eventType, null, true); + sendEvent (eventType, null, true); } void sendEvent (int eventType, Event event) { - sendEvent (eventType, event, true); + sendEvent (eventType, event, true); } void sendEvent (int eventType, Event event, bool send) { - if (eventTable is null && !display.filters (eventType)) { - return; - } - if (event is null) event = new Event (); - event.type = eventType; - event.display = display; - event.widget = this; - if (event.time is 0) { - event.time = display.getLastEventTime (); - } - if (send) { - sendEvent (event); - } else { - display.postEvent (event); - } + if (eventTable is null && !display.filters (eventType)) { + return; + } + if (event is null) event = new Event (); + event.type = eventType; + event.display = display; + event.widget = this; + if (event.time is 0) { + event.time = display.getLastEventTime (); + } + if (send) { + sendEvent (event); + } else { + display.postEvent (event); + } } bool sendKeyEvent (int type, GdkEventKey* keyEvent) { - int len = keyEvent.length; - if (keyEvent.string is null || OS.g_utf8_strlen (keyEvent.string, len) <= 1) { - Event event = new Event (); - event.time = keyEvent.time; - if (!setKeyState (event, keyEvent)) return true; - sendEvent (type, event); - // widget could be disposed at this point + int len = keyEvent.length; + if (keyEvent.string is null || OS.g_utf8_strlen (keyEvent.string, len) <= 1) { + Event event = new Event (); + event.time = keyEvent.time; + if (!setKeyState (event, keyEvent)) return true; + sendEvent (type, event); + // widget could be disposed at this point - /* - * It is possible (but unlikely), that application - * code could have disposed the widget in the key - * events. If this happens, end the processing of - * the key by returning false. - */ - if (isDisposed ()) return false; - return event.doit; - } - char [] chars = fromUtf8z( keyEvent.string ); - return sendIMKeyEvent (type, keyEvent, chars) !is null; + /* + * It is possible (but unlikely), that application + * code could have disposed the widget in the key + * events. If this happens, end the processing of + * the key by returning false. + */ + if (isDisposed ()) return false; + return event.doit; + } + char [] chars = fromUtf8z( keyEvent.string ); + return sendIMKeyEvent (type, keyEvent, chars) !is null; } char [] sendIMKeyEvent (int type, GdkEventKey* keyEvent, char [] chars) { - int index = 0, count = 0, state = 0; - GdkEvent* ptr = null; - if (keyEvent is null) { - ptr = OS.gtk_get_current_event (); - if (ptr !is null) { - keyEvent = new GdkEventKey (); - memmove (keyEvent, ptr, GdkEventKey.sizeof); - switch (cast(int)keyEvent.type) { - case OS.GDK_KEY_PRESS: - case OS.GDK_KEY_RELEASE: - state = keyEvent.state; - break; - default: - keyEvent = null; - break; - } - } - } - if (keyEvent is null) { - int buffer; - OS.gtk_get_current_event_state (&buffer); - state = buffer; - } - while (index < chars.length) { - Event event = new Event (); - if (keyEvent !is null && chars.length <= 1) { - setKeyState (event, keyEvent); - } else { - setInputState (event, state); - } - event.character = chars [index]; - sendEvent (type, event); + int index = 0, count = 0, state = 0; + GdkEvent* ptr = null; + if (keyEvent is null) { + ptr = OS.gtk_get_current_event (); + if (ptr !is null) { + keyEvent = new GdkEventKey (); + memmove (keyEvent, ptr, GdkEventKey.sizeof); + switch (cast(int)keyEvent.type) { + case OS.GDK_KEY_PRESS: + case OS.GDK_KEY_RELEASE: + state = keyEvent.state; + break; + default: + keyEvent = null; + break; + } + } + } + if (keyEvent is null) { + int buffer; + OS.gtk_get_current_event_state (&buffer); + state = buffer; + } + while (index < chars.length) { + Event event = new Event (); + if (keyEvent !is null && chars.length <= 1) { + setKeyState (event, keyEvent); + } else { + setInputState (event, state); + } + event.character = chars [index]; + sendEvent (type, event); - /* - * It is possible (but unlikely), that application - * code could have disposed the widget in the key - * events. If this happens, end the processing of - * the key by returning null. - */ - if (isDisposed ()) { - if (ptr !is null) OS.gdk_event_free (ptr); - return null; - } - if (event.doit) chars [count++] = chars [index]; - index++; - } - if (ptr !is null) OS.gdk_event_free (ptr); - if (count is 0) return null; - if (index !is count) { - char [] result = new char [count]; - System.arraycopy (chars, 0, result, 0, count); - return result; - } - return chars; + /* + * It is possible (but unlikely), that application + * code could have disposed the widget in the key + * events. If this happens, end the processing of + * the key by returning null. + */ + if (isDisposed ()) { + if (ptr !is null) OS.gdk_event_free (ptr); + return null; + } + if (event.doit) chars [count++] = chars [index]; + index++; + } + if (ptr !is null) OS.gdk_event_free (ptr); + if (count is 0) return null; + if (index !is count) { + char [] result = new char [count]; + System.arraycopy (chars, 0, result, 0, count); + return result; + } + return chars; } /** @@ -1237,12 +1237,12 @@ * @see #getData() */ public void setData (Object data) { - checkWidget(); - if ((state & KEYED_DATA) !is 0) { - (cast(ArrayWrapperObject) this.data).array[0] = data; - } else { - this.data = data; - } + checkWidget(); + if ((state & KEYED_DATA) !is 0) { + (cast(ArrayWrapperObject) this.data).array[0] = data; + } else { + this.data = data; + } } /** @@ -1270,149 +1270,149 @@ * @see #getData(String) */ public void setData (char[] key, Object value) { - checkWidget(); - if (key is null) error (SWT.ERROR_NULL_ARGUMENT); - int index = 1; - Object [] table = null; - if ((state & KEYED_DATA) !is 0) { - auto arr = (cast(ArrayWrapperString2) data).array; + checkWidget(); + if (key is null) error (SWT.ERROR_NULL_ARGUMENT); + int index = 1; + Object [] table = null; + if ((state & KEYED_DATA) !is 0) { + auto arr = (cast(ArrayWrapperString2) data).array; ArrayWrapperString[] strtable; foreach( str; arr ){ strtable ~= new ArrayWrapperString( str ); } - while (index < strtable.length) { - if (key ==/*eq*/ strtable [index].array ) break; - index += 2; - } + while (index < strtable.length) { + if (key ==/*eq*/ strtable [index].array ) break; + index += 2; + } table = cast(Object[])strtable; - } - if (value !is null) { - if ((state & KEYED_DATA) !is 0) { - if (index is table.length) { - Object [] newTable = new Object [table.length + 2]; - System.arraycopy (table, 0, newTable, 0, table.length); + } + if (value !is null) { + if ((state & KEYED_DATA) !is 0) { + if (index is table.length) { + Object [] newTable = new Object [table.length + 2]; + System.arraycopy (table, 0, newTable, 0, table.length); table = newTable; data = new ArrayWrapperObject( table ); - } - } else { - table = new Object [3]; - table [0] = data; + } + } else { + table = new Object [3]; + table [0] = data; data = new ArrayWrapperObject( table ); - state |= KEYED_DATA; - } - table [index] = new ArrayWrapperString( key ); - table [index + 1] = value; - } else { - if ((state & KEYED_DATA) !is 0) { - if (index !is table.length) { - int len = table.length - 2; - if (len is 1) { - data = table [0]; - state &= ~KEYED_DATA; - } else { - Object [] newTable = new Object [len]; - System.arraycopy (table, 0, newTable, 0, index); - System.arraycopy (table, index + 2, newTable, index, len - index); - data = new ArrayWrapperObject( newTable ); - } - } - } - } + state |= KEYED_DATA; + } + table [index] = new ArrayWrapperString( key ); + table [index + 1] = value; + } else { + if ((state & KEYED_DATA) !is 0) { + if (index !is table.length) { + int len = table.length - 2; + if (len is 1) { + data = table [0]; + state &= ~KEYED_DATA; + } else { + Object [] newTable = new Object [len]; + System.arraycopy (table, 0, newTable, 0, index); + System.arraycopy (table, index + 2, newTable, index, len - index); + data = new ArrayWrapperObject( newTable ); + } + } + } + } } void setForegroundColor (GtkWidget* handle, GdkColor* color) { auto style = OS.gtk_widget_get_modifier_style (handle); - OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_NORMAL, color); - OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_ACTIVE, color); - OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_PRELIGHT, color); - int flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL); - flags = (color is null) ? flags & ~OS.GTK_RC_FG: flags | OS.GTK_RC_FG; - OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_NORMAL, flags); - flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_ACTIVE); - flags = (color is null) ? flags & ~OS.GTK_RC_FG: flags | OS.GTK_RC_FG; - OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_ACTIVE, flags); - flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_PRELIGHT); - flags = (color is null) ? flags & ~OS.GTK_RC_FG: flags | OS.GTK_RC_FG; - OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_PRELIGHT, flags); + OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_NORMAL, color); + OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_ACTIVE, color); + OS.gtk_rc_style_set_fg (style, OS.GTK_STATE_PRELIGHT, color); + int flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL); + flags = (color is null) ? flags & ~OS.GTK_RC_FG: flags | OS.GTK_RC_FG; + OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_NORMAL, flags); + flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_ACTIVE); + flags = (color is null) ? flags & ~OS.GTK_RC_FG: flags | OS.GTK_RC_FG; + OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_ACTIVE, flags); + flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_PRELIGHT); + flags = (color is null) ? flags & ~OS.GTK_RC_FG: flags | OS.GTK_RC_FG; + OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_PRELIGHT, flags); - OS.gtk_rc_style_set_text (style, OS.GTK_STATE_NORMAL, color); - OS.gtk_rc_style_set_text (style, OS.GTK_STATE_ACTIVE, color); - OS.gtk_rc_style_set_text (style, OS.GTK_STATE_PRELIGHT, color); - flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL); - flags = (color is null) ? flags & ~OS.GTK_RC_TEXT: flags | OS.GTK_RC_TEXT; - OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_NORMAL, flags); - flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_PRELIGHT); - flags = (color is null) ? flags & ~OS.GTK_RC_TEXT: flags | OS.GTK_RC_TEXT; - OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_PRELIGHT, flags); - flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_ACTIVE); - flags = (color is null) ? flags & ~OS.GTK_RC_TEXT: flags | OS.GTK_RC_TEXT; - OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_ACTIVE, flags); - OS.gtk_widget_modify_style (handle, style); + OS.gtk_rc_style_set_text (style, OS.GTK_STATE_NORMAL, color); + OS.gtk_rc_style_set_text (style, OS.GTK_STATE_ACTIVE, color); + OS.gtk_rc_style_set_text (style, OS.GTK_STATE_PRELIGHT, color); + flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL); + flags = (color is null) ? flags & ~OS.GTK_RC_TEXT: flags | OS.GTK_RC_TEXT; + OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_NORMAL, flags); + flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_PRELIGHT); + flags = (color is null) ? flags & ~OS.GTK_RC_TEXT: flags | OS.GTK_RC_TEXT; + OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_PRELIGHT, flags); + flags = OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_ACTIVE); + flags = (color is null) ? flags & ~OS.GTK_RC_TEXT: flags | OS.GTK_RC_TEXT; + OS.gtk_rc_style_set_color_flags (style, OS.GTK_STATE_ACTIVE, flags); + OS.gtk_widget_modify_style (handle, style); } bool setInputState (Event event, int state) { - if ((state & OS.GDK_MOD1_MASK) !is 0) event.stateMask |= SWT.ALT; - if ((state & OS.GDK_SHIFT_MASK) !is 0) event.stateMask |= SWT.SHIFT; - if ((state & OS.GDK_CONTROL_MASK) !is 0) event.stateMask |= SWT.CONTROL; - if ((state & OS.GDK_BUTTON1_MASK) !is 0) event.stateMask |= SWT.BUTTON1; - if ((state & OS.GDK_BUTTON2_MASK) !is 0) event.stateMask |= SWT.BUTTON2; - if ((state & OS.GDK_BUTTON3_MASK) !is 0) event.stateMask |= SWT.BUTTON3; - return true; + if ((state & OS.GDK_MOD1_MASK) !is 0) event.stateMask |= SWT.ALT; + if ((state & OS.GDK_SHIFT_MASK) !is 0) event.stateMask |= SWT.SHIFT; + if ((state & OS.GDK_CONTROL_MASK) !is 0) event.stateMask |= SWT.CONTROL; + if ((state & OS.GDK_BUTTON1_MASK) !is 0) event.stateMask |= SWT.BUTTON1; + if ((state & OS.GDK_BUTTON2_MASK) !is 0) event.stateMask |= SWT.BUTTON2; + if ((state & OS.GDK_BUTTON3_MASK) !is 0) event.stateMask |= SWT.BUTTON3; + return true; } bool setKeyState (Event event, GdkEventKey* keyEvent) { - if (keyEvent.string !is null && OS.g_utf8_strlen (keyEvent.string, keyEvent.length) > 1) return false; - bool isNull = false; - event.keyCode = Display.translateKey (keyEvent.keyval); - switch (keyEvent.keyval) { - case OS.GDK_BackSpace: event.character = SWT.BS; break; - case OS.GDK_Linefeed: event.character = SWT.LF; break; - case OS.GDK_KP_Enter: - case OS.GDK_Return: event.character = SWT.CR; break; - case OS.GDK_KP_Delete: - case OS.GDK_Delete: event.character = SWT.DEL; break; - case OS.GDK_Escape: event.character = SWT.ESC; break; - case OS.GDK_Tab: - case OS.GDK_ISO_Left_Tab: event.character = SWT.TAB; break; - default: { - if (event.keyCode is 0) { - uint keyval; + if (keyEvent.string !is null && OS.g_utf8_strlen (keyEvent.string, keyEvent.length) > 1) return false; + bool isNull = false; + event.keyCode = Display.translateKey (keyEvent.keyval); + switch (keyEvent.keyval) { + case OS.GDK_BackSpace: event.character = SWT.BS; break; + case OS.GDK_Linefeed: event.character = SWT.LF; break; + case OS.GDK_KP_Enter: + case OS.GDK_Return: event.character = SWT.CR; break; + case OS.GDK_KP_Delete: + case OS.GDK_Delete: event.character = SWT.DEL; break; + case OS.GDK_Escape: event.character = SWT.ESC; break; + case OS.GDK_Tab: + case OS.GDK_ISO_Left_Tab: event.character = SWT.TAB; break; + default: { + if (event.keyCode is 0) { + uint keyval; int effective_group, level; int consumed_modifiers; - if (OS.gdk_keymap_translate_keyboard_state(OS.gdk_keymap_get_default (), keyEvent.hardware_keycode, 0, keyEvent.group, &keyval, &effective_group, &level, &consumed_modifiers)) { - event.keyCode = OS.gdk_keyval_to_unicode (keyval ); - } - } - int key = keyEvent.keyval; - if ((keyEvent.state & OS.GDK_CONTROL_MASK) !is 0 && (0 <= key && key <= 0x7F)) { - if ('a' <= key && key <= 'z') key -= 'a' - 'A'; - if (64 <= key && key <= 95) key -= 64; - event.character = cast(char) key; - isNull = keyEvent.keyval is '@' && key is 0; - } else { - event.character = cast(char) OS.gdk_keyval_to_unicode (key); - } - } - } - if (event.keyCode is 0 && event.character is 0) { - if (!isNull) return false; - } - return setInputState (event, keyEvent.state); + if (OS.gdk_keymap_translate_keyboard_state(OS.gdk_keymap_get_default (), keyEvent.hardware_keycode, 0, keyEvent.group, &keyval, &effective_group, &level, &consumed_modifiers)) { + event.keyCode = OS.gdk_keyval_to_unicode (keyval ); + } + } + int key = keyEvent.keyval; + if ((keyEvent.state & OS.GDK_CONTROL_MASK) !is 0 && (0 <= key && key <= 0x7F)) { + if ('a' <= key && key <= 'z') key -= 'a' - 'A'; + if (64 <= key && key <= 95) key -= 64; + event.character = cast(char) key; + isNull = keyEvent.keyval is '@' && key is 0; + } else { + event.character = cast(char) OS.gdk_keyval_to_unicode (key); + } + } + } + if (event.keyCode is 0 && event.character is 0) { + if (!isNull) return false; + } + return setInputState (event, keyEvent.state); } void setOrientation () { } int /*long*/ shellMapProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ user_data) { - return 0; + return 0; } int /*long*/ sizeAllocateProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ user_data) { - return 0; + return 0; } int /*long*/ sizeRequestProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ user_data) { - return 0; + return 0; } /** @@ -1422,120 +1422,120 @@ * @return a string representation of the receiver */ public char[] toString () { - char[] str = "*Disposed*"; - if (!isDisposed ()) { - str = "*Wrong Thread*"; - if (isValidThread ()) str = getNameText (); - } - return getName () ~ " {" ~ str ~ "}"; + char[] str = "*Disposed*"; + if (!isDisposed ()) { + str = "*Wrong Thread*"; + if (isValidThread ()) str = getNameText (); + } + return getName () ~ " {" ~ str ~ "}"; } GtkWidget* topHandle () { - return handle; + return handle; } int /*long*/ timerProc (GtkWidget* widget) { - return 0; + return 0; } int /*long*/ treeSelectionProc (int /*long*/ model, int /*long*/ path, int /*long*/ iter, int [] selection, int length) { - return 0; + return 0; } bool translateTraversal (int event) { - return false; + return false; } int /*long*/ windowProc (GtkWidget* handle, int /*long*/ user_data) { - switch (cast(int)/*64*/user_data) { - case ACTIVATE: return gtk_activate (handle); - case CHANGED: return gtk_changed (handle); - case CLICKED: return gtk_clicked (handle); - case DAY_SELECTED: return gtk_day_selected (handle); - case HIDE: return gtk_hide (handle); - case GRAB_FOCUS: return gtk_grab_focus (handle); - case MAP: return gtk_map (handle); - case MONTH_CHANGED: return gtk_month_changed (handle); - case OUTPUT: return gtk_output (handle); - case POPUP_MENU: return gtk_popup_menu (handle); - case PREEDIT_CHANGED: return gtk_preedit_changed (cast(GtkIMContext*)handle); - case REALIZE: return gtk_realize (handle); - case SELECT: return gtk_select (cast(int)handle); - case SHOW: return gtk_show (handle); - case VALUE_CHANGED: return gtk_value_changed (cast(int)handle); - case UNMAP: return gtk_unmap (handle); - case UNREALIZE: return gtk_unrealize (handle); - default: return 0; - } + switch (cast(int)/*64*/user_data) { + case ACTIVATE: return gtk_activate (handle); + case CHANGED: return gtk_changed (handle); + case CLICKED: return gtk_clicked (handle); + case DAY_SELECTED: return gtk_day_selected (handle); + case HIDE: return gtk_hide (handle); + case GRAB_FOCUS: return gtk_grab_focus (handle); + case MAP: return gtk_map (handle); + case MONTH_CHANGED: return gtk_month_changed (handle); + case OUTPUT: return gtk_output (handle); + case POPUP_MENU: return gtk_popup_menu (handle); + case PREEDIT_CHANGED: return gtk_preedit_changed (cast(GtkIMContext*)handle); + case REALIZE: return gtk_realize (handle); + case SELECT: return gtk_select (cast(int)handle); + case SHOW: return gtk_show (handle); + case VALUE_CHANGED: return gtk_value_changed (cast(int)handle); + case UNMAP: return gtk_unmap (handle); + case UNREALIZE: return gtk_unrealize (handle); + default: return 0; + } } int /*long*/ windowProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ user_data) { - switch (cast(int)/*64*/user_data) { - case EXPOSE_EVENT_INVERSE: { - GdkEventExpose* gdkEvent = cast(GdkEventExpose*) arg0; - auto paintWindow = paintWindow(); - auto window = gdkEvent.window; - if (window !is paintWindow) return 0; - return (state & OBSCURED) !is 0 ? 1 : 0; - } - case BUTTON_PRESS_EVENT_INVERSE: - case BUTTON_RELEASE_EVENT_INVERSE: - case MOTION_NOTIFY_EVENT_INVERSE: { - return 1; - } - case BUTTON_PRESS_EVENT: return gtk_button_press_event (handle, cast(GdkEventButton*)arg0); - case BUTTON_RELEASE_EVENT: return gtk_button_release_event (handle, cast(GdkEventButton*)arg0); - case COMMIT: return gtk_commit (cast(GtkIMContext*)handle, cast(char*)arg0); - case CONFIGURE_EVENT: return gtk_configure_event (handle, arg0); - case DELETE_EVENT: return gtk_delete_event (handle, arg0); - case ENTER_NOTIFY_EVENT: return gtk_enter_notify_event (handle, cast(GdkEventCrossing*)arg0); - case EVENT: return gtk_event (handle, cast(GdkEvent*)arg0); - case EVENT_AFTER: return gtk_event_after (handle, cast(GdkEvent*)arg0); - case EXPOSE_EVENT: return gtk_expose_event (handle, cast(GdkEventExpose*)arg0); - case FOCUS: return gtk_focus (handle, arg0); - case FOCUS_IN_EVENT: return gtk_focus_in_event (handle, cast(GdkEventFocus*)arg0); - case FOCUS_OUT_EVENT: return gtk_focus_out_event (handle, cast(GdkEventFocus*)arg0); - case KEY_PRESS_EVENT: return gtk_key_press_event (handle, cast(GdkEventKey*)arg0); - case KEY_RELEASE_EVENT: return gtk_key_release_event (handle, cast(GdkEventKey*)arg0); - case INPUT: return gtk_input (handle, arg0); - case LEAVE_NOTIFY_EVENT: return gtk_leave_notify_event (handle, cast(GdkEventCrossing*)arg0); - case MAP_EVENT: return gtk_map_event (handle, arg0); - case MNEMONIC_ACTIVATE: return gtk_mnemonic_activate (handle, arg0); - case MOTION_NOTIFY_EVENT: return gtk_motion_notify_event (handle, cast(GdkEventMotion*)arg0); - case MOVE_FOCUS: return gtk_move_focus (handle, arg0); - case SCROLL_EVENT: return gtk_scroll_event (handle, cast(GdkEventScroll*)arg0); - case SHOW_HELP: return gtk_show_help (handle, arg0); - case SIZE_ALLOCATE: return gtk_size_allocate (handle, arg0); - case STYLE_SET: return gtk_style_set (handle, arg0); - case TOGGLED: return gtk_toggled (cast(int)handle, arg0); - case UNMAP_EVENT: return gtk_unmap_event (handle, arg0); - case VISIBILITY_NOTIFY_EVENT: return gtk_visibility_notify_event (handle, cast(GdkEventVisibility*)arg0); - case WINDOW_STATE_EVENT: return gtk_window_state_event (handle, cast(GdkEventWindowState*)arg0); - default: return 0; - } + switch (cast(int)/*64*/user_data) { + case EXPOSE_EVENT_INVERSE: { + GdkEventExpose* gdkEvent = cast(GdkEventExpose*) arg0; + auto paintWindow = paintWindow(); + auto window = gdkEvent.window; + if (window !is paintWindow) return 0; + return (state & OBSCURED) !is 0 ? 1 : 0; + } + case BUTTON_PRESS_EVENT_INVERSE: + case BUTTON_RELEASE_EVENT_INVERSE: + case MOTION_NOTIFY_EVENT_INVERSE: { + return 1; + } + case BUTTON_PRESS_EVENT: return gtk_button_press_event (handle, cast(GdkEventButton*)arg0); + case BUTTON_RELEASE_EVENT: return gtk_button_release_event (handle, cast(GdkEventButton*)arg0); + case COMMIT: return gtk_commit (cast(GtkIMContext*)handle, cast(char*)arg0); + case CONFIGURE_EVENT: return gtk_configure_event (handle, arg0); + case DELETE_EVENT: return gtk_delete_event (handle, arg0); + case ENTER_NOTIFY_EVENT: return gtk_enter_notify_event (handle, cast(GdkEventCrossing*)arg0); + case EVENT: return gtk_event (handle, cast(GdkEvent*)arg0); + case EVENT_AFTER: return gtk_event_after (handle, cast(GdkEvent*)arg0); + case EXPOSE_EVENT: return gtk_expose_event (handle, cast(GdkEventExpose*)arg0); + case FOCUS: return gtk_focus (handle, arg0); + case FOCUS_IN_EVENT: return gtk_focus_in_event (handle, cast(GdkEventFocus*)arg0); + case FOCUS_OUT_EVENT: return gtk_focus_out_event (handle, cast(GdkEventFocus*)arg0); + case KEY_PRESS_EVENT: return gtk_key_press_event (handle, cast(GdkEventKey*)arg0); + case KEY_RELEASE_EVENT: return gtk_key_release_event (handle, cast(GdkEventKey*)arg0); + case INPUT: return gtk_input (handle, arg0); + case LEAVE_NOTIFY_EVENT: return gtk_leave_notify_event (handle, cast(GdkEventCrossing*)arg0); + case MAP_EVENT: return gtk_map_event (handle, arg0); + case MNEMONIC_ACTIVATE: return gtk_mnemonic_activate (handle, arg0); + case MOTION_NOTIFY_EVENT: return gtk_motion_notify_event (handle, cast(GdkEventMotion*)arg0); + case MOVE_FOCUS: return gtk_move_focus (handle, arg0); + case SCROLL_EVENT: return gtk_scroll_event (handle, cast(GdkEventScroll*)arg0); + case SHOW_HELP: return gtk_show_help (handle, arg0); + case SIZE_ALLOCATE: return gtk_size_allocate (handle, arg0); + case STYLE_SET: return gtk_style_set (handle, arg0); + case TOGGLED: return gtk_toggled (cast(int)handle, arg0); + case UNMAP_EVENT: return gtk_unmap_event (handle, arg0); + case VISIBILITY_NOTIFY_EVENT: return gtk_visibility_notify_event (handle, cast(GdkEventVisibility*)arg0); + case WINDOW_STATE_EVENT: return gtk_window_state_event (handle, cast(GdkEventWindowState*)arg0); + default: return 0; + } } int /*long*/ windowProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ arg1, int /*long*/ user_data) { - switch (cast(int)/*64*/user_data) { - case DELETE_RANGE: return gtk_delete_range (handle, arg0, arg1); - case DELETE_TEXT: return gtk_delete_text (handle, arg0, arg1); - case ROW_ACTIVATED: return gtk_row_activated (cast(int)handle, arg0, arg1); - case SCROLL_CHILD: return gtk_scroll_child (handle, arg0, arg1); - case SWITCH_PAGE: return gtk_switch_page (handle, arg0, arg1); - case TEST_COLLAPSE_ROW: return gtk_test_collapse_row (cast(int)handle, arg0, arg1); - case TEST_EXPAND_ROW: return gtk_test_expand_row(cast(int)handle, arg0, arg1); - default: return 0; - } + switch (cast(int)/*64*/user_data) { + case DELETE_RANGE: return gtk_delete_range (handle, arg0, arg1); + case DELETE_TEXT: return gtk_delete_text (handle, arg0, arg1); + case ROW_ACTIVATED: return gtk_row_activated (cast(int)handle, arg0, arg1); + case SCROLL_CHILD: return gtk_scroll_child (handle, arg0, arg1); + case SWITCH_PAGE: return gtk_switch_page (handle, arg0, arg1); + case TEST_COLLAPSE_ROW: return gtk_test_collapse_row (cast(int)handle, arg0, arg1); + case TEST_EXPAND_ROW: return gtk_test_expand_row(cast(int)handle, arg0, arg1); + default: return 0; + } } int /*long*/ windowProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ arg1, int /*long*/ arg2, int /*long*/ user_data) { - switch (cast(int)/*64*/user_data) { - case CHANGE_VALUE: return gtk_change_value (handle, arg0, arg1, arg2); - case EXPAND_COLLAPSE_CURSOR_ROW: return gtk_expand_collapse_cursor_row (handle, arg0, arg1, arg2); - case INSERT_TEXT: return gtk_insert_text (handle, arg0, arg1, arg2); - case TEXT_BUFFER_INSERT_TEXT: return gtk_text_buffer_insert_text (handle, arg0, arg1, arg2); - default: return 0; - } + switch (cast(int)/*64*/user_data) { + case CHANGE_VALUE: return gtk_change_value (handle, arg0, arg1, arg2); + case EXPAND_COLLAPSE_CURSOR_ROW: return gtk_expand_collapse_cursor_row (handle, arg0, arg1, arg2); + case INSERT_TEXT: return gtk_insert_text (handle, arg0, arg1, arg2); + case TEXT_BUFFER_INSERT_TEXT: return gtk_text_buffer_insert_text (handle, arg0, arg1, arg2); + default: return 0; + } } }