1 /***************************************************************************
2                           DIA_factory.h
3   Handles univeral dialog
4 
5   DO NOT USE TEMPLATE HERE!
6 
7   (C) Mean 2006 fixounet@free.fr
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  *                                                                         *
13  *   This program is free software; you can redistribute it and/or modify  *
14  *   it under the terms of the GNU General Public License as published by  *
15  *   the Free Software Foundation; either version 2 of the License, or     *
16  *   (at your option) any later version.                                   *
17  *                                                                         *
18  ***************************************************************************/
19 #pragma once
20 #include <string>
21 #include "ADM_coreUI6_export.h"
22 #include "ADM_assert.h"
23 
24 #define ADM_COREUI_MAJOR 1
25 #define ADM_COREUI_MINOR 0
26 #define ADM_COREUI_PATCH 0
27 
28 typedef enum
29 {
30   ELEM_INVALID=0,
31   ELEM_TOGGLE,
32   ELEM_INTEGER,
33   ELEM_FLOAT,
34   ELEM_MENU,
35   ELEM_FILE_READ,
36   ELEM_BITRATE,
37   ELEM_BAR,
38   ELEM_ROTEXT,
39   ELEM_NOTCH,
40   ELEM_DIR_SELECT,
41   ELEM_TEXT,
42   ELEM_FRAME,
43   ELEM_HEXDUMP,
44   ELEM_TOGGLE_UINT,
45   ELEM_TOGGLE_INT,
46   ELEM_BUTTON,
47   ELEM_SLIDER,
48   ELEM_THREAD_COUNT,
49   ELEM_MATRIX,
50   ELEM_COUNT,
51   ELEM_ASPECT_RATIO,
52   ELEM_TIMESTAMP,
53   ELEM_MAX=ELEM_COUNT-1
54 }elemEnum;
55 typedef void ADM_FAC_CALLBACK(void *cookie);
56 
57 #define ELEM_TYPE_FLOAT float
58 
59 /*********************************************/
60 class ADM_COREUI6_EXPORT diaElem
61 {
62   protected:
63     int     size; // Number of rows the widget occupies
setSize(int z)64     void    setSize(int z) {size=z;};
65     int     readOnly;
66     diaElem    *internalPointer;
67 public:
68   void *param;
69   void *myWidget;
70   const char *paramTitle;
71   const char *tip;
72   elemEnum mySelf;
73 
diaElem(elemEnum num)74   diaElem(elemEnum num) {paramTitle=NULL;param=NULL;mySelf=num;myWidget=NULL;size=1;readOnly=0;internalPointer=NULL;};
getSize(void)75           int getSize(void) {return size;};
~diaElem()76   virtual ~diaElem() {};
77   virtual void setMe(void *dialog, void *opaque,uint32_t line)=0;
78   virtual void getMe(void)=0;
setRo(void)79   virtual void setRo(void) {readOnly=1;}
setRw(void)80   virtual void setRw(void) {readOnly=0;}
81 
enable(uint32_t onoff)82   virtual void enable(uint32_t onoff) {}
finalize(void)83   virtual void finalize(void) {} // in case some widget needs some stuff just before using them
84   virtual int getRequiredLayout(void)=0;
85 };
86 /*********************************************/
87 #define MENU_MAX_lINK 10
88 typedef struct dialElemLink
89 {
90   uint32_t  value;
91   uint32_t  onoff;
92   diaElem  *widget;
93 }dialElemLink;
94 /*********************************************/
95 
96 typedef void      DELETE_DIA_ELEM_T(diaElem *widget);
97 typedef void      FINALIZE_DIA_ELEM_T(void);
98 typedef void      COREUI_GET_VERSION(uint32_t *maj,uint32_t *min,uint32_t *patch);
99 /*********************************************/
100 typedef diaElem  *(CREATE_BUTTON_T)(const char *toggleTitle, ADM_FAC_CALLBACK *cb,void *cookie,const char *tip);
101 class ADM_COREUI6_EXPORT diaElemButton : public diaElem
102 {
103   protected:
104   public:
105     void            *_cookie;
106     ADM_FAC_CALLBACK *_callBack;
107             diaElemButton(const char *toggleTitle, ADM_FAC_CALLBACK *cb,void *cookie,const char *tip=NULL);
108   virtual   ~diaElemButton() ;
109   void      setMe(void *dialog, void *opaque,uint32_t line);
110   void      getMe(void);
111   void      enable(uint32_t onoff) ;
112   int getRequiredLayout(void);
113 };
114 
115 /*********************************************/
116 typedef diaElem  *(CREATE_MATRIX_T)(uint8_t *trix,const char *toggleTitle, uint32_t trixSize,const char *tip);
117 
118 class ADM_COREUI6_EXPORT diaElemMatrix : public diaElem
119 {
120   protected:
121   public:
122     uint8_t *_matrix;
123     uint32_t _matrixSize;
124     		diaElemMatrix(uint8_t *trix,const char *toggleTitle, uint32_t trixSize,const char *tip=NULL);
125   virtual   ~diaElemMatrix() ;
126   void      setMe(void *dialog, void *opaque,uint32_t line);
127   void      getMe(void);
128   void      enable(uint32_t onoff) ;
129   int getRequiredLayout(void);
130 };
131 /************************************/
132 class ADM_COREUI6_EXPORT diaElemSliderBase : public diaElem
133 {
134   protected:
135 
136       uint32_t digits;
137 public:
diaElemSliderBase()138 	                diaElemSliderBase() : diaElem(ELEM_SLIDER) {}
~diaElemSliderBase()139   virtual           ~diaElemSliderBase() {};
setDigits(uint32_t digits)140   virtual uint8_t   setDigits(uint32_t digits) { this->digits = digits; return 1;}
141 };
142 
143 typedef diaElem *CREATE_USLIDER_T(uint32_t *value,const char *toggleTitle, uint32_t min,uint32_t max,uint32_t incr , const char *tip);
144 typedef diaElem *CREATE_SLIDER_T(int32_t *value,const char *toggleTitle, int32_t min,int32_t max,int32_t incr , const char *tip);
145 class ADM_COREUI6_EXPORT diaElemUSlider : public diaElemSliderBase
146 {
147   protected:
148 	  uint32_t min,max,incr;
149 public:
150 	diaElemUSlider(uint32_t *value,const char *toggleTitle, uint32_t min,uint32_t max,uint32_t incr = 1, const char *tip=NULL);
151   virtual   ~diaElemUSlider() ;
152   void      setMe(void *dialog, void *opaque,uint32_t line);
153   void      getMe(void);
154   void      enable(uint32_t onoff) ;
155   uint8_t   setDigits(uint32_t digits) ;
156   int getRequiredLayout(void);
157 };
158 class ADM_COREUI6_EXPORT diaElemSlider : public diaElemSliderBase
159 {
160   protected:
161 
162 	  int32_t min,max,incr;
163 
164 public:
165 	diaElemSlider(int32_t *value,const char *toggleTitle, int32_t min,int32_t max,int32_t incr = 1, const char *tip=NULL);
166   virtual   ~diaElemSlider() ;
167   void      setMe(void *dialog, void *opaque,uint32_t line);
168   void      getMe(void);
169   void      enable(uint32_t onoff) ;
170   uint8_t   setDigits(uint32_t digits) ;
171   int getRequiredLayout(void);
172 };
173 /*********************************************/
174 typedef diaElem *CREATE_TOGGLE(bool *toggleValue,const char *toggleTitle, const char *tip);
175 class ADM_COREUI6_EXPORT diaElemToggleBase : public diaElem
176 {
177   protected:
178     dialElemLink        links[MENU_MAX_lINK];
179     uint32_t            nbLink;
180 
181 public:
diaElemToggleBase()182 			diaElemToggleBase() :diaElem(ELEM_TOGGLE)
183 						{};
~diaElemToggleBase()184   virtual   ~diaElemToggleBase() {};
185   virtual uint8_t   link(uint32_t onoff,diaElem *w)=0;
186 };
187 typedef diaElem *CREATE_TOGGLE_T(bool *toggleValue,const char *toggleTitle, const char *tip);
188 class ADM_COREUI6_EXPORT diaElemToggle : public diaElemToggleBase
189 {
190   protected:
191 public:
192             diaElemToggle(bool *toggleValue,const char *toggleTitle, const char *tip=NULL);
193   virtual   ~diaElemToggle() ;
194   void      setMe(void *dialog, void *opaque,uint32_t line);
195   void      getMe(void);
196   void      enable(uint32_t onoff) ;
197   void      finalize(void);
198   void      updateMe();
199   uint8_t   link(uint32_t onoff,diaElem *w);
200   int getRequiredLayout(void);
201 };
202 /*********************************************/
203 typedef diaElem *CREATE_TOGGLE_UINT(uint32_t *toggleValue,const char *toggleTitle, uint32_t *uintval,
204 								const char *name,uint32_t min,uint32_t max,const char *tip);
205 class ADM_COREUI6_EXPORT diaElemToggleUint : public diaElem
206 {
207   protected:
208         uint32_t *emb;
209         const char *embName;
210         void *widgetUint;
211         uint32_t _min,_max;
212 public:
213             diaElemToggleUint(uint32_t *toggleValue,const char *toggleTitle, uint32_t *uintval,
214             					const char *name,uint32_t min,uint32_t max,const char *tip=NULL);
215   virtual   ~diaElemToggleUint() ;
216   void      setMe(void *dialog, void *opaque,uint32_t line);
217   void      getMe(void);
218   void      enable(uint32_t onoff) ;
219   void      finalize(void);
220   void      updateMe();
221   int getRequiredLayout(void);
222 };
223 typedef diaElem *CREATE_TOGGLE_INT(uint32_t *toggleValue,const char *toggleTitle, int32_t *intval,
224 									const char *name,int32_t min,int32_t max,const char *tip);
225 class ADM_COREUI6_EXPORT diaElemToggleInt : public diaElem
226 {
227   protected:
228 	  		 int32_t *emb;
229 	         const char *embName;
230 	         void *widgetUint;
231 	         int32_t _min,_max;
232 public:
233             diaElemToggleInt(uint32_t *toggleValue,const char *toggleTitle, int32_t *uintval,
234             				const char *name,int32_t min,int32_t max,const char *tip=NULL);
235   virtual   ~diaElemToggleInt() ;
236   void      setMe(void *dialog, void *opaque,uint32_t line);
237   void      getMe(void);
238   void      finalize(void);
239   int getRequiredLayout(void);
240   void      updateMe();
241   void      enable(uint32_t onoff) ;
242 };
243 /*********************************************/
244 typedef diaElem  *(CREATE_INTEGER_T)(int32_t *intValue,const char *toggleTitle,int32_t min, int32_t max,const char *tip);
245 typedef diaElem  *(CREATE_UINTEGER_T)(uint32_t *intValue,const char *toggleTitle,uint32_t min, uint32_t max,const char *tip);
246 class ADM_COREUI6_EXPORT diaElemInteger : public diaElem
247 {
248 
249 public:
250   int32_t min,max;
251   diaElemInteger(int32_t *intValue,const char *toggleTitle, int32_t min, int32_t max,const char *tip=NULL);
252   virtual ~diaElemInteger() ;
253   void setMe(void *dialog, void *opaque,uint32_t line);
254   void getMe(void);
255   void      enable(uint32_t onoff) ;
256   int getRequiredLayout(void);
257 };
258 /* Same but unsigned */
259 class ADM_COREUI6_EXPORT diaElemUInteger : public diaElem
260 {
261 
262 public:
263   uint32_t min,max;
264   diaElemUInteger(uint32_t *intValue,const char *toggleTitle, uint32_t min, uint32_t max,const char *tip=NULL);
265   virtual ~diaElemUInteger() ;
266   void setMe(void *dialog, void *opaque,uint32_t line);
267   void getMe(void);
268   void      enable(uint32_t onoff) ;
269   int getRequiredLayout(void);
270 };
271 /*************************************************/
272 typedef diaElem  *(CREATE_BAR_T)(uint32_t percent,const char *toggleTitle);
273 
274 class ADM_COREUI6_EXPORT diaElemBar : public diaElem
275 {
276   protected :
277         uint32_t per;
278 public:
279 
280   diaElemBar(uint32_t percent,const char *toggleTitle);
281   virtual ~diaElemBar() ;
282   void setMe(void *dialog, void *opaque,uint32_t line);
283   void getMe(void);
284   int getRequiredLayout(void);
285 };
286 /*************************************************/
287 typedef diaElem  *(CREATE_TIMESTAMP_T)(uint32_t *value,const char *toggleTitle,const uint32_t valMin, const uint32_t valMax);
288 
289 class ADM_COREUI6_EXPORT diaElemTimeStamp : public diaElem
290 {
291   protected :
292         uint32_t value;
293 public:
294 
295   diaElemTimeStamp(uint32_t *value,const char *toggleTitle,const uint32_t valMin, const uint32_t valMax);
296   virtual ~diaElemTimeStamp() ;
297   void setMe(void *dialog, void *opaque,uint32_t line);
298   void getMe(void);
299   int getRequiredLayout(void);
300 };
301 
302 
303 /*********************************************/
304 typedef diaElem  *(CREATE_FLOAT_T)(ELEM_TYPE_FLOAT *intValue,const char *toggleTitle, ELEM_TYPE_FLOAT min,
305         ELEM_TYPE_FLOAT max,const char *tip, int decimals);
306 class ADM_COREUI6_EXPORT diaElemFloat : public diaElem
307 {
308 protected:
309 	int decimals;
310 
311 public:
312   ELEM_TYPE_FLOAT min,max;
313   diaElemFloat(ELEM_TYPE_FLOAT *intValue,const char *toggleTitle, ELEM_TYPE_FLOAT min,
314                ELEM_TYPE_FLOAT max,const char *tip=NULL, int decimals = 2);
315   virtual ~diaElemFloat() ;
316   void setMe(void *dialog, void *opaque,uint32_t line);
317   void getMe(void);
318   void      enable(uint32_t onoff) ;
319   int getRequiredLayout(void);
320 };
321 /*************************************************/
322 class diaMenuEntry
323 {
324 public:
325     uint32_t    val;
326     const char *text;
327     const char *desc;
328 };
329 
330 class ADM_COREUI6_EXPORT diaMenuEntryDynamic : public diaMenuEntry
331 {
332   public:
333   public:
diaMenuEntryDynamic(uint32_t v,const char * t,const char * d)334     diaMenuEntryDynamic(uint32_t v,const char *t,const char *d)
335       {
336           val=v;
337           text=ADM_strdup(t);
338           desc=ADM_strdup(d);
339       }
~diaMenuEntryDynamic()340     ~diaMenuEntryDynamic()
341       {
342           ADM_dealloc(text);
343           ADM_dealloc(desc);
344       }
345 
346 };
347 //*******************************
348 // static (i.e. hardcoded) menu
349 //*******************************
350 
351 
352 
353 //*******************************
354 // Same but for dynamic menus
355 //*******************************
356 typedef diaElem  *(CREATE_MENU_T)(uint32_t *intValue,const char *itle, uint32_t nb,
357         const diaMenuEntry *menu,const char *tip);
358 typedef diaElem  *(CREATE_MENUDYNAMIC_T)(uint32_t *intValue,const char *itle, uint32_t nb,
359          diaMenuEntryDynamic **menu,const char *tip);
360 
361 class ADM_COREUI6_EXPORT diaElemMenuDynamicBase : public diaElem
362 {
363 protected:
364 diaMenuEntryDynamic **menu;
365 uint32_t            nbMenu;
366 dialElemLink        links[MENU_MAX_lINK];
367 uint32_t            nbLink;
368 
369 public:
diaElemMenuDynamicBase()370 	diaElemMenuDynamicBase() : diaElem(ELEM_MENU) {};
371 
~diaElemMenuDynamicBase()372   virtual   ~diaElemMenuDynamicBase() {};
373   virtual uint8_t   link(diaMenuEntryDynamic *entry,uint32_t onoff,diaElem *w)=0;
374 };
375 
376 class ADM_COREUI6_EXPORT diaElemMenuDynamic : public diaElemMenuDynamicBase
377 {
378 public:
379   diaElemMenuDynamic(uint32_t *intValue,const char *itle, uint32_t nb,
380                diaMenuEntryDynamic **menu,const char *tip=NULL);
381 
382   virtual   ~diaElemMenuDynamic() ;
383   void      setMe(void *dialog, void *opaque,uint32_t line);
384   void      getMe(void);
385   virtual uint8_t   link(diaMenuEntryDynamic *entry,uint32_t onoff,diaElem *w);
386   virtual void      updateMe(void);
387   virtual void      enable(uint32_t onoff) ;
388   virtual void      finalize(void);
389   int getRequiredLayout(void);
390 };
391 
392 class ADM_COREUI6_EXPORT diaElemMenuBase : public diaElem
393 {
394 protected:
395 	const diaMenuEntry  *menu;
396 	uint32_t            nbMenu;
397 	dialElemLink        links[MENU_MAX_lINK];
398 	uint32_t            nbLink;
399 public:
diaElemMenuBase(void)400 	diaElemMenuBase(void) : diaElem(ELEM_MENU) {};
~diaElemMenuBase(void)401 	virtual ~diaElemMenuBase(void) {};
402 	virtual uint8_t   link(diaMenuEntry *entry,uint32_t onoff,diaElem *w)=0;
403 };
404 class ADM_COREUI6_EXPORT diaElemMenu : public diaElemMenuBase
405 {
406 
407 diaElemMenuDynamic  *dyna;
408 diaMenuEntryDynamic  **menus;
409 public:
410   diaElemMenu(uint32_t *intValue,const char *itle, uint32_t nb,
411                const diaMenuEntry *menu,const char *tip=NULL);
412 
413   virtual ~diaElemMenu() ;
414   void setMe(void *dialog, void *opaque,uint32_t line);
415   void getMe(void);
416   virtual uint8_t   link(diaMenuEntry *entry,uint32_t onoff,diaElem *w);
417   virtual void      updateMe(void);
418   void      enable(uint32_t onoff) ;
419   void      finalize(void);;
420   int getRequiredLayout(void);
421 };
422 
423 /*************************************************/
424 #ifndef ADM_MINIMAL_UI_INTERFACE
425 #include "ADM_encoderConf.h"
426 typedef diaElem  *(CREATE_BITRATE_T)(COMPRES_PARAMS *p,const char *toggleTitle,const char *tip);
427 class ADM_COREUI6_EXPORT diaElemBitrateBase : public diaElem
428 {
429   protected:
430     COMPRES_PARAMS    copy;
431     uint32_t maxQ, minQ;
432 public:
433 
diaElemBitrateBase(void)434 	diaElemBitrateBase(void) : diaElem(ELEM_BITRATE) {};
~diaElemBitrateBase()435   virtual ~diaElemBitrateBase() {} ;
436   virtual void setMaxQz(uint32_t qz)=0;
437 };
438 class ADM_COREUI6_EXPORT diaElemBitrate : public diaElemBitrateBase
439 {
440   protected:
441 public:
442 
443   diaElemBitrate(COMPRES_PARAMS *p,const char *toggleTitle,const char *tip=NULL);
444   virtual ~diaElemBitrate() ;
445   void setMe(void *dialog, void *opaque,uint32_t line);
446   void getMe(void);
447   void setMaxQz(uint32_t qz);
448   void setMinQz(uint32_t qz);
449   void enable(uint32_t onoff);
450   void updateMe(void);
451   int getRequiredLayout(void);
452 };
453 #endif
454 /*************************************************/
455 typedef diaElem *CREATE_FILE_T(uint32_t writeMode,std::string  &filename,const char *toggleTitle,  const char *defaultSuffix ,const char *tip);
456 class ADM_COREUI6_EXPORT diaElemFileBase : public diaElem
457 {
458 
459 protected:
460     const char * defaultSuffix;
461 public:
462 
diaElemFileBase(void)463 	diaElemFileBase(void) : diaElem(ELEM_FILE_READ){};
~diaElemFileBase()464   virtual ~diaElemFileBase() {};
465   virtual void   changeFile(void)=0;
466   uint32_t _write;
467 
468 };
469 class ADM_COREUI6_EXPORT diaElemFile : public diaElemFileBase
470 {
471 
472 protected:
473 
474 public:
475 
476   diaElemFile(uint32_t writeMode,std::string &filename,const char *toggleTitle,
477               const char *defaultSuffix = 0,const char *tip=NULL);
478   virtual ~diaElemFile() ;
479   void setMe(void *dialog, void *opaque,uint32_t line);
480   void getMe(void);
481 
482   void   changeFile(void);
483   void   enable(uint32_t onoff);
484   int getRequiredLayout(void);
485 };
486 /*************************************************/
487 typedef diaElem *CREATE_DIR_T(std::string &filename,const char *toggleTitle,const char *tip);
488 class ADM_COREUI6_EXPORT diaElemDirSelectBase : public diaElem
489 {
490 
491 public:
492 
diaElemDirSelectBase(void)493 	diaElemDirSelectBase(void) :diaElem(ELEM_DIR_SELECT) {};
~diaElemDirSelectBase()494   virtual ~diaElemDirSelectBase() {} ;
495   virtual void changeFile(void)=0;
496 };
497 class ADM_COREUI6_EXPORT diaElemDirSelect : public diaElemDirSelectBase
498 {
499 
500 public:
501 
502   diaElemDirSelect(std::string &filename,const char *toggleTitle,const char *tip=NULL);
503   virtual ~diaElemDirSelect() ;
504   void setMe(void *dialog, void *opaque,uint32_t line);
505   void getMe(void);
506 
507   void changeFile(void);
508   void   enable(uint32_t onoff);
509   int getRequiredLayout(void);
510 };
511 /*************************************************/
512 /* The text MUST be copied internally ! */
513 typedef diaElem *(CREATE_READONLYTEXT_T )(const char *readOnly,const char *toggleTitle, const char *tip);
514 class ADM_COREUI6_EXPORT diaElemReadOnlyText : public diaElem
515 {
516 
517 public:
518 
519   diaElemReadOnlyText(const char *readyOnly,const char *toggleTitle,const char *tip=NULL);
520   virtual ~diaElemReadOnlyText() ;
521   void setMe(void *dialog, void *opaque,uint32_t line);
522   void getMe(void);
523   void enable(uint32_t onoff);
524   int getRequiredLayout(void);
525 };
526 /*************************************************/
527 typedef diaElem *(CREATE_TEXT_T )(char **readOnly,const char *toggleTitle, const char *tip);
528 /* The text MUST be copied internally ! */
529 class ADM_COREUI6_EXPORT diaElemText : public diaElem
530 {
531 
532 public:
533 
534   diaElemText(char **text,const char *toggleTitle,const char *tip=NULL);
535   virtual ~diaElemText() ;
536   void setMe(void *dialog, void *opaque,uint32_t line);
537   void getMe(void);
538   void enable(uint32_t onoff);
539   int getRequiredLayout(void);
540 };
541 
542 /*********************************************/
543 typedef diaElem *(CREATE_NOTCH_T )(uint32_t yes,const char *toggleTitle, const char *tip);
544 class ADM_COREUI6_EXPORT diaElemNotch : public diaElem
545 {
546   uint32_t yesno;
547 public:
548 
549   diaElemNotch(uint32_t yes,const char *toggleTitle, const char *tip=NULL);
550   virtual ~diaElemNotch() ;
551   void setMe(void *dialog, void *opaque,uint32_t line);
552   void getMe(void) ;
553   int getRequiredLayout(void);
554 };
555 /*********************************************/
556 typedef diaElem *(CREATE_TAB_T )(const char *toggleTitle, uint32_t nb, diaElem **content);
557 class ADM_COREUI6_EXPORT diaElemTabs
558 {
559   public:
560 
561   uint32_t nbElems;
562   diaElem  **dias;
563   const char *title;
564 
diaElemTabs(const char * toggleTitle,uint32_t nb,diaElem ** content)565   diaElemTabs(const char *toggleTitle, uint32_t nb, diaElem **content)
566   {
567       nbElems=nb;
568       dias=content;
569       title=toggleTitle;
570   }
~diaElemTabs()571   virtual ~diaElemTabs()
572   {
573   }
574 };
575 /**********************************************/
576 #define DIA_MAX_FRAME 20
577 class ADM_COREUI6_EXPORT diaElemFrameBase :public diaElem
578 {
579 protected:
580   uint32_t frameSize;
581   uint32_t nbElems;
582   diaElem  *elems[DIA_MAX_FRAME];
583 public:
584 
diaElemFrameBase(void)585 	diaElemFrameBase(void) : diaElem(ELEM_FRAME) {};
~diaElemFrameBase()586   virtual ~diaElemFrameBase() {};
587   virtual void swallow(diaElem *widget)=0;
588 };
589 typedef diaElem *(CREATE_FRAME_T )(const char *toggleTitle, const char *tip);
590 class ADM_COREUI6_EXPORT diaElemFrame : public diaElemFrameBase
591 {
592 
593 public:
594 
595   diaElemFrame(const char *toggleTitle, const char *tip=NULL);
596   virtual ~diaElemFrame() ;
597   void setMe(void *dialog, void *opaque,uint32_t line);
598   void getMe(void) ;
599   void swallow(diaElem *widget);
600   void enable(uint32_t onoff);
601   void finalize(void);
602   int getRequiredLayout(void);
603 };
604 /**********************************************/
605 typedef diaElem *(CREATE_HEX_T )(const char *toggleTitle, uint32_t dataSize,uint8_t *data);
606 class ADM_COREUI6_EXPORT diaElemHex : public diaElem
607 {
608   uint32_t dataSize;
609   uint8_t  *data;
610 
611 public:
612 
613   diaElemHex(const char *toggleTitle, uint32_t dataSize,uint8_t *data);
614   virtual ~diaElemHex() ;
615   void setMe(void *dialog, void *opaque,uint32_t line);
616   void getMe(void) ;
617   void finalize(void);
618   int getRequiredLayout(void);
619 };
620 /**********************************************/
621 typedef diaElem *(CREATE_THREADCOUNT_T)(uint32_t *value, const char *title, const char *tip );
622 class ADM_COREUI6_EXPORT diaElemThreadCount : public diaElem
623 {
624 
625 public:
626 
627   diaElemThreadCount(uint32_t *value, const char *title, const char *tip = NULL);
628   virtual ~diaElemThreadCount() ;
629   void setMe(void *dialog, void *opaque, uint32_t line);
630   void getMe(void);
631   int getRequiredLayout(void);
632 };
633 /**********************************************/
634 typedef diaElem *(CREATE_ASPECTRATIO_T)(uint32_t *num, uint32_t *den, const char *title, const char *tip );
635 class ADM_COREUI6_EXPORT diaElemAspectRatio : public diaElem
636 {
637 public:
638 	uint32_t *den;
639 	void *denControl, *label;
640 
641 	diaElemAspectRatio(uint32_t *num, uint32_t *den, const char *title, const char *tip = NULL);
642 	virtual ~diaElemAspectRatio();
643 	void setMe(void *dialog, void *opaque, uint32_t line);
644 	void getMe(void);
645 	void enable(uint32_t onoff);
646 	int getRequiredLayout(void);
647         void finalize(void);
648 };
649 
650 /*********************************************/
651 ADM_COREUI6_EXPORT uint8_t diaFactoryRun(const char *title,uint32_t nb,diaElem **elems);
652 ADM_COREUI6_EXPORT uint8_t diaFactoryRunTabs(const char *title,uint32_t nb,diaElemTabs **tabs);
653 ADM_COREUI6_EXPORT void *  diaFactoryRunTabsPrepare(const char *title,uint32_t nb,diaElemTabs **tabs);
654 ADM_COREUI6_EXPORT bool    diaFactoryRunTabsFinish(void *f);
655 
656 
657 /*********************************************/
658