PageRenderTime 592ms CodeModel.GetById 54ms RepoModel.GetById 3ms app.codeStats 2ms

/amaya/windialogapi.c

https://github.com/pffy/Amaya-Editor
C | 4236 lines | 3601 code | 324 blank | 311 comment | 428 complexity | 251235d4c40f6a6f9ebb0a3f1a298df0 MD5 | raw file
  1. /*
  2. *
  3. * (c) COPYRIGHT INRIA, 1996-2005
  4. * Please first read the full copyright statement in file COPYRIGHT.
  5. *
  6. */
  7. /*
  8. * Windows Dialogue API routines for Amaya
  9. *
  10. * Authors: I. Vatton (W3C/INRIA),
  11. * R. Guetari (W3C/INRIA),
  12. * J. Kahan (W3C/INRIA)
  13. *
  14. */
  15. #ifdef _WINGUI
  16. #include <windows.h>
  17. #include "resource.h"
  18. #include "constmedia.h"
  19. #include "corrmsg.h"
  20. #define THOT_EXPORT extern
  21. #include "amaya.h"
  22. #include "constmenu.h"
  23. #include "wininclude.h"
  24. extern ThotWindow FrRef[MAX_FRAME + 2];
  25. extern int ActiveFrame;
  26. #ifndef MAX_PROPOSAL_CHKR
  27. #define MAX_PROPOSAL_CHKR 10
  28. #endif /* MAX_PROPOSAL_CHKR */
  29. #ifndef MAX_WORD_LEN
  30. #define MAX_WORD_LEN 30
  31. #endif /* MAX_WORD_LEN */
  32. #define MAX_BUFF 4096
  33. /* JK: I think that some of these widgets, which are general, should
  34. go into the thotlib, such as IDC_LANGEDIT. We have a dupblication of
  35. IDC refs between thotlib and Amaya */
  36. #define IDC_EDITRULE 20001
  37. #define IDC_LANGEDIT 20002
  38. #define IDC_CSSEDIT 20004
  39. #define OPT1 1110
  40. #define OPT2 1111
  41. #define OPT3 1112
  42. #define OPT4 1113
  43. #define OPT5 1114
  44. #define OPT6 1115
  45. #define OPT7 1116
  46. #define OPT8 1117
  47. #define OPT9 1118
  48. #define REPEAT_XY 0
  49. #define REPEAT_X 1
  50. #define REPEAT_Y 2
  51. #define NO_REPEAT 3
  52. int WIN_IndentValue;
  53. int WIN_OldLineSp;
  54. int WIN_NormalLineSpacing;
  55. extern HINSTANCE hInstance;
  56. extern HDC TtPrinterDC;
  57. extern char DocToOpen[MAX_LENGTH];
  58. extern ThotBool TtIsPrinterTrueColor;
  59. extern ThotBool bUserAbort;
  60. extern ThotBool WithToC;
  61. extern ThotBool NumberLinks;
  62. extern ThotBool PrintURL;
  63. extern ThotBool IgnoreCSS;
  64. extern HFONT DialogFont;
  65. ThotWindow ghwndAbort;
  66. ThotWindow ghwndMain;
  67. ThotWindow MakeIDHwnd;
  68. ThotBool gbAbort;
  69. Document TmpDoc; /* used to pass the Document id to the
  70. callback when setting up a menu */
  71. static HDC hDC;
  72. static HDC hMemDC;
  73. static char UrlToOpen[MAX_LENGTH];
  74. static char HrefUrl[MAX_LENGTH];
  75. static char TmpDocName[MAX_LENGTH];
  76. static char AltText[MAX_LENGTH];
  77. static char Message[300];
  78. static char Message2[300];
  79. static char Message3[300];
  80. static char WndTitle[100];
  81. static char CurrentPathName[100];
  82. static char WinCurLang[100];
  83. static char WinCurXML[100];
  84. static char CurFileToPrint[MAX_PATH];
  85. static char AttDlgTitle[100];
  86. static char MathEntName[MAX_TXT_LEN];
  87. static char SzBuffer[MAX_BUFF];
  88. static char *ClassList;
  89. static char *ItemList;
  90. static char *SavList;
  91. static char *cssList;
  92. static char *mimeType;
  93. static char *charSet;
  94. static char *string_par1;
  95. static char *string_par2;
  96. static char text[1024];
  97. static int repeatMode;
  98. static int fontNum;
  99. static int fontStyle;
  100. static int fontWeight;
  101. static int fontUnderline;
  102. static int fontSize;
  103. static int docSelect;
  104. static int dirSelect;
  105. static int currAttrVal;
  106. static int Num_zoneRecess;
  107. static int Num_zoneLineSpacing;
  108. static int Num_lang;
  109. static int XMLnum;
  110. static int Align_num;
  111. static int Indent_value;
  112. static int Indent_num;
  113. static int Old_lineSp;
  114. static int Line_spacingNum;
  115. static int attDlgNbItems;
  116. static int numCols;
  117. static int numRows;
  118. static int tBorder;
  119. static int formAlt;
  120. static int iLocation;
  121. static int iMode;
  122. static int indexImgFilter = 1;
  123. static int indexLinkFilter = 1;
  124. static int indexFilter = 1;
  125. static UINT itemIndex;
  126. static UINT nbClass;
  127. static UINT NbItem;
  128. static ThotBool saveBeforeClose;
  129. static ThotBool closeDontSave;
  130. static ThotBool isHref;
  131. static ThotBool WithEdit;
  132. static ThotBool WithCancel;
  133. static ThotBool WithBorder;
  134. static ThotBool HTMLFormat;
  135. static ThotBool ReleaseFocus;
  136. static ThotBool RequiredAttr;
  137. static OPENFILENAME OpenFileName;
  138. static char *SzFilter;
  139. static ThotWindow wndCSSList;
  140. static ThotWindow wndXMLList;
  141. static ThotWindow wndLangList;
  142. static ThotWindow wndListRule;
  143. static ThotWindow wndEditRule;
  144. static ThotWindow WndClose = NULL;
  145. static ThotWindow transURLWnd;
  146. static ThotWindow copyImgWnd;
  147. static ThotWindow WndSearchEdit;
  148. static ThotWindow GraphPal = NULL;
  149. static ThotWindow MathPal = NULL;
  150. static ThotWindow GreekPal = NULL;
  151. static ThotWindow CharacterForm = NULL;
  152. static ThotWindow FormatForm = NULL;
  153. static ThotWindow PrintForm = NULL;
  154. static ThotWindow LangForm = NULL;
  155. static ThotWindow XMLForm = NULL;
  156. static ThotWindow AttrForm = NULL;
  157. static ThotWindow SaveAsForm = NULL;
  158. static ThotWindow MimeTypeDlg = NULL;
  159. static ThotWindow InitConfirmForm = NULL;
  160. static ThotWindow DocInfo[DocumentTableLength];
  161. #include "init_f.h"
  162. /*----------------------------------------------------------------------
  163. DisplayStyleValue: update the property in Style dialog
  164. ----------------------------------------------------------------------*/
  165. void DisplayStyleValue (char *property, char *start_value, char *end_value)
  166. {
  167. }
  168. /*----------------------------------------------------------------------
  169. ReusePrinterDC()
  170. Call the Windows print dialogue or reuse the previous context.
  171. ----------------------------------------------------------------------*/
  172. void ReusePrinterDC ()
  173. {
  174. int orientation, paper;
  175. if (TtaGetPrinterDC (TRUE, &orientation, &paper))
  176. {
  177. ThotCallback (BasePrint + PPrinterName, STRING_DATA, CurFileToPrint);
  178. ThotCallback (BasePrint + FormPrint, INTEGER_DATA, (char *)1);
  179. }
  180. }
  181. /*********************************************************
  182. * *
  183. * C A L L B A C K S *
  184. * *
  185. *********************************************************/
  186. /*-----------------------------------------------------------------------
  187. AltDlgProc
  188. ------------------------------------------------------------------------*/
  189. LRESULT CALLBACK AltDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  190. LPARAM lParam)
  191. {
  192. switch (msg)
  193. {
  194. case WM_INITDIALOG:
  195. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_ALT));
  196. SetWindowText (GetDlgItem (hwnDlg, IDC_ALTTEXT),
  197. TtaGetMessage (AMAYA, AM_ALT));
  198. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  199. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  200. SetWindowText (GetDlgItem (hwnDlg, ID_DONE),
  201. TtaGetMessage (LIB, TMSG_DONE));
  202. SetDlgItemText (hwnDlg, IDC_GETALT, "");
  203. break;
  204. case WM_COMMAND:
  205. switch (LOWORD (wParam))
  206. {
  207. case ID_CONFIRM:
  208. case ID_DONE:
  209. GetDlgItemText (hwnDlg, IDC_GETALT, AltText, sizeof (AltText) - 1);
  210. ThotCallback (BaseImage + ImageAlt, STRING_DATA, AltText);
  211. if (!AltText || AltText[0] == 0)
  212. MessageBox (hwnDlg, TtaGetMessage (AMAYA, AM_ALT_MISSING),
  213. TtaGetMessage (AMAYA, AM_ALT), MB_OK | MB_ICONERROR);
  214. else
  215. EndDialog (hwnDlg, ID_CONFIRM);
  216. ThotCallback (BaseImage + FormAlt, STRING_DATA, (char *)1);
  217. break;
  218. }
  219. break;
  220. default:
  221. return FALSE;
  222. }
  223. return TRUE;
  224. }
  225. /*-----------------------------------------------------------------------
  226. XMLDlgProc
  227. ------------------------------------------------------------------------*/
  228. LRESULT CALLBACK XMLDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  229. LPARAM lParam)
  230. {
  231. int index = 0;
  232. UINT i = 0;
  233. switch (msg)
  234. {
  235. case WM_INITDIALOG:
  236. /* get the default GUI font */
  237. /* destroy the focus of the previous open dialog */
  238. XMLForm = hwnDlg;
  239. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_EL_TYPE));
  240. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY), TtaGetMessage (LIB, TMSG_INSERT));
  241. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_DONE));
  242. SetWindowText (GetDlgItem (hwnDlg, IDC_XMLELEM),
  243. TtaGetMessage (LIB, TMSG_EL_TYPE));
  244. wndXMLList = GetDlgItem (hwnDlg, IDC_XMLLIST);
  245. /* set the font of the window */
  246. WIN_SetDialogfont (wndXMLList);
  247. SendMessage (wndXMLList, LB_RESETCONTENT, 0, 0);
  248. while (i < NbItem && ItemList[index] != EOS)
  249. {
  250. SendMessage (wndXMLList, LB_INSERTSTRING, i, (LPARAM) &ItemList[index]);
  251. index += strlen (&ItemList[index]) + 1;/* Longueur de l'intitule */
  252. i++;
  253. }
  254. SetWindowText (GetDlgItem (hwnDlg, IDC_XMLEDIT), "");
  255. XMLnum = -1;
  256. break;
  257. case WM_CLOSE:
  258. case WM_DESTROY:
  259. XMLForm = NULL;
  260. EndDialog (hwnDlg, ID_DONE);
  261. break;
  262. case WM_COMMAND:
  263. if (LOWORD (wParam) == 1 || HIWORD (wParam) == LBN_SELCHANGE ||
  264. HIWORD (wParam) == LBN_DBLCLK)
  265. {
  266. if (HIWORD (wParam) == LBN_SELCHANGE)
  267. {
  268. XMLnum = SendMessage (wndXMLList, LB_GETCURSEL, 0, 0);
  269. XMLnum = SendMessage (wndXMLList, LB_GETTEXT, XMLnum,
  270. (LPARAM) WinCurXML);
  271. SetWindowText (GetDlgItem (hwnDlg, IDC_XMLEDIT), WinCurXML);
  272. }
  273. else if (HIWORD (wParam) == LBN_DBLCLK)
  274. {
  275. if (LB_ERR == (XMLnum = SendMessage (wndLangList, LB_GETCURSEL, 0, 0L)))
  276. break;
  277. XMLnum = SendMessage (wndLangList, LB_GETTEXT, XMLnum,
  278. (LPARAM) WinCurLang);
  279. }
  280. SetDlgItemText (hwnDlg, IDC_XMLEDIT, WinCurXML);
  281. ThotCallback (NumSelectElemToBeCreated, STRING_DATA, WinCurXML);
  282. if (HIWORD (wParam) == LBN_DBLCLK)
  283. {
  284. /* confirm the selection */
  285. ThotCallback (NumFormElemToBeCreated, INTEGER_DATA, (char*) 1);
  286. XMLForm = NULL;
  287. EndDialog (hwnDlg, ID_DONE);
  288. return FALSE;
  289. }
  290. }
  291. switch (LOWORD (wParam))
  292. {
  293. case ID_APPLY:
  294. GetDlgItemText (hwnDlg, IDC_XMLEDIT, WinCurXML, sizeof (WinCurXML) - 1);
  295. if (WinCurXML[0] != EOS)
  296. ThotCallback (NumSelectElemToBeCreated, STRING_DATA, WinCurXML);
  297. ThotCallback (NumFormElemToBeCreated, INTEGER_DATA, (char*) 1);
  298. if (WinCurXML[0] != EOS)
  299. {
  300. /* reinitialize the list */
  301. wndXMLList = GetDlgItem (hwnDlg, IDC_XMLLIST);
  302. while (i < NbItem && ItemList[index] != EOS)
  303. {
  304. if (i == NbItem - 1)
  305. SendMessage (wndXMLList, LB_INSERTSTRING, i, (LPARAM) &ItemList[index]);
  306. index += strlen (&ItemList[index]) + 1;
  307. i++;
  308. }
  309. SetWindowText (GetDlgItem (hwnDlg, IDC_XMLEDIT), "");
  310. XMLnum = -1;
  311. }
  312. break;
  313. case ID_DONE:
  314. ThotCallback (NumFormElemToBeCreated, INTEGER_DATA, (char*) 0);
  315. XMLForm = NULL;
  316. EndDialog (hwnDlg, ID_DONE);
  317. break;
  318. case WM_CLOSE:
  319. case WM_DESTROY:
  320. XMLForm = NULL;
  321. EndDialog (hwnDlg, ID_DONE);
  322. break;
  323. }
  324. break;
  325. default: return FALSE;
  326. }
  327. return TRUE;
  328. }
  329. /*-----------------------------------------------------------------------
  330. CSSDlgProc
  331. ------------------------------------------------------------------------*/
  332. LRESULT CALLBACK CSSDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  333. LPARAM lParam)
  334. {
  335. int index = 0;
  336. UINT i = 0;
  337. switch (msg)
  338. {
  339. case WM_INITDIALOG:
  340. SetWindowText (hwnDlg, WndTitle);
  341. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  342. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  343. SetWindowText (GetDlgItem (hwnDlg, ID_DONE),
  344. TtaGetMessage (LIB, TMSG_DONE));
  345. SetWindowText (GetDlgItem (hwnDlg, IDC_CSSFILES),
  346. TtaGetMessage (AMAYA, AM_CSS_FILE));
  347. wndCSSList = GetDlgItem (hwnDlg, IDC_CSSLIST);
  348. /* set the font of the window */
  349. WIN_SetDialogfont (wndCSSList);
  350. SendMessage (wndCSSList, LB_RESETCONTENT, 0, 0);
  351. while (i < NbItem && cssList[index] != EOS)
  352. {
  353. SendMessage (wndCSSList, LB_INSERTSTRING, i, (LPARAM) &cssList[index]);
  354. index += strlen (&cssList[index]) + 1; /* entry length */
  355. i++;
  356. }
  357. itemIndex = SendMessage (wndCSSList, LB_SETCURSEL, (WPARAM)0, (LPARAM)0);
  358. SetDlgItemText (hwnDlg, IDC_CSSEDIT, SzBuffer);
  359. break;
  360. case WM_CLOSE:
  361. case WM_DESTROY:
  362. EndDialog (hwnDlg, ID_DONE);
  363. break;
  364. case WM_COMMAND:
  365. if (LOWORD (wParam) == IDC_CSSLIST && HIWORD (wParam) == LBN_SELCHANGE)
  366. {
  367. itemIndex = SendMessage (wndCSSList, LB_GETCURSEL, 0, 0);
  368. itemIndex = SendMessage (wndCSSList, LB_GETTEXT, itemIndex, (LPARAM) SzBuffer);
  369. SetDlgItemText (hwnDlg, IDC_CSSEDIT, SzBuffer);
  370. ThotCallback (BaseCSS + CSSSelect, STRING_DATA, SzBuffer);
  371. }
  372. switch (LOWORD (wParam))
  373. {
  374. case ID_CONFIRM:
  375. ThotCallback (BaseCSS + CSSForm, INTEGER_DATA, (char*) 1);
  376. EndDialog (hwnDlg, ID_CONFIRM);
  377. break;
  378. case IDCANCEL:
  379. case ID_DONE:
  380. ThotCallback (BaseCSS + CSSForm, INTEGER_DATA, (char*) 0);
  381. EndDialog (hwnDlg, ID_DONE);
  382. break;
  383. }
  384. break;
  385. default:
  386. return FALSE;
  387. }
  388. return TRUE;
  389. }
  390. /*-----------------------------------------------------------------------
  391. TextDlgProc
  392. ------------------------------------------------------------------------*/
  393. LRESULT CALLBACK TextDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  394. LPARAM lParam)
  395. {
  396. switch (msg)
  397. {
  398. case WM_INITDIALOG:
  399. if (isHref)
  400. {
  401. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_ATTRIBUTE));
  402. SetWindowText (GetDlgItem (hwnDlg, IDC_URL_TEXT),
  403. TtaGetMessage (AMAYA, AM_HREF_VALUE));
  404. }
  405. else
  406. {
  407. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_CHANGE_TITLE));
  408. SetWindowText (GetDlgItem (hwnDlg, IDC_URL_TEXT),
  409. TtaGetMessage (AMAYA, AM_TITLE));
  410. }
  411. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  412. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  413. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_CANCEL));
  414. SetDlgItemText (hwnDlg, IDC_URLEDIT, UrlToOpen);
  415. SetFocus (GetDlgItem (hwnDlg, IDC_URLEDIT));
  416. break;
  417. case WM_CLOSE:
  418. case WM_DESTROY:
  419. EndDialog (hwnDlg, ID_DONE);
  420. break;
  421. case WM_COMMAND:
  422. switch (LOWORD (wParam))
  423. {
  424. case ID_CONFIRM:
  425. GetDlgItemText (hwnDlg, IDC_URLEDIT, UrlToOpen, sizeof (UrlToOpen) - 1);
  426. if (isHref)
  427. {
  428. AttrHREFvalue = TtaGetMemory (strlen (UrlToOpen) + 1);
  429. strcpy (AttrHREFvalue, UrlToOpen);
  430. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*) 1);
  431. }
  432. else
  433. {
  434. ThotCallback (BaseDialog + TitleText, STRING_DATA, UrlToOpen);
  435. ThotCallback (BaseDialog + TitleForm, INTEGER_DATA, (char*) 1);
  436. }
  437. EndDialog (hwnDlg, ID_CONFIRM);
  438. break;
  439. case ID_DONE:
  440. if (isHref)
  441. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*) 0);
  442. else
  443. ThotCallback (BaseDialog + TitleForm, INTEGER_DATA, (char*) 0);
  444. EndDialog (hwnDlg, ID_DONE);
  445. break;
  446. }
  447. break;
  448. default:
  449. break;
  450. }
  451. return FALSE;
  452. }
  453. /*-----------------------------------------------------------------------
  454. HRefDlgProc
  455. ------------------------------------------------------------------------*/
  456. LRESULT CALLBACK HRefDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  457. LPARAM lParam)
  458. {
  459. switch (msg)
  460. {
  461. case WM_INITDIALOG:
  462. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_ATTRIBUTE));
  463. SetWindowText (GetDlgItem (hwnDlg, IDC_URLMESSAGE),
  464. TtaGetMessage (AMAYA, AM_LOCATION));
  465. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  466. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  467. SetWindowText (GetDlgItem (hwnDlg, IDC_BROWSE), TtaGetMessage (AMAYA, AM_BROWSE));
  468. SetWindowText (GetDlgItem (hwnDlg, IDC_CLICK), TtaGetMessage (AMAYA, AM_CLICK));
  469. SetWindowText (GetDlgItem (hwnDlg, IDC_CLEAR), TtaGetMessage (AMAYA, AM_CLEAR));
  470. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  471. if (TmpDocName[0] != EOS)
  472. SetDlgItemText (hwnDlg, IDC_GETURL, TmpDocName);
  473. else
  474. SetDlgItemText (hwnDlg, IDC_GETURL, "");
  475. HrefUrl[0] = 0;
  476. /* set the default focus and return FALSE to validate it */
  477. SetFocus (GetDlgItem (hwnDlg, IDC_GETURL));
  478. return FALSE;
  479. break;
  480. case WM_COMMAND:
  481. if (HIWORD (wParam) == EN_UPDATE)
  482. {
  483. if (LOWORD (wParam) == IDC_GETURL)
  484. {
  485. GetDlgItemText (hwnDlg, IDC_GETURL, HrefUrl, sizeof (HrefUrl) - 1);
  486. if (HrefUrl[0] != 0)
  487. ThotCallback (BaseDialog + AttrHREFText, STRING_DATA, HrefUrl);
  488. }
  489. }
  490. switch (LOWORD (wParam))
  491. {
  492. case ID_CONFIRM:
  493. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*)1);
  494. EndDialog (hwnDlg, ID_CONFIRM);
  495. break;
  496. case IDC_BROWSE:
  497. OpenFileName.lStructSize = sizeof (OPENFILENAME);
  498. OpenFileName.hwndOwner = hwnDlg;
  499. OpenFileName.hInstance = hInstance;
  500. OpenFileName.lpstrFilter = (LPTSTR) SzFilter;
  501. OpenFileName.lpstrCustomFilter = (LPTSTR) NULL;
  502. OpenFileName.nMaxCustFilter = 0L;
  503. OpenFileName.nFilterIndex = indexLinkFilter;
  504. OpenFileName.lpstrFile = (LPTSTR) TmpDocName;
  505. OpenFileName.nMaxFile = MAX_LENGTH;
  506. OpenFileName.lpstrInitialDir = (LPTSTR) DirectoryName;
  507. OpenFileName.lpstrTitle = TtaGetMessage (AMAYA, AM_BROWSE);
  508. OpenFileName.nFileOffset = 0;
  509. OpenFileName.nFileExtension = 0;
  510. OpenFileName.lpstrDefExt = "html";
  511. OpenFileName.lCustData = 0;
  512. OpenFileName.Flags = OFN_SHOWHELP | OFN_HIDEREADONLY;
  513. if (GetOpenFileName (&OpenFileName))
  514. {
  515. strcpy (HrefUrl, OpenFileName.lpstrFile);
  516. indexLinkFilter = OpenFileName.nFilterIndex;
  517. }
  518. SetDlgItemText (hwnDlg, IDC_GETURL, HrefUrl);
  519. if (HrefUrl[0] != EOS)
  520. {
  521. ThotCallback (BaseDialog + AttrHREFText, STRING_DATA, HrefUrl);
  522. EndDialog (hwnDlg, ID_CONFIRM);
  523. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*) 1);
  524. }
  525. break;
  526. case IDC_CLICK:
  527. EndDialog (hwnDlg, IDCANCEL);
  528. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*) 3);
  529. break;
  530. case IDC_CLEAR:
  531. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*) 4);
  532. TmpDocName[0] = EOS;
  533. SetDlgItemText (hwnDlg, IDC_GETURL, "");
  534. break;
  535. case IDCANCEL:
  536. ThotCallback (BaseDialog + AttrHREFForm, INTEGER_DATA, (char*) 0);
  537. HrefUrl[0] = EOS;
  538. EndDialog (hwnDlg, IDCANCEL);
  539. break;
  540. }
  541. break;
  542. default:
  543. return FALSE;
  544. }
  545. return TRUE;
  546. }
  547. /*-----------------------------------------------------------------------
  548. HelpDlgProc
  549. ------------------------------------------------------------------------*/
  550. LRESULT CALLBACK HelpDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  551. LPARAM lParam)
  552. {
  553. switch (msg)
  554. {
  555. case WM_INITDIALOG:
  556. SetWindowText (GetDlgItem (hwnDlg, IDC_VERSION), CurrentPathName);
  557. SetWindowText (GetDlgItem (hwnDlg, IDC_ABOUT1), Message);
  558. SetWindowText (GetDlgItem (hwnDlg, IDC_ABOUT2), Message2);
  559. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  560. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  561. break;
  562. case WM_CLOSE:
  563. case WM_DESTROY:
  564. EndDialog (hwnDlg, ID_CONFIRM);
  565. break;
  566. case WM_COMMAND:
  567. switch (LOWORD (wParam))
  568. {
  569. case ID_CONFIRM:
  570. EndDialog (hwnDlg, ID_CONFIRM);
  571. break;
  572. }
  573. break;
  574. default:
  575. return (FALSE);
  576. }
  577. return TRUE;
  578. }
  579. /*-----------------------------------------------------------------------
  580. MathDlgProc
  581. ------------------------------------------------------------------------*/
  582. LRESULT CALLBACK MathDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  583. LPARAM lParam)
  584. {
  585. switch (msg)
  586. {
  587. case WM_INITDIALOG:
  588. MathPal = hwnDlg;
  589. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_BUTTON_MATH));
  590. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_DONE));
  591. break;
  592. case WM_CLOSE:
  593. case WM_DESTROY:
  594. MathPal = NULL;
  595. EndDialog (hwnDlg, ID_DONE);
  596. break;
  597. case WM_COMMAND:
  598. switch (LOWORD (wParam))
  599. {
  600. case ID_DONE:
  601. MathPal = NULL;
  602. EndDialog (hwnDlg, ID_DONE);
  603. break;
  604. case IDC_MATH:
  605. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)0);
  606. break;
  607. case IDC_ROOT:
  608. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)1);
  609. break;
  610. case IDC_SROOT:
  611. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)2);
  612. break;
  613. case IDC_DIV:
  614. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)3);
  615. break;
  616. case IDC_POWIND:
  617. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)4);
  618. break;
  619. case IDC_IND:
  620. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)5);
  621. break;
  622. case IDC_POW:
  623. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)6);
  624. break;
  625. case IDC_UPDN:
  626. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)7);
  627. break;
  628. case IDC_DOWN:
  629. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)8);
  630. break;
  631. case IDC_UP:
  632. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)9);
  633. break;
  634. case IDC_PAREXP:
  635. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)10);
  636. break;
  637. case IDC_UDLR:
  638. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)11);
  639. break;
  640. case IDC_MATRIX:
  641. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)12);
  642. break;
  643. case IDC_SYM:
  644. ThotCallback (MathsDialogue + MenuMaths, INTEGER_DATA, (char*)13);
  645. break;
  646. }
  647. SetFocus (FrRef[ActiveFrame]);
  648. break;
  649. default:
  650. return (FALSE);
  651. }
  652. return TRUE;
  653. }
  654. /*-----------------------------------------------------------------------
  655. PrintDlgProc
  656. ------------------------------------------------------------------------*/
  657. LRESULT CALLBACK PrintDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  658. LPARAM lParam)
  659. {
  660. int orientation, paper;
  661. switch (msg)
  662. {
  663. case WM_INITDIALOG:
  664. PrintForm = hwnDlg;
  665. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_LIB_PRINT));
  666. SetWindowText (GetDlgItem (hwnDlg, ID_PRINT),
  667. TtaGetMessage (LIB, TMSG_BUTTON_PRINT));
  668. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL),
  669. TtaGetMessage (LIB, TMSG_CANCEL));
  670. SetWindowText (GetDlgItem (hwnDlg, IDC_OPTIONS),
  671. TtaGetMessage (LIB, TMSG_OPTIONS));
  672. SetWindowText (GetDlgItem (hwnDlg, IDC_TABOFCONTENTS),
  673. TtaGetMessage (AMAYA, AM_PRINT_TOC));
  674. SetWindowText (GetDlgItem (hwnDlg, IDC_LINKS),
  675. TtaGetMessage (AMAYA, AM_NUMBERED_LINKS));
  676. SetWindowText (GetDlgItem (hwnDlg, IDC_PRINTURL),
  677. TtaGetMessage (AMAYA, AM_PRINT_URL));
  678. SetWindowText (GetDlgItem (hwnDlg, IDC_IGNORE_CSS),
  679. TtaGetMessage (AMAYA, AM_WITH_CSS));
  680. CheckDlgButton (hwnDlg, IDC_PRINTURL, PrintURL);
  681. CheckDlgButton (hwnDlg, IDC_IGNORE_CSS, IgnoreCSS);
  682. CheckDlgButton (hwnDlg, IDC_TABOFCONTENTS, WithToC);
  683. CheckDlgButton (hwnDlg, IDC_LINKS, NumberLinks);
  684. break;
  685. case WM_COMMAND:
  686. switch (LOWORD (wParam))
  687. {
  688. case IDC_TABOFCONTENTS:
  689. ThotCallback (BasePrint + PrintOptions, INTEGER_DATA, (char*) 1);
  690. break;
  691. case IDC_LINKS:
  692. ThotCallback (BasePrint + PrintOptions, INTEGER_DATA, (char*) 2);
  693. break;
  694. case IDC_PRINTURL:
  695. ThotCallback (BasePrint + PrintOptions, INTEGER_DATA, (char*) 3);
  696. break;
  697. case IDC_IGNORE_CSS:
  698. ThotCallback (BasePrint + PrintOptions, INTEGER_DATA, (char*) 4);
  699. break;
  700. case ID_PRINT:
  701. ThotCallback (BasePrint + PrintSupport, INTEGER_DATA, (char*) 0);
  702. PrintForm = NULL;
  703. EndDialog (hwnDlg, ID_PRINT);
  704. if (TtaGetPrinterDC (FALSE, &orientation, &paper))
  705. {
  706. EnableWindow (ghwndMain, FALSE);
  707. ThotCallback (BasePrint + PaperOrientation, INTEGER_DATA, (char*) orientation);
  708. ThotCallback (BasePrint + PaperFormat, INTEGER_DATA, (char*) paper);
  709. ThotCallback (BasePrint + PPrinterName, STRING_DATA,
  710. CurFileToPrint);
  711. ThotCallback (BasePrint + FormPrint, INTEGER_DATA, (char*)1);
  712. }
  713. break;
  714. case IDCANCEL:
  715. ThotCallback (BasePrint + FormPrint, INTEGER_DATA, (char*)0);
  716. PrintForm = NULL;
  717. EndDialog (hwnDlg, IDCANCEL);
  718. break;
  719. }
  720. break;
  721. default:
  722. return FALSE;
  723. }
  724. return TRUE;
  725. }
  726. /*-----------------------------------------------------------------------
  727. TableDlgProc
  728. ------------------------------------------------------------------------*/
  729. LRESULT CALLBACK TableDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  730. LPARAM lParam)
  731. {
  732. ThotBool ok;
  733. int val;
  734. switch (msg)
  735. {
  736. case WM_INITDIALOG:
  737. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_BUTTON_TABLE));
  738. SetWindowText (GetDlgItem (hwnDlg, IDC_NUMCOL),
  739. TtaGetMessage (AMAYA, AM_COLS));
  740. SetWindowText (GetDlgItem (hwnDlg, IDC_NUMROWS),
  741. TtaGetMessage (AMAYA, AM_ROWS));
  742. if (WithBorder)
  743. SetWindowText (GetDlgItem (hwnDlg, IDC_BORDER),
  744. TtaGetMessage (AMAYA, AM_BORDER));
  745. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  746. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  747. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL),
  748. TtaGetMessage (LIB, TMSG_CANCEL));
  749. SetDlgItemInt (hwnDlg, IDC_NUMCOLEDIT, numCols, FALSE);
  750. SetDlgItemInt (hwnDlg, IDC_NUMROWSEDIT, numRows, FALSE);
  751. if (WithBorder)
  752. SetDlgItemInt (hwnDlg, IDC_BORDEREDIT, tBorder, FALSE);
  753. break;
  754. case WM_COMMAND:
  755. if (HIWORD (wParam) == EN_UPDATE)
  756. {
  757. if (LOWORD (wParam) == IDC_NUMCOLEDIT)
  758. {
  759. val = GetDlgItemInt (hwnDlg, IDC_NUMCOLEDIT, &ok, TRUE);
  760. if (ok)
  761. ThotCallback (BaseDialog + TableCols, INTEGER_DATA, (char*) val);
  762. }
  763. else if (LOWORD (wParam) == IDC_NUMROWSEDIT)
  764. {
  765. val = GetDlgItemInt (hwnDlg, IDC_NUMROWSEDIT, &ok, TRUE);
  766. if (ok)
  767. ThotCallback (BaseDialog + TableRows, INTEGER_DATA, (char*) val);
  768. }
  769. else if (LOWORD (wParam) == IDC_BORDEREDIT)
  770. {
  771. val = GetDlgItemInt (hwnDlg, IDC_BORDEREDIT, &ok, TRUE);
  772. if (ok)
  773. ThotCallback (BaseDialog + TableBorder, INTEGER_DATA, (char*) val);
  774. }
  775. }
  776. switch (LOWORD (wParam))
  777. {
  778. case ID_CONFIRM:
  779. UserAnswer = 1;
  780. ThotCallback (BaseDialog + TableForm, INTEGER_DATA, (char*) 1);
  781. EndDialog (hwnDlg, ID_CONFIRM);
  782. break;
  783. case IDCANCEL:
  784. UserAnswer = 0;
  785. ThotCallback (BaseDialog + TableForm, INTEGER_DATA, (char*) 0);
  786. EndDialog (hwnDlg, IDCANCEL);
  787. break;
  788. }
  789. break;
  790. default:
  791. return FALSE;
  792. }
  793. return TRUE;
  794. }
  795. /*-----------------------------------------------------------------------
  796. AttrItemsDlgProc
  797. ------------------------------------------------------------------------*/
  798. LRESULT CALLBACK AttrItemsDlgProc (ThotWindow hwnDlg, UINT msg,
  799. WPARAM wParam, LPARAM lParam)
  800. {
  801. int ndx = 0;
  802. int i = 0;
  803. int cxChar;
  804. int cyChar;
  805. HDC hDC;
  806. RECT rect;
  807. ThotWindow radio1;
  808. ThotWindow radio2;
  809. ThotWindow radio3;
  810. ThotWindow radio4;
  811. ThotWindow radio5;
  812. ThotWindow radio6;
  813. ThotWindow radio7;
  814. ThotWindow radio8;
  815. ThotWindow radio9;
  816. ThotWindow groupBx;
  817. TEXTMETRIC tm;
  818. switch (msg)
  819. {
  820. case WM_INITDIALOG:
  821. /* store the window ID to be able to destroy it from elsewhere */
  822. AttrForm = hwnDlg;
  823. GetClientRect (hwnDlg, &rect);
  824. hDC = GetDC (hwnDlg);
  825. SelectObject (hDC, DialogFont);
  826. GetTextMetrics (hDC, &tm);
  827. cxChar = tm.tmAveCharWidth;
  828. cyChar = tm.tmHeight + tm.tmExternalLeading;
  829. ReleaseDC (hwnDlg, hDC);
  830. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_ATTR));
  831. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY),
  832. TtaGetMessage (LIB, TMSG_APPLY));
  833. if (RequiredAttr)
  834. DestroyWindow (GetDlgItem (hwnDlg, ID_DELETE));
  835. else
  836. SetWindowText (GetDlgItem (hwnDlg, ID_DELETE),
  837. TtaGetMessage (LIB, TMSG_DEL_ATTR));
  838. SetWindowText (GetDlgItem (hwnDlg, ID_DONE),
  839. TtaGetMessage (LIB, TMSG_DONE));
  840. radio1 = CreateWindow ("BUTTON", &ItemList[ndx],
  841. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  842. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  843. (HMENU) OPT1, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  844. /* set the font of the window */
  845. WIN_SetDialogfont (radio1);
  846. ndx += strlen (&ItemList[ndx]) + 1;
  847. i++;
  848. radio2 = CreateWindow ("BUTTON", &ItemList[ndx],
  849. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  850. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  851. (HMENU) OPT2, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  852. /* set the font of the window */
  853. WIN_SetDialogfont (radio2);
  854. ndx += strlen (&ItemList[ndx]) + 1;
  855. i++;
  856. if (attDlgNbItems > 2)
  857. {
  858. radio3 = CreateWindow ("BUTTON", &ItemList[ndx],
  859. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  860. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  861. (HMENU) OPT3, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  862. /* set the font of the window */
  863. WIN_SetDialogfont (radio3);
  864. ndx += strlen (&ItemList[ndx]) + 1;
  865. i++;
  866. if (attDlgNbItems > 3)
  867. {
  868. radio4 = CreateWindow ("BUTTON", &ItemList[ndx],
  869. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  870. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  871. (HMENU) OPT4, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  872. /* set the font of the window */
  873. WIN_SetDialogfont (radio4);
  874. ndx += strlen (&ItemList[ndx]) + 1;
  875. i++;
  876. if (attDlgNbItems > 4)
  877. {
  878. radio5 = CreateWindow ("BUTTON", &ItemList[ndx],
  879. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  880. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  881. (HMENU) OPT5, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  882. /* set the font of the window */
  883. WIN_SetDialogfont (radio5);
  884. ndx += strlen (&ItemList[ndx]) + 1;
  885. i++;
  886. if (attDlgNbItems > 5)
  887. {
  888. radio6 = CreateWindow ("BUTTON", &ItemList[ndx],
  889. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  890. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  891. (HMENU) OPT6, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  892. /* set the font of the window */
  893. WIN_SetDialogfont (radio6);
  894. ndx += strlen (&ItemList[ndx]) + 1;
  895. i++;
  896. if (attDlgNbItems > 6)
  897. {
  898. radio7 = CreateWindow ("BUTTON", &ItemList[ndx],
  899. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  900. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  901. (HMENU) OPT7, (HINSTANCE) GetWindowLong (hwnDlg,
  902. GWL_HINSTANCE), NULL);
  903. /* set the font of the window */
  904. WIN_SetDialogfont (radio7);
  905. ndx += strlen (&ItemList[ndx]) + 1;
  906. i++;
  907. if (attDlgNbItems > 7)
  908. {
  909. radio8 = CreateWindow ("BUTTON", &ItemList[ndx],
  910. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  911. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  912. (HMENU) OPT8, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  913. /* set the font of the window */
  914. WIN_SetDialogfont (radio8);
  915. ndx += strlen (&ItemList[ndx]) + 1;
  916. i++;
  917. if (attDlgNbItems > 8)
  918. {
  919. radio9 = CreateWindow ("BUTTON", &ItemList[ndx],
  920. WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, 2 * cxChar,
  921. cyChar * (1+2*i), 20 * cxChar, 7 * cyChar / 4, hwnDlg,
  922. (HMENU) OPT9, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  923. /* set the font of the window */
  924. WIN_SetDialogfont (radio9);
  925. ndx += strlen (&ItemList[ndx]) + 1;
  926. i++;
  927. }
  928. }
  929. }
  930. }
  931. }
  932. }
  933. }
  934. groupBx = CreateWindow ("BUTTON", AttDlgTitle,
  935. WS_CHILD | WS_VISIBLE | BS_GROUPBOX, cxChar, 0,
  936. rect.right - (2 * cxChar), i * (2 * cyChar) + cyChar, hwnDlg,
  937. (HMENU) 1, (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  938. /* set the font of the window */
  939. WIN_SetDialogfont (groupBx);
  940. switch (currAttrVal)
  941. {
  942. case 1: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT1);
  943. break;
  944. case 2: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT2);
  945. break;
  946. case 3: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT3);
  947. break;
  948. case 4: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT4);
  949. break;
  950. case 5: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT5);
  951. break;
  952. case 6: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT6);
  953. break;
  954. case 7: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT7);
  955. break;
  956. case 8: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT8);
  957. break;
  958. case 9: CheckRadioButton (hwnDlg, OPT1, OPT9, OPT9);
  959. break;
  960. default:
  961. break;
  962. }
  963. break;
  964. case WM_CLOSE:
  965. case WM_DESTROY:
  966. AttrForm = NULL;
  967. if (RequiredAttr)
  968. ThotCallback (NumMenuAttrRequired, INTEGER_DATA, (char*) 0);
  969. else
  970. ThotCallback (NumMenuAttr, INTEGER_DATA, (char*) 0);
  971. EndDialog (hwnDlg, IDCANCEL);
  972. break;
  973. case WM_COMMAND:
  974. if (RequiredAttr)
  975. i = NumMenuAttrEnumNeeded;
  976. else
  977. i = NumMenuAttrEnum;
  978. switch (LOWORD (wParam))
  979. {
  980. case OPT1:
  981. iLocation = 0;
  982. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  983. break;
  984. case OPT2:
  985. iLocation = 1;
  986. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  987. break;
  988. case OPT3:
  989. iLocation = 2;
  990. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  991. break;
  992. case OPT4:
  993. iLocation = 3;
  994. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  995. break;
  996. case OPT5:
  997. iLocation = 4;
  998. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  999. break;
  1000. case OPT6:
  1001. iLocation = 5;
  1002. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  1003. break;
  1004. case OPT7:
  1005. iLocation = 6;
  1006. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  1007. break;
  1008. case OPT8:
  1009. iLocation = 7;
  1010. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  1011. break;
  1012. case OPT9:
  1013. iLocation = 8;
  1014. ThotCallback (i, INTEGER_DATA, (char*) iLocation);
  1015. break;
  1016. case ID_APPLY:
  1017. if (RequiredAttr)
  1018. {
  1019. ThotCallback (NumMenuAttrRequired, INTEGER_DATA, (char*) 1);
  1020. EndDialog (hwnDlg, IDCANCEL);
  1021. }
  1022. else
  1023. ThotCallback (NumMenuAttr, INTEGER_DATA, (char*) 1);
  1024. break;
  1025. case ID_DELETE:
  1026. ThotCallback (NumMenuAttrEnum, INTEGER_DATA, (char*) -1);
  1027. ThotCallback (NumMenuAttr, INTEGER_DATA, (char*) 2);
  1028. AttrForm = NULL;
  1029. break;
  1030. case ID_DONE:
  1031. AttrForm = NULL;
  1032. if (RequiredAttr)
  1033. ThotCallback (NumMenuAttrRequired, INTEGER_DATA, (char*) 0);
  1034. else
  1035. ThotCallback (NumMenuAttr, INTEGER_DATA, (char*) 0);
  1036. EndDialog (hwnDlg, IDCANCEL);
  1037. break;
  1038. }
  1039. break;
  1040. default:
  1041. return FALSE;
  1042. }
  1043. return TRUE;
  1044. }
  1045. /*-----------------------------------------------------------------------
  1046. CharsetDlgProc
  1047. ------------------------------------------------------------------------*/
  1048. LRESULT CALLBACK CharsetDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1049. LPARAM lParam)
  1050. {
  1051. int index = 0;
  1052. UINT i = 0;
  1053. static ThotWindow wndMTlist;
  1054. switch (msg)
  1055. {
  1056. case WM_INITDIALOG:
  1057. /* get the default GUI font */
  1058. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_SELECT_CHARSET));
  1059. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY), TtaGetMessage (LIB, TMSG_APPLY));
  1060. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  1061. if (!strcmp (UserCharset, "us-ascii"))
  1062. CheckRadioButton (hwnDlg, IDC_USASCII, IDC_ISOL1, IDC_USASCII);
  1063. if (!strcmp (UserCharset, "iso-8859-1"))
  1064. CheckRadioButton (hwnDlg, IDC_USASCII, IDC_ISOL1, IDC_ISOL1);
  1065. else
  1066. CheckRadioButton (hwnDlg, IDC_USASCII, IDC_ISOL1, IDC_UTF8);
  1067. SetFocus (GetDlgItem (hwnDlg, IDC_USASCII));
  1068. return FALSE;
  1069. break;
  1070. case WM_CLOSE:
  1071. case WM_DESTROY:
  1072. EndDialog (hwnDlg, ID_DONE);
  1073. break;
  1074. case WM_COMMAND:
  1075. switch (LOWORD (wParam))
  1076. {
  1077. case IDC_USASCII:
  1078. strcpy (SaveFormTmp, "us-ascii");
  1079. break;
  1080. case IDC_UTF8:
  1081. strcpy (SaveFormTmp, "UTF-8");
  1082. break;
  1083. case IDC_ISOL1:
  1084. strcpy (SaveFormTmp, "iso-8859-1");
  1085. break;
  1086. case ID_APPLY:
  1087. EndDialog (hwnDlg, ID_DONE);
  1088. break;
  1089. case IDCANCEL:
  1090. case WM_CLOSE:
  1091. SaveFormTmp[0] = EOS;
  1092. EndDialog (hwnDlg, ID_DONE);
  1093. break;
  1094. }
  1095. break;
  1096. default: return FALSE;
  1097. }
  1098. return TRUE;
  1099. }
  1100. /*-----------------------------------------------------------------------
  1101. MimeTypeDlgStatus
  1102. Updates the status bar of the MimeType dialog
  1103. ------------------------------------------------------------------------*/
  1104. void MimeTypeDlgStatus (char *msg)
  1105. {
  1106. if (MimeTypeDlg && msg)
  1107. SetWindowText (GetDlgItem (MimeTypeDlg, IDC_STATUS), msg);
  1108. }
  1109. /*-----------------------------------------------------------------------
  1110. MimeTypeDlgProc
  1111. ------------------------------------------------------------------------*/
  1112. LRESULT CALLBACK MimeTypeDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1113. LPARAM lParam)
  1114. {
  1115. int index = 0;
  1116. UINT i = 0;
  1117. static ThotWindow wndMTlist;
  1118. switch (msg)
  1119. {
  1120. case WM_INITDIALOG:
  1121. /* get the default GUI font */
  1122. MimeTypeDlg = hwnDlg;
  1123. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_SELECT_MIMETYPE));
  1124. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY), TtaGetMessage (LIB, TMSG_APPLY));
  1125. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  1126. wndMTlist = CreateWindow ("listbox", NULL,
  1127. WS_CHILD | WS_VISIBLE | LBS_STANDARD | WS_VSCROLL | WS_TABSTOP,
  1128. 5, 5, 310, 100, hwnDlg, (HMENU) 1,
  1129. (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  1130. /* set the font of the window */
  1131. WIN_SetDialogfont (wndMTlist);
  1132. SendMessage (wndMTlist, LB_RESETCONTENT, 0, 0);
  1133. while (i < NbItem && mimeType[index] != '\0')
  1134. {
  1135. SendMessage (wndMTlist, LB_INSERTSTRING, i, (LPARAM) &mimeType[index]);
  1136. index += strlen (&mimeType[index]) + 1;/* Longueur de l'intitule */
  1137. i++;
  1138. }
  1139. /* select the first list item */
  1140. /* SendMessage (wndMTlist, LB_SETCURSEL, 0, 0); */
  1141. /* put the focus on the first list item */
  1142. SetDlgItemText (hwnDlg, IDC_MTEDIT, UserMimeType);
  1143. SetFocus (GetDlgItem (hwnDlg, IDC_MTEDIT));
  1144. return FALSE;
  1145. break;
  1146. case WM_CLOSE:
  1147. case WM_DESTROY:
  1148. /* ThotCallback (BaseDialog + MimeTypeForm, INTEGER_DATA, (char *) 0); */
  1149. MimeTypeDlg = NULL;
  1150. EndDialog (hwnDlg, ID_DONE);
  1151. break;
  1152. case WM_COMMAND:
  1153. if (LOWORD (wParam) == 1)
  1154. {
  1155. if (HIWORD (wParam) == LBN_SELCHANGE)
  1156. {
  1157. itemIndex = SendMessage (wndMTlist, LB_GETCURSEL, 0, 0);
  1158. itemIndex = SendMessage (wndMTlist, LB_GETTEXT, itemIndex,
  1159. (LPARAM) SzBuffer);
  1160. }
  1161. else if (HIWORD (wParam) == LBN_DBLCLK)
  1162. {
  1163. if (LB_ERR == (itemIndex = SendMessage (wndMTlist, LB_GETCURSEL, 0, 0L)))
  1164. break;
  1165. itemIndex = SendMessage (wndMTlist, LB_GETTEXT, itemIndex,
  1166. (LPARAM) SzBuffer);
  1167. }
  1168. SetDlgItemText (hwnDlg, IDC_MTEDIT, SzBuffer);
  1169. if (HIWORD (wParam) == LBN_DBLCLK)
  1170. {
  1171. GetDlgItemText (hwnDlg, IDC_MTEDIT, SaveFormTmp, sizeof (SaveFormTmp) - 1);
  1172. if (SaveFormTmp[0] != EOS)
  1173. {
  1174. MimeTypeDlg = NULL;
  1175. EndDialog (hwnDlg, ID_DONE);
  1176. }
  1177. break;
  1178. }
  1179. }
  1180. switch (LOWORD (wParam))
  1181. {
  1182. case ID_APPLY:
  1183. GetDlgItemText (hwnDlg, IDC_MTEDIT, SaveFormTmp, sizeof (SaveFormTmp) - 1);
  1184. ThotCallback (BaseDialog + MimeTypeForm, INTEGER_DATA, (char *) 1);
  1185. if (SaveFormTmp[0] != EOS)
  1186. {
  1187. MimeTypeDlg = NULL;
  1188. EndDialog (hwnDlg, ID_DONE);
  1189. }
  1190. break;
  1191. case IDCANCEL:
  1192. case WM_CLOSE:
  1193. ThotCallback (BaseDialog + MimeTypeForm, INTEGER_DATA, (char *) 0);
  1194. MimeTypeDlg = NULL;
  1195. EndDialog (hwnDlg, ID_DONE);
  1196. break;
  1197. }
  1198. break;
  1199. default: return FALSE;
  1200. }
  1201. return TRUE;
  1202. }
  1203. /*-----------------------------------------------------------------------
  1204. SaveAsDlgStatus
  1205. Updates the status bar of the SaveAs dialog
  1206. ------------------------------------------------------------------------*/
  1207. void SaveAsDlgStatus (char *msg)
  1208. {
  1209. if (SaveAsForm && msg)
  1210. SetWindowText (GetDlgItem (SaveAsForm, IDC_STATUS), msg);
  1211. }
  1212. /*----------------------------------------------------------------------
  1213. WIN_ListSaveDirectory
  1214. ----------------------------------------------------------------------*/
  1215. void WIN_ListSaveDirectory (ThotWindow hwnDlg, char *title, char *fileName)
  1216. {
  1217. char *szFilter;
  1218. char szFileTitle[256];
  1219. szFilter = APPFILENAMEFILTER;
  1220. TtaExtractName (fileName, SavePath, DocumentName);
  1221. OpenFileName.lStructSize = sizeof (OPENFILENAME);
  1222. OpenFileName.hwndOwner = hwnDlg;
  1223. OpenFileName.lpstrFilter = szFilter;
  1224. OpenFileName.lpstrFile = DocumentName;
  1225. OpenFileName.nMaxFile = MAX_LENGTH;
  1226. OpenFileName.lpstrFileTitle = szFileTitle;
  1227. OpenFileName.lpstrTitle = title;
  1228. OpenFileName.nMaxFileTitle = sizeof (szFileTitle);
  1229. OpenFileName.lpstrInitialDir = SavePath;
  1230. OpenFileName.Flags = OFN_SHOWHELP | OFN_HIDEREADONLY;
  1231. if (GetSaveFileName (&OpenFileName))
  1232. strcpy (fileName, OpenFileName.lpstrFile);
  1233. }
  1234. /*-----------------------------------------------------------------------
  1235. SaveAsDlgProc
  1236. ------------------------------------------------------------------------*/
  1237. LRESULT CALLBACK SaveAsDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1238. LPARAM lParam)
  1239. {
  1240. char buff[500];
  1241. switch (msg)
  1242. {
  1243. case WM_INITDIALOG:
  1244. SaveAsForm = hwnDlg;
  1245. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_SAVE_AS));
  1246. SetWindowText (GetDlgItem (hwnDlg, IDC_DOCLOCATION),
  1247. TtaGetMessage (AMAYA, AM_DOC_LOCATION));
  1248. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  1249. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  1250. SetWindowText (GetDlgItem (hwnDlg, ID_CLEAR), TtaGetMessage (AMAYA, AM_CLEAR));
  1251. SetWindowText (GetDlgItem (hwnDlg, IDC_BROWSE), TtaGetMessage (AMAYA, AM_BROWSE));
  1252. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  1253. SetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, CurrentPathName);
  1254. if (HTMLFormat ||
  1255. DocumentTypes[SavingDocument] == docMath ||
  1256. DocumentTypes[SavingDocument] == docSVG ||
  1257. DocumentTypes[SavingDocument] == docXml)
  1258. {
  1259. SetWindowText (GetDlgItem (hwnDlg, IDC_COPYIMG),
  1260. TtaGetMessage (AMAYA, AM_BCOPY_IMAGES));
  1261. SetWindowText (GetDlgItem (hwnDlg, IDC_TRANSFORMURL),
  1262. TtaGetMessage (AMAYA, AM_BTRANSFORM_URL));
  1263. SetWindowText (GetDlgItem (hwnDlg, IDC_IMGLOCATION),
  1264. TtaGetMessage (AMAYA, AM_IMAGES_LOCATION));
  1265. copyImgWnd = GetDlgItem (hwnDlg, IDC_COPYIMG);
  1266. transURLWnd = GetDlgItem (hwnDlg, IDC_TRANSFORMURL);
  1267. }
  1268. if (HTMLFormat)
  1269. {
  1270. SetWindowText (GetDlgItem (hwnDlg, IDC_OUTPUTGROUP),
  1271. TtaGetMessage (LIB, TMSG_DOCUMENT_FORMAT));
  1272. SetWindowText (GetDlgItem (hwnDlg, IDC_HTML), "HTML");
  1273. SetWindowText (GetDlgItem (hwnDlg, IDC_XML), "XML");
  1274. SetWindowText (GetDlgItem (hwnDlg, IDC_TEXT),
  1275. TtaGetMessage (AMAYA, AM_TEXT));
  1276. if (SaveAsHTML)
  1277. {
  1278. CheckRadioButton (hwnDlg, IDC_HTML, IDC_XML, IDC_HTML);
  1279. EnableWindow (transURLWnd, TRUE);
  1280. EnableWindow (copyImgWnd, TRUE);
  1281. }
  1282. else if (SaveAsXML)
  1283. {
  1284. CheckRadioButton (hwnDlg, IDC_HTML, IDC_XML, IDC_XML);
  1285. EnableWindow (transURLWnd, TRUE);
  1286. EnableWindow (copyImgWnd, TRUE);
  1287. }
  1288. else if (SaveAsText)
  1289. {
  1290. CheckRadioButton (hwnDlg, IDC_HTML, IDC_XML, IDC_TEXT);
  1291. EnableWindow (transURLWnd, FALSE);
  1292. EnableWindow (copyImgWnd, FALSE);
  1293. }
  1294. if (!SaveAsText && CopyImages)
  1295. CheckRadioButton (hwnDlg, IDC_COPYIMG, IDC_COPYIMG, IDC_COPYIMG);
  1296. }
  1297. else if (DocumentTypes[SavingDocument] == docMath ||
  1298. DocumentTypes[SavingDocument] == docXml)
  1299. EnableWindow (copyImgWnd, FALSE);
  1300. if (UpdateURLs)
  1301. CheckRadioButton (hwnDlg, IDC_TRANSFORMURL, IDC_TRANSFORMURL, IDC_TRANSFORMURL);
  1302. /* mime type */
  1303. _snprintf (buff, 500, "MIME type: %s",
  1304. UserMimeType[0] != EOS ? UserMimeType : TtaGetMessage (AMAYA, AM_UNKNOWN));
  1305. SetDlgItemText (hwnDlg, IDC_MIMETYPE, buff);
  1306. SetDlgItemText (hwnDlg, ID_CHANGEMIMETYPE, TtaGetMessage (AMAYA, AM_CHANGE));
  1307. /* charset */
  1308. _snprintf (buff, 500, "Charset: %s",
  1309. UserCharset[0] != EOS ? UserCharset : TtaGetMessage (AMAYA, AM_UNKNOWN));
  1310. SetDlgItemText (hwnDlg, IDC_CHARSET, buff);
  1311. SetDlgItemText (hwnDlg, ID_CHANGECHARSET, TtaGetMessage (AMAYA, AM_CHANGE));
  1312. /* set the default focus and return FALSE to validate it */
  1313. SetFocus (GetDlgItem (hwnDlg, IDC_EDITDOCSAVE));
  1314. return FALSE;
  1315. break;
  1316. case WM_COMMAND:
  1317. if (HIWORD (wParam) == EN_UPDATE)
  1318. {
  1319. if (LOWORD (wParam) == IDC_EDITDOCSAVE)
  1320. {
  1321. GetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, UrlToOpen, sizeof (UrlToOpen) - 1);
  1322. ThotCallback (BaseDialog + NameSave, STRING_DATA, UrlToOpen);
  1323. }
  1324. else if (LOWORD (wParam) == IDC_EDITIMGSAVE)
  1325. {
  1326. GetDlgItemText (hwnDlg, IDC_EDITIMGSAVE, UrlToOpen, sizeof (UrlToOpen) - 1);
  1327. ThotCallback (BaseDialog + ImgDirSave, STRING_DATA, UrlToOpen);
  1328. }
  1329. }
  1330. switch (LOWORD (wParam))
  1331. {
  1332. case IDC_HTML:
  1333. EnableWindow (transURLWnd, TRUE);
  1334. EnableWindow (copyImgWnd, TRUE);
  1335. ThotCallback (BaseDialog + RadioSave, INTEGER_DATA, (char*) 0);
  1336. SetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, DocToOpen);
  1337. return 0;
  1338. case IDC_XML:
  1339. EnableWindow (transURLWnd, TRUE);
  1340. EnableWindow (copyImgWnd, TRUE);
  1341. ThotCallback (BaseDialog + RadioSave, INTEGER_DATA, (char*) 1);
  1342. SetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, DocToOpen);
  1343. return 0;
  1344. case IDC_TEXT:
  1345. EnableWindow (transURLWnd, FALSE);
  1346. EnableWindow (copyImgWnd, FALSE);
  1347. ThotCallback (BaseDialog + RadioSave, INTEGER_DATA, (char*) 2);
  1348. SetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, DocToOpen);
  1349. return 0;
  1350. case IDC_COPYIMG:
  1351. ThotCallback (BaseDialog + ToggleSave, INTEGER_DATA, (char*) 0);
  1352. break;
  1353. case IDC_TRANSFORMURL:
  1354. ThotCallback (BaseDialog + ToggleSave, INTEGER_DATA, (char*) 1);
  1355. break;
  1356. case ID_CHANGECHARSET:
  1357. ThotCallback (BaseDialog + SaveForm, INTEGER_DATA, (char*) 4);
  1358. if (SaveFormTmp[0] != EOS)
  1359. {
  1360. _snprintf (buff, 500, "Charset: %s", UserCharset);
  1361. SetDlgItemText (hwnDlg, IDC_CHARSET, buff);
  1362. }
  1363. break;
  1364. case ID_CHANGEMIMETYPE:
  1365. ThotCallback (BaseDialog + SaveForm, INTEGER_DATA, (char*) 5);
  1366. if (SaveFormTmp[0] != EOS)
  1367. {
  1368. _snprintf (buff, 500, "MIME type: %s", UserMimeType);
  1369. SetDlgItemText (hwnDlg, IDC_MIMETYPE, buff);
  1370. }
  1371. break;
  1372. case ID_CLEAR:
  1373. SetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, "");
  1374. SetDlgItemText (hwnDlg, IDC_EDITIMGSAVE, "");
  1375. ThotCallback (BaseDialog + SaveForm, INTEGER_DATA, (char*) 3);
  1376. break;
  1377. case IDC_BROWSE:
  1378. /* by default keep the same document name */
  1379. WIN_ListSaveDirectory (hwnDlg, TtaGetMessage (AMAYA, AM_SAVE_AS), UrlToOpen);
  1380. SetDlgItemText (hwnDlg, IDC_EDITDOCSAVE, UrlToOpen);
  1381. ThotCallback (BaseDialog + NameSave, STRING_DATA, UrlToOpen);
  1382. break;
  1383. case IDCANCEL:
  1384. EndDialog (hwnDlg, IDCANCEL);
  1385. ThotCallback (BaseDialog + SaveForm, INTEGER_DATA, (char*) 0);
  1386. SaveAsForm = NULL;
  1387. break;
  1388. case ID_CONFIRM:
  1389. EndDialog (hwnDlg, ID_CONFIRM);
  1390. ThotCallback (BaseDialog + SaveForm, INTEGER_DATA, (char*) 1);
  1391. SaveAsForm = NULL;
  1392. break;
  1393. }
  1394. break;
  1395. default:
  1396. return FALSE;
  1397. }
  1398. return TRUE;
  1399. }
  1400. /*-----------------------------------------------------------------------
  1401. OpenDocDlgProc
  1402. ------------------------------------------------------------------------*/
  1403. LRESULT CALLBACK OpenDocDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1404. LPARAM lParam)
  1405. {
  1406. switch (msg)
  1407. {
  1408. case WM_INITDIALOG:
  1409. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_OPEN_URL));
  1410. SetWindowText (GetDlgItem (hwnDlg, IDC_URLMESSAGE),
  1411. TtaGetMessage (AMAYA, AM_LOCATION));
  1412. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  1413. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  1414. SetWindowText (GetDlgItem (hwnDlg, IDC_BROWSE), TtaGetMessage (AMAYA, AM_BROWSE));
  1415. SetWindowText (GetDlgItem (hwnDlg, IDC_CLEAR), TtaGetMessage (AMAYA, AM_CLEAR));
  1416. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  1417. SetWindowText (hwnDlg, WndTitle);
  1418. SetDlgItemText (hwnDlg, IDC_GETURL, UrlToOpen);
  1419. /* put the focus on the first dialog item */
  1420. SetFocus (GetDlgItem (hwnDlg, IDC_GETURL));
  1421. return FALSE;
  1422. break;
  1423. case WM_COMMAND:
  1424. if (HIWORD (wParam) == EN_UPDATE)
  1425. {
  1426. if (LOWORD (wParam) == IDC_GETURL)
  1427. {
  1428. GetDlgItemText (hwnDlg, IDC_GETURL, UrlToOpen, sizeof (UrlToOpen) - 1);
  1429. if (UrlToOpen[0] != EOS)
  1430. ThotCallback (BaseDialog + URLName, STRING_DATA, UrlToOpen);
  1431. }
  1432. }
  1433. switch (LOWORD (wParam))
  1434. {
  1435. case ID_CONFIRM:
  1436. ThotCallback (BaseDialog + OpenForm, INTEGER_DATA, (char*)1);
  1437. EndDialog (hwnDlg, ID_CONFIRM);
  1438. break;
  1439. case IDC_BROWSE:
  1440. OpenFileName.lStructSize = sizeof (OPENFILENAME);
  1441. OpenFileName.hwndOwner = hwnDlg;
  1442. OpenFileName.hInstance = hInstance;
  1443. OpenFileName.lpstrFilter = (LPTSTR) SzFilter;
  1444. OpenFileName.lpstrCustomFilter = (LPTSTR) NULL;
  1445. OpenFileName.nMaxCustFilter = 0L;
  1446. OpenFileName.nFilterIndex = indexFilter;
  1447. OpenFileName.lpstrFile = (LPTSTR) TmpDocName;
  1448. OpenFileName.nMaxFile = MAX_LENGTH;
  1449. OpenFileName.lpstrInitialDir = (LPTSTR) DirectoryName;
  1450. OpenFileName.lpstrTitle = TtaGetMessage (AMAYA, AM_OPEN_URL);
  1451. OpenFileName.nFileOffset = 0;
  1452. OpenFileName.nFileExtension = 0;
  1453. OpenFileName.lpstrDefExt = "html";
  1454. OpenFileName.lCustData = 0;
  1455. OpenFileName.Flags = OFN_SHOWHELP | OFN_HIDEREADONLY;
  1456. if (GetOpenFileName (&OpenFileName))
  1457. {
  1458. strcpy (UrlToOpen, OpenFileName.lpstrFile);
  1459. indexFilter = OpenFileName.nFilterIndex;
  1460. strcpy (DirectoryName, OpenFileName.lpstrInitialDir);
  1461. SetDlgItemText (hwnDlg, IDC_GETURL, UrlToOpen);
  1462. if (UrlToOpen[0] != EOS)
  1463. {
  1464. ThotCallback (BaseDialog + URLName, STRING_DATA, UrlToOpen);
  1465. EndDialog (hwnDlg, ID_CONFIRM);
  1466. ThotCallback (BaseDialog + OpenForm, INTEGER_DATA, (char*) 1);
  1467. }
  1468. }
  1469. break;
  1470. case IDC_CLEAR:
  1471. ThotCallback (BaseDialog + OpenForm, INTEGER_DATA, (char*) 3);
  1472. TmpDocName[0] = EOS;
  1473. SetDlgItemText (hwnDlg, IDC_GETURL, "");
  1474. break;
  1475. case IDCANCEL:
  1476. ThotCallback (BaseDialog + OpenForm, INTEGER_DATA, (char*) 0);
  1477. UrlToOpen[0] = EOS;
  1478. EndDialog (hwnDlg, IDCANCEL);
  1479. break;
  1480. }
  1481. break;
  1482. default:
  1483. return FALSE;
  1484. }
  1485. return TRUE;
  1486. }
  1487. /*-----------------------------------------------------------------------
  1488. OpenImgDlgProc
  1489. ------------------------------------------------------------------------*/
  1490. LRESULT CALLBACK OpenImgDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1491. LPARAM lParam)
  1492. {
  1493. switch (msg)
  1494. {
  1495. case WM_INITDIALOG:
  1496. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_BUTTON_IMG));
  1497. SetWindowText (GetDlgItem (hwnDlg, IDC_URLMESSAGE),
  1498. TtaGetMessage (AMAYA, AM_LOCATION));
  1499. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  1500. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  1501. SetWindowText (GetDlgItem (hwnDlg, IDC_BROWSE), TtaGetMessage (AMAYA, AM_BROWSE));
  1502. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  1503. SetDlgItemText (hwnDlg, IDC_GETURL, UrlToOpen);
  1504. UrlToOpen[0] = EOS;
  1505. if (RequiredAttr)
  1506. {
  1507. SetWindowText (GetDlgItem (hwnDlg, IDC_ALTMESSAGE),
  1508. TtaGetMessage (AMAYA, AM_ALT));
  1509. SetDlgItemText (hwnDlg, IDC_GETALT, ImgAlt);
  1510. }
  1511. else
  1512. {
  1513. DestroyWindow (GetDlgItem (hwnDlg, IDC_ALTMESSAGE));
  1514. DestroyWindow (GetDlgItem (hwnDlg, IDC_GETALT));
  1515. }
  1516. break;
  1517. case WM_COMMAND:
  1518. switch (LOWORD (wParam))
  1519. {
  1520. case ID_CONFIRM:
  1521. GetDlgItemText (hwnDlg, IDC_GETURL, UrlToOpen, sizeof (UrlToOpen) - 1);
  1522. if (RequiredAttr)
  1523. {
  1524. /* ALT attribute required */
  1525. GetDlgItemText (hwnDlg, IDC_GETALT, AltText, sizeof (AltText) - 1);
  1526. if (!AltText || AltText[0] == 0)
  1527. MessageBox (hwnDlg, TtaGetMessage (AMAYA, AM_ALT_MISSING),
  1528. TtaGetMessage (LIB, TMSG_BUTTON_IMG),
  1529. MB_OK | MB_ICONERROR);
  1530. else
  1531. {
  1532. ThotCallback (BaseImage + ImageAlt, STRING_DATA, AltText);
  1533. ThotCallback (BaseImage + ImageURL, STRING_DATA, UrlToOpen);
  1534. ThotCallback (BaseImage + FormImage, INTEGER_DATA, (char*) 1);
  1535. EndDialog (hwnDlg, ID_CONFIRM);
  1536. }
  1537. }
  1538. break;
  1539. case IDC_BROWSE:
  1540. OpenFileName.lStructSize = sizeof (OPENFILENAME);
  1541. OpenFileName.hwndOwner = hwnDlg;
  1542. OpenFileName.hInstance = hInstance;
  1543. OpenFileName.lpstrFilter = (LPTSTR) SzFilter;
  1544. OpenFileName.lpstrCustomFilter = (LPTSTR) NULL;
  1545. OpenFileName.nMaxCustFilter = 0L;
  1546. OpenFileName.nFilterIndex = indexImgFilter;
  1547. OpenFileName.lpstrFile = (LPTSTR) TmpDocName;
  1548. OpenFileName.nMaxFile = MAX_LENGTH;
  1549. OpenFileName.lpstrInitialDir = (LPTSTR) DirectoryImage;
  1550. OpenFileName.lpstrTitle = TtaGetMessage (AMAYA, AM_BROWSE);
  1551. OpenFileName.nFileOffset = 0;
  1552. OpenFileName.nFileExtension = 0;
  1553. OpenFileName.lpstrDefExt = "";
  1554. OpenFileName.lCustData = 0;
  1555. OpenFileName.Flags = OFN_SHOWHELP | OFN_HIDEREADONLY;
  1556. if (GetOpenFileName (&OpenFileName))
  1557. {
  1558. strcpy (UrlToOpen, OpenFileName.lpstrFile);
  1559. indexImgFilter = OpenFileName.nFilterIndex;
  1560. strcpy (DirectoryImage, OpenFileName.lpstrInitialDir);
  1561. }
  1562. SetDlgItemText (hwnDlg, IDC_GETURL, UrlToOpen);
  1563. break;
  1564. case IDCANCEL:
  1565. ThotCallback (BaseImage + FormImage, INTEGER_DATA, (char*) 0);
  1566. UrlToOpen[0] = 0;
  1567. EndDialog (hwnDlg, IDCANCEL);
  1568. break;
  1569. }
  1570. break;
  1571. default:
  1572. return FALSE;
  1573. }
  1574. return TRUE;
  1575. }
  1576. /*-----------------------------------------------------------------------
  1577. GraphicsDlgProc
  1578. ------------------------------------------------------------------------*/
  1579. LRESULT CALLBACK GraphicsDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1580. LPARAM lParam)
  1581. {
  1582. switch (msg)
  1583. {
  1584. case WM_INITDIALOG:
  1585. GraphPal = hwnDlg;
  1586. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_BUTTON_GRAPHICS));
  1587. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_DONE));
  1588. break;
  1589. case WM_CLOSE:
  1590. case WM_DESTROY:
  1591. GraphPal = NULL;
  1592. EndDialog (hwnDlg, ID_DONE);
  1593. break;
  1594. case WM_COMMAND:
  1595. SetFocus (FrRef[ActiveFrame]);
  1596. switch (LOWORD (wParam))
  1597. {
  1598. case ID_DONE:
  1599. GraphPal = NULL;
  1600. EndDialog (hwnDlg, ID_DONE);
  1601. break;
  1602. case IDC_GLINE:
  1603. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)0);
  1604. break;
  1605. case IDC_GRECT:
  1606. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)1);
  1607. break;
  1608. case IDC_GRRECT:
  1609. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)2);
  1610. break;
  1611. case IDC_GCIRCLE:
  1612. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)3);
  1613. break;
  1614. case IDC_GELLIPSE:
  1615. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)4);
  1616. break;
  1617. case IDC_GPOLYLINE:
  1618. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)5);
  1619. break;
  1620. case IDC_GCPOLYLINE:
  1621. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)6);
  1622. break;
  1623. case IDC_GCURVE:
  1624. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)7);
  1625. break;
  1626. case IDC_GCCURVE:
  1627. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)8);
  1628. break;
  1629. case IDC_GALPHA1:
  1630. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)9);
  1631. break;
  1632. case IDC_GALPHA2:
  1633. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)10);
  1634. break;
  1635. case IDC_GGROUP:
  1636. ThotCallback (GraphDialogue + MenuGraph, INTEGER_DATA, (char*)11);
  1637. break;
  1638. }
  1639. break;
  1640. default: return (FALSE);
  1641. }
  1642. return TRUE;
  1643. }
  1644. /*-----------------------------------------------------------------------
  1645. SaveListDlgProc
  1646. ------------------------------------------------------------------------*/
  1647. LRESULT CALLBACK SaveListDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1648. LPARAM lParam)
  1649. {
  1650. static ThotWindow wndSavList;
  1651. int index = 0;
  1652. UINT i = 0;
  1653. switch (msg)
  1654. {
  1655. case WM_INITDIALOG:
  1656. /* get the default GUI font */
  1657. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  1658. SetWindowText (GetDlgItem (hwnDlg, IDC_MSG),
  1659. TtaGetMessage (AMAYA, AM_WARNING_SAVE_OVERWRITE));
  1660. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  1661. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  1662. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL),
  1663. TtaGetMessage (LIB, TMSG_CANCEL));
  1664. wndSavList = CreateWindow ("listbox", NULL,
  1665. WS_CHILD | WS_VISIBLE | LBS_STANDARD,
  1666. 10, 30, 260, 180, hwnDlg, (HMENU) 1,
  1667. (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  1668. /* set the font of the window */
  1669. WIN_SetDialogfont (wndSavList);
  1670. SendMessage (wndSavList, LB_RESETCONTENT, 0, 0);
  1671. while (i < NbItem && SavList[index] != EOS)
  1672. {
  1673. SendMessage (wndSavList, LB_INSERTSTRING, i, (LPARAM) &SavList[index]);
  1674. index += strlen (&SavList[index]) + 1; /* Longueur de l'intitule */
  1675. i++;
  1676. }
  1677. break;
  1678. case WM_COMMAND:
  1679. if (LOWORD (wParam) == 1 && HIWORD (wParam) == LBN_SELCHANGE)
  1680. {
  1681. itemIndex = SendMessage (wndSavList, LB_GETCURSEL, 0, 0);
  1682. itemIndex = SendMessage (wndSavList, LB_GETTEXT, itemIndex, (LPARAM) SzBuffer);
  1683. SetDlgItemText (hwnDlg, IDC_LANGEDIT, SzBuffer);
  1684. }
  1685. switch (LOWORD (wParam))
  1686. {
  1687. case ID_CONFIRM:
  1688. ThotCallback (BaseDialog + ConfirmSave, INTEGER_DATA, (char*)1);
  1689. EndDialog (hwnDlg, ID_CONFIRM);
  1690. SendMessage (SaveAsForm, WM_DESTROY, 0, 0);
  1691. break;
  1692. case IDCANCEL:
  1693. ThotCallback (BaseDialog + ConfirmSave, INTEGER_DATA, (char*)0);
  1694. EndDialog (hwnDlg, IDCANCEL);
  1695. break;
  1696. }
  1697. break;
  1698. default:
  1699. return FALSE;
  1700. }
  1701. return TRUE;
  1702. }
  1703. /*-----------------------------------------------------------------------
  1704. CloseDocDlgProc
  1705. ------------------------------------------------------------------------*/
  1706. LRESULT CALLBACK CloseDocDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1707. LPARAM lParam)
  1708. {
  1709. switch (msg)
  1710. {
  1711. case WM_INITDIALOG:
  1712. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_CLOSE_DOC));
  1713. SetWindowText (GetDlgItem (hwnDlg, IDC_CLOSEMSG), Message);
  1714. SetWindowText (GetDlgItem (hwnDlg, ID_SAVEDOC),
  1715. TtaGetMessage (LIB, TMSG_SAVE_DOC));
  1716. SetWindowText (GetDlgItem (hwnDlg, IDC_DONTSAVE),
  1717. TtaGetMessage (LIB, TMSG_CLOSE_DON_T_SAVE));
  1718. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  1719. WndClose = hwnDlg;
  1720. /* set the font of the window */
  1721. WIN_SetDialogfont (WndClose);
  1722. break;
  1723. case WM_CLOSE:
  1724. case WM_DESTROY:
  1725. if (WndClose == hwnDlg)
  1726. {
  1727. WndClose = NULL;
  1728. EndDialog (hwnDlg, IDCANCEL);
  1729. }
  1730. else
  1731. return FALSE;
  1732. break;
  1733. case WM_COMMAND:
  1734. switch (LOWORD (wParam))
  1735. {
  1736. case IDCANCEL:
  1737. ThotCallback (NumFormClose, INTEGER_DATA, (char*)0);
  1738. WndClose = NULL;
  1739. EndDialog (hwnDlg, IDCANCEL);
  1740. break;
  1741. case ID_SAVEDOC:
  1742. ThotCallback (NumFormClose, INTEGER_DATA, (char*)1);
  1743. WndClose = NULL;
  1744. EndDialog (hwnDlg, IDCANCEL);
  1745. break;
  1746. case IDC_DONTSAVE:
  1747. ThotCallback (NumFormClose, INTEGER_DATA, (char*)2);
  1748. WndClose = NULL;
  1749. EndDialog (hwnDlg, IDCANCEL);
  1750. break;
  1751. }
  1752. break;
  1753. default:
  1754. return FALSE;
  1755. }
  1756. return TRUE;
  1757. }
  1758. /*-----------------------------------------------------------------------
  1759. LanguageDlgProc
  1760. ------------------------------------------------------------------------*/
  1761. LRESULT CALLBACK LanguageDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1762. LPARAM lParam)
  1763. {
  1764. int index = 0;
  1765. UINT i = 0;
  1766. switch (msg)
  1767. {
  1768. case WM_INITDIALOG:
  1769. /* get the default GUI font */
  1770. /* destroy the focus of the previous open dialog */
  1771. LangForm = hwnDlg;
  1772. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_LANGUAGE));
  1773. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY), TtaGetMessage (LIB, TMSG_APPLY));
  1774. SetWindowText (GetDlgItem (hwnDlg, ID_DELETE),
  1775. TtaGetMessage (LIB, TMSG_DEL_ATTR));
  1776. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_DONE));
  1777. SetWindowText (GetDlgItem (hwnDlg, IDC_LANGELEM),
  1778. TtaGetMessage (LIB, TMSG_LANG_OF_EL));
  1779. SetWindowText (GetDlgItem (hwnDlg, IDC_INHERITEDLANG), Message2);
  1780. wndLangList = GetDlgItem (hwnDlg, IDC_LANGLIST),
  1781. /* set the font of the window */
  1782. WIN_SetDialogfont (wndLangList);
  1783. SendMessage (wndLangList, LB_RESETCONTENT, 0, 0);
  1784. while (i < NbItem && ItemList[index] != EOS)
  1785. {
  1786. /* keep in mind the current selected entry */
  1787. if (*WinCurLang && !strcmp (WinCurLang, &ItemList[index]))
  1788. Num_lang = index;
  1789. SendMessage (wndLangList, LB_INSERTSTRING, i, (LPARAM) &ItemList[index]);
  1790. index += strlen (&ItemList[index]) + 1;/* Longueur de l'intitule */
  1791. i++;
  1792. }
  1793. if (Num_lang != -1)
  1794. {
  1795. SendMessage (wndLangList, LB_SETCURSEL, (WPARAM)Num_lang, (LPARAM)0);
  1796. Num_lang = SendMessage (wndLangList, LB_GETTEXT, Num_lang,
  1797. (LPARAM) WinCurLang);
  1798. }
  1799. SetWindowText (GetDlgItem (hwnDlg, IDC_LNGEDIT), WinCurLang);
  1800. break;
  1801. case WM_CLOSE:
  1802. case WM_DESTROY:
  1803. LangForm = NULL;
  1804. EndDialog (hwnDlg, ID_DONE);
  1805. break;
  1806. case WM_COMMAND:
  1807. if (LOWORD (wParam) == 1 || HIWORD (wParam) == LBN_SELCHANGE ||
  1808. HIWORD (wParam) == LBN_DBLCLK)
  1809. {
  1810. if (HIWORD (wParam) == LBN_SELCHANGE)
  1811. {
  1812. Num_lang = SendMessage (wndLangList, LB_GETCURSEL, 0, 0);
  1813. Num_lang = SendMessage (wndLangList, LB_GETTEXT, Num_lang,
  1814. (LPARAM) WinCurLang);
  1815. SetWindowText (GetDlgItem (hwnDlg, IDC_LNGEDIT), WinCurLang);
  1816. }
  1817. else if (HIWORD (wParam) == LBN_DBLCLK)
  1818. {
  1819. if (LB_ERR == (Num_lang = SendMessage (wndLangList, LB_GETCURSEL, 0, 0L)))
  1820. break;
  1821. Num_lang = SendMessage (wndLangList, LB_GETTEXT, Num_lang,
  1822. (LPARAM) WinCurLang);
  1823. }
  1824. SetDlgItemText (hwnDlg, IDC_LANGEDIT, WinCurLang);
  1825. ThotCallback (NumSelectLanguage, STRING_DATA, WinCurLang);
  1826. if (HIWORD (wParam) == LBN_DBLCLK)
  1827. {
  1828. ThotCallback (NumFormLanguage, INTEGER_DATA, (char*) 1);
  1829. LangForm = NULL;
  1830. EndDialog (hwnDlg, ID_DONE);
  1831. return FALSE;
  1832. }
  1833. }
  1834. switch (LOWORD (wParam))
  1835. {
  1836. case ID_APPLY:
  1837. ThotCallback (NumFormLanguage, INTEGER_DATA, (char*) 1);
  1838. break;
  1839. case ID_DELETE:
  1840. ThotCallback (NumFormLanguage, INTEGER_DATA, (char*) 2);
  1841. break;
  1842. case ID_DONE:
  1843. ThotCallback (NumFormLanguage, INTEGER_DATA, (char*) 0);
  1844. LangForm = NULL;
  1845. EndDialog (hwnDlg, ID_DONE);
  1846. break;
  1847. case WM_CLOSE:
  1848. case WM_DESTROY:
  1849. LangForm = NULL;
  1850. EndDialog (hwnDlg, ID_DONE);
  1851. break;
  1852. }
  1853. break;
  1854. default: return FALSE;
  1855. }
  1856. return TRUE;
  1857. }
  1858. /*-----------------------------------------------------------------------
  1859. CharacterDlgProc
  1860. ------------------------------------------------------------------------*/
  1861. LRESULT CALLBACK CharacterDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  1862. LPARAM lParam)
  1863. {
  1864. switch (msg)
  1865. {
  1866. case WM_INITDIALOG:
  1867. CharacterForm = hwnDlg;
  1868. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_CHAR));
  1869. SetWindowText (GetDlgItem (hwnDlg, IDC_FONTFAMILYGROUP),
  1870. TtaGetMessage (LIB, TMSG_FONT_FAMILY));
  1871. SetWindowText (GetDlgItem (hwnDlg, IDC_TIMES), "Times");
  1872. SetWindowText (GetDlgItem (hwnDlg, IDC_HELVETICA), "Helvetica");
  1873. SetWindowText (GetDlgItem (hwnDlg, IDC_COURIER), "Courrier");
  1874. SetWindowText (GetDlgItem (hwnDlg, IDC_DEFAULTFAMILY),
  1875. TtaGetMessage (LIB, TMSG_UNCHANGED));
  1876. SetWindowText (GetDlgItem (hwnDlg, IDC_CHARSTYLEGROUP),
  1877. TtaGetMessage (LIB, TMSG_STYLE));
  1878. SetWindowText (GetDlgItem (hwnDlg, IDC_ROMAN), TtaGetMessage (LIB, TMSG_ROMAN));
  1879. SetWindowText (GetDlgItem (hwnDlg, IDC_ITALIC), TtaGetMessage (LIB, TMSG_ITALIC));
  1880. SetWindowText (GetDlgItem (hwnDlg, IDC_OBLIQUE),
  1881. TtaGetMessage (LIB, TMSG_OBLIQUE));
  1882. SetWindowText (GetDlgItem (hwnDlg, IDC_DEFAULTSTYLE),
  1883. TtaGetMessage (LIB, TMSG_UNCHANGED));
  1884. SetWindowText (GetDlgItem (hwnDlg, IDC_UNDERLINEGROUP),
  1885. TtaGetMessage (LIB, TMSG_LINE));
  1886. SetWindowText (GetDlgItem (hwnDlg, IDC_NORMAL), TtaGetMessage (LIB, TMSG_NORMAL));
  1887. SetWindowText (GetDlgItem (hwnDlg, IDC_UNDERLINE),
  1888. TtaGetMessage (LIB, TMSG_UNDERLINE));
  1889. SetWindowText (GetDlgItem (hwnDlg, IDC_OVERLINE),
  1890. TtaGetMessage (LIB, TMSG_OVERLINE));
  1891. SetWindowText (GetDlgItem (hwnDlg, IDC_CROSSOUT),
  1892. TtaGetMessage (LIB, TMSG_CROSS_OUT));
  1893. SetWindowText (GetDlgItem (hwnDlg, IDC_DEFAULTUNDERLINE), TtaGetMessage (LIB, TMSG_UNCHANGED));
  1894. SetWindowText (GetDlgItem (hwnDlg, IDC_BOLDGROUP), TtaGetMessage (LIB, TMSG_BOLDNESS));
  1895. SetWindowText (GetDlgItem (hwnDlg, IDC_NORMALBOLD), TtaGetMessage (LIB, TMSG_NOT_BOLD));
  1896. SetWindowText (GetDlgItem (hwnDlg, IDC_BOLD), TtaGetMessage (LIB, TMSG_BOLD));
  1897. SetWindowText (GetDlgItem (hwnDlg, IDC_DEFAULTBOLD), TtaGetMessage (LIB, TMSG_UNCHANGED));
  1898. SetWindowText (GetDlgItem (hwnDlg, IDC_BODYSIZEGROUP),
  1899. TtaGetMessage (LIB, TMSG_BODY_SIZE_PTS));
  1900. SetWindowText (GetDlgItem (hwnDlg, IDC_06PT), " 6 pt");
  1901. SetWindowText (GetDlgItem (hwnDlg, IDC_08PT), " 8 pt");
  1902. SetWindowText (GetDlgItem (hwnDlg, IDC_10PT), "10 pt");
  1903. SetWindowText (GetDlgItem (hwnDlg, IDC_12PT), "12 pt");
  1904. SetWindowText (GetDlgItem (hwnDlg, IDC_14PT), "14 pt");
  1905. SetWindowText (GetDlgItem (hwnDlg, IDC_16PT), "16 pt");
  1906. SetWindowText (GetDlgItem (hwnDlg, IDC_20PT), "20 pt");
  1907. SetWindowText (GetDlgItem (hwnDlg, IDC_24PT), "24 pt");
  1908. SetWindowText (GetDlgItem (hwnDlg, IDC_30PT), "30 pt");
  1909. SetWindowText (GetDlgItem (hwnDlg, IDC_40PT), "40 pt");
  1910. SetWindowText (GetDlgItem (hwnDlg, IDC_60PT), "60 pt");
  1911. SetWindowText (GetDlgItem (hwnDlg, IDC_DEFAULTSIZE),
  1912. TtaGetMessage (LIB, TMSG_UNCHANGED));
  1913. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY), TtaGetMessage (LIB, TMSG_APPLY));
  1914. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_DONE));
  1915. switch (fontNum) {
  1916. case 1: CheckRadioButton (hwnDlg, IDC_TIMES, IDC_DEFAULTFAMILY, IDC_TIMES);
  1917. break;
  1918. case 2: CheckRadioButton (hwnDlg, IDC_TIMES, IDC_DEFAULTFAMILY, IDC_HELVETICA);
  1919. break;
  1920. case 3: CheckRadioButton (hwnDlg, IDC_TIMES, IDC_DEFAULTFAMILY, IDC_COURIER);
  1921. break;
  1922. default: CheckRadioButton (hwnDlg, IDC_TIMES, IDC_DEFAULTFAMILY,
  1923. IDC_DEFAULTFAMILY);
  1924. }
  1925. /**** separer ce menu en deux, en utilisant la varable fontWeight *****/
  1926. switch (fontStyle) {
  1927. case 0: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_ROMAN);
  1928. break;
  1929. case 1: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_ITALIC);
  1930. break;
  1931. case 2: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_OBLIQUE);
  1932. break;
  1933. default: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_DEFAULTSTYLE);
  1934. break;
  1935. }
  1936. switch (fontWeight) {
  1937. case 0: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_NORMALBOLD);
  1938. break;
  1939. case 1: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_BOLD);
  1940. break;
  1941. default: CheckRadioButton (hwnDlg, IDC_ROMAN, IDC_DEFAULTSTYLE, IDC_DEFAULTSTYLE);
  1942. break;
  1943. }
  1944. switch (fontUnderline) {
  1945. case 0: CheckRadioButton (hwnDlg, IDC_NORMAL, IDC_DEFAULTUNDERLINE, IDC_NORMAL);
  1946. break;
  1947. case 1: CheckRadioButton (hwnDlg, IDC_NORMAL, IDC_DEFAULTUNDERLINE, IDC_UNDERLINE);
  1948. break;
  1949. case 2: CheckRadioButton (hwnDlg, IDC_NORMAL, IDC_DEFAULTUNDERLINE, IDC_OVERLINE);
  1950. break;
  1951. case 3: CheckRadioButton (hwnDlg, IDC_NORMAL, IDC_DEFAULTUNDERLINE, IDC_CROSSOUT);
  1952. break;
  1953. default: CheckRadioButton (hwnDlg, IDC_NORMAL, IDC_DEFAULTUNDERLINE, IDC_DEFAULTUNDERLINE);
  1954. break;
  1955. }
  1956. switch (fontSize) {
  1957. case 6: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_06PT);
  1958. break;
  1959. case 8: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_08PT);
  1960. break;
  1961. case 10: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_10PT);
  1962. break;
  1963. case 12: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_12PT);
  1964. break;
  1965. case 14: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_14PT);
  1966. break;
  1967. case 16: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_16PT);
  1968. break;
  1969. case 20: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_20PT);
  1970. break;
  1971. case 24: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_24PT);
  1972. break;
  1973. case 30: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_30PT);
  1974. break;
  1975. case 40: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_40PT);
  1976. break;
  1977. case 60: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_60PT);
  1978. break;
  1979. default: CheckRadioButton (hwnDlg, IDC_06PT, IDC_DEFAULTSIZE, IDC_DEFAULTSIZE);
  1980. break;
  1981. }
  1982. break;
  1983. case WM_CLOSE:
  1984. case WM_DESTROY:
  1985. CharacterForm = NULL;
  1986. EndDialog (hwnDlg, ID_DONE);
  1987. break;
  1988. case WM_COMMAND:
  1989. switch (LOWORD (wParam)) {
  1990. case ID_DONE:
  1991. ThotCallback (NumFormPresChar, INTEGER_DATA, (char*) 0);
  1992. CharacterForm = NULL;
  1993. EndDialog (hwnDlg, ID_DONE);
  1994. break;
  1995. case ID_APPLY:
  1996. ThotCallback (NumFormPresChar, INTEGER_DATA, (char*) 1);
  1997. break;
  1998. case IDC_TIMES:
  1999. ThotCallback (NumMenuCharFamily, INTEGER_DATA, (char*) 0);
  2000. break;
  2001. case IDC_HELVETICA:
  2002. ThotCallback (NumMenuCharFamily, INTEGER_DATA, (char*) 1);
  2003. break;
  2004. case IDC_COURIER:
  2005. ThotCallback (NumMenuCharFamily, INTEGER_DATA, (char*) 2);
  2006. break;
  2007. case IDC_DEFAULTFAMILY:
  2008. ThotCallback (NumMenuCharFamily, INTEGER_DATA, (char*) 3);
  2009. break;
  2010. case IDC_ROMAN:
  2011. ThotCallback (NumMenuCharFontStyle, INTEGER_DATA, (char*) 0);
  2012. break;
  2013. case IDC_ITALIC:
  2014. ThotCallback (NumMenuCharFontStyle, INTEGER_DATA, (char*) 1);
  2015. break;
  2016. case IDC_OBLIQUE:
  2017. ThotCallback (NumMenuCharFontStyle, INTEGER_DATA, (char*) 2);
  2018. break;
  2019. case IDC_DEFAULTSTYLE:
  2020. ThotCallback (NumMenuCharFontStyle, INTEGER_DATA, (char*) 3);
  2021. break;
  2022. case IDC_NORMALBOLD:
  2023. ThotCallback (NumMenuCharFontWeight, INTEGER_DATA, (char*) 0);
  2024. break;
  2025. case IDC_BOLD:
  2026. ThotCallback (NumMenuCharFontWeight, INTEGER_DATA, (char*) 1);
  2027. break;
  2028. case IDC_DEFAULTBOLD:
  2029. ThotCallback (NumMenuCharFontWeight, INTEGER_DATA, (char*) 2);
  2030. break;
  2031. case IDC_NORMAL:
  2032. ThotCallback (NumMenuUnderlineType, INTEGER_DATA, (char*) 0);
  2033. break;
  2034. case IDC_UNDERLINE:
  2035. ThotCallback (NumMenuUnderlineType, INTEGER_DATA, (char*) 1);
  2036. break;
  2037. case IDC_OVERLINE:
  2038. ThotCallback (NumMenuUnderlineType, INTEGER_DATA, (char*) 2);
  2039. break;
  2040. case IDC_CROSSOUT:
  2041. ThotCallback (NumMenuUnderlineType, INTEGER_DATA, (char*) 3);
  2042. break;
  2043. case IDC_DEFAULTUNDERLINE:
  2044. ThotCallback (NumMenuUnderlineType, INTEGER_DATA, (char*) 4);
  2045. break;
  2046. case IDC_06PT:
  2047. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 0);
  2048. break;
  2049. case IDC_08PT:
  2050. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 1);
  2051. break;
  2052. case IDC_10PT:
  2053. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 2);
  2054. break;
  2055. case IDC_12PT:
  2056. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 3);
  2057. break;
  2058. case IDC_14PT:
  2059. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 4);
  2060. break;
  2061. case IDC_16PT:
  2062. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 5);
  2063. break;
  2064. case IDC_20PT:
  2065. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 6);
  2066. break;
  2067. case IDC_24PT:
  2068. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 7);
  2069. break;
  2070. case IDC_30PT:
  2071. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 8);
  2072. break;
  2073. case IDC_40PT:
  2074. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 9);
  2075. break;
  2076. case IDC_60PT:
  2077. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 10);
  2078. break;
  2079. case IDC_DEFAULTSIZE:
  2080. ThotCallback (NumMenuCharFontSize, INTEGER_DATA, (char*) 11);
  2081. break;
  2082. }
  2083. break;
  2084. default:
  2085. return FALSE;
  2086. }
  2087. return TRUE;
  2088. }
  2089. /*-----------------------------------------------------------------------
  2090. ------------------------------------------------------------------------*/
  2091. LRESULT CALLBACK MathEntityDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  2092. LPARAM lParam)
  2093. {
  2094. switch (msg)
  2095. {
  2096. case WM_INITDIALOG:
  2097. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_MEntity));
  2098. SetWindowText (GetDlgItem (hwnDlg, IDC_ENTITY_NAME),
  2099. TtaGetMessage (AMAYA, AM_MATH_ENTITY_NAME));
  2100. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  2101. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  2102. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  2103. SetFocus (GetDlgItem (hwnDlg, IDC_EDIT_NAME));
  2104. break;
  2105. case WM_COMMAND:
  2106. switch (LOWORD (wParam))
  2107. {
  2108. case ID_CONFIRM:
  2109. GetDlgItemText (hwnDlg, IDC_EDIT_NAME, MathEntName,
  2110. sizeof (MathEntName) - 1);
  2111. ThotCallback (BaseDialog + MathEntityText, STRING_DATA, MathEntName);
  2112. ThotCallback (BaseDialog + MathEntityForm, INTEGER_DATA, (char*) 1);
  2113. EndDialog (hwnDlg, ID_CONFIRM);
  2114. break;
  2115. case IDCANCEL:
  2116. EndDialog (hwnDlg, IDCANCEL);
  2117. ThotCallback (BaseDialog + MathEntityForm, INTEGER_DATA, (char*) 0);
  2118. }
  2119. default:
  2120. return FALSE;
  2121. }
  2122. return TRUE;
  2123. }
  2124. /*-----------------------------------------------------------------------
  2125. ApplyClassDlgProc
  2126. ------------------------------------------------------------------------*/
  2127. LRESULT CALLBACK ApplyClassDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  2128. LPARAM lParam)
  2129. {
  2130. int index = 0;
  2131. UINT i = 0;
  2132. switch (msg)
  2133. {
  2134. case WM_INITDIALOG:
  2135. /* get the default GUI font */
  2136. if (WithEdit)
  2137. {
  2138. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_DEF_CLASS));
  2139. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  2140. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  2141. }
  2142. else
  2143. {
  2144. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_APPLY_CLASS));
  2145. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  2146. TtaGetMessage (LIB, TMSG_APPLY));
  2147. }
  2148. SetWindowText (GetDlgItem (hwnDlg, ID_DONE), TtaGetMessage (LIB, TMSG_DONE));
  2149. wndListRule = CreateWindow ("listbox", NULL,
  2150. WS_CHILD | WS_VISIBLE | LBS_STANDARD,
  2151. 10, 10, 200, 120, hwnDlg, (HMENU) 1,
  2152. (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE),
  2153. NULL);
  2154. /* set the font of the window */
  2155. WIN_SetDialogfont (wndListRule);
  2156. SendMessage (wndListRule, LB_RESETCONTENT, 0, 0);
  2157. while (i < nbClass && ClassList[index] != EOS)
  2158. {
  2159. SendMessage (wndListRule, LB_INSERTSTRING, i, (LPARAM) &ClassList[index]);
  2160. index += strlen (&ClassList[index]) + 1; /* entry length */
  2161. i++;
  2162. }
  2163. if (WithEdit)
  2164. {
  2165. wndEditRule = CreateWindow ("EDIT", NULL,
  2166. WS_CHILD | WS_VISIBLE | ES_LEFT | WS_BORDER,
  2167. 10, 130, 200, 30, hwnDlg, (HMENU) IDC_EDITRULE,
  2168. (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE), NULL);
  2169. /* set the font of the window */
  2170. WIN_SetDialogfont (wndEditRule);
  2171. SetDlgItemText (hwnDlg, IDC_EDITRULE, ClassList);
  2172. }
  2173. break;
  2174. case WM_COMMAND:
  2175. if (LOWORD (wParam) == 1 && HIWORD (wParam) == LBN_SELCHANGE)
  2176. {
  2177. itemIndex = SendMessage (wndListRule, LB_GETCURSEL, 0, 0);
  2178. itemIndex = SendMessage (wndListRule, LB_GETTEXT, itemIndex, (LPARAM) SzBuffer);
  2179. SetDlgItemText (hwnDlg, IDC_EDITRULE, SzBuffer);
  2180. if (WithEdit)
  2181. ThotCallback (BaseDialog + ClassSelect, STRING_DATA, SzBuffer);
  2182. else
  2183. ThotCallback (BaseDialog + AClassSelect, STRING_DATA, SzBuffer);
  2184. }
  2185. else if (LOWORD (wParam) == 1 && HIWORD (wParam) == LBN_DBLCLK)
  2186. {
  2187. if (LB_ERR == (itemIndex = SendMessage (wndListRule, LB_GETCURSEL, 0, 0L)))
  2188. break;
  2189. itemIndex = SendMessage (wndListRule, LB_GETTEXT, itemIndex, (LPARAM) SzBuffer);
  2190. SetDlgItemText (hwnDlg, IDC_EDITRULE, SzBuffer);
  2191. if (WithEdit)
  2192. {
  2193. ThotCallback (BaseDialog + ClassSelect, STRING_DATA, SzBuffer);
  2194. ThotCallback (BaseDialog + ClassForm, INTEGER_DATA, (char*) 1);
  2195. }
  2196. else
  2197. {
  2198. ThotCallback (BaseDialog + AClassSelect, STRING_DATA, SzBuffer);
  2199. ThotCallback (BaseDialog + AClassForm, INTEGER_DATA, (char*) 1);
  2200. }
  2201. EndDialog (hwnDlg, ID_CONFIRM);
  2202. return FALSE;
  2203. }
  2204. else if (WithEdit && HIWORD (wParam) == EN_UPDATE)
  2205. {
  2206. GetDlgItemText (hwnDlg, IDC_EDITRULE, SzBuffer, sizeof (SzBuffer) - 1);
  2207. ThotCallback (BaseDialog + ClassSelect, STRING_DATA, SzBuffer);
  2208. }
  2209. switch (LOWORD (wParam))
  2210. {
  2211. case ID_CONFIRM:
  2212. if (WithEdit)
  2213. {
  2214. ThotCallback (BaseDialog + ClassForm, INTEGER_DATA, (char*) 1);
  2215. EndDialog (hwnDlg, ID_CONFIRM);
  2216. }
  2217. else
  2218. {
  2219. ThotCallback (BaseDialog + AClassForm, INTEGER_DATA, (char*) 1);
  2220. return FALSE;
  2221. }
  2222. break;
  2223. case ID_DONE:
  2224. if (WithEdit)
  2225. ThotCallback (BaseDialog + ClassForm, INTEGER_DATA, (char*) 0);
  2226. else
  2227. ThotCallback (BaseDialog + AClassForm, INTEGER_DATA, (char*) 0);
  2228. EndDialog (hwnDlg, ID_DONE);
  2229. break;
  2230. case WM_CLOSE:
  2231. case WM_DESTROY:
  2232. EndDialog (hwnDlg, ID_DONE);
  2233. break;
  2234. }
  2235. break;
  2236. default:
  2237. return FALSE;
  2238. }
  2239. return TRUE;
  2240. }
  2241. /*-----------------------------------------------------------------------
  2242. InitConfirmDlgProc
  2243. ------------------------------------------------------------------------*/
  2244. LRESULT CALLBACK InitConfirmDlgProc (ThotWindow hwnDlg, UINT msg,
  2245. WPARAM wParam, LPARAM lParam)
  2246. {
  2247. ThotWindow messageWnd;
  2248. char *ptr;
  2249. switch (msg)
  2250. {
  2251. case WM_INITDIALOG:
  2252. InitConfirmForm = hwnDlg;
  2253. /* get the default GUI font */
  2254. ptr = TtaGetMessage (LIB, TMSG_LIB_CONFIRM);
  2255. SetWindowText (hwnDlg, ptr);
  2256. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM), Message2);
  2257. if (strcmp (Message2, ptr))
  2258. /* generate a button show */
  2259. SetWindowText (GetDlgItem (hwnDlg, ID_MIDDLE), Message3);
  2260. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_DISCARD));
  2261. messageWnd = CreateWindow ("STATIC", Message,
  2262. WS_CHILD | WS_VISIBLE | SS_LEFT,
  2263. 10, 5, 500, 15, hwnDlg, (HMENU) 99,
  2264. (HINSTANCE) GetWindowLong (hwnDlg, GWL_HINSTANCE),
  2265. NULL);
  2266. /* set the font of the window */
  2267. WIN_SetDialogfont (messageWnd);
  2268. break;
  2269. case WM_COMMAND:
  2270. switch (LOWORD (wParam))
  2271. {
  2272. case ID_CONFIRM:
  2273. InitConfirmForm = NULL;
  2274. EndDialog (hwnDlg, ID_CONFIRM);
  2275. ThotCallback (BaseDialog + ConfirmForm, INTEGER_DATA, (char*) 1);
  2276. break;
  2277. case ID_MIDDLE:
  2278. InitConfirmForm = NULL;
  2279. EndDialog (hwnDlg, ID_CONFIRM);
  2280. ThotCallback (BaseDialog + ConfirmForm, INTEGER_DATA, (char*) 2);
  2281. break;
  2282. case IDCANCEL:
  2283. InitConfirmForm = NULL;
  2284. EndDialog (hwnDlg, IDCANCEL);
  2285. ThotCallback (BaseDialog + ConfirmForm, INTEGER_DATA, (char*) 0);
  2286. break;
  2287. }
  2288. break;
  2289. default: return FALSE;
  2290. }
  2291. return TRUE;
  2292. }
  2293. /*-----------------------------------------------------------------------
  2294. InitConfirm3LDlgProc
  2295. ------------------------------------------------------------------------*/
  2296. LRESULT CALLBACK InitConfirm3LDlgProc (ThotWindow hwnDlg, UINT msg,
  2297. WPARAM wParam, LPARAM lParam)
  2298. {
  2299. switch (msg)
  2300. {
  2301. case WM_INITDIALOG:
  2302. SetWindowText (hwnDlg, WndTitle);
  2303. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM), WndTitle);
  2304. if (WithCancel)
  2305. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL),
  2306. TtaGetMessage (LIB, TMSG_CANCEL));
  2307. if (Message)
  2308. SetWindowText (GetDlgItem (hwnDlg, IDC_MESSAGE1), Message);
  2309. if (Message2)
  2310. SetWindowText (GetDlgItem (hwnDlg, IDC_MESSAGE2), Message2);
  2311. if (Message3)
  2312. SetWindowText (GetDlgItem (hwnDlg, IDC_MESSAGE3), Message3);
  2313. break;
  2314. case WM_COMMAND:
  2315. switch (LOWORD (wParam))
  2316. {
  2317. case ID_CONFIRM:
  2318. EndDialog (hwnDlg, ID_CONFIRM);
  2319. if (WithCancel)
  2320. ThotCallback (BaseDialog + ConfirmForm, INTEGER_DATA, (char*) 1);
  2321. else
  2322. ThotCallback (BaseDialog + ConfirmForm, INTEGER_DATA, (char*) 0);
  2323. break;
  2324. case IDCANCEL:
  2325. EndDialog (hwnDlg, IDCANCEL);
  2326. ThotCallback (BaseDialog + ConfirmForm, INTEGER_DATA, (char*) 0);
  2327. break;
  2328. }
  2329. break;
  2330. default: return FALSE;
  2331. }
  2332. return TRUE;
  2333. }
  2334. /*-----------------------------------------------------------------------
  2335. ChangeFormatDlgProc
  2336. ------------------------------------------------------------------------*/
  2337. LRESULT CALLBACK ChangeFormatDlgProc (ThotWindow hwnDlg, UINT msg,
  2338. WPARAM wParam, LPARAM lParam)
  2339. {
  2340. ThotBool ok;
  2341. int val;
  2342. switch (msg)
  2343. {
  2344. case WM_INITDIALOG:
  2345. FormatForm = hwnDlg;
  2346. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_FORMAT));
  2347. SetWindowText (GetDlgItem (hwnDlg, IDCALIGNGROUP),
  2348. TtaGetMessage (LIB, TMSG_ALIGN));
  2349. SetWindowText (GetDlgItem (hwnDlg, IDC_DEFAULTALIGN),
  2350. TtaGetMessage (LIB, TMSG_UNCHANGED));
  2351. SetWindowText (GetDlgItem (hwnDlg, IDC_INDENTGROUP),
  2352. TtaGetMessage (LIB, TMSG_INDENT));
  2353. SetWindowText (GetDlgItem (hwnDlg, IDC_INDENTDEFAULT),
  2354. TtaGetMessage (LIB, TMSG_UNCHANGED));
  2355. SetWindowText (GetDlgItem (hwnDlg, IDC_INDENTPT),
  2356. TtaGetMessage (LIB, TMSG_INDENT_PTS));
  2357. SetWindowText (GetDlgItem (hwnDlg, IDC_LINESPACEGROUP),
  2358. TtaGetMessage (LIB, TMSG_LINE_SPACING));
  2359. SetWindowText (GetDlgItem (hwnDlg, IDC_LINESPACINGPT),
  2360. TtaGetMessage (LIB, TMSG_LINE_SPACING_PTS));
  2361. SetWindowText (GetDlgItem (hwnDlg, IDC_SPACINGDEFAULT),
  2362. TtaGetMessage (LIB, TMSG_UNCHANGED));
  2363. SetWindowText (GetDlgItem (hwnDlg, ID_APPLY),
  2364. TtaGetMessage (LIB, TMSG_APPLY));
  2365. SetWindowText (GetDlgItem (hwnDlg, ID_DONE),
  2366. TtaGetMessage (LIB, TMSG_DONE));
  2367. if (Align_num == 0)
  2368. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_LEFT);
  2369. else if (Align_num == 1)
  2370. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_RIGHT);
  2371. else if (Align_num == 2)
  2372. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_CENTER);
  2373. else if (Align_num == 3)
  2374. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_JUSTIFY);
  2375. if (Indent_num == 0)
  2376. CheckRadioButton (hwnDlg, IDC_INDENT1, IDC_INDENTDEFAULT, IDC_INDENT1);
  2377. else if (Indent_num == 1)
  2378. CheckRadioButton (hwnDlg, IDC_INDENT1, IDC_INDENTDEFAULT, IDC_INDENT2);
  2379. if (Line_spacingNum == 0)
  2380. CheckRadioButton (hwnDlg, IDC_SSMALL, IDC_SPACINGDEFAULT, IDC_SSMALL);
  2381. else if (Line_spacingNum == 1)
  2382. CheckRadioButton (hwnDlg, IDC_SSMALL, IDC_SPACINGDEFAULT, IDC_SMEDIUM);
  2383. else if (Line_spacingNum == 2)
  2384. CheckRadioButton (hwnDlg, IDC_SSMALL, IDC_SPACINGDEFAULT, IDC_SLARGE);
  2385. SetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, Indent_value, FALSE);
  2386. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, Old_lineSp, FALSE);
  2387. break;
  2388. case WM_CLOSE:
  2389. case WM_DESTROY:
  2390. FormatForm = NULL;
  2391. EndDialog (hwnDlg, ID_DONE);
  2392. break;
  2393. case WM_COMMAND:
  2394. if (HIWORD (wParam) == EN_UPDATE)
  2395. {
  2396. if (LOWORD (wParam) == IDC_INDENTPTEDIT)
  2397. {
  2398. val = GetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, &ok, TRUE);
  2399. if (ok)
  2400. ThotCallback (Num_zoneRecess, INTEGER_DATA, (char*) val);
  2401. }
  2402. else if (LOWORD (wParam) == IDC_LINESPACINGEDIT)
  2403. {
  2404. val = GetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, &ok, TRUE);
  2405. if (ok)
  2406. ThotCallback (Num_zoneLineSpacing, INTEGER_DATA, (char*) val);
  2407. }
  2408. }
  2409. switch (LOWORD (wParam))
  2410. {
  2411. /* Alignement menu */
  2412. case ID_APPLY:
  2413. ThotCallback (NumFormPresFormat, INTEGER_DATA, (char*) 1);
  2414. break;
  2415. case ID_DONE:
  2416. ThotCallback (NumFormPresFormat, INTEGER_DATA, (char*) 0);
  2417. FormatForm = NULL;
  2418. EndDialog (hwnDlg, ID_DONE);
  2419. break;
  2420. case IDC_BLEFT:
  2421. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 0);
  2422. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_LEFT);
  2423. break;
  2424. case IDC_LEFT:
  2425. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 0);
  2426. break;
  2427. case IDC_BRIGHT:
  2428. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_RIGHT);
  2429. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 1);
  2430. break;
  2431. case IDC_RIGHT:
  2432. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 1);
  2433. break;
  2434. case IDC_BCENTER:
  2435. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_CENTER);
  2436. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 2);
  2437. break;
  2438. case IDC_CENTER:
  2439. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 2);
  2440. break;
  2441. case IDC_BJUSTIFY:
  2442. CheckRadioButton (hwnDlg, IDC_LEFT, IDC_DEFAULTALIGN, IDC_JUSTIFY);
  2443. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 3);
  2444. break;
  2445. case IDC_JUSTIFY:
  2446. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 3);
  2447. break;
  2448. case IDC_DEFAULTALIGN:
  2449. ThotCallback (NumMenuAlignment, INTEGER_DATA, (char*) 4);
  2450. break;
  2451. /* Indent Menu */
  2452. case IDC_INDENT1:
  2453. ThotCallback (NumMenuRecessSense, INTEGER_DATA, (char*) 0);
  2454. SetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, WIN_IndentValue, FALSE);
  2455. break;
  2456. case IDC_BINDENT1:
  2457. CheckRadioButton (hwnDlg, IDC_INDENT1, IDC_INDENTDEFAULT, IDC_INDENT1);
  2458. ThotCallback (NumMenuRecessSense, INTEGER_DATA, (char*) 0);
  2459. SetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, WIN_IndentValue, FALSE);
  2460. break;
  2461. case IDC_INDENT2:
  2462. ThotCallback (NumMenuRecessSense, INTEGER_DATA, (char*) 1);
  2463. SetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, WIN_IndentValue, FALSE);
  2464. break;
  2465. case IDC_BINDENT2:
  2466. CheckRadioButton (hwnDlg, IDC_INDENT1, IDC_INDENTDEFAULT, IDC_INDENT2);
  2467. ThotCallback (NumMenuRecessSense, INTEGER_DATA, (char*) 1);
  2468. SetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, WIN_IndentValue, FALSE);
  2469. break;
  2470. case IDC_INDENTDEFAULT:
  2471. ThotCallback (NumMenuRecessSense, INTEGER_DATA, (char*) 2);
  2472. SetDlgItemInt (hwnDlg, IDC_INDENTPTEDIT, 0, FALSE);
  2473. break;
  2474. /* Line spacing menu */
  2475. case IDC_SSMALL:
  2476. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 0);
  2477. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_OldLineSp, FALSE);
  2478. break;
  2479. case IDC_BSSMALL:
  2480. CheckRadioButton (hwnDlg, IDC_SSMALL, IDC_SPACINGDEFAULT, IDC_SSMALL);
  2481. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 0);
  2482. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_OldLineSp, FALSE);
  2483. break;
  2484. case IDC_SMEDIUM:
  2485. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 1);
  2486. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_OldLineSp, FALSE);
  2487. break;
  2488. case IDC_BSMEDIUM:
  2489. CheckRadioButton (hwnDlg, IDC_SSMALL, IDC_SPACINGDEFAULT, IDC_SMEDIUM);
  2490. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 1);
  2491. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_OldLineSp, FALSE);
  2492. break;
  2493. case IDC_SLARGE:
  2494. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 2);
  2495. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_OldLineSp, FALSE);
  2496. break;
  2497. case IDC_BSLARGE:
  2498. CheckRadioButton (hwnDlg, IDC_SSMALL, IDC_SPACINGDEFAULT, IDC_SLARGE);
  2499. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 2);
  2500. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_OldLineSp, FALSE);
  2501. break;
  2502. case IDC_SPACINGDEFAULT:
  2503. ThotCallback (NumMenuLineSpacing, INTEGER_DATA, (char*) 3);
  2504. SetDlgItemInt (hwnDlg, IDC_LINESPACINGEDIT, WIN_NormalLineSpacing, FALSE);
  2505. break;
  2506. }
  2507. break;
  2508. default: return FALSE;
  2509. }
  2510. return TRUE;
  2511. }
  2512. /*-----------------------------------------------------------------------
  2513. GreekKeyboardDlgProc
  2514. ------------------------------------------------------------------------*/
  2515. LRESULT CALLBACK GreekKeyboardDlgProc (ThotWindow hwnDlg, UINT msg,
  2516. WPARAM wParam, LPARAM lParam)
  2517. {
  2518. int car;
  2519. switch (msg)
  2520. {
  2521. case WM_INITDIALOG:
  2522. GreekPal = hwnDlg;
  2523. SetWindowText (hwnDlg, TtaGetMessage (LIB, TMSG_GREEK_ALPHABET));
  2524. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  2525. break;
  2526. case WM_CLOSE:
  2527. case WM_DESTROY:
  2528. GreekPal = NULL;
  2529. EndDialog (hwnDlg, ID_DONE);
  2530. break;
  2531. case WM_COMMAND:
  2532. switch (LOWORD (wParam))
  2533. {
  2534. case IDCANCEL:
  2535. GreekPal = NULL;
  2536. EndDialog (hwnDlg, IDCANCEL);
  2537. return FALSE;
  2538. break;
  2539. case IDC_GKEY001:
  2540. car = 800;
  2541. break;
  2542. case IDC_GKEY002:
  2543. car = 801;
  2544. break;
  2545. case IDC_GKEY003:
  2546. car = 802;
  2547. break;
  2548. case IDC_GKEY004:
  2549. car = 803;
  2550. break;
  2551. case IDC_GKEY005:
  2552. car = 804;
  2553. break;
  2554. case IDC_GKEY006:
  2555. car = 805;
  2556. break;
  2557. case IDC_GKEY007:
  2558. car = 806;
  2559. break;
  2560. case IDC_GKEY008:
  2561. car = 807;
  2562. break;
  2563. case IDC_GKEY009:
  2564. car = 808;
  2565. break;
  2566. case IDC_GKEY010:
  2567. car = 809;
  2568. break;
  2569. case IDC_GKEY011:
  2570. car = 810;
  2571. break;
  2572. case IDC_GKEY012:
  2573. car = 811;
  2574. break;
  2575. case IDC_GKEY013:
  2576. car = 812;
  2577. break;
  2578. case IDC_GKEY014:
  2579. car = 813;
  2580. break;
  2581. case IDC_GKEY015:
  2582. car = 814;
  2583. break;
  2584. case IDC_GKEY016:
  2585. car = 815;
  2586. break;
  2587. case IDC_GKEY017:
  2588. car = 816;
  2589. break;
  2590. case IDC_GKEY018:
  2591. car = 817;
  2592. break;
  2593. case IDC_GKEY019:
  2594. car = 818;
  2595. break;
  2596. case IDC_GKEY020:
  2597. car = 819;
  2598. break;
  2599. case IDC_GKEY021:
  2600. car = 820;
  2601. break;
  2602. case IDC_GKEY022:
  2603. car = 821;
  2604. break;
  2605. case IDC_GKEY023:
  2606. car = 822;
  2607. break;
  2608. case IDC_GKEY024:
  2609. car = 823;
  2610. break;
  2611. case IDC_GKEY025:
  2612. car = 824;
  2613. break;
  2614. case IDC_GKEY026:
  2615. car = 825;
  2616. break;
  2617. case IDC_GKEY027:
  2618. car = 826;
  2619. break;
  2620. case IDC_GKEY028:
  2621. car = 827;
  2622. break;
  2623. case IDC_GKEY029:
  2624. car = 828;
  2625. break;
  2626. case IDC_GKEY030:
  2627. car = 829;
  2628. break;
  2629. case IDC_GKEY031:
  2630. car = 830;
  2631. break;
  2632. case IDC_GKEY032:
  2633. car = 831;
  2634. break;
  2635. case IDC_GKEY033:
  2636. car = 832;
  2637. break;
  2638. case IDC_GKEY034:
  2639. car = 833;
  2640. break;
  2641. case IDC_GKEY035:
  2642. car = 834;
  2643. break;
  2644. case IDC_GKEY036:
  2645. car = 835;
  2646. break;
  2647. case IDC_GKEY037:
  2648. car = 836;
  2649. break;
  2650. case IDC_GKEY038:
  2651. car = 837;
  2652. break;
  2653. case IDC_GKEY039:
  2654. car = 838;
  2655. break;
  2656. case IDC_GKEY040:
  2657. car = 839;
  2658. break;
  2659. case IDC_GKEY041:
  2660. car = 840;
  2661. break;
  2662. case IDC_GKEY042:
  2663. car = 841;
  2664. break;
  2665. case IDC_GKEY043:
  2666. car = 842;
  2667. break;
  2668. case IDC_GKEY044:
  2669. car = 843;
  2670. break;
  2671. case IDC_GKEY045:
  2672. car = 844;
  2673. break;
  2674. case IDC_GKEY046:
  2675. car = 845;
  2676. break;
  2677. case IDC_GKEY047:
  2678. car = 846;
  2679. break;
  2680. case IDC_GKEY048:
  2681. car = 847;
  2682. break;
  2683. case IDC_GKEY049:
  2684. car = 848;
  2685. break;
  2686. case IDC_GKEY050:
  2687. car = 849;
  2688. break;
  2689. case IDC_GKEY051:
  2690. car = 850;
  2691. break;
  2692. case IDC_GKEY052:
  2693. car = 851;
  2694. break;
  2695. case IDC_GKEY053:
  2696. car = 852;
  2697. break;
  2698. case IDC_GKEY054:
  2699. car = 853;
  2700. break;
  2701. case IDC_GKEY055:
  2702. car = 854;
  2703. break;
  2704. case IDC_GKEY056:
  2705. car = 855;
  2706. break;
  2707. case IDC_GKEY057:
  2708. car = 856;
  2709. break;
  2710. case IDC_GKEY058:
  2711. car = 857;
  2712. break;
  2713. case IDC_GKEY059:
  2714. car = 858;
  2715. break;
  2716. case IDC_GKEY060:
  2717. car = 859;
  2718. break;
  2719. case IDC_GKEY061:
  2720. car = 860;
  2721. break;
  2722. case IDC_GKEY062:
  2723. car = 861;
  2724. break;
  2725. case IDC_GKEY063:
  2726. car = 862;
  2727. break;
  2728. case IDC_GKEY064:
  2729. car = 863;
  2730. break;
  2731. case IDC_GKEY065:
  2732. car = 865;
  2733. break;
  2734. case IDC_GKEY066:
  2735. car = 866;
  2736. break;
  2737. case IDC_GKEY067:
  2738. car = 867;
  2739. break;
  2740. case IDC_GKEY068:
  2741. car = 868;
  2742. break;
  2743. case IDC_GKEY069:
  2744. car = 869;
  2745. break;
  2746. case IDC_GKEY070:
  2747. car = 870;
  2748. break;
  2749. case IDC_GKEY071:
  2750. car = 871;
  2751. break;
  2752. case IDC_GKEY072:
  2753. car = 872;
  2754. break;
  2755. case IDC_GKEY073:
  2756. car = 873;
  2757. break;
  2758. case IDC_GKEY074:
  2759. car = 874;
  2760. break;
  2761. case IDC_GKEY075:
  2762. car = 875;
  2763. break;
  2764. case IDC_GKEY076:
  2765. car = 876;
  2766. break;
  2767. case IDC_GKEY077:
  2768. car = 877;
  2769. break;
  2770. case IDC_GKEY078:
  2771. car = 878;
  2772. break;
  2773. case IDC_GKEY079:
  2774. car = 879;
  2775. break;
  2776. case IDC_GKEY080:
  2777. car = 880;
  2778. break;
  2779. case IDC_GKEY081:
  2780. car = 881;
  2781. break;
  2782. case IDC_GKEY082:
  2783. car = 882;
  2784. break;
  2785. case IDC_GKEY083:
  2786. car = 883;
  2787. break;
  2788. case IDC_GKEY084:
  2789. car = 884;
  2790. break;
  2791. case IDC_GKEY085:
  2792. car = 885;
  2793. break;
  2794. case IDC_GKEY086:
  2795. car = 886;
  2796. break;
  2797. case IDC_GKEY087:
  2798. car = 887;
  2799. break;
  2800. case IDC_GKEY088:
  2801. car = 888;
  2802. break;
  2803. case IDC_GKEY089:
  2804. car = 889;
  2805. break;
  2806. case IDC_GKEY090:
  2807. car = 890;
  2808. break;
  2809. case IDC_GKEY091:
  2810. car = 891;
  2811. break;
  2812. case IDC_GKEY092:
  2813. car = 892;
  2814. break;
  2815. case IDC_GKEY093:
  2816. car = 893;
  2817. break;
  2818. case IDC_GKEY094:
  2819. car = 894;
  2820. break;
  2821. case IDC_GKEY095:
  2822. car = 929;
  2823. break;
  2824. case IDC_GKEY096:
  2825. car = 930;
  2826. break;
  2827. case IDC_GKEY097:
  2828. car = 931;
  2829. break;
  2830. case IDC_GKEY098:
  2831. car = 932;
  2832. break;
  2833. case IDC_GKEY099:
  2834. car = 933;
  2835. break;
  2836. case IDC_GKEY100:
  2837. car = 934;
  2838. break;
  2839. case IDC_GKEY101:
  2840. car = 935;
  2841. break;
  2842. case IDC_GKEY102:
  2843. car = 936;
  2844. break;
  2845. case IDC_GKEY103:
  2846. car = 937;
  2847. break;
  2848. case IDC_GKEY104:
  2849. car = 938;
  2850. break;
  2851. case IDC_GKEY105:
  2852. car = 939;
  2853. break;
  2854. case IDC_GKEY106:
  2855. car = 940;
  2856. break;
  2857. case IDC_GKEY107:
  2858. car = 941;
  2859. break;
  2860. case IDC_GKEY108:
  2861. car = 942;
  2862. break;
  2863. case IDC_GKEY109:
  2864. car = 943;
  2865. break;
  2866. case IDC_GKEY110:
  2867. car = 944;
  2868. break;
  2869. case IDC_GKEY111:
  2870. car = 945;
  2871. break;
  2872. case IDC_GKEY112:
  2873. car = 946;
  2874. break;
  2875. case IDC_GKEY113:
  2876. car = 947;
  2877. break;
  2878. case IDC_GKEY114:
  2879. car = 948;
  2880. break;
  2881. case IDC_GKEY115:
  2882. car = 949;
  2883. break;
  2884. case IDC_GKEY116:
  2885. car = 950;
  2886. break;
  2887. case IDC_GKEY117:
  2888. car = 951;
  2889. break;
  2890. case IDC_GKEY118:
  2891. car = 952;
  2892. break;
  2893. case IDC_GKEY119:
  2894. car = 953;
  2895. break;
  2896. case IDC_GKEY120:
  2897. car = 954;
  2898. break;
  2899. case IDC_GKEY121:
  2900. car = 955;
  2901. break;
  2902. case IDC_GKEY122:
  2903. car = 956;
  2904. break;
  2905. case IDC_GKEY123:
  2906. car = 957;
  2907. break;
  2908. case IDC_GKEY124:
  2909. car = 958;
  2910. break;
  2911. case IDC_GKEY125:
  2912. car = 959;
  2913. break;
  2914. case IDC_GKEY126:
  2915. car = 960;
  2916. break;
  2917. case IDC_GKEY127:
  2918. car = 961;
  2919. break;
  2920. case IDC_GKEY128:
  2921. car = 962;
  2922. break;
  2923. case IDC_GKEY129:
  2924. car = 963;
  2925. break;
  2926. case IDC_GKEY130:
  2927. car = 964;
  2928. break;
  2929. case IDC_GKEY131:
  2930. car = 965;
  2931. break;
  2932. case IDC_GKEY132:
  2933. car = 966;
  2934. break;
  2935. case IDC_GKEY133:
  2936. car = 967;
  2937. break;
  2938. case IDC_GKEY134:
  2939. car = 968;
  2940. break;
  2941. case IDC_GKEY135:
  2942. car = 969;
  2943. break;
  2944. case IDC_GKEY136:
  2945. car = 970;
  2946. break;
  2947. case IDC_GKEY137:
  2948. car = 971;
  2949. break;
  2950. case IDC_GKEY138:
  2951. car = 972;
  2952. break;
  2953. case IDC_GKEY139:
  2954. car = 973;
  2955. break;
  2956. case IDC_GKEY140:
  2957. car = 974;
  2958. break;
  2959. case IDC_GKEY141:
  2960. car = 975;
  2961. break;
  2962. case IDC_GKEY142:
  2963. car = 976;
  2964. break;
  2965. case IDC_GKEY143:
  2966. car = 977;
  2967. break;
  2968. case IDC_GKEY144:
  2969. car = 980;
  2970. break;
  2971. case IDC_GKEY145:
  2972. car = 981;
  2973. break;
  2974. case IDC_GKEY146:
  2975. car = 982;
  2976. break;
  2977. case IDC_GKEY147:
  2978. car = 983;
  2979. break;
  2980. case IDC_GKEY148:
  2981. car = 984;
  2982. break;
  2983. case IDC_GKEY149:
  2984. car = 985;
  2985. break;
  2986. case IDC_GKEY150:
  2987. car = 986;
  2988. break;
  2989. case IDC_GKEY151:
  2990. car = 987;
  2991. break;
  2992. case IDC_GKEY152:
  2993. car = 988;
  2994. break;
  2995. case IDC_GKEY153:
  2996. car = 989;
  2997. break;
  2998. case IDC_GKEY154:
  2999. car = 990;
  3000. break;
  3001. case IDC_GKEY155:
  3002. car = 991;
  3003. break;
  3004. case IDC_GKEY156:
  3005. car = 992;
  3006. break;
  3007. case IDC_GKEY157:
  3008. car = 993;
  3009. break;
  3010. case IDC_GKEY158:
  3011. car = 997;
  3012. break;
  3013. case IDC_GKEY159:
  3014. car = 1009;
  3015. break;
  3016. case IDC_GKEY160:
  3017. car = 1010;
  3018. break;
  3019. }
  3020. SetFocus (FrRef[ActiveFrame]);
  3021. KbdCallbackHandler (hwnDlg, car, "\n");
  3022. break;
  3023. default: return FALSE;
  3024. }
  3025. return TRUE;
  3026. }
  3027. /*-----------------------------------------------------------------------
  3028. AuthentificationDlgProc
  3029. ------------------------------------------------------------------------*/
  3030. LRESULT CALLBACK AuthentificationDlgProc (ThotWindow hwnDlg, UINT msg,
  3031. WPARAM wParam, LPARAM lParam)
  3032. {
  3033. static ThotWindow hwnNameEdit;
  3034. static ThotWindow hwnPasswdEdit;
  3035. /* the following var is used to set the focus on the name edit box */
  3036. static ThotBool setFirstFocus;
  3037. char *ptr, *label;
  3038. switch (msg)
  3039. {
  3040. case WM_INITDIALOG:
  3041. /* initialize the dialog messages */
  3042. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_GET_AUTHENTICATION));
  3043. SetWindowText (GetDlgItem (hwnDlg, IDC_TAUTHINFO),
  3044. TtaGetMessage (AMAYA, AM_GET_AUTHENTICATION_MSG));
  3045. ptr = TtaGetMessage (AMAYA, AM_AUTHENTICATION_REALM);
  3046. label = TtaGetMemory (((string_par1) ? strlen (string_par1) : 0)
  3047. + ((string_par2) ? strlen (string_par2) : 0)
  3048. + strlen (ptr)
  3049. + 20); /*a bit more than enough memory */
  3050. if (label)
  3051. {
  3052. sprintf (label, ptr,
  3053. ((string_par1) ? string_par1 : ""));
  3054. SetWindowText (GetDlgItem (hwnDlg, IDC_TAUTHREALM), label);
  3055. ptr = TtaGetMessage (AMAYA, AM_AUTHENTICATION_SERVER);
  3056. sprintf (label, ptr,
  3057. ((string_par2) ? string_par2 : ""));
  3058. SetWindowText (GetDlgItem (hwnDlg, IDC_TAUTHSERVER), label);
  3059. TtaFreeMemory (label);
  3060. }
  3061. SetWindowText (GetDlgItem (hwnDlg, IDC_TNAMEEDIT),
  3062. TtaGetMessage (AMAYA, AM_NAME));
  3063. SetWindowText (GetDlgItem (hwnDlg, IDC_TPASSWDEDIT),
  3064. TtaGetMessage (AMAYA, AM_PASSWORD));
  3065. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  3066. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  3067. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  3068. hwnNameEdit = GetDlgItem (hwnDlg, IDC_NAMEEDIT);
  3069. hwnPasswdEdit = GetDlgItem (hwnDlg, IDC_PASSWDEDIT);
  3070. SetDlgItemText (hwnDlg, IDC_PASSWDEDIT, "");
  3071. SetDlgItemText (hwnDlg, IDC_NAMEEDIT, "");
  3072. setFirstFocus = FALSE;
  3073. break;
  3074. case WM_COMMAND:
  3075. if (HIWORD (wParam) == EN_UPDATE)
  3076. {
  3077. if (LOWORD (wParam) == IDC_NAMEEDIT)
  3078. SetFocus (hwnNameEdit);
  3079. else if (LOWORD (wParam) == IDC_PASSWDEDIT)
  3080. SetFocus (hwnPasswdEdit);
  3081. }
  3082. switch (LOWORD (wParam))
  3083. {
  3084. case ID_CONFIRM:
  3085. GetDlgItemText (hwnDlg, IDC_NAMEEDIT, Answer_name, sizeof (Answer_name) + 1);
  3086. GetDlgItemText (hwnDlg, IDC_PASSWDEDIT,
  3087. Answer_password, sizeof (Answer_password) + 1);
  3088. /* don't end the dialogue unless both answer fields have something */
  3089. if (Answer_name[0] == EOS)
  3090. SetFocus (hwnNameEdit);
  3091. else if (Answer_password[0] == EOS)
  3092. SetFocus (hwnPasswdEdit);
  3093. else
  3094. {
  3095. UserAnswer = 1;
  3096. EndDialog (hwnDlg, ID_CONFIRM);
  3097. }
  3098. break;
  3099. case IDCANCEL:
  3100. /* we clear the answer fields */
  3101. Answer_name[0] = Answer_password[0] = EOS;
  3102. UserAnswer = 0;
  3103. EndDialog (hwnDlg, IDCANCEL);
  3104. break;
  3105. }
  3106. break;
  3107. default:
  3108. if (!setFirstFocus)
  3109. {
  3110. setFirstFocus = TRUE;
  3111. SetFocus (hwnNameEdit);
  3112. }
  3113. return FALSE;
  3114. }
  3115. return TRUE;
  3116. }
  3117. /*-----------------------------------------------------------------------
  3118. BackgroundImageDlgProc
  3119. ------------------------------------------------------------------------*/
  3120. LRESULT CALLBACK BackgroundImageDlgProc (ThotWindow hwnDlg, UINT msg,
  3121. WPARAM wParam, LPARAM lParam)
  3122. {
  3123. switch (msg)
  3124. {
  3125. case WM_INITDIALOG:
  3126. SetDlgItemText (hwnDlg, IDC_BGLOCATION, CurrentPathName);
  3127. CheckRadioButton (hwnDlg, IDC_REPEAT, IDC_NOREPEAT, IDC_REPEAT);
  3128. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, AM_BACKGROUND_IMAGE));
  3129. SetWindowText (GetDlgItem (hwnDlg, IDC_OPENLOCATION),
  3130. TtaGetMessage (AMAYA, AM_IMAGES_LOCATION));
  3131. SetWindowText (GetDlgItem (hwnDlg, IDC_REPEATMODE),
  3132. TtaGetMessage (AMAYA, AM_REPEAT_MODE));
  3133. SetWindowText (GetDlgItem (hwnDlg, IDC_REPEAT), TtaGetMessage (AMAYA, AM_REPEAT));
  3134. SetWindowText (GetDlgItem (hwnDlg, IDC_REPEATX),
  3135. TtaGetMessage (AMAYA, AM_REPEAT_X));
  3136. SetWindowText (GetDlgItem (hwnDlg, IDC_REPEATY),
  3137. TtaGetMessage (AMAYA, AM_REPEAT_Y));
  3138. SetWindowText (GetDlgItem (hwnDlg, IDC_NOREPEAT),
  3139. TtaGetMessage (AMAYA, AM_NO_REPEAT));
  3140. SetWindowText (GetDlgItem (hwnDlg, ID_CONFIRM),
  3141. TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  3142. SetWindowText (GetDlgItem (hwnDlg, ID_CLEAR),
  3143. TtaGetMessage (AMAYA, AM_CLEAR));
  3144. SetWindowText (GetDlgItem (hwnDlg, IDC_BROWSE), TtaGetMessage (AMAYA, AM_BROWSE));
  3145. SetWindowText (GetDlgItem (hwnDlg, IDCANCEL), TtaGetMessage (LIB, TMSG_CANCEL));
  3146. repeatMode = REPEAT_XY;
  3147. break;
  3148. case WM_COMMAND:
  3149. if (HIWORD (wParam) == EN_UPDATE)
  3150. {
  3151. GetDlgItemText (hwnDlg, IDC_BGLOCATION, UrlToOpen, sizeof (UrlToOpen) - 1);
  3152. ThotCallback (BaseImage + ImageURL, STRING_DATA, UrlToOpen);
  3153. }
  3154. switch (LOWORD (wParam))
  3155. {
  3156. case IDC_REPEAT:
  3157. repeatMode = REPEAT_XY;
  3158. break;
  3159. case IDC_REPEATX:
  3160. repeatMode = REPEAT_X;
  3161. break;
  3162. case IDC_REPEATY:
  3163. repeatMode = REPEAT_Y;
  3164. break;
  3165. case IDC_NOREPEAT:
  3166. repeatMode = NO_REPEAT;
  3167. break;
  3168. case ID_CONFIRM:
  3169. ThotCallback (BaseImage + RepeatImage, INTEGER_DATA, (char*)repeatMode);
  3170. ThotCallback (BaseImage + FormBackground, INTEGER_DATA, (char*)1);
  3171. EndDialog (hwnDlg, ID_CONFIRM);
  3172. break;
  3173. case ID_CLEAR:
  3174. SetDlgItemText (hwnDlg, IDC_BGLOCATION, "");
  3175. ThotCallback (BaseImage + RepeatImage, INTEGER_DATA, (char*)repeatMode);
  3176. ThotCallback (BaseImage + FormBackground, INTEGER_DATA, (char*)2);
  3177. break;
  3178. case IDC_BROWSE:
  3179. OpenFileName.lStructSize = sizeof (OPENFILENAME);
  3180. OpenFileName.hwndOwner = hwnDlg;
  3181. OpenFileName.hInstance = hInstance;
  3182. OpenFileName.lpstrFilter = (LPTSTR) SzFilter;
  3183. OpenFileName.lpstrCustomFilter = (LPTSTR) NULL;
  3184. OpenFileName.nMaxCustFilter = 0L;
  3185. OpenFileName.nFilterIndex = indexImgFilter;
  3186. OpenFileName.lpstrFile = (LPTSTR) TmpDocName;
  3187. OpenFileName.nMaxFile = MAX_LENGTH;
  3188. OpenFileName.lpstrInitialDir = (LPTSTR) DirectoryName;
  3189. OpenFileName.lpstrTitle = TtaGetMessage (AMAYA, AM_BACKGROUND_IMAGE);
  3190. OpenFileName.nFileOffset = 0;
  3191. OpenFileName.nFileExtension = 0;
  3192. OpenFileName.lpstrDefExt = "";
  3193. OpenFileName.lCustData = 0;
  3194. OpenFileName.Flags = OFN_SHOWHELP | OFN_HIDEREADONLY;
  3195. if (GetOpenFileName (&OpenFileName))
  3196. {
  3197. strcpy (UrlToOpen, OpenFileName.lpstrFile);
  3198. indexImgFilter = OpenFileName.nFilterIndex;
  3199. }
  3200. SetDlgItemText (hwnDlg, IDC_BGLOCATION, UrlToOpen);
  3201. EndDialog (hwnDlg, ID_CONFIRM);
  3202. ThotCallback (BaseImage + RepeatImage, INTEGER_DATA, (char*)repeatMode);
  3203. ThotCallback (BaseImage + FormBackground, INTEGER_DATA, (char*)1);
  3204. break;
  3205. case IDCANCEL:
  3206. ThotCallback (BaseImage + FormBackground, INTEGER_DATA, (char*)0);
  3207. EndDialog (hwnDlg, IDCANCEL);
  3208. break;
  3209. }
  3210. break;
  3211. default: return FALSE;
  3212. }
  3213. return TRUE;
  3214. }
  3215. /*-----------------------------------------------------------------------
  3216. MakeIDDlgProc
  3217. ------------------------------------------------------------------------*/
  3218. LRESULT CALLBACK MakeIDDlgProc (ThotWindow hwnDlg, UINT msg, WPARAM wParam,
  3219. LPARAM lParam)
  3220. {
  3221. switch (msg)
  3222. {
  3223. case WM_INITDIALOG:
  3224. MakeIDHwnd = hwnDlg;
  3225. /* init the dialog's text */
  3226. SetWindowText (hwnDlg, TtaGetMessage (AMAYA, ADD_REMOVE_ID));
  3227. SetWindowText (GetDlgItem (hwnDlg, ID_CREATEID),
  3228. TtaGetMessage (AMAYA, ADD_ID));
  3229. SetWindowText (GetDlgItem (hwnDlg, ID_REMOVEID),
  3230. TtaGetMessage (AMAYA, REMOVE_ID));
  3231. SetWindowText (GetDlgItem (hwnDlg, ID_DONE),
  3232. TtaGetMessage (LIB, TMSG_DONE));
  3233. /* set up/clear the other options */
  3234. /* elem name */
  3235. SetDlgItemText (hwnDlg, IDC_TIDELEMNAME,
  3236. TtaGetMessage (AMAYA, ENTER_ELEMENT_NAME));
  3237. SetDlgItemText (hwnDlg, IDC_IDELEMNAME, IdElemName);
  3238. SetDlgItemText (hwnDlg, IDC_IDAPPLYTODOC,
  3239. TtaGetMessage (LIB, TMSG_IN_WHOLE_DOC));
  3240. SetDlgItemText (hwnDlg, IDC_IDAPPLYTOSEL,
  3241. TtaGetMessage (LIB, TMSG_WITHIN_SEL));
  3242. /* status bar */
  3243. SetDlgItemText (hwnDlg, IDC_IDSTATUS, "");
  3244. /* radio buttons */
  3245. if (IdApplyToSelection)
  3246. CheckRadioButton (hwnDlg, IDC_IDAPPLYTOSEL,
  3247. IDC_IDAPPLYTOSEL, IDC_IDAPPLYTODOC);
  3248. else
  3249. CheckRadioButton (hwnDlg, IDC_IDAPPLYTODOC,
  3250. IDC_IDAPPLYTOSEL, IDC_IDAPPLYTODOC);
  3251. break;
  3252. case WM_CLOSE:
  3253. case WM_DESTROY:
  3254. MakeIDHwnd = NULL;
  3255. EndDialog (hwnDlg, ID_DONE);
  3256. break;
  3257. case WM_COMMAND:
  3258. if (HIWORD (wParam) == EN_UPDATE)
  3259. {
  3260. switch (LOWORD (wParam))
  3261. {
  3262. case IDC_IDELEMNAME:
  3263. GetDlgItemText (hwnDlg, IDC_IDELEMNAME, SzBuffer,
  3264. MAX_LENGTH - 1);
  3265. SzBuffer[MAX_LENGTH - 1] = EOS;
  3266. ThotCallback (BaseDialog + mElemName, STRING_DATA, SzBuffer);
  3267. break;
  3268. }
  3269. }
  3270. switch (LOWORD (wParam))
  3271. {
  3272. /* radio buttons */
  3273. case IDC_IDAPPLYTODOC:
  3274. ThotCallback (BaseDialog + mIdUseSelection, INTEGER_DATA,
  3275. (char *) 0);
  3276. break;
  3277. case IDC_IDAPPLYTOSEL:
  3278. ThotCallback (BaseDialog + mIdUseSelection, INTEGER_DATA,
  3279. (char *) 1);
  3280. break;
  3281. /* action buttons */
  3282. case ID_CREATEID:
  3283. ThotCallback (BaseDialog + MakeIdMenu, INTEGER_DATA, (char *) 1);
  3284. /* update the status bar with the result of the operation */
  3285. SetDlgItemText (hwnDlg, IDC_IDSTATUS, IdStatus);
  3286. break;
  3287. case ID_REMOVEID:
  3288. ThotCallback (BaseDialog + MakeIdMenu, INTEGER_DATA, (char *) 2);
  3289. /* update the status bar with the result of the operation */
  3290. SetDlgItemText (hwnDlg, IDC_IDSTATUS, IdStatus);
  3291. break;
  3292. case IDCANCEL:
  3293. case ID_DONE:
  3294. MakeIDHwnd = NULL;
  3295. EndDialog (hwnDlg, ID_DONE);
  3296. break;
  3297. }
  3298. break;
  3299. default: return FALSE;
  3300. }
  3301. return TRUE;
  3302. }
  3303. /*-----------------------------------------------------------------------
  3304. ResetDocInfo
  3305. Clears the value of the window handler for a given doc info window.
  3306. ------------------------------------------------------------------------*/
  3307. static void ResetDocInfo (ThotWindow hwnDlg)
  3308. {
  3309. Document doc;
  3310. for (doc = 0; doc < DocumentTableLength ; doc++)
  3311. {
  3312. if (DocInfo[doc] == hwnDlg)
  3313. {
  3314. DocInfo[doc] = NULL;
  3315. break;
  3316. }
  3317. }
  3318. }
  3319. /*-----------------------------------------------------------------------
  3320. DocumentInfoDlgProc
  3321. ------------------------------------------------------------------------*/
  3322. LRESULT CALLBACK DocumentInfoDlgProc (ThotWindow hwnDlg, UINT msg,
  3323. WPARAM wParam, LPARAM lParam)
  3324. {
  3325. Document doc;
  3326. char *content;
  3327. switch (msg)
  3328. {
  3329. case WM_INITDIALOG:
  3330. /* copy the doc id parameter (from the global variable) */
  3331. doc = TmpDoc;
  3332. DocInfo[doc] = hwnDlg;
  3333. /* init the dialog's text */
  3334. SetWindowText (hwnDlg, "Document Information");
  3335. SetWindowText (GetDlgItem (hwnDlg, ID_DONE),
  3336. TtaGetMessage (LIB, TMSG_DONE));
  3337. /* set up the other fields */
  3338. /* document URL */
  3339. SetDlgItemText (hwnDlg, IDC_DIURL, TtaGetMessage (AMAYA, AM_HREF_VALUE));
  3340. if (DocumentURLs[doc] != NULL)
  3341. content = DocumentURLs[doc];
  3342. else
  3343. content = TtaGetMessage (AMAYA, AM_UNKNOWN);
  3344. SetDlgItemText (hwnDlg, IDC_DIURL_VAL, content);
  3345. /* DocumentType */
  3346. SetDlgItemText (hwnDlg, IDC_DIDTYPE, "Document Type");
  3347. content = DocumentTypeString (doc);
  3348. if (!content)
  3349. content = TtaGetMessage (AMAYA, AM_UNKNOWN);
  3350. SetDlgItemText (hwnDlg, IDC_DIDTYPE_VAL, content);
  3351. /* MIME type */
  3352. SetDlgItemText (hwnDlg, IDC_DICONTENTTYPE, "MIME Type");
  3353. if (DocumentMeta[doc] && DocumentMeta[doc]->content_type != NULL)
  3354. content = DocumentMeta[doc]->content_type;
  3355. else
  3356. content = TtaGetMessage (AMAYA, AM_UNKNOWN);
  3357. SetDlgItemText (hwnDlg, IDC_DICONTENTTYPE_VAL, content);
  3358. /* charset */
  3359. SetDlgItemText (hwnDlg, IDC_DICHARSET, "Charset");
  3360. if (DocumentMeta[doc] && DocumentMeta[doc]->charset != NULL)
  3361. content = DocumentMeta[doc]->charset;
  3362. else
  3363. content = TtaGetMessage (AMAYA, AM_UNKNOWN);
  3364. SetDlgItemText (hwnDlg, IDC_DICHARSET_VAL, content);
  3365. /* content length */
  3366. SetDlgItemText (hwnDlg, IDC_DICONTENTLEN, "Content Length");
  3367. if (DocumentMeta[doc] && DocumentMeta[doc]->content_length != NULL)
  3368. content = DocumentMeta[doc]->content_length;
  3369. else
  3370. content = TtaGetMessage (AMAYA, AM_UNKNOWN);
  3371. SetDlgItemText (hwnDlg, IDC_DICONTENTLEN_VAL, content);
  3372. /* content location */
  3373. SetDlgItemText (hwnDlg, IDC_DICONTENTLOC, "Content Location");
  3374. if (DocumentMeta[doc] && DocumentMeta[doc]->full_content_location != NULL)
  3375. content = DocumentMeta[doc]->full_content_location;
  3376. else
  3377. content = TtaGetMessage (AMAYA, AM_UNKNOWN);
  3378. SetDlgItemText (hwnDlg, IDC_DICONTENTLOC_VAL, content);
  3379. break;
  3380. case WM_CLOSE:
  3381. case WM_DESTROY:
  3382. ResetDocInfo (hwnDlg);
  3383. EndDialog (hwnDlg, ID_DONE);
  3384. break;
  3385. case WM_COMMAND:
  3386. switch (LOWORD (wParam))
  3387. {
  3388. /* action buttons */
  3389. case IDCANCEL:
  3390. case ID_DONE:
  3391. ResetDocInfo (hwnDlg);
  3392. EndDialog (hwnDlg, ID_DONE);
  3393. break;
  3394. }
  3395. break;
  3396. default: return FALSE;
  3397. }
  3398. return TRUE;
  3399. }
  3400. /*-----------------------------------------------------------------------
  3401. CreateAltDlgWindow
  3402. ------------------------------------------------------------------------*/
  3403. void CreateAltDlgWindow ()
  3404. {
  3405. DialogBox (hInstance, MAKEINTRESOURCE (GETALTERNATEDIALOG), NULL,
  3406. (DLGPROC) AltDlgProc);
  3407. }
  3408. /*-----------------------------------------------------------------------
  3409. CreateXMLDlgWindow
  3410. ------------------------------------------------------------------------*/
  3411. void CreateXMLDlgWindow (ThotWindow parent, int nb_item, char *buffer,
  3412. ThotBool withText)
  3413. {
  3414. NbItem = (UINT)nb_item;
  3415. ItemList = buffer;
  3416. if (XMLForm)
  3417. /* the dialog box is already open */
  3418. return;
  3419. if (NbItem == 0)
  3420. /* no entry */
  3421. MessageBox (parent, TtaGetMessage (LIB, TMSG_NO_ELEMENT),
  3422. TtaGetMessage (LIB, TMSG_EL_TYPE),
  3423. MB_OK | MB_ICONWARNING);
  3424. else if (withText)
  3425. DialogBox (hInstance, MAKEINTRESOURCE (XMLDIALOG), NULL,
  3426. (DLGPROC) XMLDlgProc);
  3427. else
  3428. DialogBox (hInstance, MAKEINTRESOURCE (XMLDIALOG1), NULL,
  3429. (DLGPROC) XMLDlgProc);
  3430. }
  3431. /*-----------------------------------------------------------------------
  3432. CreateCSSDlgWindow
  3433. ------------------------------------------------------------------------*/
  3434. void CreateCSSDlgWindow (ThotWindow parent, int nb_item, char *buffer,
  3435. char *title, char *msg_text)
  3436. {
  3437. NbItem = (UINT)nb_item;
  3438. cssList = buffer;
  3439. strcpy (WndTitle, title);
  3440. if (NbItem == 0)
  3441. /* no entry */
  3442. MessageBox (parent, msg_text, WndTitle, MB_OK | MB_ICONWARNING);
  3443. else
  3444. DialogBox (hInstance, MAKEINTRESOURCE (CSSDIALOG), parent,
  3445. (DLGPROC) CSSDlgProc);
  3446. }
  3447. /*-----------------------------------------------------------------------
  3448. CreateTitleDlgWindow
  3449. ------------------------------------------------------------------------*/
  3450. void CreateTitleDlgWindow (ThotWindow parent, char *title)
  3451. {
  3452. strcpy (UrlToOpen, title);
  3453. ReleaseFocus = FALSE;
  3454. isHref = FALSE;
  3455. text[0] = 0;
  3456. DialogBox (hInstance, MAKEINTRESOURCE (LINKDIALOG), parent,
  3457. (DLGPROC) TextDlgProc);
  3458. }
  3459. /*-----------------------------------------------------------------------
  3460. CreateHRefDlgWindow
  3461. ------------------------------------------------------------------------*/
  3462. void CreateHRefDlgWindow (ThotWindow parent, char *HRefValue,
  3463. int doc_select, int dir_select, int doc_type)
  3464. {
  3465. docSelect = doc_select;
  3466. dirSelect = dir_select;
  3467. strcpy (TmpDocName, HRefValue);
  3468. if (doc_type == docCSS)
  3469. SzFilter = APPCSSNAMEFILTER;
  3470. else if (doc_type == docJavascript)
  3471. SzFilter = APPJAVASCRIPTNAMEFILTER;
  3472. else
  3473. SzFilter = APPALLFILESFILTER;
  3474. DialogBox (hInstance, MAKEINTRESOURCE (CREATEHREF), parent,
  3475. (DLGPROC) HRefDlgProc);
  3476. }
  3477. /*-----------------------------------------------------------------------
  3478. CreateHelpDlgWindow
  3479. ------------------------------------------------------------------------*/
  3480. void CreateHelpDlgWindow (ThotWindow parent, char *localname, char *msg1,
  3481. char *msg2)
  3482. {
  3483. strcpy (CurrentPathName, localname);
  3484. strcpy (Message, msg1);
  3485. strcpy (Message2, msg2);
  3486. DialogBox (hInstance, MAKEINTRESOURCE (HELPDIALOG), parent,
  3487. (DLGPROC) HelpDlgProc);
  3488. }
  3489. /*-----------------------------------------------------------------------
  3490. CreateMathDlgWindow
  3491. ------------------------------------------------------------------------*/
  3492. void CreateMathDlgWindow (ThotWindow parent)
  3493. {
  3494. if (MathPal)
  3495. SetFocus (MathPal);
  3496. else
  3497. DialogBox (hInstance, MAKEINTRESOURCE (MATHDIALOG), NULL, (DLGPROC) MathDlgProc);
  3498. }
  3499. /*-----------------------------------------------------------------------
  3500. CreatePrintDlgWindow
  3501. ------------------------------------------------------------------------*/
  3502. void CreatePrintDlgWindow (ThotWindow parent, char *ps_dir)
  3503. {
  3504. gbAbort = FALSE;
  3505. ghwndMain = parent;
  3506. strcpy (CurFileToPrint, ps_dir);
  3507. if (PrintForm)
  3508. SetFocus (PrintForm);
  3509. else
  3510. DialogBox (hInstance, MAKEINTRESOURCE (PRINTDIALOG), NULL, (DLGPROC) PrintDlgProc);
  3511. if (!gbAbort)
  3512. {
  3513. EnableWindow (parent, TRUE);
  3514. DestroyWindow (ghwndAbort);
  3515. }
  3516. TtPrinterDC = NULL;
  3517. }
  3518. /*-----------------------------------------------------------------------
  3519. CreateTableDlgWindow
  3520. ------------------------------------------------------------------------*/
  3521. void CreateTableDlgWindow (int num_cols, int num_rows, int t_border)
  3522. {
  3523. numCols = num_cols;
  3524. numRows = num_rows;
  3525. tBorder = t_border;
  3526. WithBorder = TRUE;
  3527. DialogBox (hInstance, MAKEINTRESOURCE (TABLEDIALOG), NULL, (DLGPROC) TableDlgProc);
  3528. }
  3529. /*-----------------------------------------------------------------------
  3530. CreateMatrixDlgWindow
  3531. ------------------------------------------------------------------------*/
  3532. void CreateMatrixDlgWindow (int num_cols, int num_rows)
  3533. {
  3534. numCols = num_cols;
  3535. numRows = num_rows;
  3536. WithBorder = FALSE;
  3537. DialogBox (hInstance, MAKEINTRESOURCE (MATRIXDIALOG), NULL, (DLGPROC) TableDlgProc);
  3538. }
  3539. /*-----------------------------------------------------------------------
  3540. CreateCharsetDlgWindow
  3541. ------------------------------------------------------------------------*/
  3542. void CreateCharsetDlgWindow (ThotWindow parent)
  3543. {
  3544. DialogBox (hInstance, MAKEINTRESOURCE (CHARSETDIALOG), SaveAsForm, (DLGPROC) CharsetDlgProc);
  3545. }
  3546. /*-----------------------------------------------------------------------
  3547. CreateMimeTypeDlgWindow
  3548. ------------------------------------------------------------------------*/
  3549. void CreateMimeTypeDlgWindow (ThotWindow parent, int nb_item, char *mimetype_list)
  3550. {
  3551. mimeType = mimetype_list;
  3552. NbItem = (UINT)nb_item;
  3553. DialogBox (hInstance, MAKEINTRESOURCE (MIMETYPEDIALOG), SaveAsForm, (DLGPROC) MimeTypeDlgProc);
  3554. }
  3555. /*-----------------------------------------------------------------------
  3556. CreateSaveAsDlgWindow
  3557. ------------------------------------------------------------------------*/
  3558. void CreateSaveAsDlgWindow (ThotWindow parent, char *path_name)
  3559. {
  3560. HTMLFormat = (DocumentTypes[SavingDocument] != docText &&
  3561. DocumentTypes[SavingDocument] != docCSS &&
  3562. DocumentTypes[SavingDocument] != docMath &&
  3563. DocumentTypes[SavingDocument] != docSVG &&
  3564. DocumentTypes[SavingDocument] != docImage &&
  3565. DocumentTypes[SavingDocument] != docXml);
  3566. strcpy (CurrentPathName, path_name);
  3567. if (HTMLFormat)
  3568. DialogBox (hInstance, MAKEINTRESOURCE (SAVEASDIALOG), parent,
  3569. (DLGPROC) SaveAsDlgProc);
  3570. else if (DocumentTypes[SavingDocument] == docMath ||
  3571. DocumentTypes[SavingDocument] == docSVG ||
  3572. DocumentTypes[SavingDocument] == docXml)
  3573. DialogBox (hInstance, MAKEINTRESOURCE (SAVEASDIALOG2), parent,
  3574. (DLGPROC) SaveAsDlgProc);
  3575. else
  3576. DialogBox (hInstance, MAKEINTRESOURCE (SAVEASDIALOG1), parent,
  3577. (DLGPROC) SaveAsDlgProc);
  3578. }
  3579. /*-----------------------------------------------------------------------
  3580. CreateOpenDocDlgWindow
  3581. ------------------------------------------------------------------------*/
  3582. void CreateOpenDocDlgWindow (ThotWindow parent, char *title, char *url,
  3583. char *docName, int doc_select, int dir_select,
  3584. DocumentType doc_type)
  3585. {
  3586. docSelect = doc_select;
  3587. dirSelect = dir_select;
  3588. strcpy (WndTitle, title);
  3589. strcpy (TmpDocName, docName);
  3590. strcpy ( UrlToOpen, url);
  3591. if (doc_type == docHTML)
  3592. SzFilter = APPHTMLNAMEFILTER;
  3593. else if (doc_type == docMath)
  3594. SzFilter = APPMATHNAMEFILTER;
  3595. else if (doc_type == docSVG)
  3596. SzFilter = APPSVGNAMEFILTER;
  3597. else if (doc_type == docCSS)
  3598. SzFilter = APPCSSNAMEFILTER;
  3599. else if (doc_type == docImage)
  3600. SzFilter = APPIMAGENAMEFILTER;
  3601. else if (doc_type == docImage)
  3602. SzFilter = APPIMAGENAMEFILTER;
  3603. else if (doc_type == docLibrary)
  3604. SzFilter = APPLIBRARYNAMEFILTER;
  3605. else
  3606. SzFilter = APPFILENAMEFILTER;
  3607. DialogBox (hInstance, MAKEINTRESOURCE (OPENDOCDIALOG), parent,
  3608. (DLGPROC) OpenDocDlgProc);
  3609. }
  3610. /*-----------------------------------------------------------------------
  3611. CreateOPenImgDlgWindow
  3612. The parameter getAlt is tRUE when the ALT attribute is required.
  3613. ------------------------------------------------------------------------*/
  3614. void CreateOpenImgDlgWindow (ThotWindow parent, char *imgName, int doc_select,
  3615. int dir_select, int doc_type, ThotBool getAlt)
  3616. {
  3617. docSelect = doc_select;
  3618. dirSelect = dir_select;
  3619. strcpy ( UrlToOpen, imgName);
  3620. if (doc_type == docImage)
  3621. SzFilter = APPIMAGENAMEFILTER;
  3622. else
  3623. SzFilter = APPALLFILESFILTER;
  3624. if (getAlt)
  3625. {
  3626. RequiredAttr = TRUE;
  3627. strcpy (AltText, ImgAlt);
  3628. }
  3629. else
  3630. RequiredAttr = FALSE;
  3631. DialogBox (hInstance, MAKEINTRESOURCE (OPENIMAGEDIALOG), parent,
  3632. (DLGPROC) OpenImgDlgProc);
  3633. }
  3634. /*-----------------------------------------------------------------------
  3635. CreateGraphicsDlgWindow
  3636. ------------------------------------------------------------------------*/
  3637. void CreateGraphicsDlgWindow (ThotWindow frame)
  3638. {
  3639. if (GraphPal)
  3640. SetFocus (GraphPal);
  3641. else
  3642. DialogBox (hInstance, MAKEINTRESOURCE (GRAPHICSDIALOG), NULL,
  3643. (DLGPROC) GraphicsDlgProc);
  3644. }
  3645. /*-----------------------------------------------------------------------
  3646. CreateSaveListDlgWindow
  3647. ------------------------------------------------------------------------*/
  3648. void CreateSaveListDlgWindow (ThotWindow parent, int nb_item, char *save_list)
  3649. {
  3650. NbItem = (UINT)nb_item;
  3651. SavList = save_list;
  3652. DialogBox (hInstance, MAKEINTRESOURCE (SAVELISTDIALOG), parent,
  3653. (DLGPROC) SaveListDlgProc);
  3654. }
  3655. /*-----------------------------------------------------------------------
  3656. CreateCloseDocDlgWindow
  3657. ------------------------------------------------------------------------*/
  3658. void CreateCloseDocDlgWindow (ThotWindow parent, char *msg)
  3659. {
  3660. strcpy (Message, msg);
  3661. DialogBox (hInstance, MAKEINTRESOURCE (CLOSEDOCDIALOG), parent,
  3662. (DLGPROC) CloseDocDlgProc);
  3663. }
  3664. /*-----------------------------------------------------------------------
  3665. CreateLanguageDlgWindow
  3666. ------------------------------------------------------------------------*/
  3667. void CreateLanguageDlgWindow (ThotWindow parent, int nb_item,
  3668. char *lang_list, char *msg, int lang_value)
  3669. {
  3670. if (LangForm)
  3671. EndDialog (LangForm, ID_DONE);
  3672. strcpy (Message2, msg);
  3673. Num_lang = lang_value;
  3674. if (lang_value >= 0)
  3675. /* there is a selected language */
  3676. strcpy (WinCurLang, TtaGetLanguageName (lang_value));
  3677. else
  3678. WinCurLang[0] = EOS;
  3679. ItemList = lang_list;
  3680. NbItem = (UINT)nb_item;
  3681. DialogBox (hInstance, MAKEINTRESOURCE (LANGUAGEDIALOG), NULL,
  3682. (DLGPROC) LanguageDlgProc);
  3683. }
  3684. /*-----------------------------------------------------------------------
  3685. CreateCharacterDlgWindow
  3686. ------------------------------------------------------------------------*/
  3687. void CreateCharacterDlgWindow (ThotWindow parent, int font_num, int font_style,
  3688. int font_weight, int font_underline, int font_size)
  3689. {
  3690. fontNum = font_num;
  3691. fontStyle = font_style;
  3692. fontWeight = font_weight;
  3693. fontUnderline = font_underline;
  3694. fontSize = font_size;
  3695. if (CharacterForm)
  3696. SetFocus (CharacterForm);
  3697. else
  3698. DialogBox (hInstance, MAKEINTRESOURCE (CHARACTERSDIALOG), NULL,
  3699. (DLGPROC) CharacterDlgProc);
  3700. }
  3701. /*-----------------------------------------------------------------------
  3702. CreateAttributeDlgWindow
  3703. ------------------------------------------------------------------------*/
  3704. void CreateAttributeDlgWindow (char *title, int curr_val, int nb_items,
  3705. char *item_list, ThotBool required)
  3706. {
  3707. /* destroy the precent attribute menu */
  3708. if (AttrForm)
  3709. {
  3710. EndDialog (AttrForm, ID_DONE);
  3711. AttrForm = NULL;
  3712. }
  3713. strcpy (AttDlgTitle, title);
  3714. ItemList = item_list;
  3715. currAttrVal = curr_val;
  3716. attDlgNbItems = nb_items;
  3717. RequiredAttr = required;
  3718. switch (attDlgNbItems)
  3719. {
  3720. case 2:
  3721. DialogBox (hInstance, MAKEINTRESOURCE (ATTR2ITEMSDIALOG), NULL,
  3722. (DLGPROC) AttrItemsDlgProc);
  3723. break;
  3724. case 3:
  3725. DialogBox (hInstance, MAKEINTRESOURCE (ATTR3ITEMSDIALOG), NULL,
  3726. (DLGPROC) AttrItemsDlgProc);
  3727. break;
  3728. case 4:
  3729. DialogBox (hInstance, MAKEINTRESOURCE (ATTR4ITEMSDIALOG), NULL,
  3730. (DLGPROC) AttrItemsDlgProc);
  3731. break;
  3732. case 5:
  3733. DialogBox (hInstance, MAKEINTRESOURCE (ATTR5ITEMSDIALOG), NULL,
  3734. (DLGPROC) AttrItemsDlgProc);
  3735. break;
  3736. case 6:
  3737. DialogBox (hInstance, MAKEINTRESOURCE (ATTR6ITEMSDIALOG), NULL,
  3738. (DLGPROC) AttrItemsDlgProc);
  3739. break;
  3740. case 7:
  3741. DialogBox (hInstance, MAKEINTRESOURCE (ATTR7ITEMSDIALOG), NULL,
  3742. (DLGPROC) AttrItemsDlgProc);
  3743. break;
  3744. case 8:
  3745. DialogBox (hInstance, MAKEINTRESOURCE (ATTR8ITEMSDIALOG), NULL,
  3746. (DLGPROC) AttrItemsDlgProc);
  3747. break;
  3748. case 9:
  3749. DialogBox (hInstance, MAKEINTRESOURCE (ATTR9ITEMSDIALOG), NULL,
  3750. (DLGPROC) AttrItemsDlgProc);
  3751. break;
  3752. default:
  3753. break;
  3754. }
  3755. }
  3756. /*-----------------------------------------------------------------------
  3757. CreateMCHARDlgWindow
  3758. ------------------------------------------------------------------------*/
  3759. void CreateMCHARDlgWindow (ThotWindow parent, char *math_entity_name)
  3760. {
  3761. strcpy (MathEntName, math_entity_name);
  3762. DialogBox (hInstance, MAKEINTRESOURCE (MATH_ENTITY_DLG), NULL,
  3763. (DLGPROC) MathEntityDlgProc);
  3764. strcpy (math_entity_name, MathEntName);
  3765. }
  3766. /*-----------------------------------------------------------------------
  3767. CreateRuleDlgWindow
  3768. ------------------------------------------------------------------------*/
  3769. void CreateRuleDlgWindow (ThotWindow parent, int nb_class, char *class_list)
  3770. {
  3771. nbClass = (UINT)nb_class;
  3772. ClassList = class_list;
  3773. WithEdit = TRUE;
  3774. DialogBox (hInstance, MAKEINTRESOURCE (CREATERULEDIALOG), parent, (DLGPROC) ApplyClassDlgProc);
  3775. }
  3776. /*-----------------------------------------------------------------------
  3777. CreateApplyClassDlgWindow
  3778. ------------------------------------------------------------------------*/
  3779. void CreateApplyClassDlgWindow (ThotWindow parent, int nb_class, char *class_list)
  3780. {
  3781. nbClass = (UINT)nb_class;
  3782. ClassList = class_list;
  3783. WithEdit = FALSE;
  3784. DialogBox (hInstance, MAKEINTRESOURCE (APPLYCLASSDIALOG), NULL,
  3785. (DLGPROC) ApplyClassDlgProc);
  3786. }
  3787. /*-----------------------------------------------------------------------
  3788. CreateInitConfirmDlgWindow
  3789. ------------------------------------------------------------------------*/
  3790. void CreateInitConfirmDlgWindow (ThotWindow parent, char *extrabutton,
  3791. char *confirmbutton, char *label)
  3792. {
  3793. strcpy (Message, label);
  3794. if (InitConfirmForm)
  3795. SetFocus (InitConfirmForm);
  3796. else
  3797. {
  3798. if (confirmbutton && confirmbutton[0] != EOS)
  3799. strcpy (Message2, confirmbutton);
  3800. else
  3801. strcpy (Message2, TtaGetMessage (LIB, TMSG_LIB_CONFIRM));
  3802. if (extrabutton && extrabutton[0] != EOS)
  3803. {
  3804. /* a message with 3 buttons */
  3805. strcpy (Message3, extrabutton);
  3806. DialogBox (hInstance, MAKEINTRESOURCE (INITCONFIRMDIALOG1), parent,
  3807. (DLGPROC) InitConfirmDlgProc);
  3808. }
  3809. else
  3810. DialogBox (hInstance, MAKEINTRESOURCE (INITCONFIRMDIALOG), parent,
  3811. (DLGPROC) InitConfirmDlgProc);
  3812. }
  3813. }
  3814. /*-----------------------------------------------------------------------
  3815. CreateInitConfirm3LDlgWindow
  3816. ------------------------------------------------------------------------*/
  3817. void CreateInitConfirm3LDlgWindow (ThotWindow parent, char *title,
  3818. char *msg, char *msg2, char *msg3,
  3819. ThotBool withCancel)
  3820. {
  3821. strcpy (Message, msg);
  3822. if (msg2 && *msg2 != EOS)
  3823. strcpy (Message2, msg2);
  3824. else
  3825. Message2[0] = EOS;
  3826. if (msg3 && *msg3 != EOS)
  3827. strcpy (Message3, msg3);
  3828. else
  3829. Message3[0] = EOS;
  3830. strcpy (WndTitle, title);
  3831. /* register if the cancel button has to be generated */
  3832. WithCancel = withCancel;
  3833. if (withCancel)
  3834. DialogBox (hInstance, MAKEINTRESOURCE (INITCONFIRM3LDIALOG), parent,
  3835. (DLGPROC) InitConfirm3LDlgProc);
  3836. else
  3837. DialogBox (hInstance, MAKEINTRESOURCE (INITCONFIRM3LDIALOG1), parent,
  3838. (DLGPROC) InitConfirm3LDlgProc);
  3839. }
  3840. /*-----------------------------------------------------------------------
  3841. CreateChangeFormatDlgWindow
  3842. ------------------------------------------------------------------------*/
  3843. void CreateChangeFormatDlgWindow (int num_zone_recess, int num_zone_line_spacing,
  3844. int align_num, int indent_value, int indent_num,
  3845. int old_lineSp, int line_spacingNum)
  3846. {
  3847. Num_zoneRecess = num_zone_recess;
  3848. Num_zoneLineSpacing = num_zone_line_spacing;
  3849. Align_num = align_num;
  3850. Indent_value = indent_value;
  3851. Indent_num = indent_num;
  3852. Old_lineSp = old_lineSp;
  3853. Line_spacingNum = line_spacingNum;
  3854. if (FormatForm)
  3855. SetFocus (FormatForm);
  3856. else
  3857. DialogBox (hInstance, MAKEINTRESOURCE (FORMATDIALOG), NULL, (DLGPROC) ChangeFormatDlgProc);
  3858. }
  3859. /*-----------------------------------------------------------------------
  3860. CreateGreekKeyboardDlgWindow
  3861. ------------------------------------------------------------------------*/
  3862. void CreateGreekKeyboardDlgWindow (ThotWindow parent)
  3863. {
  3864. if (GreekPal)
  3865. SetFocus (GreekPal);
  3866. else
  3867. DialogBox (hInstance, MAKEINTRESOURCE (GALPHABETDIALOG), NULL, (DLGPROC) GreekKeyboardDlgProc);
  3868. }
  3869. /*-----------------------------------------------------------------------
  3870. CreateAuthentificationDlgWindow
  3871. ------------------------------------------------------------------------*/
  3872. void CreateAuthenticationDlgWindow (ThotWindow parent, const char *realm,
  3873. char *server)
  3874. {
  3875. string_par1 = (char *) realm;
  3876. string_par2 = server;
  3877. DialogBox (hInstance, MAKEINTRESOURCE (AUTHENTIFICATIONDIALOG), parent, (DLGPROC) AuthentificationDlgProc);
  3878. }
  3879. /*-----------------------------------------------------------------------
  3880. CreateBackgroundImageDlgWindow
  3881. ------------------------------------------------------------------------*/
  3882. void CreateBackgroundImageDlgWindow (ThotWindow parent, char *image_location)
  3883. {
  3884. SzFilter = APPIMAGENAMEFILTER;
  3885. strcpy (CurrentPathName, image_location);
  3886. DialogBox (hInstance, MAKEINTRESOURCE (BGIMAGEDIALOG), parent, (DLGPROC) BackgroundImageDlgProc);
  3887. }
  3888. /*-----------------------------------------------------------------------
  3889. CreateMakeIDDlgWindow
  3890. ------------------------------------------------------------------------*/
  3891. void CreateMakeIDDlgWindow (ThotWindow parent)
  3892. {
  3893. /* we only use one such dialog at the time */
  3894. if (MakeIDHwnd)
  3895. EndDialog (MakeIDHwnd, ID_DONE);
  3896. DialogBox (hInstance, MAKEINTRESOURCE (MAKEIDMENU), NULL, (DLGPROC) MakeIDDlgProc);
  3897. }
  3898. /*-----------------------------------------------------------------------
  3899. CreateAuthentificationDlgWindow
  3900. ------------------------------------------------------------------------*/
  3901. void CreateDocumentInfoDlgWindow (ThotWindow parent, const Document doc)
  3902. {
  3903. if (DocInfo[doc])
  3904. SetFocus (DocInfo[doc]);
  3905. else
  3906. {
  3907. /* copy the value so that we can find it in the callback */
  3908. TmpDoc = doc;
  3909. DialogBox (hInstance, MAKEINTRESOURCE (DOCINFOMENU), NULL, (DLGPROC) DocumentInfoDlgProc);
  3910. }
  3911. }
  3912. #endif /* _WINGUI */