cling/lib/UserInterface/textinput/TextInputContext.cpp

66 lines
1.7 KiB
C++

//===--- TextInputContext.cpp - Object Holder -------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines the internal interface for TextInput's auxiliary
// objects.
//
// Axel Naumann <axel@cern.ch>, 2011-05-12
//===----------------------------------------------------------------------===//
#include "textinput/TextInputContext.h"
#include "textinput/Editor.h"
#include "textinput/KeyBinding.h"
#include "textinput/SignalHandler.h"
#include "textinput/Reader.h"
#include "textinput/Display.h"
#include "textinput/History.h"
#include "textinput/Color.h"
textinput::TextInputContext::TextInputContext(TextInput* ti,
const char* histFile):
fTextInput(ti), fBind(0), fEdit(0), fSignal(0), fColor(0), fHist(0),
fTabCompletion(0), fFunKey(0), fCursor(0) {
fHist = new History(histFile);
fEdit = new Editor(this);
fBind = new KeyBinding();
fSignal = new SignalHandler();
}
textinput::TextInputContext::~TextInputContext() {
delete fBind;
delete fEdit;
delete fSignal;
delete fHist;
}
textinput::TextInputContext&
textinput::TextInputContext::AddReader(Reader& R) {
fReaders.push_back(&R);
R.SetContext(this);
return *this;
}
textinput::TextInputContext&
textinput::TextInputContext::AddDisplay(Display& D) {
fDisplays.push_back(&D);
D.SetContext(this);
return *this;
}
// vtable goes here.
textinput::Colorizer::~Colorizer() {}
textinput::Display::~Display() {
Detach();
}
textinput::Reader::~Reader() {
ReleaseInputFocus();
}