Funkce pro ovládání dialogových boxů

(action_tile key action-expression)
 
Argumenty:
 
key
- řetězec určující prvek dialogového boxu (atribut key v popisu dialogového boxu). Pozor argument je case-sensitive
 
action-expression
- řetězec (sekvence) vykonaný, když je vybrán prvek dialogu
 
- může odkazovat na:
 
$value
- aktuální hodnotu dialogového prvku
 
$key
- jméno
 
$data
- aplikačně-specifická data (jako množinu nastavenou pomocí client_data_tile)
 
$reason
- návratovou hodnotu
 
$x a $y
- souřadnice obrázku (v případě, že prvek je image_button)
 
Popis:
  - přiřadí akci, která bude vyvolána při aktivaci specifikovaného prvku v dialogovém boxu
  - akce přiřazená pomocí action_tile převezme standardní akci (přiřazenou pomocí new_dialog) nebo pomocí atributu dialogového prvku - action, pokud jsou tyto specifikovány
 
Pozor:
  - z funkce action_tile nelze vyvolat funkci command
 
Návratové hodnoty:
  - T
 
Příklady:
  Předpokládejme, že máme dialogový box, který obsahuje prvek text_box se jménem edit1. Dále v obslužném programu AutoLISPu se nachází následující volání funkce action_tile, která bude vyvolána po opuštění prvku text box:
  (action_tile "edit1" "(setq ns $value)")
    vrací: po opuštění prvku text box (edit1) bude vyvolán kód v těle funkce action_tile

(add_list string)
 
Argumenty:
 
string
- řetězec
 
Popis:
  - přidá nebo modifikuje řetězec v seznamu právě aktivního dialogového boxu
  - před použitím add_list, musíme nejprve otevřít a inicializovat seznam pomocí volání funkce start_list. Funkce start_list určuje zda bude řetězec string přidán nebo nahradí aktuální položku seznamu
 
Návratové hodnoty:
  - řetězec přidaný do seznamu - proběhlo-li vše v pořádku
  - nil - v opačném případě
 
