diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-01-01 18:43:39 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-01-01 18:43:39 -0600 |
commit | 795a0355a40293affc7164507e918440d4a828d6 (patch) | |
tree | 9724723196b77633801918030aa2e293dc8246fb /PerlTQt/lib/TQt/attributes.pm | |
parent | 55e5c730361b5f2640f155aef4518ca69c4fc1b4 (diff) | |
download | libtqt-perl-795a0355a40293affc7164507e918440d4a828d6.tar.gz libtqt-perl-795a0355a40293affc7164507e918440d4a828d6.zip |
Move Qt
Diffstat (limited to 'PerlTQt/lib/TQt/attributes.pm')
-rw-r--r-- | PerlTQt/lib/TQt/attributes.pm | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/PerlTQt/lib/TQt/attributes.pm b/PerlTQt/lib/TQt/attributes.pm new file mode 100644 index 0000000..4398fa5 --- /dev/null +++ b/PerlTQt/lib/TQt/attributes.pm @@ -0,0 +1,51 @@ +package TQt::attributes; +# +# I plan to support public/protected/private attributes. here goes. +# Attributes default to protected. +# +# package MyBase; +# use TQt::attributes qw( +# private: +# foo +# protected: +# bar +# public: +# baz +# ); +# +# package MyDerived; +# use TQt::isa qw(MyBase); +# +# sub foo { +# # 1 way to access private attributes from derived class +# # +# # this->{$class} contains private attributes for $class +# # I specify it to always work that way, +# # so feel free to use it in code. +# this->{MyBase}{foo} = 10; +# +# # 2 ways to access protected attributes +# bar = 10; +# this->{bar} = 10; +# +# # 3 ways to access public attributes +# baz = 10; +# this->{baz} = 10; +# this->baz = 10; +# } +# +# Attributes override any method with the same name, so you may want +# to prefix them with _ to prevent conflicts. +# +sub import { + my $class = shift; + my $caller = (caller)[0]; + + for my $attribute (@_) { + exists ${ ${$caller . '::META'}{'attributes'} }{$attribute} and next; + TQt::_internal::installattribute($caller, $attribute); + ${ ${$caller . '::META'}{'attributes'} }{$attribute} = 1; + } +} + +1; |