1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#console_body {
background-color: black;
position: absolute;
color: white;
padding: 0;
width: 100%;
top: 0;
bottom: 0;
}
/* console_body when displayed as a window panel and not the whole app */
#console_body.windowpane {
position: fixed;
top: auto; /* Do not fix to top */
bottom: 0;
left: 0;
right: 0;
z-index: 1; /* Go in front of console_filler */
}
#console_body.windowpane #console_body2 {
/* Need some padding in windowpane mode */
/* (In full mode, things are positioned absolutely) */
padding: 0.5em;
}
/* Heading bar */
#console_heading {
background-color: gray;
border: 2px solid black;
padding: 2px;
color: black;
font-family: monospace;
font-weight: bold;
}
/* If "minimized", console_heading and console_output are hidden */
#console_body.minimal #console_heading,
#console_body.minimal #console_output,
/* If "maximized", the maximize button is hidden */
#console_body.maximal .maximize {
display: none;
}
/* Minimize/maximize button */
.console_button {
cursor: pointer; /* Display hand cursor, since this is a button */
position: absolute;
right: 0.5em;
}
#console_output {
/*height: 20em;*/ /* Might be needed for windowpane mode */
/*margin-bottom: 0.5em;*/
position: absolute;
/* 2em is to accomodate the header bar, and some padding */
top: 2em;
/* 2.5em is to accomodate the input bar, and padding either side */
bottom: 2.5em;
/* left and right 0.5em are just for horizontal padding */
left: 0.5em;
right: 0.5em;
/* Display scroll bars */
overflow: scroll;
}
#console_body.windowpane #console_output {
/* Don't want this absolutely positioned in windowpane mode */
position: static;
/* Give it an explicit height instead */
height: 20em;
margin-bottom: 0.5em;
}
#console_input {
position: absolute;
/* Input bar goes along the bottom. Pad all sides */
left: 0.5em;
right: 0.5em;
bottom: 0.5em;
}
#console_body.windowpane #console_input {
/* Don't want this absolutely positioned in windowpane mode */
position: static;
}
#console_prompt {
font-family: monospace;
}
#console_inputText {
background-color: black;
color: white;
width: 90%;
}
/* console filler takes up the same space as console_body.windowpane
* but its position is relative, not fixed.
* This avoids having the console overlap with the bottom 28em of page
* content.
* It has two classes. "windowpane" turns it on. "minimal" or "maximal"
* control its height.
*/
#console_filler {
display: none;
}
#console_filler.windowpane {
display: block;
z-index: -1; /* Go behind the actual console */
width: 100%;
position: relative;
bottom: 0;
left: 0;
right: 0;
}
#console_filler.maximal {
/* total height of console = 20em + 1em + 0.5em + 0.5em + 0.5em + 1em + borders
*/
height: 24em;
}
#console_filler.minimal {
/* total height of console = 1em + 0.5em + 0.5em
*/
height: 2em;
}
pre.errorMsg {
color: red;
margin-top: 0em;
margin-bottom: 0em;
}
pre.inputMsg {
color: gray;
margin-top: 0em;
margin-bottom: 0em;
}
pre.outputMsg {
margin-top: 0em;
margin-bottom: 0em;
}
|