annotate dwt/dwthelper/System.d @ 128:07399639c0c8

Added DWT extension to dwt.widgets.MessageBox
author Jacob Carlborg <doob@me.com>
date Sat, 17 Jan 2009 16:26:49 +0100
parents 38807a925e24
children 623ff6db5f1d
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
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
24 template SimpleType(T) {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
25 debug{
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
26 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
27 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
28 //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
29 assert(0);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
30 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
31 }
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 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
35 if(items.length is 0)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
36 return;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
37
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
38 if(index < 0 || index >= items.length){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
39 throw new ArrayBoundsException(__FILE__, __LINE__);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
40 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
41
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
42 T element = items[index];
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 int length = items.length;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
45 if(length is 1){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
46 items.length = 0;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
47 return;// element;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
48 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
49
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
50 if(index is 0)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
51 items = items[1 .. $];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
52 else if(index is length - 1)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
53 items = items[0 .. index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
54 else
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
55 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
56 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
57
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
58 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
59 if(index is -1)
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
60 index = items.length;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
61
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
62 if(index < 0 || index > items.length ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
63 throw new ArrayBoundsException(__FILE__, __LINE__);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
64 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
65
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
66 if(index is items.length){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
67 items ~= item;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
68 }else if(index is 0){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
69 T[] newVect;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
70 newVect ~= item;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
71 items = newVect ~ items;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
72 }else if(index < items.length ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
73 T[] arr1 = items[0 .. index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
74 T[] arr2 = items[index .. $];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
75
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
76 // 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
77 // you get wrong data
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
78 // code: T[] arr1 = items[0..index];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
79 // T[] arr2 = items[index..$];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
80 // items = arr1 ~ item; // error, !!!
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
81 // 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
82 items = arr1 ~ item ~ arr2;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
83 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
84 }
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 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
87 {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
88 if(len is 0) return;
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 assert(src);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
91 assert(dest);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
92 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
93
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
94 if(src is dest){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
95 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
96 dest[destPos+i] = src[srcPos+i];
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
97 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
98 }else{
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
99 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
100 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
101 }
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
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
104 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
105 {
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
106
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 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
108 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
109
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
110 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
111 {
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 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
113 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
114 }
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 }
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 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
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 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
120 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
121
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
122 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
123 {
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 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
125 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
126 }
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 }
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
128
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
129 class System {
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
130
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
131 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
132 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
133 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
134 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
135 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
136 alias SimpleType!(long).arraycopy arraycopy;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
137 alias SimpleType!(uint).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
138 alias SimpleType!(ushort).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
139 alias SimpleType!(ubyte).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
140 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
141 alias SimpleType!(char).arraycopy arraycopy;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
142 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
143 alias SimpleType!(Object).arraycopy arraycopy;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
144 alias SimpleType!(void*).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
145
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
146 alias SimpleType!(int[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
147 alias SimpleType!(byte[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
148 alias SimpleType!(double[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
149 alias SimpleType!(float[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
150 alias SimpleType!(short[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
151 alias SimpleType!(long[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
152 alias SimpleType!(uint[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
153 alias SimpleType!(ushort[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
154 alias SimpleType!(ubyte[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
155 alias SimpleType!(ulong[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
156 alias SimpleType!(char[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
157 alias SimpleType!(wchar[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
158 alias SimpleType!(Object[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
159 alias SimpleType!(void*[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
160 alias SimpleType!(void*[]).arraycopy arraycopy;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
161
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
162 static long currentTimeMillis(){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
163 return Clock.now().ticks() / 10000;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
164 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
165
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
166 static void exit( int code ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
167 .exit(code);
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
168 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
169 public static int identityHashCode(Object x){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
170 if( x is null ){
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
171 return 0;
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
172 }
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
173 return (*cast(Object *)&x).toHash();
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
128
07399639c0c8 Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents: 126
diff changeset
176 public static char[] getProperty( char[] key, char[] defval ){
07399639c0c8 Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents: 126
diff changeset
177 char[] res = getProperty(key);
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
178 if( res ){
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
179 return res;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
180 }
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
181 return defval;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
182 }
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
183
128
07399639c0c8 Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents: 126
diff changeset
184 public static char[] getProperty( char[] key ){
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
185 /* 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
186 switch( key ) {
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
187 // 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
188 // 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
189 case "os.name":
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
190 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
191 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
192
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
193 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
194 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
195 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
196 case "file.separator" : return FileConst.PathSeparatorString ;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
197 case "file.encoding" :
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
198 char* encoding;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
199 encoding = setlocale(LC_CTYPE, null);
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
200 if (encoding is null)
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
201 version (linux) return "CP1252"; //default
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
202 version (darwin) return "UTF-8"; //default
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
203 else
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
204 return encoding[0..strlen(encoding)].dup;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
205 default: return null;
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
206 }
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
207
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
208 /* Get values for local dwt specific keys */
128
07399639c0c8 Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents: 126
diff changeset
209 char[]* p;
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
210 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
211 }
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
212
128
07399639c0c8 Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents: 126
diff changeset
213 public static void setProperty ( char[] key, char[] value ) {
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
214 /* set property for LOCAL dwt keys */
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
215 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
216 localProperties[ key ] = value;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
217 }
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
218
61
c74ba20de292 Fix: The application responds to events now
Jacob Carlborg <doob@me.com>
parents: 36
diff changeset
219 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
220 static Err err;
126
38807a925e24 Fixed compile errors, support for SWT language files
Jacob Carlborg <doob@me.com>
parents: 61
diff changeset
221
128
07399639c0c8 Added DWT extension to dwt.widgets.MessageBox
Jacob Carlborg <doob@me.com>
parents: 126
diff changeset
222 private static char[][char[]] localProperties;
0
380af2bdd8e5 Upload of whole dwt tree
Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
parents:
diff changeset
223 }