1262182Semaste//===-- CommandObjectGUI.cpp ------------------------------------*- C++ -*-===//
2262182Semaste//
3262182Semaste//                     The LLVM Compiler Infrastructure
4262182Semaste//
5262182Semaste// This file is distributed under the University of Illinois Open Source
6262182Semaste// License. See LICENSE.TXT for details.
7262182Semaste//
8262182Semaste//===----------------------------------------------------------------------===//
9262182Semaste
10262182Semaste#include "lldb/lldb-python.h"
11262182Semaste
12262182Semaste#include "CommandObjectGUI.h"
13262182Semaste
14262182Semaste// C Includes
15262182Semaste// C++ Includes
16262182Semaste// Other libraries and framework includes
17262182Semaste// Project includes
18262182Semaste#include "lldb/lldb-private.h"
19262182Semaste#include "lldb/Interpreter/CommandInterpreter.h"
20262182Semaste#include "lldb/Interpreter/CommandReturnObject.h"
21262182Semaste
22262182Semasteusing namespace lldb;
23262182Semasteusing namespace lldb_private;
24262182Semaste
25262182Semaste//-------------------------------------------------------------------------
26262182Semaste// CommandObjectGUI
27262182Semaste//-------------------------------------------------------------------------
28262182Semaste
29262182SemasteCommandObjectGUI::CommandObjectGUI (CommandInterpreter &interpreter) :
30262182Semaste    CommandObjectParsed (interpreter, "gui", "Switch into the curses based GUI mode.", "gui")
31262182Semaste{
32262182Semaste}
33262182Semaste
34262182SemasteCommandObjectGUI::~CommandObjectGUI ()
35262182Semaste{
36262182Semaste}
37262182Semaste
38262182Semastebool
39262182SemasteCommandObjectGUI::DoExecute (Args& args, CommandReturnObject &result)
40262182Semaste{
41262182Semaste#ifndef LLDB_DISABLE_CURSES
42262182Semaste    if (args.GetArgumentCount() == 0)
43262182Semaste    {
44262182Semaste        Debugger &debugger = m_interpreter.GetDebugger();
45262182Semaste        IOHandlerSP io_handler_sp (new IOHandlerCursesGUI (debugger));
46262182Semaste        if (io_handler_sp)
47262182Semaste            debugger.PushIOHandler(io_handler_sp);
48262182Semaste        result.SetStatus (eReturnStatusSuccessFinishResult);
49262182Semaste    }
50262182Semaste    else
51262182Semaste    {
52262182Semaste        result.AppendError("the gui command takes no arguments.");
53262182Semaste        result.SetStatus (eReturnStatusFailed);
54262182Semaste    }
55262182Semaste    return true;
56262182Semaste#else
57262182Semaste    result.AppendError("lldb was not build with gui support");
58262182Semaste    return false;
59262182Semaste#endif
60262182Semaste}
61262182Semaste
62