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.
3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 |
# File 'ext/curses/curses.c', line 3766
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.
3889 3890 3891 3892 3893 3894 3895 3896 |
# File 'ext/curses/curses.c', line 3889
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.
3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 |
# File 'ext/curses/curses.c', line 3870
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.
3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 |
# File 'ext/curses/curses.c', line 3815
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
4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 |
# File 'ext/curses/curses.c', line 4025
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
4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 |
# File 'ext/curses/curses.c', line 4037
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.
3853 3854 3855 3856 3857 3858 3859 3860 |
# File 'ext/curses/curses.c', line 3853
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.
3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 |
# File 'ext/curses/curses.c', line 3834
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
3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 |
# File 'ext/curses/curses.c', line 3953
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
3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 |
# File 'ext/curses/curses.c', line 3989
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
4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 |
# File 'ext/curses/curses.c', line 4049
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
4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 |
# File 'ext/curses/curses.c', line 4061
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
4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 |
# File 'ext/curses/curses.c', line 4013
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
4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 |
# File 'ext/curses/curses.c', line 4001
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.
3944 3945 3946 3947 3948 3949 3950 3951 |
# File 'ext/curses/curses.c', line 3944
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.
3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 |
# File 'ext/curses/curses.c', line 3925
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.
3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 |
# File 'ext/curses/curses.c', line 3906
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.
3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 |
# File 'ext/curses/curses.c', line 3870
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.
3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 |
# File 'ext/curses/curses.c', line 3795
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.
3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 |
# File 'ext/curses/curses.c', line 3834
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
4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 |
# File 'ext/curses/curses.c', line 4061
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
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 4149 4150 4151 |
# File 'ext/curses/curses.c', line 4080
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
3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 |
# File 'ext/curses/curses.c', line 3977
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
3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 |
# File 'ext/curses/curses.c', line 3965
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);
}
|