root/src/preferences/keymap/KeymapApplication.cpp
/*
 * Copyright 2004-2014 Haiku, Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 *
 * Authors:
 *              Jérôme Duval
 *              John Scipione, jscipione@gmail.com
 *              Sandor Vroemisse
 */


#include "KeymapApplication.h"


//      #pragma mark - KeymapApplication


KeymapApplication::KeymapApplication()
        :
        BApplication("application/x-vnd.Haiku-Keymap"),
        fModifierKeysWindow(NULL)
{
        // create the window
        fWindow = new KeymapWindow();
        fWindow->Show();
}


void
KeymapApplication::MessageReceived(BMessage* message)
{
        switch (message->what) {
                case kMsgShowModifierKeysWindow:
                        _ShowModifierKeysWindow();
                        break;
                case kMsgCloseModifierKeysWindow:
                        fModifierKeysWindow = NULL;
                        break;
                case kMsgUpdateModifierKeys:
                        fWindow->PostMessage(message);
                        break;
        }

        BApplication::MessageReceived(message);
}


void
KeymapApplication::_ShowModifierKeysWindow()
{
        if (fModifierKeysWindow != NULL)
                fModifierKeysWindow->Activate();
        else {
                fModifierKeysWindow = new ModifierKeysWindow();
                fModifierKeysWindow->CenterIn(fWindow->Frame());
                fModifierKeysWindow->Show();
        }
}


//      #pragma mark - main method


int
main(int, char**)
{
        new KeymapApplication;
        be_app->Run();
        delete be_app;
        return B_OK;
}