… | |
… | |
3933 | |
3933 | |
3934 | ############################################################################# |
3934 | ############################################################################# |
3935 | |
3935 | |
3936 | package CFPlus::UI::Notebook; |
3936 | package CFPlus::UI::Notebook; |
3937 | |
3937 | |
|
|
3938 | use CFPlus::OpenGL; |
|
|
3939 | |
3938 | our @ISA = CFPlus::UI::VBox::; |
3940 | our @ISA = CFPlus::UI::VBox::; |
3939 | |
3941 | |
3940 | sub new { |
3942 | sub new { |
3941 | my $class = shift; |
3943 | my $class = shift; |
3942 | |
3944 | |
3943 | my $self = $class->SUPER::new ( |
3945 | my $self = $class->SUPER::new ( |
3944 | buttonbar => (new CFPlus::UI::Buttonbar), |
3946 | buttonbar => (new CFPlus::UI::Buttonbar), |
3945 | multiplexer => (new CFPlus::UI::Multiplexer expand => 1), |
3947 | multiplexer => (new CFPlus::UI::Multiplexer expand => 1), |
|
|
3948 | active_outline => [1, 1, 0], |
3946 | # filter => # will be put between multiplexer and $self |
3949 | # filter => # will be put between multiplexer and $self |
3947 | @_, |
3950 | @_, |
3948 | ); |
3951 | ); |
3949 | |
3952 | |
3950 | $self->{filter}->add ($self->{multiplexer}) if $self->{filter}; |
3953 | $self->{filter}->add ($self->{multiplexer}) if $self->{filter}; |
… | |
… | |
4022 | sub set_current_page { |
4025 | sub set_current_page { |
4023 | my ($self, $page) = @_; |
4026 | my ($self, $page) = @_; |
4024 | |
4027 | |
4025 | $self->{multiplexer}->set_current_page ($page); |
4028 | $self->{multiplexer}->set_current_page ($page); |
4026 | $self->emit (page_changed => $self->{multiplexer}{current}); |
4029 | $self->emit (page_changed => $self->{multiplexer}{current}); |
|
|
4030 | } |
|
|
4031 | |
|
|
4032 | sub _draw { |
|
|
4033 | my ($self) = @_; |
|
|
4034 | |
|
|
4035 | $self->SUPER::_draw (); |
|
|
4036 | |
|
|
4037 | if (my $cur = $self->{multiplexer}{current}) { |
|
|
4038 | if ($cur = $cur->{c_tab_}) { |
|
|
4039 | glTranslate $cur->{x}, $cur->{y}; |
|
|
4040 | glLineWidth 3; |
|
|
4041 | glColor @{$self->{active_outline}}; |
|
|
4042 | glRect_lineloop 1, 1, $cur->{w} - 2, $cur->{h} - 2; |
|
|
4043 | glLineWidth 1; |
|
|
4044 | } |
|
|
4045 | } |
4027 | } |
4046 | } |
4028 | |
4047 | |
4029 | ############################################################################# |
4048 | ############################################################################# |
4030 | |
4049 | |
4031 | package CFPlus::UI::Selector; |
4050 | package CFPlus::UI::Selector; |