/*
* This file is part of the Haven & Hearth game client.
* Copyright (C) 2009 Fredrik Tolf <fredrik@dolda2000.com>, and
* Björn Johannessen <johannessen.bjorn@gmail.com>
*
* Redistribution and/or modification of this file is subject to the
* terms of the GNU Lesser General Public License, version 3, as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Other parts of this source tree adhere to other copying
* rights. Please see the file `COPYING' in the root directory of the
* source tree for details.
*
* A copy the GNU Lesser General Public License is distributed along
* with the source tree of which this file is a part in the file
* `doc/LPGL-3'. If it is missing for any reason, please see the Free
* Software Foundation's website at <http://www.fsf.org/>, or write
* to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA
*/
package haven;
import java.awt.event.KeyEvent;
public class RootWidget extends ConsoleHost {
public static Resource defcurs = Resource.load("gfx/hud/curs/arw");
Logout logout = null;
Profile gprof;
boolean afk = false;
public RootWidget(UI ui, Coord sz) {
super(ui, new Coord(0, 0), sz);
setfocusctl(true);
cursor = defcurs;
}
public boolean globtype(char key, KeyEvent ev) {
int code = ev.getKeyCode();
boolean ctrl = ev.isControlDown();
boolean alt = ev.isAltDown();
boolean hasGUI = ui.gui != null;
if(!super.globtype(key, ev)) {
if(key == 0){return false;}
if(Config.profile && (key == '`')) {
new Profwnd(new Coord(100, 100), this, gprof, "Glob prof");
} else if(Config.profile && (key == '~')) {
GameUI gi = ui.gui;
if((gi != null) && (gi.map != null))
new Profwnd(new Coord(100, 100), this, gi.map.prof, "MV prof");
} else if(key == ':') {
entercmd();
}else if((code == KeyEvent.VK_L || code == KeyEvent.VK_F) && ctrl){
FlatnessTool.instance(ui).toggle();
}else if(code == KeyEvent.VK_D && ctrl){
DarknessWnd.toggle();
}else if(code == KeyEvent.VK_R && alt){
Config.toggleRadius();
}else if(code == KeyEvent.VK_C && alt && hasGUI){
ui.gui.toggleCraftWnd();
}else if(code == KeyEvent.VK_F && alt && hasGUI){
ui.gui.toggleFilterWnd();
}else if(code == KeyEvent.VK_Z && ctrl){
Config.center = !Config.center;
ui.message(String.format("Tile centering in turned %s", Config.center?"ON":"OFF"), GameUI.MsgType.INFO);
} else if(key != 0) {
wdgmsg("gk", (int)key);
}
}
return(true);
}
@Override
public boolean keyup(KeyEvent ev) {
if(ev.getKeyCode() == KeyEvent.VK_PRINTSCREEN){
Screenshooter.take(ui.gui, Config.screenurl);
return true;
}
return super.keyup(ev);
}
public void draw(GOut g) {
super.draw(g);
drawcmd(g, new Coord(20, sz.y - 20));
}
public void error(String msg) {
}
}