25 using System.Collections.Generic;
33 using MonoTouch.CoreGraphics;
34 using MonoTouch.Foundation;
35 using MonoTouch.UIKit;
38 using MonoTouch.Dialog;
40 #if !HAVE_NATIVE_TYPES
41 using CGSize = global::System.Drawing.SizeF;
44 namespace SiliconStudio.Paradox.UnitTesting.UI {
46 [CLSCompliant (
false)]
53 if (UIDevice.CurrentDevice.CheckSystemVersion (5, 0)) {
54 NavigationItem.RightBarButtonItems =
new UIBarButtonItem [] {
55 new UIBarButtonItem (ArrowDown, UIBarButtonItemStyle.Plain, ChangeSort),
56 new UIBarButtonItem (Asterisk, UIBarButtonItemStyle.Plain, ChangeFilter)
60 Section testcases = root [0];
61 OriginalCaption = testcases.Caption;
62 Unfiltered =
new List<Element> ();
63 foreach (Element e
in testcases)
66 CurrentFilter = ResultFilter.All;
68 CurrentSortOrder = SortOrder.None;
75 UIBarButtonItem FilterButton {
77 return NavigationItem.RightBarButtonItems [1];
88 string OriginalCaption {
get; set; }
89 List<Element> Unfiltered {
get; set; }
91 ResultFilter CurrentFilter {
get; set; }
93 void ChangeFilter (
object sender,
EventArgs e)
95 switch (CurrentFilter) {
96 case ResultFilter.All:
97 CurrentFilter = ResultFilter.Failed;
98 FilterButton.Image = RemoveSign;
100 case ResultFilter.Failed:
101 CurrentFilter = ResultFilter.Ignored;
102 FilterButton.Image = QuestionSign;
104 case ResultFilter.Ignored:
105 CurrentFilter = ResultFilter.Success;
106 FilterButton.Image = OkSign;
108 case ResultFilter.Success:
109 CurrentFilter = ResultFilter.All;
110 FilterButton.Image = Asterisk;
118 Section filtered =
new Section ();
120 bool add_element =
false;
121 switch (CurrentFilter) {
122 case ResultFilter.All:
125 case ResultFilter.Failed:
126 add_element = te.Result.IsFailure ();
128 case ResultFilter.Ignored:
129 add_element = te.Result.IsIgnored ();
131 case ResultFilter.Success:
132 add_element = te.Result.IsSuccess () || te.
Result.IsInconclusive ();
140 if (CurrentFilter == ResultFilter.All) {
141 filtered.Caption = String.Format (
"{0} ({1})", OriginalCaption, Unfiltered.Count);
143 filtered.Caption = String.Format (
"{0} ({1} : {2}/{3})", OriginalCaption, CurrentFilter, filtered.Count, Unfiltered.Count);
145 Root.Insert (0, filtered);
151 UIBarButtonItem SortButton {
153 return NavigationItem.RightBarButtonItems [0];
163 SortOrder CurrentSortOrder {
get; set; }
165 static ElementComparer Ascending =
new ElementComparer (SortOrder.Ascending);
166 static ElementComparer Descending =
new ElementComparer (SortOrder.Descending);
168 void ChangeSort (
object sender,
EventArgs e)
170 List<Element> list = Root [0].Elements;
171 switch (CurrentSortOrder) {
172 case SortOrder.Ascending:
173 SortButton.Image = ArrowUp;
174 CurrentSortOrder = SortOrder.Descending;
175 list.Sort (Descending);
178 SortButton.Image = ArrowDown;
179 CurrentSortOrder = SortOrder.Ascending;
180 list.Sort (Ascending);
186 class ElementComparer :
IComparer <Element> {
189 public ElementComparer (SortOrder sortOrder)
191 order = sortOrder == SortOrder.Descending ? -1 : 1;
194 public int Compare (Element x, Element
y)
196 return order * x.Caption.CompareTo (y.Caption);
202 static UIImage arrow_up;
203 static UIImage arrow_down;
204 static UIImage ok_sign;
205 static UIImage remove_sign;
206 static UIImage question_sign;
207 static UIImage asterisk;
209 static UIImage ArrowUp {
211 if (arrow_up == null)
212 arrow_up = GetAwesomeIcon (icon_arrow_up);
217 static UIImage ArrowDown {
219 if (arrow_down == null)
220 arrow_down = GetAwesomeIcon (icon_arrow_down);
225 static UIImage OkSign {
228 ok_sign = GetAwesomeIcon (icon_ok_sign);
233 static UIImage RemoveSign {
235 if (remove_sign == null)
236 remove_sign = GetAwesomeIcon (icon_remove_sign);
241 static UIImage QuestionSign {
243 if (question_sign == null)
244 question_sign = GetAwesomeIcon (icon_question_sign);
245 return question_sign;
250 static UIImage Asterisk {
252 if (asterisk == null)
253 asterisk = GetAwesomeIcon (icon_asterisk);
258 static UIImage GetAwesomeIcon (Action<CGContext> render)
264 UIGraphics.BeginImageContextWithOptions (
new CGSize (size, size),
false, 0);
265 using (var c = UIGraphics.GetCurrentContext ()) {
266 c.SetFillColor (1.0f, 1.0f, 1.0f, 1.0f);
267 c.SetStrokeColor (1.0f, 1.0f, 1.0f, 1.0f);
268 c.TranslateCTM (3f, size - 3f);
269 c.ScaleCTM (size / 1000, -size / 1000);
272 UIImage img = UIGraphics.GetImageFromCurrentImageContext ();
273 UIGraphics.EndImageContext ();
277 #region generated code
279 static void icon_arrow_up (CGContext c)
281 c.MoveTo (-0.5f, 375f);
282 c.AddQuadCurveToPoint (-1f, 394f, 13f, 408f);
283 c.AddLineToPoint (342f, 736f);
284 c.AddQuadCurveToPoint (356f, 750f, 375f, 750f);
285 c.AddQuadCurveToPoint (394f, 750f, 408f, 736f);
286 c.AddLineToPoint (736f, 408f);
287 c.AddQuadCurveToPoint (750f, 394f, 750f, 375f);
288 c.AddQuadCurveToPoint (750f, 356f, 736f, 342f);
289 c.AddLineToPoint (687f, 293f);
290 c.AddQuadCurveToPoint (673f, 279f, 654.5f, 279f);
291 c.AddQuadCurveToPoint (636f, 279f, 622f, 293f);
292 c.AddLineToPoint (456f, 458f);
293 c.AddLineToPoint (456f, 46f);
294 c.AddQuadCurveToPoint (456f, 27f, 442.5f, 13.5f);
295 c.AddQuadCurveToPoint (429f, 0f, 410f, 0f);
296 c.AddLineToPoint (340f, 0f);
297 c.AddQuadCurveToPoint (320f, 0f, 307f, 13.5f);
298 c.AddQuadCurveToPoint (294f, 27f, 294f, 46f);
299 c.AddLineToPoint (294f, 458f);
300 c.AddLineToPoint (129f, 293f);
301 c.AddQuadCurveToPoint (115f, 279f, 96f, 279f);
302 c.AddQuadCurveToPoint (77f, 279f, 63f, 293f);
303 c.AddLineToPoint (14f, 342f);
304 c.AddQuadCurveToPoint (0f, 356f, -0.5f, 375f);
306 c.MoveTo (-0.5f, 375f);
311 static void icon_arrow_down (CGContext c)
314 c.AddQuadCurveToPoint (0f, 393f, 14f, 407f);
315 c.AddLineToPoint (63f, 456f);
316 c.AddQuadCurveToPoint (77f, 470f, 96f, 470f);
317 c.AddQuadCurveToPoint (115f, 470f, 129f, 456f);
318 c.AddLineToPoint (294f, 291f);
319 c.AddLineToPoint (294f, 703f);
320 c.AddQuadCurveToPoint (294f, 722f, 307.5f, 735.5f);
321 c.AddQuadCurveToPoint (321f, 749f, 340f, 749f);
322 c.AddLineToPoint (410f, 749f);
323 c.AddQuadCurveToPoint (430f, 749f, 443f, 735.5f);
324 c.AddQuadCurveToPoint (456f, 722f, 456f, 703f);
325 c.AddLineToPoint (456f, 291f);
326 c.AddLineToPoint (622f, 456f);
327 c.AddQuadCurveToPoint (636f, 470f, 654.5f, 470f);
328 c.AddQuadCurveToPoint (673f, 470f, 687f, 456f);
329 c.AddLineToPoint (737f, 407f);
330 c.AddQuadCurveToPoint (751f, 393f, 751f, 374f);
331 c.AddQuadCurveToPoint (751f, 355f, 737f, 341f);
332 c.AddLineToPoint (408f, 13f);
333 c.AddQuadCurveToPoint (394f, -1f, 375f, -1f);
334 c.AddQuadCurveToPoint (356f, -1f, 342f, 13f);
335 c.AddLineToPoint (14f, 341f);
336 c.AddQuadCurveToPoint (0f, 355f, 0f, 374f);
343 static void icon_remove_sign (CGContext c)
346 c.AddQuadCurveToPoint (0f, 448f, 27.5f, 517f);
347 c.AddQuadCurveToPoint (55f, 586f, 110f, 641f);
348 c.AddQuadCurveToPoint (165f, 696f, 234f, 723f);
349 c.AddQuadCurveToPoint (303f, 750f, 375f, 750f);
350 c.AddQuadCurveToPoint (447f, 750f, 516f, 723f);
351 c.AddQuadCurveToPoint (585f, 696f, 640f, 641f);
352 c.AddQuadCurveToPoint (695f, 586f, 722.5f, 517f);
353 c.AddQuadCurveToPoint (750f, 448f, 750f, 376f);
354 c.AddQuadCurveToPoint (750f, 304f, 722.5f, 235f);
355 c.AddQuadCurveToPoint (695f, 166f, 640f, 111f);
356 c.AddQuadCurveToPoint (585f, 56f, 516f, 28.5f);
357 c.AddQuadCurveToPoint (447f, 1f, 375f, 1f);
358 c.AddQuadCurveToPoint (303f, 1f, 234f, 28.5f);
359 c.AddQuadCurveToPoint (165f, 56f, 110f, 111f);
360 c.AddQuadCurveToPoint (55f, 166f, 27.5f, 235f);
361 c.AddQuadCurveToPoint (0f, 304f, 0f, 376f);
364 c.MoveTo (185f, 240f);
365 c.AddLineToPoint (240f, 186f);
366 c.AddQuadCurveToPoint (245f, 181f, 251f, 181f);
367 c.AddQuadCurveToPoint (257f, 181f, 262f, 186f);
368 c.AddLineToPoint (376f, 300f);
369 c.AddLineToPoint (479f, 196f);
370 c.AddQuadCurveToPoint (484f, 191f, 490f, 191f);
371 c.AddQuadCurveToPoint (496f, 191f, 501f, 196f);
372 c.AddLineToPoint (554f, 249f);
373 c.AddQuadCurveToPoint (565f, 260f, 554f, 271f);
374 c.AddLineToPoint (450f, 374f);
375 c.AddLineToPoint (565f, 489f);
376 c.AddQuadCurveToPoint (576f, 500f, 565f, 511f);
377 c.AddLineToPoint (510f, 566f);
378 c.AddQuadCurveToPoint (499f, 577f, 488f, 566f);
379 c.AddLineToPoint (374f, 451f);
380 c.AddLineToPoint (270f, 555f);
381 c.AddQuadCurveToPoint (259f, 566f, 248f, 555f);
382 c.AddLineToPoint (196f, 502f);
383 c.AddQuadCurveToPoint (191f, 497f, 191f, 491f);
384 c.AddQuadCurveToPoint (191f, 485f, 196f, 480f);
385 c.AddLineToPoint (299f, 377f);
386 c.AddLineToPoint (185f, 262f);
387 c.AddQuadCurveToPoint (175f, 252f, 185f, 240f);
389 c.MoveTo (185f, 240f);
394 static void icon_ok_sign (CGContext c)
397 c.AddQuadCurveToPoint (0f, 453f, 29.5f, 521f);
398 c.AddQuadCurveToPoint (59f, 589f, 110f, 640f);
399 c.AddQuadCurveToPoint (161f, 691f, 229f, 720.5f);
400 c.AddQuadCurveToPoint (297f, 750f, 375f, 750f);
401 c.AddQuadCurveToPoint (453f, 750f, 521f, 720.5f);
402 c.AddQuadCurveToPoint (589f, 691f, 640f, 640f);
403 c.AddQuadCurveToPoint (691f, 589f, 720.5f, 521f);
404 c.AddQuadCurveToPoint (750f, 453f, 750f, 375f);
405 c.AddQuadCurveToPoint (750f, 297f, 720.5f, 229f);
406 c.AddQuadCurveToPoint (691f, 161f, 640f, 110f);
407 c.AddQuadCurveToPoint (589f, 59f, 521f, 29.5f);
408 c.AddQuadCurveToPoint (453f, 0f, 375f, 0f);
409 c.AddQuadCurveToPoint (297f, 0f, 229f, 29.5f);
410 c.AddQuadCurveToPoint (161f, 59f, 110f, 110f);
411 c.AddQuadCurveToPoint (59f, 161f, 29.5f, 229f);
412 c.AddQuadCurveToPoint (0f, 297f, 0f, 375f);
415 c.MoveTo (112f, 351.5f);
416 c.AddQuadCurveToPoint (112f, 342f, 119f, 335f);
417 c.AddLineToPoint (269f, 185f);
418 c.AddQuadCurveToPoint (276f, 179f, 287f, 174f);
419 c.AddQuadCurveToPoint (298f, 169f, 308f, 169f);
420 c.AddLineToPoint (333f, 169f);
421 c.AddQuadCurveToPoint (343f, 169f, 354f, 174f);
422 c.AddQuadCurveToPoint (365f, 179f, 372f, 185f);
423 c.AddLineToPoint (631f, 444f);
424 c.AddQuadCurveToPoint (638f, 451f, 638f, 460.5f);
425 c.AddQuadCurveToPoint (638f, 470f, 631f, 476f);
426 c.AddLineToPoint (581f, 526f);
427 c.AddQuadCurveToPoint (575f, 533f, 565.5f, 533f);
428 c.AddQuadCurveToPoint (556f, 533f, 549f, 526f);
429 c.AddLineToPoint (337f, 313f);
430 c.AddQuadCurveToPoint (330f, 306f, 320.5f, 306f);
431 c.AddQuadCurveToPoint (311f, 306f, 305f, 313f);
432 c.AddLineToPoint (201f, 417f);
433 c.AddQuadCurveToPoint (194f, 424f, 184.5f, 424f);
434 c.AddQuadCurveToPoint (175f, 424f, 169f, 417f);
435 c.AddLineToPoint (119f, 368f);
436 c.AddQuadCurveToPoint (112f, 361f, 112f, 351.5f);
438 c.MoveTo (112f, 351.5f);
443 static void icon_question_sign (CGContext c)
446 c.AddQuadCurveToPoint (0f, 453f, 29.5f, 521f);
447 c.AddQuadCurveToPoint (59f, 589f, 110f, 640f);
448 c.AddQuadCurveToPoint (161f, 691f, 229f, 720.5f);
449 c.AddQuadCurveToPoint (297f, 750f, 375f, 750f);
450 c.AddQuadCurveToPoint (453f, 750f, 521f, 720.5f);
451 c.AddQuadCurveToPoint (589f, 691f, 640f, 640f);
452 c.AddQuadCurveToPoint (691f, 589f, 720.5f, 521f);
453 c.AddQuadCurveToPoint (750f, 453f, 750f, 375f);
454 c.AddQuadCurveToPoint (750f, 297f, 720.5f, 229f);
455 c.AddQuadCurveToPoint (691f, 161f, 640f, 110f);
456 c.AddQuadCurveToPoint (589f, 59f, 521f, 29.5f);
457 c.AddQuadCurveToPoint (453f, 0f, 375f, 0f);
458 c.AddQuadCurveToPoint (297f, 0f, 229f, 29.5f);
459 c.AddQuadCurveToPoint (161f, 59f, 110f, 110f);
460 c.AddQuadCurveToPoint (59f, 161f, 29.5f, 229f);
461 c.AddQuadCurveToPoint (0f, 297f, 0f, 375f);
464 c.MoveTo (250f, 531f);
465 c.AddLineToPoint (294f, 476f);
466 c.AddQuadCurveToPoint (300f, 472f, 304f, 471f);
467 c.AddQuadCurveToPoint (310f, 471f, 314f, 475f);
468 c.AddQuadCurveToPoint (322f, 481f, 332f, 486f);
469 c.AddQuadCurveToPoint (340f, 490f, 350.5f, 493.5f);
470 c.AddQuadCurveToPoint (361f, 497f, 372f, 497f);
471 c.AddQuadCurveToPoint (392f, 497f, 405f, 486.5f);
472 c.AddQuadCurveToPoint (418f, 476f, 418f, 460f);
473 c.AddQuadCurveToPoint (418f, 443f, 406.5f, 429.5f);
474 c.AddQuadCurveToPoint (395f, 416f, 378f, 401f);
475 c.AddQuadCurveToPoint (367f, 392f, 356f, 381.5f);
476 c.AddQuadCurveToPoint (345f, 371f, 336f, 357.5f);
477 c.AddQuadCurveToPoint (327f, 344f, 321f, 327.5f);
478 c.AddQuadCurveToPoint (315f, 311f, 315f, 290f);
479 c.AddLineToPoint (315f, 260f);
480 c.AddQuadCurveToPoint (315f, 255f, 319.5f, 250.5f);
481 c.AddQuadCurveToPoint (324f, 246f, 329f, 246f);
482 c.AddLineToPoint (406f, 246f);
483 c.AddQuadCurveToPoint (412f, 246f, 416f, 250.5f);
484 c.AddQuadCurveToPoint (420f, 255f, 420f, 260f);
485 c.AddLineToPoint (420f, 285f);
486 c.AddQuadCurveToPoint (420f, 303f, 432f, 316f);
487 c.AddQuadCurveToPoint (444f, 329f, 461f, 344f);
488 c.AddQuadCurveToPoint (473f, 354f, 485f, 365.5f);
489 c.AddQuadCurveToPoint (497f, 377f, 506.5f, 392f);
490 c.AddQuadCurveToPoint (516f, 407f, 522.5f, 425f);
491 c.AddQuadCurveToPoint (529f, 443f, 529f, 467f);
492 c.AddQuadCurveToPoint (529f, 499f, 516f, 524f);
493 c.AddQuadCurveToPoint (503f, 549f, 481.5f, 565.5f);
494 c.AddQuadCurveToPoint (460f, 582f, 433f, 590.5f);
495 c.AddQuadCurveToPoint (406f, 599f, 379f, 599f);
496 c.AddQuadCurveToPoint (349f, 599f, 325.5f, 591.5f);
497 c.AddQuadCurveToPoint (302f, 584f, 285.5f, 575f);
498 c.AddQuadCurveToPoint (269f, 566f, 260.5f, 558f);
499 c.AddQuadCurveToPoint (252f, 550f, 251f, 549f);
500 c.AddQuadCurveToPoint (242f, 540f, 250f, 531f);
502 c.MoveTo (250f, 531f);
503 c.MoveTo (315f, 132f);
504 c.AddQuadCurveToPoint (315f, 127f, 319.5f, 122.5f);
505 c.AddQuadCurveToPoint (324f, 118f, 329f, 118f);
506 c.AddLineToPoint (406f, 118f);
507 c.AddQuadCurveToPoint (412f, 118f, 416f, 122.5f);
508 c.AddQuadCurveToPoint (420f, 127f, 420f, 132f);
509 c.AddLineToPoint (420f, 206f);
510 c.AddQuadCurveToPoint (420f, 220f, 406f, 220f);
511 c.AddLineToPoint (329f, 220f);
512 c.AddQuadCurveToPoint (324f, 220f, 319.5f, 216f);
513 c.AddQuadCurveToPoint (315f, 212f, 315f, 206f);
514 c.AddLineToPoint (315f, 132f);
516 c.MoveTo (315f, 132f);
521 static void icon_asterisk (CGContext c)
524 c.AddQuadCurveToPoint (-4f, 515f, 6f, 532f);
525 c.AddLineToPoint (41f, 593f);
526 c.AddQuadCurveToPoint (51f, 610f, 69.5f, 614.5f);
527 c.AddQuadCurveToPoint (88f, 619f, 105f, 610f);
528 c.AddLineToPoint (267f, 516f);
529 c.AddLineToPoint (267f, 703f);
530 c.AddQuadCurveToPoint (267f, 723f, 280.5f, 736.5f);
531 c.AddQuadCurveToPoint (294f, 750f, 314f, 750f);
532 c.AddLineToPoint (383f, 750f);
533 c.AddQuadCurveToPoint (403f, 750f, 416.5f, 736.5f);
534 c.AddQuadCurveToPoint (430f, 723f, 430f, 704f);
535 c.AddLineToPoint (430f, 516f);
536 c.AddLineToPoint (592f, 610f);
537 c.AddQuadCurveToPoint (609f, 619f, 627.5f, 614.5f);
538 c.AddQuadCurveToPoint (646f, 610f, 656f, 593f);
539 c.AddLineToPoint (690f, 532f);
540 c.AddQuadCurveToPoint (700f, 515f, 695.5f, 497f);
541 c.AddQuadCurveToPoint (691f, 479f, 674f, 469f);
542 c.AddLineToPoint (511f, 375f);
543 c.AddLineToPoint (674f, 281f);
544 c.AddQuadCurveToPoint (691f, 271f, 695.5f, 253f);
545 c.AddQuadCurveToPoint (700f, 235f, 691f, 218f);
546 c.AddLineToPoint (656f, 157f);
547 c.AddQuadCurveToPoint (646f, 140f, 627.5f, 135.5f);
548 c.AddQuadCurveToPoint (609f, 131f, 592f, 140f);
549 c.AddLineToPoint (430f, 234f);
550 c.AddLineToPoint (430f, 47f);
551 c.AddQuadCurveToPoint (430f, 27f, 416.5f, 13.5f);
552 c.AddQuadCurveToPoint (403f, 0f, 383f, 0f);
553 c.AddLineToPoint (314f, 0f);
554 c.AddQuadCurveToPoint (294f, 0f, 280.5f, 13.5f);
555 c.AddQuadCurveToPoint (267f, 27f, 267f, 46f);
556 c.AddLineToPoint (267f, 234f);
557 c.AddLineToPoint (105f, 140f);
558 c.AddQuadCurveToPoint (88f, 130f, 69.5f, 135f);
559 c.AddQuadCurveToPoint (51f, 140f, 41f, 157f);
560 c.AddLineToPoint (6f, 218f);
561 c.AddQuadCurveToPoint (-3f, 235f, 1.5f, 253f);
562 c.AddQuadCurveToPoint (6f, 271f, 23f, 281f);
563 c.AddLineToPoint (186f, 375f);
564 c.AddLineToPoint (23f, 469f);
565 c.AddQuadCurveToPoint (6f, 479f, 1f, 497f);
static TouchOptions Current
_In_ size_t _In_ DXGI_FORMAT _In_ size_t _In_ float size_t y
TouchViewController(RootElement root)
global::System.Drawing.SizeF CGSize
_In_ size_t _In_ size_t size