Class: Curses::Field
- Inherits:
-
Data
- Object
- Data
- Curses::Field
- Defined in:
- ext/curses/curses.c
Instance Method Summary collapse
-
#back ⇒ Object
call-seq: back.
-
#back=(attr) ⇒ Object
call-seq: set_back(attr).
-
#buffer(buf) ⇒ Object
call-seq: buffer(buf).
- #dynamic_height ⇒ Object
- #dynamic_width ⇒ Object
-
#fore ⇒ Object
call-seq: fore.
-
#fore=(attr) ⇒ Object
call-seq: set_fore(attr).
- #height ⇒ Object
-
#initialize(height, width, toprow, leftcol, offscreen, nbuffers) ⇒ Object
constructor
call-seq: new(height, width, toprow, leftcol, offscreen, nbuffers).
- #leftcol ⇒ Object
- #max ⇒ Object
- #max=(max) ⇒ Object
- #nbuffers ⇒ Object
- #offscreen ⇒ Object
-
#opts ⇒ Object
call-seq: opts.
-
#opts_off(opts) ⇒ Object
call-seq: opts_off(opts).
-
#opts_on(opts) ⇒ Object
call-seq: opts_on(opts).
-
#set_back(attr) ⇒ Object
call-seq: set_back(attr).
-
#set_buffer(buf, value) ⇒ Object
call-seq: set_buffer(buf, value).
-
#set_fore(attr) ⇒ Object
call-seq: set_fore(attr).
- #set_max(max) ⇒ Object
- #set_type(*args) ⇒ Object
- #toprow ⇒ Object
- #width ⇒ Object
Constructor Details
#initialize(height, width, toprow, leftcol, offscreen, nbuffers) ⇒ Object
call-seq:
new(height, width, toprow, leftcol, offscreen, nbuffers)
Construct a new Curses::Field.
3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 |
# File 'ext/curses/curses.c', line 3763
static VALUE
field_initialize(VALUE obj, VALUE height, VALUE width,
VALUE toprow, VALUE leftcol, VALUE offscreen, VALUE nbuffers)
{
struct fielddata *fieldp;
curses_init_screen();
TypedData_Get_Struct(obj, struct fielddata, &fielddata_type, fieldp);
if (fieldp->field) {
rb_raise(rb_eRuntimeError, "already initialized field");
}
fieldp->field = new_field(NUM2INT(height), NUM2INT(width),
NUM2INT(toprow), NUM2INT(leftcol),
NUM2INT(offscreen), NUM2INT(nbuffers));
if (fieldp->field == NULL) {
check_curses_error(errno);
}
return obj;
}
|
Instance Method Details
#back ⇒ Object
call-seq:
back
Get the background attribute of the field.
3886 3887 3888 3889 3890 3891 3892 3893 |
# File 'ext/curses/curses.c', line 3886
static VALUE
field_get_back(VALUE obj)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
return CHTYPE2NUM(field_back(fieldp->field));
}
|
#back=(attr) ⇒ Object
call-seq:
set_back(attr)
Set the background attribute of the field.
3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 |
# File 'ext/curses/curses.c', line 3867
static VALUE
field_set_back(VALUE obj, VALUE attr)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
set_field_back(fieldp->field, NUM2CHTYPE(attr));
return attr;
}
|
#buffer(buf) ⇒ Object
call-seq:
buffer(buf)
Get the numbered buffer of the field.
3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 |
# File 'ext/curses/curses.c', line 3812
static VALUE
field_buffer_m(VALUE obj, VALUE buf)
{
struct fielddata *fieldp;
char *s;
GetFIELD(obj, fieldp);
s = field_buffer(fieldp->field, NUM2INT(buf));
return rb_external_str_new_with_enc(s, strlen(s), terminal_encoding);
}
|
#dynamic_height ⇒ Object
4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 |
# File 'ext/curses/curses.c', line 4022
static VALUE
field_dynamic_height(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = dynamic_field_info(fieldp->field, &val, NULL, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|
#dynamic_width ⇒ Object
4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 |
# File 'ext/curses/curses.c', line 4034
static VALUE
field_dynamic_width(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = dynamic_field_info(fieldp->field, NULL, &val, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|
#fore ⇒ Object
call-seq:
fore
Get the foreground attribute of the field.
3850 3851 3852 3853 3854 3855 3856 3857 |
# File 'ext/curses/curses.c', line 3850
static VALUE
field_get_fore(VALUE obj)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
return CHTYPE2NUM(field_fore(fieldp->field));
}
|
#fore=(attr) ⇒ Object
call-seq:
set_fore(attr)
Set the foreground attribute of the field.
3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 |
# File 'ext/curses/curses.c', line 3831
static VALUE
field_set_fore(VALUE obj, VALUE attr)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
set_field_fore(fieldp->field, NUM2CHTYPE(attr));
return attr;
}
|
#height ⇒ Object
3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 |
# File 'ext/curses/curses.c', line 3950
static VALUE
field_height(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = field_info(fieldp->field, &val, NULL, NULL, NULL, NULL, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|
#leftcol ⇒ Object
3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 |
# File 'ext/curses/curses.c', line 3986
static VALUE
field_leftcol(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = field_info(fieldp->field, NULL, NULL, NULL, &val, NULL, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|
#max ⇒ Object
4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 |
# File 'ext/curses/curses.c', line 4046
static VALUE
field_max(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = dynamic_field_info(fieldp->field, NULL, NULL, &val);
check_curses_error(error);
return INT2NUM(val);
}
|
#max=(max) ⇒ Object
4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 |
# File 'ext/curses/curses.c', line 4058
static VALUE
field_set_max(VALUE obj, VALUE max)
{
struct fielddata *fieldp;
int error;
GetFIELD(obj, fieldp);
error = set_max_field(fieldp->field, NUM2INT(max));
check_curses_error(error);
return max;
}
|
#nbuffers ⇒ Object
4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 |
# File 'ext/curses/curses.c', line 4010
static VALUE
field_nbuffers(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = field_info(fieldp->field, NULL, NULL, NULL, NULL, NULL, &val);
check_curses_error(error);
return INT2NUM(val);
}
|
#offscreen ⇒ Object
3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 |
# File 'ext/curses/curses.c', line 3998
static VALUE
field_offscreen(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = field_info(fieldp->field, NULL, NULL, NULL, NULL, &val, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|
#opts ⇒ Object
call-seq:
opts
Get the current option bits.
3941 3942 3943 3944 3945 3946 3947 3948 |
# File 'ext/curses/curses.c', line 3941
static VALUE
field_opts_m(VALUE obj)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
return INT2NUM(field_opts(fieldp->field));
}
|
#opts_off(opts) ⇒ Object
call-seq:
opts_off(opts)
Turn off the given option bits.
3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 |
# File 'ext/curses/curses.c', line 3922
static VALUE
field_opts_off_m(VALUE obj, VALUE opts)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
field_opts_off(fieldp->field, NUM2INT(opts));
return opts;
}
|
#opts_on(opts) ⇒ Object
call-seq:
opts_on(opts)
Turn on the given option bits.
3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 |
# File 'ext/curses/curses.c', line 3903
static VALUE
field_opts_on_m(VALUE obj, VALUE opts)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
field_opts_on(fieldp->field, NUM2INT(opts));
return opts;
}
|
#set_back(attr) ⇒ Object
call-seq:
set_back(attr)
Set the background attribute of the field.
3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 |
# File 'ext/curses/curses.c', line 3867
static VALUE
field_set_back(VALUE obj, VALUE attr)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
set_field_back(fieldp->field, NUM2CHTYPE(attr));
return attr;
}
|
#set_buffer(buf, value) ⇒ Object
call-seq:
set_buffer(buf, value)
Set the numbered buffer of the field.
3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 |
# File 'ext/curses/curses.c', line 3792
static VALUE
field_set_buffer(VALUE obj, VALUE buf, VALUE value)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
value = rb_str_export_to_enc(value, terminal_encoding);
set_field_buffer(fieldp->field, NUM2INT(buf), StringValueCStr(value));
return obj;
}
|
#set_fore(attr) ⇒ Object
call-seq:
set_fore(attr)
Set the foreground attribute of the field.
3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 |
# File 'ext/curses/curses.c', line 3831
static VALUE
field_set_fore(VALUE obj, VALUE attr)
{
struct fielddata *fieldp;
GetFIELD(obj, fieldp);
set_field_fore(fieldp->field, NUM2CHTYPE(attr));
return attr;
}
|
#set_max(max) ⇒ Object
4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 |
# File 'ext/curses/curses.c', line 4058
static VALUE
field_set_max(VALUE obj, VALUE max)
{
struct fielddata *fieldp;
int error;
GetFIELD(obj, fieldp);
error = set_max_field(fieldp->field, NUM2INT(max));
check_curses_error(error);
return max;
}
|
#set_type(*args) ⇒ Object
4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 |
# File 'ext/curses/curses.c', line 4077
static VALUE
field_set_type(int argc, VALUE *argv, VALUE obj)
{
struct fielddata *fieldp;
VALUE type;
int type_code;
int error;
if (argc < 1) {
rb_raise(rb_eArgError,
"wrong number of arguments (given %d, expected 1)", argc);
}
type_code = NUM2INT(argv[0]);
GetFIELD(obj, fieldp);
switch (type_code) {
case TYPE_CODE_ALPHA:
{
VALUE width;
rb_scan_args(argc, argv, "11", &type, &width);
error = set_field_type(fieldp->field, TYPE_ALPHA,
NIL_P(width) ? 0 : NUM2INT(width));
}
break;
case TYPE_CODE_ALNUM:
{
VALUE width;
rb_scan_args(argc, argv, "11", &type, &width);
error = set_field_type(fieldp->field, TYPE_ALNUM,
NIL_P(width) ? 0 : NUM2INT(width));
}
break;
#if 0
case TYPE_CODE_ENUM:
{
/* TODO: consider how valuelist should be allocated? */
}
break;
#endif
case TYPE_CODE_INTEGER:
{
VALUE padding, vmin, vmax;
rb_scan_args(argc, argv, "13", &type, &padding, &vmin, &vmax);
error = set_field_type(fieldp->field, TYPE_INTEGER,
NIL_P(padding) ? 0 : NUM2INT(padding),
NIL_P(vmin) ? INT_MIN : NUM2INT(vmin),
NIL_P(vmax) ? INT_MAX : NUM2INT(vmax));
}
break;
case TYPE_CODE_NUMERIC:
{
VALUE padding, vmin, vmax;
rb_scan_args(argc, argv, "13", &type, &padding, &vmin, &vmax);
error = set_field_type(fieldp->field, TYPE_INTEGER,
NIL_P(padding) ? 0 : NUM2INT(padding),
NIL_P(vmin) ? INT_MIN : NUM2INT(vmin),
NIL_P(vmax) ? INT_MAX : NUM2INT(vmax));
}
break;
#if 0
case TYPE_CODE_REGEXP:
{
/* TODO: consider how regexp should be allocated? */
}
break;
#endif
default:
rb_raise(rb_eArgError, "unknwon type: %d", type_code);
break;
}
check_curses_error(error);
return obj;
}
|
#toprow ⇒ Object
3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 |
# File 'ext/curses/curses.c', line 3974
static VALUE
field_toprow(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = field_info(fieldp->field, NULL, NULL, &val, NULL, NULL, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|
#width ⇒ Object
3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 |
# File 'ext/curses/curses.c', line 3962
static VALUE
field_width(VALUE obj)
{
struct fielddata *fieldp;
int error, val;
GetFIELD(obj, fieldp);
error = field_info(fieldp->field, NULL, &val, NULL, NULL, NULL, NULL);
check_curses_error(error);
return INT2NUM(val);
}
|