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.36 by elmex, Tue May 30 14:59:26 2006 UTC vs.
Revision 1.41 by root, Fri Jun 2 02:21:48 2006 UTC

81our $LOGVIEW; 81our $LOGVIEW;
82our $CONSOLE; 82our $CONSOLE;
83our $METASERVER; 83our $METASERVER;
84our $LOGIN_BUTTON; 84our $LOGIN_BUTTON;
85our $QUIT_DIALOG; 85our $QUIT_DIALOG;
86our $HOST_ENTRY;
86our $SERVER_SETUP; 87our $SERVER_SETUP;
87 88
88our $FLOORBOX; 89our $FLOORBOX;
89our $GAUGES; 90our $GAUGES;
90our $STATWIDS; 91our $STATWIDS;
105our $INVR; 106our $INVR;
106our $INV_RIGHT_HB; 107our $INV_RIGHT_HB;
107 108
108our $BIND_WINDOW; 109our $BIND_WINDOW;
109our $BIND_EDITOR; 110our $BIND_EDITOR;
111
112our $SPELL_LIST;
110 113
111sub status { 114sub status {
112 $STATUSBOX->add (CFClient::UI::Label::escape $_[0], pri => -10, group => "status", timeout => 10, fg => [1, 1, 0, 1]); 115 $STATUSBOX->add (CFClient::UI::Label::escape $_[0], pri => -10, group => "status", timeout => 10, fg => [1, 1, 0, 1]);
113} 116}
114 117
626 629
627 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}}) 630 $STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}})
628 for keys %tbl; 631 for keys %tbl;
629} 632}
630 633
631sub metaserver_dialog {
632 my $dialog = new CFClient::UI::FancyFrame
633 title => "Server List",
634 child => (my $vbox = new CFClient::UI::VBox);
635
636 $vbox->add ($dialog->{table} = new CFClient::UI::Table);
637
638 $dialog
639}
640
641my $METASERVER_ATIME; 634my $METASERVER_ATIME;
642 635
643sub update_metaserver { 636sub update_metaserver {
644 my ($HOST) = @_;
645
646 return if $METASERVER_ATIME > time; 637 return if $METASERVER_ATIME > time;
647 $METASERVER_ATIME = time + 60; 638 $METASERVER_ATIME = time + 60;
648 639
649 my $table = $METASERVER->{table}; 640 my $table = $METASERVER->{table};
650 $table->clear; 641 $table->clear;
702 693
703 $y++; 694 $y++;
704 695
705 $table->add (0, $y, new CFClient::UI::VBox children => [ 696 $table->add (0, $y, new CFClient::UI::VBox children => [
706 (new CFClient::UI::Button text => "Use", on_activate => sub { 697 (new CFClient::UI::Button text => "Use", on_activate => sub {
707 $HOST->set_text ($CFG->{host} = $host); 698 $HOST_ENTRY->set_text ($CFG->{host} = $host);
699 $METASERVER->toggle_visibility;
708 }), 700 }),
709 (new CFClient::UI::Empty expand => 1), 701 (new CFClient::UI::Empty expand => 1),
710 ]); 702 ]);
711 703
712 $table->add ($_ + 1, $y, new CFClient::UI::Label 704 $table->add ($_ + 1, $y, new CFClient::UI::Label
715 } 707 }
716 } 708 }
717 }); 709 });
718} 710}
719 711
712sub metaserver_dialog {
713 my $dialog = new CFClient::UI::FancyFrame
714 title => "Server List",
715 name => 'metaserver_dialog',
716 x => 'center',
717 y => 'center',
718 child => (my $vbox = new CFClient::UI::VBox),
719 on_visibility_change => sub {
720 update_metaserver if $_[1];
721 },
722 ;
723
724 $vbox->add ($dialog->{table} = new CFClient::UI::Table);
725
726 $dialog
727}
728
720sub server_setup { 729sub server_setup {
721 my $dialog = $SERVER_SETUP = new CFClient::UI::FancyFrame 730 my $dialog = $SERVER_SETUP = new CFClient::UI::FancyFrame
722 x => "center", 731 x => "center",
723 y => "center", 732 y => "center",
724 name => "server_setup", 733 name => "server_setup",
731 740
732 { 741 {
733 $table->add (1, 2, my $vbox = new CFClient::UI::VBox); 742 $table->add (1, 2, my $vbox = new CFClient::UI::VBox);
734 743
735 $vbox->add ( 744 $vbox->add (
736 my $HOST = new CFClient::UI::Entry 745 $HOST_ENTRY = new CFClient::UI::Entry
737 expand => 1, 746 expand => 1,
738 text => $CFG->{host}, 747 text => $CFG->{host},
739 tooltip => "The hostname or ip address of the Crossfire(+) server to connect to", 748 tooltip => "The hostname or ip address of the Crossfire(+) server to connect to",
740 on_changed => sub { 749 on_changed => sub {
741 my ($self, $value) = @_; 750 my ($self, $value) = @_;
743 } 752 }
744 ); 753 );
745 754
746 $METASERVER = metaserver_dialog; 755 $METASERVER = metaserver_dialog;
747 756
748 $vbox->add (new CFClient::UI::Flopper 757 $vbox->add (new CFClient::UI::Button
749 expand => 1, 758 expand => 1,
750 text => "Server List", 759 text => "Server List",
751 other => $METASERVER, 760 other => $METASERVER,
752 tooltip => "Show a list of available crossfire servers", 761 tooltip => "Show a list of available crossfire servers",
753 on_open => sub { 762 on_activate => sub { $METASERVER->toggle_visibility },
754 update_metaserver $HOST;
755 }
756 ); 763 );
757 } 764 }
758 765
759 $table->add (0, 4, new CFClient::UI::Label valign => 0, align => 1, text => "Username"); 766 $table->add (0, 4, new CFClient::UI::Label valign => 0, align => 1, text => "Username");
760 $table->add (1, 4, new CFClient::UI::Entry 767 $table->add (1, 4, new CFClient::UI::Entry
930 x => "center", 937 x => "center",
931 y => "center", 938 y => "center",
932 force_w => $WIDTH * 9/10, 939 force_w => $WIDTH * 9/10,
933 force_h => $HEIGHT * 9/10, 940 force_h => $HEIGHT * 9/10,
934 title => "Inventory", 941 title => "Inventory",
935 name => "inventory_window",
936 ; 942 ;
937 943
938 $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1); 944 $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1);
939 945
940 $hb->add (my $vb1 = new CFClient::UI::VBox); 946 $hb->add (my $vb1 = new CFClient::UI::VBox);
949 955
950 # XXX: Call after $INVR = ... because set_opencont sets the items 956 # XXX: Call after $INVR = ... because set_opencont sets the items
951 CFClient::Protocol::set_opencont ($::CONN, 0, "Floor"); 957 CFClient::Protocol::set_opencont ($::CONN, 0, "Floor");
952 958
953 $invwin 959 $invwin
960}
961
962sub make_spell_list {
963 $SPELL_LIST = new CFClient::UI::SpellList
964 force_w => $WIDTH * (9/10),
965 force_h => $HEIGHT * (9/10);
966 $SPELL_LIST
954} 967}
955 968
956sub make_binding_window { 969sub make_binding_window {
957 my $binding_list = new CFClient::UI::VBox; 970 my $binding_list = new CFClient::UI::VBox;
958 971
1048 $BIND_WINDOW 1061 $BIND_WINDOW
1049} 1062}
1050 1063
1051sub make_help_window { 1064sub make_help_window {
1052 my $win = new CFClient::UI::FancyFrame 1065 my $win = new CFClient::UI::FancyFrame
1066 x => 'center',
1067 y => 'center',
1068 name => 'doc_browser',
1053 def_w => int $WIDTH * 7/8, 1069 force_w => int $WIDTH * 7/8,
1054 def_h => int $HEIGHT * 7/8, 1070 force_h => int $HEIGHT * 7/8,
1055 title => "Documentation"; 1071 title => "Documentation";
1056 1072
1057 $win->add (my $vbox = new CFClient::UI::VBox); 1073 $win->add (my $vbox = new CFClient::UI::VBox);
1058 1074
1059 $vbox->add (my $buttons = new CFClient::UI::HBox); 1075 $vbox->add (my $buttons = new CFClient::UI::HBox);
1060 $vbox->add (my $viewer = new CFClient::UI::TextView expand => 1, fontsize => 0.8); 1076 $vbox->add (my $viewer = new CFClient::UI::TextView expand => 1, fontsize => 0.8);
1214 "Lets you define, edit and delete bindings." 1230 "Lets you define, edit and delete bindings."
1215 ."There is a shortcut for making bindings: LCTRL+Insert opens the binding editor " 1231 ."There is a shortcut for making bindings: LCTRL+Insert opens the binding editor "
1216 ."with nothing set and the recording started. After doing the actions you " 1232 ."with nothing set and the recording started. After doing the actions you "
1217 ."want to record press Insert and you will be asked to press a key-combo." 1233 ."want to record press Insert and you will be asked to press a key-combo."
1218 ."After pressing the combo the binding will be saved automatically and the " 1234 ."After pressing the combo the binding will be saved automatically and the "
1219 ."binding editor closes" 1235 ."binding editor closes");
1220 ); 1236
1237 $BUTTONBAR->add (new CFClient::UI::Flopper
1238 text => "Spells",
1239 other => make_spell_list,
1240 tooltip => "The spell list");
1221 1241
1222 $BUTTONBAR->add (new CFClient::UI::Button 1242 $BUTTONBAR->add (new CFClient::UI::Button
1223 text => "Quit", 1243 text => "Quit",
1224 tooltip => "Terminates the program", 1244 tooltip => "Terminates the program",
1225 on_activate => sub { 1245 on_activate => sub {
1553=head1 USAGE 1573=head1 USAGE
1554 1574
1555cfplus utilises OpenGL for all UI elements and the game. It is supposed to be used 1575cfplus utilises OpenGL for all UI elements and the game. It is supposed to be used
1556fullscreen and interactively. 1576fullscreen and interactively.
1557 1577
1578=head1 DEBUGGING
1579
1580
1581CFPLUS_DEBUG - environment variable
1582
1583 1 draw borders around widgets
1584 2 add low-level widget info to tooltips
1585 4 show fps
1586 8 suppress tooltips
1587
1558=head1 AUTHOR 1588=head1 AUTHOR
1559 1589
1560Marc Lehmann <crossfire@schmorp.de>, Robin Redeker <elmex@ta-sa.org> 1590Marc Lehmann <crossfire@schmorp.de>, Robin Redeker <elmex@ta-sa.org>
1561 1591
1562 1592

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines