aboutsummaryrefslogtreecommitdiff
path: root/src/ui/status.c
blob: 703575da6e6ae6183ae07f100efc3ad6175a7fdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <ncurses.h>
#include <string.h>

#include "color.h"
#include "config.h"
#include "connect.h"
#include "status.h"
#include "url.h"

void init_status(struct config *conf) {
  WINDOW *status = newwin(1, conf->i.width, conf->i.height - 1, 0);

  conf->i.status_win = status;
  update_status(conf, "");
}

void update_status(struct config *conf, char *s) {
  werase(conf->i.status_win);
  wbkgd(conf->i.status_win, COLOR_PAIR(STATUS_MAIN));
  wprintw(conf->i.status_win, "%s", s);
  wrefresh(conf->i.status_win);
}

void prompt_status_url(struct config *conf) {
  echo();
  curs_set(1);

  werase(conf->i.status_win);

  char prompt[] = "Enter a molerat URL: molerat://";
  werase(conf->i.status_win);
  wbkgd(conf->i.status_win, COLOR_PAIR(STATUS_PROMPT));
  wprintw(conf->i.status_win, "%s", prompt);
  wrefresh(conf->i.status_win);

  char url_string[MAX_URL_LENGTH];
  wgetstr(conf->i.status_win, url_string);

  char url_string_with_scheme[MAX_URL_LENGTH] = "molerat://";
  strlcat(url_string_with_scheme, url_string, MAX_URL_LENGTH);

  conf->s.url_string = url_string_with_scheme;

  curs_set(0);
  noecho();
}

void error_status(struct config *conf, char *s) {
  werase(conf->i.status_win);
  wbkgd(conf->i.status_win, COLOR_PAIR(STATUS_ERROR));
  wprintw(conf->i.status_win, "Error: %s [Press RETURN]", s);
  wrefresh(conf->i.status_win);
  getch();
}