1/*
2 * Copyright 2004-2006, the Haiku project. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors in chronological order:
6 *  mccall@digitalparadise.co.uk
7 *  J��r��me Duval
8 *  Marcus Overhagen
9 */
10
11
12#include "KeyboardSettings.h"
13
14#include <File.h>
15#include <FindDirectory.h>
16#include <Path.h>
17#include <stdio.h>
18
19
20KeyboardSettings::KeyboardSettings()
21{
22	if (get_key_repeat_rate(&fSettings.key_repeat_rate) != B_OK)
23		fSettings.key_repeat_rate = kb_default_key_repeat_rate;
24
25	if (get_key_repeat_delay(&fSettings.key_repeat_delay) != B_OK)
26		fSettings.key_repeat_delay = kb_default_key_repeat_delay;
27
28	fOriginalSettings = fSettings;
29}
30
31
32KeyboardSettings::~KeyboardSettings()
33{
34}
35
36
37void
38KeyboardSettings::SetKeyboardRepeatRate(int32 rate)
39{
40	if (set_key_repeat_rate(rate) != B_OK)
41		fprintf(stderr, "error while set_key_repeat_rate!\n");
42	fSettings.key_repeat_rate = rate;
43}
44
45
46void
47KeyboardSettings::SetKeyboardRepeatDelay(bigtime_t delay)
48{
49	if (set_key_repeat_delay(delay) != B_OK)
50		fprintf(stderr, "error while set_key_repeat_delay!\n");
51	fSettings.key_repeat_delay = delay;
52}
53
54
55void
56KeyboardSettings::Revert()
57{
58	SetKeyboardRepeatDelay(fOriginalSettings.key_repeat_delay);
59	SetKeyboardRepeatRate(fOriginalSettings.key_repeat_rate);
60}
61
62
63void
64KeyboardSettings::Defaults()
65{
66	SetKeyboardRepeatDelay(kb_default_key_repeat_delay);
67	SetKeyboardRepeatRate(kb_default_key_repeat_rate);
68}
69
70
71bool
72KeyboardSettings::IsDefaultable()
73{
74	return fSettings.key_repeat_delay != kb_default_key_repeat_delay
75		|| fSettings.key_repeat_rate != kb_default_key_repeat_rate;
76}
77