# $Id$
#
+use strict;
+
+our $root;
+
# search local then perl directories
BEGIN {
# root of directory tree for this system
unshift @INC, "$root/local";
}
-use strict;
-
use Glib;
use Gtk2 qw(-init);
use Gtk2::Helper;
use Gtk2::SimpleList;
+use Text::Wrap;
+
use vars qw(@modules $font);
@modules = (); # is the list of modules that need init calling
use DXUtil;
use IO::Socket::INET;
+#
+# read in gtkconsole file
+
+Gtk2::Rc->set_default_files("$root/gtkconsole/gtkconsolerc", "$ENV{HOME}/.gtkconsolerc", ".gtkconsolerc");
+print join(', ', Gtk2::Rc->get_default_files), "\n";
+Gtk2::Rc->reparse_all;
+
#
# main initialisation
#
$vbox->pack_start($menu, 0, 1, 0);
-# another hbox is packed as the bottom of the vbox
-my $bhbox = Gtk2::HBox->new(0, 1);
-$vbox->pack_end($bhbox, 1, 1, 0);
+# a paned hbox is packed as the bottom of the vbox
+my $bhpane = Gtk2::HPaned->new;
+$vbox->pack_end($bhpane, 1, 1, 0);
-# now pack two vboxes into the hbox
-my $lhvbox = Gtk2::VBox->new(0, 1);
-my $rhvbox = Gtk2::VBox->new(0, 1);
-$bhbox->pack_start($lhvbox, 1, 1, 5);
-$bhbox->pack_start(Gtk2::VSeparator->new, 0, 1, 0);
-$bhbox->pack_end($rhvbox, 1, 1, 5);
+# now create the lh and rh panes
+my $lhvpane = Gtk2::VPaned->new;
+my $rhvpane = Gtk2::VPaned->new;
+$bhpane->pack1($lhvpane, 1, 0);
+$bhpane->pack2($rhvpane, 1, 0);
# first add a column type for the QRG
my $font = 'monospace 9';
}
);
+Gtk2::SimpleList->add_column_type( 'ttlong',
+ type => 'Glib::Scalar',
+ renderer => 'Gtk2::CellRendererText',
+ attr => sub {
+ my ($treecol, $cell, $model, $iter, $col_num) = @_;
+ my $info = $model->get ($iter, $col_num);
+ $Text::Wrap::columns = 80;
+ $cell->set(text => join("\n",wrap("","",$info)), font => $font);
+ }
+ );
+
+Gtk2::SimpleList->add_column_type( 'ttlesslong',
+ type => 'Glib::Scalar',
+ renderer => 'Gtk2::CellRendererText',
+ attr => sub {
+ my ($treecol, $cell, $model, $iter, $col_num) = @_;
+ my $info = $model->get ($iter, $col_num);
+ $Text::Wrap::columns = 65;
+ $cell->set(text => join("\n",wrap("","",$info)), font => $font);
+ }
+ );
+
+Gtk2::SimpleList->add_column_type( 'ttshort',
+ type => 'Glib::Scalar',
+ renderer => 'Gtk2::CellRendererText',
+ attr => sub {
+ my ($treecol, $cell, $model, $iter, $col_num) = @_;
+ my $info = $model->get ($iter, $col_num);
+ $Text::Wrap::columns = 30;
+ $cell->set(text => join("\n",wrap("","",$info)), font => $font);
+ }
+ );
+
#
# LEFT HAND SIDE
'QRG' => 'qrg',
'DX Call' => 'tt',
'Grid' => 'tt',
- 'Remarks' => 'tt',
+ 'Remarks' => 'ttshort',
'By' => 'tt',
'Grid' => 'tt',
'TxTime' => 'tt',
#$dxscroll->set_size_request (700, 400);
$dxscroll->add($dxlist);
$dxscroll->set_border_width(5);
-$lhvbox->pack_start($dxscroll, 1, 1, 0);
+
+$lhvpane->pack1($dxscroll, 1, 0);
# The command list
+my $lhvbox = Gtk2::VBox->new(0, 1);
my $cmdlist = Gtk2::SimpleList->new(
RxTime => 'tt',
- Information => 'tt',
+ Information => 'ttlong',
);
my $cmdscroll = Gtk2::ScrolledWindow->new (undef, undef);
$cmdscroll->set_shadow_type ('etched-out');
-$cmdscroll->set_policy ('never', 'automatic');
+$cmdscroll->set_policy ('automatic', 'automatic');
#$cmdscroll->set_size_request (700, 400);
$cmdscroll->add($cmdlist);
$cmdscroll->set_border_width(5);
$lhvbox->pack_start($cmdscroll, 1, 1, 0);
-# nice little separator
-$lhvbox->pack_start(Gtk2::HSeparator->new, 0, 1, 0 );
-
# callsign and current date and time
my $hbox = new Gtk2::HBox;
my $calllabel = new Gtk2::Label($call);
$bot->signal_connect('activate', \&bothandler);
$bot->can_default(1);
$lhvbox->pack_end($bot, 0, 1, 0);
+$lhvpane->pack2($lhvbox, 1, 0);
$bot->grab_default;
#
RxTime => 'tt',
From => 'tt',
To => 'tt',
- Announcement => 'tt',
+ Announcement => 'ttlesslong',
);
$annlist->set_rules_hint(1);
my $annscroll = Gtk2::ScrolledWindow->new (undef, undef);
#$annscroll->set_size_request (700, 400);
$annscroll->add($annlist);
$annscroll->set_border_width(5);
-$rhvbox->pack_start($annscroll, 1, 1, 0);
+$rhvpane->pack1($annscroll, 1, 0);
# The wwv list
+my $rhvbox = Gtk2::VBox->new(0, 1);
+
my $wwvlist = Gtk2::SimpleList->new(
RxTime => 'tt',
From => 'tt',
SFI => 'int',
A => 'int',
K => 'int',
- Remarks => 'tt',
+ Remarks => 'ttshort',
Hour => 'tt'
);
$wwvlist->set_rules_hint(1);
#$wwvscroll->set_size_request (700, 200);
$wwvscroll->add($wwvlist);
$wwvscroll->set_border_width(5);
-$rhvbox->pack_start($wwvscroll, 0, 1, 0);
+$rhvbox->pack_start($wwvscroll, 1, 1, 0);
# The wcy list
my $wcylist = Gtk2::SimpleList->new(
my $wcyscroll = Gtk2::ScrolledWindow->new (undef, undef);
$wcyscroll->set_shadow_type ('etched-out');
$wcyscroll->set_policy ('never', 'automatic');
-#$wcyscroll->set_size_request (700, 200);
$wcyscroll->add($wcylist);
$wcyscroll->set_border_width(5);
-$rhvbox->pack_start($wcyscroll, 0, 1, 0);
+$rhvbox->pack_start($wcyscroll, 1, 1, 0);
+$rhvbox->set_size_request (-1, $scr_height / 4);
+
+
+$rhvpane->pack2($rhvbox, 1, 0);
my $sock_helper = Gtk2::Helper->add_watch($sock->fileno, 'in', \&tophandler, $sock);