Article View: pl.comp.lang.perl
Article #52304Curses::UI - jak poprawnie przełączać skupienie
From: piecia aka dracorp
Date: Tue, 04 Oct 2011 21:36
Date: Tue, 04 Oct 2011 21:36
71 lines
2720 bytes
2720 bytes
Witam
Piszę sobie taką mała aplikację w Curses::UI no i w między czasie wynikł
problem z przełączania skupienia pomiędzy widgetami.
Dla przykładu taki kod:
#v+
#!/usr/bin/perl
use strict;
use warnings;
use Term::ReadKey;
use Curses::UI;
use Curses;
my @screensize = GetTerminalSize();
my $cui = new Curses::UI(
-clear_on_exit => 0,
);
my $window = $cui->add(
'window','Window',
-border => 1,
);
my $notebook = $window->add(
'notebook','Notebook',
-height => $window->height - 10,
);
my $page1 = $notebook->add_page(
'test1'
);
my $page2 = $notebook->add_page(
'test2'
);
my $button = $window->add(
'button', 'Buttonbox',
-y => -1,
-buttons => [
{
-label => '< Start session >',
-value => 'startsession',
-shortcut => 's',
},
{
-label => '< Quit >',
-shortcut => 'q',
-value => 'quit',
-onpress => sub{exit},
}
],
-onfocus => sub{
$cui->set_binding( sub{$notebook->focus()}, "\t");
},
);
$cui->set_binding( sub{exit(0)} , "\cq");
$cui->set_binding( sub{$button->focus()}, "\t");
$cui->mainloop;
#v-
Tab przełącza skupienie, pomiędzy przyciskami a notebookiem. Jednak w
przypadku dodania następnego widgetu ten sposób się nie sprawdzi.
No chyba że samemu trzeba będzie jednocześnie ustalać kolejność
przełączania i obsłużyć skupienie.
Domyślnie dodanie notebooka do tego samego okna w którym są już przyciski
spowoduje, że nie będzie można przełączać skupienia tabulatorem pomiędzy
nimi.
Pytanie jak to sensowniej zrobić?
ps. powyższy przykład nie jest za bardzo poprawny, bo przełączanie
tabulatorem nie działa w kółko.
--
piecia aka dracorp
pisz na: piotr kropka rogoza at wp kropka eu
Technical Details
Message-ID:
<pan.2011.10.04.21.36.51@dracorp.one.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for-mail
From: piecia aka dracorp <imie.nazwisko@wp.eu>
Newsgroups: pl.comp.lang.perl
Subject: Curses::UI - jak poprawnie przełączać
skupienie
Date: Tue, 4 Oct 2011 21:36:51 +0000 (UTC)
Organization: http://onet.pl
Lines: 71
Message-ID: <pan.2011.10.04.21.36.51@dracorp.one.pl>
NNTP-Posting-Host: 83-145-150-143.cable-modem.tkk.net.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1317764211 11286 83.145.150.143 (4 Oct 2011 21:36:51 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Tue, 4 Oct 2011 21:36:51 +0000 (UTC)
User-Agent: Pan/0.135 (Tomorrow I'll Wake Up and Scald Myself with Tea; GIT 30dc37b master)
X-face: &O(G<?G0x[)D}ri@2r:nnqjWG"C%v#'ES"T|m>Gaw3JWL>[XKRh^(75y8=DvLC1QXn9Vtc= !QWAS}|{A97ADU]x0*KE-Z>sKRlHMqyJ7c!=^wW,f#RXJ%e_@(U2YaNV10ucCf
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit