Makrá v OpenOffice.org 5/XII. – Formátovanie dokumentu 4

Július Pastierik  /  01. 03. 2007, 00:00

V dnešnom pokračovaní seriálu o makrách v OpenOffice.org si uvedieme procedúry a funkcie pre nastavovanie parametrov formátovania dokumentov osobitne podľa zvoleného používateľského profilu.

V predchádzajúcom dieli seriálu sme si ukázali prácu s používateľskými profilmi s tým, že vzhľadom na značný rozsah procedúr a funkcií, ktoré s tým následne súvisia, tieto rozdelíme do viacerých skupín a uvedieme ich postupne. Dnes sa budeme venovať skupine procedúr pre nastavovanie parametrov formátovania dokumentov (dialóg „ Dialog_Formatovanie“).

Podobne, ako minule, nebudeme sa vlastným procedúram venovať príliš osobitne, pretože sú pomerne dobre okomentované a uvedieme iba ich zdrojové texty. Premenné dialógu „Dialog_Formatovanie“ sme podrobne rozoberali pri jeho definícií (Makrá v OpenOffice.org 5/IX. – Formátovanie dokumentu 1).

Vlastné volanie dialógu „Dialog_Formatovanie“ je zabezpečené cez dialóg „Dialog_Profily“ (tlačidlo „Zmeň“) a preto nie je potrebné, aby sa volalo osobitne. Ešte spomeňme, že nasledujúce procedúry budeme ukladať do rovnakého modulu pre makrá ako minule, t.j. do modulu „Profily_funkcie“.

sub Zapis_definiciu_profilu(profil as string)
 ' Procedúra zapíše príznaky pre formátovanie do súboru pre daný profil.
 ' Názov súboru je totožný s názvom profilu.
 dim i, subor as integer

 subor = Freefile
 open inicializacny_subor(profil) for Output as #subor
 for i=1 to 16
  print #subor,str(priznaky_formatovania(i))
 next i
 close #subor
end sub

sub Citaj_definiciu_profilu(profil as string)
 ' Procedúra načíta príznaky zo súboru pre daný profil.
 ' Ak súbor neexistuje, alebo je poškodený (má menej údajov ako je potrebné), bude opravený.

 dim i, subor as integer
 dim riadok as string
 ' Inicializácia na štandardné štandardné hodnoty - všetky políčka sú zaškrtnuté.
 ' Ako pevné medzery sa vkladajú NBSP.
 ' Za jednoznakovými predložkami vrátane "a" sa vkladajú NBSP „off-line“.

 for i=1 to 16
  Priznaky_formatovania(i)=1
 next i
 ' Nastavenie „off-line“ vkladania medzier za jednoznakové predložky
 Priznaky_formatovania(4)=2

 ' Ak nastavovací súbor neexistuje, vytvoríme ho a uložíme do neho štandardné hodnoty
 if not fileexists(inicializacny_subor(profil)) then
   Zapis_definiciu_profilu(profil)
 endif

 ' Teraz súbor určite existuje - načítame ho
 subor = Freefile
  open inicializacny_subor(profil) for Input as #subor
 i=0
 While not eof(subor)
  i=i+1
  Line Input #subor, riadok
  Priznaky_formatovania(i)=val(riadok)
 wend
 close #subor

 ' Ak v súbore chýbal nejaký údaj, tak to teraz opravíme
 if i<16 then
  Zapis_definiciu_profilu(profil)
 endif

end sub

