mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Context: Combined interactive.cpp and Context.cpp
This commit is contained in:
parent
19b2151f12
commit
bfefd247c4
3 changed files with 72 additions and 106 deletions
|
@ -42,10 +42,18 @@
|
|||
#include <util.h>
|
||||
#include <main.h>
|
||||
#include <i18n.h>
|
||||
|
||||
#ifdef HAVE_COMMIT
|
||||
#include <commit.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
#ifdef SOLARIS
|
||||
#include <sys/termios.h>
|
||||
#endif
|
||||
|
||||
// Supported modifiers, synonyms on the same line.
|
||||
static const char* modifierNames[] =
|
||||
{
|
||||
|
@ -469,6 +477,70 @@ int Context::dispatch (std::string &out)
|
|||
return commands["help"]->execute (out);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
int Context::getWidth ()
|
||||
{
|
||||
// Determine window size.
|
||||
int width = config.getInteger ("defaultwidth");
|
||||
|
||||
// A zero width value means 'infinity', which is approximated here by 2^16.
|
||||
if (width == 0)
|
||||
return 65536;
|
||||
|
||||
if (config.getBoolean ("detection"))
|
||||
{
|
||||
if (terminal_width == 0 &&
|
||||
terminal_height == 0)
|
||||
{
|
||||
unsigned short buff[4];
|
||||
if (ioctl (STDOUT_FILENO, TIOCGWINSZ, &buff) != -1)
|
||||
{
|
||||
terminal_height = buff[0];
|
||||
terminal_width = buff[1];
|
||||
}
|
||||
}
|
||||
|
||||
width = terminal_width;
|
||||
|
||||
// Ncurses does this, and perhaps we need to as well, to avoid a problem on
|
||||
// Cygwin where the display goes right up to the terminal width, and causes
|
||||
// an odd color wrapping problem.
|
||||
if (config.getBoolean ("avoidlastcolumn"))
|
||||
--width;
|
||||
}
|
||||
|
||||
return width;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
int Context::getHeight ()
|
||||
{
|
||||
// Determine window size.
|
||||
int height = config.getInteger ("defaultheight");
|
||||
|
||||
// A zero height value means 'infinity', which is approximated here by 2^16.
|
||||
if (height == 0)
|
||||
return 65536;
|
||||
|
||||
if (config.getBoolean ("detection"))
|
||||
{
|
||||
if (terminal_width == 0 &&
|
||||
terminal_height == 0)
|
||||
{
|
||||
unsigned short buff[4];
|
||||
if (ioctl (STDOUT_FILENO, TIOCGWINSZ, &buff) != -1)
|
||||
{
|
||||
terminal_height = buff[0];
|
||||
terminal_width = buff[1];
|
||||
}
|
||||
}
|
||||
|
||||
height = terminal_height;
|
||||
}
|
||||
|
||||
return height;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
bool Context::color ()
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue