ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/bin/cfplus
(Generate patch)

Comparing deliantra/Deliantra-Client/bin/cfplus (file contents):
Revision 1.75 by root, Sun Jun 18 17:23:36 2006 UTC vs.
Revision 1.80 by root, Mon Jun 26 21:59:04 2006 UTC

36 36
37use CFClient; 37use CFClient;
38use CFClient::OpenGL (); 38use CFClient::OpenGL ();
39use CFClient::Protocol; 39use CFClient::Protocol;
40use CFClient::UI; 40use CFClient::UI;
41use CFClient::BindingEditor;
41use CFClient::MapWidget; 42use CFClient::MapWidget;
42 43
43$SIG{QUIT} = sub { Carp::cluck "QUIT" }; 44$SIG{QUIT} = sub { Carp::cluck "QUIT" };
44 45
45$Event::DIED = sub { 46$Event::DIED = sub {
115our $INV; 116our $INV;
116our $INVR; 117our $INVR;
117our $INV_RIGHT_HB; 118our $INV_RIGHT_HB;
118 119
119our $BIND_EDITOR; 120our $BIND_EDITOR;
121our $BIND_UPD_CB;
120 122
121our $PICKUP_CFG; 123our $PICKUP_CFG;
122 124
123sub status { 125sub status {
124 $STATUSBOX->add (CFClient::UI::Label::escape $_[0], pri => -10, group => "status", timeout => 10, fg => [1, 1, 0, 1]); 126 $STATUSBOX->add (CFClient::UI::Label::escape $_[0], pri => -10, group => "status", timeout => 10, fg => [1, 1, 0, 1]);
381 status "connection closed"; 383 status "connection closed";
382 384
383 destroy_query_dialog $CONN; 385 destroy_query_dialog $CONN;
384 $CONN->destroy; 386 $CONN->destroy;
385 $CONN = 0; # false, does not autovivify 387 $CONN = 0; # false, does not autovivify
388
389 undef $MAP;
386} 390}
387 391
388sub graphics_setup { 392sub graphics_setup {
389 my $vbox = new CFClient::UI::VBox; 393 my $vbox = new CFClient::UI::VBox;
390 394
746 ); 750 );
747 $tbl2->add ($col + 1, $row, new CFClient::UI::Image 751 $tbl2->add ($col + 1, $row, new CFClient::UI::Image
748 font => $FONT_FIXED, 752 font => $FONT_FIXED,
749 can_hover => 1, 753 can_hover => 1,
750 can_events => 1, 754 can_events => 1,
751 image => "ui/resist/resist_$_.png", 755 path => "ui/resist/resist_$_.png",
752 tooltip => $resist_names{$_}, 756 tooltip => $resist_names{$_},
753 ); 757 );
754 758
755 $row++; 759 $row++;
756 if ($row % 6 == 0) { 760 if ($row % 6 == 0) {
943 x => 'center', 947 x => 'center',
944 y => 'center', 948 y => 'center',
945 z => 3, 949 z => 3,
946 force_h => $::HEIGHT * 0.4, 950 force_h => $::HEIGHT * 0.4,
947 child => (my $vbox = new CFClient::UI::VBox), 951 child => (my $vbox = new CFClient::UI::VBox),
952 has_close_button => 1,
948 on_visibility_change => sub { 953 on_visibility_change => sub {
949 update_metaserver if $_[1]; 954 update_metaserver if $_[1];
950 0 955 0
951 }, 956 },
952 ; 957 ;
1299 1304
1300sub spell_setup { 1305sub spell_setup {
1301 new CFClient::UI::SpellList 1306 new CFClient::UI::SpellList
1302} 1307}
1303 1308
1309sub update_bindings {
1310 $BIND_UPD_CB->() if $BIND_UPD_CB;
1311}
1312
1304sub keyboard_setup { 1313sub keyboard_setup {
1305 my $binding_list = new CFClient::UI::VBox; 1314 my $binding_list = new CFClient::UI::VBox;
1306 1315
1307 my $refresh; 1316 my $refresh;
1308 $refresh = sub { 1317 $refresh = $BIND_UPD_CB = sub {
1309 $binding_list->clear (); 1318 $binding_list->clear ();
1310 1319
1311 for my $mod (keys %{$::CFG->{profile}{default}{bindings}}) { 1320 for my $mod (keys %{$::CFG->{profile}{default}{bindings}}) {
1312 for my $sym (keys %{$::CFG->{profile}{default}{bindings}{$mod}}) { 1321 for my $sym (keys %{$::CFG->{profile}{default}{bindings}{$mod}}) {
1313 my $cmds = $::CFG->{profile}{default}{bindings}{$mod}{$sym}; 1322 my $cmds = $::CFG->{profile}{default}{bindings}{$mod}{$sym};
1331 on_activate => sub { 1340 on_activate => sub {
1332 $::BIND_EDITOR->set_binding ( 1341 $::BIND_EDITOR->set_binding (
1333 $mod, $sym, $::CFG->{profile}{default}{bindings}{$mod}{$sym}, 1342 $mod, $sym, $::CFG->{profile}{default}{bindings}{$mod}{$sym},
1334 sub { 1343 sub {
1335 my ($nmod, $nsym, $ncmds) = @_; 1344 my ($nmod, $nsym, $ncmds) = @_;
1336 delete $::CFG->{profile}{default}{bindings}{$mod}{$sym}; 1345 $::BIND_EDITOR->cfg_unbind ($mod, $sym);
1337 $::CFG->{profile}{default}{bindings}{$nmod}{$nsym} = $ncmds; 1346 $::BIND_EDITOR->cfg_bind ($nmod, $nsym, $ncmds);
1338 $refresh->(); 1347 $refresh->();
1339 $SETUP_NOTEBOOK->set_current_page ($SETUP_KEYBOARD); 1348 $SETUP_NOTEBOOK->set_current_page ($SETUP_KEYBOARD);
1340 $SETUP_DIALOG->show; 1349 $SETUP_DIALOG->show;
1341 }, 1350 },
1342 sub { 1351 sub {
1376 tooltip => "This button opens the binding editor with an empty binding.", 1385 tooltip => "This button opens the binding editor with an empty binding.",
1377 on_activate => sub { 1386 on_activate => sub {
1378 $::BIND_EDITOR->set_binding (undef, undef, [], 1387 $::BIND_EDITOR->set_binding (undef, undef, [],
1379 sub { 1388 sub {
1380 my ($mod, $sym, $cmds) = @_; 1389 my ($mod, $sym, $cmds) = @_;
1381 $::CFG->{profile}{default}{bindings}{$mod}{$sym} = $cmds; 1390 $::BIND_EDITOR->cfg_bind ($mod, $sym, $cmds);
1382 $refresh->(); 1391 $refresh->();
1383 $SETUP_NOTEBOOK->set_current_page ($SETUP_KEYBOARD); 1392 $SETUP_NOTEBOOK->set_current_page ($SETUP_KEYBOARD);
1384 $SETUP_DIALOG->show; 1393 $SETUP_DIALOG->show;
1385 }, 1394 },
1386 sub { 1395 sub {
1428 $buttons->add (new CFClient::UI::Label text => "Choose a document to display: "); 1437 $buttons->add (new CFClient::UI::Label text => "Choose a document to display: ");
1429 $buttons->add (my $combo = new CFClient::UI::Combobox 1438 $buttons->add (my $combo = new CFClient::UI::Combobox
1430 value => undef, 1439 value => undef,
1431 options => [ 1440 options => [
1432 [intro => "Introduction"], 1441 [intro => "Introduction"],
1433 [manual => "Manual"], 1442 [manual => "Main Manual"],
1434 [skill_help => "Skills"], 1443 [skill_help => "Skill Reference"],
1435 [command_help => "Commands"], 1444 [command_help => "Command Reference"],
1436 [dmcommand_help => "DM Commands"], 1445 [dmcommand_help => "DM Commands"],
1437 [COPYING => "License Terms"], 1446 [COPYING => "License Terms"],
1438 ], 1447 ],
1439 on_changed => sub { 1448 on_changed => sub {
1440 my ($self, $pod) = @_; 1449 my ($self, $pod) = @_;
1441 1450
1442 my $pom = CFClient::load_pod CFClient::find_rcfile "pod/$pod.pod", 1451 my $pom = CFClient::load_pod CFClient::find_rcfile "pod/$pod.pod",
1443 doc_viewer => 1, sub { CFClient::pod_to_pango_list $_[0] }; 1452 doc_viewer => 1, sub { CFClient::pod_to_pango_list $_[0] };
1444 1453
1445 $viewer->clear; 1454 $viewer->clear;
1455
1456# $viewer->add_paragraph ([1, 1, 1, 1], ["<big>Test</big>\n\n \x{fffc} \x{fffc}\n",
1457# (new CFClient::UI::Image path => "x.png", can_hover => 1, can_events => 1),
1458# (new CFClient::UI::Label text => "üüüü", can_hover => 1, can_events => 1, tooltip => "??"),
1459# ]);#d#
1446 1460
1447 $viewer->add_paragraph ([1, 1, 1, 1], $_->[1], $_->[0]) 1461 $viewer->add_paragraph ([1, 1, 1, 1], $_->[1], $_->[0])
1448 for @$pom; 1462 for @$pom;
1449 1463
1450 $viewer->set_offset (0); 1464 $viewer->set_offset (0);
1465
1451 0 1466 0
1452 }, 1467 },
1453 on_visibility_change => sub { 1468 on_visibility_change => sub {
1454 my ($self, $visible) = @_; 1469 my ($self, $visible) = @_;
1455 return unless $visible; 1470 return unless $visible;
1502 z => 100, 1517 z => 100,
1503 force_x => "max", 1518 force_x => "max",
1504 force_y => 0; 1519 force_y => 0;
1505 $DEBUG_STATUS->show; 1520 $DEBUG_STATUS->show;
1506 1521
1507 $BIND_EDITOR = new CFClient::UI::BindEditor (x => "max", y => 0); 1522 $BIND_EDITOR = new CFClient::BindingEditor (x => "max", y => 0);
1508 1523
1509 $STATUSBOX = new CFClient::UI::Statusbox; 1524 $STATUSBOX = new CFClient::UI::Statusbox;
1510 $STATUSBOX->add ("Use <b>Alt-Enter</b> to toggle fullscreen mode", timeout => 864000, pri => -100, color => [1, 1, 1, 0.8]); 1525 $STATUSBOX->add ("Use <b>Alt-Enter</b> to toggle fullscreen mode", timeout => 864000, pri => -100, color => [1, 1, 1, 0.8]);
1511 1526
1512 (new CFClient::UI::Frame 1527 (new CFClient::UI::Frame

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines