32 #include "gui.h" |
32 #include "gui.h" |
33 #include "file.h" |
33 #include "file.h" |
34 #include "widgets.h" |
34 #include "widgets.h" |
35 #include "history.h" |
35 #include "history.h" |
36 #include "labeledwidget.h" |
36 #include "labeledwidget.h" |
|
37 #include "ui_edger2.h" |
37 |
38 |
38 // ============================================================================= |
39 // ============================================================================= |
39 cfg (str, prog_isecalc, ""); |
40 cfg (str, prog_isecalc, ""); |
40 cfg (str, prog_intersector, ""); |
41 cfg (str, prog_intersector, ""); |
41 cfg (str, prog_coverer, ""); |
42 cfg (str, prog_coverer, ""); |
42 cfg (str, prog_ytruder, ""); |
43 cfg (str, prog_ytruder, ""); |
43 cfg (str, prog_rectifier, ""); |
44 cfg (str, prog_rectifier, ""); |
|
45 cfg (str, prog_edger2, ""); |
44 |
46 |
45 #ifndef _WIN32 |
47 #ifndef _WIN32 |
46 cfg (bool, prog_isecalc_wine, false); |
48 cfg (bool, prog_isecalc_wine, false); |
47 cfg (bool, prog_intersector_wine, false); |
49 cfg (bool, prog_intersector_wine, false); |
48 cfg (bool, prog_coverer_wine, false); |
50 cfg (bool, prog_coverer_wine, false); |
49 cfg (bool, prog_ytruder_wine, false); |
51 cfg (bool, prog_ytruder_wine, false); |
50 cfg (bool, prog_rectifier_wine, false); |
52 cfg (bool, prog_rectifier_wine, false); |
|
53 cfg (bool, prog_edger2_wine, false); |
51 |
54 |
52 boolconfig* const g_extProgWine[] = { |
55 boolconfig* const g_extProgWine[] = { |
53 &prog_isecalc_wine, |
56 &prog_isecalc_wine, |
54 &prog_intersector_wine, |
57 &prog_intersector_wine, |
55 &prog_coverer_wine, |
58 &prog_coverer_wine, |
56 &prog_ytruder_wine, |
59 &prog_ytruder_wine, |
57 &prog_rectifier_wine, |
60 &prog_rectifier_wine, |
|
61 &prog_edger2_wine, |
58 }; |
62 }; |
59 #endif // _WIN32 |
63 #endif // _WIN32 |
60 |
64 |
61 const char* g_extProgNames[] = { |
65 const char* g_extProgNames[] = { |
62 "Isecalc", |
66 "Isecalc", |
63 "Intersector", |
67 "Intersector", |
64 "Coverer", |
68 "Coverer", |
65 "Ytruder", |
69 "Ytruder", |
66 "Rectifier", |
70 "Rectifier", |
|
71 "Edger2" |
67 }; |
72 }; |
68 |
73 |
69 // ============================================================================= |
74 // ============================================================================= |
70 static bool checkProgPath (str path, const extprog prog) { |
75 static bool checkProgPath (str path, const extprog prog) { |
71 if (path.length () > 0) |
76 if (path.length () > 0) |
250 |
255 |
251 g_win->fullRefresh (); |
256 g_win->fullRefresh (); |
252 } |
257 } |
253 |
258 |
254 // ============================================================================= |
259 // ============================================================================= |
|
260 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|
261 // ============================================================================= |
255 // Interface for Ytruder |
262 // Interface for Ytruder |
256 void runYtruder () { |
263 void runYtruder () { |
257 setlocale (LC_ALL, "C"); |
264 setlocale (LC_ALL, "C"); |
258 |
265 |
259 if (!checkProgPath (prog_ytruder, Ytruder)) |
266 if (!checkProgPath (prog_ytruder, Ytruder)) |
311 writeSelection (inDATName); |
318 writeSelection (inDATName); |
312 runUtilityProcess (Ytruder, prog_ytruder, argv); |
319 runUtilityProcess (Ytruder, prog_ytruder, argv); |
313 insertOutput (outDATName, false, {}); |
320 insertOutput (outDATName, false, {}); |
314 } |
321 } |
315 |
322 |
316 // ======================================================================================================================================== |
323 // ============================================================================= |
|
324 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|
325 // ============================================================================= |
317 // Rectifier interface |
326 // Rectifier interface |
318 void runRectifier () { |
327 void runRectifier () { |
319 setlocale (LC_ALL, "C"); |
328 setlocale (LC_ALL, "C"); |
320 |
329 |
321 if (!checkProgPath (prog_rectifier, Rectifier)) |
330 if (!checkProgPath (prog_rectifier, Rectifier)) |
380 LabeledWidget<QComboBox>* widget = new LabeledWidget<QComboBox> (label, new QComboBox); |
389 LabeledWidget<QComboBox>* widget = new LabeledWidget<QComboBox> (label, new QComboBox); |
381 makeColorSelector (widget->w ()); |
390 makeColorSelector (widget->w ()); |
382 return widget; |
391 return widget; |
383 } |
392 } |
384 |
393 |
385 // ======================================================================================================================================= |
394 // ============================================================================= |
386 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
395 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
387 // ======================================================================================================================================= |
396 // ============================================================================= |
388 // Intersector interface |
397 // Intersector interface |
389 void runIntersector () { |
398 void runIntersector () { |
390 setlocale (LC_ALL, "C"); |
399 setlocale (LC_ALL, "C"); |
391 |
400 |
392 if (!checkProgPath (prog_intersector, Intersector)) |
401 if (!checkProgPath (prog_intersector, Intersector)) |
492 runUtilityProcess (Isecalc, prog_isecalc, join ({inDATName, cutDATName, edgesDATName})); |
501 runUtilityProcess (Isecalc, prog_isecalc, join ({inDATName, cutDATName, edgesDATName})); |
493 insertOutput (edgesDATName, false, {}); |
502 insertOutput (edgesDATName, false, {}); |
494 } |
503 } |
495 } |
504 } |
496 |
505 |
497 // ======================================================================================================================================= |
506 // ============================================================================= |
498 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
507 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
499 // ======================================================================================================================================= |
508 // ============================================================================= |
500 void runCoverer () { |
509 void runCoverer () { |
501 setlocale (LC_ALL, "C"); |
510 setlocale (LC_ALL, "C"); |
502 |
511 |
503 if (!checkProgPath (prog_coverer, Coverer)) |
512 if (!checkProgPath (prog_coverer, Coverer)) |
504 return; |
513 return; |
566 writeColorGroup (in2Col, in2DATName); |
575 writeColorGroup (in2Col, in2DATName); |
567 runUtilityProcess (Coverer, prog_coverer, argv); |
576 runUtilityProcess (Coverer, prog_coverer, argv); |
568 insertOutput (outDATName, false, {}); |
577 insertOutput (outDATName, false, {}); |
569 } |
578 } |
570 |
579 |
|
580 // ============================================================================= |
|
581 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|
582 // ============================================================================= |
571 void runIsecalc () { |
583 void runIsecalc () { |
572 setlocale (LC_ALL, "C"); |
584 setlocale (LC_ALL, "C"); |
573 |
585 |
574 if (!checkProgPath (prog_isecalc, Isecalc)) |
586 if (!checkProgPath (prog_isecalc, Isecalc)) |
575 return; |
587 return; |
611 writeColorGroup (in1Col, in1DATName); |
623 writeColorGroup (in1Col, in1DATName); |
612 writeColorGroup (in2Col, in2DATName); |
624 writeColorGroup (in2Col, in2DATName); |
613 runUtilityProcess (Isecalc, prog_isecalc, argv); |
625 runUtilityProcess (Isecalc, prog_isecalc, argv); |
614 insertOutput (outDATName, false, {}); |
626 insertOutput (outDATName, false, {}); |
615 } |
627 } |
|
628 |
|
629 // ============================================================================= |
|
630 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
|
631 // ============================================================================= |
|
632 MAKE_ACTION( edger2, "Edger 2", "edger2", "Compute edgelines", 0 ) { |
|
633 QDialog* form = new QDialog; |
|
634 Ui::Edger2Dialog ui; |
|
635 ui.setupUi( form ); |
|
636 |
|
637 exec: |
|
638 if( !form->exec() ) |
|
639 return; |
|
640 |
|
641 |
|
642 } |