Příklady:
  Předpokládejme, že právě aktivní DCL soubor obsahuje popup_list nebo list_box s klíčem longlist. Následující sekvence kódu inicializuje seznam a přidá do něj položky ze seznamu hodnot llist:
  (setq llist '("first line" "second line" "third line"))
  (start_list "longlist")
  (mapcar 'add_list llist)
  (end_list)
    - definice položek zobrazených v dialogových prvcích popup_list nebo list_box
   
  Změna druhé položky v dialogovém prvku:
  (start_list "longlist" 1 0)
  (add_list "2nd line")
  (end_list)

Podívejte se na funkce start_list a end_list.

(client_data_tile key clientdata)
 
Argumenty:
 
key
- řetězec specifikující dialogový prvek. Pozor argument je case-sensitive.
 
clientdata
- řetězec přiřazený k prvku s daným klíčem
 
- akce nebo funkce zpětného volání se může odkazovat na tento řetězec pomocí $data
 
Popis:
  - sváže data spravované aplikací s dialogovým prvkem
 
Návratové hodnoty:
  - nil

(dimx_tile key)
 
Argumenty:
 
key
- řetězec specifikující dotazovaný dialogový prvek. Pozor argument je case-sensitive.
 
Popis:
  - získá šířku prvku v dialogovém boxu
 
Návratové hodnoty:
 

- šířka prvku

  - pozor vrácená hodnota je o jednu menší než skutečná hodnota
 
Příklady:
  Získání šířky dialogového prvku s klíčem "my_tile":
  (setq tile_width (dimx_tile "my_tile"))

(dimy_tile key)
 
Argumenty:
 
key
- řetězec specifikující dotazovaný dialogový prvek. Pozor argument je case-sensitive.
 
Popis:
  - získá výšku prvku v dialogovém boxu
 
Návratové hodnoty:
 

- výška prvku

  - pozor vrácená hodnota je o jednu menší než skutečná hodnota
 
Příklady:
  Získání výšku dialogového prvku s klíčem "my_tile":
  (setq tile_height (dimy_tile "my_tile"))

(done_dialog [status])
 
Argumenty:
 
status
- kladné celé číslo, které vrací funkce start_dialog namísto 1 pro OK nebo 0 pro Cancel
 
- všechny hodnoty argumentu status větší než 1 je možné využít ve vaší aplikaci
 
Popis:
  - ukončí dialogový box
 
Poznámka:
  - musíte zavolat funkci done_dialog zevnitř výrazu nebo funkce zpětného volání (podívej se na action_tile)
 
Návratové hodnoty:
  - 2D souřadnice bodu - určují pozici dialogového boxu, když ho uživatel opustil
 
Poznámky k použití:
  Pokud potřebujete zajistit návrat pro tlačítko jehož klíč je "accept" nebo "cancel" (zpravidla se jedná o tlačítka OK a Cancel), musí být zpětné volání done_dialog explicitní. Pokud tomu tak není, uživatel může být uvězněn v dialogovém boxu.
  Pokud nepotřebujete explicitně volat tyto tlačítka a používáte standardní návratové tlačítko, AutoCAD je obslouží automaticky.
  Kromě toho, explicitní akce AutoLISPu pro tlačítko "accept" musí být specifikována hodnotou status = 1 (nebo aplikací definovanou hodnotou); v opačném případu, vrací start_dialog standardní hodnotu, 0, která signalizuje, že dialogový box byl stornován

(end_image)
 
Popis:
  - uzavře zpracování aktivního obrázku (image) v dialogovém boxu
  - funkce je doplňkem funkce start_image
 
Návratové hodnoty:
  - nil

Podívejte se na funkci start_image.

(end_list)
 
Popis:
  - uzavře zpracování aktivního seznamu v dialogovém boxu
  - funkce je doplňkem funkce start_list
 
Návratové hodnoty:
  - nil

Podívejte se na funkce add_list a start_list.

(fill_image x1 y1 width height color)
 
Argumenty:
 
x1
- x-ová souřadnice levého horního rohu obdelníku umístěného v (x1, y1). Musí být kladná hodnota.
 
y1
- y-ová souřadnice levého horního rohu. Musí být kladná hodnota.
 
width
- šířka vyplněné oblasti (v pixelech), relativně k x1.
 
height
- výška vyplněné oblasti (v pixelech), relativně k y1.
 
color
- číslo barvy v AutoCADu, nebo jedno z následujících logických čísel barev z tabulky:
 
Číslo barvy
aDI mnemonicky
Popis
 
-2
BGLCOLOR
aktuální pozadí grafické obrazovky AutoCADu.
 
-15
DBGLCOLOR
aktuální barva pozadí dialogového boxu.
 
-16
DFGLCOLOR
aktuální barva popředí (textu) dialogového boxu
 
-18
LINELCOLOR
aktuální barva čar v dialogovém boxu.
 
Popis:
  - nakreslí vyplněný obdelník v aktivním prvku image v dialogovém boxu
  - první (levý-horní) roh obdelníku je umístěn v bodu se souřadnicemi (x1, y1) a druhý (pravý-dolní) roh je umístěn v relativní vzdálenosti (width, height) od prvního rohu
  - počátek (0, 0) je levý-horní roh obrázku
 
Poznámka:
  - funkce fill_image musí být použito mezi voláním funkcí start_image a end_image
  - AutoLISP umožňuje získat souřadnice pravého-dolního rohu pomocí volání funkcí dimx_tile a dimy_tile
 
Návratové hodnoty:
  - celé číslo - reprezentující barvu výplně
 
Příklad:
  Příklad vyplnění obdelníku v dialogovém boxu barvou s kódem -2:
  (setq color -2) ;; barva pozadí obrazovky AutoCADu
  (fill_image
  0
  0
  (dimx_tile "slide_tile")
  (dimy_tile "slide_tile")
  color
  )
  (end_image)

(get_attr key attribute)
 
Argumenty:
 
key
- řetězec specifikující dialogový prvek. Pozor argument je case-sensitive.
 
attribute
- jméno atributu, jak vypadá v DCL popisu
 
Popis:
  - získání DCL hodnoty atributu z dialogového boxu
 
Návratové hodnoty:
  - řetězec - obsahující inicializační hodnotu atributu specifikovaný v DCL popisu

(get_tile key)
 
Argumenty:
 
key
- řetězec specifikující dialogový prvek. Pozor argument je case-sensitive.
 
Popis:
  - získání aktuální hodnoty z prvku dialogového boxu
 
Návratové hodnoty:
  - řetězec - obsahující hodnotu z dialogového prvku

(initdia [dialogflag])
 
Argumenty:
 
dialogflag
- celé číslo.
 
- není-li argument uveden nebo je roven nenulové hodnotě, další použití příkazu zobrazí dialogový box (místo zadání v příkazovém řádku)
 
- je-li argument roven 0, všechny předchozí volání funkce jsou vymazány, obnoví se standardní chování rozhraní příkazové řádky
 
Popis:
  - zobrazí dialogový box pro zadání hodnot místo dotazů v příkazové řádce
  - následující příkazy mohou používat funkci initdia:
 
- aTTDEF - aTTEXT - BHaTCH
 
- BLOCK - COLOR - IMaGE
 
- IMaGEaDJUST - INSERT - LaYER
 
- LINETYPE - MTEXT - PLOT
 
- RENaME - STYLE - TOOLBaR
 
- VIEW
 
Návratové hodnoty:
  - nil
 
Příklady:
  Ukázka výsledku volání příkazu PLOT bez použití funkce initdia:
  Příkaz: (command "_.PLOT")
    plot
    Enter a layout name : nil
    Enter a layout name :
  - AutoCAD se bude dotazovat na zadání jednotlivých parametrů pomocí příkazové řádky
   
  Použijete-li před voláním příkazu PLOT funkci initdia (viz následující příklad), otevře se dialogový box PLOT:
    (initdia)
    (command "_.PLOT")

(load_dialog dclfile)
 
Argumenty:
 
dclfile
- řetězec specifikující DCL soubor, který se má nahrát.Pokud není uvedena koncovka, je automaticky přidána koncovka .dcl
 
Popis:
  - nahraje DCL soubor (soubor s popisem dialogového boxu)
  - funkce hledá soubor ve vyhledávací cestě AutoCADu
  - tato funkce je doplňková funkce k funkci unload_dialog
  - pomocí vícenásobného volání funkce load_dialog je možné nahrát vícenásobné DCL soubory
 
Návratové hodnoty:
  - kladné celé číslo (dcl_id) - pokud proběhne vše v pořádku
  - záporné celé číslo - pokud load_dialog nemůže otevřít soubor
 
Poznámka:
  - dcl_id je použito jako ukazatel v subsekvenci volání funkcí new_dialog a unload_dialog

(mode_tile key mode)
 
Argumenty:
 
key
- řetězec specifikující dialogový prvek. Pozor argument je case-sensitive.
 
mode
- celé číslo viz následující tabulka:
 
 
0
- povolí prvek
 
 
1
- schová prvek
 
 
2
- nastaví fokus na prvek
 
 
3
- vybere obsah edit boxu
 
 
4
- zapne/vypne zvýrazňování obrázků
 
Popis:
  - nastaví mód prvku dialogového boxu
 
Návratové hodnoty:
  - nil

(new_dialog dlgname dcl_id [action [screen-pt]])
 
Argumenty:
 
dlgname
- řetězec specifikující dialogový box
 
dcl_id
- identifikátor DCL souboru, získaný funkcí load_dialog
 
action
- řetězec obsahující výrazy AutoLISPu - implicitní akce
 
- pokud nepotřebujete definovat implicitní akci, musíte uvést prázdný řetězec ("")
 
- argument action je vyžadován v případě použití argumentu screen-pt
 
- tento argument se používá pro přiřazení akce dialogovému prvku, který nemá odchycené zpětné volání pomocí funkce action_tile nebo v DCL souboru
 
screen-pt
- seznam 2D bodu - souřadnice (X,Y) - umístěnní dialogového boxu na obrazovce.
 
- tento bod reprezentuje levý-horní roh dialogového boxu
 
- pokud jsou souřadnice rovné (-1, -1) je otevřený dialogový box umístěn do středu grafické obrazovky AutoCADu
 
Popis:
  - začne používat nový dialogový box, zobrazí ho a může také specfikovat implicitní akci
 
Návratové hodnoty:
  - T - vše proběhlo v pořádku
  - nil - v opačném případě

(set_tile key value)
 
Argumenty:
 
key
- řetězec specifikující prvek
 
value
- řetězec reprezentující novou hodnotu
 
Popis:
  - nastaví hodnotu dialogového prvku
 
Návratové hodnoty:
  - hodnota - na kterou je nastaven dialogový prvek

(slide_image x1 y1 width height sldname)
 
Argumenty:
 
x1
- x-ová vzdálenost od levého horního rohu prvku v pixelech. Musí být kladná hodnota.
 
y1
- y-ová vzdálenost od levého horního rohu prvku v pixelech. Musí být kladná hodnota.
 
width
- šířka obrázku (v pixelech)
 
height
- výška obrázku (v pixelech)
 
sldname
- identifikátor slidu
 
- argument může být soubor se slidem (.sld) nebo slide v slide library (.slb)
 
- formát argumentu sldname:
 
  sldname - případ souboru se slidem
 
  libname(sldname) - případ slide library
 
Popis:
  - zobrazí slide AutoCADu v právě aktivním dialogovém prvku image
 
Návratové hodnoty:
  - řetězec obsahující sldname
 
Příklady:
  Příklad zobrazení slidu ze souboru "myslide":
  (slide_image
  0
  0
  (dimx_tile "slide_tile")
  (dimy_tile "slide_tile")
  "myslide"
  )
  (end_image)

(start_dialog)
 
Popis:
  - zobrazí dialogový box a začne akceptovat vstup od uživatele
  - nejdříve se musí inicializovat dialogový box pomocí volání funkce new_dialog
  - otevřený dialog zůstane aktivní až do volání funkce done_dialog
  - funkce done_dialog je obvykle svázána prvkem, který má klíč key = "accept" - většinou tlačítko OK a prvkem, který má klíč key = "cancel" - většinou tlačítko "cancel"
 
Návratové hodnoty:
  - start_dialog vrací nepovinný stav poslaný funkci done_dialog
  - výchozí hodnota je 1 - uživatel zmáčkl OK
  - 0 pokud uživatel zmáčkl Cancel
  - -1 pokud všechny dialogové boxy jsou ukončeny pomocí term_dialog
  - pokud je funkci done_dialog předána hodnota status > 1, funkce start_dialog vrátí tuto hodnotu. Tuto hodnotu je možné poté zpracováno v aplikaci.

(start_image key)
 
Argumenty:
 
key
- řetězec specifikující prvek. argument je case-sensitive.
 
Popis:
  - odstartuje tvorbu obrázku v prvku dialogového boxu
  - funkce je volána před funkcemi fill_image, slide_image a vector_image
  - tvorbu obrázku uzavírá poté funkce end_image
 
Návratová hodnota:
  - argument key - proběhlo-li vše v pořádku
  - nil - v opačném případě
 
Poznámka:
  - nepoužívejte funkci set_tile mezi voláním funkcí start_image a end_image.

(start_list key [operation [index]])
 
Argumenty:
 
key
- řetězec specifikující prvek dialogového boxu. argument je case-sensitive.
 
operation
- celé číslo, indikující typ operace se seznamem. Jsou možné následující hodnoty:
 
 
1
- změní obsah vybraného seznamu
 
 
2
- přídá nový prvek do seznamu
 
 
3
- vymaže starý seznam a vytvoří nový (implicitní hodnota)
 
index
- číslo identifikující měněnou položku seznamu voláním funkce add_list
 
- první položka v seznamu má index rovný 0
 
- není-li specifikovaná hodnota indexu, bere se implicitní hodnota = 0
 
- argument index je ignorován v případě, že start_dialog nevykonává operaci změny (argument operation = 2, nebo 3)
 
Popis:
  - spustí zpracování seznamu v dialogovém prvku list_box nebo popup_list
  - po volání funkce start_list jsou volány funkce add_list a end_list. Poslední jmenovaná funkce ukončuje zpracování seznamu (je doplňkem k funkci start_list)
 
Návratové hodnoty:
  - jméno spuštěného seznamu
 
Poznámka:
  - nepoužívejte funkci set_tile mezi voláním funkcí start_list a end_list

(term_dialog)
 
Popis:
  - ukončí všechny dialogové boxy, když uživatel stornuje libovolný z nich
  - je-li aplikace ukončena, zavolá AutoCAD automaticky funkci term_dialog
 
Návratová hodnota:
  - nil

(unload_dialog dcl_id)
 
Argumenty:
 
dcl_id
- identifikátor DCL souboru získaný z funkce load_dialog
 
Popis:
  - uvolní DCL soubor
  - uvolní DCL soubor přiřazený k identifikátoru dcl_id (svázáno funkcí new_dialog)
  - uvolní paměť
 
Návratové hodnoty:
  - nil

Podívejte se na funkce load_dialog a new_dialog.

(vector_image x1 y1 x2 y2 color)
 
Argumenty:
 
x1
- x-ová souřadnice prvního bodu.
 
y1
- y-ová souřadnice prvního bodu.
 
x2
- x-ová souřadnice druhého bodu.
 
y2
- y-ová souřadnice druhého bodu..
 
color
- číslo barvy v AutoCADu, nebo jedno z následujících logických čísel barev z tabulky:
 
Číslo barvy
aDI mnemonicky
Popis
 
-2
BGLCOLOR
aktuální pozadí grafické obrazovky AutoCADu.
 
-15
DBGLCOLOR
aktuální barva pozadí dialogového boxu.
 
-16
DFGLCOLOR
aktuální barva popředí (textu) dialogového boxu
 
-18
LINELCOLOR
aktuální barva čar v dialogovém boxu.
 
Popis:
  - nakreslí vektor v aktivním prvku image v dialogovém boxu
  - nakreslený vektor začíná v bodě (x1, y1) a končí v bodě (x2, y2)
  - počátek (0, 0) je levý-horní roh obrázku
 
Poznámka:
  - funkce vector_image musí být použito mezi voláním funkcí start_image a end_image
  - AutoLISP umožňuje získat souřadnice pravého-dolního rohu pomocí volání funkcí dimx_tile a dimy_tile
 
Návratové hodnoty:
  - celé číslo reprezentující barvu vektoru
 
Příklad:
  Příklad nakreslení vektoru v dialogovém boxu barvou s kódem -2:
  (setq color -2) ;; barva pozadí obrazovky AutoCADu
  (vector_image
  0
  0
  (dimx_tile "slide_tile")
  (dimy_tile "slide_tile")
  color
  )
  (end_image)