public override void SetPropertyValue(string propertyName, string propertyValue) { switch (propertyName) { case "ending": EndingChar = propertyValue; break; case "initcap": CapitalizeFirst = GSBoolean.StringToBool(propertyValue); break; case "locklast": LockLast = GSBoolean.StringToBool(propertyValue); break; default: base.SetPropertyValue(propertyName, propertyValue); break; } }
public override GSCore ExecuteMessage(string token, GSCoreCollection args) { GSCore result = GSCore.Void; switch (token) { case "canDisplay": int disp = (int)args.getSafe(0).getIntegerValue(); bool b = (disp != 0 && (disp == -1 || GCDisplaySettings.Current.getValue(disp) != 0)); result = new GSBoolean(b); break; case "getDispValue": result = new GSNumber(GCDisplaySettings.Current.getValue((int)args.getSafe(0).getIntegerValue())); break; case "new": switch (args.getSafe(0).getStringValue()) { case "GregorianDateTime": result = new GregorianDateTime(); break; case "DateTime": result = new GSDateTime(); break; default: result = GSCore.Void; break; } break; case "calendarHeaderType": result = new GSNumber(GCDisplaySettings.Current.CalHeaderType); break; case "centerText": string text = args.getSafe(0).getStringValue(); int length = (int)args.getSafe(1).getIntegerValue(); string padStr = args.getSafe(2).getStringValue(); char padChar = padStr.Length > 0 ? padStr[0] : ' '; int half = (length - text.Length) / 2; if (half > 0) { result = new GSString(string.Format("{0} {1} {0}", "".PadLeft(half - 1, padChar), text)); } else { result = new GSString(text); } break; case "getTabPos": double d = args.getSafe(0).getDoubleValue(); result = new GSNumber(d * GCLayoutData.textSizeText / 24.0); break; case "getWeekdayName": result = new GSString(GCCalendar.GetWeekdayName((int)args.getSafe(0).getIntegerValue())); break; case "getTimezoneOffset": { string tzname = args.getSafe(0).getStringValue(); TTimeZone tzid = TTimeZone.FindTimeZoneByName(tzname); int tzoffset = tzid.OffsetMinutes; char sign = (tzoffset > 0) ? '+' : '-'; tzoffset = Math.Abs(tzoffset); result = new GSString(string.Format("{0}{1:00}{2:00}", sign, tzoffset / 60, Math.Abs(tzoffset) % 60)); } break; case "getTimezoneOffsetBias": { string tzname = args.getSafe(0).getStringValue(); TTimeZone tzid = TTimeZone.FindTimeZoneByName(tzname); int tzoffset = tzid.OffsetMinutes + tzid.BiasMinutes; char sign = (tzoffset > 0) ? '+' : '-'; tzoffset = Math.Abs(tzoffset); result = new GSString(string.Format("{0}{1:00}{2:00}", sign, tzoffset / 60, Math.Abs(tzoffset) % 60)); } break; case "getDaylightTimeStartDate": { GregorianDateTime vc = new GregorianDateTime(); string loc_timezoneId = args.getSafe(0).getStringValue(); int year = (int)args.getSafe(1).getIntegerValue(); TTimeZone tzid = TTimeZone.FindTimeZoneByName(loc_timezoneId); tzid.GetDaylightTimeStartDate(year, ref vc); result = vc; } break; case "getNormalTimeStartDate": { GregorianDateTime vc = new GregorianDateTime(); string loc_timezoneId = args.getSafe(0).getStringValue(); int year = (int)args.getSafe(1).getIntegerValue(); TTimeZone tzid = TTimeZone.FindTimeZoneByName(loc_timezoneId); tzid.GetNormalTimeStartDate(year, ref vc); result = vc; } break; default: result = base.ExecuteMessage(token, args); break; } return(result); }