BBjHtmlEdit::getLocale

Description

In BBj 21.13 and higher, this method returns the UI Locale of a BBjHtmlEdit control.

Syntax

Return Value Method
string getLocale()

Parameters

None.

Return Value

Returns the UI Locale of a BBjHtmlEdit control.

Remarks

The set of available locales is defined by the underlying client implementation. See BBjHtmlEdit::getLocales.

Example

Copy

BBjHtmlEdit::getLocale Example

rem ' BBjHtmlEdit::getLocale
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
window! = sysgui!.addWindow(25,25,900,500,"BBjHtmlEdit",$00090083$)
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setCallback(window!.ON_RESIZE,"resize")
rem ' $0001$ = disabled, $0010$ = invisible
rem ' $0002$ = minimized toolbar, $0004$ = basic toolbar
flags$ = $0000$
basic = 0, minimized = 0
if minimized then flags$ = ior(flags$,$0002$)
if basic then flags$ = ior(flags$,$0004$)
text$ = "<html><head><style>p{margin:0;padding:0;}</style><title>BASIS</title></head><body>"
img$ = "https://www.basis.cloud/sites/basis.com/files/images/BusJGBetter.jpg"
text$ = text$ + "<img src="""+img$+""">"
url$ = "https://documentation.basis.cloud/BASISHelp/WebHelp/bbjobjects/Window/bbjhtmledit/BBjHtmlEdit.htm"
text$ = text$ + "<p>This is a <a href="""+url$+""">BBjHtmlEdit</a>."
text$ = text$ + "<p>English color colour sample."
text$ = text$ + "<p>Das ist deutsch."
text$ = text$ + "<p>C'est du français."
text$ = text$ + "<p>Esto es español."
text$ = text$ + "</body></html>"
rem goto oops
text = unt
open (text,err=oops)"htmledit.html"
readrecord (text,siz=999999)text$
close (unt)
oops:
client = 0
if info(3,6)<>"5" and info(3,6)<>"6" then
   client = msgbox("BBjHtmlEdit Client",7+32+512,"BBjHtmlEdit","Swing","JavaFX","Chromium")
   switch client
      case 1; rem ' Swing
         print stbl("!OPTIONS","CHROMIUM_HTMLEDIT=FALSE")
         print stbl("!OPTIONS","JAVAFX_HTMLEDIT=FALSE")
         break
      case 2; rem ' JavaFX
         print stbl("!OPTIONS","CHROMIUM_HTMLEDIT=FALSE")
         print stbl("!OPTIONS","JAVAFX_HTMLEDIT=TRUE")
         break
      case 3; rem ' Chromium
         print stbl("!OPTIONS","CHROMIUM_HTMLEDIT=TRUE")
         print stbl("!OPTIONS","JAVAFX_HTMLEDIT=TRUE")
         break
   swend
endif
htmledit! = window!.addHtmlEdit(100,25,75,850,400,text$,flags$)
print "getClientType: ",htmledit!.getClientType()
print "getClientVersion: ",htmledit!.getClientVersion()
title$ = window!.getTitle() + " " + htmledit!.getClientType() + " " + htmledit!.getClientVersion()
window!.setTitle(title$)
htmledit!.setCallback(htmledit!.ON_PAGE_LOADED,"page")
htmledit!.setCallback(htmledit!.ON_EDIT_MODIFY,"modify")
htmledit!.setCallback(htmledit!.ON_GAINED_FOCUS,"event")
htmledit!.setCallback(htmledit!.ON_LOST_FOCUS,"event")
htmledit!.setCallback(htmledit!.ON_MOUSE_ENTER,"event")
htmledit!.setCallback(htmledit!.ON_MOUSE_EXIT,"event")
htmledit!.setCallback(htmledit!.ON_POPUP_REQUEST,"event")
htmledit!.setCallback(htmledit!.ON_RIGHT_MOUSE_DOWN,"event")
font = iff(info(3,6)="5" or info(3,6)="6",11,8)
font! = sysgui!.makeFont("SansSerif",font,BBjFont.BOLD)
clientfilesystem! = null()
clientfilesystem! = bbjapi().getThinClient(err=*next).getClientFileSystem(err=*next)
flags$ = iff(clientfilesystem!=null(),$0001$,$0000$)
clientfile! = window!.addButton(101,25,25,120,25,"Open Client File",flags$)
clientfile!.setFont(font!)
clientfile!.setCallback(clientfile!.ON_BUTTON_PUSH,"clientfile")
serverfile! = window!.addButton(102,150,25,120,25,"Open Server File",$$)
serverfile!.setFont(font!)
serverfile!.setCallback(serverfile!.ON_BUTTON_PUSH,"serverfile")
newHtml! = window!.addButton(103,275,25,120,25,"New HTML Doc",$$)
newHtml!.setFont(font!)
newHtml!.setCallback(newHtml!.ON_BUTTON_PUSH,"newHtml")
newText! = window!.addButton(104,400,25,120,25,"New Text Doc",$$)
newText!.setFont(font!)
newText!.setCallback(newText!.ON_BUTTON_PUSH,"newText")
getText! = window!.addButton(105,525,25,120,25,"getText (HTML)",$$)
getText!.setFont(font!)
getText!.setCallback(getText!.ON_BUTTON_PUSH,"getText")
getPlainText! = window!.addButton(106,650,25,120,25,"getPlainText",$$)
getPlainText!.setFont(font!)
getPlainText!.setCallback(getPlainText!.ON_BUTTON_PUSH,"getPlainText")
getImage! = window!.addButton(107,775,25,120,25,"getImage",$$)
getImage!.setFont(font!)
getImage!.setCallback(getImage!.ON_BUTTON_PUSH,"getImage")
setLocale! = window!.addListButton(108,25,50,120,425,"",$0000$)
locales! = htmledit!.getLocales()
if locales!.size() = 0 then
   setLocale!.setText("en_US")
else
   setLocale!.insertItems(-1,locales!)
endif
locale$ = htmledit!.getLocale()
setLocale!.setToolTipText("setLocale")
setLocale!.setCallback(setLocale!.ON_LIST_SELECT,"setLocale")
htmledit!.setLocale(stbl("!LOCALE"))
spellChecked! = window!.addCheckBox(109,150,50,120,25,"Spell Checked",$$)
spellChecked!.setToolTipText("setSpellChecked")
spellChecked!.setCallback(spellChecked!.ON_CHECK_ON,"spellCheckedOn")
spellChecked!.setCallback(spellChecked!.ON_CHECK_OFF,"spellCheckedOff")
setSpellCheckLanguage! = window!.addListButton(110,275,50,120,425,"",$0000$)
languages! = htmledit!.getAvailableSpellCheckLanguages()
if languages!.size() = 0 then
   setSpellCheckLanguage!.setText("en_US")
else
   setSpellCheckLanguage!.insertItems(-1,languages!)
endif
setSpellCheckLanguage!.setToolTipText("setSpellCheckLanguage")
setSpellCheckLanguage!.setCallback(setSpellCheckLanguage!.ON_LIST_SELECT,"setSpellCheckLanguage")
window!.setVisible(1)
showText = sysgui!.getAvailableContext()
isDirty = 0
print htmledit!.getCharset()
process_events

eoj:
release

setLocale:
  event! = sysgui!.getLastEvent()
  locale$ = event!.getSelectedItem()
  htmledit!.setLocale(locale$)
  print "getLocale ",htmledit!.getLocale()
return

spellCheckedOn:
  htmledit!.setSpellChecked(1)
  print "isSpellChecked ",htmledit!.isSpellChecked()
return

spellCheckedOff:
  htmledit!.setSpellChecked(0)
  print "isSpellChecked ",htmledit!.isSpellChecked()
return

setSpellCheckLanguage:
  event! = sysgui!.getLastEvent()
  language$ = event!.getSelectedItem()
  htmledit!.setSpellCheckLanguage(language$)
  print "getSpellCheckLanguage ",htmledit!.getSpellCheckLanguage()
  print "getAvailableSpellCheckLanguages ",htmledit!.getAvailableSpellCheckLanguages()
return

page:
  gosub event
  rem i = msgbox(str(event!.getText()),0,event!.getEventName())
  if isDirty then
     text$ = htmledit!.getPlainText()
     title$ = "BBjHtmlEdit::getPlainText"
     isDirty = 0
     gosub showText
  else
     htmledit!.focus()
  endif
return

resize:
  gosub event
  width = event!.getWidth() - 50
  height = event!.getHeight() - 100
  htmledit!.setSize(width,height)
  print width,height
  htmledit!.focus()
return

event:
  event! = sysgui!.getLastEvent()
  print event!.getEventName()," ",event!.getControl()
return

clientfile:
  filter$ = "All Files (*.*)"+$0a$+"*.*"
  filter$ = filter$ + $0a$ + "HTML"+$0a$+"*.htm;*.html"
  filter$ = filter$ + $0a$ + "Text" + $0a$+"*.txt;*.src"
  clientfile$ = fileopen("Open Client File","","","",filter$,mode="client")
  if pos("::"=clientfile$) then return
  clientfile! = clientfilesystem!.getClientFile(clientfile$)
  serverfile$ = clientfile!.copyFromClient()
  serverfile = unt
  open (serverfile,err=*return)serverfile$
  bytes = dec(fin(serverfile)(1,4))
  text$ = ""
  if bytes then readrecord (serverfile,siz=bytes)text$
  close (serverfile)
  if fnIsText(clientfile$,text$) then
     htmledit!.setPlainText(text$); rem ' text
  else
     htmledit!.setText(text$); rem ' html
  endif
return

serverfile:
  filter$ = "All Files (*.*)"+$0a$+"*.*"
  filter$ = filter$ + $0a$ + "HTML"+$0a$+"*.htm;*.html"
  filter$ = filter$ + $0a$ + "Text" + $0a$+"*.txt;*.src"
  serverfile$ = fileopen("Open Server File","","","",filter$,mode="server,style=style")
  if pos("::"=serverfile$) then return
  serverfile = unt
  open (serverfile,err=*return)serverfile$
  bytes = dec(fin(serverfile)(1,4))
  text$ = ""
  if bytes then readrecord (serverfile,siz=bytes)text$
  close (serverfile)
  if fnIsText(serverfile$,text$) then
     htmledit!.setPlainText(text$); rem ' text
  else
     htmledit!.setText(text$); rem ' html
  endif
return

newHtml:
  new$ = "<html><head><style>p{margin:0;padding:0;}</style></head><body></body></html>"
  htmledit!.setText(new$)
return

newText:
  htmledit!.setPlainText(new String($000a00a0000a$,"UTF-16"))
return

getText:
  text$ = htmledit!.getText()
  title$ = "BBjHtmlEdit::getText"
  gosub showText
return

getPlainText:
  if isDirty then return
  isDirty = htmledit!.isDirty()
  if isDirty then return
  text$ = htmledit!.getPlainText()
System.err.println(hta(text$))
  title$ = "BBjHtmlEdit::getPlainText"
  gosub showText
return

getImage:
  image = unt
  format$ = "png"
  image! = htmledit!.getImage()
  image$ = image!.getBytes(format$)
  path$ = System.getProperty("user.home")+"/Desktop/"
  open (image,mode="O_CREATE,O_TRUNC")path$+"html.png"
  writerecord (image)image$
  close (image)
return

showText:
  gosub closeShowText
  x = window!.getX() + 25
  y = window!.getY() + 25
  w = window!.getWidth()
  h = window!.getHeight()
  showText! = sysgui!.addWindow(showText,x,y,w,h,title$,$000b0003$)
  showText!.setCallback(showText!.ON_RESIZE,"resizeShowText")
  showText!.setCallback(showText!.ON_CLOSE,"closeShowText")
  cedit! = showText!.addCEdit(101,0,0,w,h,text$,$0182$)
return

resizeShowText:
  event! = sysgui!.getLastEvent()
  cedit!.setSize(event!.getWidth(),event!.getHeight())
return

closeShowText:
  if showText!<>null() then showText!.destroy(err=*next); showText! = null()
return

def fnIsText(_f$,_t$)
  rem ' treat this file (filename = _f$, contents = _t$) as plain text?
  rem ' this can be whatever combination of tests works for you.
  print "fnIsText ",_f$," (bytes=",str(len(_t$)),"): ",
  if pos("<html>"=cvs(_t$,8))=1 then print "<html> = html"; return 0
  _f$ = cvs(_f$,8); rem ' lowercase
  if pos(".html"=_f$,-1)=len(_f$)-4 then print ".html = html"; return 0
  if pos(".htm"=_f$,-1)=len(_f$)-3 then print ".htm = html"; return 0
  if pos(".txt"=_f$,-1)=len(_f$)-3 then print ".txt = text"; return 1
  if pos(".src"=_f$,-1)=len(_f$)-3 then print ".src = text"; return 1
  if pos(".properties"=_f$,-1)=len(_f$)-10 then print ".properties = text"; return 1
  print "default to text"; return 1; rem ' pick a default
fnend

modify:
  event! = sysgui!.getLastEvent()
  print event!.getEventName()," ",event!.getText()
return

See Also

BBjAPI

BBjSysGui

BBjControl

BBjWindow

BBjHtmlEdit::getLocales

BBjHtmlEdit::setLocale

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