Changeset 1899


Ignore:
Timestamp:
Sep 10, 2012, 2:58:35 AM (7 years ago)
Author:
sam
Message:

neercs: minimalist keyboard support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/neercs/term/term.cpp

    r1890 r1899  
    2525
    2626Term::Term(ivec2 size)
    27   : m_time(0.f)
    28 {
    29     m_caca = caca_create_canvas(size.x, size.y);
    30 
     27  : m_pty(0),
     28    m_caca(caca_create_canvas(size.x, size.y)),
     29    m_size(size),
     30    m_title(0),
     31    m_time(0.f)
     32{
    3133#if defined HAVE_PTY_H || defined HAVE_UTIL_H || defined HAVE_LIBUTIL_H
    3234    m_pty = new Pty();
     
    3436    if (!shell)
    3537        shell = "/bin/sh";
    36     shell = "cacaclock";
    37     shell = "cacafire";
    38     shell = "cacademo";
    3938    m_pty->Run(shell, size);
    4039#endif
     
    4645
    4746#if defined HAVE_PTY_H || defined HAVE_UTIL_H || defined HAVE_LIBUTIL_H
     47    bool have_ctrl = Input::GetStatus(Key::LeftCtrl)
     48                      || Input::GetStatus(Key::RightCtrl);
     49    bool have_shift = Input::GetStatus(Key::LeftShift)
     50                       || Input::GetStatus(Key::RightShift);
     51
     52    for (int i = 0x0; i < 0x7f; ++i)
     53    {
     54        if (Input::WasPressed((Key::Value)i))
     55        {
     56            if (have_ctrl && i >= 'a' && i <= 'z')
     57            {
     58                char c = i + 1 - 'a';
     59                m_pty->WriteData(&c, 1);
     60            }
     61            else if (have_shift && i >= 'a' && i <= 'z')
     62            {
     63                char c = i + 'A' - 'a';
     64                m_pty->WriteData(&c, 1);
     65            }
     66            else
     67            {
     68                char c = i;
     69                m_pty->WriteData(&c, 1);
     70            }
     71        }
     72    }
     73
    4874    /* This is the real terminal code */
    4975    /* XXX: for now we draw fancy shit */
Note: See TracChangeset for help on using the changeset viewer.