return (float)neg * res;
}
-unsigned int __ecereNameSpace__ecere__sys__GetAlNum(char ** buffer, char * string, int max)
-{
-int c;
-char ch;
-unsigned int result = 0x1;
-
-if(!* *buffer)
-{
-string[0] = (char)0;
-return 0x0;
-}
-for(; ; )
-{
-if(!(ch = *((*buffer)++)))
-result = 0x0;
-if(isalnum(ch))
-break;
-if(!*(*buffer))
-break;
-}
-if(result)
-{
-for(c = 0; c < max - 1; c++)
-{
-if(!isalnum(ch))
-{
-result = 0x1;
-break;
-}
-string[c] = ch;
-if(!(ch = *(*buffer)))
-{
-c++;
-break;
-}
-(*buffer)++;
-}
-string[c] = (char)0;
-}
-return result;
-}
-
extern struct __ecereNameSpace__ecere__com__Class * __ecereClass___ecereNameSpace__ecere__com__DefinedExpression;
struct __ecereNameSpace__ecere__com__DefinedExpression;
__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::GetHexValue", "uint ecere::sys::GetHexValue(char * * buffer)", __ecereNameSpace__ecere__sys__GetHexValue, module, 4);
__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::StripQuotes", "char * ecere::sys::StripQuotes(char * string, char * output)", __ecereNameSpace__ecere__sys__StripQuotes, module, 4);
__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::FloatFromString", "double ecere::sys::FloatFromString(char * string)", __ecereNameSpace__ecere__sys__FloatFromString, module, 4);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::sys::GetAlNum", "bool ecere::sys::GetAlNum(char * * buffer, char * string, int max)", __ecereNameSpace__ecere__sys__GetAlNum, module, 4);
}
void __ecereUnregisterModule_String(struct __ecereNameSpace__ecere__com__Instance * module)
{
struct __ecereNameSpace__ecere__com__Class * class;
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(ecere::com::Module module)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 1);
-__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "char * ecere::GetTranslatedString(ecere::com::Module module, char * string, char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 1);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::LoadTranslatedStrings", "void ecere::LoadTranslatedStrings(ecere::com::Module module, char * name)", __ecereNameSpace__ecere__LoadTranslatedStrings, module, 4);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::UnloadTranslatedStrings", "void ecere::UnloadTranslatedStrings(ecere::com::Module module)", __ecereNameSpace__ecere__UnloadTranslatedStrings, module, 4);
+__ecereNameSpace__ecere__com__eSystem_RegisterFunction("ecere::GetTranslatedString", "char * ecere::GetTranslatedString(ecere::com::Module module, char * string, char * stringAndContext)", __ecereNameSpace__ecere__GetTranslatedString, module, 4);
}
void __ecereUnregisterModule_i18n(struct __ecereNameSpace__ecere__com__Instance * module)
if(source && __ecereNameSpace__ecere__com__eClass_IsDerived(source->_class->registered, arrayClass))
isArray = 0x1;
-if(isArray)
+if(isArray && _class->templateArgs)
{
struct __ecereNameSpace__ecere__sys__OldList * specs = MkList();
struct Declarator * decl = SpecDeclFromString(_class->templateArgs[2].dataTypeString, specs, (((void *)0)));
ECP := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecp)
ECC := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecc)
ECS := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecs)
+EAR := $(call psep,../../obj/$(PLATFORM)/bin/ear)
# FLAGS
ECP := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecp)
ECC := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecc)
ECS := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecs)
+EAR := $(call psep,../../obj/$(PLATFORM)/bin/ear)
# FLAGS
ECP := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecp)
ECC := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecc)
ECS := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecs)
+EAR := $(call psep,../../obj/$(PLATFORM)/bin/ear)
# FLAGS
ECP := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecp)
ECC := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecc)
ECS := $(call psep,../bootstrap/obj/bin.$(PLATFORM)/ecs)
+EAR := $(call psep,../../obj/$(PLATFORM)/bin/ear)
# FLAGS
$(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/units.ec -o $(OBJ)units.sym
$(OBJ)i18n.sym: src/sys/i18n.ec
- $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/i18n.ec -o $(OBJ)i18n.sym
+ $(ECP) -DECERE_COM_MODULE $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/i18n.ec -o $(OBJ)i18n.sym
$(OBJ)Cube.sym: src/gfx/3D/meshes/Cube.ec
$(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/Cube.ec -o $(OBJ)Cube.sym
$(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/units.ec -o $(OBJ)units.c -symbols $(OBJ)
$(OBJ)i18n.c: src/sys/i18n.ec $(OBJ)i18n.sym | $(SYMBOLS)
- $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/i18n.ec -o $(OBJ)i18n.c -symbols $(OBJ)
+ $(ECC) -DECERE_COM_MODULE $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/i18n.ec -o $(OBJ)i18n.c -symbols $(OBJ)
$(OBJ)Cube.c: src/gfx/3D/meshes/Cube.ec $(OBJ)Cube.sym | $(SYMBOLS)
$(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gfx/3D/meshes/Cube.ec -o $(OBJ)Cube.c -symbols $(OBJ)
$(CC) $(CFLAGS) -c src/sys/System.c -o $(OBJ)System.c.o
$(OBJ)i18n.o: $(OBJ)i18n.c
- $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)i18n.c -o $(OBJ)i18n.o
+ $(CC) -DECERE_COM_MODULE $(CFLAGS) $(FVISIBILITY) -c $(OBJ)i18n.c -o $(OBJ)i18n.o
$(OBJ)Cube.o: $(OBJ)Cube.c
$(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)Cube.c -o $(OBJ)Cube.o
# FLAGS
CFLAGS = -fmessage-length=0 -O2 -ffast-math -m32 $(FPIC) -w \
- -DECERE_COM_MODULE -DBUILDING_ECERE_COM
+ -DECERE_COM_MODULE -DBUILDING_ECERE_COM -DECERE_NOFILE
CECFLAGS =
$(RES)places/brokenFolder.png \
$(RES)status/audioVolumeHigh.png \
$(RES)status/folderOpen.png \
- $(RES)unicode/derivedGeneralCategoryStripped.txt
+ $(RES)unicode/derivedGeneralCategoryStripped.txt \
+ locale/zh_CN/LC_MESSAGES/ecere.mo
# CROSS-PLATFORM MAGIC
$(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/units.ec -o $(OBJ)units.sym
$(OBJ)i18n.sym: src/sys/i18n.ec
- $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/i18n.ec -o $(OBJ)i18n.sym
+ $(ECP) -DECERE_COM_MODULE $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/i18n.ec -o $(OBJ)i18n.sym
$(OBJ)BMPFormat.sym: src/gfx/bitmaps/BMPFormat.ec
$(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/BMPFormat.ec -o $(OBJ)BMPFormat.sym
$(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/units.ec -o $(OBJ)units.c -symbols $(OBJ)
$(OBJ)i18n.c: src/sys/i18n.ec $(OBJ)i18n.sym | $(SYMBOLS)
- $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/i18n.ec -o $(OBJ)i18n.c -symbols $(OBJ)
+ $(ECC) -DECERE_COM_MODULE $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/i18n.ec -o $(OBJ)i18n.c -symbols $(OBJ)
$(OBJ)BMPFormat.c: src/gfx/bitmaps/BMPFormat.ec $(OBJ)BMPFormat.sym | $(SYMBOLS)
$(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gfx/bitmaps/BMPFormat.ec -o $(OBJ)BMPFormat.c -symbols $(OBJ)
$(CC) $(CFLAGS) -c src/sys/System.c -o $(OBJ)System.c.o
$(OBJ)i18n.o: $(OBJ)i18n.c
- $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)i18n.c -o $(OBJ)i18n.o
+ $(CC) -DECERE_COM_MODULE $(CFLAGS) $(FVISIBILITY) -c $(OBJ)i18n.c -o $(OBJ)i18n.o
$(OBJ)BMPFormat.o: $(OBJ)BMPFormat.c
$(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)BMPFormat.c -o $(OBJ)BMPFormat.o
},
{
"FileName" : "i18n.ec",
+ "Options" : {
+ "PreprocessorDefinitions" : [
+ "ECERE_COM_MODULE"
+ ]
+ },
"Configurations" : [
{
"Name" : "Bootstrap",
"Warnings" : "All",
"PreprocessorDefinitions" : [
"ECERE_COM_MODULE",
- "BUILDING_ECERE_COM"
+ "BUILDING_ECERE_COM",
+ "ECERE_NOFILE"
],
"DefaultNameSpace" : "ecere",
"TargetType" : "SharedLibrary",
msgid "Appearance"
msgstr "外观"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Apr"
msgstr "四月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "April"
msgstr "四月"
msgid "As Type:"
msgstr "类型(T):"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Aug"
msgstr "八月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "August"
msgstr "八月"
msgid "Data"
msgstr "数据"
-#: .\src\sys\Date.ec:25
+#: .\src\sys\Date.ec:43
msgid "Dec"
msgstr "十二月"
-#: .\src\sys\Date.ec:16
+#: .\src\sys\Date.ec:34
msgid "December"
msgstr "十二月"
msgid "Exp"
msgstr "Exp"
-#: .\src\sys\Date.ec:24
+#: .\src\gui\controls\CalendarControl.ec:10
+msgctxt "Friday"
+msgid "F"
+msgstr "五"
+
+#: .\src\sys\Date.ec:42
msgid "Feb"
msgstr "二月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "February"
msgstr "二月"
msgid "Find...\tCtrl+F"
msgstr "查找(F)...\tCtrl+F"
-#: .\src\sys\Date.ec:20
+#: .\src\sys\Date.ec:38
msgid "Fri"
msgstr "星期五"
-#: .\src\sys\Date.ec:11
+#: .\src\sys\Date.ec:29
msgid "Friday"
msgstr "星期五"
msgid "Insert Tabs"
msgstr "插入制表符(I)"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Jan"
msgstr "一月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "January"
msgstr "一月"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Jul"
msgstr "七月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "July"
msgstr "七月"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Jun"
msgstr "六月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "June"
msgstr "六月"
msgid "Look in:"
msgstr "浏览(L):"
-#: .\src\sys\Date.ec:24
+#: .\src\gui\controls\CalendarControl.ec:9
+msgctxt "Monday"
+msgid "M"
+msgstr "一"
+
+#: .\src\sys\Date.ec:42
msgid "Mar"
msgstr "三月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "March"
msgstr "三月"
msgid "Maximize"
msgstr "最大化(X)"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgctxt "LongMonthNames"
msgid "May"
msgstr "五月"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgctxt "ShortMonthNames"
msgid "May"
msgstr "五月"
msgid "Minimize"
msgstr "最小化(N)"
-#: .\src\sys\Date.ec:20
+#: .\src\sys\Date.ec:38
msgid "Mon"
msgstr "星期一"
-#: .\src\sys\Date.ec:11
+#: .\src\sys\Date.ec:29
msgid "Monday"
msgstr "星期一"
msgid "No such line."
msgstr "没有这行."
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Nov"
msgstr "十一月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "November"
msgstr "十一月"
msgid "OK"
msgstr "OK"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Oct"
msgstr "十月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "October"
msgstr "十月"
msgid "Restore"
msgstr "恢复(R)"
-#: .\src\sys\Date.ec:21
+#: .\src\gui\controls\CalendarControl.ec:11
+msgctxt "Saturday"
+msgid "S"
+msgstr "六"
+
+#: .\src\gui\controls\CalendarControl.ec:9
+msgctxt "Sunday"
+msgid "S"
+msgstr "日"
+
+#: .\src\sys\Date.ec:39
msgid "Sat"
msgstr "星期六"
-#: .\src\sys\Date.ec:12
+#: .\src\sys\Date.ec:30
msgid "Saturday"
msgstr "星期六"
msgid "Selection"
msgstr "已选中内容(S)"
-#: .\src\sys\Date.ec:24
+#: .\src\sys\Date.ec:42
msgid "Sep"
msgstr "九月"
-#: .\src\sys\Date.ec:15
+#: .\src\sys\Date.ec:33
msgid "September"
msgstr "九月"
msgid "Stay On Top"
msgstr "置顶(T)"
-#: .\src\sys\Date.ec:20
+#: .\src\sys\Date.ec:38
msgid "Sun"
msgstr "星期日"
-#: .\src\sys\Date.ec:11
+#: .\src\sys\Date.ec:29
msgid "Sunday"
msgstr "星期日"
msgid "System"
msgstr "System"
+#: .\src\gui\controls\CalendarControl.ec:10
+msgctxt "Thursday"
+msgid "T"
+msgstr "四"
+
+#: .\src\gui\controls\CalendarControl.ec:9
+msgctxt "Tuesday"
+msgid "T"
+msgstr "二"
+
#: .\src\gui\skins\TVisionSkin.ec:37
#: .\src\gui\skins\TVisionSkin.ec:43
#: .\src\gui\skins\WindowsSkin.ec:125
msgid "Tahoma"
msgstr "Tahoma"
-#: .\src\sys\Date.ec:20
+#: .\src\sys\Date.ec:38
msgid "Thu"
msgstr "星期四"
-#: .\src\sys\Date.ec:11
+#: .\src\sys\Date.ec:29
msgid "Thursday"
msgstr "星期四"
-#: .\src\sys\Date.ec:20
+#: .\src\sys\Date.ec:38
msgid "Tue"
msgstr "星期二"
-#: .\src\sys\Date.ec:11
+#: .\src\sys\Date.ec:29
msgid "Tuesday"
msgstr "星期二"
msgid "Up"
msgstr "向上(U)"
-#: .\src\gui\controls\CalendarControl.ec:44
-#: .\src\gui\controls\CalendarControl.ec:69
-#: .\src\gui\controls\CalendarControl.ec:90
-#: .\src\gui\controls\CalendarControl.ec:111
+#: .\src\gui\controls\CalendarControl.ec:50
+#: .\src\gui\controls\CalendarControl.ec:75
+#: .\src\gui\controls\CalendarControl.ec:96
+#: .\src\gui\controls\CalendarControl.ec:117
#, fuzzy
msgid "Verdana"
msgstr "Verdana"
-#: .\src\sys\Date.ec:20
+#: .\src\gui\controls\CalendarControl.ec:9
+msgctxt "Wednesday"
+msgid "W"
+msgstr "三"
+
+#: .\src\sys\Date.ec:38
msgid "Wed"
msgstr "星期三"
-#: .\src\sys\Date.ec:11
+#: .\src\sys\Date.ec:29
msgid "Wednesday"
msgstr "星期三"
"\n"
"你想查看错误日志吗?"
-#: .\src\sys\Date.ec:64
-#: .\src\sys\Time.ec:779
+#: .\src\sys\Date.ec:121
+#: .\src\sys\Time.ec:781
msgid "now"
msgstr "现在"
-#: .\src\sys\Date.ec:63
-#: .\src\sys\Time.ec:778
+#: .\src\sys\Date.ec:120
+#: .\src\sys\Time.ec:780
msgid "today"
msgstr "今日"
-#: .\src\sys\Date.ec:65
-#: .\src\sys\Date.ec:69
-#: .\src\sys\Time.ec:781
+#: .\src\sys\Date.ec:122
+#: .\src\sys\Date.ec:126
+#: .\src\sys\Time.ec:783
msgid "tomorrow"
msgstr "明天"
-#: .\src\sys\Date.ec:66
-#: .\src\sys\Date.ec:74
-#: .\src\sys\Time.ec:788
+#: .\src\sys\Date.ec:123
+#: .\src\sys\Date.ec:131
+#: .\src\sys\Time.ec:790
msgid "yesterday"
msgstr "昨天"
}
return neg * res;
}
-
-public bool GetAlNum(char ** buffer, char * string, int max)
-{
- int c;
- char ch;
- bool result = true;
- if(!**buffer) { string[0]=0; return false; }
-
- for(;;)
- {
- if(!(ch = *((*buffer)++)))
- result = false;
- if(isalnum(ch))
- break;
- if(!*(*buffer)) break;
- }
- if(result)
- {
- for(c=0; c<max-1; c++)
- {
- if(!isalnum(ch))
- {
- result = true;
- break;
- }
- string[c]=ch;
- if(!(ch = *(*buffer)))
- {
- c++;
- break;
- }
- (*buffer)++;
- }
- string[c]=0;
- }
- return result;
-}
#define ISLEAP(y) (!((y)%4) && (((y) % 100) || (!((y)% 400))))
+/*static */Array<String> veryShortDaysNames
+{ [
+ $"Sunday"."S", $"Monday"."M", $"Tuesday"."T", $"Wednesday"."W",
+ $"Thursday"."T", $"Friday"."F", $"Saturday"."S"
+] };
+
public class CalendarControl : CommonControl
{
class_property(icon) = "<:ecere>controls/calendar.png";
surface.SetForeground(black);
for(d = sunday; d <= saturday; d++)
{
- String s = shortDaysNames[d];
- surface.CenterTextf(Width / 2 + d * Width, 0, "%c", toupper(s[0]));
+ surface.CenterTextf(Width / 2 + d * Width, 0, "%s", veryShortDaysNames[d]);
}
surface.SetBackground(Color { 238, 238, 238 } /*whiteSmoke*/);
#define ISLEAP(y) (!((y)%4) && (((y) % 100) || (!((y)% 400))))
+/*static */Array<String> enLongDaysNames
+{ [
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+] };
+/*static */Array<String> enLongMonthsNames
+{ [
+ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+] };
+
+/*static */Array<String> enShortDaysNames
+{ [
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+] };
+/*static */Array<String> enShortMonthsNames
+{ [
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+] };
+
/*static */Array<String> longDaysNames
{ [
$"Sunday", $"Monday", $"Tuesday", $"Wednesday", $"Thursday", $"Friday", $"Saturday"
{ [
$"Jan", $"Feb", $"Mar", $"Apr", $"ShortMonthNames"."May", $"Jun", $"Jul", $"Aug", $"Sep", $"Oct", $"Nov", $"Dec"
] };
-public enum Month { january, february, march, april, may, june, july, august, september, october, november, december };
+
+default:
+extern int __ecereVMethodID_class_OnGetString;
+public:
+
+public enum Month
+{
+ january, february, march, april, may, june, july, august, september, october, november, december;
+
+ char * OnGetString(char * string, void * fieldData, bool * needClass)
+ {
+ Month m = this;
+ if(m >= january && m <= december)
+ {
+ if(!needClass || !*needClass)
+ return longMonthsNames[m];
+ else
+ return class::OnGetString(string, fieldData, needClass);
+ }
+ return null;
+ }
+
+ bool OnGetDataFromString(char * string)
+ {
+ if(string)
+ {
+ Month m;
+ for(m = 0; m<=december; m++)
+ {
+ if(!strcmpi(shortMonthsNames[m], string) || !strcmpi(longMonthsNames[m], string) ||
+ !strcmpi(enShortMonthsNames[m], string) || !strcmpi(enLongMonthsNames[m], string))
+ {
+ this = m;
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+};
default:
extern int __ecereVMethodID_class_OnGetString;
bool resolved = false;
int c;
bool isAlpha = false;
- for(c = 0; value[c] && !isAlpha; c++)
- if(isalpha(value[c])) isAlpha = true;
+ unichar ch;
+ int nb;
+ for(c = 0; (ch = UTF8GetChar(value + c, &nb)) && !isAlpha; c += nb)
+ {
+ // if(isalpha(value[c])) isAlpha = true;
+ if(CharMatchCategories(ch, letters)) isAlpha = true;
+ }
if(isAlpha)
{
- Month c;
- for(c = 0; c<Month::enumSize; c++)
- if(!strnicmp(shortMonthsNames[c], value, 3))
+ Month m;
+ for(m = 0; m<Month::enumSize; m++)
+ if(!strcmpi(shortMonthsNames[m], value) || !strcmpi(longMonthsNames[m], value) ||
+ !strcmpi(enShortMonthsNames[m], value) || !strcmpi(enLongMonthsNames[m], value))
{
- month = c;
+ month = m;
gotAlphaMonth = true;
break;
}
{
int i;
for(i = 0; i<7; i++)
- if(!strcmpi(tokens[c], shortDaysNames[i]) || !strcmpi(tokens[c], longDaysNames[i]))
+ if(!strcmpi(tokens[c], shortDaysNames[i]) || !strcmpi(tokens[c], longDaysNames[i]) ||
+ !strcmpi(tokens[c], enShortDaysNames[i]) || !strcmpi(tokens[c], enLongDaysNames[i]))
break;
if(i < 7) { dayOfTheWeek = (DayOfTheWeek)i; foundDayOfTheWeek = true; continue; }
for(i = 0; i<12; i++)
- if(!strcmpi(tokens[c], shortMonthsNames[i]) || !strcmpi(tokens[c], longMonthsNames[i]))
+ if(!strcmpi(tokens[c], shortMonthsNames[i]) || !strcmpi(tokens[c], longMonthsNames[i]) ||
+ !strcmpi(tokens[c], enShortMonthsNames[i]) || !strcmpi(tokens[c], enLongMonthsNames[i]))
break;
if(i < 12) { month = (Month)i; continue; }
-#ifndef ECERE_COM_MODULE
+#ifndef ECERE_NOFILE
import "File"
#endif
import "Map"
public dllexport void LoadTranslatedStrings(Module module, char * name)
{
-#ifndef ECERE_COM_MODULE
+#ifndef ECERE_NOFILE
File f;
char fileName[MAX_LOCATION];
connector = CharCategories { punctuationConnector = true },
};
+public bool GetAlNum(char ** input, char * string, int max)
+{
+ int c = 0;
+ unichar ch;
+ int nb = 1;
+ bool result = true;
+ char * buffer = *input;
+ if(!buffer[0]) { string[0]=0; return false; }
+
+ // Eat all left spacing, leave last char in ch
+ for(;;)
+ {
+#if defined(ECERE_NOUNICODE) || defined(ECERE_BOOTSTRAP)
+ ch = *buffer;
+#else
+ ch = UTF8GetChar(buffer, &nb);
+#endif
+ if(!ch) { result = false; break; }
+
+#if defined(ECERE_NOUNICODE) || defined(ECERE_BOOTSTRAP)
+ if(isalnum(ch))
+#else
+ if(CharMatchCategories(ch, numbers|letters))
+#endif
+ break;
+ else
+ buffer += nb;
+ }
+ if(result)
+ {
+ while(c < max-1)
+ {
+ int i;
+ for(i = 0; i < nb && c < max-1; i++)
+ string[c++] = *(buffer++);
+
+#if defined(ECERE_NOUNICODE) || defined(ECERE_BOOTSTRAP)
+ ch = *buffer;
+#else
+ ch = UTF8GetChar(buffer, &nb);
+#endif
+ if(!ch) break; // End of input string
+
+#if defined(ECERE_NOUNICODE) || defined(ECERE_BOOTSTRAP)
+ if(!isalnum(ch))
+#else
+ if(!CharMatchCategories(ch, numbers|letters))
+#endif
+ // End of this alpha numeric word
+ break;
+ }
+ string[c]=0;
+ }
+ *input = buffer;
+ return result;
+}
+
static struct Range
{
uint start, end;
--- /dev/null
+import "ecere"
+
+class ColorFun : Window
+{
+ text = "Fun With Colors and Data Boxes";
+ background = activeBorder;
+ borderStyle = sizable;
+ hasMaximize = true;
+ hasMinimize = true;
+ hasClose = true;
+ nativeDecorations = true;
+ tabCycle = true;
+ size = { 640, 480 };
+
+ Color color;
+ color = activeBorder;
+ SavingDataBox colorBox
+ {
+ this, size = { 116, 20 }, position = { 176, 104 }; data = &color; type = class(Color);
+
+ bool NotifyChanged(bool closingDropDown)
+ {
+ background = color;
+ return true;
+ }
+ };
+
+ Date date;
+ DateTime now;
+ date = (now.GetLocalTime(), Date { now.year, now.month, now.day });
+ SavingDataBox dateBox
+ {
+ this, size = { 200, 20 }, position = { 376, 104 }; data = &date; type = class(Date);
+ };
+
+ DateTime dateTime;
+ dateTime = now;
+ SavingDataBox dateTimeBox
+ {
+ this, size = { 200, 20 }, position = { 376, 304 }; data = &dateTime; type = class(DateTime);
+ };
+
+ double d;
+ d = Pi;
+ SavingDataBox doubleBox
+ {
+ this, size = { 116, 20 }, position = { 176, 204 }; data = &d; type = class(double);
+ };
+}
+
+ColorFun form {};
--- /dev/null
+{
+ "Version" : 0.2,
+ "ModuleName" : "dataBoxes",
+ "Options" : {
+ "Warnings" : "All",
+ "TargetType" : "Executable",
+ "TargetFileName" : "dataBoxes",
+ "Libraries" : [
+ "ecere"
+ ]
+ },
+ "Configurations" : [
+ {
+ "Name" : "Debug",
+ "Options" : {
+ "Debug" : true,
+ "Optimization" : "None",
+ "PreprocessorDefinitions" : [
+ "_DEBUG"
+ ]
+ }
+ },
+ {
+ "Name" : "Release",
+ "Options" : {
+ "Debug" : false,
+ "Optimization" : "Speed"
+ }
+ }
+ ],
+ "Files" : [
+ "dataBoxes.ec"
+ ],
+ "ResourcesPath" : "",
+ "Resources" : [
+
+ ]
+}
\ No newline at end of file