Enabling the close box button.
This commit is contained in:
parent
77cc606473
commit
7987b5c828
|
@ -32,6 +32,10 @@ has _save => (
|
||||||
required => 1,
|
required => 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
has _win => (
|
||||||
|
is => 'rw',
|
||||||
|
);
|
||||||
|
|
||||||
has _current_box => ( is => 'rw', );
|
has _current_box => ( is => 'rw', );
|
||||||
|
|
||||||
my $BOX_X = 275;
|
my $BOX_X = 275;
|
||||||
|
@ -43,6 +47,7 @@ my $ARROW_X = 28;
|
||||||
my $ARROW_Y = 6;
|
my $ARROW_Y = 6;
|
||||||
my $ARROW_WIDTH = 16;
|
my $ARROW_WIDTH = 16;
|
||||||
my $ARROW_HEIGHT = 32;
|
my $ARROW_HEIGHT = 32;
|
||||||
|
my ($CLOSE_BOX_X, $CLOSE_BOX_Y, $CLOSE_BOX_WIDTH, $CLOSE_BOX_HEIGHT) = (420, 0, 180, 40);
|
||||||
|
|
||||||
has _cursor_position => ( is => 'rw' );
|
has _cursor_position => ( is => 'rw' );
|
||||||
|
|
||||||
|
@ -51,6 +56,7 @@ my $root = path(__FILE__)->parent->parent->parent->parent;
|
||||||
sub start {
|
sub start {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $gtk_window = Gtk4::Window->new;
|
my $gtk_window = Gtk4::Window->new;
|
||||||
|
$self->_win($gtk_window);
|
||||||
my $controller_motion = Gtk4::EventControllerMotion->new;
|
my $controller_motion = Gtk4::EventControllerMotion->new;
|
||||||
my $controller_gesture = Gtk4::GestureClick->new;
|
my $controller_gesture = Gtk4::GestureClick->new;
|
||||||
my $save = $self->_save;
|
my $save = $self->_save;
|
||||||
|
@ -97,6 +103,7 @@ sub start {
|
||||||
$cairo->paint;
|
$cairo->paint;
|
||||||
}
|
}
|
||||||
$self->draw_pokemon_details( $cairo, $selected_pokemon );
|
$self->draw_pokemon_details( $cairo, $selected_pokemon );
|
||||||
|
$self->draw_not_implemented($cairo);
|
||||||
$self->draw_cursor($cairo);
|
$self->draw_cursor($cairo);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -111,10 +118,37 @@ sub start {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub draw_not_implemented {
|
||||||
|
my $self = shift;
|
||||||
|
my $cairo = shift;
|
||||||
|
$cairo->rectangle(200, 0, 180, 40);
|
||||||
|
$cairo->set_source_rgb(0, 0, 0);
|
||||||
|
$cairo->fill;
|
||||||
|
$cairo->set_source_rgb(1, 1, 1);
|
||||||
|
$cairo->set_font_size(20);
|
||||||
|
$cairo->move_to( 200, 30);
|
||||||
|
$cairo->text_path("Not implemented");
|
||||||
|
$cairo->fill;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sub _on_primary_click {
|
sub _on_primary_click {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my ( $gesture, $n_press, $x, $y ) = @_;
|
my ( $gesture, $n_press, $x, $y ) = @_;
|
||||||
return if $self->_check_click_next_prev_box( $gesture, $n_press, $x, $y );
|
return if $self->_check_click_next_prev_box( $gesture, $n_press, $x, $y );
|
||||||
|
return if $self->_check_click_close_box($gesture, $n_press, $x, $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub _check_click_close_box {
|
||||||
|
my $self = shift;
|
||||||
|
my ( $gesture, $n_press, $x, $y ) = @_;
|
||||||
|
my $match_x = $x >= $CLOSE_BOX_X && $x <= $CLOSE_BOX_WIDTH + $CLOSE_BOX_X;
|
||||||
|
my $match_y = $y >= $CLOSE_BOX_Y && $y <= $CLOSE_BOX_HEIGHT + $CLOSE_BOX_Y;
|
||||||
|
if ($match_x && $match_y) {
|
||||||
|
$self->_win->close;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub _check_click_next_prev_box {
|
sub _check_click_next_prev_box {
|
||||||
|
@ -211,7 +245,7 @@ sub draw_pokemon_details {
|
||||||
$cairo->move_to( 18, 138 );
|
$cairo->move_to( 18, 138 );
|
||||||
$cairo->text_path("Lv@{[$selected_pokemon->level]}");
|
$cairo->text_path("Lv@{[$selected_pokemon->level]}");
|
||||||
$cairo->set_source_rgb( 1, 1, 1 );
|
$cairo->set_source_rgb( 1, 1, 1 );
|
||||||
$cairo->fill_preserve;
|
$cairo->fill;
|
||||||
|
|
||||||
$cairo->scale( ( 1 / $scale_factor ) x 2 );
|
$cairo->scale( ( 1 / $scale_factor ) x 2 );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue