Sha256: 424011e459017a1c78553f3143a628289186e2e1bc7778dae844f4c8519a9372

Contents?: true

Size: 2 KB

Versions: 15

Compression:

Stored size: 2 KB

Contents

/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/************************************************

  rbgtkborder.c -

  $Author: mutoh $
  $Date: 2004/05/24 17:22:58 $

  Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
  Copyright (C) 1998-2000 Yukihiro Matsumoto,
                          Daisuke Kanda,
                          Hiroshi Igarashi
************************************************/

#include "global.h"

#define _SELF(self) ((GtkBorder*)RVAL2BOXED(self, GTK_TYPE_BORDER))

#define ATTR_INT(name)\
static VALUE \
border_int_ ## name (self)\
    VALUE self;\
{\
    return INT2NUM(_SELF(self)->name);\
}\
static VALUE \
border_int_set_ ## name (self, val)\
    VALUE self, val;\
{\
    _SELF(self)->name = NUM2INT(val); \
    return self;\
}

ATTR_INT(left);
ATTR_INT(right);
ATTR_INT(top);
ATTR_INT(bottom);

#define DEFINE_ACCESSOR(gt, type, name)                                  \
    rb_define_method(gt, G_STRINGIFY(name), border_ ## type ## _## name, 0);\
    rb_define_method(gt, G_STRINGIFY(set_ ## name), border_ ## type ## _set_## name, 1);

static VALUE
border_initialize(self, left, right, top, bottom)
    VALUE self, left, right, top, bottom;
{
    GtkBorder border;
    border.left = NUM2INT(left);
    border.right = NUM2INT(right);
    border.top = NUM2INT(top);
    border.bottom = NUM2INT(bottom);

    G_INITIALIZE(self, &border);
    return Qnil;
}

static VALUE
border_to_a(self)
    VALUE self;
{
    GtkBorder* border = _SELF(self);
    return rb_ary_new3(4, INT2NUM(border->left), INT2NUM(border->right),
                       INT2NUM(border->top), INT2NUM(border->bottom));
}

void 
Init_gtk_border()
{
    VALUE gBorder = G_DEF_CLASS(GTK_TYPE_BORDER, "Border", mGtk);

    rb_define_method(gBorder, "initialize", border_initialize, 4);
    rb_define_method(gBorder, "to_a", border_to_a, 0);

    DEFINE_ACCESSOR(gBorder, int, left);
    DEFINE_ACCESSOR(gBorder, int, right);
    DEFINE_ACCESSOR(gBorder, int, top);
    DEFINE_ACCESSOR(gBorder, int, bottom);

    G_DEF_SETTERS(gBorder);
}

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
gtk2-0.90.7-x86-mingw32 ext/gtk2/rbgtkborder.c
gtk2-0.90.7 ext/gtk2/rbgtkborder.c
gtk2-0.90.6 ext/gtk2/rbgtkborder.c
gtk2-0.90.6-x86-mingw32 ext/gtk2/rbgtkborder.c
gtk2-0.90.5 ext/gtk2/rbgtkborder.c
gtk2-0.90.5-x86-mingw32 ext/gtk2/rbgtkborder.c
gtk2-0.90.4 ext/gtk2/rbgtkborder.c
gtk2-0.90.4-x86-mingw32 ext/gtk2/rbgtkborder.c
gtk2-0.90.3 ext/gtk2/rbgtkborder.c
gtk2-0.90.3-x86-mingw32 ext/gtk2/rbgtkborder.c
gtk2-0.90.2 ext/gtk2/rbgtkborder.c
gtk2-0.90.2-x86-mingw32 ext/gtk2/rbgtkborder.c
gtk2-0.20.1 src/rbgtkborder.c
gtk2-0.20.0.1 src/rbgtkborder.c
gtk2-0.20.0 src/rbgtkborder.c