1 /* 2 * xmcd - Motif(R) CD Audio Player/Ripper 3 * 4 * Copyright (C) 1993-2004 Ti Kan 5 * E-mail: xmcd@amb.org 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * 21 */ 22 #ifndef __WIDGET_H__ 23 #define __WIDGET_H__ 24 25 #ifndef lint 26 static char *_widget_h_ident_ = "@(#)widget.h 7.79 04/02/13"; 27 #endif 28 29 /* Holder for all widgets */ 30 typedef struct { 31 /* Top-level shell */ 32 Widget toplevel; 33 34 /* Main window widgets */ 35 struct { 36 Widget form; /* Form container */ 37 Widget mode_btn; /* Normal/Basic mode button */ 38 Widget chkbox_frm; /* Frame for Lock toggle */ 39 Widget check_box; /* Toggle button checkbox */ 40 Widget lock_btn; /* Caddy lock button */ 41 Widget repeat_btn; /* Repeat button */ 42 Widget shuffle_btn; /* Shuffle button */ 43 Widget eject_btn; /* Eject button */ 44 Widget quit_btn; /* Quit button */ 45 Widget disc_ind; /* Disc number indicator */ 46 Widget track_ind; /* Track number indicator */ 47 Widget index_ind; /* Index number indicator */ 48 Widget time_ind; /* Time indicator */ 49 Widget rptcnt_ind; /* Repeat count indicator */ 50 Widget dbmode_ind; /* CD information indicator */ 51 Widget progmode_ind; /* Program mode indicator */ 52 Widget timemode_ind; /* Time mode indicator */ 53 Widget playmode_ind; /* Play mode indicator */ 54 Widget dtitle_ind; /* Disc title indicator */ 55 Widget ttitle_ind; /* Track title indicator */ 56 Widget dbprog_btn; /* CDDB/Program button */ 57 Widget options_btn; /* Options button */ 58 Widget ab_btn; /* A->B mode button */ 59 Widget sample_btn; /* Sample mode button */ 60 Widget time_btn; /* Time display button */ 61 Widget keypad_btn; /* Keypad button */ 62 Widget wwwwarp_bar; /* wwwWarp menu bar */ 63 Widget wwwwarp_btn; /* wwwWarp button */ 64 Widget level_scale; /* Volume control slider */ 65 Widget playpause_btn; /* Play/Pause button */ 66 Widget stop_btn; /* Stop button */ 67 Widget prevdisc_btn; /* Previous Disc button */ 68 Widget nextdisc_btn; /* Previous Disc button */ 69 Widget prevtrk_btn; /* Prev Track button */ 70 Widget nexttrk_btn; /* Next Track button */ 71 Widget previdx_btn; /* Prev Index button */ 72 Widget nextidx_btn; /* Next Index button */ 73 Widget rew_btn; /* Search REW button */ 74 Widget ff_btn; /* Search FF button */ 75 } main; 76 77 /* Keypad window widgets */ 78 struct { 79 Widget form; /* Form container */ 80 Widget keypad_lbl; /* Keypad label */ 81 Widget keypad_ind; /* Keypad indicator */ 82 Widget radio_frm; /* Keypad mode Frame */ 83 Widget radio_box; /* Keypad mode radio box */ 84 Widget track_btn; /* Track button */ 85 Widget disc_btn; /* Disc button */ 86 Widget num_btn[10]; /* Number keys */ 87 Widget clear_btn; /* Clear button */ 88 Widget enter_btn; /* Enter button */ 89 Widget warp_lbl; /* Track warp label */ 90 Widget warp_scale; /* Track warp slider */ 91 Widget keypad_sep; /* Separator bar */ 92 Widget cancel_btn; /* Cancel button */ 93 } keypad; 94 95 /* Options window widgets */ 96 struct { 97 Widget form; /* Form container */ 98 99 Widget categ_lbl; /* Category label */ 100 Widget categ_list; /* Category list */ 101 Widget categ_sep; /* Category separator */ 102 103 Widget mode_lbl; /* Play mode label */ 104 Widget mode_chkbox_frm; /* Play mode chkbox frame */ 105 Widget mode_jitter_btn; /* CDDA jitter corr button */ 106 Widget mode_trkfile_btn; /* One file per track button */ 107 Widget mode_subst_btn; /* Underscore subst button */ 108 Widget mode_fmt_opt; /* File format options menu */ 109 Widget mode_perfmon_btn; /* CDDA Perf monitor button */ 110 Widget mode_path_lbl; /* File path label */ 111 Widget mode_path_txt; /* File path tmpl text */ 112 Widget mode_pathexp_btn; /* File path expand button */ 113 Widget mode_prog_lbl; /* Program path label */ 114 Widget mode_prog_txt; /* Program path text */ 115 Widget mode_nullmarker; 116 Widget mode_chkbox; /* Play mode check box */ 117 Widget mode_std_btn; /* Standard button */ 118 Widget mode_cdda_btn; /* CDDA button */ 119 Widget mode_file_btn; /* Save file button */ 120 Widget mode_pipe_btn; /* Pipe to program button */ 121 Widget mode_fmt_menu_lbl; /* File format menu label */ 122 Widget mode_fmt_menu_sep; /* File format menu sep */ 123 Widget mode_fmt_raw_btn; /* CDR format button */ 124 Widget mode_fmt_au_btn; /* AU format button */ 125 Widget mode_fmt_wav_btn; /* WAV format button */ 126 Widget mode_fmt_aiff_btn; /* AIFF format button */ 127 Widget mode_fmt_aifc_btn; /* AIFF-C format button */ 128 Widget mode_fmt_mp3_btn; /* MP3 format button */ 129 Widget mode_fmt_ogg_btn; /* Ogg Vorbis format button */ 130 Widget mode_fmt_flac_btn; /* FLAC format button */ 131 Widget mode_fmt_aac_btn; /* AAC format button */ 132 Widget mode_fmt_mp4_btn; /* MP4 format button */ 133 Widget mode_fmt_menu; /* File format pulldown menu */ 134 135 Widget method_opt; /* Method options menu */ 136 Widget qualval_lbl; /* Quality factor label */ 137 Widget qualval1_lbl; /* Quality factor label */ 138 Widget qualval2_lbl; /* Quality factor label */ 139 Widget qualval_scl; /* Quality factor scale */ 140 Widget bitrate_opt; /* Bitrate options menu */ 141 Widget minbrate_opt; /* Min bitrate options menu */ 142 Widget maxbrate_opt; /* Max bitrate options menu */ 143 Widget chmode_opt; /* Channel mode options menu */ 144 Widget compalgo_lbl; /* Comp algorithm label */ 145 Widget compalgo1_lbl; /* Comp algorithm label */ 146 Widget compalgo2_lbl; /* Comp algorithm label */ 147 Widget compalgo_scl; /* Comp algorithm scale */ 148 Widget encode_sep; /* Separator */ 149 Widget filters_lbl; /* Filters label */ 150 Widget freq_lbl; /* Frequency label */ 151 Widget width_lbl; /* Width label */ 152 Widget lp_opt; /* Lopass option menu */ 153 Widget lp_freq_txt; /* Lopass frequency text */ 154 Widget lp_width_txt; /* Lopass width text */ 155 Widget hp_opt; /* Hipass option menu */ 156 Widget hp_freq_txt; /* Hipass frequency text */ 157 Widget hp_width_txt; /* Hipass width text */ 158 Widget encode_sep2; /* Separator */ 159 Widget copyrt_btn; /* Copyright button */ 160 Widget orig_btn; /* Original button */ 161 Widget nores_btn; /* No bit reservoir button */ 162 Widget chksum_btn; /* Checksum button */ 163 Widget iso_btn; /* Strict ISO button */ 164 Widget addtag_btn; /* Add tag button */ 165 Widget id3tag_ver_opt; /* ID3tag version option mnu */ 166 Widget comp_nullmarker; 167 Widget method_menu_lbl; /* Method menu label */ 168 Widget method_menu_sep; /* Method menu separator */ 169 Widget method_menu; /* Method menu */ 170 Widget mode0_btn; /* Mode0 button */ 171 Widget mode1_btn; /* Mode1 button */ 172 Widget mode2_btn; /* Mode2 button */ 173 Widget mode3_btn; /* Mode3 button */ 174 Widget bitrate_menu_lbl; /* Bitrate menu label */ 175 Widget bitrate_menu_sep; /* Bitrate menu separator */ 176 Widget bitrate_def_btn; /* Default bitrate button */ 177 Widget bitrate_menu; /* Bitrate menu */ 178 Widget minbrate_menu_lbl; /* Min bitrate menu label */ 179 Widget minbrate_menu_sep; /* Min bitrate menu sep */ 180 Widget minbrate_def_btn; /* Min bitrate default btn */ 181 Widget minbrate_menu; /* Min bitrate menu */ 182 Widget maxbrate_menu_lbl; /* Max bitrate menu label */ 183 Widget maxbrate_menu_sep; /* Max bitrate menu sep */ 184 Widget maxbrate_def_btn; /* Max bitrate default btn */ 185 Widget maxbrate_menu; /* Max bitrate menu */ 186 Widget chmode_menu_lbl; /* Chan mode menu label */ 187 Widget chmode_menu_sep; /* Chan mode menu separator */ 188 Widget chmode_stereo_btn; /* Chan mode stereo btn */ 189 Widget chmode_jstereo_btn; /* Chan mode j-stereo btn */ 190 Widget chmode_forcems_btn; /* Chan mode force m/s btn */ 191 Widget chmode_mono_btn; /* Chan mode mono btn */ 192 Widget chmode_menu; /* Chan mode menu */ 193 Widget lp_menu_lbl; /* Lopass menu label */ 194 Widget lp_menu_sep; /* Lopass menu separator */ 195 Widget lp_off_btn; /* Lopass off button */ 196 Widget lp_auto_btn; /* Lopass auto button */ 197 Widget lp_manual_btn; /* Lopass manual button */ 198 Widget lp_menu; /* Lopass menu */ 199 Widget hp_menu_lbl; /* Hipass menu label */ 200 Widget hp_menu_sep; /* Hipass menu separator */ 201 Widget hp_off_btn; /* Hipass off button */ 202 Widget hp_auto_btn; /* Hipass auto button */ 203 Widget hp_manual_btn; /* Hipass manual button */ 204 Widget hp_menu; /* Hipass menu */ 205 Widget id3tag_ver_menu_lbl; /* ID3tag version menu label */ 206 Widget id3tag_ver_menu_sep; /* ID3tag version menu sep */ 207 Widget id3tag_v1_btn; /* ID3tag version 1 button */ 208 Widget id3tag_v2_btn; /* ID3tag version 2 button */ 209 Widget id3tag_both_btn; /* ID3tag both button */ 210 Widget id3tag_ver_menu; /* ID3tag version menu */ 211 212 Widget lame_lbl; /* Advanced LAME opts label */ 213 Widget lame_mode_lbl; /* LAME opts mode label */ 214 Widget lame_radbox_frm; /* LAME opts radbox frame */ 215 Widget lame_opts_lbl; /* LAME opts string label */ 216 Widget lame_opts_txt; /* LAME opts string label */ 217 Widget lame_nullmarker; 218 Widget lame_radbox; /* LAME opts radio box */ 219 Widget lame_disable_btn; /* LAME opts disable button */ 220 Widget lame_insert_btn; /* LAME opts insert button */ 221 Widget lame_append_btn; /* LAME opts append button */ 222 Widget lame_replace_btn; /* LAME opts replace button */ 223 224 Widget sched_lbl; /* Sched options label */ 225 Widget sched_rd_lbl; /* Read sched label */ 226 Widget sched_rd_radbox_frm; /* Read sched radio box frm */ 227 Widget sched_wr_lbl; /* Write sched label */ 228 Widget sched_wr_radbox_frm; /* Write sched radio box frm */ 229 Widget hb_tout_lbl; /* heartbeat timeout label */ 230 Widget hb_tout_txt; /* heartbeat timeout text */ 231 Widget sched_nullmarker; 232 Widget sched_rd_radbox; /* Read sched radio box */ 233 Widget sched_wr_radbox; /* Write sched radio box */ 234 Widget sched_rd_norm_btn; /* Read sched normal button */ 235 Widget sched_rd_hipri_btn; /* Read sched hipri button */ 236 Widget sched_wr_norm_btn; /* Write sched normal button */ 237 Widget sched_wr_hipri_btn; /* Write sched hipri button */ 238 239 Widget load_lbl; /* Load options label */ 240 Widget load_chkbox_frm; /* Load options chkbox frame */ 241 Widget exit_lbl; /* Exit options label */ 242 Widget exit_radbox_frm; /* Exit options frame */ 243 Widget done_lbl; /* Done options label */ 244 Widget done_chkbox_frm; /* Done options frame */ 245 Widget eject_lbl; /* Eject options label */ 246 Widget eject_chkbox_frm; /* Eject options frame */ 247 Widget automation_nullmarker; 248 Widget load_chkbox; /* Load options check box */ 249 Widget exit_radbox; /* Exit options radio box */ 250 Widget done_chkbox; /* Done options check box */ 251 Widget eject_chkbox; /* Eject options check box */ 252 Widget load_none_btn; /* None button */ 253 Widget load_spdn_btn; /* Spin Down button */ 254 Widget load_play_btn; /* Auto Play button */ 255 Widget load_lock_btn; /* Auto Lock button */ 256 Widget exit_none_btn; /* None button */ 257 Widget exit_stop_btn; /* Auto Stop button */ 258 Widget exit_eject_btn; /* Auto Eject button */ 259 Widget done_eject_btn; /* Auto Eject button */ 260 Widget done_exit_btn; /* Auto Exit button */ 261 Widget eject_exit_btn; /* Auto Exit button */ 262 263 Widget chg_lbl; /* Changer options label */ 264 Widget chg_chkbox_frm; /* Changer options frame */ 265 Widget changer_nullmarker; 266 Widget chg_chkbox; /* Changer options chk box */ 267 Widget chg_multiplay_btn; /* Changer multi-play button */ 268 Widget chg_reverse_btn; /* Changer reverse button */ 269 270 Widget chroute_lbl; /* Channel route label */ 271 Widget chroute_radbox_frm; /* Channel route frame */ 272 Widget outport_lbl; /* Output port label */ 273 Widget outport_chkbox_frm; /* Output port frame */ 274 Widget chroute_nullmarker; 275 Widget chroute_radbox; /* Channel route radio box */ 276 Widget chroute_stereo_btn; /* Stereo button */ 277 Widget chroute_rev_btn; /* Stereo Reverse button */ 278 Widget chroute_left_btn; /* Mono Left-only button */ 279 Widget chroute_right_btn; /* Mono Right-only button */ 280 Widget chroute_mono_btn; /* Mono Left+Right button */ 281 Widget outport_chkbox; /* Outport select check box */ 282 Widget outport_spkr_btn; /* Speaker */ 283 Widget outport_phone_btn; /* Headphone */ 284 Widget outport_line_btn; /* Line-out */ 285 286 Widget vol_lbl; /* Vol ctrl taper label */ 287 Widget vol_radbox_frm; /* Vol ctrl taper frame */ 288 Widget bal_lbl; /* Balance ctrl label */ 289 Widget ball_lbl; /* Balance ctrl left label */ 290 Widget balr_lbl; /* Balance ctrl right label */ 291 Widget bal_scale; /* Balance ctrl scale */ 292 Widget balctr_btn; /* Balance center button */ 293 Widget cdda_att_lbl; /* CDDA attenuator label */ 294 Widget cdda_att_scale; /* CDDA attentuator scale */ 295 Widget cdda_fadeout_btn; /* CDDA fade-out button */ 296 Widget cdda_fadein_btn; /* CDDA fade-in button */ 297 Widget cdda_fadeout_lbl; /* CDDA fade-out label */ 298 Widget cdda_fadein_lbl; /* CDDA fade-in label */ 299 Widget volbal_nullmarker; 300 Widget vol_radbox; /* Vol ctrl taper radio box */ 301 Widget vol_linear_btn; /* Linear button */ 302 Widget vol_square_btn; /* Square button */ 303 Widget vol_invsqr_btn; /* Inverse Square button */ 304 305 Widget cddb_lbl; /* CDDB options label */ 306 Widget mbrowser_lbl; /* Music browser label */ 307 Widget mbrowser_frm; /* Music browser frame */ 308 Widget lookup_lbl; /* Lookup priority label */ 309 Widget lookup_frm; /* Lookup priority frame */ 310 Widget cddb_sep1; /* Separator bar */ 311 Widget serv_tout_lbl; /* Service timeout label */ 312 Widget serv_tout_txt; /* Service timeout text */ 313 Widget cache_tout_lbl; /* Cache timeout label */ 314 Widget cache_tout_txt; /* Cache timeout text */ 315 Widget cddb_sep2; /* Separator bar */ 316 Widget use_proxy_btn; /* Use HTTP proxy server btn */ 317 Widget proxy_srvr_lbl; /* Proxy server label */ 318 Widget proxy_srvr_txt; /* Proxy server text */ 319 Widget proxy_port_lbl; /* Proxy port label */ 320 Widget proxy_port_txt; /* Proxy port text */ 321 Widget proxy_auth_btn; /* Proxy authorization btn */ 322 Widget cddb_nullmarker; 323 Widget mbrowser_radbox; /* Music browser radio box */ 324 Widget autobr_btn; /* Auto music browser */ 325 Widget manbr_btn; /* Manual music browser */ 326 Widget lookup_radbox; /* Lookup priority radio box */ 327 Widget cddb_pri_btn; /* CDDB priority button */ 328 Widget cdtext_pri_btn; /* CD-TEXT priority button */ 329 330 Widget options_sep; /* Separator bar */ 331 Widget reset_btn; /* Reset button */ 332 Widget save_btn; /* Save button */ 333 Widget ok_btn; /* OK button */ 334 } options; 335 336 /* CDDA Performance Monitor window widgets */ 337 struct { 338 Widget form; /* Form container */ 339 Widget speed_lbl; /* Speed factor label */ 340 Widget speed_ind; /* Speed factor indicator */ 341 Widget frames_lbl; /* Frames xfer'd label */ 342 Widget frames_ind; /* Frames xfer'd indicator */ 343 Widget fps_lbl; /* Frames per sec label */ 344 Widget fps_ind; /* Frames per sec indicator */ 345 Widget ttc_lbl; /* Time-to-completion label */ 346 Widget ttc_ind; /* Time-to-completion ind */ 347 Widget perfmon_sep; /* Separator bar */ 348 Widget cancel_btn; /* Cancel button */ 349 } perfmon; 350 351 /* CD Information/Program window widgets */ 352 struct { 353 Widget form; /* Form container */ 354 Widget tottime_ind; /* Total time indicator */ 355 Widget inetoffln_btn; /* Internet Offline button */ 356 Widget logo_lbl; /* Logo label */ 357 Widget dlist_btn; /* Disc list button */ 358 Widget artist_lbl; /* Disc artist label */ 359 Widget artist_txt; /* Disc artist text */ 360 Widget title_lbl; /* Disc title label */ 361 Widget title_txt; /* Disc title text */ 362 Widget fullname_btn; /* Artist fullname button */ 363 Widget extd_lbl; /* Disc label */ 364 Widget extd_btn; /* Disc details button */ 365 Widget dcredits_btn; /* Disc credits button */ 366 Widget segments_btn; /* Segments button */ 367 Widget dbprog_sep1; /* Separator bar */ 368 Widget trklist_lbl; /* Track list label */ 369 Widget trklist_sw; /* Track list scrolled window */ 370 Widget trk_list; /* Track list */ 371 Widget radio_lbl; /* Time dpy radio box label */ 372 Widget radio_frm; /* Time dpy radio box Frame */ 373 Widget radio_box; /* Time dpy radio box */ 374 Widget tottime_btn; /* Total time button */ 375 Widget trktime_btn; /* Track time button */ 376 Widget ttitle_lbl; /* Track title label */ 377 Widget ttitle_txt; /* Track title text */ 378 Widget apply_btn; /* Track title apply button */ 379 Widget extt_lbl; /* Track label */ 380 Widget extt_btn; /* Track details button */ 381 Widget tcredits_btn; /* Track credits button */ 382 Widget pgm_lbl; /* Program label */ 383 Widget addpgm_btn; /* Add program button */ 384 Widget clrpgm_btn; /* Clear program button */ 385 Widget savepgm_btn; /* Save program button */ 386 Widget pgmseq_lbl; /* Program sequence label */ 387 Widget pgmseq_txt; /* Program sequence text */ 388 Widget userreg_btn; /* User registration button */ 389 Widget dbprog_sep2; /* Separator bar */ 390 Widget submit_btn; /* CDDB submit button */ 391 Widget flush_btn; /* CDDB flush cache button */ 392 Widget reload_btn; /* Reload CD info button */ 393 Widget ok_btn; /* OK button */ 394 } dbprog; 395 396 /* Disc list window widgets */ 397 struct { 398 Widget form; /* Form container */ 399 Widget type_opt; /* List type option menu */ 400 Widget type_menu; /* List type pulldown menu */ 401 Widget menu_lbl; /* Menu title label */ 402 Widget menu_sep; /* Menu separator bar */ 403 Widget hist_btn; /* History menu button */ 404 Widget chgr_btn; /* Changer menu button */ 405 Widget disclist_lbl; /* Disc list label */ 406 Widget disclist_sw; /* Disc list scrolled window */ 407 Widget disc_list; /* Disc list */ 408 Widget show_btn; /* Show button */ 409 Widget goto_btn; /* Change to button */ 410 Widget del_btn; /* Delete button */ 411 Widget delall_btn; /* Delete all button */ 412 Widget rescan_btn; /* Re-scan button */ 413 Widget dlist_sep; /* Separator bar */ 414 Widget cancel_btn; /* Cancel button */ 415 } dlist; 416 417 /* Full name window widgets */ 418 struct { 419 Widget form; /* Form container */ 420 Widget head_lbl; /* Head label */ 421 Widget dispname_lbl; /* display name label */ 422 Widget dispname_txt; /* display name label */ 423 Widget autogen_btn; /* auto-gen button */ 424 Widget lastname_lbl; /* last name label */ 425 Widget lastname_txt; /* last name label */ 426 Widget firstname_lbl; /* first name label */ 427 Widget firstname_txt; /* first name label */ 428 Widget the_btn; /* "The" togglebutton */ 429 Widget the_txt; /* "The" text */ 430 Widget fullname_sep; /* Separator bar */ 431 Widget ok_btn; /* OK button */ 432 } fullname; 433 434 /* Disc details window widgets */ 435 struct { 436 Widget form; /* Form container */ 437 Widget discno_lbl; /* Disc number label */ 438 Widget disc_lbl; /* Disc artist/title label */ 439 Widget dbextd_sep; /* Separator bar */ 440 Widget album_lbl; /* Album label */ 441 Widget sorttitle_lbl; /* Sort title label */ 442 Widget sorttitle_txt; /* Sort title text */ 443 Widget the_btn; /* The togglebutton */ 444 Widget the_txt; /* The text */ 445 Widget year_lbl; /* Year label */ 446 Widget year_txt; /* Year text */ 447 Widget label_lbl; /* Label label */ 448 Widget label_txt; /* Label text */ 449 Widget comp_btn; /* Compilation button */ 450 Widget genre_opt[2]; /* Genre option menu */ 451 Widget genre_menu[2]; /* Genre pulldown menu */ 452 Widget genre_lbl[2]; /* Genre menu label */ 453 Widget genre_sep[2]; /* Genre menu separator */ 454 Widget genre_none_btn[2]; /* Genre "none" button */ 455 Widget subgenre_opt[2]; /* Subgenre option menu */ 456 Widget subgenre_menu[2]; /* Subgenre pulldown menu */ 457 Widget subgenre_lbl[2]; /* Subgenre menu label */ 458 Widget subgenre_sep[2]; /* Subgenre menu separator */ 459 Widget subgenre_none_btn[2]; /* Subgenre "none" button */ 460 Widget dnum_lbl; /* Disc number in set label */ 461 Widget dnum_txt; /* Disc number in set text */ 462 Widget of_lbl; /* "of" label */ 463 Widget tnum_txt; /* Total number in set text */ 464 Widget region_lbl; /* Region label */ 465 Widget region_txt; /* Region text */ 466 Widget region_chg_btn; /* Region change button */ 467 Widget lang_lbl; /* Language label */ 468 Widget lang_txt; /* Language text */ 469 Widget lang_chg_btn; /* Language change button */ 470 Widget dbextd_sep2; /* Separator bar */ 471 Widget notes_lbl; /* Disc notes label */ 472 Widget notes_txt; /* Disc notes text */ 473 Widget discid_lbl; /* Xmcd disc ID label */ 474 Widget discid_ind; /* Xmcd disc ID ind label */ 475 Widget mcn_lbl; /* Media catalog # label */ 476 Widget mcn_ind; /* Media catalog # ind label */ 477 Widget rev_lbl; /* Revision label */ 478 Widget rev_ind; /* Revision ind label */ 479 Widget cert_lbl; /* Certifier label */ 480 Widget cert_ind; /* Certifier ind label */ 481 Widget dbextd_sep3; /* Separator bar */ 482 Widget ok_btn; /* OK button */ 483 } dbextd; 484 485 /* Track details window widgets */ 486 struct { 487 Widget form; /* Form container */ 488 Widget autotrk_btn; /* Auto-track button */ 489 Widget prev_btn; /* Prev track arrow button */ 490 Widget next_btn; /* Next track arrow button */ 491 Widget trkno_lbl; /* Track number label */ 492 Widget trk_lbl; /* Track title label */ 493 Widget dbextt_sep; /* Separator bar */ 494 Widget sorttitle_lbl; /* Sort title label */ 495 Widget sorttitle_txt; /* Sort title text */ 496 Widget the_btn; /* The togglebutton */ 497 Widget the_txt; /* The text */ 498 Widget artist_lbl; /* Artist label */ 499 Widget artist_txt; /* Artist text */ 500 Widget fullname_btn; /* Artist full name button */ 501 Widget year_lbl; /* Year label */ 502 Widget year_txt; /* Year text */ 503 Widget label_lbl; /* Label label */ 504 Widget label_txt; /* Label text */ 505 Widget bpm_lbl; /* BPM label */ 506 Widget bpm_txt; /* BPM text */ 507 Widget genre_opt[2]; /* Genre option menu */ 508 Widget genre_menu[2]; /* Genre pulldown menu */ 509 Widget genre_lbl[2]; /* Genre menu label */ 510 Widget genre_sep[2]; /* Genre menu separator */ 511 Widget genre_none_btn[2]; /* Genre "none" button */ 512 Widget subgenre_opt[2]; /* Subgenre option menu */ 513 Widget subgenre_menu[2]; /* Subgenre pulldown menu */ 514 Widget subgenre_lbl[2]; /* Subgenre menu label */ 515 Widget subgenre_sep[2]; /* Subgenre menu separator */ 516 Widget subgenre_none_btn[2]; /* Subgenre "none" button */ 517 Widget dbextt_sep2; /* Separator bar */ 518 Widget notes_lbl; /* Track notes label */ 519 Widget notes_txt; /* Track notes text */ 520 Widget isrc_lbl; /* ISRC label */ 521 Widget isrc_ind; /* ISRC indicator label */ 522 Widget dbextt_sep3; /* Separator bar */ 523 Widget ok_btn; /* OK button */ 524 } dbextt; 525 526 /* Credits list/editor window */ 527 struct { 528 Widget form; /* Form container */ 529 Widget autotrk_btn; /* Auto-track button */ 530 Widget prev_btn; /* Prev track arrow button */ 531 Widget next_btn; /* Next track arrow button */ 532 Widget disctrk_lbl; /* Disc/track number label */ 533 Widget title_lbl; /* Title label */ 534 Widget credlist_lbl; /* Credit list label */ 535 Widget cred_list; /* Credit list */ 536 Widget cred_sep1; /* Separator */ 537 Widget crededit_lbl; /* Credit editor label */ 538 Widget prirole_opt; /* Role option menu */ 539 Widget prirole_menu; /* Role pulldown menu */ 540 Widget prirole_lbl; /* Role menu label */ 541 Widget prirole_sep; /* Role menu separator */ 542 Widget prirole_none_btn; /* Role "none" button */ 543 Widget subrole_opt; /* Subrole option menu */ 544 Widget subrole_menu; /* Subrole pulldown menu */ 545 Widget subrole_lbl; /* Subrole menu label */ 546 Widget subrole_sep; /* Subrole menu separator */ 547 Widget subrole_none_btn; /* Subrole "none" button */ 548 Widget name_lbl; /* Name label */ 549 Widget name_txt; /* Name text */ 550 Widget fullname_btn; /* Full name button */ 551 Widget notes_lbl; /* Notes label */ 552 Widget notes_txt; /* Notes text */ 553 Widget cred_sep2; /* Separator */ 554 Widget add_btn; /* Add button */ 555 Widget mod_btn; /* Modify button */ 556 Widget del_btn; /* Delete button */ 557 Widget ok_btn; /* OK button */ 558 } credits; 559 560 /* Segments list/editor window */ 561 struct { 562 Widget form; /* Form container */ 563 Widget discno_lbl; /* Disc number label */ 564 Widget disc_lbl; /* Disc artist/title label */ 565 Widget seglist_lbl; /* Segment list label */ 566 Widget seg_list; /* Segment list */ 567 Widget seg_sep1; /* Separator bar */ 568 Widget segedit_lbl; /* Segment editor label */ 569 Widget name_lbl; /* Segment name label */ 570 Widget name_txt; /* Segment name text */ 571 Widget start_lbl; /* Start label */ 572 Widget end_lbl; /* End label */ 573 Widget track_lbl; /* Track label */ 574 Widget frame_lbl; /* Frame label */ 575 Widget starttrk_txt; /* Start track text */ 576 Widget startfrm_txt; /* Start frame text */ 577 Widget endtrk_txt; /* End track text */ 578 Widget endfrm_txt; /* End frame text */ 579 Widget startptr_lbl; /* Start pointer label */ 580 Widget endptr_lbl; /* End pointer label */ 581 Widget playset_lbl; /* Play-set label */ 582 Widget set_btn; /* Set button */ 583 Widget playpaus_btn; /* Play pause button */ 584 Widget stop_btn; /* Stop button */ 585 Widget notes_lbl; /* Segment notes label */ 586 Widget notes_txt; /* Segment notes text */ 587 Widget segment_lbl; /* Segment label */ 588 Widget credits_btn; /* Credits button */ 589 Widget seg_sep2; /* Separator bar */ 590 Widget add_btn; /* Add button */ 591 Widget mod_btn; /* Modify button */ 592 Widget del_btn; /* Delete button */ 593 Widget ok_btn; /* OK button */ 594 } segments; 595 596 /* Submit URL window */ 597 struct { 598 Widget form; /* Form container */ 599 Widget logo_lbl; /* Logo label */ 600 Widget heading_lbl; /* Heading label */ 601 Widget categ_lbl; /* Category label */ 602 Widget categ_txt; /* Category text */ 603 Widget name_lbl; /* Name label */ 604 Widget name_txt; /* Name text */ 605 Widget url_lbl; /* URL label */ 606 Widget url_txt; /* URL text */ 607 Widget desc_lbl; /* Description label */ 608 Widget desc_txt; /* Description text */ 609 Widget submiturl_sep; /* Separator bar */ 610 Widget submit_btn; /* Submit button */ 611 Widget ok_btn; /* OK button */ 612 } submiturl; 613 614 /* Region selector window widgets */ 615 struct { 616 Widget form; /* Form container */ 617 Widget region_lbl; /* Region list label */ 618 Widget region_list; /* Region list */ 619 Widget region_sep; /* Separator bar */ 620 Widget ok_btn; /* OK button */ 621 } regionsel; 622 623 /* Language selector window widgets */ 624 struct { 625 Widget form; /* Form container */ 626 Widget lang_lbl; /* Language list label */ 627 Widget lang_list; /* Language list */ 628 Widget lang_sep; /* Separator bar */ 629 Widget ok_btn; /* OK button */ 630 } langsel; 631 632 /* Multiple match selector window widgets */ 633 struct { 634 Widget form; /* Form container */ 635 Widget logo_lbl; /* Match list logo label */ 636 Widget matchsel_lbl; /* Match list label */ 637 Widget matchsel_list; /* Match list */ 638 Widget matchsel_sep; /* Separator bar */ 639 Widget ok_btn; /* OK button */ 640 } matchsel; 641 642 /* wwwWarp popup menu widgets */ 643 struct { 644 Widget menu; /* Main popup menu */ 645 Widget genurls_menu; /* General URLs menu */ 646 Widget discurls_menu; /* Album-specific URLs menu */ 647 } wwwwarp; 648 649 /* User registration window widgets */ 650 struct { 651 Widget form; /* Form container */ 652 Widget logo_lbl; /* Logo label */ 653 Widget caption_lbl; /* Caption label */ 654 Widget handle_lbl; /* Handle label */ 655 Widget handle_txt; /* Handle text */ 656 Widget passwd_lbl; /* Password label */ 657 Widget passwd_txt; /* Password text */ 658 Widget vpasswd_lbl; /* Verify password label */ 659 Widget vpasswd_txt; /* Verify password text */ 660 Widget hint_lbl; /* Password hint label */ 661 Widget hint_txt; /* Password hint text */ 662 Widget gethint_btn; /* Get hint button */ 663 Widget email_lbl; /* Email addr label */ 664 Widget email_txt; /* Email addr text */ 665 Widget region_lbl; /* Region label */ 666 Widget region_txt; /* Region text */ 667 Widget region_chg_btn; /* Region change button */ 668 Widget postal_lbl; /* Postal code label */ 669 Widget postal_txt; /* Postal code text */ 670 Widget age_lbl; /* Age label */ 671 Widget age_txt; /* Age text */ 672 Widget gender_lbl; /* Gender label */ 673 Widget gender_frm; /* Gender frame */ 674 Widget gender_radbox; /* Gender radio box */ 675 Widget male_btn; /* Male button */ 676 Widget female_btn; /* Female button */ 677 Widget unspec_btn; /* Unspecified button */ 678 Widget allowmail_btn; /* Allow mail toggle button */ 679 Widget allowstats_btn; /* Allow stats toggle button */ 680 Widget userreg_sep; /* separator bar */ 681 Widget ok_btn; /* OK button */ 682 Widget priv_btn; /* Privacy info button */ 683 Widget cancel_btn; /* Cancel button */ 684 } userreg; 685 686 /* Help window widgets */ 687 struct { 688 Widget form; /* Form container */ 689 Widget topic_opt; /* Topic option menu */ 690 Widget topic_menu; /* Topic pulldown menu */ 691 Widget topic_lbl; /* Topic menu label */ 692 Widget topic_sep; /* Topic menu separator */ 693 Widget online_btn; /* Online Help button */ 694 Widget topic_sep2; /* Topic menu separator2 */ 695 Widget help_txt; /* Help text */ 696 Widget help_sep; /* Separator bar */ 697 Widget about_btn; /* About button */ 698 Widget cancel_btn; /* Cancel button */ 699 } help; 700 701 /* Authorization window widgets */ 702 struct { 703 Widget form; /* Form container */ 704 Widget auth_lbl; /* Authorization label */ 705 Widget name_lbl; /* Name label */ 706 Widget name_txt; /* Name text */ 707 Widget pass_lbl; /* Password label */ 708 Widget pass_txt; /* Password text */ 709 Widget auth_sep; /* Separator bar */ 710 Widget ok_btn; /* OK button */ 711 Widget cancel_btn; /* Cancel button */ 712 } auth; 713 714 /* Dialog windows widgets */ 715 struct { 716 Widget info; /* Info popup */ 717 Widget info2; /* Info2 popup */ 718 Widget info2_txt; /* Info2 text widget */ 719 Widget warning; /* Warning popup */ 720 Widget fatal; /* Fatal error popup */ 721 Widget confirm; /* Confirm popup */ 722 Widget working; /* Working popup */ 723 Widget about; /* About popup */ 724 } dialog; 725 726 /* Tooltip shell widgets */ 727 struct { 728 Widget shell; /* Shell */ 729 Widget tooltip_lbl; /* Tool-tip label */ 730 } tooltip; 731 } widgets_t; 732 733 734 /* Holder for all button-face pixmaps */ 735 typedef struct { 736 /* Main window pixmaps */ 737 struct { 738 Pixmap icon_pixmap; /* Icon logo */ 739 Pixmap mode_pixmap; /* Mode */ 740 Pixmap mode_hlpixmap; /* Mode */ 741 Pixmap lock_pixmap; /* Prevent caddy removal */ 742 Pixmap repeat_pixmap; /* Repeat */ 743 Pixmap shuffle_pixmap; /* Shuffle */ 744 Pixmap eject_pixmap; /* Eject */ 745 Pixmap eject_hlpixmap; /* Eject */ 746 Pixmap quit_pixmap; /* Quit */ 747 Pixmap quit_hlpixmap; /* Quit */ 748 Pixmap dbprog_pixmap; /* CDDB/Prog */ 749 Pixmap dbprog_hlpixmap; /* CDDB/Prog */ 750 Pixmap options_pixmap; /* Options */ 751 Pixmap options_hlpixmap; /* Options */ 752 Pixmap ab_pixmap; /* A->B */ 753 Pixmap ab_hlpixmap; /* A->B */ 754 Pixmap sample_pixmap; /* Sample */ 755 Pixmap sample_hlpixmap; /* Sample */ 756 Pixmap time_pixmap; /* Time */ 757 Pixmap time_hlpixmap; /* Time */ 758 Pixmap keypad_pixmap; /* Keypad */ 759 Pixmap keypad_hlpixmap; /* Keypad */ 760 Pixmap world_pixmap; /* wwwWarp */ 761 Pixmap world_hlpixmap; /* wwwWarp */ 762 Pixmap playpause_pixmap; /* Play/Pause */ 763 Pixmap playpause_hlpixmap; /* Play/Pause */ 764 Pixmap stop_pixmap; /* Stop */ 765 Pixmap stop_hlpixmap; /* Stop */ 766 Pixmap prevdisc_pixmap; /* Prev Disc */ 767 Pixmap prevdisc_hlpixmap; /* Prev Disc */ 768 Pixmap nextdisc_pixmap; /* Next Disc */ 769 Pixmap nextdisc_hlpixmap; /* Next Disc */ 770 Pixmap prevtrk_pixmap; /* Prev Track */ 771 Pixmap prevtrk_hlpixmap; /* Prev Track */ 772 Pixmap nexttrk_pixmap; /* Next Track */ 773 Pixmap nexttrk_hlpixmap; /* Next Track */ 774 Pixmap previdx_pixmap; /* Prev Index */ 775 Pixmap previdx_hlpixmap; /* Prev Index */ 776 Pixmap nextidx_pixmap; /* Next Index */ 777 Pixmap nextidx_hlpixmap; /* Next Index */ 778 Pixmap rew_pixmap; /* Search REW */ 779 Pixmap rew_hlpixmap; /* Search REW */ 780 Pixmap ff_pixmap; /* Search FF */ 781 Pixmap ff_hlpixmap; /* Search FF */ 782 } main; 783 784 /* CD Information/Program window pixmaps */ 785 struct { 786 Pixmap logo_pixmap; /* CD Logo */ 787 } dbprog; 788 789 /* CD Match window pixmaps */ 790 struct { 791 Pixmap logo_pixmap; /* CDDB Logo */ 792 } matchsel; 793 794 /* User registration window pixmaps */ 795 struct { 796 Pixmap logo_pixmap; /* CDDB Logo */ 797 } userreg; 798 799 /* Segments window pixmaps */ 800 struct { 801 Pixmap playpause_pixmap; /* Play/Pause */ 802 Pixmap playpause_hlpixmap; /* Play/Pause */ 803 Pixmap stop_pixmap; /* Stop */ 804 Pixmap stop_hlpixmap; /* Stop */ 805 } segments; 806 807 /* SubmitURL window pixmaps */ 808 struct { 809 Pixmap logo_pixmap; /* CDDB Logo */ 810 } submiturl; 811 812 /* Dialog windows pixmaps */ 813 struct { 814 Pixmap about_pixmap; /* Program logo */ 815 } dialog; 816 } pixmaps_t; 817 818 819 /* Mode flags for bm_to_px(): used to set foreground/background colors */ 820 #define BM_PX_NORMAL 0 /* normal/normal */ 821 #define BM_PX_REV 1 /* reverse/reverse */ 822 #define BM_PX_HIGHLIGHT 2 /* highlight/normal */ 823 #define BM_PX_WHITE 3 /* white/normal */ 824 #define BM_PX_BLACK 4 /* black/normal */ 825 #define BM_PX_BW 5 /* black/white */ 826 #define BM_PX_BWREV 6 /* white/black */ 827 828 829 /* Public function prototypes */ 830 extern Pixmap bm_to_px(Widget, void *, int, int, int, int); 831 extern void create_widgets(widgets_t *); 832 extern void pre_realize_config(widgets_t *); 833 extern void post_realize_config(widgets_t *, pixmaps_t *); 834 835 #endif /* __WIDGET_H__ */ 836 837