Mon, 15 Dec 2014 20:18:56 +0200
- revert previous commits to create a common experimental ancestor
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
1 | /* | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
2 | Copyright 2014 Teemu Piippo | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
3 | All rights reserved. | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
4 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
5 | Redistribution and use in source and binary forms, with or without | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
6 | modification, are permitted provided that the following conditions | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
7 | are met: | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
8 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
9 | 1. Redistributions of source code must retain the above copyright | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
10 | notice, this list of conditions and the following disclaimer. | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
11 | 2. Redistributions in binary form must reproduce the above copyright | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
12 | notice, this list of conditions and the following disclaimer in the | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
13 | documentation and/or other materials provided with the distribution. | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
14 | 3. Neither the name of the copyright holder nor the names of its | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
15 | contributors may be used to endorse or promote products derived from | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
16 | this software without specific prior written permission. | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
17 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
20 | TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
21 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
22 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
23 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
24 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
25 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
26 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
27 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
28 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
29 | */ | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
30 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
31 | #include <string.h> | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
32 | #include "interface.h" | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
33 | #include "network/rconsession.h" | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
34 | #include "network/ipaddress.h" | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
35 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
36 | enum | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
37 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
38 | RLINE_ON_BLACK = 256, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
39 | RLINE_ON_RED, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
40 | RLINE_ON_GREEN, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
41 | RLINE_ON_YELLOW, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
42 | RLINE_ON_BLUE, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
43 | RLINE_ON_MAGENTA, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
44 | RLINE_ON_CYAN, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
45 | RLINE_ON_WHITE, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
46 | RLINE_ON_BOLD, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
47 | RLINE_OFF_BLACK, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
48 | RLINE_OFF_RED, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
49 | RLINE_OFF_GREEN, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
50 | RLINE_OFF_YELLOW, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
51 | RLINE_OFF_BLUE, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
52 | RLINE_OFF_MAGENTA, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
53 | RLINE_OFF_CYAN, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
54 | RLINE_OFF_WHITE, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
55 | RLINE_OFF_BOLD, | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
56 | }; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
57 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
58 | class RendererLine | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
59 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
60 | public: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
61 | RendererLine() {} | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
62 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
63 | METHOD data() const -> const Vector<int>& { return m_data; } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
64 | METHOD length() const -> int { return m_length; } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
65 | METHOD add_char (char ch) -> void; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
66 | METHOD finalize() -> void; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
67 | METHOD rows (int cols) const -> int; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
68 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
69 | private: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
70 | METHOD set_color (Color a, bool on) -> void; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
71 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
72 | Vector<int> m_data; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
73 | int m_length = 0; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
74 | bool m_final = false; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
75 | Color m_activeColor = DEFAULT; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
76 | bool m_boldActive = false; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
77 | int m_colorCodeStage = 0; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
78 | String m_string; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
79 | }; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
80 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
81 | static const int g_pageSize = 10; | 
| 
16
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
82 | |
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
83 | enum InputState | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
84 | { | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
85 | INPUTSTATE_NORMAL, | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
86 | INPUTSTATE_ADDRESS, | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
87 | INPUTSTATE_PASSWORD, | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
88 | INPUTSTATE_CONFIRM_DISCONNECTION, | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
89 | }; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
90 | |
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
91 | static StringList g_input; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
92 | static int g_inputCursor = 0; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
93 | static int g_cursor = 0; | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
94 | static int g_pan = 0; | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
95 | static bool g_needRefresh = false; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
96 | static bool g_needStatusBarRender = false; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
97 | static bool g_needInputRender = false; | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
98 | static bool g_needOutputRender = false; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
99 | static struct { char ch; int x; } g_cursorChar; | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
100 | static Vector<RendererLine> g_output;; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
101 | static int g_outputScroll = 0; | 
| 
23
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
102 | static String g_title; | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
103 | static InputState g_inputState = INPUTSTATE_NORMAL; | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
104 | static Function<void (void)> g_disconnectConfirmFunction = nullptr; | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
105 | static IPAddress g_address; | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
106 | static String g_statusBarText; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
107 | |
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
108 | static const struct { Color color; bool bold; } g_colorCodes['v' - 'a' + 1] = | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
109 | { | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
110 | { RED, true }, // a - brick | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
111 | { YELLOW, true }, // b - tan | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
112 | { WHITE, false }, // c - gray | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
113 | { GREEN, true }, // d - light green | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
114 | { YELLOW, false }, // e - brown | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
115 | { YELLOW, true }, // f - gold yellow | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
116 | { RED, true }, // g - bright red | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
117 | { BLUE, false }, // h - dark blue | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
118 | { YELLOW, false }, // i - orange | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
119 | { WHITE, true }, // j - white | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
120 | { YELLOW, true }, // k - fire yellow | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
121 | { DEFAULT, false }, // l - untranslated | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
122 | { BLACK, false }, // m - black | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
123 | { BLUE, true }, // n - light blue | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
124 | { YELLOW, true }, // o - cream | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
125 | { GREEN, true }, // p - olive green | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
126 | { GREEN, false }, // q - dark green | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
127 | { RED, false }, // r - dark red | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
128 | { YELLOW, false }, // s - dark brown | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
129 | { MAGENTA, false }, // t - purple | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
130 | { BLACK, true }, // u - dark gray | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
131 | { CYAN, true }, // v - cyan | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
132 | }; | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
133 | |
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
134 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
135 | // | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
136 | static FUNCTION | 
| 
20
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
137 | interface_color_pair (Color fg, Color bg) -> int | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
138 | { | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
139 | return COLOR_PAIR ((int (fg) * NUM_COLORS) + int (bg)); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
140 | } | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
141 | |
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
142 | // ------------------------------------------------------------------------------------------------- | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
143 | // | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
144 | static FUNCTION | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
145 | current_input() -> const String& | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
146 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
147 | return g_input[g_inputCursor]; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
148 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
149 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
150 | // ------------------------------------------------------------------------------------------------- | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
151 | // | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
152 | // Makes current_input() the lastmost input (so that we won't modify history) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
153 | // | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
154 | static FUNCTION | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
155 | detach_input() -> void | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
156 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
157 | if (g_inputCursor > 0) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
158 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
159 | g_input[0] = current_input(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
160 | g_inputCursor = 0; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
161 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
162 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
163 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
164 | // ------------------------------------------------------------------------------------------------- | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
165 | // A version of current_input() that allows changing the contents of it. | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
166 | // | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
167 | static FUNCTION | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
168 | mutable_current_input() -> String& | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
169 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
170 | detach_input(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
171 | return g_input[g_inputCursor]; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
172 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
173 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
174 | // ------------------------------------------------------------------------------------------------- | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
175 | // | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
176 | static FUNCTION | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
177 | move_input_cursor (int delta) -> void | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
178 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
179 | // No input history when inputting addresses or passwords | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
180 | if (g_inputState != INPUTSTATE_NORMAL) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
181 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
182 | g_inputCursor = 0; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
183 | return; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
184 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
185 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
186 | int oldcursor = g_inputCursor; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
187 | g_inputCursor = clamp (g_inputCursor + delta, 0, g_input.size() - 1); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
188 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
189 | if (g_inputCursor != oldcursor) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
190 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
191 | g_cursor = current_input().length(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
192 | g_needInputRender = true; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
193 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
194 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
195 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
196 | // ------------------------------------------------------------------------------------------------- | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
197 | // | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
198 | static FUNCTION | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
199 | interface_prompt_string() -> String | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
200 | { | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
201 | String prompt; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
202 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
203 | switch (g_inputState) | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
204 | { | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
205 | case INPUTSTATE_NORMAL: prompt = ">"; break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
206 | case INPUTSTATE_ADDRESS: prompt = "address:"; break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
207 | case INPUTSTATE_PASSWORD: prompt = "password:"; break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
208 | case INPUTSTATE_CONFIRM_DISCONNECTION: break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
209 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
210 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
211 | return prompt; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
212 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
213 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
214 | // ------------------------------------------------------------------------------------------------- | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
215 | // | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
216 | static FUNCTION | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
217 | set_input_state (InputState newstate) -> void | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
218 | { | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
219 | // Clear the input row (unless going to or from confirm state) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
220 | if (newstate != INPUTSTATE_CONFIRM_DISCONNECTION | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
221 | and g_inputState != INPUTSTATE_CONFIRM_DISCONNECTION) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
222 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
223 | g_inputCursor = 0; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
224 | mutable_current_input().clear(); | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
225 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
226 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
227 | switch (newstate) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
228 | { | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
229 | case INPUTSTATE_ADDRESS: | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
230 | if (g_address.host != 0) | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
231 | mutable_current_input() = g_address.to_string (IP_WITH_PORT); | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
232 | break; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
233 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
234 | default: | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
235 | break; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
236 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
237 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
238 | g_inputState = newstate; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
239 | g_needInputRender = true; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
240 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
241 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
242 | // ------------------------------------------------------------------------------------------------- | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
243 | // | 
| 
20
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
244 | FUNCTION | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
245 | Interface::initialize() -> void | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
246 | { | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
247 | ::initscr(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
248 | ::start_color(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
249 | ::raw(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
250 | ::keypad (stdscr, true); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
251 | ::noecho(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
252 | ::refresh(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
253 | ::timeout (0); | 
| 
30
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
254 | ::use_default_colors(); | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
255 | g_input.clear(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
256 | g_input << ""; | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
257 | g_output.clear(); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
258 | g_output << RendererLine(); | 
| 
23
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
259 | g_title = format (APPNAME " %1 (%2)", full_version_string(), changeset_date_string()); | 
| 
20
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
260 | |
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
261 | for (int i = 0; i < NUM_COLORS; ++i) | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
262 | for (int j = 0; j < NUM_COLORS; ++j) | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
263 | { | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
264 | init_pair ((i * NUM_COLORS + j), | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
265 | (i == DEFAULT) ? -1 : i, | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
266 | (j == DEFAULT) ? -1 : j); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
267 | } | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
268 | |
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
269 | render_full(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
270 | refresh(); | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
271 | g_needRefresh = false; | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
272 | } | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
273 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
274 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
275 | // | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
276 | static FUNCTION | 
| 
23
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
277 | interface_render_titlebar() -> void | 
| 
20
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
278 | { | 
| 
23
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
279 | if (g_title.length() <= COLS) | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
280 | { | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
281 | int pair = interface_color_pair (WHITE, BLUE); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
282 | int startx = (COLS - g_title.length()) / 2; | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
283 | int endx = startx + g_title.length(); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
284 | attron (pair); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
285 | mvprintw (0, startx, "%s", g_title.chars()); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
286 | mvhline (0, 0, ' ', startx); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
287 | mvhline (0, endx, ' ', COLS - endx); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
288 | attroff (pair); | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
289 | } | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
290 | |
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
291 | g_needRefresh = true; | 
| 
20
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
292 | } | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
293 | |
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
294 | // ------------------------------------------------------------------------------------------------- | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
295 | // | 
| 
23
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
296 | FUNCTION | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
297 | Interface::set_title (const String& title) -> void | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
298 | { | 
| 
23
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
299 | g_title = title; | 
| 
 
f7221183a994
- the prompt is now colored
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
20 
diff
changeset
 | 
300 | interface_render_titlebar(); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
301 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
302 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
303 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
304 | // | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
305 | static FUNCTION | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
306 | safe_disconnect (Function<void()> afterwards) -> void | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
307 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
308 | if (RCONSession::get_session()->is_active()) | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
309 | { | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
310 | g_disconnectConfirmFunction = afterwards; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
311 | set_input_state (INPUTSTATE_CONFIRM_DISCONNECTION); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
312 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
313 | else | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
314 | afterwards(); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
315 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
316 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
317 | // ------------------------------------------------------------------------------------------------- | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
318 | // | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
319 | static FUNCTION | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
320 | interface_render_output() -> void | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
321 | { | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
322 | if (g_output.size() == 1) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
323 | return; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
324 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
325 | g_outputScroll = clamp (g_outputScroll, 0, g_output.size() - 1); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
326 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
327 | int height = LINES - 3; | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
328 | int printOffset = 0; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
329 | int end = g_output.size() - 1 - g_outputScroll; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
330 | int start = end; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
331 | int usedHeight = 0; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
332 | int y = 1; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
333 | bool tightFit = false; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
334 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
335 | // Where to start? | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
336 | while (start > 0) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
337 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
338 | int rows = g_output[start - 1].rows (COLS); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
339 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
340 | if (usedHeight + rows > height) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
341 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
342 | // This line won't fit anymore. | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
343 | tightFit = true; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
344 | break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
345 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
346 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
347 | start--; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
348 | usedHeight += rows; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
349 | } | 
| 
16
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
350 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
351 | // See if there's any more rows to use (end may be too small) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
352 | if (not tightFit) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
353 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
354 | while (end < g_output.size()) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
355 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
356 | int rows = g_output[end].rows (COLS); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
357 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
358 | if (usedHeight + rows > height) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
359 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
360 | tightFit = true; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
361 | break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
362 | } | 
| 
16
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
363 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
364 | end++; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
365 | usedHeight += rows; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
366 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
367 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
368 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
369 | if (start > 0) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
370 | printOffset = height - usedHeight; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
371 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
372 | g_outputScroll = g_output.size() - 1 - end; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
373 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
374 | if (start < 0 or start == end or printOffset >= height) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
375 | return; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
376 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
377 | assert (start <= end and start - end <= height); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
378 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
379 | // Clear the display | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
380 | for (int i = y; i < y + height; ++i) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
381 | mvhline (i, 0, ' ', COLS); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
382 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
383 | // Print the lines | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
384 | y += printOffset; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
385 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
386 | for (int i = start; i < end; ++i) | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
387 | { | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
388 | int x = 0; | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
389 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
390 | for (int byte : g_output[i].data()) | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
391 | { | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
392 | if (x == COLS) | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
393 | { | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
394 | x = 0; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
395 | ++y; | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
396 | } | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
397 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
398 | if (isprint (byte)) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
399 | mvaddch (y, x++, char (byte)); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
400 | else switch (byte) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
401 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
402 | case RLINE_ON_BLACK: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
403 | case RLINE_ON_GREEN: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
404 | case RLINE_ON_YELLOW: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
405 | case RLINE_ON_BLUE: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
406 | case RLINE_ON_MAGENTA: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
407 | case RLINE_ON_CYAN: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
408 | case RLINE_ON_WHITE: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
409 | attron (interface_color_pair (Color (byte - RLINE_ON_BLACK), DEFAULT)); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
410 | break; | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
411 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
412 | case RLINE_OFF_BLACK: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
413 | case RLINE_OFF_GREEN: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
414 | case RLINE_OFF_YELLOW: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
415 | case RLINE_OFF_BLUE: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
416 | case RLINE_OFF_MAGENTA: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
417 | case RLINE_OFF_CYAN: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
418 | case RLINE_OFF_WHITE: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
419 | attroff (interface_color_pair (Color (byte - RLINE_OFF_BLACK), DEFAULT)); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
420 | break; | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
421 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
422 | case RLINE_ON_BOLD: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
423 | attron (A_BOLD); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
424 | break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
425 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
426 | case RLINE_OFF_BOLD: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
427 | attroff (A_BOLD); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
428 | break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
429 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
430 | } | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
431 | |
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
432 | ++y; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
433 | } | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
434 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
435 | g_needOutputRender = false; | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
436 | g_needRefresh = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
437 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
438 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
439 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
440 | // | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
441 | static FUNCTION | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
442 | interface_render_input() -> void | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
443 | { | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
444 | int promptColor = interface_color_pair (WHITE, BLUE); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
445 | |
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
446 | // If we're asking the user if they want to disconnect, we don't render any input strings, | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
447 | // just the confirmation message. | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
448 | if (g_inputState == INPUTSTATE_CONFIRM_DISCONNECTION) | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
449 | { | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
450 | attron (promptColor); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
451 | mvhline (LINES - 2, 0, ' ', COLS); | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
452 | mvprintw (LINES - 2, 0, "Are you sure you want to disconnect? y/n"); | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
453 | attroff (promptColor); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
454 | return; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
455 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
456 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
457 | String prompt = interface_prompt_string(); | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
458 | int displayLength = COLS - prompt.length() - 2; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
459 | String displayString = current_input(); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
460 | int y = LINES - 2; | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
461 | |
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
462 | // If we're inputting a password, replace it with asterisks | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
463 | if (g_inputState == INPUTSTATE_PASSWORD) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
464 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
465 | for (char& ch : displayString) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
466 | ch = '*'; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
467 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
468 | |
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
469 | // Ensure the cursor is within bounds | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
470 | g_cursor = clamp (g_cursor, 0, displayString.length()); | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
471 | |
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
472 | // Ensure that the cursor is always in view, adjust panning if this is not the case | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
473 | if (g_cursor > g_pan + displayLength) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
474 | g_pan = g_cursor - displayLength; // cursor went too far right | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
475 | else if (g_cursor < g_pan) | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
476 | g_pan = g_cursor; // cursor went past the pan value to the left | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
477 | |
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
478 | // What part of the string to draw? | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
479 | int start = g_pan; | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
480 | int end = min<int> (displayString.length(), start + displayLength); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
481 | assert (g_cursor >= start and g_cursor <= end); | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
482 | |
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
483 | // Render the input string | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
484 | mvhline (LINES - 2, 0, ' ', COLS); | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
485 | mvprintw (y, prompt.length() + 1, "%s", displayString.chars()); | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
486 | |
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
487 | // Render the prompt | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
488 | attron (promptColor); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
489 | mvprintw (y, 0, "%s", prompt.chars()); | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
490 | attroff (promptColor); | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
491 | |
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
492 | // Store in memory where the cursor is now (so that we can re-draw it to position the terminal | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
493 | // cursor). | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
494 | g_cursorChar.ch = g_cursor != 0 ? displayString[g_cursor - 1] : '\0'; | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
495 | g_cursorChar.x = prompt.length() + (g_cursor - g_pan); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
496 | g_needRefresh = true; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
497 | g_needInputRender = false; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
498 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
499 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
500 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
501 | // | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
502 | static FUNCTION | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
503 | interface_render_statusbar() -> void | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
504 | { | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
505 | int color = interface_color_pair (WHITE, BLUE); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
506 | int y = LINES - 1; | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
507 | attron (color); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
508 | mvhline (y, 0, ' ', COLS); | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
509 | mvprintw (y, 0, "%s", g_statusBarText.chars()); | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
510 | attroff (color); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
511 | g_needRefresh = true; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
512 | g_needStatusBarRender = false; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
513 | } | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
514 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
515 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
516 | // | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
517 | FUNCTION | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
518 | Interface::update_statusbar() -> void | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
519 | { | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
520 | String text; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
521 | RCONSession* session = RCONSession::get_session(); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
522 | |
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
523 | switch (session->state()) | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
524 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
525 | case RCON_DISCONNECTED: | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
526 | text = "Disconnected."; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
527 | break; | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
528 | |
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
529 | case RCON_CONNECTING: | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
530 | case RCON_AUTHENTICATING: | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
531 | text = "Connecting to " + session->address().to_string (IP_WITH_PORT) + "..."; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
532 | break; | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
533 | |
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
534 | case RCON_CONNECTED: | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
535 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
536 | String adminText = (session->num_admins() == 0) ? "No other admins" | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
537 | : format ("%1 other admin%s1", session->num_admins()); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
538 | text = format ("%1 | %2 | %3", session->address().to_string (IP_WITH_PORT), | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
539 | session->level(), adminText); | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
540 | } | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
541 | break; | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
542 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
543 | |
| 
28
 
3cc042af3090
- added a help message to the statusbar
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
27 
diff
changeset
 | 
544 | if (not text.is_empty()) | 
| 
 
3cc042af3090
- added a help message to the statusbar
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
27 
diff
changeset
 | 
545 | text += " | "; | 
| 
 
3cc042af3090
- added a help message to the statusbar
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
27 
diff
changeset
 | 
546 | |
| 
 
3cc042af3090
- added a help message to the statusbar
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
27 
diff
changeset
 | 
547 | text += "^N to connect, ^Q to quit"; | 
| 
 
3cc042af3090
- added a help message to the statusbar
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
27 
diff
changeset
 | 
548 | |
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
549 | if (text != g_statusBarText) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
550 | { | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
551 | g_statusBarText = text; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
552 | g_needStatusBarRender = true; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
553 | } | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
554 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
555 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
556 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
557 | // | 
| 
20
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
558 | FUNCTION | 
| 
 
5f8cdc8febbb
- now in color! (titlebar at least anyway)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
17 
diff
changeset
 | 
559 | Interface::render_full() -> void | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
560 | { | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
561 | update_statusbar(); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
562 | interface_render_titlebar(); | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
563 | interface_render_output(); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
564 | interface_render_statusbar(); | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
565 | interface_render_input(); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
566 | } | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
567 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
568 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
569 | // | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
570 | static FUNCTION | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
571 | interface_position_cursor() -> void | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
572 | { | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
573 | // This is only relevant if the input string is being drawn | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
574 | if (g_inputState == INPUTSTATE_CONFIRM_DISCONNECTION) | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
575 | return; | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
576 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
577 | int y = LINES - 2; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
578 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
579 | if (g_cursorChar.ch != '\0') | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
580 | mvprintw (y, g_cursorChar.x, "%c", g_cursorChar.ch); | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
581 | else | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
582 | mvprintw (y, interface_prompt_string().length(), " "); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
583 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
584 | |
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
585 | // ------------------------------------------------------------------------------------------------- | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
586 | // | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
587 | FUNCTION | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
588 | Interface::handle_input() -> void | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
589 | { | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
590 | int ch = ::getch(); | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
591 | |
| 
33
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
592 | if (ch == KEY_RESIZE) | 
| 
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
593 | { | 
| 
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
594 | ::clear(); | 
| 
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
595 | render_full(); | 
| 
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
596 | return; | 
| 
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
597 | } | 
| 
 
bb209480d0ec
- handle resizing 8-)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
32 
diff
changeset
 | 
598 | |
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
599 | if (g_inputState == INPUTSTATE_CONFIRM_DISCONNECTION) | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
600 | { | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
601 | if (ch == 'y' or ch == 'Y') | 
| 
30
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
602 | { | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
603 | RCONSession::get_session()->disconnect(); | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
604 | g_disconnectConfirmFunction(); | 
| 
30
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
605 | } | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
606 | else if (ch == 'n' or ch == 'N') | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
607 | set_input_state (INPUTSTATE_NORMAL); | 
| 
30
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
608 | |
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
609 | return; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
610 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
611 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
612 | if (ch >= 0x20 and ch <= 0x7E) | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
613 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
614 | mutable_current_input().insert (g_cursor++, char (ch)); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
615 | g_needInputRender = true; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
616 | } | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
617 | else switch (ch) | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
618 | { | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
619 | case 'Q' - 'A' + 1: // ^Q | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
620 | switch (g_inputState) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
621 | { | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
622 | case INPUTSTATE_CONFIRM_DISCONNECTION: | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
623 | break; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
624 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
625 | case INPUTSTATE_NORMAL: | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
626 | safe_disconnect ([]() | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
627 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
628 | RCONSession* session = RCONSession::get_session(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
629 | |
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
630 | if (session->is_active()) | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
631 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
632 | session->disconnect(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
633 | set_input_state (INPUTSTATE_NORMAL); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
634 | } | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
635 | else | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
636 | { | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
637 | endwin(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
638 | throw Exitception(); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
639 | } | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
640 | }); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
641 | break; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
642 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
643 | case INPUTSTATE_PASSWORD: | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
644 | set_input_state (INPUTSTATE_ADDRESS); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
645 | break; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
646 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
647 | case INPUTSTATE_ADDRESS: | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
648 | set_input_state (INPUTSTATE_NORMAL); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
649 | } | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
650 | break; | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
651 | |
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
652 | case '\e': | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
653 | if (g_inputState == INPUTSTATE_PASSWORD) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
654 | set_input_state (INPUTSTATE_ADDRESS); | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
655 | else if (g_inputState == INPUTSTATE_ADDRESS) | 
| 
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
656 | set_input_state (INPUTSTATE_NORMAL); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
657 | break; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
658 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
659 | case KEY_LEFT: | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
660 | if (g_cursor > 0) | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
661 | { | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
662 | g_cursor--; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
663 | g_needInputRender = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
664 | } | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
665 | break; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
666 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
667 | case KEY_RIGHT: | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
668 | if (g_cursor < current_input().length()) | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
669 | { | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
670 | g_cursor++; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
671 | g_needInputRender = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
672 | } | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
673 | break; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
674 | |
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
675 | case KEY_DOWN: | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
676 | case KEY_UP: | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
677 | move_input_cursor (ch == KEY_DOWN ? -1 : 1); | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
678 | break; | 
| 
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
679 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
680 | case KEY_HOME: | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
681 | if (g_cursor != 0) | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
682 | { | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
683 | g_cursor = 0; | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
684 | g_needInputRender = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
685 | } | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
686 | break; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
687 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
688 | case KEY_END: | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
689 | if (g_cursor != current_input().length()) | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
690 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
691 | g_cursor = current_input().length(); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
692 | g_needInputRender = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
693 | } | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
694 | break; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
695 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
696 | case KEY_BACKSPACE: | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
697 | if (g_cursor > 0) | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
698 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
699 | mutable_current_input().remove_at (--g_cursor); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
700 | g_needInputRender = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
701 | } | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
702 | break; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
703 | |
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
704 | case KEY_DC: | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
705 | if (g_cursor < current_input().length()) | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
706 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
707 | mutable_current_input().remove_at (g_cursor); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
708 | g_needInputRender = true; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
709 | } | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
710 | break; | 
| 
16
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
711 | |
| 
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
712 | case KEY_PPAGE: | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
713 | g_outputScroll += min (g_pageSize, LINES / 2); | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
714 | g_needOutputRender = true; | 
| 
16
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
715 | break; | 
| 
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
716 | |
| 
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
717 | case KEY_NPAGE: | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
718 | g_outputScroll -= min (g_pageSize, LINES / 2); | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
719 | g_needOutputRender = true; | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
720 | break; | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
721 | |
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
722 | case '\n': | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
723 | case KEY_ENTER: | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
724 | switch (g_inputState) | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
725 | { | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
726 | case INPUTSTATE_CONFIRM_DISCONNECTION: | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
727 | break; // handled above | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
728 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
729 | case INPUTSTATE_ADDRESS: | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
730 | try | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
731 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
732 | g_address = IPAddress::from_string (current_input()); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
733 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
734 | catch (std::exception& e) | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
735 | { | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
736 | print (e.what()); | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
737 | return; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
738 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
739 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
740 | if (g_address.port == 0) | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
741 | g_address.port = 10666; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
742 | |
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
743 | set_input_state (INPUTSTATE_PASSWORD); | 
| 
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
744 | break; | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
745 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
746 | case INPUTSTATE_PASSWORD: | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
747 | if (g_inputState == INPUTSTATE_PASSWORD and not current_input().is_empty()) | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
748 | { | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
749 | RCONSession* session = RCONSession::new_session(); | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
750 | session->set_password (current_input()); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
751 | session->connect (g_address); | 
| 
25
 
88b41eea08e0
- cleanup, refactor + better input handling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
24 
diff
changeset
 | 
752 | set_input_state (INPUTSTATE_NORMAL); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
753 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
754 | break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
755 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
756 | case INPUTSTATE_NORMAL: | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
757 | if (RCONSession::get_session()->send_command (current_input())) | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
758 | { | 
| 
31
 
b5b5a6a96d91
- added input history (use up/down to navigate)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
30 
diff
changeset
 | 
759 | g_input.insert (0, ""); | 
| 
24
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
760 | g_needInputRender = true; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
761 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
762 | break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
763 | } | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
764 | break; | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
765 | |
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
766 | case 'N' - 'A' + 1: // ^N | 
| 
 
e651d02802c0
- the interface is now able to connect to arbitrary hosts (uses ^N to start the prompt) instead of the hardcoded localhost:10666
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
23 
diff
changeset
 | 
767 | if (g_inputState == INPUTSTATE_NORMAL) | 
| 
27
 
089e37c0887e
- now exits cleanly with ^Q!
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
25 
diff
changeset
 | 
768 | safe_disconnect ([]() {set_input_state (INPUTSTATE_ADDRESS);}); | 
| 
16
 
33bac54867bf
- added backlog scrolling
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
15 
diff
changeset
 | 
769 | break; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
770 | } | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
771 | } | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
772 | |
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
773 | // ------------------------------------------------------------------------------------------------- | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
774 | // | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
775 | FUNCTION | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
776 | Interface::render() -> void | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
777 | { | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
778 | if (g_needStatusBarRender) interface_render_statusbar(); | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
779 | if (g_needInputRender) interface_render_input(); | 
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
780 | if (g_needOutputRender) interface_render_output(); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
781 | |
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
782 | if (g_needRefresh) | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
783 | { | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
784 | interface_position_cursor(); | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
785 | refresh(); | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
786 | g_needRefresh = false; | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
787 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
788 | } | 
| 
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
789 | |
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
790 | // ------------------------------------------------------------------------------------------------- | 
| 
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
791 | // | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
792 | FUNCTION print_to_console (String a) -> void | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
793 | { | 
| 
32
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
794 | // Zandronum is retarded and SOMETIMES sends color codes as "\\c" and sometimes as "\x1C". | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
795 | // Let's correct that on our end and HOPE this won't cause conflicts. | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
796 | a.replace ("\\c", "\x1C"); | 
| 
 
ee770597a281
- added support for in-game colors
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
31 
diff
changeset
 | 
797 | |
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
798 | for (char ch : a) | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
799 | { | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
800 | if (ch == '\n') | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
801 | { | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
802 | g_output[g_output.size() - 1].finalize(); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
803 | g_output << RendererLine(); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
804 | continue; | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
805 | } | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
806 | |
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
807 | g_output[g_output.size() - 1].add_char (ch); | 
| 
15
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
808 | } | 
| 
 
33da84af4bba
- log area done, re-enabled the rcon connection
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
14 
diff
changeset
 | 
809 | |
| 
17
 
50341dec533e
- added command sending
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
16 
diff
changeset
 | 
810 | g_needOutputRender = true; | 
| 
14
 
33b8f428bacb
- begin work on interface - input line works for the most part :)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents:  
diff
changeset
 | 
811 | } | 
| 
30
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
812 | |
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
813 | // ------------------------------------------------------------------------------------------------- | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
814 | // | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
815 | FUNCTION | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
816 | Interface::connect (String address, String password) -> void | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
817 | { | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
818 | try | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
819 | { | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
820 | g_address = IPAddress::from_string (address); | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
821 | } | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
822 | catch (std::exception& e) | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
823 | { | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
824 | print (e.what()); | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
825 | return; | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
826 | } | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
827 | |
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
828 | if (g_address.port == 0) | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
829 | g_address.port = 10666; | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
830 | |
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
831 | RCONSession* session = RCONSession::new_session(); | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
832 | session->set_password (password); | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
833 | session->connect (g_address); | 
| 
 
21fba5183768
- added a simple command-line interface (you can now supply host and password on the command-line)
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
29 
diff
changeset
 | 
834 | } | 
| 
34
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
835 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
836 | // ------------------------------------------------------------------------------------------------- | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
837 | // | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
838 | METHOD | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
839 | RendererLine::finalize() -> void | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
840 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
841 | if (m_activeColor != DEFAULT) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
842 | this->set_color (m_activeColor, false); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
843 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
844 | if (m_boldActive) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
845 | m_data << RLINE_OFF_BOLD; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
846 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
847 | m_final = true; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
848 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
849 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
850 | // ------------------------------------------------------------------------------------------------- | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
851 | // | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
852 | METHOD | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
853 | RendererLine::add_char (char ch) -> void | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
854 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
855 | if (m_final) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
856 | return; // Don't touch finalized lines. | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
857 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
858 | if (ch == '\x1C' and m_colorCodeStage == 0) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
859 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
860 | m_colorCodeStage = 1; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
861 | return; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
862 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
863 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
864 | if (m_colorCodeStage == 1) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
865 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
866 | if (m_activeColor != DEFAULT) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
867 | this->set_color (m_activeColor, false); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
868 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
869 | if (m_boldActive) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
870 | m_data << RLINE_OFF_BOLD; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
871 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
872 | if (ch >= 'a' and ch <= 'v' and ch != 'l') | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
873 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
874 | auto colorInfo = g_colorCodes[ch - 'a']; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
875 | m_activeColor = colorInfo.color; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
876 | m_boldActive = colorInfo.bold; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
877 | assert (m_activeColor < 8); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
878 | this->set_color (m_activeColor, true); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
879 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
880 | if (m_boldActive) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
881 | m_data << RLINE_ON_BOLD; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
882 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
883 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
884 | m_colorCodeStage = 0; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
885 | return; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
886 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
887 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
888 | if (isprint (ch)) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
889 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
890 | m_string += ch; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
891 | m_data << int (ch); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
892 | ++m_length; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
893 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
894 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
895 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
896 | // ------------------------------------------------------------------------------------------------- | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
897 | // | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
898 | METHOD | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
899 | RendererLine::set_color (Color a, bool on) -> void | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
900 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
901 | switch (a) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
902 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
903 | case BLACK: m_data << (on ? RLINE_ON_BLACK : RLINE_OFF_BLACK); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
904 | case RED: m_data << (on ? RLINE_ON_RED : RLINE_OFF_RED); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
905 | case GREEN: m_data << (on ? RLINE_ON_GREEN : RLINE_OFF_GREEN); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
906 | case YELLOW: m_data << (on ? RLINE_ON_YELLOW : RLINE_OFF_YELLOW); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
907 | case BLUE: m_data << (on ? RLINE_ON_BLUE : RLINE_OFF_BLUE); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
908 | case MAGENTA: m_data << (on ? RLINE_ON_MAGENTA : RLINE_OFF_MAGENTA); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
909 | case CYAN: m_data << (on ? RLINE_ON_CYAN : RLINE_OFF_CYAN); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
910 | case WHITE: m_data << (on ? RLINE_ON_WHITE : RLINE_OFF_WHITE); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
911 | case NUM_COLORS: | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
912 | case DEFAULT: assert (false); break; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
913 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
914 | } | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
915 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
916 | // ------------------------------------------------------------------------------------------------- | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
917 | // How many rows does this line take up? | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
918 | // | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
919 | METHOD | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
920 | RendererLine::rows (int cols) const -> int | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
921 | { | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
922 | int rows = length() / cols; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
923 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
924 | if (length() % cols != 0) | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
925 | rows++; | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
926 | |
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
927 | return max (rows, 1); | 
| 
 
3caf69e7350b
- added line-wrapping to the output widget: lines to output are now first compiled into renderer-friendly format. the output view then uses these pre-processed lines to determine what lines to render. Phew! What a monster of a commit.
 
Teemu Piippo <crimsondusk64@gmail.com> 
parents: 
33 
diff
changeset
 | 
928 | } |