mirror of
https://git.proxmox.com/git/pve-installer
synced 2025-05-28 12:58:28 +00:00
69 lines
1.5 KiB
Perl
69 lines
1.5 KiB
Perl
package Proxmox::UI::Gtk3;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Gtk3;
|
|
|
|
use base qw(Proxmox::UI::Base);
|
|
|
|
sub message {
|
|
my ($self, $msg) = @_;
|
|
|
|
my $window = $self->{state}->{window};
|
|
my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'info', 'ok', $msg);
|
|
$dialog->run();
|
|
$dialog->destroy();
|
|
}
|
|
|
|
sub error {
|
|
my ($self, $msg) = @_;
|
|
|
|
my $window = $self->{state}->{window};
|
|
my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'error', 'ok', $msg);
|
|
$dialog->run();
|
|
$dialog->destroy();
|
|
}
|
|
|
|
sub finished {
|
|
my ($self, $success, $msg) = @_;
|
|
# handled manually in proxinstall at the moment
|
|
}
|
|
|
|
sub prompt {
|
|
my ($self, $query) = @_;
|
|
|
|
my $window = $self->{state}->{window};
|
|
my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'question', 'ok-cancel', $query);
|
|
my $response = $dialog->run();
|
|
$dialog->destroy();
|
|
|
|
return ($response // '') eq 'ok';
|
|
}
|
|
|
|
sub display_html {
|
|
my ($self, $raw_html, $html_dir) = @_;
|
|
|
|
my $html_view = $self->{state}->{html_view};
|
|
|
|
# always set base-path to common path, all resources are accesible from there.
|
|
$html_view->load_html($raw_html, "file://$html_dir/");
|
|
}
|
|
|
|
sub progress {
|
|
my ($self, $ratio, $text) = @_;
|
|
|
|
my ($bar, $status) = $self->{state}->@{'progress_bar', 'progress_status'};
|
|
|
|
$bar->set_fraction($ratio);
|
|
$bar->set_text(sprintf ("%d%%", int ($ratio * 100)));
|
|
$status->set_text($text) if defined($text);
|
|
}
|
|
|
|
sub process_events {
|
|
my ($self) = @_;
|
|
Gtk3::main_iteration() while Gtk3::events_pending();
|
|
}
|
|
|
|
1;
|