BBjInputT::getLocale

Description

In BBj 24.00 and higher, this method returns the locale of the BBjInputT control.

Syntax

Return Value Method
string getLocale()

Parameters

None.

Return Value

Returns the locale of the BBjInputT control. The locale can affect the language and format of the popup time picker and the language of the localized am/pm strings.

Example

rem ' BBjInputT::getLocale

sysgui = unt
open (sysgui)"X0"
print (sysgui)'scale'(1.5,1.5)
sysgui! = bbjapi().getSysGui()

font! = sysgui!.makeFont("SansSerif",12,0)

window! = sysgui!.addWindow(25,25,300,400,"setLocale",$00090083$,$00E3F007CD$)
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.addStaticText(200,0,20,100,25,"Locale:",$8000$)
locales! = window!.addListButton(100,110,20,180,300,"")
locales!.setCallback(locales!.ON_LIST_SELECT,"locale")
window!.addStaticText(201,0,60,100,25,"Date:",$8000$)
inputd! = window!.addInputD(101,110,60,130,25)
inputd!.setToolTipText("BBjInputD")
showDatePicker! = window!.addToolButton(301,250,60,25,25,"BITMAP=calendar.png")
showDatePicker!.setFont(font!)
showDatePicker!.setCallback(showDatePicker!.ON_TOOL_BUTTON_PUSH,"showDatePicker")

rem ' https://www.fileformat.info/info/unicode/char/1f4c5/index.htm
calendar! = new String($d83ddcc5$,"UTF-16")
showDatePicker!.setText(calendar!)
showDatePicker!.setToolTipText("showDatePicker")
window!.addStaticText(400,0,100,100,25,"Date Mask:",$8000$)
window!.addStaticText(401,110,100,120,25,"",$$)
window!.addStaticText(202,0,130,105,30,"Show Weeks?",$8000$)
showWeeks! = window!.addCheckBox(102,110,125,30,30,"")
showWeeks!.setCallback(showWeeks!.ON_CHECK_CHANGE,"showWeeks")
window!.addStaticText(501,0,160,100,25,"Time:",$8000$)
inputt! = window!.addInputT(601,110,160,130,25)
inputt!.setToolTipText("BBjInputT")
inputt!.setCallback(inputt!.ON_EDIT_MODIFY,"edit")
showTimePicker! = window!.addToolButton(602,250,160,25,25,"BITMAP=clock.png")
showTimePicker!.setFont(font!)
showTimePicker!.setCallback(showTimePicker!.ON_TOOL_BUTTON_PUSH,"showTimePicker")

rem ' https://www.fileformat.info/info/unicode/char/1f550/index.htm
clock! = new String($d83ddd50$,"UTF-16")
showTimePicker!.setText(clock!)
showTimePicker!.setToolTipText("showTimePicker")
window!.addStaticText(700,0,200,100,25,"Time Mask:",$8000$)
window!.addStaticText(701,110,200,120,25,"",$$)
mask$ = "00:00:00"
inpute! = window!.addInputE(801,110,240,130,25,$0000$,mask$)
inpute!.setToolTipText("BBjInputE mask 00:00:00")

editbox! = window!.addEditBox(802,110,280,140,25,"",$$,"time")
mask$="%Hz:%mz:%sz.000"
editbox!.setToolTipText("BBjEditBox time " + mask$ + " (Browser only)")
editbox!.setAttribute("step","60"); rem ' hh:mm
editbox!.setAttribute("step","1"); rem ' hh:mm:ss
editbox!.setAttribute("step","0.001"); rem ' hh:mm:ss.xxx

window!.addStaticText(900,0,320,100,25,"JavaScript:",$8000$)
intl! = window!.addStaticText(901,110,320,180,40,"",$$)

status! = window!.addStatusBar(99)

gosub setup_locale
gosub locale

process_events

eoj:
release

setup_locale:
    locale$ = stbl("!LOCALE")
    locales$ = stbl("!LOCALES")
    count = pos($0a$=locales$,1,0)
    pos = pos(stbl("!LOCALE")=locales$)
    index = pos($0a$=locales$(1,pos),1,0)
    print (sysgui)'listadd'(100,-1,count),locales$,'listsel'(100,index)
    dim locales$:"code["+str(count)+"]:c(1*=10)"
    locales$ = stbl("!LOCALES")
