comparison dwt/browser/MozillaDelegate.d @ 125:5583f8eeee6c

Synced mozilla with dwt-linux
author Jacob Carlborg <doob@me.com>
date Fri, 16 Jan 2009 12:49:08 +0100
parents 540fa4e9974a
children
comparison
equal deleted inserted replaced
124:540fa4e9974a 125:5583f8eeee6c
19 import dwt.widgets.Display; 19 import dwt.widgets.Display;
20 import dwt.widgets.Event; 20 import dwt.widgets.Event;
21 import dwt.widgets.Listener; 21 import dwt.widgets.Listener;
22 22
23 import dwt.browser.Browser; 23 import dwt.browser.Browser;
24 import dwt.browser.Mozilla;
24 import objc = dwt.internal.objc.runtime; 25 import objc = dwt.internal.objc.runtime;
25 26
26 class MozillaDelegate { 27 class MozillaDelegate {
27 Browser browser; 28 Browser browser;
28 Listener listener; 29 Listener listener;
29 boolean hasFocus; 30 boolean hasFocus;
30 31
31 this (Browser browser) { 32 this (Browser browser) {
32 super ();
33 this.browser = browser; 33 this.browser = browser;
34 } 34 }
35 35
36 static Browser findBrowser (objc.id handle) { 36 static Browser findBrowser (objc.id handle) {
37 Display display = Display.getCurrent (); 37 Display display = Display.getCurrent ();
38 return cast(Browser)display.findWidget (handle); 38 return cast(Browser)display.findWidget (handle);
39 } 39 }
40 40
41 static char[] mbcsToWcs (String codePage, byte [] buffer) { 41 /+static char[] mbcsToWcs (String codePage, byte [] buffer) {
42 // int encoding = OS.CFStringGetSystemEncoding (); 42 // int encoding = OS.CFStringGetSystemEncoding ();
43 // int cfstring = OS.CFStringCreateWithBytes (OS.kCFAllocatorDefault, buffer, buffer.length, encoding, false); 43 // int cfstring = OS.CFStringCreateWithBytes (OS.kCFAllocatorDefault, buffer, buffer.length, encoding, false);
44 // char[] chars = null; 44 // char[] chars = null;
45 // if (cfstring != 0) { 45 // if (cfstring != 0) {
46 // int length = OS.CFStringGetLength (cfstring); 46 // int length = OS.CFStringGetLength (cfstring);
52 // } 52 // }
53 // OS.CFRelease (cfstring); 53 // OS.CFRelease (cfstring);
54 // } 54 // }
55 // return chars; 55 // return chars;
56 // TODO implement mbcsToWcs 56 // TODO implement mbcsToWcs
57 return new String(buffer).toCharArray(); 57 return new_String(buffer).toCharArray();
58 } 58 }+/
59 59
60 static byte[] wcsToMbcs (String codePage, String string, boolean terminate) { 60 /+static byte[] wcsToMbcs (String codePage, String string, boolean terminate) {
61 // char[] chars = new char [string.length()]; 61 // char[] chars = new char [string.length()];
62 // string.getChars (0, chars.length, chars, 0); 62 // string.getChars (0, chars.length, chars, 0);
63 // int cfstring = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length); 63 // int cfstring = OS.CFStringCreateWithCharacters (OS.kCFAllocatorDefault, chars, chars.length);
64 // byte[] buffer = null; 64 // byte[] buffer = null;
65 // if (cfstring != 0) { 65 // if (cfstring != 0) {
76 // } 76 // }
77 // return buffer; 77 // return buffer;
78 // TODO implement wcsToMbcs 78 // TODO implement wcsToMbcs
79 if (terminate) string += "\0"; 79 if (terminate) string += "\0";
80 return string.getBytes(); 80 return string.getBytes();
81 } 81 }+/
82 82
83 int /*long*/ getHandle () { 83 objc.id getHandle () {
84 return browser.view.id; 84 return browser.view.id;
85 } 85 }
86 86
87 String getLibraryName () { 87 String getLibraryName () {
88 return "libxpcom.dylib"; //$NON-NLS-1$ 88 return "libxpcom.dylib"; //$NON-NLS-1$
93 } 93 }
94 94
95 void handleFocus () { 95 void handleFocus () {
96 if (hasFocus) return; 96 if (hasFocus) return;
97 hasFocus = true; 97 hasFocus = true;
98 ((Mozilla)browser.webBrowser).Activate (); 98 (cast(Mozilla)browser.webBrowser).Activate ();
99 browser.setFocus (); 99 browser.setFocus ();
100 listener = new Listener () { 100 listener = new class () Listener {
101 public void handleEvent (Event event) { 101 public void handleEvent (Event event) {
102 if (event.widget == browser) return; 102 if (event.widget == browser) return;
103 ((Mozilla)browser.webBrowser).Deactivate (); 103 (cast(Mozilla)browser.webBrowser).Deactivate ();
104 hasFocus = false; 104 hasFocus = false;
105 browser.getDisplay ().removeFilter (SWT.FocusIn, this); 105 browser.getDisplay ().removeFilter (DWT.FocusIn, this);
106 browser.getShell ().removeListener (SWT.Deactivate, this); 106 browser.getShell ().removeListener (DWT.Deactivate, this);
107 listener = null; 107 listener = null;
108 } 108 }
109 109
110 }; 110 };
111 browser.getDisplay ().addFilter (SWT.FocusIn, listener); 111 browser.getDisplay ().addFilter (DWT.FocusIn, listener);
112 browser.getShell ().addListener (SWT.Deactivate, listener); 112 browser.getShell ().addListener (DWT.Deactivate, listener);
113 } 113 }
114 114
115 void handleMouseDown () { 115 void handleMouseDown () {
116 } 116 }
117 117
124 124
125 boolean needsSpinup () { 125 boolean needsSpinup () {
126 return false; 126 return false;
127 } 127 }
128 128
129 void onDispose (int /*long*/ embedHandle) { 129 void onDispose (objc.id embedHandle) {
130 if (listener != null) { 130 if (listener !is null) {
131 browser.getDisplay ().removeFilter (SWT.FocusIn, listener); 131 browser.getDisplay ().removeFilter (DWT.FocusIn, listener);
132 browser.getShell ().removeListener (SWT.Deactivate, listener); 132 browser.getShell ().removeListener (DWT.Deactivate, listener);
133 listener = null; 133 listener = null;
134 } 134 }
135 browser = null; 135 browser = null;
136 } 136 }
137 137
138 void setSize (int /*long*/ embedHandle, int width, int height) { 138 void setSize (objc.id embedHandle, int width, int height) {
139 // TODO 139 // TODO
140 } 140 }
141 141
142 } 142 }