… | |
… | |
514 | ); |
514 | ); |
515 | |
515 | |
516 | sub emit { |
516 | sub emit { |
517 | my ($self, $signal, @args) = @_; |
517 | my ($self, $signal, @args) = @_; |
518 | |
518 | |
519 | # I do not really like this solution, but I dislike duplication |
519 | # I do not really like this solution, but I do not like duplication |
520 | # and needlessly verbose code, too. |
520 | # and needlessly verbose code, either. |
521 | my @append |
521 | my @append |
522 | = $has_coords{$signal} |
522 | = $has_coords{$signal} |
523 | ? $args[0]->xy ($self) |
523 | ? $args[0]->xy ($self) |
524 | : (); |
524 | : (); |
525 | |
525 | |
… | |
… | |
900 | { |
900 | { |
901 | package CFPlus::UI::Base; |
901 | package CFPlus::UI::Base; |
902 | |
902 | |
903 | local ($draw_x, $draw_y, $draw_w, $draw_h) = |
903 | local ($draw_x, $draw_y, $draw_w, $draw_h) = |
904 | (0, 0, $self->{w}, $self->{h}); |
904 | (0, 0, $self->{w}, $self->{h}); |
|
|
905 | |
|
|
906 | $self->_render; |
905 | } |
907 | } |
906 | |
|
|
907 | $self->_render; |
|
|
908 | }; |
908 | }; |
909 | } |
909 | } |
910 | |
910 | |
911 | sub _draw { |
911 | sub _draw { |
912 | my ($self) = @_; |
912 | my ($self) = @_; |
… | |
… | |
2959 | |
2959 | |
2960 | $self->{texture} ||= new_from_opengl CFPlus::Texture $W, $H, sub { |
2960 | $self->{texture} ||= new_from_opengl CFPlus::Texture $W, $H, sub { |
2961 | glClearColor 0, 0, 0, 0; |
2961 | glClearColor 0, 0, 0, 0; |
2962 | glClear GL_COLOR_BUFFER_BIT; |
2962 | glClear GL_COLOR_BUFFER_BIT; |
2963 | |
2963 | |
2964 | { |
|
|
2965 | package CFPlus::UI::Base; |
2964 | package CFPlus::UI::Base; |
2966 | |
|
|
2967 | local ($draw_x, $draw_y, $draw_w, $draw_h) = |
2965 | local ($draw_x, $draw_y, $draw_w, $draw_h) = |
2968 | (0, 0, $self->{w}, $self->{h}); |
2966 | (0, 0, $self->{w}, $self->{h}); |
2969 | } |
|
|
2970 | |
2967 | |
2971 | my $top = int $self->{children}[1]{range}[0]; |
2968 | my $top = int $self->{children}[1]{range}[0]; |
2972 | |
2969 | |
2973 | my $paridx = 0; |
2970 | my $paridx = 0; |
2974 | my $top_paragraph; |
2971 | my $top_paragraph; |
… | |
… | |
3291 | |
3288 | |
3292 | package CFPlus::UI::Buttonbar; |
3289 | package CFPlus::UI::Buttonbar; |
3293 | |
3290 | |
3294 | our @ISA = CFPlus::UI::HBox::; |
3291 | our @ISA = CFPlus::UI::HBox::; |
3295 | |
3292 | |
3296 | # TODO: should actualyl wrap buttons and other goodies. |
3293 | # TODO: should actually wrap buttons and other goodies. |
3297 | |
3294 | |
3298 | ############################################################################# |
3295 | ############################################################################# |
3299 | |
3296 | |
3300 | package CFPlus::UI::Menu; |
3297 | package CFPlus::UI::Menu; |
3301 | |
3298 | |
… | |
… | |
3830 | if ($ev->{button} == 1) { |
3827 | if ($ev->{button} == 1) { |
3831 | $::CONN->user_send ("cast $spell->{name}"); |
3828 | $::CONN->user_send ("cast $spell->{name}"); |
3832 | } elsif ($ev->{button} == 2) { |
3829 | } elsif ($ev->{button} == 2) { |
3833 | $::CONN->user_send ("invoke $spell->{name}"); |
3830 | $::CONN->user_send ("invoke $spell->{name}"); |
3834 | } elsif ($ev->{button} == 3) { |
3831 | } elsif ($ev->{button} == 3) { |
|
|
3832 | my $shortname = CFPlus::shorten $spell->{name}, 14; |
3835 | (new CFPlus::UI::Menu |
3833 | (new CFPlus::UI::Menu |
3836 | items => [ |
3834 | items => [ |
3837 | ["bind <i>cast $spell->{name}</i> to a key" => sub { $::BIND_EDITOR->do_quick_binding (["cast $spell->{name}"]) }], |
3835 | ["bind <i>cast $shortname</i> to a key" => sub { $::BIND_EDITOR->do_quick_binding (["cast $spell->{name}"]) }], |
3838 | ["bind <i>invoke $spell->{name}</i> to a key" => sub { $::BIND_EDITOR->do_quick_binding (["invoke $spell->{name}"]) }], |
3836 | ["bind <i>invoke $shortname</i> to a key" => sub { $::BIND_EDITOR->do_quick_binding (["invoke $spell->{name}"]) }], |
3839 | ], |
3837 | ], |
3840 | )->popup ($ev); |
3838 | )->popup ($ev); |
3841 | } else { |
3839 | } else { |
3842 | return 0; |
3840 | return 0; |
3843 | } |
3841 | } |
… | |
… | |
4133 | { |
4131 | { |
4134 | package CFPlus::UI::Base; |
4132 | package CFPlus::UI::Base; |
4135 | |
4133 | |
4136 | local ($draw_x, $draw_y, $draw_w, $draw_h) = |
4134 | local ($draw_x, $draw_y, $draw_w, $draw_h) = |
4137 | (0, 0, $self->{w}, $self->{h}); |
4135 | (0, 0, $self->{w}, $self->{h}); |
4138 | } |
|
|
4139 | |
4136 | |
4140 | $self->_draw; |
4137 | $self->_draw; |
|
|
4138 | } |
4141 | } |
4139 | } |
4142 | |
4140 | |
4143 | ############################################################################# |
4141 | ############################################################################# |
4144 | |
4142 | |
4145 | package CFPlus::UI; |
4143 | package CFPlus::UI; |