summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/drakclock
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/drakclock')
-rwxr-xr-xperl-install/standalone/drakclock379
1 files changed, 0 insertions, 379 deletions
diff --git a/perl-install/standalone/drakclock b/perl-install/standalone/drakclock
deleted file mode 100755
index 93e31bdd0..000000000
--- a/perl-install/standalone/drakclock
+++ /dev/null
@@ -1,379 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use lib qw(/usr/lib/libDrakX);
-use POSIX;
-use common;
-# i18n : IMPORTANT to get correct namespace (drakconf instead of libDrakX)
-BEGIN { unshift @::textdomains, 'drakconf' }
-use ugtk2 qw(:all);
-use interactive;
-use standalone;
-use timezone;
-
-my $in = interactive->vnew('su');
-my $pixmap;
-my $radius;
-my ($dRadians_hour, $dRadians_min, $dRadians_sec);
-my $Radian;
-my $timer;
-my ($midx, $midy);
-my $first = 1;
-my $its_reset = 0;
-
-#my $conffile = '/etc/sysconfig/ntpclock';
-my $ntpfile = '/etc/ntp.conf';
-my $ntpdlock = '/var/lock/subsys/ntpd';
-
-my $my_win = ugtk2->new('print_launcher');
-$my_win->{rwindow}->set_title(N("DrakClock")) unless $::isEmbedded;
-
-$my_win->{window}->signal_connect(delete_event => sub { ugtk2->exit(0) });
-
-my $calendar = Gtk2::Calendar->new;
-$calendar->signal_connect($_ => \&cal_changed) foreach 'month-changed', 'day-selected', 'day-selected-double-click', 'prev-month', 'next-month', 'prev-year', 'next-year';
-
-$in->{timezone} = {};
-add2hash($in->{timezone}, timezone::read());
-
-my $label_timezone = Gtk2::Label->new(defined($in->{timezone}{timezone}) ? $in->{timezone}{timezone} : N("not defined"));
-
-my $button_time = Gtk2::Button->new(N("Change Time Zone"));
-$button_time->signal_connect(clicked => sub {
- local $::isEmbedded = 0; # to prevent sub window embedding
- my $timezone = $in->{timezone}{timezone};
- $in->{timezone}{timezone} = $in->ask_from_treelist(N("Timezone - DrakClock"), N("Which is your timezone?"), '/', [ timezone::getTimeZones() ], $timezone);
- if (defined($in->{timezone}{timezone})) {
- $in->{timezone}{UTC} = $in->ask_yesorno(N("GMT - DrakClock"), N("Is your hardware clock set to GMT?"), $in->{timezone}{UTC});
- timezone::write($in->{timezone});
- $label_timezone->set_text($in->{timezone}{timezone});
- } else {
- $in->{timezone}{timezone} = $timezone;
- $label_timezone->set_text($timezone);
- }
- });
-#my $button_ntp = Gtk2::Button->new(N("Use NTP"));
-#$button_time->signal_connect(clicked => sub { ask_ntp($in, $) });
-
-my $drawing_area;
-
-my $adjh = Gtk2::Adjustment->new(0.0, 0.0, 23.0, 1.0, 5.0, 0.0);
-my $adjm = Gtk2::Adjustment->new(0.0, 0.0, 59.0, 1.0, 5.0, 0.0);
-my $adjs = Gtk2::Adjustment->new(0.0, 0.0, 59.0, 1.0, 5.0, 0.0);
-
-my ($button_reset, $check_ntp, $hb_ntp, $combo_ntpserver, $fullntp, $ntp);
-my $mode = 0;
-
-my (undef, undef, $h_old, $old_day, $old_month, $old_year) = localtime(time());
-
-my @image_size = (300, 300);
-
-$my_win->{window}->add(gtkpack_(gtkset_border_width(Gtk2::VBox->new, $::isEmbedded ? 0 : 5),
- 1, gtkpack_(Gtk2::HBox->new,
- 1, gtkpack_(Gtk2::VBox->new,
- 0, $calendar,
- 0, gtkadd(gtkset_shadow_type(Gtk2::Frame->new(N("Timezone")), 'etched_in'),
- gtkpack__(gtkset_border_width(Gtk2::VBox->new, 5),
- $label_timezone,
- $button_time)),
- 1, gtkadd(gtkset_shadow_type(Gtk2::Frame->new(N("Network Time Protocol")), 'etched_in'),
- gtkpack_(gtkset_border_width(Gtk2::VBox->new, 5),
- 0, Gtk2::Label->new(N("Your computer can synchronize its clock\n with a remote time server using NTP")),
- 0, gtksignal_connect(gtkset_active($check_ntp = Gtk2::CheckButton->new(N("Enable Network Time Protocol")), $mode), clicked => sub {
- $mode = !$mode;
- $hb_ntp->set_sensitive($mode);
- if ($mode == 1 && !$in->do_pkgs->is_installed('ntp')) {
- install_ntp();
- }
- }),
- 0, gtkpack_(gtkset_border_width($hb_ntp = Gtk2::HBox->new, 5),
- 0, Gtk2::Label->new(N("Server:")),
- 1, $combo_ntpserver = Gtk2::Combo->new
- )
- ))
- ),
- 0, gtkpack_(Gtk2::VBox->new,
- 0, gtkpack_(Gtk2::HBox->new,
- 0, $drawing_area = gtkset_size_request(Gtk2::DrawingArea->new, @image_size),
- ),
- 0, gtkpack_(my $time_box = Gtk2::HBox->new(1,0),
- 0, my $spinner_h = Gtk2::SpinButton->new($adjh, 0, 0),
- 0, my $spinner_m = Gtk2::SpinButton->new($adjm, 0, 0),
- 0, my $spinner_s = Gtk2::SpinButton->new($adjs, 0, 0),
- ),
- ),
- ),
- 0, create_okcancel(my $w =
- {
- cancel_clicked => sub { ugtk2->exit(0) },
- ok_clicked => sub {
- if ($check_ntp->get_active) {
- my $choosed_serv = $combo_ntpserver->entry->get_text;
- $choosed_serv =~ s/(\S+)\s*(.*)$/$1/;
- timezone::ntp_server($1);
- system("/sbin/chkconfig --level 35 ntpd on");
- system("service ntpd stop");
- #verify that we have a valid hostname (thx sam)
- $choosed_serv =~ s/[^-a-zA-Z0-9.]//g;
- system("/usr/sbin/ntpdate", $choosed_serv);
- system("service ntpd start");
- } else {
- if (-e $ntpdlock) {
- system("service ntpd stop");
- system("/sbin/chkconfig --level 35 ntpd off");
- }
- }
- my ($year, $month, $day) = $calendar->get_date;
- $month++;
- my ($hour, $min, $sec) = ($adjh->get_value, $adjm->get_value, $adjs->get_value);
- system("date " .
- join('', map { print_it0($_) } ($month, $day, $hour, $min, $year)) . '.' . print_it0($sec));
- -e '/sbin/hwclock' and system('/sbin/hwclock --systohc');
- system("dcop kicker Panel restart") if $ENV{DESKTOP} eq 'kde';
- ugtk2->exit(0);
- },
- },
- undef, undef, '',
- [ N("Reset"), sub {
- $its_reset = 1;
- $timer = Glib::Timeout->add(120, \&update_time);
- Repaint($drawing_area, 1);
- $calendar->select_month($old_month, $old_year);
- $calendar->select_day($old_day);
- $button_reset->set_sensitive(0);
- $its_reset = 0;
- } ]
- ),
- )
- );
-$button_reset = $w->{buttons}{N("Reset")};
-
-$time_box->set_direction('ltr');
-
-my $servers = get_server();
-$combo_ntpserver->set_popdown_strings(@$servers);
-if (-e $ntpfile && -e $ntpdlock) {
- $ntp = timezone::ntp_server();
- $ntp and ntp_widget_state(1);
- foreach my $s (@$servers) {
- $s =~ /^\Q$ntp / and $fullntp = $s;
- $fullntp and last
- }
- $fullntp |= $ntp;
- $combo_ntpserver->entry->set_text($fullntp);
-} else { ntp_widget_state(0) }
-
-my $pressed;
-$drawing_area->set_events([ 'button_press_mask', 'button_release_mask', "pointer_motion_mask" ]);
-$drawing_area->signal_connect(expose_event => \&expose_event);
-$drawing_area->signal_connect(realize => sub {
- my $window = $drawing_area->window;
- $pixmap = Gtk2::Gdk::Pixmap->new($window, @image_size, $window->get_depth);
- });
-
-$drawing_area->signal_connect(button_press_event => sub { $pressed = 1 });
-$drawing_area->signal_connect(button_release_event => sub { $first = 1; $pressed = 0 });
-$drawing_area->signal_connect(motion_notify_event => \&motion_event);
-
-$spinner_h->set_wrap(1);
-$spinner_h->signal_connect(activate => \&spinned);
-$spinner_h->signal_connect(button_release_event => \&spinned);
-$spinner_h->signal_connect(changed => \&changed);
-
-$spinner_m->set_wrap(1);
-$spinner_m->signal_connect(activate => \&spinned);
-$spinner_m->signal_connect(button_release_event => \&spinned);
-
-$spinner_s->set_wrap(1);
-$spinner_s->signal_connect(activate => \&spinned);
-$spinner_s->signal_connect(button_release_event => \&spinned);
-
-$my_win->{window}->show_all;
-
-gtkflush();
-
-my $is24 = $h_old > 12;
-$old_year += 1900;
-$calendar->select_month($old_month, $old_year);
-$calendar->select_day($old_day);
-$button_reset->set_sensitive(0);
-$timer = Glib::Timeout->add(120, \&update_time);
-
-$drawing_area->show;
-$my_win->main;
-ugtk2->exit(0);
-
-sub ntp_widget_state {
- my ($state) = @_;
- $check_ntp->set_active($state);
- $hb_ntp->set_sensitive($state);
- $mode = $state;
-}
-sub install_ntp() {
- $my_win->{window}->set_sensitive(0);
- if (warn_dialog(N("Warning"), N("We need to install ntp package\n to enable Network Time Protocol
-
-Do you want to install ntp ?"))) {
- $in->do_pkgs->install('ntp');
- } else {
- ntp_widget_state(0);
- }
- $my_win->{window}->set_sensitive(1);
-}
-sub get_server() {
- my $servs = timezone::ntp_servers();
- [ map { "$_ ($servs->{$_})" } sort keys %$servs ]
-}
-sub update_time() {
- Repaint($drawing_area, 1);
-};
-
-sub cal_changed() {
- !$its_reset and $timer and Glib::Source->remove($timer);
- $button_reset->set_sensitive(1);
-}
-
-sub changed() {
- my $val = $adjh->get_value;
- my $limit = ($is24 ? 18 : 6);
- if (($limit > $val && $h_old > $limit && $h_old < ($is24 ? 24 : 12)) ||
- ($limit < $val && $h_old < $limit && $val-$h_old != 12)) {
- $is24 = !$is24;
- }
- $h_old = $val;
-}
-
-sub spinned() {
- Glib::Source->remove($timer);
- $button_reset->set_sensitive(1);
- time_to_rad($adjs->get_value, $adjm->get_value, $adjh->get_value);
- Repaint($drawing_area);
- 0;
-}
-
-sub motion_event {
- my ($widget, $event) = @_;
- $pressed or return;
- if ($first) {
- Glib::Source->remove($timer);
- $Radian = determine_radian($event->x, $event->y);
- $button_reset->set_sensitive(1);
- }
-
- $$Radian = -atan2($event->x - $midx, $event->y - $midy) + $PI;
-
- Repaint($widget);
- rad_to_time();
- $first = 0;
-}
-
-sub determine_radian {
- my ($x, $y) = @_;
-
- my $res;
- my $r;
- foreach (\$dRadians_hour, \$dRadians_min, \$dRadians_sec) {
- my $d = sqrt(($x - ($midx + 7/10 * $radius * sin($$_)))**2 + ($y - ($midy - 7/10 * $radius * cos($$_)))**2);
- $res or $res = $d, $r = $_;
- $d < $res and $res = $d, $r = $_;
- }
- $r;
-}
-
-sub expose_event {
- my ($widget, $event) = @_;
- my ($x, $y, $width, $height) = $event->area->values;
- $widget->window->draw_drawable($widget->style->fg_gc('normal'), $pixmap, $x, $y, $x, $y, $width, $height);
- 0;
-}
-
-sub rad_to_time() {
- $adjh->set_value(POSIX::floor($dRadians_hour * 6 / $PI) + ($is24 ? 12 : 0));
- $adjm->set_value(POSIX::floor($dRadians_min*30/$PI));
- $adjs->set_value(POSIX::floor($dRadians_sec*30/$PI));
-}
-
-sub time_to_rad {
- my ($sec, $min, $hour) = @_;
- $dRadians_hour = $hour % 12 * $PI / 6;
- $dRadians_min = $min * $PI / 30;
- $dRadians_sec = $sec * $PI / 30;
- $adjh->set_value($hour);
- $adjm->set_value($min);
- $adjs->set_value($sec);
-}
-
-sub Repaint {
- my ($drawing_area, $o_update_time) = @_;
- my ($sec, $min, $hour) = localtime(time());
- time_to_rad($sec, $min, $hour) if $o_update_time;
- my ($width, $height) = ($drawing_area->allocation->width, $drawing_area->allocation->height);
- my $dRadians_hour_real = $dRadians_hour + $dRadians_min / 12;
- my $dRadians_min_real = POSIX::floor($dRadians_min / $PI * 30) * $PI / 30;
- my $dRadians_sec_real = $dRadians_sec;
- $pixmap->draw_rectangle($drawing_area->style->white_gc, 1, 0, 0, $width, $height);
- my ($midx, $midy) = ($width / 2, $height / 2);
- $radius = ($midx < $midy ? $midx : $midy) - 10;
-
- my $gray_gc = $drawing_area->style->bg_gc('normal');
- my $black_gc = $drawing_area->style->black_gc;
- foreach ([ $gray_gc, 5 ], [ $black_gc, 0 ]) {
- &DrawTickAt($pixmap, $_->[0], $midx, $midy, $_->[1]);
- &DrawHour($pixmap, $_->[0], $midx, $midy, $dRadians_hour_real, $_->[1]);
- &DrawMin($pixmap, $_->[0], $midx, $midy, $dRadians_min_real, $_->[1]);
- &DrawSec($pixmap, $_->[0], $midx, $midy, $dRadians_sec_real, $_->[1]);
- }
- &DrawPointAt($pixmap, $black_gc, $_, $midx, $midy) foreach (1..60);
- $drawing_area->queue_draw;
- 1;
-}
-
-sub DrawSec {
- my ($pixmap, $gc, $midx, $midy, $dRadians, $dec) = @_;
- $pixmap->draw_line($gc,
- $midx+$dec, $midy+$dec,
- $midx+$dec + (8/10 * $radius * sin($dRadians)),
- $midy+$dec - (8/10 * $radius * cos($dRadians)))
-}
-
-sub DrawMin {
- my ($pixmap, $gc, $midx, $midy, $dRadians, $dec) = @_;
- $pixmap->draw_polygon($gc, 1, $midx+$dec - 3/100 * $radius * sin($dRadians), $midy+$dec + 3/100 * $radius * cos($dRadians),
- $midx+$dec - 3/100 * $radius * sin($dRadians+$PI/2), $midy+$dec + 3/100 * $radius * cos($dRadians+$PI/2),
- $midx+$dec + 8/10 * $radius * sin($dRadians), $midy+$dec - 8/10 * $radius * cos($dRadians),
- $midx+$dec + 3/100 * $radius * sin($dRadians+$PI/2), $midy+$dec - 3/100 * $radius * cos($dRadians+$PI/2)
- );
-}
-
-sub DrawHour {
- my ($pixmap, $gc, $midx, $midy, $dRadians, $dec) = @_;
- $pixmap->draw_polygon($gc, 1, $midx+$dec - 5/100 * $radius * sin($dRadians), $midy+$dec + 5/100 * $radius * cos($dRadians),
- $midx+$dec - 5/100 * $radius * sin($dRadians+$PI/2), $midy+$dec + 5/100 * $radius * cos($dRadians+$PI/2),
- $midx+$dec + 7/10 * $radius * sin($dRadians), $midy+$dec - 7/10 * $radius * cos($dRadians),
- $midx+$dec + 5/100 * $radius * sin($dRadians+$PI/2), $midy+$dec - 5/100 * $radius * cos($dRadians+$PI/2)
- );
-}
-
-sub DrawTickAt {
- my ($pixmap, $gc, $cx, $cy, $dec) = @_;
- foreach my $nHour (1..12) {
- my $dRadians = $nHour * $PI / 6.0;
- $pixmap->draw_line($gc,
- $cx + $dec + 9/10 * $radius * sin($dRadians),
- $cy + $dec - 9/10 * $radius * cos($dRadians),
- $cx + $dec + 1 * $radius * sin($dRadians),
- $cy + $dec - 1 * $radius * cos($dRadians));
- }
-}
-
-sub DrawPointAt {
- my ($pixmap, $black_gc, $nHour, $cx, $cy) = @_;
- my $dRadians = $nHour * $PI / 30;
-
- $pixmap->draw_points($black_gc,
- $cx + 95/100 * $radius * sin($dRadians),
- $cy - 95/100 * $radius * cos($dRadians))
-}
-
-
-sub print_it0 { sprintf("%02d", $_[0]) }