root/src/preferences/input/Input.cpp
/*
 * Copyright 2019, Haiku, Inc.
 * Distributed under the terms of the MIT License.
 *
 * Author:
 *              Preetpal Kaur <preetpalok123@gmail.com>
 */


#include "Input.h"

#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>

#include "InputConstants.h"
#include "InputDeviceView.h"
#include "InputTouchpadPrefView.h"
#include "InputWindow.h"


#undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "InputApplication"

const char* kSignature = "application/x-vnd.Haiku-Input";


InputApplication::InputApplication()
        :
        BApplication(kSignature),
        fIcons()
{
        BRect rect(0, 0, 600, 500);
        InputWindow* window = new InputWindow(rect);
        DeviceListItemView::SetIcons(&fIcons);
        window->Show();
}


void
InputApplication::MessageReceived(BMessage* message)
{
        switch (message->what) {
                case kMsgMouseType:
                case kMsgMouseMap:
                case kMsgMouseFocusMode:
                case kMsgFollowsMouseMode:
                case kMsgAcceptFirstClick:
                case kMsgDoubleClickSpeed:
                case kMsgMouseSpeed:
                case kMsgAccelerationFactor:
                case kMsgDefaults:
                case kMsgRevert:
                {
                        fWindow->PostMessage(message);
                        break;
                }
                case SCROLL_AREA_CHANGED:
                case SCROLL_CONTROL_CHANGED:
                case TAP_CONTROL_CHANGED:
                case PAD_SPEED_CHANGED:
                case PAD_ACCELERATION_CHANGED:
                case DEFAULT_SETTINGS:
                case REVERT_SETTINGS:
                {
                        fWindow->PostMessage(message);
                        break;
                }
                case kMsgSliderrepeatrate:
                case kMsgSliderdelayrate:
                {
                        fWindow->PostMessage(message);
                        break;
                }
                default:
                        BApplication::MessageReceived(message);
        }
};


int
main(int /*argc*/, char** /*argv*/)
{
        InputApplication app;
        app.Run();

        return 0;
}