annotate dwt/dwthelper/System.d @ 126:38807a925e24

Fixed compile errors, support for SWT language files
author Jacob Carlborg <doob@me.com>
date Fri, 16 Jan 2009 23:35:40 +0100
parents c74ba20de292
children 07399639c0c8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
1 /**
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
2 * Authors: Frank Benoit <keinfarbton@googlemail.com>
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
3 */
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
4 module dwt.dwthelper.System;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
5
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
6 import tango.core.Exception;
36
db5a898b2119 Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 17
diff changeset
7 import tango.io.Stdout;
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
8 import tango.io.model.IFile;
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
9
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
10 version (LDC)
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
11 {
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
12 import tango.io.stream.Format;
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
13 alias FormatOutput Print;
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
14 }
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
15
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
16 else
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
17 import tango.io.Print;
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
18
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
19 import tango.stdc.locale;
36
db5a898b2119 Fixed a lot of compile errors
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 17
diff changeset
20 import tango.stdc.stdlib : exit;
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
21 import tango.sys.Environment;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
22 import tango.time.Clock;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
23
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
24 import dwt.dwthelper.utils;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
25
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
26 template SimpleType(T) {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
27 debug{
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
28 static void validCheck(uint SrcLen, uint DestLen, uint copyLen){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
29 if(SrcLen < copyLen || DestLen < copyLen|| SrcLen < 0 || DestLen < 0){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
30 //Util.trace("Error : SimpleType.arraycopy(), out of bounds.");
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
31 assert(0);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
32 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
33 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
34 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
35
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
36 static void remove(inout T[] items, int index) {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
37 if(items.length is 0)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
38 return;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
39
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
40 if(index < 0 || index >= items.length){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
41 throw new ArrayBoundsException(__FILE__, __LINE__);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
42 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
43
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
44 T element = items[index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
45
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
46 int length = items.length;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
47 if(length is 1){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
48 items.length = 0;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
49 return;// element;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
50 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
51
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
52 if(index is 0)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
53 items = items[1 .. $];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
54 else if(index is length - 1)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
55 items = items[0 .. index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
56 else
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
57 items = items[0 .. index] ~ items[index + 1 .. $];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
58 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
59
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
60 static void insert(inout T[] items, T item, int index = -1) {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
61 if(index is -1)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
62 index = items.length;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
63
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
64 if(index < 0 || index > items.length ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
65 throw new ArrayBoundsException(__FILE__, __LINE__);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
66 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
67
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
68 if(index is items.length){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
69 items ~= item;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
70 }else if(index is 0){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
71 T[] newVect;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
72 newVect ~= item;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
73 items = newVect ~ items;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
74 }else if(index < items.length ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
75 T[] arr1 = items[0 .. index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
76 T[] arr2 = items[index .. $];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
77
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
78 // Important : if you write like the following commented,
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
79 // you get wrong data
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
80 // code: T[] arr1 = items[0..index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
81 // T[] arr2 = items[index..$];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
82 // items = arr1 ~ item; // error, !!!
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
83 // items ~= arr2; // item replace the arrr2[0] here
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
84 items = arr1 ~ item ~ arr2;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
85 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
86 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
87
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
88 static void arraycopy(T[] src, uint srcPos, T[] dest, uint destPos, uint len)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
89 {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
90 if(len is 0) return;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
91
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
92 assert(src);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
93 assert(dest);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
94 debug{validCheck(src.length - srcPos, dest.length - destPos, len);}
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
95
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
96 if(src is dest){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
97 for(int i=0; i<len; ++i){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
98 dest[destPos+i] = src[srcPos+i];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
99 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
100 }else{
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
101 dest[destPos..(len+destPos)] = src[srcPos..(len+srcPos)];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
102 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
103 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
104 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
105
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
106 struct Out
15
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
107 {
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
108
15
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
109 static Print!(char) delegate(char[] fmt,...) println;
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
110 static Print!(char) delegate(char[] fmt,...) print;
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
111
15
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
112 static this ()
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
113 {
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
114 println = &Stdout.formatln;
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
115 print = &Stdout.format;
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
116 }
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
117 }
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
118
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
119 struct Err
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
120 {
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
121 static Print!(char) delegate(char[] fmt,...) println;
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
122 static Print!(char) delegate(char[] fmt,...) print;
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
123
15
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
124 static this ()
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
125 {
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
126 println = &Stderr.formatln;
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
127 print = &Stderr.format;
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
128 }
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
129 }
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
130
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
131 class System {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
132
10
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
133 alias SimpleType!(int).arraycopy arraycopy;
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
134 alias SimpleType!(byte).arraycopy arraycopy;
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
135 alias SimpleType!(double).arraycopy arraycopy;
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
136 alias SimpleType!(float).arraycopy arraycopy;
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
137 alias SimpleType!(short).arraycopy arraycopy;
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
138 alias SimpleType!(long).arraycopy arraycopy;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
139 alias SimpleType!(uint).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
140 alias SimpleType!(ushort).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
141 alias SimpleType!(ubyte).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
142 alias SimpleType!(ulong).arraycopy arraycopy;
10
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
143 alias SimpleType!(char).arraycopy arraycopy;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
144 alias SimpleType!(wchar).arraycopy arraycopy;
10
30a762abda2a Revert automatic changes from dwt/internal and dwt/dwthelper. Excluded dwt/internal/image and theme.
Frank Benoit <benoit@tionex.de>
parents: 7
diff changeset
145 alias SimpleType!(Object).arraycopy arraycopy;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
146 alias SimpleType!(void*).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
147
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
148 alias SimpleType!(int[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
149 alias SimpleType!(byte[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
150 alias SimpleType!(double[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
151 alias SimpleType!(float[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
152 alias SimpleType!(short[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
153 alias SimpleType!(long[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
154 alias SimpleType!(uint[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
155 alias SimpleType!(ushort[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
156 alias SimpleType!(ubyte[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
157 alias SimpleType!(ulong[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
158 alias SimpleType!(char[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
159 alias SimpleType!(wchar[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
160 alias SimpleType!(Object[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
161 alias SimpleType!(void*[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
162 alias SimpleType!(void*[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
163
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
164 static long currentTimeMillis(){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
165 return Clock.now().ticks() / 10000;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
166 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
167
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
168 static void exit( int code ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
169 .exit(code);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
170 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
171 public static int identityHashCode(Object x){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
172 if( x is null ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
173 return 0;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
174 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
175 return (*cast(Object *)&x).toHash();
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
176 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
177
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
178 public static String getProperty( String key, String defval ){
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
179 String res = getProperty(key);
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
180 if( res ){
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
181 return res;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
182 }
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
183 return defval;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
184 }
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
185
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
186 public static String getProperty( String key ){
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
187 /* get values for global system keys (environment) */
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
188 switch( key ) {
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
189 // Ubuntu Gutsy:Environment.get for OSTYPE is not working
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
190 // Force default to "linux" for now -JJR
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
191 case "os.name":
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
192 version (linux) return Environment.get("OSTYPE","linux");
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
193 version (darwin) return Environment.get("OSTYPE","darwin");
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
194
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
195 case "user.name": return Environment.get("USER");
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
196 case "user.home": return Environment.get("HOME");
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
197 case "user.dir" : return Environment.get("PWD");
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
198 case "file.separator" : return FileConst.PathSeparatorString ;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
199 case "file.encoding" :
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
200 char* encoding;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
201 encoding = setlocale(LC_CTYPE, null);
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
202 if (encoding is null)
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
203 version (linux) return "CP1252"; //default
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
204 version (darwin) return "UTF-8"; //default
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
205 else
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
206 return encoding[0..strlen(encoding)].dup;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
207 default: return null;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
208 }
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
209
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
210 /* Get values for local dwt specific keys */
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
211 String* p;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
212 return ((p = key in localProperties) != null) ? *p : null;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
213 }
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
214
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
215 public static void setProperty ( String key, String value ) {
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
216 /* set property for LOCAL dwt keys */
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
217 if (key !is null && value !is null)
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
218 localProperties[ key ] = value;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
219 }
15
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
220
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
221 static Out out_;
15
2952d5604c0a Ported some widgets, added some stuff to the runtime bindings
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents: 0
diff changeset
222 static Err err;
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
223
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
224 private static String[String] localProperties;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
225 }