6 #include <X11/Xlocale.h>
9 _WINGsConfiguration WINGsConfiguration
;
13 #define SYSTEM_FONT "-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-medium-r-*-*-%d-*-*-*-*-*-*-*"
15 #define BOLD_SYSTEM_FONT "-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-bold-r-*-*-%d-*-*-*-*-*-*-*"
17 #define XFTSYSTEM_FONT "-*-arial-medium-r-normal-*-%d-*-*-*-*-*-*-*"
19 #define XFTBOLD_SYSTEM_FONT "-*-arial-bold-r-normal-*-%d-*-*-*-*-*-*-*"
21 #define FLOPPY_PATH "/floppy"
25 getButtonWithName(const char *name
, unsigned defaultButton
)
27 if (strncmp(name
, "Button", 6)==0 && strlen(name
)==7) {
49 W_ReadConfigurations(void)
51 WMUserDefaults
*defaults
;
53 memset(&WINGsConfiguration
, 0, sizeof(_WINGsConfiguration
));
55 defaults
= WMGetStandardUserDefaults();
62 WINGsConfiguration
.systemFont
=
63 WMGetUDStringForKey(defaults
, "SystemFont");
65 WINGsConfiguration
.boldSystemFont
=
66 WMGetUDStringForKey(defaults
, "BoldSystemFont");
68 WINGsConfiguration
.antialiasedSystemFont
=
69 WMGetUDStringForKey(defaults
, "AntialiasedSystemFont");
71 WINGsConfiguration
.antialiasedBoldSystemFont
=
72 WMGetUDStringForKey(defaults
, "AntialiasedBoldSystemFont");
75 WINGsConfiguration
.antialiasedText
=
76 WMGetUDBoolForKey(defaults
, "AntialiasedText");
78 WINGsConfiguration
.antialiasedText
= False
;
81 WINGsConfiguration
.useMultiByte
= False
;
82 str
= WMGetUDStringForKey(defaults
, "MultiByteText");
84 if (strcasecmp(str
, "YES") == 0) {
85 WINGsConfiguration
.useMultiByte
= True
;
86 } else if (strcasecmp(str
, "AUTO") == 0) {
89 /* if it's a multibyte language (japanese, chinese or korean)
90 * then set it to True */
91 locale
= setlocale(LC_CTYPE
, NULL
);
93 && (strncmp(locale
, "ja", 2) == 0
94 || strncmp(locale
, "zh", 2) == 0
95 || strncmp(locale
, "ru", 2) == 0
96 || strncmp(locale
, "ko", 2) == 0)) {
98 WINGsConfiguration
.useMultiByte
= True
;
103 WINGsConfiguration
.doubleClickDelay
=
104 WMGetUDIntegerForKey(defaults
, "DoubleClickTime");
106 WINGsConfiguration
.floppyPath
=
107 WMGetUDStringForKey(defaults
, "FloppyPath");
109 buttonName
= WMGetUDStringForKey(defaults
, "MouseWheelUp");
111 button
= getButtonWithName(buttonName
, Button4
);
116 WINGsConfiguration
.mouseWheelUp
= button
;
118 buttonName
= WMGetUDStringForKey(defaults
, "MouseWheelDown");
120 button
= getButtonWithName(buttonName
, Button5
);
125 WINGsConfiguration
.mouseWheelDown
= button
;
127 if (WINGsConfiguration
.mouseWheelDown
==WINGsConfiguration
.mouseWheelUp
) {
128 WINGsConfiguration
.mouseWheelUp
= Button4
;
129 WINGsConfiguration
.mouseWheelDown
= Button5
;
132 WINGsConfiguration
.defaultFontSize
=
133 WMGetUDIntegerForKey(defaults
, "DefaultFontSize");
137 if (!WINGsConfiguration
.systemFont
) {
138 WINGsConfiguration
.systemFont
= SYSTEM_FONT
;
140 if (!WINGsConfiguration
.boldSystemFont
) {
141 WINGsConfiguration
.boldSystemFont
= BOLD_SYSTEM_FONT
;
143 if (!WINGsConfiguration
.antialiasedSystemFont
) {
144 WINGsConfiguration
.antialiasedSystemFont
= XFTSYSTEM_FONT
;
146 if (!WINGsConfiguration
.antialiasedBoldSystemFont
) {
147 WINGsConfiguration
.antialiasedBoldSystemFont
= XFTBOLD_SYSTEM_FONT
;
149 if (!WINGsConfiguration
.floppyPath
) {
150 WINGsConfiguration
.floppyPath
= FLOPPY_PATH
;
152 if (WINGsConfiguration
.doubleClickDelay
== 0) {
153 WINGsConfiguration
.doubleClickDelay
= 250;
155 if (WINGsConfiguration
.mouseWheelUp
== 0) {
156 WINGsConfiguration
.mouseWheelUp
= Button4
;
158 if (WINGsConfiguration
.mouseWheelDown
== 0) {
159 WINGsConfiguration
.mouseWheelDown
= Button5
;
161 if (WINGsConfiguration
.defaultFontSize
== 0) {
162 WINGsConfiguration
.defaultFontSize
= 12;