1 /*
2 Copyright (C) 2011-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5 
6 /*
7 	WARNING: This file was generated by the dkct program (see
8 	http://dktools.sourceforge.net/ for details).
9 	Changes you make here will be lost if dkct is run again!
10 	You should modify the original source and run dkct on it.
11 	Original source: dk3bmj.ctr
12 */
13 
14 /**	@file dk3bmj.c The dk3bmj module.
15 */
16 
17 
18 #include "dk3conf.h"
19 
20 #if DK3_USE_WX
21 #include "wxbmeps.h"
22 #else
23 #include <libdk3c/dk3all.h>
24 #include <libdk3bmeps/dk3bmj.h>
25 #include <libdk3bmeps/dk3bmeps.h>
26 #endif
27 
28 #include <libdk3c/dk3unused.h>
29 
30 
31 
32 
33 
34 
35 #if DK3_USE_WX
36 /**	Log level required for writing to the log text field in wxbmeps.
37 */
38 static	int const	dk3bmj_required_log_level = DK3_LL_PROGRESS;
39 #endif
40 
41 
42 void
dk3bmj_init(dk3_bm_conversion_job_t * job,dk3_app_t * app)43 dk3bmj_init(dk3_bm_conversion_job_t *job, dk3_app_t *app)
44 {
45 
46   job->opt = NULL;
47   if(app) {
48     job->msg = dk3app_messages(
49       app,
50       dk3bmep_str_get_string_table_name(),
51       (dkChar const **)dk3bmep_str_get_message_texts()
52     );
53     if(!(job->msg)) {
54       job->msg = dk3bmep_str_get_message_texts();
55     }
56   } else {
57     job->msg = dk3bmep_str_get_message_texts();
58   }
59   job->sfn = NULL;
60   job->dfn = NULL;
61   job->dfile = NULL;
62   job->biftype = 0;
63   job->bif = NULL;
64   job->pComm = NULL;
65   job->minpb = 0;
66   job->maxpb = 0;
67   job->do_translate = 0;
68   job->x_translate = 0.0;
69   job->y_translate = 0.0;
70   job->do_rotate = 0;
71   job->do_float_scale = 0;
72   job->x_scale = 1.0;
73   job->y_scale = 1.0;
74   job->x_size = 0L;
75   job->y_size = 0L;
76   job->x_0 = 0.0;
77   job->x_1 = 0.0;
78   job->y_0 = 0.0;
79   job->y_1 = 0.0;
80   job->do_header_footer = 1;
81   job->procedure = DK3_BMEPS_GRAY_UNCOMPRESSED;
82   job->bpc = 8;
83   job->nPages = 1;
84   job->currentPage = 1;
85   job->pdf = NULL;
86 }
87 
88 
89 
90 void
dk3bmj_progress(void * pc,int val)91 dk3bmj_progress(
92 #if DK3_USE_WX
93   void *pc, int val
94 #else
95   void * DK3_ARG_UNUSED(pc), int DK3_ARG_UNUSED(val)
96 #endif
97 )
98 {
99 
100 #if DK3_USE_WX
101   DkWxCommunicator	*pComm;
102   if(pc) {
103     pComm = (DkWxCommunicator *)pc;
104     pComm->updateGauge(val);
105   }
106 #else
107   DK3_UNUSED_ARG(pc)
108   DK3_UNUSED_ARG(val)
109 #endif
110 
111 }
112 
113 
114 
115 void
dk3bmj_lines_do_progress(void * pc,int min,int max,dk3_bif_coord_t h,dk3_bif_coord_t y)116 dk3bmj_lines_do_progress(
117 #if DK3_USE_WX
118   void			*pc,
119   int		 	min,
120   int		 	max,
121   dk3_bif_coord_t	h,
122   dk3_bif_coord_t	y
123 #else
124   void			* DK3_ARG_UNUSED(pc),
125   int		 	DK3_ARG_UNUSED(min),
126   int		 	DK3_ARG_UNUSED(max),
127   dk3_bif_coord_t	DK3_ARG_UNUSED(h),
128   dk3_bif_coord_t	DK3_ARG_UNUSED(y)
129 #endif
130 )
131 {
132 
133 #if DK3_USE_WX
134   {
135   unsigned long ul;
136   int		i;
137 
138   if((pc) && (max > min)) {
139     ul = (unsigned long)min
140        + (((unsigned long)y + 1UL) * ((unsigned long)(max - min)))
141        /(unsigned long)h;
142     i = (int)ul;
143     if(i < min) i = min;
144     if(i > max) i = max;
145     dk3bmj_progress(pc, i);
146   } else {
147   }
148   }
149 #else
150   DK3_UNUSED_ARG(pc)
151   DK3_UNUSED_ARG(min)
152   DK3_UNUSED_ARG(max)
153   DK3_UNUSED_ARG(h)
154   DK3_UNUSED_ARG(y)
155 #endif
156 
157 }
158 
159 
160 
161 void
dk3bmj_lines_progress(void * pc,int min,int max,dk3_bif_coord_t h,dk3_bif_coord_t y)162 dk3bmj_lines_progress(
163 #if DK3_USE_WX
164   void			*pc,
165   int		 	min,
166   int		 	max,
167   dk3_bif_coord_t	h,
168   dk3_bif_coord_t	y
169 #else
170   void			* DK3_ARG_UNUSED(pc),
171   int		 	DK3_ARG_UNUSED(min),
172   int		 	DK3_ARG_UNUSED(max),
173   dk3_bif_coord_t	DK3_ARG_UNUSED(h),
174   dk3_bif_coord_t	DK3_ARG_UNUSED(y)
175 #endif
176 )
177 {
178 #if DK3_USE_WX
179   dk3bmj_lines_do_progress(pc, min, max, h, y);
180 #else
181   DK3_UNUSED_ARG(pc)
182   DK3_UNUSED_ARG(min)
183   DK3_UNUSED_ARG(max)
184   DK3_UNUSED_ARG(h)
185   DK3_UNUSED_ARG(y)
186 #endif
187 }
188 
189 
190 
191 void
dk3bmj_objects_do_progress(void * pc,int min,int max,unsigned long nObjects,unsigned long co)192 dk3bmj_objects_do_progress(
193 #if DK3_USE_WX
194   void			*pc,
195   int			 min,
196   int			 max,
197   unsigned long		 nObjects,
198   unsigned long		 co
199 #else
200   void			* DK3_ARG_UNUSED(pc),
201   int			 DK3_ARG_UNUSED(min),
202   int			 DK3_ARG_UNUSED(max),
203   unsigned long		 DK3_ARG_UNUSED(nObjects),
204   unsigned long		 DK3_ARG_UNUSED(co)
205 #endif
206 )
207 {
208 
209 #if DK3_USE_WX
210   unsigned long	ul;	/* Temporary value. */
211   int		i;	/* New progress bar value. */
212 
213   if((pc) && (max > min)) {
214     ul = (unsigned long)min
215        + ((co + 1UL) * ((unsigned long)(max - min))) / nObjects;
216     i = (int)ul;
217     if(i < min) i = min;
218     if(i > max) i = max;
219     dk3bmj_progress(pc, i);
220   } else {
221   }
222 #else
223   DK3_UNUSED_ARG(pc)
224   DK3_UNUSED_ARG(min)
225   DK3_UNUSED_ARG(max)
226   DK3_UNUSED_ARG(nObjects)
227   DK3_UNUSED_ARG(co)
228 #endif
229 
230 }
231 
232 
233 
234 void
dk3bmj_obj_progress(void * pc,int min,int max,unsigned long nObjects,unsigned long co)235 dk3bmj_obj_progress(
236 #if DK3_USE_WX
237   void			*pc,
238   int			 min,
239   int			 max,
240   unsigned long		 nObjects,
241   unsigned long		 co
242 #else
243   void			* DK3_ARG_UNUSED(pc),
244   int			 DK3_ARG_UNUSED(min),
245   int			 DK3_ARG_UNUSED(max),
246   unsigned long		 DK3_ARG_UNUSED(nObjects),
247   unsigned long		 DK3_ARG_UNUSED(co)
248 #endif
249 )
250 {
251 #if DK3_USE_WX
252   dk3bmj_objects_do_progress(pc, min, max, nObjects, co);
253 #else
254   DK3_UNUSED_ARG(pc)
255   DK3_UNUSED_ARG(min)
256   DK3_UNUSED_ARG(max)
257   DK3_UNUSED_ARG(nObjects)
258   DK3_UNUSED_ARG(co)
259 #endif
260 }
261 
262 
263 
264 void
dk3bmj_log_i1(dk3_app_t * app,int ll,size_t i,int dest,dk3_bm_conversion_job_t * job)265 dk3bmj_log_i1(
266   dk3_app_t			*app,
267   int				 ll,
268   size_t			 i,
269   int				 dest,
270 #if DK3_USE_WX
271   dk3_bm_conversion_job_t	*job
272 #else
273   dk3_bm_conversion_job_t	* DK3_ARG_UNUSED(job)
274 #endif
275 )
276 {
277 #if DK3_USE_WX
278   dkChar const		*p1;	/* Log text. */
279   DkWxCommunicator	*pComm;	/* Communicator object. */
280 #endif
281   if(dest & DK3_BMJ_LOG_APP) {
282     if(app) {
283       dk3app_log_i1(app, ll, i);
284     }
285   }
286 #if DK3_USE_WX
287   if((dest & DK3_BMJ_LOG_JOB) && (ll <= dk3bmj_required_log_level)) {
288     if(job) {
289       if(app) {
290         pComm = (DkWxCommunicator *)(job->pComm);
291         if(pComm) {
292 	  pComm->setLogLevel(ll);
293           p1 = dk3app_localized(app, i);
294 	  if(p1) {
295 	    pComm->addDkText(p1);
296 	    pComm->nl();
297 	  }
298         }
299       }
300     }
301   }
302 #else
303   DK3_UNUSED_ARG(job)
304 #endif
305 }
306 
307 
308 
309 void
dk3bmj_log_i3(dk3_app_t * app,int ll,size_t i1,size_t i2,dkChar const * txt,int dest,dk3_bm_conversion_job_t * job)310 dk3bmj_log_i3(
311   dk3_app_t			*app,
312   int				 ll,
313   size_t			 i1,
314   size_t			 i2,
315   dkChar const			*txt,
316   int				 dest,
317 #if DK3_USE_WX
318   dk3_bm_conversion_job_t	*job
319 #else
320   dk3_bm_conversion_job_t	* DK3_ARG_UNUSED(job)
321 #endif
322 )
323 {
324 #if DK3_USE_WX
325   dkChar const		*p1;	/* First message part. */
326   dkChar const		*p2;	/* Last message part. */
327   DkWxCommunicator	*pComm;	/* Communicator object. */
328 #endif
329   if(dest & DK3_BMJ_LOG_APP) {
330     if(app) {
331       dk3app_log_i3(app, ll, i1, i2, txt);
332     }
333   }
334 #if DK3_USE_WX
335   if((dest & DK3_BMJ_LOG_JOB) && (ll <= dk3bmj_required_log_level)) {
336     if(job) {
337       if(app) {
338         pComm = (DkWxCommunicator *)(job->pComm);
339         if(pComm) {
340 	  pComm->setLogLevel(ll);
341           p1 = dk3app_localized(app, i1);
342 	  p2 = dk3app_localized(app, i2);
343 	  if((p1) && (p2)) {
344 	    pComm->addDkText(p1);
345 	    if(txt) {
346 	      pComm->addDkText(txt);
347 	    }
348 	    pComm->addDkText(p2);
349 	    pComm->nl();
350 	  }
351         }
352       }
353     }
354   }
355 #else
356   DK3_UNUSED_ARG(job)
357 #endif
358 }
359 
360 
361 
362 
363 void
dk3bmj_log_i5(dk3_app_t * app,int ll,size_t i1,size_t i2,size_t i3,dkChar const * txt1,dkChar const * txt2,int dest,dk3_bm_conversion_job_t * job)364 dk3bmj_log_i5(
365   dk3_app_t			*app,
366   int				 ll,
367   size_t			 i1,
368   size_t			 i2,
369   size_t			 i3,
370   dkChar const			*txt1,
371   dkChar const			*txt2,
372   int				 dest,
373 #if DK3_USE_WX
374   dk3_bm_conversion_job_t	*job
375 #else
376   dk3_bm_conversion_job_t	* DK3_ARG_UNUSED(job)
377 #endif
378 )
379 {
380 #if DK3_USE_WX
381   dkChar const		*p1;	/* First message part. */
382   dkChar const		*p2;	/* Centered message part. */
383   dkChar const		*p3;	/* Last message part. */
384   DkWxCommunicator	*pComm;	/* Communicator object. */
385 #endif
386   if(dest & DK3_BMJ_LOG_APP) {
387     if(app) {
388       dk3app_log_i5(app, ll, i1, i2, i3, txt1, txt2);
389     }
390   }
391 #if DK3_USE_WX
392   if((dest & DK3_BMJ_LOG_JOB) && (ll <= dk3bmj_required_log_level)) {
393     if(job) {
394       if(app) {
395         pComm = (DkWxCommunicator *)(job->pComm);
396         if(pComm) {
397 	  pComm->setLogLevel(ll);
398           p1 = dk3app_localized(app, i1);
399 	  p2 = dk3app_localized(app, i2);
400 	  p3 = dk3app_localized(app, i3);
401 	  if((p1) && (p2) && (p3)) {
402 	    pComm->addDkText(p1);
403 	    if(txt1) {
404 	      pComm->addDkText(txt1);
405 	    }
406 	    pComm->addDkText(p2);
407 	    if(txt2) {
408 	      pComm->addDkText(txt2);
409 	    }
410 	    pComm->addDkText(p3);
411 	    pComm->nl();
412 	  }
413         }
414       }
415     }
416   }
417 #else
418   DK3_UNUSED_ARG(job)
419 #endif
420 }
421 
422 
423 
424 void
dk3bmj_log_1(dk3_app_t * app,int ll,dkChar const * const * txta,size_t i,int dest,dk3_bm_conversion_job_t * job)425 dk3bmj_log_1(
426   dk3_app_t			*app,
427   int				 ll,
428   dkChar const * const		*txta,
429   size_t			 i,
430   int				 dest,
431 #if DK3_USE_WX
432   dk3_bm_conversion_job_t	*job
433 #else
434   dk3_bm_conversion_job_t	* DK3_ARG_UNUSED(job)
435 #endif
436 )
437 {
438 #if DK3_USE_WX
439   dkChar const		*p1;	/* Message text. */
440   DkWxCommunicator	*pComm;	/* Communicator object. */
441 #endif
442 
443   if(txta) {
444     if(dest & DK3_BMJ_LOG_APP) {
445       if(app) {
446         dk3app_log_1(app, ll, txta, i);
447       } else {
448       }
449     } else {
450     }
451 #if DK3_USE_WX
452     if((dest & DK3_BMJ_LOG_JOB) && (ll <= dk3bmj_required_log_level)) {
453       if(job) {
454         if(app) {
455           pComm = (DkWxCommunicator *)(job->pComm);
456           if(pComm) {
457 	    pComm->setLogLevel(ll);
458             p1 = txta[i];
459 	    if(p1) {
460 	      pComm->addDkText(p1);
461 	      pComm->nl();
462 	    } else {
463 	    }
464           } else {
465 	  }
466         } else {
467 	}
468       } else {
469       }
470     } else {
471     }
472 #else
473     DK3_UNUSED_ARG(job)
474 #endif
475   } else {
476   }
477 }
478 
479 
480 
481 void
dk3bmj_log_3(dk3_app_t * app,int ll,dkChar const * const * txta,size_t i1,size_t i2,dkChar const * txt,int dest,dk3_bm_conversion_job_t * job)482 dk3bmj_log_3(
483   dk3_app_t			*app,
484   int				 ll,
485   dkChar const * const		*txta,
486   size_t			 i1,
487   size_t			 i2,
488   dkChar const			*txt,
489   int				 dest,
490 #if DK3_USE_WX
491   dk3_bm_conversion_job_t	*job
492 #else
493   dk3_bm_conversion_job_t	* DK3_ARG_UNUSED(job)
494 #endif
495 )
496 {
497 #if DK3_USE_WX
498   dkChar const		*p1;	/* First message part. */
499   dkChar const		*p2;	/* Last message part. */
500   DkWxCommunicator	*pComm;	/* Communicator object. */
501 #endif
502   if(txta) {
503     if(dest & DK3_BMJ_LOG_APP) {
504       if(app) {
505         dk3app_log_3(app, ll, txta, i1, i2, txt);
506       }
507     }
508 #if DK3_USE_WX
509     if((dest & DK3_BMJ_LOG_JOB) && (ll <= dk3bmj_required_log_level)) {
510       if(job) {
511         if(app) {
512           pComm = (DkWxCommunicator *)(job->pComm);
513           if(pComm) {
514 	    pComm->setLogLevel(ll);
515             p1 = txta[i1];
516 	    p2 = txta[i2];
517 	    if((p1) && (p2)) {
518 	      pComm->addDkText(p1);
519 	      if(txt) {
520 	        pComm->addDkText(txt);
521 	      }
522 	      pComm->addDkText(p2);
523 	      pComm->nl();
524 	    }
525           }
526         }
527       }
528     }
529 #else
530     DK3_UNUSED_ARG(job)
531 #endif
532   }
533 }
534 
535 
536 
537 
538 void
dk3bmj_log_5(dk3_app_t * app,int ll,dkChar const * const * txta,size_t i1,size_t i2,size_t i3,dkChar const * txt1,dkChar const * txt2,int dest,dk3_bm_conversion_job_t * job)539 dk3bmj_log_5(
540   dk3_app_t			*app,
541   int				 ll,
542   dkChar const * const		*txta,
543   size_t			 i1,
544   size_t			 i2,
545   size_t			 i3,
546   dkChar const			*txt1,
547   dkChar const			*txt2,
548   int				 dest,
549 #if DK3_USE_WX
550   dk3_bm_conversion_job_t	*job
551 #else
552   dk3_bm_conversion_job_t	* DK3_ARG_UNUSED(job)
553 #endif
554 )
555 {
556 #if DK3_USE_WX
557   dkChar const		*p1;	/* First message part. */
558   dkChar const		*p2;	/* Centered message part. */
559   dkChar const		*p3;	/* Last message part. */
560   DkWxCommunicator	*pComm;	/* Communicator object. */
561 #endif
562   if(txta) {
563     if(dest & DK3_BMJ_LOG_APP) {
564       if(app) {
565         dk3app_log_5(app, ll, txta, i1, i2, i3, txt1, txt2);
566       }
567     }
568 #if DK3_USE_WX
569     if((dest & DK3_BMJ_LOG_JOB) && (ll <= dk3bmj_required_log_level)) {
570       if(job) {
571         if(app) {
572           pComm = (DkWxCommunicator *)(job->pComm);
573           if(pComm) {
574 	    pComm->setLogLevel(ll);
575             p1 = txta[i1];
576 	    p2 = txta[i2];
577 	    p3 = txta[i3];
578 	    if((p1) && (p2) && (p3)) {
579 	      pComm->addDkText(p1);
580 	      if(txt1) {
581 	        pComm->addDkText(txt1);
582 	      }
583 	      pComm->addDkText(p2);
584 	      if(txt2) {
585 	        pComm->addDkText(txt2);
586 	      }
587 	      pComm->addDkText(p3);
588 	      pComm->nl();
589 	    }
590           }
591         }
592       }
593     }
594 #else
595     DK3_UNUSED_ARG(job)
596 #endif
597   }
598 }
599 
600 
601