--- deliantra/Deliantra-Client/bin/deliantra 2008/03/20 22:28:35 1.28
+++ deliantra/Deliantra-Client/bin/deliantra 2008/03/24 00:24:47 1.29
@@ -192,6 +192,7 @@
our $ALT_ENTER_MESSAGE;
our $STATUSBOX;
+our $MODBOX;
our $DEBUG_STATUS;
our $INV;
@@ -212,6 +213,30 @@
$MESSAGE_DIST->message (@_);
}
+sub update_modbox {
+ my $mod = DC::SDL_GetModState;
+
+ my $markup;
+
+ $markup .= $mod & DC::KMOD_CTRL
+ ? ($MAPWIDGET->{ctrl} ? "[REPEAT]" : "[REPEAT]")
+ : "[ once ]";
+
+ $markup .= $mod & DC::KMOD_SHIFT
+ ? ($MAPWIDGET->{shft} ? "[FIRE]" : "[FIRE]")
+ : "[move]";
+
+ $markup .= $mod & (DC::KMOD_ALT | DC::KMOD_META)
+ ? "[ALT]"
+ : "[alt]";
+
+ $markup .= $mod & DC::KMOD_NUM
+ ? "[NUM]"
+ : "[num]";
+
+ $MODBOX->set_markup ($markup);
+}
+
#############################################################################
#TODO: maybe move into own audio module...
@@ -2148,15 +2173,33 @@
$DEBUG_STATUS->show;
$STATUSBOX = new DC::UI::Statusbox;
- $STATUSBOX->add ("Use Alt-Enter to toggle fullscreen mode", timeout => 864000, pri => -100, color => [1, 1, 1, 0.8]);
+
+ $MODBOX = new DC::UI::Label
+ can_events => 1,
+ can_hover => 1,
+ markup => "",
+ align => 0,
+ font => $FONT_FIXED,
+ tooltip => "#modifier_box";
+
+ update_modbox;
(new DC::UI::Frame
bg => [0, 0, 0, 0.4],
force_x => 0,
force_y => "max",
- child => $STATUSBOX,
+ child => (my $LR = new DC::UI::VBox),
)->show;
+ $LR->add ($STATUSBOX);
+ $LR->add ($MODBOX);
+ $LR->add (new DC::UI::Label
+ align => 0,
+ markup => "Use Alt-Enter to toggle fullscreen mode",
+ fontsize => 0.5,
+ fg => [1, 1, 0, 0.7],
+ );
+
DC::UI::Toplevel->new (
title => "Minimap",
name => "mapmap",
@@ -2347,10 +2390,14 @@
video_shutdown;
video_init;
} else {
- DC::UI::feed_sdl_key_down_event ($_[0]);
+ &DC::UI::feed_sdl_key_down_event;
}
+ update_modbox;
+ },
+ DC::SDL_KEYUP => sub {
+ &DC::UI::feed_sdl_key_up_event;
+ update_modbox;
},
- DC::SDL_KEYUP => \&DC::UI::feed_sdl_key_up_event,
DC::SDL_MOUSEMOTION => \&DC::UI::feed_sdl_motion_event,
DC::SDL_MOUSEBUTTONDOWN => \&DC::UI::feed_sdl_button_down_event,
DC::SDL_MOUSEBUTTONUP => \&DC::UI::feed_sdl_button_up_event,