Files
wmaker/WINGs/configuration.c
T

133 lines
3.1 KiB
C
Raw Normal View History

1998-09-29 22:36:29 +00:00
#include "WINGsP.h"
#include "wconfig.h"
1998-09-29 22:36:29 +00:00
2000-06-20 23:27:37 +00:00
#include <X11/Xlocale.h>
1998-09-29 22:36:29 +00:00
_WINGsConfiguration WINGsConfiguration;
2013-11-01 18:34:08 -05:00
#define SYSTEM_FONT "sans serif"
#define BOLD_SYSTEM_FONT "sans serif:bold"
#define DEFAULT_FONT_SIZE 12
1998-09-29 22:36:29 +00:00
#define FLOPPY_PATH "/floppy"
2009-08-20 00:59:40 +02:00
static unsigned getButtonWithName(const char *name, unsigned defaultButton)
2000-04-13 21:24:28 +00:00
{
2009-08-20 00:59:40 +02:00
if (strncmp(name, "Button", 6) == 0 && strlen(name) == 7) {
switch (name[6]) {
case '1':
return Button1;
case '2':
return Button2;
case '3':
return Button3;
case '4':
return Button4;
case '5':
return Button5;
default:
break;
}
}
return defaultButton;
2000-04-13 21:24:28 +00:00
}
1998-09-29 22:36:29 +00:00
2009-08-20 00:59:40 +02:00
void W_ReadConfigurations(void)
1998-09-29 22:36:29 +00:00
{
2009-08-20 00:59:40 +02:00
WMUserDefaults *defaults;
2010-01-21 23:43:13 +03:00
Bool aaIsSet = False;
2009-08-20 00:59:40 +02:00
memset(&WINGsConfiguration, 0, sizeof(_WINGsConfiguration));
defaults = WMGetStandardUserDefaults();
if (defaults) {
char *buttonName;
2010-01-21 23:43:13 +03:00
WMPropList *val;
2009-08-20 00:59:40 +02:00
unsigned button;
WINGsConfiguration.systemFont = WMGetUDStringForKey(defaults, "SystemFont");
WINGsConfiguration.boldSystemFont = WMGetUDStringForKey(defaults, "BoldSystemFont");
2010-01-21 23:43:13 +03:00
val = WMGetUDObjectForKey(defaults, "AntialiasedText");
if (val && WMIsPLString(val) && WMGetFromPLString(val)) {
aaIsSet = True;
WINGsConfiguration.antialiasedText =
WMGetUDBoolForKey(defaults, "AntialiasedText");
}
2009-08-20 00:59:40 +02:00
WINGsConfiguration.doubleClickDelay = WMGetUDIntegerForKey(defaults, "DoubleClickTime");
WINGsConfiguration.floppyPath = WMGetUDStringForKey(defaults, "FloppyPath");
buttonName = WMGetUDStringForKey(defaults, "MouseWheelUp");
if (buttonName) {
button = getButtonWithName(buttonName, Button4);
wfree(buttonName);
} else {
button = Button4;
}
WINGsConfiguration.mouseWheelUp = button;
buttonName = WMGetUDStringForKey(defaults, "MouseWheelDown");
if (buttonName) {
button = getButtonWithName(buttonName, Button5);
wfree(buttonName);
} else {
button = Button5;
}
WINGsConfiguration.mouseWheelDown = button;
if (WINGsConfiguration.mouseWheelDown == WINGsConfiguration.mouseWheelUp) {
WINGsConfiguration.mouseWheelUp = Button4;
WINGsConfiguration.mouseWheelDown = Button5;
}
WINGsConfiguration.defaultFontSize = WMGetUDIntegerForKey(defaults, "DefaultFontSize");
}
if (!WINGsConfiguration.systemFont) {
WINGsConfiguration.systemFont = SYSTEM_FONT;
}
if (!WINGsConfiguration.boldSystemFont) {
WINGsConfiguration.boldSystemFont = BOLD_SYSTEM_FONT;
}
if (WINGsConfiguration.defaultFontSize == 0) {
WINGsConfiguration.defaultFontSize = DEFAULT_FONT_SIZE;
}
2010-01-21 23:43:13 +03:00
if (!aaIsSet) {
WINGsConfiguration.antialiasedText = True;
}
2009-08-20 00:59:40 +02:00
if (!WINGsConfiguration.floppyPath) {
WINGsConfiguration.floppyPath = FLOPPY_PATH;
}
if (WINGsConfiguration.doubleClickDelay == 0) {
WINGsConfiguration.doubleClickDelay = 250;
}
if (WINGsConfiguration.mouseWheelUp == 0) {
WINGsConfiguration.mouseWheelUp = Button4;
}
if (WINGsConfiguration.mouseWheelDown == 0) {
WINGsConfiguration.mouseWheelDown = Button5;
}
1999-10-27 22:32:12 +00:00
1998-09-29 22:36:29 +00:00
}
unsigned W_getconf_mouseWheelUp(void)
{
return WINGsConfiguration.mouseWheelUp;
}
unsigned W_getconf_mouseWheelDown(void)
{
return WINGsConfiguration.mouseWheelDown;
}
void W_setconf_doubleClickDelay(int value)
{
WINGsConfiguration.doubleClickDelay = value;
}