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.
3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 |
# File 'ext/curses/curses.c', line 3756
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.
3879 3880 3881 3882 3883 3884 3885 3886 |
# File 'ext/curses/curses.c', line 3879
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.
3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 |
# File 'ext/curses/curses.c', line 3860
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.
3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 |
# File 'ext/curses/curses.c', line 3805
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
4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 |
# File 'ext/curses/curses.c', line 4015
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
4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 |
# File 'ext/curses/curses.c', line 4027
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.
3843 3844 3845 3846 3847 3848 3849 3850 |
# File 'ext/curses/curses.c', line 3843
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.
3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 |
# File 'ext/curses/curses.c', line 3824
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
3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 |
# File 'ext/curses/curses.c', line 3943
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
3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 |
# File 'ext/curses/curses.c', line 3979
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
4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 |
# File 'ext/curses/curses.c', line 4039
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
4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 |
# File 'ext/curses/curses.c', line 4051
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
4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 |
# File 'ext/curses/curses.c', line 4003
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
3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 |
# File 'ext/curses/curses.c', line 3991
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.
3934 3935 3936 3937 3938 3939 3940 3941 |
# File 'ext/curses/curses.c', line 3934
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.
3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 |
# File 'ext/curses/curses.c', line 3915
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.
3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 |
# File 'ext/curses/curses.c', line 3896
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.
3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 |
# File 'ext/curses/curses.c', line 3860
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.
3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 |
# File 'ext/curses/curses.c', line 3785
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.
3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 |
# File 'ext/curses/curses.c', line 3824
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
4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 |
# File 'ext/curses/curses.c', line 4051
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
4070 4071 4072 4073 4074 4075 4076 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 |
# File 'ext/curses/curses.c', line 4070
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
3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 |
# File 'ext/curses/curses.c', line 3967
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
3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 |
# File 'ext/curses/curses.c', line 3955
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);
}
|