source: mainline/uspace/app/tester/console/console1.c@ 3e4f2e0

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 3e4f2e0 was 9f1362d4, checked in by Martin Decky <martin@…>, 15 years ago

console output improvements

  • define new generic styles (STYLE_INVERTED for inverted print and STYLE_SELECTION for selections), use them primarily instead of specifying colors or RGBs
  • use console_set_style(fphone(stdout), STYLE_NORMAL) as the correct mean for reseting console settings (instead of specifying conrete hardcoded colors)
  • rename console_goto() to console_set_pos() (consistency with console_get_pos())
  • use semantically correct unsigned types for console sizes and cursor positions (instead of signed types)
  • use unsigned types for sizes and positions in libclui
  • top: nicer screen redrawing (do not use console_clear() which causes flickering, but repaint the screen properly — not entirely finished yet)
  • initialize mouse pointer coordinates (so the mouse cursor does not behave erratic after boot, unfortunatelly this does not solve ticket #223)
  • Property mode set to 100644
File size: 3.9 KB
Line 
1/*
2 * Copyright (c) 2008 Jiri Svoboda
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <stdio.h>
30#include <stdlib.h>
31#include <io/console.h>
32#include <io/color.h>
33#include <io/style.h>
34#include <vfs/vfs.h>
35#include <async.h>
36#include "../tester.h"
37
38static const char *color_name[] = {
39 [COLOR_BLACK] = "black",
40 [COLOR_BLUE] = "blue",
41 [COLOR_GREEN] = "green",
42 [COLOR_CYAN] = "cyan",
43 [COLOR_RED] = "red",
44 [COLOR_MAGENTA] = "magenta",
45 [COLOR_YELLOW] = "yellow",
46 [COLOR_WHITE] = "white"
47};
48
49const char *test_console1(void)
50{
51 if (!test_quiet) {
52 printf("Style test: ");
53 fflush(stdout);
54 console_set_style(fphone(stdout), STYLE_NORMAL);
55 printf(" normal ");
56 fflush(stdout);
57 console_set_style(fphone(stdout), STYLE_EMPHASIS);
58 printf(" emphasized ");
59 fflush(stdout);
60 console_set_style(fphone(stdout), STYLE_INVERTED);
61 printf(" inverted ");
62 fflush(stdout);
63 console_set_style(fphone(stdout), STYLE_SELECTED);
64 printf(" selected ");
65 fflush(stdout);
66 console_set_style(fphone(stdout), STYLE_NORMAL);
67 printf("\n");
68
69 unsigned int i;
70 unsigned int j;
71
72 printf("\nForeground color test:\n");
73 for (j = 0; j < 2; j++) {
74 for (i = COLOR_BLACK; i <= COLOR_WHITE; i++) {
75 fflush(stdout);
76 console_set_color(fphone(stdout), i, COLOR_WHITE,
77 j ? CATTR_BRIGHT : 0);
78 printf(" %s ", color_name[i]);
79 }
80 fflush(stdout);
81 console_set_style(fphone(stdout), STYLE_NORMAL);
82 putchar('\n');
83 }
84
85 printf("\nBackground color test:\n");
86 for (j = 0; j < 2; j++) {
87 for (i = COLOR_BLACK; i <= COLOR_WHITE; i++) {
88 fflush(stdout);
89 console_set_color(fphone(stdout), COLOR_WHITE, i,
90 j ? CATTR_BRIGHT : 0);
91 printf(" %s ", color_name[i]);
92 }
93 fflush(stdout);
94 console_set_style(fphone(stdout), STYLE_NORMAL);
95 putchar('\n');
96 }
97
98 printf("\nRGB colors test:\n");
99
100 for (i = 0; i < 255; i += 16) {
101 fflush(stdout);
102 console_set_rgb_color(fphone(stdout), (255 - i) << 16, i << 16);
103 putchar('X');
104 }
105 fflush(stdout);
106 console_set_color(fphone(stdout), COLOR_BLACK, COLOR_WHITE, 0);
107 putchar('\n');
108
109 for (i = 0; i < 255; i += 16) {
110 fflush(stdout);
111 console_set_rgb_color(fphone(stdout), (255 - i) << 8, i << 8);
112 putchar('X');
113 }
114 fflush(stdout);
115 console_set_color(fphone(stdout), COLOR_BLACK, COLOR_WHITE, 0);
116 putchar('\n');
117
118 for (i = 0; i < 255; i += 16) {
119 fflush(stdout);
120 console_set_rgb_color(fphone(stdout), 255 - i, i);
121 putchar('X');
122 }
123 fflush(stdout);
124 console_set_style(fphone(stdout), STYLE_NORMAL);
125 putchar('\n');
126 }
127
128 return NULL;
129}
Note: See TracBrowser for help on using the repository browser.