272 lines
7.2 KiB
C
272 lines
7.2 KiB
C
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
/*
|
|
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
|
* Copyright (C) 2003,2004 Masao Mutoh
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
* MA 02110-1301 USA
|
|
*/
|
|
|
|
#include "rbatkprivate.h"
|
|
|
|
#define RG_TARGET_NAMESPACE mTable
|
|
#define _SELF(s) (RVAL2ATKTABLE(s))
|
|
|
|
static VALUE
|
|
rg_ref_at(VALUE self, VALUE row, VALUE column)
|
|
{
|
|
return GOBJ2RVAL(atk_table_ref_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_index_at(VALUE self, VALUE row, VALUE column)
|
|
{
|
|
return INT2NUM(atk_table_get_index_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_column_at_index(VALUE self, VALUE index_)
|
|
{
|
|
return INT2NUM(atk_table_get_column_at_index(_SELF(self), NUM2INT(index_)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_row_at_index(VALUE self, VALUE index_)
|
|
{
|
|
return INT2NUM(atk_table_get_row_at_index(_SELF(self), NUM2INT(index_)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_n_columns(VALUE self)
|
|
{
|
|
return INT2NUM(atk_table_get_n_columns(_SELF(self)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_n_rows(VALUE self)
|
|
{
|
|
return INT2NUM(atk_table_get_n_rows(_SELF(self)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_column_extent_at(VALUE self, VALUE row, VALUE column)
|
|
{
|
|
return INT2NUM(atk_table_get_column_extent_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_row_extent_at(VALUE self, VALUE row, VALUE column)
|
|
{
|
|
return INT2NUM(atk_table_get_row_extent_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_caption(VALUE self)
|
|
{
|
|
return GOBJ2RVAL(atk_table_get_caption(_SELF(self)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_column_description(VALUE self, VALUE column)
|
|
{
|
|
return CSTR2RVAL(atk_table_get_column_description(_SELF(self), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_row_description(VALUE self, VALUE row)
|
|
{
|
|
return CSTR2RVAL(atk_table_get_row_description(_SELF(self), NUM2INT(row)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_column_header(VALUE self, VALUE column)
|
|
{
|
|
return GOBJ2RVAL(atk_table_get_column_header(_SELF(self), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_get_row_header(VALUE self, VALUE row)
|
|
{
|
|
return GOBJ2RVAL(atk_table_get_row_header(_SELF(self), NUM2INT(row)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_summary(VALUE self)
|
|
{
|
|
return GOBJ2RVAL(atk_table_get_summary(_SELF(self)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_set_caption(VALUE self, VALUE caption)
|
|
{
|
|
atk_table_set_caption(_SELF(self), RVAL2ATKOBJECT(caption));
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_set_row_description(VALUE self, VALUE row, VALUE description)
|
|
{
|
|
atk_table_set_row_description(_SELF(self), NUM2INT(row), RVAL2CSTR(description));
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_set_column_description(VALUE self, VALUE column, VALUE description)
|
|
{
|
|
atk_table_set_column_description(_SELF(self), NUM2INT(column), RVAL2CSTR(description));
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_set_row_header(VALUE self, VALUE row, VALUE header)
|
|
{
|
|
atk_table_set_row_header(_SELF(self), NUM2INT(row), RVAL2ATKOBJECT(header));
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_set_column_header(VALUE self, VALUE column, VALUE header)
|
|
{
|
|
atk_table_set_column_header(_SELF(self), NUM2INT(column), RVAL2ATKOBJECT(header));
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_set_summary(VALUE self, VALUE accessible)
|
|
{
|
|
atk_table_set_summary(_SELF(self), RVAL2ATKOBJECT(accessible));
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_selected_columns(VALUE self)
|
|
{
|
|
gint ret;
|
|
gint* selected;
|
|
VALUE result = Qnil;
|
|
ret = atk_table_get_selected_columns(_SELF(self), &selected);
|
|
if (ret > 0){
|
|
gint i;
|
|
result = rb_ary_new2(ret);
|
|
for (i = 0; i < ret; i++){
|
|
rb_ary_push(result, INT2NUM(selected[i]));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
static VALUE
|
|
rg_selected_rows(VALUE self)
|
|
{
|
|
gint ret;
|
|
gint* selected;
|
|
VALUE result = Qnil;
|
|
ret = atk_table_get_selected_rows(_SELF(self), &selected);
|
|
if (ret > 0){
|
|
gint i;
|
|
result = rb_ary_new2(ret);
|
|
for (i = 0; i < ret; i++){
|
|
rb_ary_push(result, INT2NUM(selected[i]));
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
static VALUE
|
|
rg_column_selected_p(VALUE self, VALUE column)
|
|
{
|
|
return CBOOL2RVAL(atk_table_is_column_selected(_SELF(self), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_row_selected_p(VALUE self, VALUE row)
|
|
{
|
|
return CBOOL2RVAL(atk_table_is_row_selected(_SELF(self), NUM2INT(row)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_selected_p(VALUE self, VALUE row, VALUE column)
|
|
{
|
|
return CBOOL2RVAL(atk_table_is_selected(_SELF(self), NUM2INT(row), NUM2INT(column)));
|
|
}
|
|
|
|
static VALUE
|
|
rg_add_column_selection(VALUE self, VALUE column)
|
|
{
|
|
gboolean ret = atk_table_add_column_selection(_SELF(self), NUM2INT(column));
|
|
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_add_row_selection(VALUE self, VALUE row)
|
|
{
|
|
gboolean ret = atk_table_add_row_selection(_SELF(self), NUM2INT(row));
|
|
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_remove_column_selection(VALUE self, VALUE column)
|
|
{
|
|
gboolean ret = atk_table_remove_column_selection(_SELF(self), NUM2INT(column));
|
|
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
|
|
return self;
|
|
}
|
|
|
|
static VALUE
|
|
rg_remove_row_selection(VALUE self, VALUE row)
|
|
{
|
|
gboolean ret = atk_table_remove_row_selection(_SELF(self), NUM2INT(row));
|
|
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
|
|
return self;
|
|
}
|
|
|
|
void
|
|
Init_atk_table(VALUE mAtk)
|
|
{
|
|
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_TABLE, "Table", mAtk);
|
|
|
|
RG_DEF_METHOD(ref_at, 2);
|
|
RG_DEF_METHOD(get_index_at, 2);
|
|
RG_DEF_METHOD(get_column_at_index, 1);
|
|
RG_DEF_METHOD(get_row_at_index, 1);
|
|
RG_DEF_METHOD(n_columns, 0);
|
|
RG_DEF_METHOD(n_rows, 0);
|
|
RG_DEF_METHOD(get_column_extent_at, 2);
|
|
RG_DEF_METHOD(get_row_extent_at, 2);
|
|
RG_DEF_METHOD(caption, 0);
|
|
RG_DEF_METHOD(get_column_description, 1);
|
|
RG_DEF_METHOD(get_row_description, 1);
|
|
RG_DEF_METHOD(get_column_header, 1);
|
|
RG_DEF_METHOD(get_row_header, 1);
|
|
RG_DEF_METHOD(summary, 0);
|
|
RG_DEF_METHOD(set_caption, 1);
|
|
RG_DEF_METHOD(set_row_description, 2);
|
|
RG_DEF_METHOD(set_column_description, 2);
|
|
RG_DEF_METHOD(set_row_header, 2);
|
|
RG_DEF_METHOD(set_column_header, 2);
|
|
RG_DEF_METHOD(set_summary, 1);
|
|
RG_DEF_METHOD(selected_columns, 0);
|
|
RG_DEF_METHOD(selected_rows, 0);
|
|
RG_DEF_METHOD_P(column_selected, 1);
|
|
RG_DEF_METHOD_P(row_selected, 1);
|
|
RG_DEF_METHOD_P(selected, 2);
|
|
RG_DEF_METHOD(add_column_selection, 1);
|
|
RG_DEF_METHOD(add_row_selection, 1);
|
|
RG_DEF_METHOD(remove_column_selection, 1);
|
|
RG_DEF_METHOD(remove_row_selection, 1);
|
|
}
|