Grammalecte  Hex Artifact Content

Artifact 8b30bb88f92abc8c3cdf56aa5c26542fdef89e90974d641fc0afae23fdf6f1fc:


0000: 23 20 2d 2a 2d 20 63 6f 64 69 6e 67 3a 20 75 74  # -*- coding: ut
0010: 66 38 20 2d 2a 2d 0a 23 20 46 72 65 6e 63 68 20  f8 -*-.# French 
0020: 44 69 63 74 69 6f 6e 61 72 79 20 53 77 69 74 63  Dictionary Switc
0030: 68 65 72 0a 23 20 62 79 20 4f 6c 69 76 69 65 72  her.# by Olivier
0040: 20 52 2e 0a 23 20 4c 69 63 65 6e 73 65 3a 20 4d   R..# License: M
0050: 50 4c 20 32 0a 0a 69 6d 70 6f 72 74 20 75 6e 6f  PL 2..import uno
0060: 68 65 6c 70 65 72 0a 69 6d 70 6f 72 74 20 75 6e  helper.import un
0070: 6f 0a 69 6d 70 6f 72 74 20 73 79 73 0a 69 6d 70  o.import sys.imp
0080: 6f 72 74 20 72 65 0a 23 69 6d 70 6f 72 74 20 6f  ort re.#import o
0090: 73 2e 70 61 74 68 0a 0a 66 72 6f 6d 20 63 6f 6d  s.path..from com
00a0: 2e 73 75 6e 2e 73 74 61 72 2e 74 61 73 6b 20 69  .sun.star.task i
00b0: 6d 70 6f 72 74 20 58 4a 6f 62 45 78 65 63 75 74  mport XJobExecut
00c0: 6f 72 0a 66 72 6f 6d 20 63 6f 6d 2e 73 75 6e 2e  or.from com.sun.
00d0: 73 74 61 72 2e 61 77 74 20 69 6d 70 6f 72 74 20  star.awt import 
00e0: 58 41 63 74 69 6f 6e 4c 69 73 74 65 6e 65 72 0a  XActionListener.
00f0: 66 72 6f 6d 20 63 6f 6d 2e 73 75 6e 2e 73 74 61  from com.sun.sta
0100: 72 2e 61 77 74 20 69 6d 70 6f 72 74 20 57 69 6e  r.awt import Win
0110: 64 6f 77 44 65 73 63 72 69 70 74 6f 72 0a 66 72  dowDescriptor.fr
0120: 6f 6d 20 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e  om com.sun.star.
0130: 61 77 74 2e 57 69 6e 64 6f 77 43 6c 61 73 73 20  awt.WindowClass 
0140: 69 6d 70 6f 72 74 20 4d 4f 44 41 4c 54 4f 50 0a  import MODALTOP.
0150: 66 72 6f 6d 20 63 6f 6d 2e 73 75 6e 2e 73 74 61  from com.sun.sta
0160: 72 2e 61 77 74 2e 56 63 6c 57 69 6e 64 6f 77 50  r.awt.VclWindowP
0170: 65 65 72 41 74 74 72 69 62 75 74 65 20 69 6d 70  eerAttribute imp
0180: 6f 72 74 20 4f 4b 2c 20 4f 4b 5f 43 41 4e 43 45  ort OK, OK_CANCE
0190: 4c 2c 20 59 45 53 5f 4e 4f 2c 20 59 45 53 5f 4e  L, YES_NO, YES_N
01a0: 4f 5f 43 41 4e 43 45 4c 2c 20 52 45 54 52 59 5f  O_CANCEL, RETRY_
01b0: 43 41 4e 43 45 4c 2c 20 44 45 46 5f 4f 4b 2c 20  CANCEL, DEF_OK, 
01c0: 44 45 46 5f 43 41 4e 43 45 4c 2c 20 44 45 46 5f  DEF_CANCEL, DEF_
01d0: 52 45 54 52 59 2c 20 44 45 46 5f 59 45 53 2c 20  RETRY, DEF_YES, 
01e0: 44 45 46 5f 4e 4f 0a 66 72 6f 6d 20 63 6f 6d 2e  DEF_NO.from com.
01f0: 73 75 6e 2e 73 74 61 72 2e 62 65 61 6e 73 20 69  sun.star.beans i
0200: 6d 70 6f 72 74 20 50 72 6f 70 65 72 74 79 56 61  mport PropertyVa
0210: 6c 75 65 0a 0a 23 20 58 52 61 79 20 2d 20 41 50  lue..# XRay - AP
0220: 49 20 65 78 70 6c 6f 72 65 72 0a 66 72 6f 6d 20  I explorer.from 
0230: 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 75 6e 6f  com.sun.star.uno
0240: 20 69 6d 70 6f 72 74 20 52 75 6e 74 69 6d 65 45   import RuntimeE
0250: 78 63 65 70 74 69 6f 6e 20 61 73 20 5f 72 74 65  xception as _rte
0260: 78 0a 0a 64 65 66 20 78 72 61 79 28 6d 79 4f 62  x..def xray(myOb
0270: 6a 65 63 74 29 3a 0a 20 20 20 20 74 72 79 3a 0a  ject):.    try:.
0280: 20 20 20 20 20 20 20 20 73 6d 20 3d 20 75 6e 6f          sm = uno
0290: 2e 67 65 74 43 6f 6d 70 6f 6e 65 6e 74 43 6f 6e  .getComponentCon
02a0: 74 65 78 74 28 29 2e 53 65 72 76 69 63 65 4d 61  text().ServiceMa
02b0: 6e 61 67 65 72 0a 20 20 20 20 20 20 20 20 6d 73  nager.        ms
02c0: 70 66 20 3d 20 73 6d 2e 63 72 65 61 74 65 49 6e  pf = sm.createIn
02d0: 73 74 61 6e 63 65 57 69 74 68 43 6f 6e 74 65 78  stanceWithContex
02e0: 74 28 22 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e  t("com.sun.star.
02f0: 73 63 72 69 70 74 2e 70 72 6f 76 69 64 65 72 2e  script.provider.
0300: 4d 61 73 74 65 72 53 63 72 69 70 74 50 72 6f 76  MasterScriptProv
0310: 69 64 65 72 46 61 63 74 6f 72 79 22 2c 20 75 6e  iderFactory", un
0320: 6f 2e 67 65 74 43 6f 6d 70 6f 6e 65 6e 74 43 6f  o.getComponentCo
0330: 6e 74 65 78 74 28 29 29 0a 20 20 20 20 20 20 20  ntext()).       
0340: 20 73 63 72 69 70 74 50 72 6f 20 3d 20 6d 73 70   scriptPro = msp
0350: 66 2e 63 72 65 61 74 65 53 63 72 69 70 74 50 72  f.createScriptPr
0360: 6f 76 69 64 65 72 28 22 22 29 0a 20 20 20 20 20  ovider("").     
0370: 20 20 20 78 53 63 72 69 70 74 20 3d 20 73 63 72     xScript = scr
0380: 69 70 74 50 72 6f 2e 67 65 74 53 63 72 69 70 74  iptPro.getScript
0390: 28 22 76 6e 64 2e 73 75 6e 2e 73 74 61 72 2e 73  ("vnd.sun.star.s
03a0: 63 72 69 70 74 3a 58 72 61 79 54 6f 6f 6c 2e 5f  cript:XrayTool._
03b0: 4d 61 69 6e 2e 58 72 61 79 3f 6c 61 6e 67 75 61  Main.Xray?langua
03c0: 67 65 3d 42 61 73 69 63 26 6c 6f 63 61 74 69 6f  ge=Basic&locatio
03d0: 6e 3d 61 70 70 6c 69 63 61 74 69 6f 6e 22 29 0a  n=application").
03e0: 20 20 20 20 20 20 20 20 78 53 63 72 69 70 74 2e          xScript.
03f0: 69 6e 76 6f 6b 65 28 28 6d 79 4f 62 6a 65 63 74  invoke((myObject
0400: 2c 29 2c 20 28 29 2c 20 28 29 29 0a 20 20 20 20  ,), (), ()).    
0410: 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 65      return.    e
0420: 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 72  xcept:.        r
0430: 61 69 73 65 20 5f 72 74 65 78 28 22 5c 6e 42 61  aise _rtex("\nBa
0440: 73 69 63 20 6c 69 62 72 61 72 79 20 58 72 61 79  sic library Xray
0450: 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65   is not installe
0460: 64 22 2c 20 75 6e 6f 2e 67 65 74 43 6f 6d 70 6f  d", uno.getCompo
0470: 6e 65 6e 74 43 6f 6e 74 65 78 74 28 29 29 0a 23  nentContext()).#
0480: 20 45 4e 44 20 58 72 61 79 0a 0a 44 45 42 55 47   END Xray..DEBUG
0490: 20 3d 20 46 61 6c 73 65 0a 0a 69 66 20 44 45 42   = False..if DEB
04a0: 55 47 20 61 6e 64 20 73 79 73 2e 70 6c 61 74 66  UG and sys.platf
04b0: 6f 72 6d 2e 73 74 61 72 74 73 77 69 74 68 28 27  orm.startswith('
04c0: 77 69 6e 27 29 3a 0a 20 20 20 20 69 6d 70 6f 72  win'):.    impor
04d0: 74 20 63 6f 64 65 63 73 0a 20 20 20 20 73 79 73  t codecs.    sys
04e0: 2e 73 74 64 6f 75 74 20 3d 20 63 6f 64 65 63 73  .stdout = codecs
04f0: 2e 6f 70 65 6e 28 22 43 3a 5c 5f 6d 75 6c 74 69  .open("C:\_multi
0500: 64 69 63 74 5f 73 74 64 6f 75 74 2e 74 78 74 22  dict_stdout.txt"
0510: 2c 20 22 77 22 2c 20 22 75 74 66 2d 38 22 29 0a  , "w", "utf-8").
0520: 0a 64 65 66 20 68 61 6e 64 6c 65 45 78 63 65 70  .def handleExcep
0530: 74 69 6f 6e 20 28 63 74 78 3d 4e 6f 6e 65 29 3a  tion (ctx=None):
0540: 0a 20 20 20 20 69 6d 70 6f 72 74 20 74 72 61 63  .    import trac
0550: 65 62 61 63 6b 0a 20 20 20 20 27 27 27 44 69 73  eback.    '''Dis
0560: 70 6c 61 79 20 65 78 63 65 70 74 69 6f 6e 20 69  play exception i
0570: 6e 20 61 20 6d 65 73 73 61 67 65 20 64 69 61 6c  n a message dial
0580: 6f 67 27 27 27 0a 20 20 20 20 73 20 3d 20 27 5c  og'''.    s = '\
0590: 6e 27 2e 6a 6f 69 6e 28 74 72 61 63 65 62 61 63  n'.join(tracebac
05a0: 6b 2e 66 6f 72 6d 61 74 5f 65 78 63 65 70 74 69  k.format_excepti
05b0: 6f 6e 28 73 79 73 2e 65 78 63 5f 74 79 70 65 2c  on(sys.exc_type,
05c0: 20 73 79 73 2e 65 78 63 5f 76 61 6c 75 65 2c 20   sys.exc_value, 
05d0: 73 79 73 2e 65 78 63 5f 74 72 61 63 65 62 61 63  sys.exc_tracebac
05e0: 6b 29 29 0a 20 20 20 20 69 66 20 6e 6f 74 20 73  k)).    if not s
05f0: 79 73 2e 70 6c 61 74 66 6f 72 6d 2e 73 74 61 72  ys.platform.star
0600: 74 73 77 69 74 68 28 27 77 69 6e 27 29 3a 0a 20  tswith('win'):. 
0610: 20 20 20 20 20 20 20 23 20 61 6c 73 6f 20 70 72         # also pr
0620: 69 6e 74 20 74 72 61 63 65 20 6f 6e 20 73 74 64  int trace on std
0630: 6f 75 74 2f 73 74 64 65 72 72 20 6f 6e 20 6e 6f  out/stderr on no
0640: 6e 2d 57 69 6e 64 6f 77 73 20 70 6c 61 74 66 6f  n-Windows platfo
0650: 72 6d 0a 20 20 20 20 20 20 20 20 74 72 61 63 65  rm.        trace
0660: 62 61 63 6b 2e 70 72 69 6e 74 5f 65 78 63 28 29  back.print_exc()
0670: 0a 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20  .    else:.     
0680: 20 20 20 23 20 6e 6f 20 64 65 66 61 75 6c 74 20     # no default 
0690: 73 74 64 6f 75 74 2f 73 74 64 65 72 72 20 6f 6e  stdout/stderr on
06a0: 20 57 69 6e 64 6f 77 73 0a 20 20 20 20 20 20 20   Windows.       
06b0: 20 70 72 69 6e 74 28 73 29 0a 20 20 20 20 0a 20   print(s).    . 
06c0: 20 20 20 69 66 20 6e 6f 74 20 63 74 78 3a 0a 20     if not ctx:. 
06d0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20         return.  
06e0: 20 20 78 53 76 4d 67 72 20 3d 20 63 74 78 2e 53    xSvMgr = ctx.S
06f0: 65 72 76 69 63 65 4d 61 6e 61 67 65 72 0a 20 20  erviceManager.  
0700: 20 20 78 44 65 73 6b 74 6f 70 20 3d 20 78 53 76    xDesktop = xSv
0710: 4d 67 72 2e 63 72 65 61 74 65 49 6e 73 74 61 6e  Mgr.createInstan
0720: 63 65 57 69 74 68 43 6f 6e 74 65 78 74 28 27 63  ceWithContext('c
0730: 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 66 72 61 6d  om.sun.star.fram
0740: 65 2e 44 65 73 6b 74 6f 70 27 2c 20 63 74 78 29  e.Desktop', ctx)
0750: 0a 20 20 20 20 78 44 6f 63 20 3d 20 78 44 65 73  .    xDoc = xDes
0760: 6b 74 6f 70 2e 67 65 74 43 75 72 72 65 6e 74 43  ktop.getCurrentC
0770: 6f 6d 70 6f 6e 65 6e 74 28 29 0a 20 20 20 20 78  omponent().    x
0780: 57 69 6e 64 6f 77 20 3d 20 78 44 6f 63 2e 43 75  Window = xDoc.Cu
0790: 72 72 65 6e 74 43 6f 6e 74 72 6f 6c 6c 65 72 2e  rrentController.
07a0: 46 72 61 6d 65 2e 43 6f 6e 74 61 69 6e 65 72 57  Frame.ContainerW
07b0: 69 6e 64 6f 77 0a 20 20 20 20 4d 65 73 73 61 67  indow.    Messag
07c0: 65 42 6f 78 28 78 57 69 6e 64 6f 77 2c 20 73 2c  eBox(xWindow, s,
07d0: 20 27 45 78 63 65 70 74 69 6f 6e 27 2c 20 27 65   'Exception', 'e
07e0: 72 72 6f 72 62 6f 78 27 29 0a 0a 20 20 20 20 0a  rrorbox')..    .
07f0: 64 65 66 20 4d 65 73 73 61 67 65 42 6f 78 20 28  def MessageBox (
0800: 78 50 61 72 65 6e 74 57 69 6e 2c 20 73 4d 73 67  xParentWin, sMsg
0810: 2c 20 73 54 69 74 6c 65 2c 20 73 42 6f 78 54 79  , sTitle, sBoxTy
0820: 70 65 3d 22 6d 65 73 73 62 6f 78 22 2c 20 4d 73  pe="messbox", Ms
0830: 67 42 75 74 74 6f 6e 73 3d 4f 4b 29 3a 0a 20 20  gButtons=OK):.  
0840: 20 20 69 66 20 73 42 6f 78 54 79 70 65 20 6e 6f    if sBoxType no
0850: 74 20 69 6e 20 28 22 6d 65 73 73 62 6f 78 22 2c  t in ("messbox",
0860: 20 22 69 6e 66 6f 62 6f 78 22 2c 20 22 65 72 72   "infobox", "err
0870: 6f 72 62 6f 78 22 2c 20 22 77 61 72 6e 69 6e 67  orbox", "warning
0880: 62 6f 78 22 2c 20 22 71 75 65 72 79 62 6f 78 22  box", "querybox"
0890: 29 3a 0a 20 20 20 20 20 20 20 20 73 42 6f 78 54  ):.        sBoxT
08a0: 79 70 65 20 3d 20 22 6d 65 73 73 62 6f 78 22 0a  ype = "messbox".
08b0: 0a 20 20 20 20 23 20 77 69 6e 64 6f 77 20 70 72  .    # window pr
08c0: 6f 70 65 72 74 69 65 73 0a 20 20 20 20 61 44 65  operties.    aDe
08d0: 73 63 72 69 70 74 6f 72 20 3d 20 57 69 6e 64 6f  scriptor = Windo
08e0: 77 44 65 73 63 72 69 70 74 6f 72 28 29 0a 20 20  wDescriptor().  
08f0: 20 20 61 44 65 73 63 72 69 70 74 6f 72 2e 54 79    aDescriptor.Ty
0900: 70 65 20 3d 20 4d 4f 44 41 4c 54 4f 50 0a 20 20  pe = MODALTOP.  
0910: 20 20 61 44 65 73 63 72 69 70 74 6f 72 2e 57 69    aDescriptor.Wi
0920: 6e 64 6f 77 53 65 72 76 69 63 65 4e 61 6d 65 20  ndowServiceName 
0930: 3d 20 73 42 6f 78 54 79 70 65 0a 20 20 20 20 61  = sBoxType.    a
0940: 44 65 73 63 72 69 70 74 6f 72 2e 50 61 72 65 6e  Descriptor.Paren
0950: 74 49 6e 64 65 78 20 3d 20 2d 31 0a 20 20 20 20  tIndex = -1.    
0960: 61 44 65 73 63 72 69 70 74 6f 72 2e 50 61 72 65  aDescriptor.Pare
0970: 6e 74 20 3d 20 78 50 61 72 65 6e 74 57 69 6e 0a  nt = xParentWin.
0980: 20 20 20 20 23 61 44 65 73 63 72 69 70 74 6f 72      #aDescriptor
0990: 2e 42 6f 75 6e 64 73 20 3d 20 52 65 63 74 61 6e  .Bounds = Rectan
09a0: 67 6c 65 28 29 0a 20 20 20 20 61 44 65 73 63 72  gle().    aDescr
09b0: 69 70 74 6f 72 2e 57 69 6e 64 6f 77 41 74 74 72  iptor.WindowAttr
09c0: 69 62 75 74 65 73 20 3d 20 4d 73 67 42 75 74 74  ibutes = MsgButt
09d0: 6f 6e 73 0a 0a 20 20 20 20 78 54 4b 20 3d 20 78  ons..    xTK = x
09e0: 50 61 72 65 6e 74 57 69 6e 2e 67 65 74 54 6f 6f  ParentWin.getToo
09f0: 6c 6b 69 74 28 29 0a 20 20 20 20 6d 73 67 62 6f  lkit().    msgbo
0a00: 78 20 3d 20 78 54 4b 2e 63 72 65 61 74 65 57 69  x = xTK.createWi
0a10: 6e 64 6f 77 28 61 44 65 73 63 72 69 70 74 6f 72  ndow(aDescriptor
0a20: 29 0a 20 20 20 20 6d 73 67 62 6f 78 2e 73 65 74  ).    msgbox.set
0a30: 4d 65 73 73 61 67 65 54 65 78 74 28 73 4d 73 67  MessageText(sMsg
0a40: 29 0a 20 20 20 20 6d 73 67 62 6f 78 2e 73 65 74  ).    msgbox.set
0a50: 43 61 70 74 69 6f 6e 54 65 78 74 28 73 54 69 74  CaptionText(sTit
0a60: 6c 65 29 0a 0a 20 20 20 20 72 65 74 75 72 6e 20  le)..    return 
0a70: 6d 73 67 62 6f 78 2e 65 78 65 63 75 74 65 28 29  msgbox.execute()
0a80: 0a 0a 4c 41 42 45 4c 44 49 43 54 20 3d 20 7b 20  ..LABELDICT = { 
0a90: 22 6d 6f 64 65 72 6e 65 22 3a 20 75 22 4d 6f 64  "moderne": u"Mod
0aa0: 65 72 6e 65 22 2c 20 22 63 6c 61 73 73 69 71 75  erne", "classiqu
0ab0: 65 22 3a 20 75 22 43 6c 61 73 73 69 71 75 65 22  e": u"Classique"
0ac0: 2c 20 22 72 65 66 6f 72 6d 65 31 39 39 30 22 3a  , "reforme1990":
0ad0: 20 75 22 52 c3 a9 66 6f 72 6d 65 20 31 39 39 30   u"R..forme 1990
0ae0: 22 2c 20 22 74 6f 75 74 65 73 76 61 72 69 61 6e  ", "toutesvarian
0af0: 74 65 73 22 3a 20 75 22 54 6f 75 74 65 73 20 76  tes": u"Toutes v
0b00: 61 72 69 61 6e 74 65 73 22 20 7d 0a 0a 63 6c 61  ariantes" }..cla
0b10: 73 73 20 46 72 65 6e 63 68 44 69 63 74 69 6f 6e  ss FrenchDiction
0b20: 61 72 79 53 77 69 74 63 68 65 72 20 28 75 6e 6f  arySwitcher (uno
0b30: 68 65 6c 70 65 72 2e 42 61 73 65 2c 20 58 41 63  helper.Base, XAc
0b40: 74 69 6f 6e 4c 69 73 74 65 6e 65 72 2c 20 58 4a  tionListener, XJ
0b50: 6f 62 45 78 65 63 75 74 6f 72 29 3a 0a 20 20 20  obExecutor):.   
0b60: 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 20 28 73   def __init__ (s
0b70: 65 6c 66 2c 20 63 74 78 29 3a 0a 20 20 20 20 20  elf, ctx):.     
0b80: 20 20 20 73 65 6c 66 2e 63 74 78 20 3d 20 63 74     self.ctx = ct
0b90: 78 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 78  x.        self.x
0ba0: 53 76 4d 67 72 20 3d 20 73 65 6c 66 2e 63 74 78  SvMgr = self.ctx
0bb0: 2e 53 65 72 76 69 63 65 4d 61 6e 61 67 65 72 0a  .ServiceManager.
0bc0: 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e          self.con
0bd0: 74 61 69 6e 65 72 20 3d 20 4e 6f 6e 65 0a 20 20  tainer = None.  
0be0: 20 20 20 20 20 20 73 65 6c 66 2e 64 69 61 6c 6f        self.dialo
0bf0: 67 20 3d 20 4e 6f 6e 65 0a 20 20 20 20 20 20 20  g = None.       
0c00: 20 73 65 6c 66 2e 78 52 42 5f 6d 20 3d 20 4e 6f   self.xRB_m = No
0c10: 6e 65 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e  ne.        self.
0c20: 78 52 42 5f 63 20 3d 20 4e 6f 6e 65 0a 20 20 20  xRB_c = None.   
0c30: 20 20 20 20 20 73 65 6c 66 2e 78 52 42 5f 72 20       self.xRB_r 
0c40: 3d 20 4e 6f 6e 65 0a 20 20 20 20 20 20 20 20 73  = None.        s
0c50: 65 6c 66 2e 78 52 42 5f 66 20 3d 20 4e 6f 6e 65  elf.xRB_f = None
0c60: 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 43  .        self.sC
0c70: 75 72 72 65 6e 74 44 69 63 20 3d 20 27 27 0a 20  urrentDic = ''. 
0c80: 20 20 20 20 20 20 20 73 65 6c 66 2e 73 53 65 6c         self.sSel
0c90: 65 63 74 65 64 44 69 63 20 3d 20 27 27 0a 0a 20  ectedDic = ''.. 
0ca0: 20 20 20 64 65 66 20 61 64 64 57 69 64 67 65 74     def addWidget
0cb0: 20 28 73 65 6c 66 2c 20 6e 61 6d 65 2c 20 77 74   (self, name, wt
0cc0: 79 70 65 2c 20 78 2c 20 79 2c 20 77 2c 20 68 2c  ype, x, y, w, h,
0cd0: 20 2a 2a 6b 77 61 72 67 73 29 3a 0a 20 20 20 20   **kwargs):.    
0ce0: 20 20 20 20 77 69 64 67 65 74 20 3d 20 73 65 6c      widget = sel
0cf0: 66 2e 64 69 61 6c 6f 67 2e 63 72 65 61 74 65 49  f.dialog.createI
0d00: 6e 73 74 61 6e 63 65 28 27 63 6f 6d 2e 73 75 6e  nstance('com.sun
0d10: 2e 73 74 61 72 2e 61 77 74 2e 55 6e 6f 43 6f 6e  .star.awt.UnoCon
0d20: 74 72 6f 6c 25 73 4d 6f 64 65 6c 27 20 25 20 77  trol%sModel' % w
0d30: 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 77 69  type).        wi
0d40: 64 67 65 74 2e 4e 61 6d 65 20 3d 20 6e 61 6d 65  dget.Name = name
0d50: 0a 20 20 20 20 20 20 20 20 77 69 64 67 65 74 2e  .        widget.
0d60: 50 6f 73 69 74 69 6f 6e 58 20 3d 20 78 0a 20 20  PositionX = x.  
0d70: 20 20 20 20 20 20 77 69 64 67 65 74 2e 50 6f 73        widget.Pos
0d80: 69 74 69 6f 6e 59 20 3d 20 79 0a 20 20 20 20 20  itionY = y.     
0d90: 20 20 20 77 69 64 67 65 74 2e 57 69 64 74 68 20     widget.Width 
0da0: 3d 20 77 0a 20 20 20 20 20 20 20 20 77 69 64 67  = w.        widg
0db0: 65 74 2e 48 65 69 67 68 74 20 3d 20 68 0a 20 20  et.Height = h.  
0dc0: 20 20 20 20 20 20 66 6f 72 20 6b 2c 20 77 20 69        for k, w i
0dd0: 6e 20 6b 77 61 72 67 73 2e 69 74 65 6d 73 28 29  n kwargs.items()
0de0: 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65  :.            se
0df0: 74 61 74 74 72 28 77 69 64 67 65 74 2c 20 6b 2c  tattr(widget, k,
0e00: 20 77 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66   w).        self
0e10: 2e 64 69 61 6c 6f 67 2e 69 6e 73 65 72 74 42 79  .dialog.insertBy
0e20: 4e 61 6d 65 28 6e 61 6d 65 2c 20 77 69 64 67 65  Name(name, widge
0e30: 74 29 0a 20 20 20 20 20 20 20 20 72 65 74 75 72  t).        retur
0e40: 6e 20 77 69 64 67 65 74 0a 0a 20 20 20 20 64 65  n widget..    de
0e50: 66 20 72 75 6e 20 28 73 65 6c 66 29 3a 0a 20 20  f run (self):.  
0e60: 20 20 20 20 20 20 23 20 77 68 61 74 20 69 73 20        # what is 
0e70: 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 63 74  the current dict
0e80: 69 6f 6e 61 72 79 0a 20 20 20 20 20 20 20 20 78  ionary.        x
0e90: 53 65 74 74 69 6e 67 73 20 3d 20 67 65 74 43 6f  Settings = getCo
0ea0: 6e 66 69 67 53 65 74 74 69 6e 67 28 22 2f 6f 72  nfigSetting("/or
0eb0: 67 2e 6f 70 65 6e 6f 66 66 69 63 65 2e 4f 66 66  g.openoffice.Off
0ec0: 69 63 65 2e 4c 69 6e 67 75 69 73 74 69 63 2f 53  ice.Linguistic/S
0ed0: 65 72 76 69 63 65 4d 61 6e 61 67 65 72 2f 44 69  erviceManager/Di
0ee0: 63 74 69 6f 6e 61 72 69 65 73 2f 48 75 6e 53 70  ctionaries/HunSp
0ef0: 65 6c 6c 44 69 63 5f 66 72 22 2c 20 54 72 75 65  ellDic_fr", True
0f00: 29 0a 20 20 20 20 20 20 20 20 78 4c 6f 63 61 74  ).        xLocat
0f10: 69 6f 6e 73 20 3d 20 78 53 65 74 74 69 6e 67 73  ions = xSettings
0f20: 2e 67 65 74 42 79 4e 61 6d 65 28 22 4c 6f 63 61  .getByName("Loca
0f30: 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20  tions").        
0f40: 6d 20 3d 20 72 65 2e 73 65 61 72 63 68 28 72 22  m = re.search(r"
0f50: 66 72 2d 28 5c 77 2a 29 5c 2e 28 3f 3a 64 69 63  fr-(\w*)\.(?:dic
0f60: 7c 61 66 66 29 22 2c 20 78 4c 6f 63 61 74 69 6f  |aff)", xLocatio
0f70: 6e 73 5b 30 5d 29 0a 20 20 20 20 20 20 20 20 73  ns[0]).        s
0f80: 65 6c 66 2e 73 43 75 72 72 65 6e 74 44 69 63 20  elf.sCurrentDic 
0f90: 3d 20 6d 2e 67 72 6f 75 70 28 31 29 0a 20 20 20  = m.group(1).   
0fa0: 20 0a 20 20 20 20 20 20 20 20 23 20 64 69 61 6c   .        # dial
0fb0: 6f 67 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e  og.        self.
0fc0: 64 69 61 6c 6f 67 20 3d 20 73 65 6c 66 2e 78 53  dialog = self.xS
0fd0: 76 4d 67 72 2e 63 72 65 61 74 65 49 6e 73 74 61  vMgr.createInsta
0fe0: 6e 63 65 57 69 74 68 43 6f 6e 74 65 78 74 28 27  nceWithContext('
0ff0: 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 61 77 74  com.sun.star.awt
1000: 2e 55 6e 6f 43 6f 6e 74 72 6f 6c 44 69 61 6c 6f  .UnoControlDialo
1010: 67 4d 6f 64 65 6c 27 2c 20 73 65 6c 66 2e 63 74  gModel', self.ct
1020: 78 29 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e  x).        self.
1030: 64 69 61 6c 6f 67 2e 57 69 64 74 68 20 3d 20 32  dialog.Width = 2
1040: 30 30 0a 20 20 20 20 20 20 20 20 73 65 6c 66 2e  00.        self.
1050: 64 69 61 6c 6f 67 2e 48 65 69 67 68 74 20 3d 20  dialog.Height = 
1060: 32 38 30 0a 20 20 20 20 20 20 20 20 73 65 6c 66  280.        self
1070: 2e 64 69 61 6c 6f 67 2e 54 69 74 6c 65 20 3d 20  .dialog.Title = 
1080: 75 22 4f 72 74 68 6f 67 72 61 70 68 65 20 66 72  u"Orthographe fr
1090: 61 6e c3 a7 61 69 73 65 22 0a 20 20 20 20 20 20  an..aise".      
10a0: 20 20 0a 20 20 20 20 20 20 20 20 23 20 62 6c 61    .        # bla
10b0: 62 6c 61 0a 20 20 20 20 20 20 20 20 73 53 75 62  bla.        sSub
10c0: 54 69 74 6c 65 20 3d 20 75 22 43 68 6f 69 73 69  Title = u"Choisi
10d0: 73 73 65 7a 20 75 6e 20 64 69 63 74 69 6f 6e 6e  ssez un dictionn
10e0: 61 69 72 65 22 0a 20 20 20 20 20 20 20 20 73 44  aire".        sD
10f0: 69 63 4c 61 62 65 6c 5f 6d 20 3d 20 75 22 e2 80  icLabel_m = u"..
1100: 9c 4d 6f 64 65 72 6e 65 e2 80 9d 22 0a 20 20 20  .Moderne...".   
1110: 20 20 20 20 20 73 44 69 63 44 65 73 63 72 5f 6d       sDicDescr_m
1120: 20 3d 20 75 22 43 65 20 64 69 63 74 69 6f 6e 6e   = u"Ce dictionn
1130: 61 69 72 65 20 70 72 6f 70 6f 73 65 20 6c e2 80  aire propose l..
1140: 99 6f 72 74 68 6f 67 72 61 70 68 65 20 74 65 6c  .orthographe tel
1150: 6c 65 20 71 75 e2 80 99 65 6c 6c 65 20 65 73 74  le qu...elle est
1160: 20 c3 a9 63 72 69 74 65 20 61 75 6a 6f 75 72 64   ..crite aujourd
1170: e2 80 99 68 75 69 20 6c 65 20 70 6c 75 73 20 63  ...hui le plus c
1180: 6f 75 72 61 6d 6d 65 6e 74 2e 20 43 e2 80 99 65  ouramment. C...e
1190: 73 74 20 6c 65 20 64 69 63 74 69 6f 6e 6e 61 69  st le dictionnai
11a0: 72 65 20 72 65 63 6f 6d 6d 61 6e 64 c3 a9 20 73  re recommand.. s
11b0: 69 20 6c 65 20 66 72 61 6e c3 a7 61 69 73 20 6e  i le fran..ais n
11c0: e2 80 99 65 73 74 20 70 61 73 20 76 6f 74 72 65  ...est pas votre
11d0: 20 6c 61 6e 67 75 65 20 6d 61 74 65 72 6e 65 6c   langue maternel
11e0: 6c 65 20 6f 75 20 73 69 20 76 6f 75 73 20 6e 65  le ou si vous ne
11f0: 20 64 c3 a9 73 69 72 65 7a 20 71 75 e2 80 99 75   d..sirez qu...u
1200: 6e 65 20 73 65 75 6c 65 20 67 72 61 70 68 69 65  ne seule graphie
1210: 20 63 6f 72 72 65 63 74 65 20 70 61 72 20 6d 6f   correcte par mo
1220: 74 2e 22 0a 20 20 20 20 20 20 20 20 73 44 69 63  t.".        sDic
1230: 4c 61 62 65 6c 5f 63 20 3d 20 75 22 e2 80 9c 43  Label_c = u"...C
1240: 6c 61 73 73 69 71 75 65 e2 80 9d 20 28 72 65 63  lassique... (rec
1250: 6f 6d 6d 61 6e 64 c3 a9 29 22 0a 20 20 20 20 20  ommand..)".     
1260: 20 20 20 73 44 69 63 44 65 73 63 72 5f 63 20 3d     sDicDescr_c =
1270: 20 75 22 49 6c 20 73 e2 80 99 61 67 69 74 20 64   u"Il s...agit d
1280: 75 20 64 69 63 74 69 6f 6e 6e 61 69 72 65 20 e2  u dictionnaire .
1290: 80 9c 4d 6f 64 65 72 6e 65 e2 80 9d 2c 20 61 76  ..Moderne..., av
12a0: 65 63 20 64 65 73 20 67 72 61 70 68 69 65 73 20  ec des graphies 
12b0: 63 6c 61 73 73 69 71 75 65 73 20 65 6e 20 73 75  classiques en su
12c0: 73 2c 20 63 65 72 74 61 69 6e 65 73 20 65 6e 63  s, certaines enc
12d0: 6f 72 65 20 63 6f 6d 6d 75 6e c3 a9 6d 65 6e 74  ore commun..ment
12e0: 20 75 74 69 6c 69 73 c3 a9 65 73 2c 20 64 e2 80   utilis..es, d..
12f0: 99 61 75 74 72 65 73 20 64 c3 a9 73 75 c3 a8 74  .autres d..su..t
1300: 65 73 2e 20 43 e2 80 99 65 73 74 20 6c 65 20 64  es. C...est le d
1310: 69 63 74 69 6f 6e 6e 61 69 72 65 20 72 65 63 6f  ictionnaire reco
1320: 6d 6d 61 6e 64 c3 a9 20 73 69 20 6c 65 20 66 72  mmand.. si le fr
1330: 61 6e c3 a7 61 69 73 20 65 73 74 20 76 6f 74 72  an..ais est votr
1340: 65 20 6c 61 6e 67 75 65 20 6d 61 74 65 72 6e 65  e langue materne
1350: 6c 6c 65 2e 22 0a 20 20 20 20 20 20 20 20 73 44  lle.".        sD
1360: 69 63 4c 61 62 65 6c 5f 72 20 3d 20 75 22 e2 80  icLabel_r = u"..
1370: 9c 52 c3 a9 66 6f 72 6d 65 20 31 39 39 30 e2 80  .R..forme 1990..
1380: 9d 22 0a 20 20 20 20 20 20 20 20 73 44 69 63 44  .".        sDicD
1390: 65 73 63 72 5f 72 20 3d 20 75 22 41 76 65 63 20  escr_r = u"Avec 
13a0: 63 65 20 64 69 63 74 69 6f 6e 6e 61 69 72 65 2c  ce dictionnaire,
13b0: 20 73 65 75 6c 65 20 6c e2 80 99 6f 72 74 68 6f   seule l...ortho
13c0: 67 72 61 70 68 65 20 72 c3 a9 66 6f 72 6d c3 a9  graphe r..form..
13d0: 65 20 65 73 74 20 72 65 63 6f 6e 6e 75 65 2e 20  e est reconnue. 
13e0: 41 74 74 65 6e 64 75 20 71 75 65 20 62 6f 6e 20  Attendu que bon 
13f0: 6e 6f 6d 62 72 65 20 64 65 20 67 72 61 70 68 69  nombre de graphi
1400: 65 73 20 72 c3 a9 66 6f 72 6d c3 a9 65 73 20 73  es r..form..es s
1410: 6f 6e 74 20 63 6f 6e 73 69 64 c3 a9 72 c3 a9 65  ont consid..r..e
1420: 73 20 63 6f 6d 6d 65 20 65 72 72 6f 6e c3 a9 65  s comme erron..e
1430: 73 20 70 61 72 20 62 65 61 75 63 6f 75 70 2c 20  s par beaucoup, 
1440: 63 65 20 64 69 63 74 69 6f 6e 6e 61 69 72 65 20  ce dictionnaire 
1450: 65 73 74 20 64 c3 a9 63 6f 6e 73 65 69 6c 6c c3  est d..conseill.
1460: a9 2e 20 4c 65 73 20 67 72 61 70 68 69 65 73 20  .. Les graphies 
1470: 70 61 73 73 c3 a9 65 73 20 64 61 6e 73 20 6c e2  pass..es dans l.
1480: 80 99 75 73 61 67 65 20 73 6f 6e 74 20 64 c3 a9  ..usage sont d..
1490: 6a c3 a0 20 69 6e 63 6c 75 73 65 73 20 64 61 6e  j.. incluses dan
14a0: 73 20 6c 65 20 64 69 63 74 69 6f 6e 6e 61 69 72  s le dictionnair
14b0: 65 20 e2 80 9c 4d 6f 64 65 72 6e 65 e2 80 9d 2e  e ...Moderne....
14c0: 22 0a 20 20 20 20 20 20 20 20 73 44 69 63 4c 61  ".        sDicLa
14d0: 62 65 6c 5f 74 20 3d 20 75 22 e2 80 9c 54 6f 75  bel_t = u"...Tou
14e0: 74 65 73 20 76 61 72 69 61 6e 74 65 73 e2 80 9d  tes variantes...
14f0: 22 0a 20 20 20 20 20 20 20 20 73 44 69 63 44 65  ".        sDicDe
1500: 73 63 72 5f 74 20 3d 20 75 22 43 65 20 64 69 63  scr_t = u"Ce dic
1510: 74 69 6f 6e 6e 61 69 72 65 20 63 6f 6e 74 69 65  tionnaire contie
1520: 6e 74 20 6c 65 73 20 76 61 72 69 61 6e 74 65 73  nt les variantes
1530: 20 67 72 61 70 68 69 71 75 65 73 2c 20 63 6c 61   graphiques, cla
1540: 73 73 69 71 75 65 73 2c 20 72 c3 a9 66 6f 72 6d  ssiques, r..form
1550: c3 a9 65 73 2c 20 61 69 6e 73 69 20 71 75 65 20  ..es, ainsi que 
1560: 64 e2 80 99 61 75 74 72 65 73 20 70 6c 75 73 20  d...autres plus 
1570: 72 61 72 65 73 20 65 6e 63 6f 72 65 2e 20 43 65  rares encore. Ce
1580: 20 64 69 63 74 69 6f 6e 6e 61 69 72 65 20 65 73   dictionnaire es
1590: 74 20 64 c3 a9 63 6f 6e 73 65 69 6c 6c c3 a9 20  t d..conseill.. 
15a0: c3 a0 20 63 65 75 78 20 71 75 69 20 6e 65 20 63  .. ceux qui ne c
15b0: 6f 6e 6e 61 69 73 73 65 6e 74 20 70 61 73 20 74  onnaissent pas t
15c0: 72 c3 a8 73 20 62 69 65 6e 20 6c 61 20 6c 61 6e  r..s bien la lan
15d0: 67 75 65 20 66 72 61 6e c3 a7 61 69 73 65 2e 22  gue fran..aise."
15e0: 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20  .        .      
15f0: 20 20 23 20 77 69 64 67 65 74 73 0a 20 20 20 20    # widgets.    
1600: 20 20 20 20 70 61 64 64 69 6e 67 20 3d 20 31 30      padding = 10
1610: 0a 20 20 20 20 20 20 20 20 68 73 70 61 63 65 20  .        hspace 
1620: 3d 20 36 30 0a 20 20 20 20 20 20 20 20 70 6f 73  = 60.        pos
1630: 59 31 20 3d 20 32 30 3b 20 70 6f 73 59 32 20 3d  Y1 = 20; posY2 =
1640: 20 70 6f 73 59 31 20 2b 20 68 73 70 61 63 65 3b   posY1 + hspace;
1650: 20 70 6f 73 59 33 20 3d 20 70 6f 73 59 32 20 2b   posY3 = posY2 +
1660: 20 68 73 70 61 63 65 3b 20 70 6f 73 59 34 20 3d   hspace; posY4 =
1670: 20 70 6f 73 59 33 20 2b 20 68 73 70 61 63 65 3b   posY3 + hspace;
1680: 20 70 6f 73 59 35 20 3d 20 70 6f 73 59 34 20 2b   posY5 = posY4 +
1690: 20 68 73 70 61 63 65 3b 0a 20 20 20 20 20 20 20   hspace;.       
16a0: 20 77 77 69 64 74 68 20 3d 20 31 37 30 0a 20 20   wwidth = 170.  
16b0: 20 20 20 20 20 20 77 68 65 69 67 68 74 20 3d 20        wheight = 
16c0: 32 30 0a 20 20 20 20 20 20 20 20 77 77 69 64 74  20.        wwidt
16d0: 68 64 65 73 63 72 20 3d 20 31 37 30 0a 20 20 20  hdescr = 170.   
16e0: 20 20 20 20 20 77 68 65 69 67 68 74 64 65 73 63       wheightdesc
16f0: 72 20 3d 20 34 30 0a 20 20 20 20 20 20 20 20 0a  r = 40.        .
1700: 20 20 20 20 20 20 20 20 78 46 44 31 20 3d 20 75          xFD1 = u
1710: 6e 6f 2e 63 72 65 61 74 65 55 6e 6f 53 74 72 75  no.createUnoStru
1720: 63 74 28 22 63 6f 6d 2e 73 75 6e 2e 73 74 61 72  ct("com.sun.star
1730: 2e 61 77 74 2e 46 6f 6e 74 44 65 73 63 72 69 70  .awt.FontDescrip
1740: 74 6f 72 22 29 0a 20 20 20 20 20 20 20 20 78 46  tor").        xF
1750: 44 31 2e 48 65 69 67 68 74 20 3d 20 31 32 0a 20  D1.Height = 12. 
1760: 20 20 20 20 20 20 20 78 46 44 31 2e 4e 61 6d 65         xFD1.Name
1770: 20 3d 20 22 56 65 72 64 61 6e 61 22 0a 20 20 20   = "Verdana".   
1780: 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 78 46       .        xF
1790: 44 32 20 3d 20 75 6e 6f 2e 63 72 65 61 74 65 55  D2 = uno.createU
17a0: 6e 6f 53 74 72 75 63 74 28 22 63 6f 6d 2e 73 75  noStruct("com.su
17b0: 6e 2e 73 74 61 72 2e 61 77 74 2e 46 6f 6e 74 44  n.star.awt.FontD
17c0: 65 73 63 72 69 70 74 6f 72 22 29 0a 20 20 20 20  escriptor").    
17d0: 20 20 20 20 78 46 44 32 2e 48 65 69 67 68 74 20      xFD2.Height 
17e0: 3d 20 31 31 0a 20 20 20 20 20 20 20 20 78 46 44  = 11.        xFD
17f0: 32 2e 4e 61 6d 65 20 3d 20 22 56 65 72 64 61 6e  2.Name = "Verdan
1800: 61 22 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20  a".        .    
1810: 20 20 20 20 67 62 6d 20 3d 20 73 65 6c 66 2e 61      gbm = self.a
1820: 64 64 57 69 64 67 65 74 28 27 67 72 6f 75 70 62  ddWidget('groupb
1830: 6f 78 27 2c 20 27 47 72 6f 75 70 42 6f 78 27 2c  ox', 'GroupBox',
1840: 20 35 2c 20 35 2c 20 31 39 30 2c 20 32 35 30 2c   5, 5, 190, 250,
1850: 20 4c 61 62 65 6c 20 3d 20 73 53 75 62 54 69 74   Label = sSubTit
1860: 6c 65 2c 20 46 6f 6e 74 44 65 73 63 72 69 70 74  le, FontDescript
1870: 6f 72 20 3d 20 78 46 44 31 29 0a 20 20 20 20 20  or = xFD1).     
1880: 20 20 20 0a 20 20 20 20 20 20 20 20 23 20 4e 6f     .        # No
1890: 74 65 3a 20 74 68 65 20 6f 6e 6c 79 20 77 61 79  te: the only way
18a0: 20 74 6f 20 67 72 6f 75 70 20 52 61 64 69 6f 42   to group RadioB
18b0: 75 74 74 6f 6e 73 20 69 73 20 74 6f 20 63 72 65  uttons is to cre
18c0: 61 74 65 20 74 68 65 6d 20 73 75 63 63 65 73 73  ate them success
18d0: 69 76 65 6c 79 0a 20 20 20 20 20 20 20 20 72 62  ively.        rb
18e0: 6d 5f 6d 20 3d 20 73 65 6c 66 2e 61 64 64 57 69  m_m = self.addWi
18f0: 64 67 65 74 28 27 72 62 2d 6d 6f 64 65 72 6e 65  dget('rb-moderne
1900: 27 2c 20 27 52 61 64 69 6f 42 75 74 74 6f 6e 27  ', 'RadioButton'
1910: 2c 20 70 61 64 64 69 6e 67 2c 20 70 6f 73 59 31  , padding, posY1
1920: 2c 20 77 77 69 64 74 68 2c 20 77 68 65 69 67 68  , wwidth, wheigh
1930: 74 2c 20 4c 61 62 65 6c 20 3d 20 73 44 69 63 4c  t, Label = sDicL
1940: 61 62 65 6c 5f 6d 2c 20 46 6f 6e 74 44 65 73 63  abel_m, FontDesc
1950: 72 69 70 74 6f 72 20 3d 20 78 46 44 32 29 0a 20  riptor = xFD2). 
1960: 20 20 20 20 20 20 20 73 65 6c 66 2e 78 52 42 5f         self.xRB_
1970: 6d 20 3d 20 73 65 6c 66 2e 78 53 76 4d 67 72 2e  m = self.xSvMgr.
1980: 63 72 65 61 74 65 49 6e 73 74 61 6e 63 65 57 69  createInstanceWi
1990: 74 68 43 6f 6e 74 65 78 74 28 27 63 6f 6d 2e 73  thContext('com.s
19a0: 75 6e 2e 73 74 61 72 2e 61 77 74 2e 55 6e 6f 43  un.star.awt.UnoC
19b0: 6f 6e 74 72 6f 6c 52 61 64 69 6f 42 75 74 74 6f  ontrolRadioButto
19c0: 6e 27 2c 20 73 65 6c 66 2e 63 74 78 29 0a 20 20  n', self.ctx).  
19d0: 20 20 20 20 20 20 73 65 6c 66 2e 78 52 42 5f 6d        self.xRB_m
19e0: 2e 73 65 74 4d 6f 64 65 6c 28 72 62 6d 5f 6d 29  .setModel(rbm_m)
19f0: 0a 20 20 20 20 20 20 20 20 72 62 6d 5f 63 20 3d  .        rbm_c =
1a00: 20 73 65 6c 66 2e 61 64 64 57 69 64 67 65 74 28   self.addWidget(
1a10: 27 72 62 2d 63 6c 61 73 73 69 71 75 65 27 2c 20  'rb-classique', 
1a20: 27 52 61 64 69 6f 42 75 74 74 6f 6e 27 2c 20 70  'RadioButton', p
1a30: 61 64 64 69 6e 67 2c 20 70 6f 73 59 32 2c 20 77  adding, posY2, w
1a40: 77 69 64 74 68 2c 20 77 68 65 69 67 68 74 2c 20  width, wheight, 
1a50: 4c 61 62 65 6c 20 3d 20 73 44 69 63 4c 61 62 65  Label = sDicLabe
1a60: 6c 5f 63 2c 20 46 6f 6e 74 44 65 73 63 72 69 70  l_c, FontDescrip
1a70: 74 6f 72 20 3d 20 78 46 44 32 29 0a 20 20 20 20  tor = xFD2).    
1a80: 20 20 20 20 73 65 6c 66 2e 78 52 42 5f 63 20 3d      self.xRB_c =
1a90: 20 73 65 6c 66 2e 78 53 76 4d 67 72 2e 63 72 65   self.xSvMgr.cre
1aa0: 61 74 65 49 6e 73 74 61 6e 63 65 57 69 74 68 43  ateInstanceWithC
1ab0: 6f 6e 74 65 78 74 28 27 63 6f 6d 2e 73 75 6e 2e  ontext('com.sun.
1ac0: 73 74 61 72 2e 61 77 74 2e 55 6e 6f 43 6f 6e 74  star.awt.UnoCont
1ad0: 72 6f 6c 52 61 64 69 6f 42 75 74 74 6f 6e 27 2c  rolRadioButton',
1ae0: 20 73 65 6c 66 2e 63 74 78 29 0a 20 20 20 20 20   self.ctx).     
1af0: 20 20 20 73 65 6c 66 2e 78 52 42 5f 63 2e 73 65     self.xRB_c.se
1b00: 74 4d 6f 64 65 6c 28 72 62 6d 5f 63 29 0a 20 20  tModel(rbm_c).  
1b10: 20 20 20 20 20 20 72 62 6d 5f 72 20 3d 20 73 65        rbm_r = se
1b20: 6c 66 2e 61 64 64 57 69 64 67 65 74 28 27 72 62  lf.addWidget('rb
1b30: 2d 72 65 66 6f 72 6d 65 31 39 39 30 27 2c 20 27  -reforme1990', '
1b40: 52 61 64 69 6f 42 75 74 74 6f 6e 27 2c 20 70 61  RadioButton', pa
1b50: 64 64 69 6e 67 2c 20 70 6f 73 59 33 2c 20 77 77  dding, posY3, ww
1b60: 69 64 74 68 2c 20 77 68 65 69 67 68 74 2c 20 4c  idth, wheight, L
1b70: 61 62 65 6c 20 3d 20 73 44 69 63 4c 61 62 65 6c  abel = sDicLabel
1b80: 5f 72 2c 20 46 6f 6e 74 44 65 73 63 72 69 70 74  _r, FontDescript
1b90: 6f 72 20 3d 20 78 46 44 32 29 0a 20 20 20 20 20  or = xFD2).     
1ba0: 20 20 20 73 65 6c 66 2e 78 52 42 5f 72 20 3d 20     self.xRB_r = 
1bb0: 73 65 6c 66 2e 78 53 76 4d 67 72 2e 63 72 65 61  self.xSvMgr.crea
1bc0: 74 65 49 6e 73 74 61 6e 63 65 57 69 74 68 43 6f  teInstanceWithCo
1bd0: 6e 74 65 78 74 28 27 63 6f 6d 2e 73 75 6e 2e 73  ntext('com.sun.s
1be0: 74 61 72 2e 61 77 74 2e 55 6e 6f 43 6f 6e 74 72  tar.awt.UnoContr
1bf0: 6f 6c 52 61 64 69 6f 42 75 74 74 6f 6e 27 2c 20  olRadioButton', 
1c00: 73 65 6c 66 2e 63 74 78 29 0a 20 20 20 20 20 20  self.ctx).      
1c10: 20 20 73 65 6c 66 2e 78 52 42 5f 72 2e 73 65 74    self.xRB_r.set
1c20: 4d 6f 64 65 6c 28 72 62 6d 5f 72 29 0a 20 20 20  Model(rbm_r).   
1c30: 20 20 20 20 20 72 62 6d 5f 74 20 3d 20 73 65 6c       rbm_t = sel
1c40: 66 2e 61 64 64 57 69 64 67 65 74 28 27 72 62 2d  f.addWidget('rb-
1c50: 74 6f 75 74 65 73 76 61 72 69 61 6e 74 65 73 27  toutesvariantes'
1c60: 2c 20 27 52 61 64 69 6f 42 75 74 74 6f 6e 27 2c  , 'RadioButton',
1c70: 20 70 61 64 64 69 6e 67 2c 20 70 6f 73 59 34 2c   padding, posY4,
1c80: 20 77 77 69 64 74 68 2c 20 77 68 65 69 67 68 74   wwidth, wheight
1c90: 2c 20 4c 61 62 65 6c 20 3d 20 73 44 69 63 4c 61  , Label = sDicLa
1ca0: 62 65 6c 5f 74 2c 20 46 6f 6e 74 44 65 73 63 72  bel_t, FontDescr
1cb0: 69 70 74 6f 72 20 3d 20 78 46 44 32 29 0a 20 20  iptor = xFD2).  
1cc0: 20 20 20 20 20 20 73 65 6c 66 2e 78 52 42 5f 74        self.xRB_t
1cd0: 20 3d 20 73 65 6c 66 2e 78 53 76 4d 67 72 2e 63   = self.xSvMgr.c
1ce0: 72 65 61 74 65 49 6e 73 74 61 6e 63 65 57 69 74  reateInstanceWit
1cf0: 68 43 6f 6e 74 65 78 74 28 27 63 6f 6d 2e 73 75  hContext('com.su
1d00: 6e 2e 73 74 61 72 2e 61 77 74 2e 55 6e 6f 43 6f  n.star.awt.UnoCo
1d10: 6e 74 72 6f 6c 52 61 64 69 6f 42 75 74 74 6f 6e  ntrolRadioButton
1d20: 27 2c 20 73 65 6c 66 2e 63 74 78 29 0a 20 20 20  ', self.ctx).   
1d30: 20 20 20 20 20 73 65 6c 66 2e 78 52 42 5f 74 2e       self.xRB_t.
1d40: 73 65 74 4d 6f 64 65 6c 28 72 62 6d 5f 74 29 0a  setModel(rbm_t).
1d50: 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20          .       
1d60: 20 6c 61 62 65 6c 5f 6d 20 3d 20 73 65 6c 66 2e   label_m = self.
1d70: 61 64 64 57 69 64 67 65 74 28 27 6c 61 62 65 6c  addWidget('label
1d80: 5f 6d 27 2c 20 27 46 69 78 65 64 54 65 78 74 27  _m', 'FixedText'
1d90: 2c 20 32 30 2c 20 70 6f 73 59 31 2b 31 30 2c 20  , 20, posY1+10, 
1da0: 77 77 69 64 74 68 64 65 73 63 72 2c 20 77 68 65  wwidthdescr, whe
1db0: 69 67 68 74 64 65 73 63 72 2c 20 4c 61 62 65 6c  ightdescr, Label
1dc0: 20 3d 20 73 44 69 63 44 65 73 63 72 5f 6d 2c 20   = sDicDescr_m, 
1dd0: 4d 75 6c 74 69 4c 69 6e 65 20 3d 20 54 72 75 65  MultiLine = True
1de0: 29 0a 20 20 20 20 20 20 20 20 6c 61 62 65 6c 5f  ).        label_
1df0: 63 20 3d 20 73 65 6c 66 2e 61 64 64 57 69 64 67  c = self.addWidg
1e00: 65 74 28 27 6c 61 62 65 6c 5f 63 27 2c 20 27 46  et('label_c', 'F
1e10: 69 78 65 64 54 65 78 74 27 2c 20 32 30 2c 20 70  ixedText', 20, p
1e20: 6f 73 59 32 2b 31 30 2c 20 77 77 69 64 74 68 64  osY2+10, wwidthd
1e30: 65 73 63 72 2c 20 77 68 65 69 67 68 74 64 65 73  escr, wheightdes
1e40: 63 72 2c 20 4c 61 62 65 6c 20 3d 20 73 44 69 63  cr, Label = sDic
1e50: 44 65 73 63 72 5f 63 2c 20 4d 75 6c 74 69 4c 69  Descr_c, MultiLi
1e60: 6e 65 20 3d 20 54 72 75 65 29 0a 20 20 20 20 20  ne = True).     
1e70: 20 20 20 6c 61 62 65 6c 5f 72 20 3d 20 73 65 6c     label_r = sel
1e80: 66 2e 61 64 64 57 69 64 67 65 74 28 27 6c 61 62  f.addWidget('lab
1e90: 65 6c 5f 72 27 2c 20 27 46 69 78 65 64 54 65 78  el_r', 'FixedTex
1ea0: 74 27 2c 20 32 30 2c 20 70 6f 73 59 33 2b 31 30  t', 20, posY3+10
1eb0: 2c 20 77 77 69 64 74 68 64 65 73 63 72 2c 20 77  , wwidthdescr, w
1ec0: 68 65 69 67 68 74 64 65 73 63 72 2c 20 4c 61 62  heightdescr, Lab
1ed0: 65 6c 20 3d 20 73 44 69 63 44 65 73 63 72 5f 72  el = sDicDescr_r
1ee0: 2c 20 4d 75 6c 74 69 4c 69 6e 65 20 3d 20 54 72  , MultiLine = Tr
1ef0: 75 65 29 0a 20 20 20 20 20 20 20 20 6c 61 62 65  ue).        labe
1f00: 6c 5f 74 20 3d 20 73 65 6c 66 2e 61 64 64 57 69  l_t = self.addWi
1f10: 64 67 65 74 28 27 6c 61 62 65 6c 5f 74 27 2c 20  dget('label_t', 
1f20: 27 46 69 78 65 64 54 65 78 74 27 2c 20 32 30 2c  'FixedText', 20,
1f30: 20 70 6f 73 59 34 2b 31 30 2c 20 77 77 69 64 74   posY4+10, wwidt
1f40: 68 64 65 73 63 72 2c 20 77 68 65 69 67 68 74 64  hdescr, wheightd
1f50: 65 73 63 72 2c 20 4c 61 62 65 6c 20 3d 20 73 44  escr, Label = sD
1f60: 69 63 44 65 73 63 72 5f 74 2c 20 4d 75 6c 74 69  icDescr_t, Multi
1f70: 4c 69 6e 65 20 3d 20 54 72 75 65 29 0a 20 20 20  Line = True).   
1f80: 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 73 65       .        se
1f90: 6c 66 2e 73 65 74 52 61 64 69 6f 42 75 74 74 6f  lf.setRadioButto
1fa0: 6e 28 73 65 6c 66 2e 73 43 75 72 72 65 6e 74 44  n(self.sCurrentD
1fb0: 69 63 29 0a 20 20 20 20 20 20 20 20 0a 20 20 20  ic).        .   
1fc0: 20 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 73 65       button = se
1fd0: 6c 66 2e 61 64 64 57 69 64 67 65 74 28 27 73 65  lf.addWidget('se
1fe0: 6c 65 63 74 27 2c 20 27 42 75 74 74 6f 6e 27 2c  lect', 'Button',
1ff0: 20 70 61 64 64 69 6e 67 2b 35 30 2c 20 70 6f 73   padding+50, pos
2000: 59 35 2c 20 38 30 2c 20 31 34 2c 20 4c 61 62 65  Y5, 80, 14, Labe
2010: 6c 20 3d 20 27 55 74 69 6c 69 73 65 72 20 63 65  l = 'Utiliser ce
2020: 20 64 69 63 74 69 6f 6e 6e 61 69 72 65 27 29 0a   dictionnaire').
2030: 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20          .       
2040: 20 23 20 63 6f 6e 74 61 69 6e 65 72 0a 20 20 20   # container.   
2050: 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e 74 61 69       self.contai
2060: 6e 65 72 20 3d 20 73 65 6c 66 2e 78 53 76 4d 67  ner = self.xSvMg
2070: 72 2e 63 72 65 61 74 65 49 6e 73 74 61 6e 63 65  r.createInstance
2080: 57 69 74 68 43 6f 6e 74 65 78 74 28 27 63 6f 6d  WithContext('com
2090: 2e 73 75 6e 2e 73 74 61 72 2e 61 77 74 2e 55 6e  .sun.star.awt.Un
20a0: 6f 43 6f 6e 74 72 6f 6c 44 69 61 6c 6f 67 27 2c  oControlDialog',
20b0: 20 73 65 6c 66 2e 63 74 78 29 0a 20 20 20 20 20   self.ctx).     
20c0: 20 20 20 73 65 6c 66 2e 63 6f 6e 74 61 69 6e 65     self.containe
20d0: 72 2e 73 65 74 4d 6f 64 65 6c 28 73 65 6c 66 2e  r.setModel(self.
20e0: 64 69 61 6c 6f 67 29 0a 20 20 20 20 20 20 20 20  dialog).        
20f0: 73 65 6c 66 2e 63 6f 6e 74 61 69 6e 65 72 2e 67  self.container.g
2100: 65 74 43 6f 6e 74 72 6f 6c 28 27 73 65 6c 65 63  etControl('selec
2110: 74 27 29 2e 61 64 64 41 63 74 69 6f 6e 4c 69 73  t').addActionLis
2120: 74 65 6e 65 72 28 73 65 6c 66 29 0a 23 20 20 20  tener(self).#   
2130: 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 73 43        if self.sC
2140: 75 72 72 65 6e 74 44 69 63 20 21 3d 20 22 6d 6f  urrentDic != "mo
2150: 64 65 72 6e 65 22 3a 0a 23 20 20 20 20 20 20 20  derne":.#       
2160: 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e 74 61        self.conta
2170: 69 6e 65 72 2e 67 65 74 43 6f 6e 74 72 6f 6c 28  iner.getControl(
2180: 27 72 62 2d 6d 6f 64 65 72 6e 65 27 29 2e 61 64  'rb-moderne').ad
2190: 64 41 63 74 69 6f 6e 4c 69 73 74 65 6e 65 72 28  dActionListener(
21a0: 73 65 6c 66 29 0a 23 20 20 20 20 20 20 20 20 20  self).#         
21b0: 69 66 20 73 65 6c 66 2e 73 43 75 72 72 65 6e 74  if self.sCurrent
21c0: 44 69 63 20 21 3d 20 22 63 6c 61 73 73 69 71 75  Dic != "classiqu
21d0: 65 22 3a 0a 23 20 20 20 20 20 20 20 20 20 20 20  e":.#           
21e0: 20 20 73 65 6c 66 2e 63 6f 6e 74 61 69 6e 65 72    self.container
21f0: 2e 67 65 74 43 6f 6e 74 72 6f 6c 28 27 72 62 2d  .getControl('rb-
2200: 63 6c 61 73 73 69 71 75 65 27 29 2e 61 64 64 41  classique').addA
2210: 63 74 69 6f 6e 4c 69 73 74 65 6e 65 72 28 73 65  ctionListener(se
2220: 6c 66 29 0a 23 20 20 20 20 20 20 20 20 20 69 66  lf).#         if
2230: 20 73 65 6c 66 2e 73 43 75 72 72 65 6e 74 44 69   self.sCurrentDi
2240: 63 20 21 3d 20 22 72 65 66 6f 72 6d 65 31 39 39  c != "reforme199
2250: 30 22 3a 0a 23 20 20 20 20 20 20 20 20 20 20 20  0":.#           
2260: 20 20 73 65 6c 66 2e 63 6f 6e 74 61 69 6e 65 72    self.container
2270: 2e 67 65 74 43 6f 6e 74 72 6f 6c 28 27 72 62 2d  .getControl('rb-
2280: 72 65 66 6f 72 6d 65 31 39 39 30 27 29 2e 61 64  reforme1990').ad
2290: 64 41 63 74 69 6f 6e 4c 69 73 74 65 6e 65 72 28  dActionListener(
22a0: 73 65 6c 66 29 0a 23 20 20 20 20 20 20 20 20 20  self).#         
22b0: 69 66 20 73 65 6c 66 2e 73 43 75 72 72 65 6e 74  if self.sCurrent
22c0: 44 69 63 20 21 3d 20 22 74 6f 75 74 65 73 76 61  Dic != "toutesva
22d0: 72 69 61 6e 74 65 73 22 3a 0a 23 20 20 20 20 20  riantes":.#     
22e0: 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e          self.con
22f0: 74 61 69 6e 65 72 2e 67 65 74 43 6f 6e 74 72 6f  tainer.getContro
2300: 6c 28 27 72 62 2d 74 6f 75 74 65 73 76 61 72 69  l('rb-toutesvari
2310: 61 6e 74 65 73 27 29 2e 61 64 64 41 63 74 69 6f  antes').addActio
2320: 6e 4c 69 73 74 65 6e 65 72 28 73 65 6c 66 29 0a  nListener(self).
2330: 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e          self.con
2340: 74 61 69 6e 65 72 2e 73 65 74 56 69 73 69 62 6c  tainer.setVisibl
2350: 65 28 46 61 6c 73 65 29 0a 20 20 20 20 20 20 20  e(False).       
2360: 20 74 6f 6f 6c 6b 69 74 20 3d 20 73 65 6c 66 2e   toolkit = self.
2370: 78 53 76 4d 67 72 2e 63 72 65 61 74 65 49 6e 73  xSvMgr.createIns
2380: 74 61 6e 63 65 57 69 74 68 43 6f 6e 74 65 78 74  tanceWithContext
2390: 28 27 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 61  ('com.sun.star.a
23a0: 77 74 2e 45 78 74 54 6f 6f 6c 6b 69 74 27 2c 20  wt.ExtToolkit', 
23b0: 73 65 6c 66 2e 63 74 78 29 0a 20 20 20 20 20 20  self.ctx).      
23c0: 20 20 73 65 6c 66 2e 63 6f 6e 74 61 69 6e 65 72    self.container
23d0: 2e 63 72 65 61 74 65 50 65 65 72 28 74 6f 6f 6c  .createPeer(tool
23e0: 6b 69 74 2c 20 4e 6f 6e 65 29 0a 20 20 20 20 20  kit, None).     
23f0: 20 20 20 73 65 6c 66 2e 63 6f 6e 74 61 69 6e 65     self.containe
2400: 72 2e 65 78 65 63 75 74 65 28 29 0a 20 20 20 20  r.execute().    
2410: 0a 20 20 20 20 64 65 66 20 73 65 74 52 61 64 69  .    def setRadi
2420: 6f 42 75 74 74 6f 6e 20 28 73 65 6c 66 2c 20 73  oButton (self, s
2430: 44 69 63 29 3a 0a 20 20 20 20 20 20 20 20 69 66  Dic):.        if
2440: 20 73 44 69 63 20 3d 3d 20 27 6d 6f 64 65 72 6e   sDic == 'modern
2450: 65 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  e':.            
2460: 73 65 6c 66 2e 78 52 42 5f 6d 2e 73 65 74 53 74  self.xRB_m.setSt
2470: 61 74 65 28 54 72 75 65 29 0a 20 20 20 20 20 20  ate(True).      
2480: 20 20 65 6c 69 66 20 73 44 69 63 20 3d 3d 20 27    elif sDic == '
2490: 63 6c 61 73 73 69 71 75 65 27 3a 0a 20 20 20 20  classique':.    
24a0: 20 20 20 20 20 20 20 20 73 65 6c 66 2e 78 52 42          self.xRB
24b0: 5f 63 2e 73 65 74 53 74 61 74 65 28 54 72 75 65  _c.setState(True
24c0: 29 0a 20 20 20 20 20 20 20 20 65 6c 69 66 20 73  ).        elif s
24d0: 44 69 63 20 3d 3d 20 27 72 65 66 6f 72 6d 65 31  Dic == 'reforme1
24e0: 39 39 30 27 3a 0a 20 20 20 20 20 20 20 20 20 20  990':.          
24f0: 20 20 73 65 6c 66 2e 78 52 42 5f 72 2e 73 65 74    self.xRB_r.set
2500: 53 74 61 74 65 28 54 72 75 65 29 0a 20 20 20 20  State(True).    
2510: 20 20 20 20 65 6c 69 66 20 73 44 69 63 20 3d 3d      elif sDic ==
2520: 20 27 74 6f 75 74 65 73 76 61 72 69 61 6e 74 65   'toutesvariante
2530: 73 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20  s':.            
2540: 73 65 6c 66 2e 78 52 42 5f 74 2e 73 65 74 53 74  self.xRB_t.setSt
2550: 61 74 65 28 54 72 75 65 29 0a 20 20 20 20 20 20  ate(True).      
2560: 20 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20    else:.        
2570: 20 20 20 20 70 61 73 73 0a 20 20 20 20 20 20 20      pass.       
2580: 20 0a 20 20 20 20 64 65 66 20 61 63 74 69 6f 6e   .    def action
2590: 50 65 72 66 6f 72 6d 65 64 20 28 73 65 6c 66 2c  Performed (self,
25a0: 20 61 63 74 69 6f 6e 45 76 65 6e 74 29 3a 0a 20   actionEvent):. 
25b0: 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20         try:.    
25c0: 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e          if self.
25d0: 78 52 42 5f 6d 2e 67 65 74 53 74 61 74 65 28 29  xRB_m.getState()
25e0: 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  :.              
25f0: 20 20 73 65 6c 66 2e 73 53 65 6c 65 63 74 65 64    self.sSelected
2600: 44 69 63 20 3d 20 27 6d 6f 64 65 72 6e 65 27 0a  Dic = 'moderne'.
2610: 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 69 66              elif
2620: 20 73 65 6c 66 2e 78 52 42 5f 63 2e 67 65 74 53   self.xRB_c.getS
2630: 74 61 74 65 28 29 3a 0a 20 20 20 20 20 20 20 20  tate():.        
2640: 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 53 65          self.sSe
2650: 6c 65 63 74 65 64 44 69 63 20 3d 20 27 63 6c 61  lectedDic = 'cla
2660: 73 73 69 71 75 65 27 0a 20 20 20 20 20 20 20 20  ssique'.        
2670: 20 20 20 20 65 6c 69 66 20 73 65 6c 66 2e 78 52      elif self.xR
2680: 42 5f 72 2e 67 65 74 53 74 61 74 65 28 29 3a 0a  B_r.getState():.
2690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
26a0: 73 65 6c 66 2e 73 53 65 6c 65 63 74 65 64 44 69  self.sSelectedDi
26b0: 63 20 3d 20 27 72 65 66 6f 72 6d 65 31 39 39 30  c = 'reforme1990
26c0: 27 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c  '.            el
26d0: 69 66 20 73 65 6c 66 2e 78 52 42 5f 74 2e 67 65  if self.xRB_t.ge
26e0: 74 53 74 61 74 65 28 29 3a 0a 20 20 20 20 20 20  tState():.      
26f0: 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73            self.s
2700: 53 65 6c 65 63 74 65 64 44 69 63 20 3d 20 27 74  SelectedDic = 't
2710: 6f 75 74 65 73 76 61 72 69 61 6e 74 65 73 27 0a  outesvariantes'.
2720: 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65              else
2730: 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  :.              
2740: 20 20 23 20 6e 6f 20 64 69 63 74 69 6f 6e 61 72    # no dictionar
2750: 79 20 73 65 6c 65 63 74 65 64 0a 20 20 20 20 20  y selected.     
2760: 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a             pass.
2770: 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66              self
2780: 2e 63 6f 6e 74 61 69 6e 65 72 2e 65 6e 64 45 78  .container.endEx
2790: 65 63 75 74 65 28 29 0a 20 20 20 20 20 20 20 20  ecute().        
27a0: 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20  except:.        
27b0: 20 20 20 20 68 61 6e 64 6c 65 45 78 63 65 70 74      handleExcept
27c0: 69 6f 6e 28 73 65 6c 66 2e 63 74 78 29 0a 20 20  ion(self.ctx).  
27d0: 20 20 0a 20 20 20 20 64 65 66 20 74 72 69 67 67    .    def trigg
27e0: 65 72 20 28 73 65 6c 66 2c 20 61 72 67 73 29 3a  er (self, args):
27f0: 0a 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20  .        try:.  
2800: 20 20 20 20 20 20 20 20 20 20 64 69 61 6c 6f 67            dialog
2810: 20 3d 20 46 72 65 6e 63 68 44 69 63 74 69 6f 6e   = FrenchDiction
2820: 61 72 79 53 77 69 74 63 68 65 72 28 73 65 6c 66  arySwitcher(self
2830: 2e 63 74 78 29 0a 20 20 20 20 20 20 20 20 20 20  .ctx).          
2840: 20 20 64 69 61 6c 6f 67 2e 72 75 6e 28 29 0a 20    dialog.run(). 
2850: 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20             .    
2860: 20 20 20 20 20 20 20 20 69 66 20 64 69 61 6c 6f          if dialo
2870: 67 2e 73 53 65 6c 65 63 74 65 64 44 69 63 20 61  g.sSelectedDic a
2880: 6e 64 20 64 69 61 6c 6f 67 2e 73 43 75 72 72 65  nd dialog.sCurre
2890: 6e 74 44 69 63 20 21 3d 20 64 69 61 6c 6f 67 2e  ntDic != dialog.
28a0: 73 53 65 6c 65 63 74 65 64 44 69 63 3a 0a 20 20  sSelectedDic:.  
28b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 53                xS
28c0: 76 4d 67 72 20 3d 20 75 6e 6f 2e 67 65 74 43 6f  vMgr = uno.getCo
28d0: 6d 70 6f 6e 65 6e 74 43 6f 6e 74 65 78 74 28 29  mponentContext()
28e0: 2e 53 65 72 76 69 63 65 4d 61 6e 61 67 65 72 0a  .ServiceManager.
28f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2900: 78 44 65 73 6b 74 6f 70 20 3d 20 78 53 76 4d 67  xDesktop = xSvMg
2910: 72 2e 63 72 65 61 74 65 49 6e 73 74 61 6e 63 65  r.createInstance
2920: 57 69 74 68 43 6f 6e 74 65 78 74 28 27 63 6f 6d  WithContext('com
2930: 2e 73 75 6e 2e 73 74 61 72 2e 66 72 61 6d 65 2e  .sun.star.frame.
2940: 44 65 73 6b 74 6f 70 27 2c 20 73 65 6c 66 2e 63  Desktop', self.c
2950: 74 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  tx).            
2960: 20 20 20 20 78 44 6f 63 20 3d 20 78 44 65 73 6b      xDoc = xDesk
2970: 74 6f 70 2e 67 65 74 43 75 72 72 65 6e 74 43 6f  top.getCurrentCo
2980: 6d 70 6f 6e 65 6e 74 28 29 0a 20 20 20 20 20 20  mponent().      
2990: 20 20 20 20 20 20 20 20 20 20 78 57 69 6e 64 6f            xWindo
29a0: 77 20 3d 20 78 44 6f 63 2e 43 75 72 72 65 6e 74  w = xDoc.Current
29b0: 43 6f 6e 74 72 6f 6c 6c 65 72 2e 46 72 61 6d 65  Controller.Frame
29c0: 2e 43 6f 6e 74 61 69 6e 65 72 57 69 6e 64 6f 77  .ContainerWindow
29d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
29e0: 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20   .              
29f0: 20 20 69 66 20 64 69 61 6c 6f 67 2e 73 43 75 72    if dialog.sCur
2a00: 72 65 6e 74 44 69 63 3a 0a 20 20 20 20 20 20 20  rentDic:.       
2a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4d               # M
2a20: 6f 64 69 66 79 20 74 68 65 20 72 65 67 69 73 74  odify the regist
2a30: 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  ry.             
2a40: 20 20 20 20 20 20 20 78 53 65 74 74 69 6e 67 73         xSettings
2a50: 20 3d 20 67 65 74 43 6f 6e 66 69 67 53 65 74 74   = getConfigSett
2a60: 69 6e 67 28 22 2f 6f 72 67 2e 6f 70 65 6e 6f 66  ing("/org.openof
2a70: 66 69 63 65 2e 4f 66 66 69 63 65 2e 4c 69 6e 67  fice.Office.Ling
2a80: 75 69 73 74 69 63 2f 53 65 72 76 69 63 65 4d 61  uistic/ServiceMa
2a90: 6e 61 67 65 72 2f 44 69 63 74 69 6f 6e 61 72 69  nager/Dictionari
2aa0: 65 73 2f 48 75 6e 53 70 65 6c 6c 44 69 63 5f 66  es/HunSpellDic_f
2ab0: 72 22 2c 20 54 72 75 65 29 0a 20 20 20 20 20 20  r", True).      
2ac0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 4c                xL
2ad0: 6f 63 61 74 69 6f 6e 73 20 3d 20 78 53 65 74 74  ocations = xSett
2ae0: 69 6e 67 73 2e 67 65 74 42 79 4e 61 6d 65 28 22  ings.getByName("
2af0: 4c 6f 63 61 74 69 6f 6e 73 22 29 0a 20 20 20 20  Locations").    
2b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2b10: 76 31 20 3d 20 78 4c 6f 63 61 74 69 6f 6e 73 5b  v1 = xLocations[
2b20: 30 5d 2e 72 65 70 6c 61 63 65 28 64 69 61 6c 6f  0].replace(dialo
2b30: 67 2e 73 43 75 72 72 65 6e 74 44 69 63 2c 20 64  g.sCurrentDic, d
2b40: 69 61 6c 6f 67 2e 73 53 65 6c 65 63 74 65 64 44  ialog.sSelectedD
2b50: 69 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  ic).            
2b60: 20 20 20 20 20 20 20 20 76 32 20 3d 20 78 4c 6f          v2 = xLo
2b70: 63 61 74 69 6f 6e 73 5b 31 5d 2e 72 65 70 6c 61  cations[1].repla
2b80: 63 65 28 64 69 61 6c 6f 67 2e 73 43 75 72 72 65  ce(dialog.sCurre
2b90: 6e 74 44 69 63 2c 20 64 69 61 6c 6f 67 2e 73 53  ntDic, dialog.sS
2ba0: 65 6c 65 63 74 65 64 44 69 63 29 0a 20 20 20 20  electedDic).    
2bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2bc0: 23 78 53 65 74 74 69 6e 67 73 2e 72 65 70 6c 61  #xSettings.repla
2bd0: 63 65 42 79 4e 61 6d 65 28 22 4c 6f 63 61 74 69  ceByName("Locati
2be0: 6f 6e 73 22 2c 20 78 4c 6f 63 61 74 69 6f 6e 73  ons", xLocations
2bf0: 29 20 20 23 20 45 52 52 4f 52 2c 20 73 65 65 20  )  # ERROR, see 
2c00: 6c 69 6e 65 20 62 65 6c 6f 77 0a 20 20 20 20 20  line below.     
2c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75                 u
2c20: 6e 6f 2e 69 6e 76 6f 6b 65 28 78 53 65 74 74 69  no.invoke(xSetti
2c30: 6e 67 73 2c 20 22 72 65 70 6c 61 63 65 42 79 4e  ngs, "replaceByN
2c40: 61 6d 65 22 2c 20 28 22 4c 6f 63 61 74 69 6f 6e  ame", ("Location
2c50: 73 22 2c 20 75 6e 6f 2e 41 6e 79 28 22 5b 5d 73  s", uno.Any("[]s
2c60: 74 72 69 6e 67 22 2c 20 28 76 31 2c 20 76 32 29  tring", (v1, v2)
2c70: 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  ))).            
2c80: 20 20 20 20 20 20 20 20 78 53 65 74 74 69 6e 67          xSetting
2c90: 73 2e 63 6f 6d 6d 69 74 43 68 61 6e 67 65 73 28  s.commitChanges(
2ca0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ).              
2cb0: 20 20 20 20 20 20 23 20 6d 65 73 73 61 67 65 20        # message 
2cc0: 62 6f 78 0a 20 20 20 20 20 20 20 20 20 20 20 20  box.            
2cd0: 20 20 20 20 20 20 20 20 73 4d 73 67 20 3d 20 75          sMsg = u
2ce0: 22 56 6f 75 73 20 61 76 65 7a 20 63 68 6f 69 73  "Vous avez chois
2cf0: 69 20 75 6e 20 6e 6f 75 76 65 61 75 20 64 69 63  i un nouveau dic
2d00: 74 69 6f 6e 6e 61 69 72 65 5c 6e 6f 72 74 68 6f  tionnaire\northo
2d10: 67 72 61 70 68 69 71 75 65 20 70 6f 75 72 20 6c  graphique pour l
2d20: 61 20 6c 61 6e 67 75 65 20 66 72 61 6e c3 a7 61  a langue fran..a
2d30: 69 73 65 2e 5c 6e 5c 6e e2 80 9c 25 73 e2 80 9d  ise.\n\n...%s...
2d40: 20 e2 87 92 20 e2 80 9c 25 73 e2 80 9d 5c 6e 5c   ... ...%s...\n\
2d50: 6e 46 65 72 6d 65 7a 20 6c 65 20 6c 6f 67 69 63  nFermez le logic
2d60: 69 65 6c 20 28 79 20 63 6f 6d 70 72 69 73 20 6c  iel (y compris l
2d70: 65 20 64 c3 a9 6d 61 72 72 61 67 65 20 72 61 70  e d..marrage rap
2d80: 69 64 65 29 5c 6e 65 74 20 72 65 6c 61 6e 63 65  ide)\net relance
2d90: 7a 2d 6c 65 2e 22 20 25 20 28 4c 41 42 45 4c 44  z-le." % (LABELD
2da0: 49 43 54 5b 64 69 61 6c 6f 67 2e 73 43 75 72 72  ICT[dialog.sCurr
2db0: 65 6e 74 44 69 63 5d 2c 20 4c 41 42 45 4c 44 49  entDic], LABELDI
2dc0: 43 54 5b 64 69 61 6c 6f 67 2e 73 53 65 6c 65 63  CT[dialog.sSelec
2dd0: 74 65 64 44 69 63 5d 29 0a 20 20 20 20 20 20 20  tedDic]).       
2de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 65 73               Mes
2df0: 73 61 67 65 42 6f 78 28 78 57 69 6e 64 6f 77 2c  sageBox(xWindow,
2e00: 20 73 4d 73 67 2c 20 75 22 53 c3 a9 6c 65 63 74   sMsg, u"S..lect
2e10: 69 6f 6e 20 64 e2 80 99 75 6e 20 6e 6f 75 76 65  ion d...un nouve
2e20: 61 75 20 64 69 63 74 69 6f 6e 6e 61 69 72 65 22  au dictionnaire"
2e30: 2c 20 22 69 6e 66 6f 62 6f 78 22 29 0a 20 20 20  , "infobox").   
2e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2e50: 20 0a 0a 23 20 20 20 20 20 20 20 20 20 20 20 20   ..#            
2e60: 20 20 20 20 20 20 20 20 20 23 20 67 65 74 20 70           # get p
2e70: 61 63 6b 61 67 65 20 6c 6f 63 61 74 69 6f 6e 20  ackage location 
2e80: 28 55 52 4c 20 6f 66 20 74 68 69 73 20 65 78 74  (URL of this ext
2e90: 65 6e 73 69 6f 6e 29 0a 23 20 20 20 20 20 20 20  ension).#       
2ea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 43                xC
2eb0: 6f 6d 70 43 74 78 20 3d 20 75 6e 6f 2e 67 65 74  ompCtx = uno.get
2ec0: 43 6f 6d 70 6f 6e 65 6e 74 43 6f 6e 74 65 78 74  ComponentContext
2ed0: 28 29 0a 23 20 20 20 20 20 20 20 20 20 20 20 20  ().#            
2ee0: 20 20 20 20 20 20 20 20 20 78 50 61 63 6b 61 67           xPackag
2ef0: 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 50 72 6f 76  eInformationProv
2f00: 69 64 65 72 20 3d 20 78 43 6f 6d 70 43 74 78 2e  ider = xCompCtx.
2f10: 67 65 74 42 79 4e 61 6d 65 28 22 2f 73 69 6e 67  getByName("/sing
2f20: 6c 65 74 6f 6e 73 2f 63 6f 6d 2e 73 75 6e 2e 73  letons/com.sun.s
2f30: 74 61 72 2e 64 65 70 6c 6f 79 6d 65 6e 74 2e 50  tar.deployment.P
2f40: 61 63 6b 61 67 65 49 6e 66 6f 72 6d 61 74 69 6f  ackageInformatio
2f50: 6e 50 72 6f 76 69 64 65 72 22 29 0a 23 20 20 20  nProvider").#   
2f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2f70: 20 20 73 55 52 4c 20 3d 20 78 50 61 63 6b 61 67    sURL = xPackag
2f80: 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 50 72 6f 76  eInformationProv
2f90: 69 64 65 72 2e 67 65 74 50 61 63 6b 61 67 65 4c  ider.getPackageL
2fa0: 6f 63 61 74 69 6f 6e 28 22 46 72 65 6e 63 68 2e  ocation("French.
2fb0: 6c 69 6e 67 75 69 73 74 69 63 2e 72 65 73 6f 75  linguistic.resou
2fc0: 72 63 65 73 2e 66 72 6f 6d 2e 44 69 63 6f 6c 6c  rces.from.Dicoll
2fd0: 65 63 74 65 2e 62 79 2e 4f 6c 69 76 69 65 72 52  ecte.by.OlivierR
2fe0: 22 29 0a 23 20 20 20 20 20 20 20 20 20 20 20 20  ").#            
2ff0: 20 20 20 20 20 20 20 20 20 73 44 73 74 46 69 6c           sDstFil
3000: 65 20 3d 20 73 55 52 4c 20 2b 20 27 2f 64 69 63  e = sURL + '/dic
3010: 74 69 6f 6e 61 72 69 65 73 2e 78 63 75 27 0a 23  tionaries.xcu'.#
3020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3030: 20 20 20 20 20 73 44 73 74 46 69 6c 65 20 3d 20       sDstFile = 
3040: 73 44 73 74 46 69 6c 65 2e 72 65 70 6c 61 63 65  sDstFile.replace
3050: 28 27 66 69 6c 65 3a 2f 2f 2f 27 2c 20 27 27 29  ('file:///', '')
3060: 2e 72 65 70 6c 61 63 65 28 27 25 32 30 27 2c 20  .replace('%20', 
3070: 27 20 27 29 0a 23 20 20 20 20 20 20 20 20 20 20  ' ').#          
3080: 20 20 20 20 20 20 20 20 20 20 20 73 44 73 74 46             sDstF
3090: 69 6c 65 20 3d 20 6f 73 2e 70 61 74 68 2e 6e 6f  ile = os.path.no
30a0: 72 6d 70 61 74 68 28 73 44 73 74 46 69 6c 65 29  rmpath(sDstFile)
30b0: 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .#              
30c0: 20 20 20 20 20 20 20 73 54 70 6c 46 69 6c 65 20         sTplFile 
30d0: 3d 20 73 44 73 74 46 69 6c 65 20 2b 20 27 2e 74  = sDstFile + '.t
30e0: 70 6c 2e 78 6d 6c 27 0a 23 20 20 20 20 20 20 20  pl.xml'.#       
30f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 23                .#
3100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3110: 20 20 20 20 20 23 20 72 65 77 72 69 74 65 20 64       # rewrite d
3120: 69 63 74 69 6f 6e 61 72 69 65 73 2e 78 63 75 0a  ictionaries.xcu.
3130: 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  #               
3140: 20 20 20 20 20 20 69 66 20 6f 73 2e 70 61 74 68        if os.path
3150: 2e 69 73 66 69 6c 65 28 73 54 70 6c 46 69 6c 65  .isfile(sTplFile
3160: 29 20 61 6e 64 20 6f 73 2e 70 61 74 68 2e 69 73  ) and os.path.is
3170: 66 69 6c 65 28 73 44 73 74 46 69 6c 65 29 3a 0a  file(sDstFile):.
3180: 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  #               
3190: 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6f            with o
31a0: 70 65 6e 28 73 54 70 6c 46 69 6c 65 2c 20 27 72  pen(sTplFile, 'r
31b0: 27 29 20 61 73 20 68 46 69 6c 65 3a 0a 23 20 20  ') as hFile:.#  
31c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
31d0: 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65             conte
31e0: 6e 74 20 3d 20 68 46 69 6c 65 2e 72 65 61 64 28  nt = hFile.read(
31f0: 29 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20  ).#             
3200: 20 20 20 20 20 20 20 20 20 20 20 20 68 46 69 6c              hFil
3210: 65 2e 63 6c 6f 73 65 28 29 0a 23 20 20 20 20 20  e.close().#     
3220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3230: 20 20 20 20 63 6f 6e 74 65 6e 74 20 3d 20 63 6f      content = co
3240: 6e 74 65 6e 74 2e 72 65 70 6c 61 63 65 28 27 7b  ntent.replace('{
3250: 7b 64 69 63 74 69 6f 6e 61 72 79 4e 61 6d 65 7d  {dictionaryName}
3260: 7d 27 2c 20 64 69 61 6c 6f 67 2e 73 53 65 6c 65  }', dialog.sSele
3270: 63 74 65 64 44 69 63 29 0a 23 20 20 20 20 20 20  ctedDic).#      
3280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3290: 20 20 20 77 69 74 68 20 6f 70 65 6e 28 73 44 73     with open(sDs
32a0: 74 46 69 6c 65 2c 20 27 77 27 29 20 61 73 20 68  tFile, 'w') as h
32b0: 46 69 6c 65 3a 0a 23 20 20 20 20 20 20 20 20 20  File:.#         
32c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
32d0: 20 20 20 20 68 46 69 6c 65 2e 77 72 69 74 65 28      hFile.write(
32e0: 63 6f 6e 74 65 6e 74 29 0a 23 20 20 20 20 20 20  content).#      
32f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3300: 20 20 20 68 46 69 6c 65 2e 63 6c 6f 73 65 28 29     hFile.close()
3310: 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .#              
3320: 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 23 20 20         else:.#  
3330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3340: 20 20 20 20 20 20 20 73 45 72 72 4d 73 67 20 3d         sErrMsg =
3350: 20 22 22 0a 23 20 20 20 20 20 20 20 20 20 20 20   "".#           
3360: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66                if
3370: 20 6e 6f 74 20 6f 73 2e 70 61 74 68 2e 69 73 66   not os.path.isf
3380: 69 6c 65 28 73 54 70 6c 46 69 6c 65 29 3a 0a 23  ile(sTplFile):.#
3390: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 45 72               sEr
33b0: 72 4d 73 67 20 2b 3d 20 75 22 46 69 6c 65 20 6e  rMsg += u"File n
33c0: 6f 74 20 66 6f 75 6e 64 3a 20 25 73 5c 6e 22 20  ot found: %s\n" 
33d0: 25 20 73 54 70 6c 46 69 6c 65 0a 23 20 20 20 20  % sTplFile.#    
33e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
33f0: 20 20 20 20 20 69 66 20 6e 6f 74 20 6f 73 2e 70       if not os.p
3400: 61 74 68 2e 69 73 66 69 6c 65 28 73 44 73 74 46  ath.isfile(sDstF
3410: 69 6c 65 29 3a 0a 23 20 20 20 20 20 20 20 20 20  ile):.#         
3420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3430: 20 20 20 20 73 45 72 72 4d 73 67 20 2b 3d 20 75      sErrMsg += u
3440: 22 46 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 3a  "File not found:
3450: 20 25 73 5c 6e 22 20 25 20 73 44 73 74 46 69 6c   %s\n" % sDstFil
3460: 65 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20  e.#             
3470: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 73              if s
3480: 45 72 72 4d 73 67 3a 0a 23 20 20 20 20 20 20 20  ErrMsg:.#       
3490: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
34a0: 20 20 20 20 20 20 4d 65 73 73 61 67 65 42 6f 78        MessageBox
34b0: 28 78 57 69 6e 64 6f 77 2c 20 73 45 72 72 4d 73  (xWindow, sErrMs
34c0: 67 2c 20 22 45 52 52 4f 52 22 2c 20 22 65 72 72  g, "ERROR", "err
34d0: 6f 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20  or").           
34e0: 20 20 20 20 20 65 6c 73 65 3a 0a 20 20 20 20 20       else:.     
34f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d                 M
3500: 65 73 73 61 67 65 42 6f 78 28 78 57 69 6e 64 6f  essageBox(xWindo
3510: 77 2c 20 75 22 43 6f 75 6c 64 6e e2 80 99 74 20  w, u"Couldn...t 
3520: 72 65 74 72 69 65 76 65 20 69 6e 66 6f 72 6d 61  retrieve informa
3530: 74 69 6f 6e 73 5c 6e 61 62 6f 75 74 20 74 68 65  tions\nabout the
3540: 20 63 75 72 72 65 6e 74 20 64 69 63 74 69 6f 6e   current diction
3550: 61 72 79 2e 22 2c 20 22 45 52 52 4f 52 22 2c 20  ary.", "ERROR", 
3560: 22 65 72 72 6f 72 62 6f 78 22 29 0a 20 20 20 20  "errorbox").    
3570: 20 20 20 20 20 20 20 20 20 20 20 20 0a 23 20 20              .#  
3580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78                 x
3590: 53 70 65 6c 6c 43 68 65 63 6b 65 72 20 3d 20 78  SpellChecker = x
35a0: 53 76 4d 67 72 2e 63 72 65 61 74 65 49 6e 73 74  SvMgr.createInst
35b0: 61 6e 63 65 57 69 74 68 43 6f 6e 74 65 78 74 28  anceWithContext(
35c0: 27 63 6f 6d 2e 73 75 6e 2e 73 74 61 72 2e 6c 69  'com.sun.star.li
35d0: 6e 67 75 69 73 74 69 63 32 2e 53 70 65 6c 6c 43  nguistic2.SpellC
35e0: 68 65 63 6b 65 72 27 2c 20 73 65 6c 66 2e 63 74  hecker', self.ct
35f0: 78 29 0a 23 20 20 20 20 20 20 20 20 20 20 20 20  x).#            
3600: 20 20 20 20 20 78 4c 6f 63 61 6c 65 20 3d 20 75       xLocale = u
3610: 6e 6f 2e 63 72 65 61 74 65 55 6e 6f 53 74 72 75  no.createUnoStru
3620: 63 74 28 27 63 6f 6d 2e 73 75 6e 2e 73 74 61 72  ct('com.sun.star
3630: 2e 6c 61 6e 67 2e 4c 6f 63 61 6c 65 27 29 0a 23  .lang.Locale').#
3640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3650: 20 78 4c 6f 63 61 6c 65 2e 4c 61 6e 67 75 61 67   xLocale.Languag
3660: 65 20 3d 20 22 66 72 22 0a 23 20 20 20 20 20 20  e = "fr".#      
3670: 20 20 20 20 20 20 20 20 20 20 20 78 4c 6f 63 61             xLoca
3680: 6c 65 2e 43 6f 75 6e 74 72 79 20 3d 20 22 46 52  le.Country = "FR
3690: 22 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20  ".#             
36a0: 20 20 20 20 6c 20 3d 20 78 53 70 65 6c 6c 43 68      l = xSpellCh
36b0: 65 63 6b 65 72 2e 67 65 74 53 75 70 70 6f 72 74  ecker.getSupport
36c0: 65 64 53 65 72 76 69 63 65 4e 61 6d 65 73 28 29  edServiceNames()
36d0: 0a 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .#              
36e0: 20 20 20 4d 65 73 73 61 67 65 42 6f 78 28 78 57     MessageBox(xW
36f0: 69 6e 64 6f 77 2c 20 22 20 22 2e 6a 6f 69 6e 28  indow, " ".join(
3700: 6c 29 2c 20 22 44 45 42 55 47 22 2c 20 22 69 6e  l), "DEBUG", "in
3710: 66 6f 62 6f 78 22 29 0a 20 20 20 20 20 20 20 20  fobox").        
3720: 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20  except:.        
3730: 20 20 20 20 68 61 6e 64 6c 65 45 78 63 65 70 74      handleExcept
3740: 69 6f 6e 28 73 65 6c 66 2e 63 74 78 29 0a 0a 0a  ion(self.ctx)...
3750: 64 65 66 20 67 65 74 43 6f 6e 66 69 67 53 65 74  def getConfigSet
3760: 74 69 6e 67 20 28 73 4e 6f 64 65 43 6f 6e 66 69  ting (sNodeConfi
3770: 67 2c 20 62 46 6f 72 55 70 64 61 74 65 29 3a 0a  g, bForUpdate):.
3780: 20 20 20 20 69 66 20 62 46 6f 72 55 70 64 61 74      if bForUpdat
3790: 65 3a 0a 20 20 20 20 20 20 20 20 73 53 65 72 76  e:.        sServ
37a0: 69 63 65 20 3d 20 22 63 6f 6d 2e 73 75 6e 2e 73  ice = "com.sun.s
37b0: 74 61 72 2e 63 6f 6e 66 69 67 75 72 61 74 69 6f  tar.configuratio
37c0: 6e 2e 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 55  n.ConfigurationU
37d0: 70 64 61 74 65 41 63 63 65 73 73 22 0a 20 20 20  pdateAccess".   
37e0: 20 65 6c 73 65 3a 0a 20 20 20 20 20 20 20 20 73   else:.        s
37f0: 53 65 72 76 69 63 65 20 3d 20 22 63 6f 6d 2e 73  Service = "com.s
3800: 75 6e 2e 73 74 61 72 2e 63 6f 6e 66 69 67 75 72  un.star.configur
3810: 61 74 69 6f 6e 2e 43 6f 6e 66 69 67 75 72 61 74  ation.Configurat
3820: 69 6f 6e 41 63 63 65 73 73 22 0a 20 20 20 20 0a  ionAccess".    .
3830: 20 20 20 20 78 43 6f 6e 66 69 67 50 72 6f 76 69      xConfigProvi
3840: 64 65 72 20 3d 20 63 72 65 61 74 65 55 6e 6f 53  der = createUnoS
3850: 65 72 76 69 63 65 28 22 63 6f 6d 2e 73 75 6e 2e  ervice("com.sun.
3860: 73 74 61 72 2e 63 6f 6e 66 69 67 75 72 61 74 69  star.configurati
3870: 6f 6e 2e 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e  on.Configuration
3880: 50 72 6f 76 69 64 65 72 22 29 0a 20 20 20 20 0a  Provider").    .
3890: 20 20 20 20 78 50 72 6f 70 65 72 74 79 56 61 6c      xPropertyVal
38a0: 75 65 20 3d 20 50 72 6f 70 65 72 74 79 56 61 6c  ue = PropertyVal
38b0: 75 65 28 29 0a 20 20 20 20 78 50 72 6f 70 65 72  ue().    xProper
38c0: 74 79 56 61 6c 75 65 2e 4e 61 6d 65 20 3d 20 22  tyValue.Name = "
38d0: 6e 6f 64 65 70 61 74 68 22 0a 20 20 20 20 78 50  nodepath".    xP
38e0: 72 6f 70 65 72 74 79 56 61 6c 75 65 2e 56 61 6c  ropertyValue.Val
38f0: 75 65 20 3d 20 73 4e 6f 64 65 43 6f 6e 66 69 67  ue = sNodeConfig
3900: 0a 20 20 20 20 0a 20 20 20 20 78 53 65 74 74 69  .    .    xSetti
3910: 6e 67 73 20 3d 20 78 43 6f 6e 66 69 67 50 72 6f  ngs = xConfigPro
3920: 76 69 64 65 72 2e 63 72 65 61 74 65 49 6e 73 74  vider.createInst
3930: 61 6e 63 65 57 69 74 68 41 72 67 75 6d 65 6e 74  anceWithArgument
3940: 73 28 73 53 65 72 76 69 63 65 2c 20 28 78 50 72  s(sService, (xPr
3950: 6f 70 65 72 74 79 56 61 6c 75 65 2c 29 29 0a 20  opertyValue,)). 
3960: 20 20 20 72 65 74 75 72 6e 20 78 53 65 74 74 69     return xSetti
3970: 6e 67 73 0a 0a 64 65 66 20 63 72 65 61 74 65 55  ngs..def createU
3980: 6e 6f 53 65 72 76 69 63 65 20 28 73 65 72 76 69  noService (servi
3990: 63 65 4e 61 6d 65 29 3a 0a 20 20 20 20 78 53 76  ceName):.    xSv
39a0: 4d 67 72 20 3d 20 75 6e 6f 2e 67 65 74 43 6f 6d  Mgr = uno.getCom
39b0: 70 6f 6e 65 6e 74 43 6f 6e 74 65 78 74 28 29 2e  ponentContext().
39c0: 53 65 72 76 69 63 65 4d 61 6e 61 67 65 72 0a 20  ServiceManager. 
39d0: 20 20 20 72 65 74 75 72 6e 20 78 53 76 4d 67 72     return xSvMgr
39e0: 2e 63 72 65 61 74 65 49 6e 73 74 61 6e 63 65 57  .createInstanceW
39f0: 69 74 68 43 6f 6e 74 65 78 74 28 73 65 72 76 69  ithContext(servi
3a00: 63 65 4e 61 6d 65 2c 20 75 6e 6f 2e 67 65 74 43  ceName, uno.getC
3a10: 6f 6d 70 6f 6e 65 6e 74 43 6f 6e 74 65 78 74 28  omponentContext(
3a20: 29 29 0a 0a 0a 67 5f 49 6d 70 6c 65 6d 65 6e 74  ))...g_Implement
3a30: 61 74 69 6f 6e 48 65 6c 70 65 72 20 3d 20 75 6e  ationHelper = un
3a40: 6f 68 65 6c 70 65 72 2e 49 6d 70 6c 65 6d 65 6e  ohelper.Implemen
3a50: 74 61 74 69 6f 6e 48 65 6c 70 65 72 28 29 0a 67  tationHelper().g
3a60: 5f 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 48  _ImplementationH
3a70: 65 6c 70 65 72 2e 61 64 64 49 6d 70 6c 65 6d 65  elper.addImpleme
3a80: 6e 74 61 74 69 6f 6e 28 46 72 65 6e 63 68 44 69  ntation(FrenchDi
3a90: 63 74 69 6f 6e 61 72 79 53 77 69 74 63 68 65 72  ctionarySwitcher
3aa0: 2c 20 27 64 69 63 6f 6c 6c 65 63 74 65 2e 46 72  , 'dicollecte.Fr
3ab0: 65 6e 63 68 44 69 63 74 69 6f 6e 61 72 79 53 77  enchDictionarySw
3ac0: 69 74 63 68 65 72 27 2c 20 28 27 63 6f 6d 2e 73  itcher', ('com.s
3ad0: 75 6e 2e 73 74 61 72 2e 74 61 73 6b 2e 4a 6f 62  un.star.task.Job
3ae0: 27 2c 29 29 0a                                   ',)).