xref: /haiku/src/apps/deskcalc/CalcOptions.cpp (revision c14bca2958fb7b0c34d5464ccfdd87038f909a0c)
1 /*
2  * Copyright 2006-2012 Haiku, Inc. All Rights Reserved.
3  * Copyright 1997, 1998 R3 Software Ltd. All Rights Reserved.
4  * Distributed under the terms of the MIT License.
5  *
6  * Authors:
7  *		Stephan Aßmus, superstippi@gmx.de
8  *		John Scipione, jscipione@gmail.com
9  *		Timothy Wayper, timmy@wunderbear.com
10  */
11 
12 
13 #include "CalcOptions.h"
14 
15 #include <stdlib.h>
16 #include <stdio.h>
17 
18 #include <Message.h>
19 
20 
CalcOptions()21 CalcOptions::CalcOptions()
22 	:
23 	auto_num_lock(false),
24 	audio_feedback(false),
25 	degree_mode(false),
26 	keypad_mode(KEYPAD_MODE_BASIC)
27 {
28 }
29 
30 
31 void
LoadSettings(const BMessage * archive)32 CalcOptions::LoadSettings(const BMessage* archive)
33 {
34 	bool option;
35 	uint8 keypad_mode_option;
36 
37 	if (archive->FindBool("auto num lock", &option) == B_OK)
38 		auto_num_lock = option;
39 
40 	if (archive->FindBool("audio feedback", &option) == B_OK)
41 		audio_feedback = option;
42 
43 	if (archive->FindBool("degree mode", &option) == B_OK)
44 		degree_mode = option;
45 
46 	if (archive->FindUInt8("keypad mode", &keypad_mode_option) == B_OK)
47 		keypad_mode = keypad_mode_option;
48 }
49 
50 
51 status_t
SaveSettings(BMessage * archive) const52 CalcOptions::SaveSettings(BMessage* archive) const
53 {
54 	status_t ret = archive->AddBool("auto num lock", auto_num_lock);
55 
56 	if (ret == B_OK)
57 		ret = archive->AddBool("audio feedback", audio_feedback);
58 
59 	if (ret == B_OK)
60 		ret = archive->AddBool("degree mode", degree_mode);
61 
62 	if (ret == B_OK)
63 		ret = archive->AddUInt8("keypad mode", keypad_mode);
64 
65 	return ret;
66 }
67