Adding initial support for cairo.
This commit is contained in:
parent
77945ee127
commit
3ab70cefe5
1
Build.PL
1
Build.PL
|
@ -16,6 +16,7 @@ my $build = Module::Build->new(
|
|||
'DBI' => 0,
|
||||
'Moo' => 0,
|
||||
'namespace::clean' => 0,
|
||||
'Cairo::GObject' => 0,
|
||||
'UUID::URandom' => 0,
|
||||
},
|
||||
);
|
||||
|
|
|
@ -14,6 +14,7 @@ use Path::Tiny;
|
|||
use GEmeTool::Options;
|
||||
use GEmeTool::Save;
|
||||
use GEmeTool::View::LogWindow;
|
||||
use Cairo::GObject;
|
||||
|
||||
use Moo;
|
||||
|
||||
|
@ -80,12 +81,14 @@ sub activate {
|
|||
my $about = Glib::IO::SimpleAction->new( 'about', undef );
|
||||
my $open = Glib::IO::SimpleAction->new( 'open', undef );
|
||||
my $logs = Glib::IO::SimpleAction->new( 'view_logs', undef );
|
||||
my $pc = Glib::IO::SimpleAction->new( 'view_pc', undef );
|
||||
my $save_as = Glib::IO::SimpleAction->new( 'save_as', undef );
|
||||
$save_as->set_enabled(0);
|
||||
my $app = $self->_app;
|
||||
$app->add_action($about);
|
||||
$app->add_action($open);
|
||||
$app->add_action($logs);
|
||||
$app->add_action($pc);
|
||||
$app->add_action($save_as);
|
||||
$self->_save_as($save_as);
|
||||
my $save;
|
||||
|
@ -101,6 +104,11 @@ sub activate {
|
|||
$self->activate_save;
|
||||
}
|
||||
);
|
||||
$pc->signal_connect(
|
||||
activate => sub {
|
||||
$self->activate_view_pc;
|
||||
}
|
||||
);
|
||||
$logs->signal_connect(
|
||||
activate => sub {
|
||||
my $win = $self->_win;
|
||||
|
@ -113,10 +121,12 @@ sub activate {
|
|||
my $about_menu_item = Glib::IO::MenuItem->new( 'About', 'app.about' );
|
||||
my $open_menu_item = Glib::IO::MenuItem->new( 'Open', 'app.open' );
|
||||
my $logs_menu_item = Glib::IO::MenuItem->new( 'View logs', 'app.view_logs' );
|
||||
my $pc_menu_item = Glib::IO::MenuItem->new( 'View pc', 'app.view_pc' );
|
||||
my $submenu_file = Glib::IO::Menu->new;
|
||||
my $submenu_view = Glib::IO::Menu->new;
|
||||
my $submenu_help = Glib::IO::Menu->new;
|
||||
$submenu_help->append_item($about_menu_item);
|
||||
$submenu_view->append_item($pc_menu_item);
|
||||
$submenu_view->append_item($logs_menu_item);
|
||||
$submenu_file->append_item($open_menu_item);
|
||||
$submenu_file->append_item($save_menu_item);
|
||||
|
@ -311,4 +321,21 @@ sub activate_about {
|
|||
# $about->set_titlebar($header_bar);
|
||||
$about->present;
|
||||
}
|
||||
|
||||
sub activate_view_pc {
|
||||
my $gtk_window = Gtk4::Window->new;
|
||||
my $canvas = Gtk4::DrawingArea->new;
|
||||
$canvas->set_draw_func(sub {
|
||||
my $canvas = shift;
|
||||
my $cairo = shift;
|
||||
my $width = shift;
|
||||
my $height = shift;
|
||||
print Data::Dumper::Dumper \%Cairo::;
|
||||
$cairo->rectangle(0, 0, $width, $height);
|
||||
$cairo->set_source_rgb(255, 0, 0);
|
||||
$cairo->fill;
|
||||
});
|
||||
$gtk_window->set_child($canvas);
|
||||
$gtk_window->present;
|
||||
}
|
||||
1;
|
||||
|
|
Loading…
Reference in New Issue