sub Init_dialog_formatovania(oDialog as object, profil as string)
 ' Inicializácia dialógu „Dialog_Formatovanie“ podľa definičného súboru vybraného profilu.

 Citaj_definiciu_profilu(profil)

 oDialog.model.Za_predlozkami.State=Priznaky_formatovania(1)

 oDialog.model.TabIndex=4
 oDialog.model.TabIndex=5
 select case Priznaky_formatovania(2)
  case 2
   oDialog.model.NBSP1.State=0
   oDialog.model.WJ1.State=1
  case else
   oDialog.model.NBSP1.State=1
   oDialog.model.WJ1.State=0
 end select

 oDialog.model.Za_spojkou_a.State=Priznaky_formatovania(3)

 oDialog.model.TabIndex=8
 oDialog.model.TabIndex=9
 select case Priznaky_formatovania(4)
  case 2
   oDialog.model.On_line.State=0
   oDialog.model.Off_line.State=1
  case else
   oDialog.model.On_line.State=1
   oDialog.model.Off_line.State=0
 end select

 oDialog.model.Za_titulmi.State=Priznaky_formatovania(5)

 oDialog.model.TabIndex=13
 oDialog.model.TabIndex=14
 select case Priznaky_formatovania(6)
  case 2
   oDialog.model.NBSP2.State=0
   oDialog.model.WJ2.State=1
  case else
   oDialog.model.NBSP2.State=1
   oDialog.model.WJ2.State=0
 end select

 oDialog.model.Za_cislami.State=Priznaky_formatovania(7)

 oDialog.model.TabIndex=16
 oDialog.model.TabIndex=17
 select case Priznaky_formatovania(8)
  case 2
   oDialog.model.NBSP3.State=0
   oDialog.model.WJ3.State=1
  case else
   oDialog.model.NBSP3.State=1
   oDialog.model.WJ3.State=0
 end select

 oDialog.model.Zrus_medzery.State=Priznaky_formatovania(9)
 oDialog.model.Zrus_okraje.State=Priznaky_formatovania(10)
 oDialog.model.Zrus_zatvorky.State=Priznaky_formatovania(11)
 oDialog.model.Zrus_uvodzovky.State=Priznaky_formatovania(12)
 oDialog.model.Zrus_interpunkcie.State=Priznaky_formatovania(13)
 oDialog.model.Zrus_odstavce.State=Priznaky_formatovania(14)

 oDialog.model.Vloz_bodku.State=Priznaky_formatovania(15)
 oDialog.model.Vloz_interpunkciu.State=Priznaky_formatovania(16)

end sub

sub Spusti_dialog_formatovania (profil as string)
 ' Vlastná práca s dialógom „Dialog_Formatovanie“.
 ' Volanie tohto dialógu je zabezpečené v dialógu „Dialog_Profily“ cez tlačidlo „Zmeň“.

 dim oDialog as object

 ' Ak nie je zadaný názov profilu, budeme robiť s profilom „Default“.
 if profil="" then profil="Default"

 oDialog=CreateUnoDialog(DialogLibraries.Vlastne_makra.Dialog_Formatovanie)
 Init_dialog_formatovania(oDialog, profil)

 if oDialog.Execute()=1 then
  ' Nastavenie premenných pre formátovanie podľa príznakov v dialógu.

  Priznaky_formatovania(1)=oDialog.model.Za_predlozkami.State

  if oDialog.model.NBSP1.State=1 then
   Priznaky_formatovania(2)=1
  else
   Priznaky_formatovania(2)=2
  endif

  Priznaky_formatovania(3)=oDialog.model.Za_spojkou_a.State
  if oDialog.model.On_line.State=1 then
   Priznaky_formatovania(4)=1
  else
   Priznaky_formatovania(4)=2
  endif

  Priznaky_formatovania(5)=oDialog.model.Za_titulmi.State

  if oDialog.model.NBSP2.State=1 then
   Priznaky_formatovania(6)=1
  else
   Priznaky_formatovania(6)=2
  endif

  Priznaky_formatovania(7)=oDialog.model.Za_cislami.State

  if oDialog.model.NBSP3.State=1 then
   Priznaky_formatovania(8)=1
  else
   Priznaky_formatovania(8)=2
  endif

  Priznaky_formatovania(9)=oDialog.model.Zrus_medzery.State
  Priznaky_formatovania(10)=oDialog.model.Zrus_okraje.State
  Priznaky_formatovania(11)=oDialog.model.Zrus_zatvorky.State
  Priznaky_formatovania(12)=oDialog.model.Zrus_uvodzovky.State
  Priznaky_formatovania(13)=oDialog.model.Zrus_interpunkcie.State
  Priznaky_formatovania(14)=oDialog.model.Zrus_odstavce.State

  Priznaky_formatovania(15)=oDialog.model.Vloz_bodku.State
  Priznaky_formatovania(16)=oDialog.model.Vloz_interpunkciu.State

  Zapis_definiciu_profilu(profil)
 endif
 oDialog.dispose()

end sub


Parametre formátovania

Pokiaľ sa predsa len nájdu používatelia, ktorí nechcú využívať výhody viacerých profilov, môžu si upraviť začiatok procedúry „Spusti_dialog_formatovania“ (ktorú v tomto prípade musia volať osobitne) napríklad takto:

sub Spusti_dialog_formatovania
 ' Vlastná práca s dialógom „Dialog_Formatovanie“.

 dim oDialog as object
 dim profil as string

 profil="Default"

Pravdaže, ako názov súboru pre uloženie parametrov (ktorý je totožný s názvom profilu a v tomto prípade je to „Default“) si môžu zvoliť ľubovoľný iný názov.

Na budúce: Vlastné formátovanie dokumentu, alebo znovu sa vraciame k tomu, čo sme tu už viackrát mali.

Neprehliadnite: