Check-in [0083862360]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Handle vibration; Add vibration symbol; If the display is vibrating, show a symbol that it is; Implement anchoring for text.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:0083862360e3a3e17d312303a1bec188b250a354
User & Date: stephanie.gawroriski 2019-05-17 14:53:24
Context
2019-05-17
14:55
Repaint the display if fullscreen mode changed. check-in: db62efa65d user: stephanie.gawroriski tags: trunk
14:53
Handle vibration; Add vibration symbol; If the display is vibrating, show a symbol that it is; Implement anchoring for text. check-in: 0083862360 user: stephanie.gawroriski tags: trunk
14:00
Drawing of canvases. check-in: dc04d0d8f3 user: stephanie.gawroriski tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to assets/font/symbol.sfdir/12.strike/numbersign.bitmap.

1
2
BDFChar: 35 35 6 0 5 0 4
#Qt,-_uKc;
|
|
1
2
BDFChar: 35 35 6 0 5 1 7
8;'Ne8;'M6

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/font/monospace-12.sqf.__mime.

53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgICAgAAAAACBwKCgocCAAAGAQE
BA4EBAQeAAAADBICDwIPAhIMAAAAEREKBAQOBA4EAAAACgQeAQEOEBAPAAAA
HgEDDREWGBAPAAAACgQAABwCDBAOAAAADhEdExMTHREOAAAABAoKFAAeAAAA
AAAAACgUCgUKFCgAAAAAAAAAAB4QAAAAAAAAAAAAAA4AAAAAAAAAHiEnKycr
KyEeAAAAHgAAAAAAAAAAAAAACBQIAAAAAAAAAAAAAAAEBB8EBB8AAAAADAAI
AAwAAAAAAAAADAAIAAwAAAAAAAAACgQfEAgEAgEfAAAAAAAAAAAREREPAQEA
FhcXFhQUFBQUAAAAAAAAAAwMAAAAAAAACgQAAB4QDAIeAAAADAgIHAAAAAAA
AAAACBQIABwAAAAAAAAAAAUKFCgUCgUAAAAAHgUFBQ0FBQUeAAAAAAAAABoV
DQUaAAAAChEREQoEBAQEAAAAAAAEAAQEAgEREQ4AAgQADhERHxERAAAACAQA
DhERHxERAAAABAoADhERHxERAAAAFgkADhERHxERAAAACgAADhERHxERAAAA
BAoEDhERHxERAAAAHgUFBQ8FBQUdAAAAAB4BAQEBAQEeBAYAAgQAHgIOAgIe
AAAABAIAHgIOAgIeAAAABAoAHgIOAgIeAAAACgAAHgIOAgIeAAAAAgQABAQE
BAQEAAAACAQABAQEBAQEAAAABAoABAQEBAQEAAAACgAABAQEBAQEAAAADhIS







|
|







53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgICAgAAAAACBwKCgocCAAAGAQE
BA4EBAQeAAAADBICDwIPAhIMAAAAEREKBAQOBA4EAAAACgQeAQEOEBAPAAAA
HgEDDREWGBAPAAAACgQAABwCDBAOAAAADhEdExMTHREOAAAABAoKFAAeAAAA
AAAAACgUCgUKFCgAAAAAAAAAAB4QAAAAAAAAAAAAAA4AAAAAAAAAHiEnKycr
KyEeAAAAHgAAAAAAAAAAAAAACBQIAAAAAAAAAAAAAAAEBB8EBB8AAAAAHBAc
BBwAAAAAAAAAHBAYEBwAAAAAAAAACgQfEAgEAgEfAAAAAAAAAAAREREPAQEA
FhcXFhQUFBQUAAAAAAAAAAwMAAAAAAAACgQAAB4QDAIeAAAADAgIHAAAAAAA
AAAACBQIABwAAAAAAAAAAAUKFCgUCgUAAAAAHgUFBQ0FBQUeAAAAAAAAABoV
DQUaAAAAChEREQoEBAQEAAAAAAAEAAQEAgEREQ4AAgQADhERHxERAAAACAQA
DhERHxERAAAABAoADhERHxERAAAAFgkADhERHxERAAAACgAADhERHxERAAAA
BAoEDhERHxERAAAAHgUFBQ8FBQUdAAAAAB4BAQEBAQEeBAYAAgQAHgIOAgIe
AAAABAIAHgIOAgIeAAAABAoAHgIOAgIeAAAACgAAHgIOAgIeAAAAAgQABAQE
BAQEAAAACAQABAQEBAQEAAAABAoABAQEBAQEAAAACgAABAQEBAQEAAAADhIS

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/font/symbol-12.sqf.__mime.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
..
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAQEBAQEBAAEAAAACgoAAAAAAAAAAAAACgofCgoKHwoK
AAAABA4VBQ4UFBUOBAAAEhUKCAQCChUJAAAADBIBAQIFFQkeAAAABAQAAAAA
AAAAAAAADAICAgICAgIMAAAABggICAgICAgGAAAAFQ4fDhUAAAAAAAAAAAAA
BAQfBAQAAAAAAAAAAAAAAAAMCAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAMAAAA
ABAQCAgEBAICAAAADhERFRUVEREOAAAABwQEBAQEBAQfAAAADhEQCAQCAQEf
AAAADhEQEA4QEBEOAAAAERERER8QEBAQAAAAHwEBDxAQEBEOAAAAHgEBAQ8R
EREOAAAAHxAQCAgEBAICAAAADhEREQ4REREOAAAADhERER4QEBAQAAAAAAAA
DAwAAAAMDAAAAAAADAwAAAAMCAAAABAIBAIECBAAAAAAAAAAAA4ADgAAAAAA
AAIECBAIBAIAAAAADhEQEAgEBAAEAAAADhEVFRUVHQEeAAAADhERER8RERER
AAAADxEREQ8REREPAAAAHgEBAQEBAQEeAAAADxEREREREREPAAAAHwEBAQcB
AQEfAAAAHwEBAQcBAQEBAAAAHgEBAR0REREOAAAAERERER8RERERAAAAHAgI
CAgICAgcAAAAEBAQEBAQEREOAAAAEREJBQMFCRERAAAAAQEBAQEBAQEfAAAA
GxUVERERERERAAAAERMTFRUVGRkRAAAADhEREREREREOAAAADxEREQ8BAQEB
AAAADhERERERFQkWAAAADxEREQ8JERERAAAADhEBAQ4QEBEOAAAAHwQEBAQE
BAQEAAAAEREREREREREOAAAAEREREREREhQYAAAAEREREREVFRUKAAAAEREK
BAQKERERAAAAERERCgQEBAQEAAAAHxAQCAQCAQEfAAAADgICAgICAgIOAAAA
AAEBAgIEBAgIAAAADggICAgICAgOAAAABAoRAAAAAAAAAAAAAAAAAAAAAAAf
AAAABAgAAAAAAAAAAAAAAAAAAA4REREuAAAAAQEBAQ8REREPAAAAAAAAABwC
AgIcAAAAEBAQEB4REREeAAAAAAAAAA4RDwEeAAAAABgEBA4EBAQEAAAAAAAA
AB4REREeEA8AAAEBAQ8RERERAAAAAAAEAAQEBAQEAAAAAAAIAAgICAgIBAAA
AAEBEREPERERAAAAAAQEBAQEBAQEAAAAAAAAAA8VFRUVAAAAAAAAAA8RERER
AAAAAAAAAA4REREOAAAAAAAAAA8REREPAQEAAAAAAB4REREeEBAAAAAAABwC
AgICAAAAAAAAAB4BDhAPAAAAAAAEBA4EBAQYAAAAAAAAABEREREOAAAAAAAA
ABEREhQYAAAAAAAAABERFRUKAAAAAAAAABEKBAoRAAAAAAAAABERER4QEA8A
AAAAAB8IBAIfAAAACAQEBAIEBAQIAAAACAgICAgICAgIAAAAAgQEBAgEBAQC
AAAAABYJAAAAAAAAAAAADB4zLTc/Nx4MAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
................................................................................
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgICAgAAAAACBwKCgocCAAAGAQE
BA4EBAQeAAAADBICDwIPAhIMAAAAEREKBAQOBA4EAAAACgQeAQEOEBAPAAAA
HgEDDREWGBAPAAAACgQAABwCDBAOAAAADhEdExMTHREOAAAABAoKFAAeAAAA
AAAAACgUCgUKFCgAAAAAAAAAAB4QAAAAAAAAAAAAAA4AAAAAAAAAHiEnKycr
KyEeAAAAHgAAAAAAAAAAAAAACBQIAAAAAAAAAAAAAAAEBB8EBB8AAAAADAAI
AAwAAAAAAAAADAAIAAwAAAAAAAAACgQfEAgEAgEfAAAAAAAAAAAREREPAQEA
FhcXFhQUFBQUAAAAAAAAAAwMAAAAAAAACgQAAB4QDAIeAAAADAgIHAAAAAAA
AAAACBQIABwAAAAAAAAAAAUKFCgUCgUAAAAAHgUFBQ0FBQUeAAAAAAAAABoV
DQUaAAAAChEREQoEBAQEAAAAAAAEAAQEAgEREQ4AAgQADhERHxERAAAACAQA
DhERHxERAAAABAoADhERHxERAAAAFgkADhERHxERAAAACgAADhERHxERAAAA
BAoEDhERHxERAAAAHgUFBQ8FBQUdAAAAAB4BAQEBAQEeBAYAAgQAHgIOAgIe
AAAABAIAHgIOAgIeAAAABAoAHgIOAgIeAAAACgAAHgIOAgIeAAAAAgQABAQE







|



|
|
|
|
|
|
|






|
|
|







 







|
|
|
|
|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
..
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAADgEPys1Kx4AAAAAAB4tPy0hNSseAAAAABIhEiESIRIA
AAAABA4VBQ4UFBUOBAAAEhUKCAQCChUJAAAADBIBAQIFFQkeAAAABAQAAAAA
AAAAAAAADAICAgICAgIMAAAABggICAgICAgGAAAAFQ4fDhUAAAAAAAAAAAAA
BAQfBAQAAAAAAAAAAAAAAAAMCAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAMAAAA
ABAQCAgEBAICAAAAAB8RMTExER8AAAAAAB8TMzMzEx8AAAAAAB8XNzc3Fx8A
AAAAAB8fPz8/Hx8AAAAABwICAAAAAAAAAAAABwICAAAAAAEBAAAABwICAAAE
BAUFAAAABwICEBAUFBUVAAAADhEREQ4REREOAAAADhERER4QEBAQAAAAAAAA
ACo9Ly0tAAAAAAAAACs9KykpAAAAAA4VHTEuKiI+AAAAAAAAAA4ADgAAAAAA
AAIECBAIBAIAAAAADhEQEAgEBAAEAAAADhEVFRUVHQEeAAAAAAAADBISDAAA
AAAAAAAAHhISHgAAAAAAAAAAHxEKBAAAAAAAAAAABAoRHwAAAAAAAAAYFBIU
GAAAAAAAAAAGChIKBgAAAAAAAAARCgQKEQAAAAAAAAAfERERHwAAAAAAHAgI
CAgICAgcAAAAEBAQEBAQEREOAAAAEREJBQMFCRERAAAAAQEBAQEBAQEfAAAA
GxUVERERERERAAAAERMTFRUVGRkRAAAADhEREREREREOAAAADxEREQ8BAQEB
AAAADhERERERFQkWAAAADxEREQ8JERERAAAADhEBAQ4QEBEOAAAAHwQEBAQE
BAQEAAAAEREREREREREOAAAAEREREREREhQYAAAAEREREREVFRUKAAAAEREK
BAQKERERAAAAERERCgQEBAQEAAAAHxAQCAQCAQEfAAAADgICAgICAgIOAAAA
AAEBAgIEBAgIAAAADggICAgICAgOAAAABAoRAAAAAAAAAAAAAAAAAAAAAAAf
AAAABAgAAAAAAAAAAAAAAAAADB4eDAAAAAAAAAAAHh4eHgAAAAAAAAAAHx8O
BAAAAAAAAAAABA4fHwAAAAAAAAAYHB4cGAAAAAAAAAAGDh4OBgAAAAAAAAAb
Hw4fGwAAAAAAAAAfFR8VHwAAAAAAAAAEAAQEBAQEAAAAAAAIAAgICAgIBAAA
AAEBEREPERERAAAAAAQEBAQEBAQEAAAAAAAAAA8VFRUVAAAAAAAAAA8RERER
AAAAAAAAAA4REREOAAAAAAAAAA8REREPAQEAAAAAAB4REREeEBAAAAAAABwC
AgICAAAAAAAAAB4BDhAPAAAAAAAEBA4EBAQYAAAAAAAAABEREREOAAAAAAAA
ABEREhQYAAAAAAAAABERFRUKAAAAAAAAABEKBAoRAAAAAAAAABERER4QEA8A
AAAAAB8IBAIfAAAACAQEBAIEBAQIAAAACAgICAgICAgIAAAAAgQEBAgEBAQC
AAAAABYJAAAAAAAAAAAADB4zLTc/Nx4MAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
................................................................................
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHAAAAAAAA
AAIHAAIHAAAAAAIHAAIHAAIHAAAAOBAAAAAAAAAAAAAAOBAAAAAAAAIHAAAA
OBAAAAIHAAIHAAAAOBIHAAIHAAIHAAAAOBAAOBAAAAAAAAAAOBAAOBAAAAIH
AAAAOBAAOBIHAAIHAAAAOBIHOBIHAAIHAAAAOBAAOBAAOBAAAAAAcCAAcCAA
cCIHAAAAOBAAOBIHOBIHAAAAOBIHOBIHOBIHAAAAAAAEBB8EBB8AAAAADAAI
AAwAAAAAAAAADAAIAAwAAAAAAAAACgQfEAgEAgEfAAAAAAAAAAAREREPAQEA
FhcXFhQUFBQUAAAAAAAAAAwMAAAAAAAACgQAAB4QDAIeAAAADAgIHAAAAAAA
AAAACBQIABwAAAAAAAAAAAUKFCgUCgUAAAAAHgUFBQ0FBQUeAAAAAAAAABoV
DQUaAAAAChEREQoEBAQEAAAAAAAEAAQEAgEREQ4AAgQADhERHxERAAAACAQA
DhERHxERAAAABAoADhERHxERAAAAFgkADhERHxERAAAACgAADhERHxERAAAA
BAoEDhERHxERAAAAHgUFBQ8FBQUdAAAAAB4BAQEBAQEeBAYAAgQAHgIOAgIe
AAAABAIAHgIOAgIeAAAABAoAHgIOAgIeAAAACgAAHgIOAgIeAAAAAgQABAQE

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/gfx/AdvancedGraphics.java.

1394
1395
1396
1397
1398
1399
1400












1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
		if (__t == null)
			throw new NullPointerException("NARG");
		
		// Translate to the displayed coordinate space
		__x += this.transx;
		__y += this.transy;
		












		// Get clipping region
		int clipsx = this.clipsx,
			clipsy = this.clipsy,
			clipex = this.clipex - 1,
			clipey = this.clipey - 1;
		
		// Wanting to draw a bunch of text completely out of the clip? Ignore
		if (__x >= clipex || __y >= clipey)
			return;
		
		// Trying to draw the text completely out of the clip as well?
		int textw = __t.getWidth(),
			texth = __t.getHeight(),
			tex = __x + textw,
			tey = __y + texth;
		if (tex < clipsx || tey < clipsy)
			return;
		
		// The text box acts as an extra clip, so force everything to clip
		// in there
		if (__x > clipsx)







>
>
>
>
>
>
>
>
>
>
>
>











<
<
|







1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423


1424
1425
1426
1427
1428
1429
1430
1431
		if (__t == null)
			throw new NullPointerException("NARG");
		
		// Translate to the displayed coordinate space
		__x += this.transx;
		__y += this.transy;
		
		// Anchoring
		int textw = __t.getWidth(),
			texth = __t.getHeight();
		if ((__anchor & Graphics.RIGHT) != 0)
			__x -= textw;
		else if ((__anchor & Graphics.HCENTER) != 0)
			__x -= (textw >> 1);
		if ((__anchor & Graphics.BOTTOM) != 0)
			__y -= texth;
		else if ((__anchor & Graphics.VCENTER) != 0)
			__y -= (texth >> 1);
		
		// Get clipping region
		int clipsx = this.clipsx,
			clipsy = this.clipsy,
			clipex = this.clipex - 1,
			clipey = this.clipey - 1;
		
		// Wanting to draw a bunch of text completely out of the clip? Ignore
		if (__x >= clipex || __y >= clipey)
			return;
		
		// Trying to draw the text completely out of the clip as well?


		int tex = __x + textw,
			tey = __y + texth;
		if (tex < clipsx || tey < clipsy)
			return;
		
		// The text box acts as an extra clip, so force everything to clip
		// in there
		if (__x > clipsx)

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/phoneui/ActiveDisplay.java.

33
34
35
36
37
38
39









40
41
42
43
44
45
46
...
221
222
223
224
225
226
227
228


229





230












































	
	/** The backing buffer image. */
	protected final Image image;
	
	/** The displayable to draw. */
	private volatile Displayable _current;
	









	/** Width of the content area. */
	int _contentwidth;
	
	/** Height of the content area. */
	int _contentheight;
	
	/** The title to use. */
................................................................................
				// Restore
				ug.setColor(oldcolor);
			}
			
			// Paint
			current.paint(ug);
		}
	}


}

























































>
>
>
>
>
>
>
>
>







 







|
>
>
|
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
...
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
	
	/** The backing buffer image. */
	protected final Image image;
	
	/** The displayable to draw. */
	private volatile Displayable _current;
	
	/** Vibrate the display? */
	private volatile boolean _invibrate;
	
	/** Vibration end time. */
	private volatile long _vibrateend;
	
	/** Vibration cycle. */
	private volatile boolean _vibratecycle;
	
	/** Width of the content area. */
	int _contentwidth;
	
	/** Height of the content area. */
	int _contentheight;
	
	/** The title to use. */
................................................................................
				// Restore
				ug.setColor(oldcolor);
			}
			
			// Paint
			current.paint(ug);
		}
		
		// Clear clip for status symbols
		dg.setClip(0, 0, dw, dh);
		
		// Switch to the symbol font
		Font sf = Font.getFont("symbol", 0, StandardMetrics.TITLE_BAR_HEIGHT);
		dg.setFont(sf);
		int xa = sf.charWidth('#'),
			sx = dw - 2;
		
		// Currently vibrating the display?
		if (this._invibrate)
		{
			// Stop vibrating?
			long nowtime = System.nanoTime();
			if (nowtime >= this._vibrateend)
				this._invibrate = false;
			
			// Visual vibration, just a basic symbol
			else
			{
				// Switch to symbol font
				dg.setFont(Font.getFont("symbol", 0, 
					StandardMetrics.TITLE_BAR_HEIGHT));
				
				// Draw vibrate symbol
				dg.setColor(StandardMetrics.VIBRATE_COLOR);
				dg.drawChar('#', sx, 0, Graphics.RIGHT | Graphics.TOP);
				sx -= xa;
			}
		}
	}
	
	/**
	 * Vibrates the display for the given number of milliseconds.
	 *
	 * @param __ms The number of milliseconds to vibrate for.
	 * @since 2019/05/17
	 */
	public final void vibrate(int __ms)
	{
		// Stop vibrating
		if (__ms <= 0)
			this._invibrate = false;
		
		// Otherwise vibrate
		else
		{
			this._invibrate = true;
			this._vibrateend = System.nanoTime() + (__ms * 1000000L);
		}
	}
}

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/phoneui/NativeUIBackend.java.

268
269
270
271
272
273
274
275






276





	{
		// Not our display?
		if (__d != this.nid)
			return;
		
		todo.TODO.note("Implement");
	}
}



















|
>
>
>
>
>
>
|
>
>
>
>
>
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
	{
		// Not our display?
		if (__d != this.nid)
			return;
		
		todo.TODO.note("Implement");
	}
	
	/**
	 * {@inheritDoc}
	 * @since 2019/05/17
	 */
	@Override
	public final boolean vibrate(int __ms)
	{
		// Not supported here
		return false;
	}
}

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/phoneui/PhoneDisplayBackend.java.

52
53
54
55
56
57
58
59


60








	 * @param __x The X coordinate.
	 * @param __y The Y coordinate.
	 * @param __w The width.
	 * @param __h The height.
	 * @since 2019/05/16
	 */
	public abstract void repaint(int __x, int __y, int __w, int __h);
}


















|
>
>
|
>
>
>
>
>
>
>
>
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	 * @param __x The X coordinate.
	 * @param __y The Y coordinate.
	 * @param __w The width.
	 * @param __h The height.
	 * @since 2019/05/16
	 */
	public abstract void repaint(int __x, int __y, int __w, int __h);
	
	/**
	 * Vibrates the display for the given number of milliseconds.
	 *
	 * @param __ms The number of milliseconds to vibrate for.
	 * @return {@code true} if the vibration was handled here, otherwise
	 * {@code false} for it not being supported so vibration will be simulated.
	 * @since 2019/05/17
	 */
	public abstract boolean vibrate(int __ms);
}

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/phoneui/PhoneUI.java.

171
172
173
174
175
176
177
178


179












		// Set
		this.activedisplay._title = __t;
		
		// Repaint
		if (this._current != null)
			this.repaint();
	}
}






















|
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
		// Set
		this.activedisplay._title = __t;
		
		// Repaint
		if (this._current != null)
			this.repaint();
	}
	
	/**
	 * Vibrates the display for the given number of milliseconds.
	 *
	 * @param __ms The number of milliseconds to vibrate for.
	 * @since 2019/05/17
	 */
	public final void vibrate(int __ms)
	{
		// If the backend does not support vibration then simulate it via
		// the display interface
		if (!this.backend.vibrate(__ms))
			this.activedisplay.vibrate(__ms);
	}
}

Changes to runt/apis/midp-lcdui/cc/squirreljme/runtime/lcdui/phoneui/StandardMetrics.java.

31
32
33
34
35
36
37




38
39
40
41
42
43
44
45
46
47
48
	/** The foreground bar color. */
	public static final int FOREGROUND_BAR_COLOR =
		0xFFFFFF;
	
	/** Transparent background color. */
	public static final int TRANSPARENT_COLOR =
		0xFFFFFF;




	
	/**
	 * Not used.
	 *
	 * @since 2019/05/16
	 */
	private StandardMetrics()
	{
	}
}








>
>
>
>











31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
	/** The foreground bar color. */
	public static final int FOREGROUND_BAR_COLOR =
		0xFFFFFF;
	
	/** Transparent background color. */
	public static final int TRANSPARENT_COLOR =
		0xFFFFFF;
	
	/** Vibration symbol color. */
	public static final int VIBRATE_COLOR =
		0xFF00FF;
	
	/**
	 * Not used.
	 *
	 * @since 2019/05/16
	 */
	private StandardMetrics()
	{
	}
}

Changes to runt/apis/midp-lcdui/javax/microedition/lcdui/Display.java.

844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860

861
862

863
864
865
866
867
868
869
870
871
872
	 * and the display is active.
	 * @throws IllegalArgumentException If the duration is negative.
	 * @since 2017/02/26
	 */
	public boolean vibrate(int __d)
		throws IllegalArgumentException
	{
		throw new todo.TODO();
		/*
		// {@squirreljme.error EB1h Cannot vibrate for a negative duration.}
		if (__d < 0)
			throw new IllegalArgumentException("EB1h");
		
		// Send vibrate call
		LcdServiceCall.<VoidType>call(VoidType.class,
			LcdFunction.DISPLAY_VIBRATE, this._handle, __d);
		

		// Always return true because it is faster to just return as quickly
		// as possible than it is to vibrate the display and to see if it is

		// supported or not
		return true;
		*/
	}
	
	/**
	 * This wraps getting the best image size.
	 *
	 * @param __e The element to get it for.
	 * @return The best image size.







<
<




|
|
<

>
|
<
>
|

<







844
845
846
847
848
849
850


851
852
853
854
855
856

857
858
859

860
861
862

863
864
865
866
867
868
869
	 * and the display is active.
	 * @throws IllegalArgumentException If the duration is negative.
	 * @since 2017/02/26
	 */
	public boolean vibrate(int __d)
		throws IllegalArgumentException
	{


		// {@squirreljme.error EB1h Cannot vibrate for a negative duration.}
		if (__d < 0)
			throw new IllegalArgumentException("EB1h");
		
		// Send vibration
		this._phoneui.vibrate(__d);

		
		// Repaint the display since a vibration is happening
		this._phoneui.repaint();

		
		// Vibrate is always supported
		return true;

	}
	
	/**
	 * This wraps getting the best image size.
	 *
	 * @param __e The element to get it for.
	 * @return The best image size.