This is a multi-part message in MIME format.
--Multipart_Mon__10_Sep_2001_01:46:19_+0900_0828e058
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
むとうです。
Ruby/GTKで、Gtk::Toolbar#{append,prepend,insert}_element()
を実装しました。
Gtk::Toolbar#append_element(type, widget, text, tooltip_text,
tooltip_private_text, icon) { }
Gtk::Toolbar#prepend_element(type, widget, text, tooltip_text,
tooltip_private_text, icon) { }
Gtk::Toolbar#insert_element(type, widget, text, tooltip_text,
tooltip_private_text, icon, position) { }
です。戻り値はGtk::Widgetになり、typeで指定し生成されたオブジェクトになります。
typeには、
Gtk::Toolbar::CHILD_SPACE
Gtk::Toolbar::CHILD_BUTTON
Gtk::Toolbar::CHILD_TOGGLEBUTTON
Gtk::Toolbar::CHILD_RADIOBUTTON
Gtk::Toolbar::CHILD_WIDGET
が指定できます。
2つ目widgetは、typeによって指定するものが異なります。
Gtk::Toolbar::CHILD_SPACE
Gtk::Toolbar::CHILD_BUTTON
Gtk::Toolbar::CHILD_TOGGLEBUTTON
上記の場合はnilを指定します。
Gtk::Toolbar::CHILD_RADIOBUTTON
グループたいものに対し最 房萋世靴拭奮謄瓮
ドの戻り値)
のGtk::RadioButtonを指定します。
Gtk::Toolbar::CHILD_WIDGET
Gtk::Widgetのサブクラスを指定します。たとえば、Gtk::Entryなど。
------
[ruby-ext:01891]の件もあるのですが、やはりfunc(Procオブジェクト)
を引数に持たせるのは他のWidgetから比べても特殊だと思いましたので、省きました。
なお、添付パッチは[ruby-ext:01891]のpatchをあてた後のものです。
では。
----
○● むとう まさお(MUTOH Masao)
●○ E-Mail:mutoh / highway.ne.jp
--Multipart_Mon__10_Sep_2001_01:46:19_+0900_0828e058
Content-Type: application/octet-stream;
name bgtktoolbar.c.patch"
Content-Disposition: attachment;
filename bgtktoolbar.c.patch"
Content-Transfer-Encoding: base64
LS0tIHNyYy9yYmd0a3Rvb2xiYXIuYy5vbGQJU3VuIFNlcCAgOSAyMjoyOTozMSAyMDAxCisrKyBz
cmMvcmJndGt0b29sYmFyLmMJTW9uIFNlcCAxMCAwMToyNDozNyAyMDAxCkBAIC0zMiw2ICszMiwz
MiBAQAogfQogCiBzdGF0aWMgVkFMVUUKK3RiYXJfZ2V0X3dpZGdldCh3aWRnZXQsIHR5cGUpCisg
ICAgR3RrV2lkZ2V0ICp3aWRnZXQ7CisgICAgVkFMVUUgdHlwZTsKK3sKKyAgICBWQUxVRSByZXQg
PSBRbmlsOworICAgIHN3aXRjaCAoTlVNMklOVCh0eXBlKSl7CisgICAgICBjYXNlIEdUS19UT09M
QkFSX0NISUxEX1NQQUNFOgorICAgICAgICByZXQgPSBRbmlsOworCWJyZWFrOworICAgICAgY2Fz
ZSBHVEtfVE9PTEJBUl9DSElMRF9CVVRUT046CisJcmV0ID0gbWFrZV93aWRnZXQoZ0J1dHRvbiwg
d2lkZ2V0KTsKKwlicmVhazsKKyAgICAgIGNhc2UgR1RLX1RPT0xCQVJfQ0hJTERfVE9HR0xFQlVU
VE9OOgorCXJldCA9IG1ha2Vfd2lkZ2V0KGdUQnV0dG9uLCB3aWRnZXQpOworCWJyZWFrOworICAg
ICAgY2FzZSBHVEtfVE9PTEJBUl9DSElMRF9SQURJT0JVVFRPTjoKKwlyZXQgPSBtYWtlX3dpZGdl
dChnUkJ1dHRvbiwgd2lkZ2V0KTsKKwlicmVhazsKKyAgICAgIGNhc2UgR1RLX1RPT0xCQVJfQ0hJ
TERfV0lER0VUOgorCXJldCA9IG1ha2Vfd2lkZ2V0KGdXaWRnZXQsIHdpZGdldCk7CisJYnJlYWs7
CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBWQUxVRQogdGJhcl9hcHBlbmRf
aXRlbShzZWxmLCB0ZXh0LCB0dGV4dCwgcHRleHQsIGljb24sIGZ1bmMpCiAgICAgVkFMVUUgc2Vs
ZiwgdGV4dCwgdHRleHQsIHB0ZXh0LCBpY29uLCBmdW5jOwogewpAQCAtMTUxLDYgKzE3Nyw4MiBA
QAogfQogCiBzdGF0aWMgVkFMVUUKK3RiYXJfYXBwZW5kX2VsZW1lbnQoc2VsZiwgdHlwZSwgd2lk
Z2V0LCB0ZXh0LCB0dGV4dCwgcHRleHQsIGljb24pCisgICAgVkFMVUUgc2VsZiwgdHlwZSwgd2lk
Z2V0LCB0ZXh0LCB0dGV4dCwgcHRleHQsIGljb247Cit7CisgICAgVkFMVUUgZnVuYyA9IChWQUxV
RSlOVUxMOworICAgIHZvaWQgKmNhbGxiYWNrID0gTlVMTDsKKyAgICBHdGtXaWRnZXQgKnJldCA9
IE5VTEw7CisKKyAgICBpZiAocmJfYmxvY2tfZ2l2ZW5fcCgpKSB7CisJZnVuYyA9IHJiX2ZfbGFt
YmRhKCk7CisJYWRkX3JlbGF0aXZlKHNlbGYsIGZ1bmMpOworCWNhbGxiYWNrID0gZXhlY19jYWxs
YmFjazsKKyAgICB9CisgICAgcmV0ID0gZ3RrX3Rvb2xiYXJfYXBwZW5kX2VsZW1lbnQoR1RLX1RP
T0xCQVIoZ2V0X3dpZGdldChzZWxmKSksCisJCQkJICAgICAgTlVNMklOVCh0eXBlKSwKKwkJCQkg
ICAgICBOSUxfUCh3aWRnZXQpP05VTEw6Z2V0X3dpZGdldCh3aWRnZXQpLAorCQkJCSAgICAgIE5J
TF9QKHRleHQpP05VTEw6U1RSMkNTVFIodGV4dCksCisJCQkJICAgICAgTklMX1AodHRleHQpP05V
TEw6U1RSMkNTVFIodHRleHQpLAorCQkJCSAgICAgIE5JTF9QKHB0ZXh0KT9OVUxMOlNUUjJDU1RS
KHB0ZXh0KSwKKwkJCQkgICAgICBOSUxfUChpY29uKT9OVUxMOmdldF93aWRnZXQoaWNvbiksCisJ
CQkJICAgICAgY2FsbGJhY2ssCisJCQkJICAgICAgKGdwb2ludGVyKWZ1bmMpOworICAgIHJldHVy
biB0YmFyX2dldF93aWRnZXQocmV0LCB0eXBlKTsKK30KKworc3RhdGljIFZBTFVFCit0YmFyX3By
ZXBlbmRfZWxlbWVudChzZWxmLCB0eXBlLCB3aWRnZXQsIHRleHQsIHR0ZXh0LCBwdGV4dCwgaWNv
bikKKyAgICBWQUxVRSBzZWxmLCB0eXBlLCB3aWRnZXQsIHRleHQsIHR0ZXh0LCBwdGV4dCwgaWNv
bjsKK3sKKyAgICBWQUxVRSBmdW5jID0gKFZBTFVFKU5VTEw7CisgICAgdm9pZCAqY2FsbGJhY2sg
PSBOVUxMOworICAgIEd0a1dpZGdldCAqcmV0ID0gTlVMTDsKKworICAgIGlmIChyYl9ibG9ja19n
aXZlbl9wKCkpIHsKKwlmdW5jID0gcmJfZl9sYW1iZGEoKTsKKwlhZGRfcmVsYXRpdmUoc2VsZiwg
ZnVuYyk7CisJY2FsbGJhY2sgPSBleGVjX2NhbGxiYWNrOworICAgIH0KKyAgICByZXQgPSBndGtf
dG9vbGJhcl9wcmVwZW5kX2VsZW1lbnQoR1RLX1RPT0xCQVIoZ2V0X3dpZGdldChzZWxmKSksCisJ
CQkJICAgICAgTlVNMklOVCh0eXBlKSwKKwkJCQkgICAgICBOSUxfUCh3aWRnZXQpP05VTEw6Z2V0
X3dpZGdldCh3aWRnZXQpLAorCQkJCSAgICAgIE5JTF9QKHRleHQpP05VTEw6U1RSMkNTVFIodGV4
dCksCisJCQkJICAgICAgTklMX1AodHRleHQpP05VTEw6U1RSMkNTVFIodHRleHQpLAorCQkJCSAg
ICAgIE5JTF9QKHB0ZXh0KT9OVUxMOlNUUjJDU1RSKHB0ZXh0KSwKKwkJCQkgICAgICBOSUxfUChp
Y29uKT9OVUxMOmdldF93aWRnZXQoaWNvbiksCisJCQkJICAgICAgY2FsbGJhY2ssCisJCQkJICAg
ICAgKGdwb2ludGVyKWZ1bmMpOworICAgIHJldHVybiB0YmFyX2dldF93aWRnZXQocmV0LCB0eXBl
KTsKK30KKworc3RhdGljIFZBTFVFCit0YmFyX2luc2VydF9lbGVtZW50KHNlbGYsIHR5cGUsIHdp
ZGdldCwgdGV4dCwgdHRleHQsIHB0ZXh0LCBpY29uLCBwb3NpdGlvbikKKyAgICBWQUxVRSBzZWxm
LCB0eXBlLCB3aWRnZXQsIHRleHQsIHR0ZXh0LCBwdGV4dCwgaWNvbiwgcG9zaXRpb247Cit7Cisg
ICAgVkFMVUUgZnVuYyA9IChWQUxVRSlOVUxMOworICAgIHZvaWQgKmNhbGxiYWNrID0gTlVMTDsK
KyAgICBHdGtXaWRnZXQgKnJldCA9IE5VTEw7CisKKyAgICBpZiAocmJfYmxvY2tfZ2l2ZW5fcCgp
KSB7CisJZnVuYyA9IHJiX2ZfbGFtYmRhKCk7CisJYWRkX3JlbGF0aXZlKHNlbGYsIGZ1bmMpOwor
CWNhbGxiYWNrID0gZXhlY19jYWxsYmFjazsKKyAgICB9CisgICAgcmV0ID0gZ3RrX3Rvb2xiYXJf
aW5zZXJ0X2VsZW1lbnQoR1RLX1RPT0xCQVIoZ2V0X3dpZGdldChzZWxmKSksCisJCQkJICAgICBO
VU0ySU5UKHR5cGUpLAorCQkJCSAgICAgTklMX1Aod2lkZ2V0KT9OVUxMOmdldF93aWRnZXQod2lk
Z2V0KSwKKwkJCQkgICAgIE5JTF9QKHRleHQpP05VTEw6U1RSMkNTVFIodGV4dCksCisJCQkJICAg
ICBOSUxfUCh0dGV4dCk/TlVMTDpTVFIyQ1NUUih0dGV4dCksCisJCQkJICAgICBOSUxfUChwdGV4
dCk/TlVMTDpTVFIyQ1NUUihwdGV4dCksCisJCQkJICAgICBOSUxfUChpY29uKT9OVUxMOmdldF93
aWRnZXQoaWNvbiksCisJCQkJICAgICBjYWxsYmFjaywKKwkJCQkgICAgIChncG9pbnRlcilmdW5j
LAorCQkJCSAgICAgTlVNMklOVChwb3NpdGlvbikpOworICAgIHJldHVybiB0YmFyX2dldF93aWRn
ZXQocmV0LCB0eXBlKTsKK30KKworc3RhdGljIFZBTFVFCiB0YmFyX3NldF9vcmllbnRhdGlvbihz
ZWxmLCBvcmllbnRhdGlvbikKICAgICBWQUxVRSBzZWxmLCBvcmllbnRhdGlvbjsKIHsKQEAgLTIz
OSw2ICszNDEsOSBAQAogICAgIHJiX2RlZmluZV9tZXRob2QoZ1Rvb2xiYXIsICJhcHBlbmRfd2lk
Z2V0IiwgdGJhcl9hcHBlbmRfd2lkZ2V0LCAzKTsKICAgICByYl9kZWZpbmVfbWV0aG9kKGdUb29s
YmFyLCAicHJlcGVuZF93aWRnZXQiLCB0YmFyX3ByZXBlbmRfd2lkZ2V0LCAzKTsKICAgICByYl9k
ZWZpbmVfbWV0aG9kKGdUb29sYmFyLCAiaW5zZXJ0X3dpZGdldCIsIHRiYXJfaW5zZXJ0X3dpZGdl
dCwgNCk7CisgICAgcmJfZGVmaW5lX21ldGhvZChnVG9vbGJhciwgImFwcGVuZF9lbGVtZW50Iiwg
dGJhcl9hcHBlbmRfZWxlbWVudCwgNik7CisgICAgcmJfZGVmaW5lX21ldGhvZChnVG9vbGJhciwg
InByZXBlbmRfZWxlbWVudCIsIHRiYXJfcHJlcGVuZF9lbGVtZW50LCA2KTsKKyAgICByYl9kZWZp
bmVfbWV0aG9kKGdUb29sYmFyLCAiaW5zZXJ0X2VsZW1lbnQiLCB0YmFyX2luc2VydF9lbGVtZW50
LCA3KTsKICAgICByYl9kZWZpbmVfbWV0aG9kKGdUb29sYmFyLCAic2V0X29yaWVudGF0aW9uIiwg
dGJhcl9zZXRfb3JpZW50YXRpb24sIDEpOwogICAgIHJiX2RlZmluZV9tZXRob2QoZ1Rvb2xiYXIs
ICJzZXRfc3R5bGUiLCB0YmFyX3NldF9zdHlsZSwgMSk7CiAgICAgcmJfZGVmaW5lX21ldGhvZChn
VG9vbGJhciwgInNldF9zcGFjZV9zaXplIiwgdGJhcl9zZXRfc3BhY2Vfc2l6ZSwgMSk7Cg
--Multipart_Mon__10_Sep_2001_01:46:19_+0900_0828e058--