--- deliantra/Deliantra-Client/bin/cfplus 2006/06/28 10:37:19 1.82 +++ deliantra/Deliantra-Client/bin/cfplus 2006/07/02 19:32:56 1.85 @@ -112,11 +112,13 @@ our $STATUSBOX; our $DEBUG_STATUS; -our $INV_WINDOW; our $INV; our $INVR; our $INV_RIGHT_HB; +our $PL_NOTEBOOK; +our $PL_WINDOW; + our $BIND_EDITOR; our $BIND_UPD_CB; @@ -375,7 +377,7 @@ $LOGIN_BUTTON->set_text ("Login"); $SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER); $SETUP_DIALOG->show; - $INV_WINDOW->hide; + $PL_WINDOW->hide; $SETUP_SPELLS->clear_spells; return unless $CONN; @@ -655,14 +657,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."); @@ -1238,7 +1236,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 - state => $CFG->{pickup} & $mask, + state => $::CFG->{pickup} & $mask, on_changed => sub { my ($box, $value) = @_; @@ -1257,16 +1255,18 @@ } $table->add (2, 18, new CFClient::UI::ValSlider - range => [0, 0, 16, 1, 1], + range => [$::CFG->{pickup} & 0xF, 0, 16, 1, 1], + template => ">= 99", to_value => sub { ">= " . 5 * $_[0] }, on_changed => sub { my ($slider, $value) = @_; - $::CFG->{pickup} &= ~0x7; + $::CFG->{pickup} &= ~0xF; $::CFG->{pickup} |= int $value if $value; 1; }); + $table->add (3, 18, new CFClient::UI::Button text => "set", on_activate => sub { @@ -1278,37 +1278,59 @@ $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 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 ( + Inventory => 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." + ); + + $ntb->add ( + Stats => $STATS_WINDOW = stats_window, + "Toggles the statistics window, where all your Stats and Resistances are being displayed at all times." + ); + $ntb->add ( + Spells => $SETUP_SPELLS = new CFClient::UI::SpellList, + "Displays all spells you have and lets you edit keyboard shortcuts for them." + ); + + $plwin->add ($ntb); + $plwin } sub update_bindings { @@ -1328,7 +1350,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", @@ -1605,8 +1627,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."); @@ -1620,11 +1640,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 => "Player", 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",