--- deliantra/Deliantra-Client/bin/cfplus 2006/06/28 18:48:48 1.83
+++ deliantra/Deliantra-Client/bin/cfplus 2006/07/02 21:41:34 1.87
@@ -87,15 +87,22 @@
our $LOGIN_BUTTON;
our $QUIT_DIALOG;
our $HOST_ENTRY;
+our $PICKUP_ENABLE;
our $SERVER_INFO;
our $SETUP_DIALOG;
our $SETUP_NOTEBOOK;
our $SETUP_SERVER;
our $SETUP_KEYBOARD;
-our $SETUP_SPELLS;
-our $STATS_WINDOW;
+our $PL_NOTEBOOK;
+our $PL_WINDOW;
+
+our $INVENTORY_PAGE;
+our $STATS_PAGE;
+our $SPELL_PAGE;
+
+our $HELP_WINDOW;
our $MESSAGE_WINDOW;
our $FLOORBOX;
our $GAUGES;
@@ -112,7 +119,6 @@
our $STATUSBOX;
our $DEBUG_STATUS;
-our $INV_WINDOW;
our $INV;
our $INVR;
our $INV_RIGHT_HB;
@@ -223,7 +229,7 @@
return;
}
- $STATS_WINDOW->show;
+ $STATS_PAGE->show;
$MESSAGE_WINDOW->hide;
unshift @dialog, new CFClient::UI::Label
@@ -273,7 +279,7 @@
text => "Accept",
on_activate => sub {
$conn->send ("reply n");
- $STATS_WINDOW->hide;
+ $STATS_PAGE->hide;
destroy_query_dialog $conn;
0
},
@@ -375,8 +381,8 @@
$LOGIN_BUTTON->set_text ("Login");
$SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER);
$SETUP_DIALOG->show;
- $INV_WINDOW->hide;
- $SETUP_SPELLS->clear_spells;
+ $PL_WINDOW->hide;
+ $SPELL_PAGE->clear_spells;
return unless $CONN;
@@ -655,14 +661,10 @@
}
sub stats_window {
- my $tgw = new CFClient::UI::FancyFrame
- y => $HEIGHT * (2/8),
- x => "max",
- title => "Stats",
- name => "stats_window",
- has_close_button => 1;
+ my $tgw =
+ new CFClient::UI::Window
+ child => my $vb = new CFClient::UI::VBox;
- $tgw->add (new CFClient::UI::Window child => my $vb = new CFClient::UI::VBox);
$vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1,
can_hover => 1, can_events => 1,
tooltip => "Your name and title. You can change your title by using the title command, if supported by the server.");
@@ -1190,7 +1192,7 @@
for (
["General", 0, 0,
- ["Enable autopickup" => PICKUP_NEWMODE],
+ ["Enable autopickup" => PICKUP_NEWMODE, \$PICKUP_ENABLE],
["Inhibit autopickup" => PICKUP_INHIBIT],
["Stop before pickup" => PICKUP_STOP],
["Debug autopickup" => PICKUP_DEBUG],
@@ -1237,7 +1239,7 @@
my $mask = $_->[1];
$table->add ($x , $y, new CFClient::UI::Label text => $_->[0], align => 1, expand => 1);
- $table->add ($x+1, $y, new CFClient::UI::CheckBox
+ $table->add ($x+1, $y, my $checkbox = new CFClient::UI::CheckBox
state => $::CFG->{pickup} & $mask,
on_changed => sub {
my ($box, $value) = @_;
@@ -1253,6 +1255,8 @@
0
});
+
+ ${$_->[2]} = $checkbox if $_->[2];
}
}
@@ -1280,37 +1284,71 @@
$table
}
-sub inventory_window {
- my $invwin = $INV_WINDOW = new CFClient::UI::FancyFrame
- x => "center",
- y => "center",
- force_w => $WIDTH * 9/10,
- force_h => $HEIGHT * 9/10,
- title => "Inventory",
- name => "inventory_window",
- has_close_button => 1,
- ;
-
- $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1);
+sub inventory_widget {
+ my $hb = new CFClient::UI::HBox homogeneous => 1;
$hb->add (my $vb1 = new CFClient::UI::VBox);
$vb1->add (new CFClient::UI::Label align => 0, text => "Player");
- $vb1->add ($INV = new CFClient::UI::Inventory expand => 1);
+ $vb1->add ($INV = new CFClient::UI::Inventory);
$hb->add (my $vb2 = new CFClient::UI::VBox);
$vb2->add ($INV_RIGHT_HB = new CFClient::UI::HBox);
- $vb2->add ($INVR = new CFClient::UI::Inventory expand => 1);
+ $vb2->add ($INVR = new CFClient::UI::Inventory);
# XXX: Call after $INVR = ... because set_opencont sets the items
CFClient::Protocol::set_opencont ($::CONN, 0, "Floor");
- $invwin
+ $hb
}
-sub spell_setup {
- new CFClient::UI::SpellList
+sub toggle_player_page {
+ my ($widget) = @_;
+
+ if ($PL_WINDOW->{visible} && $PL_NOTEBOOK->get_current_page == $widget) {
+ $PL_WINDOW->hide;
+ } else {
+ $PL_NOTEBOOK->set_current_page ($widget);
+ $PL_WINDOW->show;
+ }
+}
+
+sub player_window {
+ my $plwin = $PL_WINDOW = new CFClient::UI::FancyFrame
+ x => "center",
+ y => "center",
+ force_w => $WIDTH * 9/10,
+ force_h => $HEIGHT * 9/10,
+ title => "Player",
+ has_close_button => 1
+ ;
+
+ my $ntb =
+ $PL_NOTEBOOK =
+ new CFClient::UI::Notebook
+ expand => 1,
+ debug => 1,
+ filter => (new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1),
+ ;
+
+ $ntb->add (
+ "Stats & Skills" => $STATS_PAGE = stats_window,
+ "Shows statistics and skill window, where all your Stats, Resistances and Skills are shown."
+ );
+ $ntb->add (
+ Spellbook => $SPELL_PAGE = new CFClient::UI::SpellList,
+ "Displays all spells you have and lets you edit keyboard shortcuts for them."
+ );
+ $ntb->add (
+ Inventory => $INVENTORY_PAGE = inventory_widget,
+ "Toggles the inventory window, where you can manage your loot (or treasures :). "
+ . "You can also hit the Tab-key to show/hide the Inventory."
+ );
+
+
+ $plwin->add ($ntb);
+ $plwin
}
sub update_bindings {
@@ -1330,7 +1368,7 @@
next unless ref $cmds eq 'ARRAY' and @$cmds > 0;
my $lbl = join "; ", @$cmds;
- my $nam = CFClient::Binder::keycombo_to_name ($mod, $sym);
+ my $nam = CFClient::BindingEditor::keycombo_to_name ($mod, $sym);
$binding_list->add (my $hb = new CFClient::UI::HBox);
$hb->add (new CFClient::UI::Button
text => "delete",
@@ -1433,7 +1471,8 @@
name => 'doc_browser',
force_w => int $WIDTH * 7/8,
force_h => int $HEIGHT * 7/8,
- title => "Documentation";
+ title => "Help Browser",
+ has_close_button => 1;
$win->add (my $vbox = new CFClient::UI::VBox);
@@ -1607,8 +1646,6 @@
. "want to record press Insert and you will be asked to press a key-combo. "
. "After pressing the combo the binding will be saved automatically and the "
. "binding editor closes");
- $SETUP_NOTEBOOK->add (Spells => $SETUP_SPELLS = spell_setup,
- "Displays all spells you have and lets you edit keyboard shortcuts for them.");
$SETUP_NOTEBOOK->add (Debug => debug_setup,
"Some debuggin' options. Do not ask.");
@@ -1622,11 +1659,8 @@
make_gauge_window->show; # XXX: this has to be set before make_stats_window as make_stats_window calls update_stats_window which updated the gauges also X-D
- $BUTTONBAR->add (new CFClient::UI::Flopper text => "Stats Window", other => $STATS_WINDOW = stats_window,
- tooltip => "Toggles the statistics window, where all your Stats and Resistances are being displayed at all times.");
- $BUTTONBAR->add (new CFClient::UI::Flopper text => "Inventory", other => inventory_window,
- tooltip => "Toggles the inventory window, where you can manage your loot (or treasures :). "
- . "You can also hit the Tab-key to show/hide the Inventory.");
+ $BUTTONBAR->add (new CFClient::UI::Flopper text => "Playerbook", other => player_window,
+ tooltip => "Toggles the player view, where you can manage Inventory, Spells, Skills and see your Stats.");
$BUTTONBAR->add (new CFClient::UI::Button
text => "Save Config",
@@ -1639,7 +1673,7 @@
},
);
- $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => help_window,
+ $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => $HELP_WINDOW = help_window,
tooltip => "View Documentation");
$BUTTONBAR->add (new CFClient::UI::Button