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