net: tcp_client_socket connection state routines
[quarnos.git] / hydra / edit.cpp
blob1dfa86d5be4fbd3158ffb65fd617254ab49a1064
1 /* Quarn OS / Hydra
3 * Edit class implementation
5 * Copyright (C) 2008-2009 Pawel Dziepak
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 #include "ui.h"
24 #include "console.h"
25 #include "edit.h"
26 #include "uapi.h"
28 #include "libs/delegate.h"
30 using namespace hydra;
32 edit::edit(p<form> frm, delegate<void, string> uievent, string name) : ui_element(name), filled(false) {
33 ui_event = uievent;
34 index = 0;
35 frm->add(this);
37 value.method(this, &edit::get_value);
41 edit::edit(p<form> frm, string name) : ui_element(name), filled(false) {
42 index = 0;
43 frm->add(this);
45 value.method(this, &edit::get_value);
48 void edit::on_keyb() {/*
49 uapi::input->read(&(buffer[index++]),1);
50 if (buffer[index-1] == '\n') {
51 delegate<void> del;
52 uapi::input->set_ondatareceived(del);
53 buffer[index-1] = 0;
54 filled = true;
55 ui_event(buffer);
56 }*/
59 string edit::get_value() {
60 string s((char*)buffer);
61 return s;
64 void edit::render(ui::ui_type) {
65 index = 0;
67 for (char last = '\0'; last != '\n'; index++) {
68 uapi::input->read(&buffer[index],1);
69 last = buffer[index];
71 buffer[index-1] = 0;