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.17 by elmex, Sat May 27 20:26:22 2006 UTC vs.
Revision 1.20 by root, Sun May 28 00:40:52 2006 UTC

177 unless $BUTTONBAR->{children}[1]->{state}; 177 unless $BUTTONBAR->{children}[1]->{state};
178} 178}
179 179
180sub client_setup { 180sub client_setup {
181 my $dialog = new CFClient::UI::FancyFrame 181 my $dialog = new CFClient::UI::FancyFrame
182 req_x => 1,
183 req_y => $HEIGHT * (1/8),
182 name => "client_setup", 184 name => "client_setup",
183 title => "Client Setup", 185 title => "Client Setup",
184 child => (my $vbox = new CFClient::UI::VBox); 186 child => (my $vbox = new CFClient::UI::VBox);
185 $vbox->add (my $table = new CFClient::UI::Table expand => 1, col_expand => [0, 1]); 187 $vbox->add (my $table = new CFClient::UI::Table expand => 1, col_expand => [0, 1]);
186 188
202 204
203 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fullscreen"); 205 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fullscreen");
204 $table->add (1, $row++, new CFClient::UI::CheckBox 206 $table->add (1, $row++, new CFClient::UI::CheckBox
205 state => $CFG->{fullscreen}, 207 state => $CFG->{fullscreen},
206 tooltip => "Bring the client into fullscreen mode.", 208 tooltip => "Bring the client into fullscreen mode.",
207 connect_changed => sub { 209 on_changed => sub {
208 my ($self, $value) = @_; 210 my ($self, $value) = @_;
209 $CFG->{fullscreen} = $value; 211 $CFG->{fullscreen} = $value;
210 } 212 }
211 ); 213 );
212 214
213 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fast & Ugly"); 215 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fast & Ugly");
214 $table->add (1, $row++, new CFClient::UI::CheckBox 216 $table->add (1, $row++, new CFClient::UI::CheckBox
215 state => $CFG->{fast}, 217 state => $CFG->{fast},
216 tooltip => "Lower the visual quality considerably to speed up rendering.", 218 tooltip => "Lower the visual quality considerably to speed up rendering.",
217 connect_changed => sub { 219 on_changed => sub {
218 my ($self, $value) = @_; 220 my ($self, $value) = @_;
219 $CFG->{fast} = $value; 221 $CFG->{fast} = $value;
220 } 222 }
221 ); 223 );
222 224
223 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Map Scale"); 225 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Map Scale");
224 $table->add (1, $row++, new CFClient::UI::Slider 226 $table->add (1, $row++, new CFClient::UI::Slider
225 range => [(log $CFG->{map_scale}) / (log 2), -3, 1, 0, 1], 227 range => [(log $CFG->{map_scale}) / (log 2), -3, 1, 0, 1],
226 tooltip => "Enlarge or shrink the displayed map. Changes are instant.", 228 tooltip => "Enlarge or shrink the displayed map. Changes are instant.",
227 connect_changed => sub { 229 on_changed => sub {
228 my ($self, $value) = @_; 230 my ($self, $value) = @_;
229 $CFG->{map_scale} = 2 ** $value; 231 $CFG->{map_scale} = 2 ** $value;
230 } 232 }
231 ); 233 );
232 234
233 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fog of War"); 235 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Fog of War");
234 $table->add (1, $row++, new CFClient::UI::CheckBox 236 $table->add (1, $row++, new CFClient::UI::CheckBox
235 state => $CFG->{fow_enable}, 237 state => $CFG->{fow_enable},
236 tooltip => "<b>Fog-of-War</b> marks areas that cannot be seen by the player. Changes are instant.", 238 tooltip => "<b>Fog-of-War</b> marks areas that cannot be seen by the player. Changes are instant.",
237 connect_changed => sub { 239 on_changed => sub {
238 my ($self, $value) = @_; 240 my ($self, $value) = @_;
239 $CFG->{fow_enable} = $value; 241 $CFG->{fow_enable} = $value;
240 } 242 }
241 ); 243 );
242 244
243 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Intensity"); 245 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Intensity");
244 $table->add (1, $row++, new CFClient::UI::Slider 246 $table->add (1, $row++, new CFClient::UI::Slider
245 range => [$CFG->{fow_intensity}, 0, 1, 0, 1 / 256], 247 range => [$CFG->{fow_intensity}, 0, 1, 0, 1 / 256],
246 tooltip => "<b>Fog of War Lightness.</b> The higher the intensity, the lighter the Fog-of-War color. Changes are instant.", 248 tooltip => "<b>Fog of War Lightness.</b> The higher the intensity, the lighter the Fog-of-War color. Changes are instant.",
247 connect_changed => sub { 249 on_changed => sub {
248 my ($self, $value) = @_; 250 my ($self, $value) = @_;
249 $CFG->{fow_intensity} = $value; 251 $CFG->{fow_intensity} = $value;
250 } 252 }
251 ); 253 );
252 254
253 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Smooth"); 255 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "FoW Smooth");
254 $table->add (1, $row++, new CFClient::UI::CheckBox 256 $table->add (1, $row++, new CFClient::UI::CheckBox
255 state => $CFG->{fow_smooth}, 257 state => $CFG->{fow_smooth},
256 tooltip => "Smooth the Fog-of-War a bit to make it more realistic. Changes are instant.", 258 tooltip => "Smooth the Fog-of-War a bit to make it more realistic. Changes are instant.",
257 connect_changed => sub { 259 on_changed => sub {
258 my ($self, $value) = @_; 260 my ($self, $value) = @_;
259 $CFG->{fow_smooth} = $value; 261 $CFG->{fow_smooth} = $value;
260 status "Fog of War smoothing requires OpenGL 1.2 or higher" if $CFClient::OpenGL::GL_VERSION < 1.2; 262 status "Fog of War smoothing requires OpenGL 1.2 or higher" if $CFClient::OpenGL::GL_VERSION < 1.2;
261 } 263 }
262 ); 264 );
263 265
264 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "GUI Fontsize"); 266 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "GUI Fontsize");
265 $table->add (1, $row++, new CFClient::UI::Slider 267 $table->add (1, $row++, new CFClient::UI::Slider
266 range => [$CFG->{gui_fontsize}, 0.5, 2, 0, 0.1], 268 range => [$CFG->{gui_fontsize}, 0.5, 2, 0, 0.1],
267 tooltip => "The base font size used by most GUI elements that do not have their own setting.", 269 tooltip => "The base font size used by most GUI elements that do not have their own setting.",
268 connect_changed => sub { $CFG->{gui_fontsize} = $_[1] }, 270 on_changed => sub { $CFG->{gui_fontsize} = $_[1] },
269 ); 271 );
270 272
271 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Message Fontsize"); 273 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Message Fontsize");
272 $table->add (1, $row++, new CFClient::UI::Slider 274 $table->add (1, $row++, new CFClient::UI::Slider
273 range => [$CFG->{log_fontsize}, 0.5, 2, 0, 0.1], 275 range => [$CFG->{log_fontsize}, 0.5, 2, 0, 0.1],
274 tooltip => "The font size used by the <b>message/server log</b> window only. Changes are instant.", 276 tooltip => "The font size used by the <b>message/server log</b> window only. Changes are instant.",
275 connect_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]) }, 277 on_changed => sub { $LOGVIEW->set_fontsize ($CFG->{log_fontsize} = $_[1]) },
276 ); 278 );
277 279
278 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Stats Fontsize"); 280 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Stats Fontsize");
279 281
280 $table->add (1, $row++, new CFClient::UI::Slider 282 $table->add (1, $row++, new CFClient::UI::Slider
281 range => [$CFG->{stat_fontsize}, 0.5, 2, 0, 0.1], 283 range => [$CFG->{stat_fontsize}, 0.5, 2, 0, 0.1],
282 tooltip => "The font size used by the <b>statistics window</b> only. Changes are instant.", 284 tooltip => "The font size used by the <b>statistics window</b> only. Changes are instant.",
283 connect_changed => sub { 285 on_changed => sub {
284 $CFG->{stat_fontsize} = $_[1]; 286 $CFG->{stat_fontsize} = $_[1];
285 &set_stats_window_fontsize; 287 &set_stats_window_fontsize;
286 } 288 }
287 ); 289 );
288 290
289 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Gauge fontsize"); 291 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Gauge fontsize");
290 $table->add (1, $row++, new CFClient::UI::Slider 292 $table->add (1, $row++, new CFClient::UI::Slider
291 range => [$CFG->{gauge_fontsize}, 0.5, 2, 0, 0.1], 293 range => [$CFG->{gauge_fontsize}, 0.5, 2, 0, 0.1],
292 tooltip => "Adjusts the fontsize of the gauges at the bottom right. Changes are instant.", 294 tooltip => "Adjusts the fontsize of the gauges at the bottom right. Changes are instant.",
293 connect_changed => sub { 295 on_changed => sub {
294 $CFG->{gauge_fontsize} = $_[1]; 296 $CFG->{gauge_fontsize} = $_[1];
295 &set_gauge_window_fontsize; 297 &set_gauge_window_fontsize;
296 } 298 }
297 ); 299 );
298 300
299 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Gauge size"); 301 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Gauge size");
300 $table->add (1, $row++, new CFClient::UI::Slider 302 $table->add (1, $row++, new CFClient::UI::Slider
301 range => [$CFG->{gauge_size}, 0.2, 0.8], 303 range => [$CFG->{gauge_size}, 0.2, 0.8],
302 tooltip => "Adjust the size of the stats gauges at the bottom right. Changes are instant.", 304 tooltip => "Adjust the size of the stats gauges at the bottom right. Changes are instant.",
303 connect_changed => sub { 305 on_changed => sub {
304 $CFG->{gauge_size} = $_[1]; 306 $CFG->{gauge_size} = $_[1];
305 $GAUGES->{win}->set_size ($WIDTH, int $HEIGHT * $CFG->{gauge_size}); 307 $GAUGES->{win}->set_size ($WIDTH, int $HEIGHT * $CFG->{gauge_size});
306 } 308 }
307 ); 309 );
308 310
309 $table->add (1, $row++, new CFClient::UI::Button 311 $table->add (1, $row++, new CFClient::UI::Button
310 expand => 1, align => 0, text => "Apply", 312 expand => 1, align => 0, text => "Apply",
311 tooltip => "Apply the video settings", 313 tooltip => "Apply the video settings",
312 connect_activate => sub { 314 on_activate => sub {
313 video_shutdown (); 315 video_shutdown ();
314 video_init (); 316 video_init ();
315 } 317 }
316 ); 318 );
317 319
318 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Audio Enable"); 320 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Audio Enable");
319 $table->add (1, $row++, new CFClient::UI::CheckBox 321 $table->add (1, $row++, new CFClient::UI::CheckBox
320 state => $CFG->{audio_enable}, 322 state => $CFG->{audio_enable},
321 tooltip => "<b>Master Audio Enable.</b> If enabled, sound effects and music will be played. If disabled, no audio will be used and the soundcard will not be opened.", 323 tooltip => "<b>Master Audio Enable.</b> If enabled, sound effects and music will be played. If disabled, no audio will be used and the soundcard will not be opened.",
322 connect_changed => sub { 324 on_changed => sub {
323 $CFG->{audio_enable} = $_[1]; 325 $CFG->{audio_enable} = $_[1];
324 } 326 }
325 ); 327 );
326# $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Effects Volume"); 328# $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Effects Volume");
327# $table->add (1, 8, new CFClient::UI::Slider range => [$CFG->{effects_volume}, 0, 128, 1], connect_changed => sub { 329# $table->add (1, 8, new CFClient::UI::Slider range => [$CFG->{effects_volume}, 0, 128, 1], on_changed => sub {
328# $CFG->{effects_volume} = $_[1]; 330# $CFG->{effects_volume} = $_[1];
329# }); 331# });
330 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Background Music"); 332 $table->add (0, $row, new CFClient::UI::Label valign => 0, align => 1, text => "Background Music");
331 $table->add (1, $row++, my $hbox = new CFClient::UI::HBox); 333 $table->add (1, $row++, my $hbox = new CFClient::UI::HBox);
332 $hbox->add (new CFClient::UI::CheckBox 334 $hbox->add (new CFClient::UI::CheckBox
333 expand => 1, state => $CFG->{bgm_enable}, 335 expand => 1, state => $CFG->{bgm_enable},
334 tooltip => "If enabled, playing of background music is enabled. If disabled, no background music will be played.", 336 tooltip => "If enabled, playing of background music is enabled. If disabled, no background music will be played.",
335 connect_changed => sub { 337 on_changed => sub {
336 $CFG->{bgm_enable} = $_[1]; 338 $CFG->{bgm_enable} = $_[1];
337 } 339 }
338 ); 340 );
339 $hbox->add (new CFClient::UI::Slider 341 $hbox->add (new CFClient::UI::Slider
340 expand => 1, range => [$CFG->{bgm_volume}, 0, 1, 0, 1/128], 342 expand => 1, range => [$CFG->{bgm_volume}, 0, 1, 0, 1/128],
341 tooltip => "The volume of the background music. Changes are instant.", 343 tooltip => "The volume of the background music. Changes are instant.",
342 connect_changed => sub { 344 on_changed => sub {
343 $CFG->{bgm_volume} = $_[1]; 345 $CFG->{bgm_volume} = $_[1];
344 CFClient::MixMusic::volume $_[1] * 128; 346 CFClient::MixMusic::volume $_[1] * 128;
345 } 347 }
346 ); 348 );
347 349
348 $table->add (1, $row++, new CFClient::UI::Button 350 $table->add (1, $row++, new CFClient::UI::Button
349 expand => 1, align => 0, text => "Apply", 351 expand => 1, align => 0, text => "Apply",
350 tooltip => "Apply the audio settings", 352 tooltip => "Apply the audio settings",
351 connect_activate => sub { 353 on_activate => sub {
352 audio_shutdown (); 354 audio_shutdown ();
353 audio_init (); 355 audio_init ();
354 } 356 }
355 ); 357 );
356 358
358 $table->add (1, $row++, my $saycmd = new CFClient::UI::Entry 360 $table->add (1, $row++, my $saycmd = new CFClient::UI::Entry
359 text => $CFG->{say_command}, 361 text => $CFG->{say_command},
360 tooltip => "This is the command that will be used if you write a line in the message window entry or press <b>\"</b> in the map window. " 362 tooltip => "This is the command that will be used if you write a line in the message window entry or press <b>\"</b> in the map window. "
361 . "Usually you want to enter something like 'say' or 'shout' or 'gsay' here. " 363 . "Usually you want to enter something like 'say' or 'shout' or 'gsay' here. "
362 . "But you could also set it to <b>tell <i>playername</i></b> to only chat with that user.", 364 . "But you could also set it to <b>tell <i>playername</i></b> to only chat with that user.",
363 connect_changed => sub { 365 on_changed => sub {
364 my ($self, $value) = @_; 366 my ($self, $value) = @_;
365 $CFG->{say_command} = $value; 367 $CFG->{say_command} = $value;
366 } 368 }
367 ); 369 );
368 370
383 385
384sub make_gauge_window { 386sub make_gauge_window {
385 my $gh = int $HEIGHT * $CFG->{gauge_size}; 387 my $gh = int $HEIGHT * $CFG->{gauge_size};
386 388
387 my $win = new CFClient::UI::Frame ( 389 my $win = new CFClient::UI::Frame (
390 req_x => 0,
388 req_y => -1, 391 req_y => -1,
389 user_w => $WIDTH, 392 def_w => $WIDTH,
390 user_h => $gh, 393 def_h => $gh,
391 ); 394 );
392 395
393 $win->add (my $hbox = new CFClient::UI::HBox 396 $win->add (my $hbox = new CFClient::UI::HBox
394 children => [ 397 children => [
395 (new CFClient::UI::HBox expand => 1), 398 (new CFClient::UI::HBox expand => 1),
432 435
433 $win 436 $win
434} 437}
435 438
436sub make_stats_window { 439sub make_stats_window {
437 my $tgw = new CFClient::UI::FancyFrame title => "Stats", name => "stats_window"; 440 my $tgw = new CFClient::UI::FancyFrame
441 req_y => $HEIGHT * (2/8),
442 req_x => -1,
443 title => "Stats",
444 name => "stats_window";
438 445
439 $tgw->add (new CFClient::UI::Window child => my $vb = new CFClient::UI::VBox); 446 $tgw->add (new CFClient::UI::Window child => my $vb = new CFClient::UI::VBox);
440 $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1, 447 $vb->add ($STATWIDS->{title} = new CFClient::UI::Label valign => 0, align => -1, text => "Title:", expand => 1,
441 can_hover => 1, can_events => 1, 448 can_hover => 1, can_events => 1,
442 tooltip => "Your name and title. You can change your title by using the <b>title</b> command, if supported by the server."); 449 tooltip => "Your name and title. You can change your title by using the <b>title</b> command, if supported by the server.");
689 $m = [$users, $host, $uptime, $version, $desc]; 696 $m = [$users, $host, $uptime, $version, $desc];
690 697
691 $y++; 698 $y++;
692 699
693 $table->add (0, $y, new CFClient::UI::VBox children => [ 700 $table->add (0, $y, new CFClient::UI::VBox children => [
694 (new CFClient::UI::Button text => "Use", connect_activate => sub { 701 (new CFClient::UI::Button text => "Use", on_activate => sub {
695 $HOST->set_text ($CFG->{host} = $host); 702 $HOST->set_text ($CFG->{host} = $host);
696 }), 703 }),
697 (new CFClient::UI::Empty expand => 1), 704 (new CFClient::UI::Empty expand => 1),
698 ]); 705 ]);
699 706
705 }); 712 });
706} 713}
707 714
708sub server_setup { 715sub server_setup {
709 my $dialog = new CFClient::UI::FancyFrame 716 my $dialog = new CFClient::UI::FancyFrame
717 x => $WIDTH * (1/3),
718 y => $HEIGHT * (1/8),
710 name => "server_setup", 719 name => "server_setup",
711 title => "Server Setup", 720 title => "Server Setup",
712 child => (my $vbox = new CFClient::UI::VBox); 721 child => (my $vbox = new CFClient::UI::VBox),
713 722 on_visibility_change => sub {
723 $_[0]->show_centered if $_[1]
724 };
725
714 $vbox->add (my $table = new CFClient::UI::Table expand => 1, col_expand => [0, 1]); 726 $vbox->add (my $table = new CFClient::UI::Table expand => 1, col_expand => [0, 1]);
715 $table->add (0, 2, new CFClient::UI::Label valign => 0, align => 1, text => "Host:Port"); 727 $table->add (0, 2, new CFClient::UI::Label valign => 0, align => 1, text => "Host:Port");
716 728
717 { 729 {
718 $table->add (1, 2, my $vbox = new CFClient::UI::VBox); 730 $table->add (1, 2, my $vbox = new CFClient::UI::VBox);
720 $vbox->add ( 732 $vbox->add (
721 my $HOST = new CFClient::UI::Entry 733 my $HOST = new CFClient::UI::Entry
722 expand => 1, 734 expand => 1,
723 text => $CFG->{host}, 735 text => $CFG->{host},
724 tooltip => "The hostname or ip address of the Crossfire(+) server to connect to", 736 tooltip => "The hostname or ip address of the Crossfire(+) server to connect to",
725 connect_changed => sub { 737 on_changed => sub {
726 my ($self, $value) = @_; 738 my ($self, $value) = @_;
727 $CFG->{host} = $value; 739 $CFG->{host} = $value;
728 } 740 }
729 ); 741 );
730 742
733 $vbox->add (new CFClient::UI::Flopper 745 $vbox->add (new CFClient::UI::Flopper
734 expand => 1, 746 expand => 1,
735 text => "Server List", 747 text => "Server List",
736 other => $METASERVER, 748 other => $METASERVER,
737 tooltip => "Show a list of available crossfire servers", 749 tooltip => "Show a list of available crossfire servers",
738 connect_open => sub { 750 on_open => sub {
739 update_metaserver $HOST; 751 update_metaserver $HOST;
740 } 752 }
741 ); 753 );
742 } 754 }
743 755
744 $table->add (0, 4, new CFClient::UI::Label valign => 0, align => 1, text => "Username"); 756 $table->add (0, 4, new CFClient::UI::Label valign => 0, align => 1, text => "Username");
745 $table->add (1, 4, new CFClient::UI::Entry 757 $table->add (1, 4, new CFClient::UI::Entry
746 text => $CFG->{user}, 758 text => $CFG->{user},
747 tooltip => "The name of your character on the server", 759 tooltip => "The name of your character on the server",
748 connect_changed => sub { 760 on_changed => sub {
749 my ($self, $value) = @_; 761 my ($self, $value) = @_;
750 $CFG->{user} = $value; 762 $CFG->{user} = $value;
751 } 763 }
752 ); 764 );
753 765
754 $table->add (0, 5, new CFClient::UI::Label valign => 0, align => 1, text => "Password"); 766 $table->add (0, 5, new CFClient::UI::Label valign => 0, align => 1, text => "Password");
755 $table->add (1, 5, new CFClient::UI::Entry 767 $table->add (1, 5, new CFClient::UI::Entry
756 text => $CFG->{password}, 768 text => $CFG->{password},
757 hidden => 1, 769 hidden => 1,
758 tooltip => "The password for your character", 770 tooltip => "The password for your character",
759 connect_changed => sub { 771 on_changed => sub {
760 my ($self, $value) = @_; 772 my ($self, $value) = @_;
761 $CFG->{password} = $value; 773 $CFG->{password} = $value;
762 } 774 }
763 ); 775 );
764 776
768 range => [$CFG->{mapsize}, 10, 100, 0, 1], 780 range => [$CFG->{mapsize}, 10, 100, 0, 1],
769 tooltip => "This is the size of the portion of the map update the server sends you. " 781 tooltip => "This is the size of the portion of the map update the server sends you. "
770 . "If you set this to a high value you will be able to see further, " 782 . "If you set this to a high value you will be able to see further, "
771 . "but you also increase bandwidth requirements and latency. " 783 . "but you also increase bandwidth requirements and latency. "
772 . "This option is only used once at log-in.", 784 . "This option is only used once at log-in.",
773 connect_changed => sub { 785 on_changed => sub {
774 my ($self, $value) = @_; 786 my ($self, $value) = @_;
775 787
776 $CFG->{mapsize} = $self->{range}[0] = $value = int $value; 788 $CFG->{mapsize} = $self->{range}[0] = $value = int $value;
777 }, 789 },
778 ); 790 );
785 . "This might increase or create lag, but increases the chances " 797 . "This might increase or create lag, but increases the chances "
786 . "of faces being ready for display when you encounter them. " 798 . "of faces being ready for display when you encounter them. "
787 . "It also uses up server bandwidth on every connect, " 799 . "It also uses up server bandwidth on every connect, "
788 . "so only set it if you really need to prefetch images. " 800 . "so only set it if you really need to prefetch images. "
789 . "This option can be set and unset any time.", 801 . "This option can be set and unset any time.",
790 connect_changed => sub { $CFG->{face_prefetch} = $_[1] }, 802 on_changed => sub { $CFG->{face_prefetch} = $_[1] },
791 ); 803 );
792 804
793 $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Count"); 805 $table->add (0, 9, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Count");
794 $table->add (1, 9, new CFClient::UI::Entry 806 $table->add (1, 9, new CFClient::UI::Entry
795 text => $CFG->{output_count}, 807 text => $CFG->{output_count},
796 tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.", 808 tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.",
797 connect_changed => sub { $CFG->{output_count} = $_[1] }, 809 on_changed => sub { $CFG->{output_count} = $_[1] },
798 ); 810 );
799 811
800 $table->add (0, 10, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Sync"); 812 $table->add (0, 10, new CFClient::UI::Label valign => 0, align => 1, text => "Output-Sync");
801 $table->add (1, 10, new CFClient::UI::Entry 813 $table->add (1, 10, new CFClient::UI::Entry
802 text => $CFG->{output_sync}, 814 text => $CFG->{output_sync},
803 tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.", 815 tooltip => "Should be set to 1 unless you know what you are doing. This option is only used once at log-in.",
804 connect_changed => sub { $CFG->{output_sync} = $_[1] }, 816 on_changed => sub { $CFG->{output_sync} = $_[1] },
805 ); 817 );
806 818
807 $table->add (1, 11, $LOGIN_BUTTON = new CFClient::UI::Button 819 $table->add (1, 11, $LOGIN_BUTTON = new CFClient::UI::Button
808 expand => 1, 820 expand => 1,
809 align => 0, 821 align => 0,
810 text => "Login", 822 text => "Login",
811 connect_activate => sub { 823 on_activate => sub {
812 $CONN ? stop_game 824 $CONN ? stop_game
813 : start_game; 825 : start_game;
814 }, 826 },
815 ); 827 );
816 828
821 my $window = new CFClient::UI::FancyFrame 833 my $window = new CFClient::UI::FancyFrame
822 name => "message_window", 834 name => "message_window",
823 title => "Messages", 835 title => "Messages",
824 border_bg => [1, 1, 1, 1], 836 border_bg => [1, 1, 1, 1],
825 bg => [0, 0, 0, 0.75], 837 bg => [0, 0, 0, 0.75],
838 req_x => -1,
839 req_y => 0,
826 user_w => int $::WIDTH / 3, 840 def_w => int $::WIDTH / 3,
827 user_h => int $::HEIGHT / 5, 841 def_h => int $::HEIGHT / 5,
828 child => (my $vbox = new CFClient::UI::VBox); 842 child => (my $vbox = new CFClient::UI::VBox);
829 843
830 $vbox->add ($LOGVIEW); 844 $vbox->add ($LOGVIEW);
831 845
832 $vbox->add (my $input = new CFClient::UI::Entry 846 $vbox->add (my $input = new CFClient::UI::Entry
833 tooltip => "<b>Chat Box</b>. If you enter a text and press return/enter here, the current <i>communication command</i> " 847 tooltip => "<b>Chat Box</b>. If you enter a text and press return/enter here, the current <i>communication command</i> "
834 . "from the client setup will be prepended (e.g. <b>shout</b>, <b>chat</b>...). " 848 . "from the client setup will be prepended (e.g. <b>shout</b>, <b>chat</b>...). "
835 . "If you prepend a slash (/), you will submit a command instead (similar to IRC). " 849 . "If you prepend a slash (/), you will submit a command instead (similar to IRC). "
836 . "A better way to submit commands (and the occasional chat command) is often the map command completer.", 850 . "A better way to submit commands (and the occasional chat command) is often the map command completer.",
837 connect_focus_in => sub { 851 on_focus_in => sub {
838 my ($input, $prev_focus) = @_; 852 my ($input, $prev_focus) = @_;
839 853
840 delete $input->{refocus_map}; 854 delete $input->{refocus_map};
841 855
842 if ($prev_focus == $MAPWIDGET && $input->{auto_activated}) { 856 if ($prev_focus == $MAPWIDGET && $input->{auto_activated}) {
843 $input->{refocus_map} = 1; 857 $input->{refocus_map} = 1;
844 } 858 }
845 delete $input->{auto_activated}; 859 delete $input->{auto_activated};
846 }, 860 },
847 connect_activate => sub { 861 on_activate => sub {
848 my ($input, $text) = @_; 862 my ($input, $text) = @_;
849 $input->set_text (''); 863 $input->set_text ('');
850 864
851 if ($text =~ /^\/(.*)/) { 865 if ($text =~ /^\/(.*)/) {
852 $::CONN->user_send ($1); 866 $::CONN->user_send ($1);
857 if ($input->{refocus_map}) { 871 if ($input->{refocus_map}) {
858 delete $input->{refocus_map}; 872 delete $input->{refocus_map};
859 $MAPWIDGET->focus_in 873 $MAPWIDGET->focus_in
860 } 874 }
861 }, 875 },
862 connect_escape => sub { 876 on_escape => sub {
863 $MAPWIDGET->focus_in 877 $MAPWIDGET->focus_in
864 }, 878 },
865 ); 879 );
866 880
867 $CONSOLE = { 881 $CONSOLE = {
886 ); 900 );
887 $vb->add (my $hb = new CFClient::UI::HBox expand => 1); 901 $vb->add (my $hb = new CFClient::UI::HBox expand => 1);
888 $hb->add (new CFClient::UI::Button 902 $hb->add (new CFClient::UI::Button
889 text => "Ok", 903 text => "Ok",
890 expand => 1, 904 expand => 1,
891 connect_activate => sub { $QUIT_DIALOG->hide }, 905 on_activate => sub { $QUIT_DIALOG->hide },
892 ); 906 );
893 $hb->add (new CFClient::UI::Button 907 $hb->add (new CFClient::UI::Button
894 text => "Quit anyway", 908 text => "Quit anyway",
895 expand => 1, 909 expand => 1,
896 connect_activate => sub { exit }, 910 on_activate => sub { exit },
897 ); 911 );
898 912
899 $QUIT_DIALOG->show_centered; 913 $QUIT_DIALOG->show_centered;
900 } else { 914 } else {
901 $QUIT_DIALOG->show_centered; 915 $QUIT_DIALOG->show_centered;
902 } 916 }
903} 917}
904 918
905sub make_inventory_window { 919sub make_inventory_window {
906 my $invwin = new CFClient::UI::FancyFrame 920 my $invwin = new CFClient::UI::FancyFrame
907 user_w => $WIDTH * (7/8), user_h => $HEIGHT * (7/8), title => "Inventory", name => "inventory_window"; 921 def_w => $WIDTH * (7/8),
922 def_h => $HEIGHT * (7/8),
923 title => "Inventory",
924 name => "inventory_window",
925 on_visibility_change => sub {
926 $_[0]->show_centered if $_[1]
927 };
908 928
909 $invwin->add (my $hb = new CFClient::UI::HBox expand => 1); 929 $invwin->add (my $hb = new CFClient::UI::HBox expand => 1);
910 930
911 $hb->add (my $vb1 = new CFClient::UI::VBox expand => 1); 931 $hb->add (my $vb1 = new CFClient::UI::VBox expand => 1);
912 $vb1->add (my $lbl = new CFClient::UI::Label align => 0); 932 $vb1->add (my $lbl = new CFClient::UI::Label align => 0);
918 $vb2->add (my $hb2 = new CFClient::UI::HBox); 938 $vb2->add (my $hb2 = new CFClient::UI::HBox);
919 $hb2->add ($INVR_LBL = new CFClient::UI::Label align => 0, expand => 1); 939 $hb2->add ($INVR_LBL = new CFClient::UI::Label align => 0, expand => 1);
920 $hb2->add (new CFClient::UI::Button 940 $hb2->add (new CFClient::UI::Button
921 text => "Close", 941 text => "Close",
922 tooltip => "Close the currently open container (if one is open)", 942 tooltip => "Close the currently open container (if one is open)",
923 connect_activate => sub { 943 on_activate => sub {
924 $CONN->send ("apply $CONN->{open_container}") 944 $CONN->send ("apply $CONN->{open_container}")
925 if $CONN->{open_container} != 0; 945 if $CONN->{open_container} != 0;
926 }, 946 },
927 ); 947 );
928 948
932 $invwin 952 $invwin
933} 953}
934 954
935sub make_help_window { 955sub make_help_window {
936 my $win = new CFClient::UI::FancyFrame 956 my $win = new CFClient::UI::FancyFrame
937 user_w => $WIDTH * (7/8), user_h => $HEIGHT * (7/8), title => "Documentation"; 957 def_w => int $WIDTH * 7/8,
958 def_h => int $HEIGHT * 7/8,
959 title => "Documentation";
938 960
939 $win->add (my $vbox = new CFClient::UI::VBox); 961 $win->add (my $vbox = new CFClient::UI::VBox);
940 962
941 $vbox->add (my $buttons = new CFClient::UI::HBox); 963 $vbox->add (my $buttons = new CFClient::UI::HBox);
942 $vbox->add (my $viewer = new CFClient::UI::TextView expand => 1, fontsize => 0.8); 964 $vbox->add (my $viewer = new CFClient::UI::TextView expand => 1, fontsize => 0.8);
949 ) { 971 ) {
950 my ($pod, $label) = @$_; 972 my ($pod, $label) = @$_;
951 973
952 $buttons->add (new CFClient::UI::Button 974 $buttons->add (new CFClient::UI::Button
953 text => $label, 975 text => $label,
954 connect_activate => sub { 976 on_activate => sub {
955 my $parser = new Pod::POM; 977 my $parser = new Pod::POM;
956 my $pom = $parser->parse_file (CFClient::find_rcfile "pod/$pod.pod"); 978 my $pom = $parser->parse_file (CFClient::find_rcfile "pod/$pod.pod");
957 979
958 $viewer->clear; 980 $viewer->clear;
959 981
1067 tooltip => "Toggles the inventory window, where you can manage your loot (or treaures :)."); 1089 tooltip => "Toggles the inventory window, where you can manage your loot (or treaures :).");
1068 1090
1069 $BUTTONBAR->add (new CFClient::UI::Button 1091 $BUTTONBAR->add (new CFClient::UI::Button
1070 text => "Save Config", 1092 text => "Save Config",
1071 tooltip => "Saves the options chosen in the client setting, server settings and the window layout to be restored on later runs.", 1093 tooltip => "Saves the options chosen in the client setting, server settings and the window layout to be restored on later runs.",
1072 connect_activate => sub { 1094 on_activate => sub {
1073 $::CFG->{layout} = CFClient::UI::get_layout; 1095 $::CFG->{layout} = CFClient::UI::get_layout;
1074 CFClient::write_cfg "$Crossfire::VARDIR/pclientrc"; 1096 CFClient::write_cfg "$Crossfire::VARDIR/pclientrc";
1075 status "Configuration Saved"; 1097 status "Configuration Saved";
1076 }, 1098 },
1077 ); 1099 );
1078 1100
1079 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => make_help_window, 1101 $BUTTONBAR->add (new CFClient::UI::Flopper text => "Help!", other => make_help_window,
1080 tooltip => "View Documentation"); 1102 tooltip => "View Documentation");
1081 1103
1082 $BUTTONBAR->add (new CFClient::UI::Button 1104 $BUTTONBAR->add (new CFClient::UI::Button
1083 text => "Quit", 1105 text => "Quit",
1084 tooltip => "Terminates the program", 1106 tooltip => "Terminates the program",
1085 connect_activate => sub { 1107 on_activate => sub {
1086 if ($CONN) { 1108 if ($CONN) {
1087 open_quit_dialog; 1109 open_quit_dialog;
1088 } else { 1110 } else {
1089 exit; 1111 exit;
1090 } 1112 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines