--- deliantra/Deliantra-Client/bin/cfplus 2006/06/07 05:54:09 1.63
+++ deliantra/Deliantra-Client/bin/cfplus 2006/06/18 17:13:12 1.74
@@ -86,6 +86,7 @@
our $LOGIN_BUTTON;
our $QUIT_DIALOG;
our $HOST_ENTRY;
+our $SERVER_INFO;
our $SETUP_DIALOG;
our $SETUP_NOTEBOOK;
@@ -156,6 +157,7 @@
on_activate => sub {
$conn->send ("reply n");
$dialog->destroy;
+ 0
}
);
$hbox->add (new CFClient::UI::Button
@@ -163,10 +165,11 @@
on_activate => sub {
$conn->send ("reply y");
destroy_query_dialog $conn;
+ 0
},
);
- $dialog->focus_in;
+ $dialog->grab_focus;
} elsif ($flags & CS_QUERY_SINGLECHAR) {
$dialog->{tooltip} = "Press a key (click on the entry to make sure it has keyboard focus)";
@@ -186,6 +189,7 @@
on_activate => sub {
$conn->send ("reply n");
destroy_query_dialog $conn;
+ 0
},
);
$table->add (2, 0, new CFClient::UI::Button
@@ -193,6 +197,7 @@
on_activate => sub {
$conn->send ("reply d");
destroy_query_dialog $conn;
+ 0
},
);
@@ -232,6 +237,7 @@
on_activate => sub {
$conn->send ("reply y");
destroy_query_dialog $conn;
+ 0
},
);
@@ -239,13 +245,13 @@
my ($sw1, $sw2) = map +(new CFClient::UI::Combobox
value => $_,
options => [
- [Str => 1, "Strength ($conn->{stat}{+CS_STAT_STR})"],
- [Dex => 2, "Dexterity ($conn->{stat}{+CS_STAT_DEX})"],
- [Con => 3, "Constitution ($conn->{stat}{+CS_STAT_CON})"],
- [Int => 4, "Intelligence ($conn->{stat}{+CS_STAT_INT})"],
- [Wis => 5, "Wisdom ($conn->{stat}{+CS_STAT_WIS})"],
- [Pow => 6, "Power ($conn->{stat}{+CS_STAT_POW})"],
- [Cha => 7, "Charisma ($conn->{stat}{+CS_STAT_CHA})"],
+ [1 => "Str", "Strength ($conn->{stat}{+CS_STAT_STR})"],
+ [2 => "Dex", "Dexterity ($conn->{stat}{+CS_STAT_DEX})"],
+ [3 => "Con", "Constitution ($conn->{stat}{+CS_STAT_CON})"],
+ [4 => "Int", "Intelligence ($conn->{stat}{+CS_STAT_INT})"],
+ [5 => "Wis", "Wisdom ($conn->{stat}{+CS_STAT_WIS})"],
+ [6 => "Pow", "Power ($conn->{stat}{+CS_STAT_POW})"],
+ [7 => "Cha", "Charisma ($conn->{stat}{+CS_STAT_CHA})"],
],
), 1 .. 2;
@@ -255,6 +261,7 @@
$conn->{stat_change_with} = $sw2->{value};
$conn->send ("reply $sw1->{value}");
destroy_query_dialog $conn;
+ 0
},
);
$table->add (2, 1, new CFClient::UI::HBox children => [$sw1, $sw2]);
@@ -266,6 +273,7 @@
$conn->send ("reply n");
$STATS_WINDOW->hide;
destroy_query_dialog $conn;
+ 0
},
);
@@ -285,10 +293,11 @@
on_changed => sub {
$conn->send ("reply $_[1]");
destroy_query_dialog $conn;
+ 0
},
;
- $entry->focus_in;
+ $entry->grab_focus;
} else {
$dialog->{tooltip} = "Enter the reply and press return (click on the entry to make sure it has keyboard focus)";
@@ -298,10 +307,11 @@
on_activate => sub {
$conn->send ("reply $_[1]");
destroy_query_dialog $conn;
+ 0
},
;
- $entry->focus_in;
+ $entry->grab_focus;
}
$vbox->add (@dialog);
@@ -364,6 +374,7 @@
$SETUP_NOTEBOOK->set_current_page ($SETUP_SERVER);
$SETUP_DIALOG->show;
$INV_WINDOW->hide;
+ $SETUP_SPELLS->clear_spells;
return unless $CONN;
@@ -399,50 +410,35 @@
$table->add (1, $row++, new CFClient::UI::CheckBox
state => $CFG->{fullscreen},
tooltip => "Bring the client into fullscreen mode.",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{fullscreen} = $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{fullscreen} = $value; 0 }
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fast & Ugly");
$table->add (1, $row++, new CFClient::UI::CheckBox
state => $CFG->{fast},
tooltip => "Lower the visual quality considerably to speed up rendering.",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{fast} = $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{fast} = $value; 0 }
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Map Scale");
$table->add (1, $row++, new CFClient::UI::Slider
range => [(log $CFG->{map_scale}) / (log 2), -3, 1, 0, 1],
tooltip => "Enlarge or shrink the displayed map. Changes are instant.",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{map_scale} = 2 ** $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{map_scale} = 2 ** $value; 0 }
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fog of War");
$table->add (1, $row++, new CFClient::UI::CheckBox
state => $CFG->{fow_enable},
tooltip => "Fog-of-War marks areas that cannot be seen by the player. Changes are instant.",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{fow_enable} = $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{fow_enable} = $value; 0 }
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Intensity");
$table->add (1, $row++, new CFClient::UI::Slider
range => [$CFG->{fow_intensity}, 0, 1, 0, 1 / 256],
tooltip => "Fog of War Lightness. The higher the intensity, the lighter the Fog-of-War color. Changes are instant.",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{fow_intensity} = $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{fow_intensity} = $value; 0 }
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Smooth");
@@ -453,6 +449,7 @@
my ($self, $value) = @_;
$CFG->{fow_smooth} = $value;
status "Fog of War smoothing requires OpenGL 1.2 or higher" if $CFClient::OpenGL::GL_VERSION < 1.2;
+ 0
}
);
@@ -460,14 +457,14 @@
$table->add (1, $row++, new CFClient::UI::Slider
range => [$CFG->{gui_fontsize}, 0.5, 2, 0, 0.1],
tooltip => "The base font size used by most GUI elements that do not have their own setting.",
- on_changed => sub { $CFG->{gui_fontsize} = $_[1] },
+ on_changed => sub { $CFG->{gui_fontsize} = $_[1]; 0 },
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Message Fontsize");
$table->add (1, $row++, new CFClient::UI::Slider
range => [$CFG->{log_fontsize}, 0.5, 2, 0, 0.1],
tooltip => "The font size used by the message/server log window only. Changes are instant.",
- on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]) },
+ on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]); 0 },
);
$table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Stats Fontsize");
@@ -478,6 +475,7 @@
on_changed => sub {
$CFG->{stat_fontsize} = $_[1];
&set_stats_window_fontsize;
+ 0
}
);
@@ -488,6 +486,7 @@
on_changed => sub {
$CFG->{gauge_fontsize} = $_[1];
&set_gauge_window_fontsize;
+ 0
}
);
@@ -498,6 +497,7 @@
on_changed => sub {
$CFG->{gauge_size} = $_[1];
$GAUGES->{win}->set_size ($WIDTH, int $HEIGHT * $CFG->{gauge_size});
+ 0
}
);
@@ -507,6 +507,7 @@
on_activate => sub {
video_shutdown ();
video_init ();
+ 0
}
);
@@ -524,9 +525,7 @@
$table->add (1, $row++, new CFClient::UI::CheckBox
state => $CFG->{audio_enable},
tooltip => "Master Audio Enable. If enabled, sound effects and music will be played. If disabled, no audio will be used and the soundcard will not be opened.",
- on_changed => sub {
- $CFG->{audio_enable} = $_[1];
- }
+ on_changed => sub { $CFG->{audio_enable} = $_[1]; 0 }
);
# $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Effects Volume");
# $table->add (1, 8, new CFClient::UI::Slider range => [$CFG->{effects_volume}, 0, 128, 1], on_changed => sub {
@@ -537,17 +536,12 @@
$hbox->add (new CFClient::UI::CheckBox
expand => 1, state => $CFG->{bgm_enable},
tooltip => "If enabled, playing of background music is enabled. If disabled, no background music will be played.",
- on_changed => sub {
- $CFG->{bgm_enable} = $_[1];
- }
+ on_changed => sub { $CFG->{bgm_enable} = $_[1]; 0 }
);
$hbox->add (new CFClient::UI::Slider
expand => 1, range => [$CFG->{bgm_volume}, 0, 1, 0, 1/128],
tooltip => "The volume of the background music. Changes are instant.",
- on_changed => sub {
- $CFG->{bgm_volume} = $_[1];
- CFClient::MixMusic::volume $_[1] * 128;
- }
+ on_changed => sub { $CFG->{bgm_volume} = $_[1]; CFClient::MixMusic::volume $_[1] * 128; 0 }
);
$table->add (1, $row++, new CFClient::UI::Button
@@ -556,6 +550,7 @@
on_activate => sub {
audio_shutdown ();
audio_init ();
+ 0
}
);
@@ -627,13 +622,41 @@
$win
}
+sub debug_setup {
+ my $table = new CFClient::UI::Table;
+
+ $table->add (0, 0, new CFClient::UI::Label text => "Widget Borders");
+ $table->add (1, 0, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 1; 0 });
+ $table->add (0, 1, new CFClient::UI::Label text => "Tooltip Widget Info");
+ $table->add (1, 1, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 2; 0 });
+ $table->add (0, 2, new CFClient::UI::Label text => "Show FPS");
+ $table->add (1, 2, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 4; 0 });
+ $table->add (0, 3, new CFClient::UI::Label text => "Suppress Tooltips");
+ $table->add (1, 3, new CFClient::UI::CheckBox on_changed => sub { $ENV{CFPLUS_DEBUG} ^= 8; 0 });
+
+ my @default_smooth = (0.05, 0.13, 0.05, 0.13, 0.30, 0.13, 0.05, 0.13, 0.05);
+
+ for my $x (0..2) {
+ for my $y (0 .. 2) {
+ $table->add ($x + 3, $y,
+ new CFClient::UI::Entry
+ text => $default_smooth[$x * 3 + $y],
+ on_changed => sub { $MAP->{smooth_matrix}[$x * 3 + $y] = $_[1] if $MAP; 0 },
+ );
+ }
+ }
+
+
+ $table
+}
sub stats_window {
my $tgw = new CFClient::UI::FancyFrame
y => $HEIGHT * (2/8),
x => "max",
title => "Stats",
- name => "stats_window";
+ name => "stats_window",
+ has_close_button => 1;
$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,
@@ -789,26 +812,25 @@
$STATWIDS->{m_weight}->set_text (sprintf "Max weight: %.1fkg", $stats->{+CS_STAT_WEIGHT_LIM} / 1000);
- # TODO: replace by CS_STAT_RES_xxx constants
my %tbl = (
- phys => 100,
- magic => 101,
- fire => 102,
- elec => 103,
- cold => 104,
- conf => 105,
- acid => 106,
- drain => 107,
- ghit => 108,
- pois => 109,
- slow => 110,
- para => 111,
- tund => 112,
- fear => 113,
- depl => 113,
- deat => 115,
- holyw => 116,
- blind => 117,
+ phys => CS_STAT_RES_PHYS,
+ magic => CS_STAT_RES_MAG,
+ fire => CS_STAT_RES_FIRE,
+ elec => CS_STAT_RES_ELEC,
+ cold => CS_STAT_RES_COLD,
+ conf => CS_STAT_RES_CONF,
+ acid => CS_STAT_RES_ACID,
+ drain => CS_STAT_RES_DRAIN,
+ ghit => CS_STAT_RES_GHOSTHIT,
+ pois => CS_STAT_RES_POISON,
+ slow => CS_STAT_RES_SLOW,
+ para => CS_STAT_RES_PARA,
+ tund => CS_STAT_TURN_UNDEAD,
+ fear => CS_STAT_RES_FEAR,
+ depl => CS_STAT_RES_DEPLETE,
+ deat => CS_STAT_RES_DEATH,
+ holyw => CS_STAT_RES_HOLYWORD,
+ blind => CS_STAT_RES_BLIND,
);
$STATWIDS->{"res_$_"}->set_text (sprintf "%d%", $stats->{$tbl{$_}})
@@ -894,6 +916,7 @@
on_activate => sub {
$HOST_ENTRY->set_text ($CFG->{host} = $host);
$METASERVER->hide;
+ 0
},
),
(new CFClient::UI::Empty expand => 1),
@@ -924,6 +947,7 @@
child => (my $vbox = new CFClient::UI::VBox),
on_visibility_change => sub {
update_metaserver if $_[1];
+ 0
},
;
@@ -951,6 +975,7 @@
on_changed => sub {
my ($self, $value) = @_;
$CFG->{host} = $value;
+ 0
}
);
@@ -961,8 +986,8 @@
text => "Server List",
other => $METASERVER,
tooltip => "Show a list of available crossfire servers",
- on_activate => sub { $METASERVER->toggle_visibility },
- on_visibility_change => sub { $METASERVER->hide unless $_[1] },
+ on_activate => sub { $METASERVER->toggle_visibility; 0 },
+ on_visibility_change => sub { $METASERVER->hide unless $_[1]; 0 },
);
}
@@ -970,10 +995,7 @@
$table->add (1, 4, new CFClient::UI::Entry
text => $CFG->{user},
tooltip => "The name of your character on the server",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{user} = $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{user} = $value; 0 }
);
$table->add (0, 5, new CFClient::UI::Label valign => 0, align => 1, text => "Password");
@@ -981,10 +1003,7 @@
text => $CFG->{password},
hidden => 1,
tooltip => "The password for your character",
- on_changed => sub {
- my ($self, $value) = @_;
- $CFG->{password} = $value;
- }
+ on_changed => sub { my ($self, $value) = @_; $CFG->{password} = $value; 0 }
);
$table->add (0, 7, new CFClient::UI::Label valign => 0, align => 1, text => "Map Size");
@@ -995,11 +1014,7 @@
. "If you set this to a high value you will be able to see further, "
. "but you also increase bandwidth requirements and latency. "
. "This option is only used once at log-in.",
- on_changed => sub {
- my ($self, $value) = @_;
-
- $CFG->{mapsize} = $self->{range}[0] = $value = int $value;
- },
+ on_changed => sub { my ($self, $value) = @_; $CFG->{mapsize} = $self->{range}[0] = $value = int $value; 0 },
);
$table->add (0, 8, new CFClient::UI::Label valign => 0, align => 1, text => "Face Prefetch");
@@ -1012,21 +1027,21 @@
. "It also uses up server bandwidth on every connect, "
. "so only set it if you really need to prefetch images. "
. "This option can be set and unset any time.",
- on_changed => sub { $CFG->{face_prefetch} = $_[1] },
+ on_changed => sub { $CFG->{face_prefetch} = $_[1]; 0 },
);
$table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Count");
$table->add (1, 9, new CFClient::UI::Entry
text => $CFG->{output_count},
tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.",
- on_changed => sub { $CFG->{output_count} = $_[1] },
+ on_changed => sub { $CFG->{output_count} = $_[1]; 0 },
);
$table->add (0, 10, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Sync");
$table->add (1, 10, new CFClient::UI::Entry
text => $CFG->{output_sync},
tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.",
- on_changed => sub { $CFG->{output_sync} = $_[1] },
+ on_changed => sub { $CFG->{output_sync} = $_[1]; 0 },
);
$table->add (1, 11, $LOGIN_BUTTON = new CFClient::UI::Button
@@ -1036,6 +1051,7 @@
on_activate => sub {
$CONN ? stop_game
: start_game;
+ 0
},
);
@@ -1048,9 +1064,19 @@
on_changed => sub {
my ($self, $value) = @_;
$CFG->{say_command} = $value;
+ 0
}
);
+ $vbox->add (new CFClient::UI::Label
+ text => "Server Info",
+ fontsize => 1.2,
+ padding_y => 8,
+ fg => [1, 1, 0, 1],
+ );
+
+ $vbox->add ($SERVER_INFO = new CFClient::UI::Label ellipsise => 0);
+
$vbox
}
@@ -1064,7 +1090,8 @@
y => 0,
force_w => $::WIDTH * 0.4,
force_h => $::HEIGHT * 0.5,
- child => (my $vbox = new CFClient::UI::VBox);
+ child => (my $vbox = new CFClient::UI::VBox),
+ has_close_button => 1;
$vbox->add ($LOGVIEW);
@@ -1082,6 +1109,8 @@
$input->{refocus_map} = 1;
}
delete $input->{auto_activated};
+
+ 0
},
on_activate => sub {
my ($input, $text) = @_;
@@ -1097,9 +1126,13 @@
delete $input->{refocus_map};
$MAPWIDGET->focus_in
}
+
+ 0
},
on_escape => sub {
- $MAPWIDGET->focus_in
+ $MAPWIDGET->grab_focus;
+
+ 0
},
);
@@ -1131,7 +1164,7 @@
$hb->add (new CFClient::UI::Button
text => "Ok",
expand => 1,
- on_activate => sub { $QUIT_DIALOG->hide },
+ on_activate => sub { $QUIT_DIALOG->hide; 0 },
);
$hb->add (new CFClient::UI::Button
text => "Quit anyway",
@@ -1184,6 +1217,7 @@
["Ignore cursed" => PICKUP_NOT_CURSED],
["Jewelery" => PICKUP_JEWELS],
],
+ ["Weight/Value ratio", 2, 17]
)
{
my ($title, $x, $y, @bits) = @$_;
@@ -1207,10 +1241,31 @@
$::CONN->send_command ("pickup $::CFG->{pickup}")
if defined $::CONN;
+
+ 0
});
}
}
+ $table->add (2, 18, new CFClient::UI::ValSlider
+ range => [0, 0, 16, 1, 1],
+ to_value => sub { ">= " . 5 * $_[0] },
+ on_changed => sub {
+ my ($slider, $value) = @_;
+
+ $::CFG->{pickup} &= ~0x7;
+ $::CFG->{pickup} |= int $value
+ if $value;
+ 1;
+ });
+ $table->add (3, 18, new CFClient::UI::Button
+ text => "set",
+ on_activate => sub {
+ $::CONN->send_command ("pickup $::CFG->{pickup}")
+ if defined $::CONN;
+ 0
+ });
+
$table
}
@@ -1221,6 +1276,7 @@
force_w => $WIDTH * 9/10,
force_h => $HEIGHT * 9/10,
title => "Inventory",
+ has_close_button => 1,
;
$invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1);
@@ -1266,6 +1322,7 @@
on_activate => sub {
$binding_list->remove ($hb);
delete $::CFG->{bindings}->{$mod}->{$sym};
+ 0
});
$hb->add (new CFClient::UI::Button
@@ -1288,6 +1345,7 @@
});
$::BIND_EDITOR->show;
$SETUP_DIALOG->hide;
+ 0
});
$hb->add (new CFClient::UI::Label text => "(Key: $nam)");
@@ -1297,6 +1355,18 @@
};
my $vb = new CFClient::UI::VBox;
+ $vb->add (my $hb = new CFClient::UI::HBox);
+ $hb->add (new CFClient::UI::Label text => "only shift-up stops fire");
+ $hb->add (new CFClient::UI::CheckBox
+ expand => 1,
+ state => $CFG->{shift_fire_stop},
+ tooltip => "If this checkbox is enabled you will stop fire only if you stop pressing shift",
+ on_changed => sub {
+ my ($cbox, $value) = @_;
+ $CFG->{shift_fire_stop} = $value;
+ 0
+ });
+
$vb->add ($binding_list);
$vb->add (my $hb = new CFClient::UI::HBox);
@@ -1320,6 +1390,7 @@
);
$SETUP_DIALOG->hide;
$::BIND_EDITOR->show;
+ 0
},
);
@@ -1329,6 +1400,7 @@
expand => 1,
on_activate => sub {
$SETUP_DIALOG->hide;
+ 0
}
);
@@ -1337,7 +1409,7 @@
$vb
}
-sub make_help_window {
+sub help_window {
my $win = new CFClient::UI::FancyFrame
x => 'center',
y => 'center',
@@ -1350,33 +1422,42 @@
$win->add (my $vbox = new CFClient::UI::VBox);
$vbox->add (my $buttons = new CFClient::UI::HBox);
- $vbox->add (my $viewer = new CFClient::UI::TextView expand => 1, fontsize => 0.8);
+ $vbox->add (my $viewer = new CFClient::UI::TextScroller
+ expand => 1, fontsize => 0.8, padding_x => 4);
- for (
- [intro => "Introduction"],
- [manual => "Manual"],
- [command_help => "Commands"],
- [skill_help => "Skills"],
- ) {
- my ($pod, $label) = @$_;
-
- $buttons->add (new CFClient::UI::Button
- text => $label,
- on_activate => sub {
- my $pom = CFClient::load_pod CFClient::find_rcfile "pod/$pod.pod",
- doc_viewer => 1, sub { CFClient::pod_to_pango_list $_[0] };
+ $buttons->add (new CFClient::UI::Label text => "Choose a document to display: ");
+ $buttons->add (my $combo = new CFClient::UI::Combobox
+ value => undef,
+ options => [
+ [intro => "Introduction"],
+ [manual => "Manual"],
+ [skill_help => "Skills"],
+ [command_help => "Commands"],
+ [dmcommand_help => "DM Commands"],
+ [COPYING => "License Terms"],
+ ],
+ on_changed => sub {
+ my ($self, $pod) = @_;
- $viewer->clear;
-
- $viewer->add_paragraph ([1, 1, 1, 1], $_->[1], $_->[0])
- for @$pom;
+ my $pom = CFClient::load_pod CFClient::find_rcfile "pod/$pod.pod",
+ doc_viewer => 1, sub { CFClient::pod_to_pango_list $_[0] };
- $viewer->set_offset (0);
- },
- );
- }
+ $viewer->clear;
+
+ $viewer->add_paragraph ([1, 1, 1, 1], $_->[1], $_->[0])
+ for @$pom;
- $viewer->add_paragraph ([1, 1, 0, 1], "Use one of the buttons above to display a document.");
+ $viewer->set_offset (0);
+ 0
+ },
+ on_visibility_change => sub {
+ my ($self, $visible) = @_;
+ return unless $visible;
+ return if $self->{value};
+ $self->set_value ("intro");
+ 0
+ },
+ );
$win
}
@@ -1453,7 +1534,7 @@
if ($CONSOLE) {
$CONSOLE->{input}->{auto_activated} = 1;
- $CONSOLE->{input}->focus_in;
+ $CONSOLE->{input}->grab_focus;
if ($preset && $CONSOLE->{input}->get_text eq '') {
$CONSOLE->{input}->set_text ($preset);
@@ -1461,9 +1542,9 @@
}
});
$MAPWIDGET->show;
- $MAPWIDGET->focus_in;
+ $MAPWIDGET->grab_focus;
- $LOGVIEW = new CFClient::UI::TextView
+ $LOGVIEW = new CFClient::UI::TextScroller
expand => 1,
font => $FONT_FIXED,
fontsize => $::CFG->{log_fontsize},
@@ -1481,6 +1562,7 @@
z => 2,
force_w => $::WIDTH * 0.6,
force_h => $::HEIGHT * 0.6,
+ has_close_button => 1,
;
$SETUP_DIALOG->add ($SETUP_NOTEBOOK = new CFClient::UI::Notebook expand => 1, debug => 1,
@@ -1503,6 +1585,8 @@
. "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 debuggign options. Do not ask.");
$BUTTONBAR = new CFClient::UI::Buttonbar x => 0, y => 0, z => 200; # put on top
@@ -1527,10 +1611,11 @@
$::CFG->{layout} = CFClient::UI::get_layout;
CFClient::write_cfg "$Crossfire::VARDIR/cfplusrc";
status "Configuration Saved";
+ 0
},
);
- $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => make_help_window,
+ $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => help_window,
tooltip => "View Documentation");
$BUTTONBAR->add (new CFClient::UI::Button
@@ -1542,6 +1627,7 @@
} else {
exit;
}
+ 0
},
);
@@ -1553,6 +1639,8 @@
}
sub video_shutdown {
+ CFClient::OpenGL::shutdown;
+
undef $SDL_ACTIVE;
}
@@ -1858,6 +1946,8 @@
}
Event::loop;
+#CFClient::SDL_Quit;
+#CFClient::_exit 0;
END { CFClient::SDL_Quit }