Switch to C++
This commit is contained in:
2
ui/BUILD
2
ui/BUILD
@@ -1,6 +1,6 @@
|
||||
cc_library(
|
||||
name="ui",
|
||||
srcs = ["base.c"],
|
||||
srcs = ["base.cc"],
|
||||
hdrs = ["base.h"],
|
||||
deps = ["@system_include//:curses"],
|
||||
visibility = ["//visibility:public"],
|
||||
|
||||
17
ui/base.c
17
ui/base.c
@@ -1,17 +0,0 @@
|
||||
#include "base.h"
|
||||
|
||||
#include <curses.h>
|
||||
#include <string.h>
|
||||
|
||||
void draw_text(int *x, int *y, char *text) {
|
||||
size_t len = strlen(text);
|
||||
if (!len) return;
|
||||
|
||||
mvaddch(*x, *y, text[0]);
|
||||
|
||||
for (size_t i=1; i < strlen(text); i++) {
|
||||
addch(text[i]);
|
||||
}
|
||||
|
||||
getyx(stdscr, *y, *x);
|
||||
}
|
||||
23
ui/base.cc
Normal file
23
ui/base.cc
Normal file
@@ -0,0 +1,23 @@
|
||||
#include "base.h"
|
||||
|
||||
#include <curses.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace ui {
|
||||
void draw_text(const std::string text, int *x, int *y) {
|
||||
if (!text.length()) return;
|
||||
|
||||
auto iter = text.begin();
|
||||
|
||||
mvaddch(*y, *x, *iter);
|
||||
++iter;
|
||||
|
||||
for (; iter != text.end(); ++iter) {
|
||||
addch(*iter);
|
||||
}
|
||||
|
||||
getyx(stdscr, *y, *x);
|
||||
}
|
||||
}
|
||||
14
ui/base.h
14
ui/base.h
@@ -1,10 +1,14 @@
|
||||
#ifndef UI_BASE_H_
|
||||
#define UI_BASE_H_
|
||||
|
||||
/**
|
||||
* Prints the string text starting at position *x, *y. x and y are updated to
|
||||
* the position after the last character
|
||||
*/
|
||||
void draw_text(int *x, int *y, char *text);
|
||||
#include <string>
|
||||
|
||||
namespace ui {
|
||||
/**
|
||||
* Prints the string text starting at position *x, *y. x and y are updated to
|
||||
* the position after the last character
|
||||
*/
|
||||
void draw_text(const std::string text, int *x, int *y);
|
||||
|
||||
} // namespace ui
|
||||
#endif // UI_BASE_H_
|
||||
|
||||
Reference in New Issue
Block a user