return

locale:
    Locale$ = stbl("!LOCALE",locales.code$[dec(ctrl(sysgui,100,2,context))+1])
    Locale! = Locale$
    token! = Locale!.split("_", 3)
    tokens = token!.length
    LanguageCode$ = "", CountryCode$ = "", VariantCode$ = ""
    if tokens > 0 then LanguageCode$ = token![0]
    if tokens > 1 then CountryCode$ = token![1]
    if tokens > 2 then VariantCode$ = token![2]
    Locale! = new java.util.Locale(languageCode$, countryCode$, variantCode$)
    print (sysgui)'title'(0,Locale!.getDisplayName()+" - INPUTT")
    DateMask$=stbl("!DATE"),DateMask=pos($00$=DateMask$),DateMask$=DateMask$(1,DateMask-1)
    inputd!.setLocale(Locale$)
    inputd!.setMask(DateMask$)
    inputd!.setValue(0)
    print (sysgui)'title'(401,DateMask$)
    print "!TIME=",stbl("!TIME")
    TimeMask$=stbl("!TIME"),TimeMask=pos($00$=TimeMask$),TimeMask$=TimeMask$(1,TimeMask-1)
    inputt!.setLocale(Locale$)
    inputt!.setMask(TimeMask$)
    inputt!.setValue(tim)
    print "BBjInputT::getValue =",inputt!.getValue()
    inpute!.setText(date(0,tim:"%Hz%mz%sz"))
    time$ = stbl("!TIME")+" "+date(0:TimeMask$)
    print (sysgui)'title'(99,Time$)
    print (sysgui)'title'(701,TimeMask$)

    locale$ = languageCode$
    if (len(variantCode$)) then
        temp$ = variantCode$
        if pos("#"=temp$)=1 then temp$ = temp$(2)
        locale$ = locale$ + "-" + temp$
    endif
    if (len(countryCode$)) then
        locale$ = locale$ + "-" + countryCode$
    endif

    print locale$

    timeStyle$ = iff(pos("%s"=TimeMask$),"medium","short")
    js$ = "dtf = new Intl.DateTimeFormat('"+locale$+"', { timeStyle: '"+timeStyle$+"' }); dtf.format(new Date());"
    intl!.setText("")
    intl!.setToolTipText(js$)
    js! = sysgui!.executeScript(js$)
    print js$," = ",js!
    if (js!=null()) then
        rem ' try without the variant code
        locale$ = languageCode$
        if (len(countryCode$)) then
            locale$ = locale$ + "-" + countryCode$
        endif
        print locale$
        js$ = "dtf = new Intl.DateTimeFormat('"+locale$+"', { timeStyle: '"+timeStyle$+"' }); dtf.format(new Date());"
        intl!.setToolTipText(js$)
        js! = sysgui!.executeScript(js$)
        print js$," = ",js!
    endif
    if (js!<>null()) then
        intl!.setText(js!)
    endif
return

edit:
    event! = sysgui!.getLastEvent()
    text$ = event!.getText()
    time = -1, time = time(text$,err=*next)
    if time < 0 then time$ = "!ERROR="+str(err)+" "+errmes(-1) else time$ = "TIM="+str(time)
    info$ = event!.getEventName()+" '"+text$+"' "+time$
    print info$
    print (sysgui)'title'(99,info$)
return

showDatePicker:
    inputd!.calendar()
return

showTimePicker:
    time = inputt!.getValue()
    mask$ = inputt!.getMask()
    time$ = ""
    if time>=0 then time$ = date(0,time,mask$)
    msg$ = str(time)+" "+time$
    print "BBjInputT::getValue: ",msg$

    rem 'i = msgbox(str(time)+" "+time$,0,"BBjInputT::getValue")
    inputt!.showTimePicker()
return

showWeeks:
    event! = sysgui!.getLastEvent()
    inputd!.setShowWeeks(event!.isChecked())
return

ClosedVersion History

  • BBj 24.00: BBjInputT::getLocale added.

See Also

BBjAPI

BBjSysGui

BBjControl

BBjWindow

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.