home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-12-19 | 62.9 KB | 2,382 lines |
- Newsgroups: comp.sources.x
- From: ti@bazooka.amb.org (Ti Kan)
- Subject: v21i069: xmcd - X11/Motif CD audio player, Part07/13
- Message-ID: <1993Dec19.193933.24365@sparky.sterling.com>
- X-Md4-Signature: 6d3557461018beb21f8016564c0253a1
- Sender: chris@sparky.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Sun, 19 Dec 1993 19:39:33 GMT
- Approved: chris@sterling.com
-
- Submitted-by: ti@bazooka.amb.org (Ti Kan)
- Posting-number: Volume 21, Issue 69
- Archive-name: xmcd/part07
- Environment: X11, OSF/Motif
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 7 (of 13)."
- # Contents: geometry.c help.c hotkey.c
- # Wrapped by ti@bazooka on Mon Nov 8 10:35:20 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'geometry.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'geometry.c'\"
- else
- echo shar: Extracting \"'geometry.c'\" \(36037 characters\)
- sed "s/^X//" >'geometry.c' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef LINT
- Xstatic char *_geometry_c_ident_ = "@(#)geometry.c 1.45 93/09/28";
- X#endif
- X
- X#include <Xm/Xm.h>
- X#include <Xm/MessageB.h>
- X#include "xmcd.h"
- X#include "widget.h"
- X#include "geometry.h"
- X
- X
- Xextern AppData app_data;
- X
- X
- X/*
- X * force_main_geometry
- X * Set the geometry of the widgets in the main window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_main_geometry(widgets_t *m)
- X{
- X XmString dash = XmStringCreateSimple("-");
- X
- X
- X /* Main window widgets */
- X
- X XtVaSetValues(m->main.chkbox_frm,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_CHECKBOX,
- X XmNrightPosition, RIGHT_CHECKBOX,
- X XmNtopPosition, TOP_CHECKBOX,
- X XmNbottomPosition, BOTTOM_CHECKBOX,
- X XmNshadowType, XmSHADOW_OUT,
- X NULL
- X );
- X XtVaSetValues(m->main.btnlbl_btn,
- X XmNheight, 16,
- X XmNrecomputeSize, False,
- X NULL
- X );
- X if (!app_data.main_showfocus) {
- X XtVaSetValues(m->main.btnlbl_btn,
- X XmNhighlightThickness, 0,
- X NULL
- X );
- X }
- X XtVaSetValues(m->main.lock_btn,
- X XmNheight, 16,
- X XmNrecomputeSize, False,
- X NULL
- X );
- X if (!app_data.main_showfocus) {
- X XtVaSetValues(m->main.lock_btn,
- X XmNhighlightThickness, 0,
- X NULL
- X );
- X }
- X XtVaSetValues(m->main.repeat_btn,
- X XmNheight, 16,
- X XmNrecomputeSize, False,
- X NULL
- X );
- X if (!app_data.main_showfocus) {
- X XtVaSetValues(m->main.repeat_btn,
- X XmNhighlightThickness, 0,
- X NULL
- X );
- X }
- X XtVaSetValues(m->main.shuffle_btn,
- X XmNheight, 16,
- X XmNrecomputeSize, False,
- X NULL
- X );
- X if (!app_data.main_showfocus) {
- X XtVaSetValues(m->main.shuffle_btn,
- X XmNhighlightThickness, 0,
- X NULL
- X );
- X }
- X XtVaSetValues(m->main.eject_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EJECT,
- X XmNrightPosition, RIGHT_EJECT,
- X XmNtopPosition, TOP_EJECT,
- X XmNbottomPosition, BOTTOM_EJECT,
- X NULL
- X );
- X XtVaSetValues(m->main.poweroff_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_POWEROFF,
- X XmNrightPosition, RIGHT_POWEROFF,
- X XmNtopPosition, TOP_POWEROFF,
- X XmNbottomPosition, BOTTOM_POWEROFF,
- X NULL
- X );
- X XtVaSetValues(m->main.track_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TRACKIND,
- X XmNrightPosition, RIGHT_TRACKIND,
- X XmNtopPosition, TOP_TRACKIND,
- X XmNbottomPosition, BOTTOM_TRACKIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.index_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_INDEXIND,
- X XmNrightPosition, RIGHT_INDEXIND,
- X XmNtopPosition, TOP_INDEXIND,
- X XmNbottomPosition, BOTTOM_INDEXIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.time_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TIMEIND,
- X XmNrightPosition, RIGHT_TIMEIND,
- X XmNtopPosition, TOP_TIMEIND,
- X XmNbottomPosition, BOTTOM_TIMEIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.dbmode_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DBMODEIND,
- X XmNrightPosition, RIGHT_DBMODEIND,
- X XmNtopPosition, TOP_DBMODEIND,
- X XmNbottomPosition, BOTTOM_DBMODEIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.progmode_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PROGMODEIND,
- X XmNrightPosition, RIGHT_PROGMODEIND,
- X XmNtopPosition, TOP_PROGMODEIND,
- X XmNbottomPosition, BOTTOM_PROGMODEIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.timemode_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TIMEMODEIND,
- X XmNrightPosition, RIGHT_TIMEMODEIND,
- X XmNtopPosition, TOP_TIMEMODEIND,
- X XmNbottomPosition, BOTTOM_TIMEMODEIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.playmode_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PLAYMODEIND,
- X XmNrightPosition, RIGHT_PLAYMODEIND,
- X XmNtopPosition, TOP_PLAYMODEIND,
- X XmNbottomPosition, BOTTOM_PLAYMODEIND,
- X XmNlabelString, dash,
- X NULL
- X );
- X XtVaSetValues(m->main.dbprog_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DBPROG,
- X XmNrightPosition, RIGHT_DBPROG,
- X XmNtopPosition, TOP_DBPROG,
- X XmNbottomPosition, BOTTOM_DBPROG,
- X NULL
- X );
- X XtVaSetValues(m->main.time_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TIME,
- X XmNrightPosition, RIGHT_TIME,
- X XmNtopPosition, TOP_TIME,
- X XmNbottomPosition, BOTTOM_TIME,
- X NULL
- X );
- X XtVaSetValues(m->main.ab_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_AB,
- X XmNrightPosition, RIGHT_AB,
- X XmNtopPosition, TOP_AB,
- X XmNbottomPosition, BOTTOM_AB,
- X NULL
- X );
- X XtVaSetValues(m->main.sample_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_SAMPLE,
- X XmNrightPosition, RIGHT_SAMPLE,
- X XmNtopPosition, TOP_SAMPLE,
- X XmNbottomPosition, BOTTOM_SAMPLE,
- X NULL
- X );
- X XtVaSetValues(m->main.keypad_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEYPAD,
- X XmNrightPosition, RIGHT_KEYPAD,
- X XmNtopPosition, TOP_KEYPAD,
- X XmNbottomPosition, BOTTOM_KEYPAD,
- X NULL
- X );
- X XtVaSetValues(m->main.help_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_HELP,
- X XmNrightPosition, RIGHT_HELP,
- X XmNtopPosition, TOP_HELP,
- X XmNbottomPosition, BOTTOM_HELP,
- X NULL
- X );
- X XtVaSetValues(m->main.level_scale,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_LEVEL,
- X XmNrightPosition, RIGHT_LEVEL,
- X XmNtopPosition, TOP_LEVEL,
- X XmNbottomPosition, BOTTOM_LEVEL,
- X XmNshowValue, True,
- X XmNorientation, XmHORIZONTAL,
- X XmNprocessingDirection, XmMAX_ON_RIGHT,
- X NULL
- X );
- X XtVaSetValues(m->main.playpause_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PLAYPAUSE,
- X XmNrightPosition, RIGHT_PLAYPAUSE,
- X XmNtopPosition, TOP_PLAYPAUSE,
- X XmNbottomPosition, BOTTOM_PLAYPAUSE,
- X NULL
- X );
- X XtVaSetValues(m->main.stop_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_STOP,
- X XmNrightPosition, RIGHT_STOP,
- X XmNtopPosition, TOP_STOP,
- X XmNbottomPosition, BOTTOM_STOP,
- X NULL
- X );
- X XtVaSetValues(m->main.prevtrk_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PREVTRK,
- X XmNrightPosition, RIGHT_PREVTRK,
- X XmNtopPosition, TOP_PREVTRK,
- X XmNbottomPosition, BOTTOM_PREVTRK,
- X NULL
- X );
- X XtVaSetValues(m->main.nexttrk_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_NEXTTRK,
- X XmNrightPosition, RIGHT_NEXTTRK,
- X XmNtopPosition, TOP_NEXTTRK,
- X XmNbottomPosition, BOTTOM_NEXTTRK,
- X NULL
- X );
- X XtVaSetValues(m->main.previdx_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PREVIDX,
- X XmNrightPosition, RIGHT_PREVIDX,
- X XmNtopPosition, TOP_PREVIDX,
- X XmNbottomPosition, BOTTOM_PREVIDX,
- X NULL
- X );
- X XtVaSetValues(m->main.nextidx_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_NEXTIDX,
- X XmNrightPosition, RIGHT_NEXTIDX,
- X XmNtopPosition, TOP_NEXTIDX,
- X XmNbottomPosition, BOTTOM_NEXTIDX,
- X NULL
- X );
- X XtVaSetValues(m->main.rew_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_REW,
- X XmNrightPosition, RIGHT_REW,
- X XmNtopPosition, TOP_REW,
- X XmNbottomPosition, BOTTOM_REW,
- X NULL
- X );
- X XtVaSetValues(m->main.ff_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_FF,
- X XmNrightPosition, RIGHT_FF,
- X XmNtopPosition, TOP_FF,
- X XmNbottomPosition, BOTTOM_FF,
- X NULL
- X );
- X
- X XmStringFree(dash);
- X}
- X
- X
- X/*
- X * force_keypad_geometry
- X * Set the geometry of the widgets in the keypad window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_keypad_geometry(widgets_t *m)
- X{
- X /* Keypad popup window widgets */
- X
- X XtVaSetValues(m->keypad.keypad_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEYPADLBL,
- X XmNrightPosition, RIGHT_KEYPADLBL,
- X XmNtopPosition, TOP_KEYPADLBL,
- X XmNbottomPosition, BOTTOM_KEYPADLBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.keypad_ind,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEYPADIND,
- X XmNrightPosition, RIGHT_KEYPADIND,
- X XmNtopPosition, TOP_KEYPADIND,
- X XmNbottomPosition, BOTTOM_KEYPADIND,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[0],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY0,
- X XmNrightPosition, RIGHT_KEY0,
- X XmNtopPosition, TOP_KEY0,
- X XmNbottomPosition, BOTTOM_KEY0,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[1],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY1,
- X XmNrightPosition, RIGHT_KEY1,
- X XmNtopPosition, TOP_KEY1,
- X XmNbottomPosition, BOTTOM_KEY1,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[2],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY2,
- X XmNrightPosition, RIGHT_KEY2,
- X XmNtopPosition, TOP_KEY2,
- X XmNbottomPosition, BOTTOM_KEY2,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[3],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY3,
- X XmNrightPosition, RIGHT_KEY3,
- X XmNtopPosition, TOP_KEY3,
- X XmNbottomPosition, BOTTOM_KEY3,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[4],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY4,
- X XmNrightPosition, RIGHT_KEY4,
- X XmNtopPosition, TOP_KEY4,
- X XmNbottomPosition, BOTTOM_KEY4,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[5],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY5,
- X XmNrightPosition, RIGHT_KEY5,
- X XmNtopPosition, TOP_KEY5,
- X XmNbottomPosition, BOTTOM_KEY5,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[6],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY6,
- X XmNrightPosition, RIGHT_KEY6,
- X XmNtopPosition, TOP_KEY6,
- X XmNbottomPosition, BOTTOM_KEY6,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[7],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY7,
- X XmNrightPosition, RIGHT_KEY7,
- X XmNtopPosition, TOP_KEY7,
- X XmNbottomPosition, BOTTOM_KEY7,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[8],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY8,
- X XmNrightPosition, RIGHT_KEY8,
- X XmNtopPosition, TOP_KEY8,
- X XmNbottomPosition, BOTTOM_KEY8,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.num_btn[9],
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_KEY9,
- X XmNrightPosition, RIGHT_KEY9,
- X XmNtopPosition, TOP_KEY9,
- X XmNbottomPosition, BOTTOM_KEY9,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.enter_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_ENTER,
- X XmNrightPosition, RIGHT_ENTER,
- X XmNtopPosition, TOP_ENTER,
- X XmNbottomPosition, BOTTOM_ENTER,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.keypad_sep,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_KEYPADSEP,
- X XmNrightPosition, RIGHT_KEYPADSEP,
- X XmNtopPosition, TOP_KEYPADSEP,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.cancel_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_KPCANCEL,
- X XmNrightPosition, RIGHT_KPCANCEL,
- X XmNtopPosition, TOP_KPCANCEL,
- X NULL
- X );
- X
- X XtVaSetValues(m->keypad.clear_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_KPCLEAR,
- X XmNrightPosition, RIGHT_KPCLEAR,
- X XmNtopPosition, TOP_KPCLEAR,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_dbprog_geometry
- X * Set the geometry of the widgets in the database/program window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_dbprog_geometry(widgets_t *m)
- X{
- X /* CD program/database popup window widgets */
- X
- X XtVaSetValues(m->dbprog.logo_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_LOGO,
- X XmNrightPosition, RIGHT_LOGO,
- X XmNtopPosition, TOP_LOGO,
- X XmNbottomPosition, BOTTOM_LOGO,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.about_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_ABOUT,
- X XmNrightPosition, RIGHT_ABOUT,
- X XmNtopPosition, TOP_ABOUT,
- X XmNbottomPosition, BOTTOM_ABOUT,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.dtitle_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DTITLELBL,
- X XmNrightPosition, RIGHT_DTITLELBL,
- X XmNtopPosition, TOP_DTITLELBL,
- X XmNbottomPosition, BOTTOM_DTITLELBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.extd_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EXTDLBL,
- X XmNrightPosition, RIGHT_EXTDLBL,
- X XmNtopPosition, TOP_EXTDLBL,
- X XmNbottomPosition, BOTTOM_EXTDLBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.dtitle_txt,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DTITLE,
- X XmNrightPosition, RIGHT_DTITLE,
- X XmNtopPosition, TOP_DTITLE,
- X XmNbottomPosition, BOTTOM_DTITLE,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.extd_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EXTD,
- X XmNrightPosition, RIGHT_EXTD,
- X XmNtopPosition, TOP_EXTD,
- X XmNbottomPosition, BOTTOM_EXTD,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.dbprog_sep1,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DBPROGSEP1,
- X XmNrightPosition, RIGHT_DBPROGSEP1,
- X XmNtopPosition, TOP_DBPROGSEP1,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.trklist_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TRKLISTLBL,
- X XmNrightPosition, RIGHT_TRKLISTLBL,
- X XmNtopPosition, TOP_TRKLISTLBL,
- X XmNbottomPosition, BOTTOM_TRKLISTLBL,
- X NULL
- X );
- X
- X XtVaSetValues(XtParent(m->dbprog.trk_list),
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TRKLIST,
- X XmNrightPosition, RIGHT_TRKLIST,
- X XmNtopPosition, TOP_TRKLIST,
- X XmNbottomPosition, BOTTOM_TRKLIST,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.radio_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_RADIOLBL,
- X XmNrightPosition, RIGHT_RADIOLBL,
- X XmNtopPosition, TOP_RADIOLBL,
- X XmNbottomPosition, BOTTOM_RADIOLBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.radio_frm,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_RADIOBOX,
- X XmNrightPosition, RIGHT_RADIOBOX,
- X XmNtopPosition, TOP_RADIOBOX,
- X XmNbottomPosition, BOTTOM_RADIOBOX,
- X XmNshadowType, XmSHADOW_IN,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.tottime_btn,
- X XmNheight, 16,
- X XmNrecomputeSize, False,
- X NULL
- X );
- X XtVaSetValues(m->dbprog.trktime_btn,
- X XmNheight, 16,
- X XmNrecomputeSize, False,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.ttitle_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TTITLELBL,
- X XmNrightPosition, RIGHT_TTITLELBL,
- X XmNtopPosition, TOP_TTITLELBL,
- X XmNbottomPosition, BOTTOM_TTITLELBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.extt_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EXTTLBL,
- X XmNrightPosition, RIGHT_EXTTLBL,
- X XmNtopPosition, TOP_EXTTLBL,
- X XmNbottomPosition, BOTTOM_EXTTLBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.ttitle_txt,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TTITLE,
- X XmNrightPosition, RIGHT_TTITLE,
- X XmNtopPosition, TOP_TTITLE,
- X XmNbottomPosition, BOTTOM_TTITLE,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.extt_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EXTT,
- X XmNrightPosition, RIGHT_EXTT,
- X XmNtopPosition, TOP_EXTT,
- X XmNbottomPosition, BOTTOM_EXTT,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.pgm_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PGMLBL,
- X XmNrightPosition, RIGHT_PGMLBL,
- X XmNtopPosition, TOP_PGMLBL,
- X XmNbottomPosition, BOTTOM_PGMLBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.addpgm_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_ADDPGM,
- X XmNrightPosition, RIGHT_ADDPGM,
- X XmNtopPosition, TOP_ADDPGM,
- X XmNbottomPosition, BOTTOM_ADDPGM,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.clrpgm_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_CLRPGM,
- X XmNrightPosition, RIGHT_CLRPGM,
- X XmNtopPosition, TOP_CLRPGM,
- X XmNbottomPosition, BOTTOM_CLRPGM,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.playpgm_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PLAYPGM,
- X XmNrightPosition, RIGHT_PLAYPGM,
- X XmNtopPosition, TOP_PLAYPGM,
- X XmNbottomPosition, BOTTOM_PLAYPGM,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.pgmseq_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PGMSEQLBL,
- X XmNrightPosition, RIGHT_PGMSEQLBL,
- X XmNtopPosition, TOP_PGMSEQLBL,
- X XmNbottomPosition, BOTTOM_PGMSEQLBL,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.pgmseq_txt,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_PGMSEQ,
- X XmNrightPosition, RIGHT_PGMSEQ,
- X XmNtopPosition, TOP_PGMSEQ,
- X XmNbottomPosition, BOTTOM_PGMSEQ,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.dbprog_sep2,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DBPROGSEP2,
- X XmNrightPosition, RIGHT_DBPROGSEP2,
- X XmNtopPosition, TOP_DBPROGSEP2,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.savedb_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_SAVEDB,
- X XmNrightPosition, RIGHT_SAVEDB,
- X XmNtopPosition, TOP_SAVEDB,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.loaddb_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_LOADDB,
- X XmNrightPosition, RIGHT_LOADDB,
- X XmNtopPosition, TOP_LOADDB,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.linkdb_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_LINK,
- X XmNrightPosition, RIGHT_LINK,
- X XmNtopPosition, TOP_LINK,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbprog.cancel_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DPCANCEL,
- X XmNrightPosition, RIGHT_DPCANCEL,
- X XmNtopPosition, TOP_DPCANCEL,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_extd_geometry
- X * Set the geometry of the widgets in the extended disc info
- X * window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_extd_geometry(widgets_t *m)
- X{
- X /* Extended Disc Info popup window widgets */
- X
- X XtVaSetValues(m->dbextd.disc_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DISCLBL,
- X XmNrightPosition, RIGHT_DISCLBL,
- X XmNtopPosition, TOP_DISCLBL,
- X XmNbottomPosition, BOTTOM_DISCLBL,
- X NULL
- X );
- X
- X XtVaSetValues(XtParent(m->dbextd.disc_txt),
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EXTDTXT,
- X XmNrightPosition, RIGHT_EXTDTXT,
- X XmNtopPosition, TOP_EXTDTXT,
- X XmNbottomPosition, BOTTOM_EXTDTXT,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextd.dbextd_sep,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DBEXTDSEP,
- X XmNrightPosition, RIGHT_DBEXTDSEP,
- X XmNtopPosition, TOP_DBEXTDSEP,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextd.ok_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DDOK,
- X XmNrightPosition, RIGHT_DDOK,
- X XmNtopPosition, TOP_DDOK,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextd.clear_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DDCLEAR,
- X XmNrightPosition, RIGHT_DDCLEAR,
- X XmNtopPosition, TOP_DDCLEAR,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextd.cancel_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DDCANCEL,
- X XmNrightPosition, RIGHT_DDCANCEL,
- X XmNtopPosition, TOP_DDCANCEL,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_extt_geometry
- X * Set the geometry of the widgets in the extended track info
- X * window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_extt_geometry(widgets_t *m)
- X{
- X /* Extended Track Info popup window widgets */
- X
- X XtVaSetValues(m->dbextt.trk_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_TRKLBL,
- X XmNrightPosition, RIGHT_TRKLBL,
- X XmNtopPosition, TOP_TRKLBL,
- X XmNbottomPosition, BOTTOM_TRKLBL,
- X NULL
- X );
- X
- X XtVaSetValues(XtParent(m->dbextt.trk_txt),
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_EXTTTXT,
- X XmNrightPosition, RIGHT_EXTTTXT,
- X XmNtopPosition, TOP_EXTTTXT,
- X XmNbottomPosition, BOTTOM_EXTTTXT,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextt.dbextt_sep,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DBEXTTSEP,
- X XmNrightPosition, RIGHT_DBEXTTSEP,
- X XmNtopPosition, TOP_DBEXTTSEP,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextt.ok_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DTOK,
- X XmNrightPosition, RIGHT_DTOK,
- X XmNtopPosition, TOP_DTOK,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextt.clear_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DTCLEAR,
- X XmNrightPosition, RIGHT_DTCLEAR,
- X XmNtopPosition, TOP_DTCLEAR,
- X NULL
- X );
- X
- X XtVaSetValues(m->dbextt.cancel_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DTCANCEL,
- X XmNrightPosition, RIGHT_DTCANCEL,
- X XmNtopPosition, TOP_DTCANCEL,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_help_geometry
- X * Set the geometry of the widgets in the help display window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_help_geometry(widgets_t *m)
- X{
- X XtVaSetValues(XtParent(m->help.help_txt),
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_HELPTXT,
- X XmNrightPosition, RIGHT_HELPTXT,
- X XmNtopPosition, TOP_HELPTXT,
- X XmNbottomPosition, BOTTOM_HELPTXT,
- X NULL
- X );
- X
- X XtVaSetValues(m->help.help_sep,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_HELPSEP,
- X XmNrightPosition, RIGHT_HELPSEP,
- X XmNtopPosition, TOP_HELPSEP,
- X NULL
- X );
- X
- X XtVaSetValues(m->help.ok_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_HELPOK,
- X XmNrightPosition, RIGHT_HELPOK,
- X XmNtopPosition, TOP_HELPOK,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_dirsel_geometry
- X * Set the geometry of the widgets in the CD database directory
- X * selector window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_dirsel_geometry(widgets_t *m)
- X{
- X /* Directory selector popup widgets */
- X
- X XtVaSetValues(m->dirsel.dir_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DIRLBL,
- X XmNrightPosition, RIGHT_DIRLBL,
- X XmNtopPosition, TOP_DIRLBL,
- X XmNbottomPosition, BOTTOM_DIRLBL,
- X NULL
- X );
- X
- X XtVaSetValues(XtParent(m->dirsel.dir_list),
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_DIRLIST,
- X XmNrightPosition, RIGHT_DIRLIST,
- X XmNtopPosition, TOP_DIRLIST,
- X XmNbottomPosition, BOTTOM_DIRLIST,
- X NULL
- X );
- X
- X XtVaSetValues(m->dirsel.dirsel_sep,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DIRSELSEP,
- X XmNrightPosition, RIGHT_DIRSELSEP,
- X XmNtopPosition, TOP_DIRSELSEP,
- X NULL
- X );
- X
- X XtVaSetValues(m->dirsel.ok_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DSOK,
- X XmNrightPosition, RIGHT_DSOK,
- X XmNtopPosition, TOP_DSOK,
- X NULL
- X );
- X
- X XtVaSetValues(m->dirsel.cancel_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_DSCANCEL,
- X XmNrightPosition, RIGHT_DSCANCEL,
- X XmNtopPosition, TOP_DSCANCEL,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_linksel_geometry
- X * Set the geometry of the widgets in the search-link selector
- X * list window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xforce_linksel_geometry(widgets_t *m)
- X{
- X /* Link selector popup widgets */
- X
- X XtVaSetValues(m->linksel.link_lbl,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_LINKLBL,
- X XmNrightPosition, RIGHT_LINKLBL,
- X XmNtopPosition, TOP_LINKLBL,
- X XmNbottomPosition, BOTTOM_LINKLBL,
- X NULL
- X );
- X
- X XtVaSetValues(XtParent(m->linksel.link_list),
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_POSITION,
- X XmNleftPosition, LEFT_LINKLIST,
- X XmNrightPosition, RIGHT_LINKLIST,
- X XmNtopPosition, TOP_LINKLIST,
- X XmNbottomPosition, BOTTOM_LINKLIST,
- X NULL
- X );
- X
- X XtVaSetValues(m->linksel.linksel_sep,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_LINKSELSEP,
- X XmNrightPosition, RIGHT_LINKSELSEP,
- X XmNtopPosition, TOP_LINKSELSEP,
- X NULL
- X );
- X
- X XtVaSetValues(m->linksel.ok_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_LSOK,
- X XmNrightPosition, RIGHT_LSOK,
- X XmNtopPosition, TOP_LSOK,
- X NULL
- X );
- X
- X XtVaSetValues(m->linksel.cancel_btn,
- X XmNleftAttachment, XmATTACH_POSITION,
- X XmNrightAttachment, XmATTACH_POSITION,
- X XmNtopAttachment, XmATTACH_POSITION,
- X XmNbottomAttachment, XmATTACH_NONE,
- X XmNleftPosition, LEFT_LSCANCEL,
- X XmNrightPosition, RIGHT_LSCANCEL,
- X XmNtopPosition, TOP_LSCANCEL,
- X NULL
- X );
- X}
- X
- X
- X/*
- X * force_dialog_geometry
- X * Set the geometry of the widgets in the dialog box windows.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- X/*ARGSUSED*/
- XSTATIC void
- Xforce_dialog_geometry(widgets_t *m)
- X{
- X /* For future expansion */
- X}
- X
- X
- X/*
- X * force_geometry
- X * Top level function to set the geometry of the widgets in each
- X * main and sub-window.
- X *
- X * Args:
- X * m - Pointer to the main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- Xvoid
- Xforce_geometry(widgets_t *m)
- X{
- X force_main_geometry(m);
- X force_keypad_geometry(m);
- X force_dbprog_geometry(m);
- X force_extd_geometry(m);
- X force_extt_geometry(m);
- X force_help_geometry(m);
- X force_dirsel_geometry(m);
- X force_linksel_geometry(m);
- X force_dialog_geometry(m);
- X}
- X
- X
- END_OF_FILE
- if test 36037 -ne `wc -c <'geometry.c'`; then
- echo shar: \"'geometry.c'\" unpacked with wrong size!
- fi
- # end of 'geometry.c'
- fi
- if test -f 'help.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'help.c'\"
- else
- echo shar: Extracting \"'help.c'\" \(12796 characters\)
- sed "s/^X//" >'help.c' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef LINT
- Xstatic char *_help_c_ident_ = "@(#)help.c 1.16 93/09/28";
- X#endif
- X
- X#include <Xm/Xm.h>
- X#include <Xm/Text.h>
- X#include "xmcd.h"
- X#include "widget.h"
- X#include "cdfunc.h"
- X#include "help.h"
- X
- X
- X/* This structure is used to map widgets to associated help files.
- X * Instead of using XtName(), this mechanism allows us to map multiple
- X * widgets to a common help file. Also, we can use arbitrary lengths
- X * for the widget name and still have help files with less than 14 chars
- X * in its name (necessary for compatibility with some systems).
- X */
- Xtypedef struct {
- X Widget widget;
- X char *hlpname;
- X} wname_t;
- X
- X
- Xextern AppData app_data;
- Xextern widgets_t widgets;
- X
- XSTATIC wname_t wname[MAX_HELP_WIDGETS];
- XSTATIC char tmpbuf[STR_BUF_SZ * 2];
- X
- X
- X/*
- X * help_mapinit
- X * Initialize the widget-to-helpfile_name mapping table.
- X *
- X * Args:
- X * Nothing.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xhelp_mapinit(void)
- X{
- X int i = 0;
- X
- X wname[i].widget = widgets.main.check_box;
- X wname[i++].hlpname = "CheckBox";
- X wname[i].widget = widgets.main.eject_btn;
- X wname[i++].hlpname = "EjectBtn";
- X wname[i].widget = widgets.main.poweroff_btn;
- X wname[i++].hlpname = "PowerBtn";
- X wname[i].widget = widgets.main.dbprog_btn;
- X wname[i++].hlpname = "DbProgBtn";
- X wname[i].widget = widgets.main.time_btn;
- X wname[i++].hlpname = "TimeBtn";
- X wname[i].widget = widgets.main.ab_btn;
- X wname[i++].hlpname = "AbBtn";
- X wname[i].widget = widgets.main.sample_btn;
- X wname[i++].hlpname = "SampleBtn";
- X wname[i].widget = widgets.main.keypad_btn;
- X wname[i++].hlpname = "KeypadBtn";
- X wname[i].widget = widgets.main.help_btn;
- X wname[i++].hlpname = "HelpBtn";
- X wname[i].widget = widgets.main.level_scale;
- X wname[i++].hlpname = "LevelScale";
- X wname[i].widget = widgets.main.playpause_btn;
- X wname[i++].hlpname = "PlayPauseBtn";
- X wname[i].widget = widgets.main.stop_btn;
- X wname[i++].hlpname = "StopBtn";
- X wname[i].widget = widgets.main.prevtrk_btn;
- X wname[i++].hlpname = "PrevTrkBtn";
- X wname[i].widget = widgets.main.nexttrk_btn;
- X wname[i++].hlpname = "NextTrkBtn";
- X wname[i].widget = widgets.main.previdx_btn;
- X wname[i++].hlpname = "PrevIdxBtn";
- X wname[i].widget = widgets.main.nextidx_btn;
- X wname[i++].hlpname = "NextIdxBtn";
- X wname[i].widget = widgets.main.rew_btn;
- X wname[i++].hlpname = "RewBtn";
- X wname[i].widget = widgets.main.ff_btn;
- X wname[i++].hlpname = "FfBtn";
- X wname[i].widget = widgets.main.track_ind;
- X wname[i++].hlpname = "TrackInd";
- X wname[i].widget = widgets.main.index_ind;
- X wname[i++].hlpname = "IndexInd";
- X wname[i].widget = widgets.main.time_ind;
- X wname[i++].hlpname = "TimeInd";
- X wname[i].widget = widgets.main.dbmode_ind;
- X wname[i++].hlpname = "DbModeInd";
- X wname[i].widget = widgets.main.progmode_ind;
- X wname[i++].hlpname = "ProgModeInd";
- X wname[i].widget = widgets.main.timemode_ind;
- X wname[i++].hlpname = "TimeModeInd";
- X wname[i].widget = widgets.main.playmode_ind;
- X wname[i++].hlpname = "PlayModeInd";
- X wname[i].widget = widgets.keypad.keypad_ind;
- X wname[i++].hlpname = "KeypadInd";
- X wname[i].widget = widgets.keypad.num_btn[0];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[1];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[2];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[3];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[4];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[5];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[6];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[7];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[8];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.num_btn[9];
- X wname[i++].hlpname = "KpNumBtn";
- X wname[i].widget = widgets.keypad.enter_btn;
- X wname[i++].hlpname = "KpEnterBtn";
- X wname[i].widget = widgets.keypad.cancel_btn;
- X wname[i++].hlpname = "KpCancelBtn";
- X wname[i].widget = widgets.keypad.clear_btn;
- X wname[i++].hlpname = "KpClearBtn";
- X wname[i].widget = widgets.dbprog.about_btn;
- X wname[i++].hlpname = "DpAboutBtn";
- X wname[i].widget = widgets.dbprog.dtitle_txt;
- X wname[i++].hlpname = "DpDTitleTxt";
- X wname[i].widget = widgets.dbprog.extd_btn;
- X wname[i++].hlpname = "DpDExtBtn";
- X wname[i].widget = widgets.dbprog.trk_list;
- X wname[i++].hlpname = "DpTrkList";
- X wname[i].widget = widgets.dbprog.addpgm_btn;
- X wname[i++].hlpname = "DpAddPgmBtn";
- X wname[i].widget = widgets.dbprog.clrpgm_btn;
- X wname[i++].hlpname = "DpClrPgmBtn";
- X wname[i].widget = widgets.dbprog.playpgm_btn;
- X wname[i++].hlpname = "DpPlayPgmBtn";
- X wname[i].widget = widgets.dbprog.radio_box;
- X wname[i++].hlpname = "DpTimeSelBtn";
- X wname[i].widget = widgets.dbprog.ttitle_txt;
- X wname[i++].hlpname = "DpTTitleTxt";
- X wname[i].widget = widgets.dbprog.extt_btn;
- X wname[i++].hlpname = "DpTExtBtn";
- X wname[i].widget = widgets.dbprog.pgmseq_txt;
- X wname[i++].hlpname = "DpPgmSeqTxt";
- X wname[i].widget = widgets.dbprog.savedb_btn;
- X wname[i++].hlpname = "DpSaveBtn";
- X wname[i].widget = widgets.dbprog.loaddb_btn;
- X wname[i++].hlpname = "DpLoadBtn";
- X wname[i].widget = widgets.dbprog.linkdb_btn;
- X wname[i++].hlpname = "DpLinkBtn";
- X wname[i].widget = widgets.dbprog.cancel_btn;
- X wname[i++].hlpname = "DpCancelBtn";
- X wname[i].widget = widgets.dbextd.disc_txt;
- X wname[i++].hlpname = "DdDiscTxt";
- X wname[i].widget = widgets.dbextd.ok_btn;
- X wname[i++].hlpname = "DdOkBtn";
- X wname[i].widget = widgets.dbextd.clear_btn;
- X wname[i++].hlpname = "DdClrBtn";
- X wname[i].widget = widgets.dbextd.cancel_btn;
- X wname[i++].hlpname = "DdCancelBtn";
- X wname[i].widget = widgets.dbextt.trk_txt;
- X wname[i++].hlpname = "DtTrackTxt";
- X wname[i].widget = widgets.dbextt.ok_btn;
- X wname[i++].hlpname = "DtOkBtn";
- X wname[i].widget = widgets.dbextt.clear_btn;
- X wname[i++].hlpname = "DtClrBtn";
- X wname[i].widget = widgets.dbextt.cancel_btn;
- X wname[i++].hlpname = "DtCancelBtn";
- X wname[i].widget = widgets.dirsel.dir_list;
- X wname[i++].hlpname = "DsDirList";
- X wname[i].widget = widgets.dirsel.ok_btn;
- X wname[i++].hlpname = "DsOkBtn";
- X wname[i].widget = widgets.dirsel.cancel_btn;
- X wname[i++].hlpname = "DsCancelBtn";
- X wname[i].widget = widgets.linksel.link_list;
- X wname[i++].hlpname = "LsLinkList";
- X wname[i].widget = widgets.linksel.ok_btn;
- X wname[i++].hlpname = "LsOkBtn";
- X wname[i].widget = widgets.linksel.cancel_btn;
- X wname[i++].hlpname = "LsCancelBtn";
- X wname[i].widget = (Widget) NULL;
- X wname[i].hlpname = NULL;
- X}
- X
- X
- X/*
- X * help_setup
- X * Top level function to set up the help subsystem.
- X *
- X * Args:
- X * Nothing.
- X *
- X * Return:
- X * Nothing.
- X */
- Xvoid
- Xhelp_setup(widgets_t *m)
- X{
- X int i;
- X char xlat_str[40];
- X XtTranslations xtab1,
- X xtab2;
- X
- X sprintf(xlat_str, "<Btn3Down>,<Btn3Up>: Help()\n");
- X xtab1 = XtParseTranslationTable(xlat_str);
- X sprintf(xlat_str, "<Btn3Down>,<Btn3Up>: PrimitiveHelp()\n");
- X xtab2 = XtParseTranslationTable(xlat_str);
- X
- X /* Translations for the main window widgets */
- X XtOverrideTranslations(m->main.check_box, xtab1);
- X XtOverrideTranslations(m->main.eject_btn, xtab1);
- X XtOverrideTranslations(m->main.poweroff_btn, xtab1);
- X XtOverrideTranslations(m->main.track_ind, xtab1);
- X XtOverrideTranslations(m->main.index_ind, xtab1);
- X XtOverrideTranslations(m->main.time_ind, xtab1);
- X XtOverrideTranslations(m->main.dbmode_ind, xtab1);
- X XtOverrideTranslations(m->main.progmode_ind, xtab1);
- X XtOverrideTranslations(m->main.timemode_ind, xtab1);
- X XtOverrideTranslations(m->main.playmode_ind, xtab1);
- X XtOverrideTranslations(m->main.dbprog_btn, xtab1);
- X XtOverrideTranslations(m->main.time_btn, xtab1);
- X XtOverrideTranslations(m->main.ab_btn, xtab1);
- X XtOverrideTranslations(m->main.sample_btn, xtab1);
- X XtOverrideTranslations(m->main.keypad_btn, xtab1);
- X XtOverrideTranslations(m->main.help_btn, xtab1);
- X XtOverrideTranslations(m->main.level_scale, xtab1);
- X XtOverrideTranslations(m->main.playpause_btn, xtab1);
- X XtOverrideTranslations(m->main.stop_btn, xtab1);
- X XtOverrideTranslations(m->main.previdx_btn, xtab1);
- X XtOverrideTranslations(m->main.nextidx_btn, xtab1);
- X XtOverrideTranslations(m->main.prevtrk_btn, xtab1);
- X XtOverrideTranslations(m->main.nexttrk_btn, xtab1);
- X XtOverrideTranslations(m->main.rew_btn, xtab1);
- X XtOverrideTranslations(m->main.ff_btn, xtab1);
- X
- X /* Translations for the keypad window widgets */
- X XtOverrideTranslations(m->keypad.keypad_ind, xtab1);
- X for (i = 0; i < 10; i++)
- X XtOverrideTranslations(m->keypad.num_btn[i], xtab1);
- X XtOverrideTranslations(m->keypad.enter_btn, xtab1);
- X XtOverrideTranslations(m->keypad.cancel_btn, xtab1);
- X XtOverrideTranslations(m->keypad.clear_btn, xtab1);
- X
- X /* Translations for the dbprog window widgets */
- X XtOverrideTranslations(m->dbprog.about_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.dtitle_txt, xtab1);
- X XtOverrideTranslations(m->dbprog.extd_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.trk_list, xtab2);
- X XtOverrideTranslations(m->dbprog.radio_box, xtab1);
- X XtOverrideTranslations(m->dbprog.ttitle_txt, xtab1);
- X XtOverrideTranslations(m->dbprog.extt_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.addpgm_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.clrpgm_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.playpgm_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.pgmseq_txt, xtab1);
- X XtOverrideTranslations(m->dbprog.savedb_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.loaddb_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.linkdb_btn, xtab1);
- X XtOverrideTranslations(m->dbprog.cancel_btn, xtab1);
- X
- X /* Translations for the extd window widgets */
- X XtOverrideTranslations(m->dbextd.disc_txt, xtab1);
- X XtOverrideTranslations(m->dbextd.ok_btn, xtab1);
- X XtOverrideTranslations(m->dbextd.clear_btn, xtab1);
- X XtOverrideTranslations(m->dbextd.cancel_btn, xtab1);
- X
- X /* Translations for the extt window widgets */
- X XtOverrideTranslations(m->dbextt.trk_txt, xtab1);
- X XtOverrideTranslations(m->dbextt.ok_btn, xtab1);
- X XtOverrideTranslations(m->dbextt.clear_btn, xtab1);
- X XtOverrideTranslations(m->dbextt.cancel_btn, xtab1);
- X
- X /* Translations for the dirsel window widgets */
- X XtOverrideTranslations(m->dirsel.dir_list, xtab2);
- X XtOverrideTranslations(m->dirsel.ok_btn, xtab1);
- X XtOverrideTranslations(m->dirsel.cancel_btn, xtab1);
- X
- X /* Translations for the linksel window widgets */
- X XtOverrideTranslations(m->linksel.link_list, xtab2);
- X XtOverrideTranslations(m->linksel.ok_btn, xtab1);
- X XtOverrideTranslations(m->linksel.cancel_btn, xtab1);
- X
- X /* Initialize helpfile mappings */
- X help_mapinit();
- X}
- X
- X
- X/*
- X * help_getname
- X * Given a widget, return the associated help file name.
- X *
- X * Args:
- X * w - The widget
- X *
- X * Return:
- X * The help file name text string.
- X */
- XSTATIC char *
- Xhelp_getname(Widget w)
- X{
- X int i;
- X
- X for (i = 0; wname[i].widget != NULL; i++) {
- X if (w == wname[i].widget)
- X return(wname[i].hlpname);
- X }
- X return(NULL);
- X}
- X
- X
- X/*
- X * help_popup
- X * Pop up the help window and display appropriate help text.
- X *
- X * Args:
- X * w - The widget which the help info is being displayed about.
- X *
- X * Return:
- X * Nothing.
- X */
- Xvoid
- Xhelp_popup(Widget w)
- X{
- X char hlpfile[FILE_PATH_SZ],
- X *hlpname;
- X FILE *fp;
- X static char *helptext = NULL;
- X
- X if ((hlpname = help_getname(w)) == NULL)
- X return;
- X
- X sprintf(hlpfile, "%s/help/%s", app_data.libdir, hlpname);
- X
- X if ((fp = fopen(hlpfile, "r")) == NULL) {
- X /* Can't read help file on this widget */
- X XmTextSetString(widgets.help.help_txt, app_data.str_nohelp);
- X XtManageChild(widgets.help.form);
- X
- X return;
- X }
- X
- X if (helptext != NULL) {
- X MEM_FREE(helptext);
- X helptext = NULL;
- X }
- X
- X while (fgets(tmpbuf, sizeof(tmpbuf), fp) != NULL) {
- X if (tmpbuf[0] == '#')
- X /* Comment */
- X continue;
- X
- X if (helptext == NULL) {
- X helptext = (char *) MEM_ALLOC(strlen(tmpbuf) + 1);
- X
- X if (helptext != NULL)
- X *helptext = '\0';
- X }
- X else {
- X helptext = (char *) MEM_REALLOC(
- X helptext,
- X strlen(helptext) + strlen(tmpbuf) + 1
- X );
- X }
- X
- X if (helptext == NULL) {
- X cd_fatal_popup(
- X app_data.str_fatal,
- X app_data.str_nomemory
- X );
- X }
- X
- X strcat(helptext, tmpbuf);
- X }
- X
- X fclose(fp);
- X
- X XmTextSetString(widgets.help.help_txt, helptext);
- X XtManageChild(widgets.help.form);
- X}
- X
- X
- END_OF_FILE
- if test 12796 -ne `wc -c <'help.c'`; then
- echo shar: \"'help.c'\" unpacked with wrong size!
- fi
- # end of 'help.c'
- fi
- if test -f 'hotkey.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'hotkey.c'\"
- else
- echo shar: Extracting \"'hotkey.c'\" \(10129 characters\)
- sed "s/^X//" >'hotkey.c' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef LINT
- Xstatic char *_hotkey_c_ident_ = "@(#)hotkey.c 1.24 93/09/28";
- X#endif
- X
- X#include <Xm/Xm.h>
- X#include "xmcd.h"
- X#include "widget.h"
- X#include "cdfunc.h"
- X#include "hotkey.h"
- X
- X
- Xtypedef struct grablist {
- X Widget gr_button;
- X KeyCode gr_keycode;
- X Modifiers gr_modifier;
- X struct grablist *next;
- X} grablist_t;
- X
- X
- Xtypedef struct {
- X char *name;
- X Modifiers mask;
- X} modtab_t;
- X
- X
- Xextern AppData app_data;
- Xextern widgets_t widgets;
- X
- XSTATIC modtab_t modtab[8] = {
- X { "Shift", ShiftMask },
- X { "Lock", LockMask },
- X { "Ctrl", ControlMask },
- X { "Mod1", Mod1Mask },
- X { "Mod2", Mod2Mask },
- X { "Mod3", Mod3Mask },
- X { "Mod4", Mod4Mask },
- X { "Mod5", Mod5Mask },
- X};
- X
- X#define TOTAL_GRABLISTS 2
- X#define MAIN_LIST 0
- X#define KEYPAD_LIST 1
- X
- XSTATIC grablist_t *grablists[TOTAL_GRABLISTS] = {
- X NULL, NULL
- X};
- X
- X
- X/*
- X * hotkey
- X * Widget action routine to handle hotkey events
- X */
- Xvoid
- Xhotkey(Widget w, XEvent *ev, String *args, Cardinal *num_args)
- X{
- X int i;
- X Widget action_widget;
- X
- X if ((int) *num_args <= 0)
- X return; /* Error: should have at least one arg */
- X
- X if ((action_widget = XtNameToWidget(w, args[0])) == (Widget) NULL)
- X return; /* Can't find widget */
- X
- X /* Switch keyboard focus to the widget of interest */
- X XmProcessTraversal(action_widget, XmTRAVERSE_CURRENT);
- X
- X for (i = 1; i < (int) *num_args; i++)
- X /* Invoke the named action of the specified widget */
- X XtCallActionProc(action_widget, args[i], ev, NULL, 0);
- X}
- X
- X
- X/*
- X * hotkey_label_match
- X * Find a letter in a pushbutton widget label that would
- X * match the hotkey character associated with that button,
- X * and set that letter as the mnemonic (causing the letter
- X * to be displayed with an underscore).
- X *
- X * Args:
- X * btn - The button widget
- X * keycode - The X keycode of the hotkey character
- X * modifier - The keycode modifier of the hotkey character
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xhotkey_label_match(Widget btn, KeyCode keycode, unsigned int modifier)
- X{
- X char *mstr,
- X *lstr;
- X Display *display = XtDisplay(widgets.toplevel);
- X KeySym ks;
- X XmString xs;
- X
- X ks = XKeycodeToKeysym(display, keycode, 0),
- X mstr = XKeysymToString(ks);
- X
- X if (mstr == NULL)
- X return;
- X
- X XtVaGetValues(btn, XmNlabelString, &xs, NULL);
- X
- X if (XmStringGetLtoR(xs, XmSTRING_DEFAULT_CHARSET, &lstr)) {
- X /* No need to set mnemonic if the first
- X * button character is a digit.
- X */
- X if (isdigit(lstr[0]))
- X return;
- X
- X /* Make the first letter of the button label
- X * match if possible, even if the
- X * capitalization is wrong.
- X */
- X if (toupper(mstr[0]) == toupper(lstr[0]) &&
- X !(modifier & ~ShiftMask)) {
- X char s[2];
- X
- X s[0] = lstr[0];
- X s[1] = '\0';
- X
- X ks = XStringToKeysym(s);
- X }
- X }
- X
- X /* Set the mnemonic */
- X XtVaSetValues(btn, XmNmnemonic, ks, NULL);
- X}
- X
- X
- X/*
- X * hotkey_set_mnemonics
- X * Set the mnemonics of all pushbuttons with hotkey support.
- X *
- X * Args:
- X * Nothing.
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xhotkey_set_mnemonics(void)
- X{
- X int i;
- X grablist_t *p;
- X Widget prev_btn = (Widget) NULL;
- X
- X /* Set mnemonics on all button faces */
- X for (i = 0; i < TOTAL_GRABLISTS; i++) {
- X for (p = grablists[i]; p != NULL; p = p->next) {
- X if (p->gr_button != (Widget) NULL) {
- X if (prev_btn == p->gr_button)
- X continue;
- X
- X hotkey_label_match(
- X p->gr_button,
- X p->gr_keycode,
- X p->gr_modifier
- X );
- X }
- X prev_btn = p->gr_button;
- X }
- X }
- X}
- X
- X
- X/*
- X * hotkey_parse_xlat_line
- X * A limited translation string parser.
- X *
- X * Args:
- X * line - The translation text string line to be parsed
- X * modp - The key modifier return string
- X * keyp - The key event return string
- X * btnp - The button event return string
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC bool_t
- Xhotkey_parse_xlat_line(
- X char *line,
- X char **modp,
- X char **keyp,
- X char **btnp
- X)
- X{
- X char *p,
- X *q;
- X static char modstr[12],
- X keystr[12],
- X btnstr[48];
- X
- X /* Get modifier specification */
- X p = line;
- X q = strchr(p, '<');
- X
- X if (q == NULL)
- X return(FALSE);
- X else if (q > p) {
- X *q = '\0';
- X strcpy(modstr, p);
- X *modp = modstr;
- X *q = '<';
- X }
- X
- X /* Get event specification */
- X p = q + 1;
- X q = strchr(p, '>');
- X
- X if (q == NULL || q == p)
- X return(FALSE);
- X else {
- X *q = '\0';
- X
- X /* We are interested only in key events here */
- X if (strncmp(p, "Key", 3) != 0)
- X return(FALSE);
- X
- X *q = '>';
- X }
- X
- X /* Get key specification */
- X p = q + 1;
- X q = strchr(p, ':');
- X
- X if (q == NULL || q == p)
- X return(FALSE);
- X else {
- X *q = '\0';
- X strcpy(keystr, p);
- X *keyp = keystr;
- X *q = ':';
- X }
- X
- X /* Get associated button */
- X p = q + 1;
- X q = strchr(p, '(');
- X
- X if (q == NULL || q == p)
- X return(FALSE);
- X else {
- X p = q + 1;
- X q = strchr(p, ',');
- X
- X if (q == NULL || q == p)
- X return(FALSE);
- X else {
- X *q = '\0';
- X strcpy(btnstr, p);
- X *btnp = btnstr;
- X *q = ',';
- X }
- X }
- X
- X return(TRUE);
- X}
- X
- X
- X/*
- X * hotkey_build_grablist
- X * Build a linked list of widgets which have associated
- X * hotkey support, and information about the hotkey. These
- X * keys will be grabbed when the parent form window has input
- X * focus.
- X *
- X * Args:
- X * form - The parent form widget
- X * str - The translation string specifying the hotkey
- X * listhead - The list head (return)
- X *
- X * Return:
- X * Nothing.
- X */
- XSTATIC void
- Xhotkey_build_grablist(Widget form, char *str, grablist_t **listhead)
- X{
- X int i;
- X char *p,
- X *q,
- X *end,
- X *modstr,
- X *keystr,
- X *btnstr;
- X grablist_t *g;
- X
- X p = str;
- X end = p + strlen(p);
- X
- X do {
- X while (isspace(*p))
- X p++;
- X q = strchr(p, '\n');
- X
- X if (p >= end)
- X break;
- X
- X if (q == NULL) {
- X if (q > end)
- X break;
- X }
- X else
- X *q = '\0';
- X
- X modstr = keystr = btnstr = NULL;
- X
- X /* Parse translation line */
- X if (*p != '#' &&
- X hotkey_parse_xlat_line(p, &modstr, &keystr, &btnstr) &&
- X keystr != NULL) {
- X
- X /* Allocate new list element */
- X if (*listhead == NULL) {
- X *listhead = g = (grablist_t *)(void *)
- X MEM_ALLOC(sizeof(grablist_t));
- X
- X if (g == NULL) {
- X fprintf(stderr, "%s: %s\n",
- X PROGNAME,
- X app_data.str_nomemory);
- X exit(1);
- X }
- X }
- X else {
- X g->next = (grablist_t *)(void *)
- X MEM_ALLOC(sizeof(grablist_t));
- X
- X if (g->next == NULL) {
- X fprintf(stderr, "%s: %s\n",
- X PROGNAME,
- X app_data.str_nomemory);
- X exit(1);
- X }
- X
- X g = g->next;
- X }
- X g->next = NULL;
- X
- X g->gr_keycode = XKeysymToKeycode(
- X XtDisplay(widgets.toplevel),
- X XStringToKeysym(keystr)
- X );
- X
- X g->gr_modifier = 0;
- X if (modstr != NULL) {
- X for (i = 0; i < 8; i++) {
- X if (strcmp(modtab[i].name,
- X modstr) == 0) {
- X g->gr_modifier =
- X modtab[i].mask;
- X break;
- X }
- X }
- X }
- X
- X g->gr_button = (Widget) NULL;
- X if (btnstr != NULL)
- X g->gr_button = XtNameToWidget(form, btnstr);
- X }
- X
- X if (q != NULL) {
- X *q = '\n';
- X p = q + 1;
- X }
- X else
- X p = end;
- X
- X } while (p < end);
- X}
- X
- X
- X/*
- X * hotkey_setup
- X * Top level setup function for the hotkey subsystem. Called
- X * once at program startup.
- X *
- X * Args:
- X * m - The main widgets structure.
- X *
- X * Return:
- X * Nothing.
- X */
- Xvoid
- Xhotkey_setup(widgets_t *m)
- X{
- X char xlat_str[MAX_TRANSLATIONS_SZ];
- X
- X /* Translations for the main window form */
- X sprintf(xlat_str,
- X "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
- X app_data.btnlbl_key,
- X app_data.lock_key,
- X app_data.repeat_key,
- X app_data.shuffle_key,
- X app_data.eject_key,
- X app_data.poweroff_key,
- X app_data.dbprog_key,
- X app_data.help_key,
- X app_data.time_key,
- X app_data.ab_key,
- X app_data.sample_key,
- X app_data.keypad_key,
- X app_data.playpause_key,
- X app_data.stop_key,
- X app_data.prevtrk_key,
- X app_data.nexttrk_key,
- X app_data.previdx_key,
- X app_data.nextidx_key,
- X app_data.rew_key,
- X app_data.ff_key);
- X
- X XtOverrideTranslations(
- X m->main.form,
- X XtParseTranslationTable(xlat_str)
- X );
- X
- X hotkey_build_grablist(
- X m->main.form,
- X xlat_str,
- X &grablists[MAIN_LIST]
- X );
- X
- X /* Translations for the keypad window form */
- X sprintf(xlat_str,
- X "%s%s%s%s%s%s%s%s%s%s%s%s%s",
- X app_data.keypad0_key,
- X app_data.keypad1_key,
- X app_data.keypad2_key,
- X app_data.keypad3_key,
- X app_data.keypad4_key,
- X app_data.keypad5_key,
- X app_data.keypad6_key,
- X app_data.keypad7_key,
- X app_data.keypad8_key,
- X app_data.keypad9_key,
- X app_data.keypadenter_key,
- X app_data.keypadclear_key,
- X app_data.keypadcancel_key);
- X
- X XtOverrideTranslations(
- X m->keypad.form,
- X XtParseTranslationTable(xlat_str)
- X );
- X
- X hotkey_build_grablist(
- X m->keypad.form,
- X xlat_str,
- X &grablists[KEYPAD_LIST]
- X );
- X
- X /* Set key label mnemonics */
- X hotkey_set_mnemonics();
- X}
- X
- X
- X/*
- X * hotkey_grabkeys
- X * Grab all keys used as hotkeys in the specified window form.
- X *
- X * Args:
- X * form - The parent form widget.
- X *
- X * Return:
- X * Nothing.
- X */
- Xvoid
- Xhotkey_grabkeys(Widget form)
- X{
- X grablist_t *list,
- X *p;
- X
- X if (form == widgets.main.form)
- X list = grablists[MAIN_LIST];
- X else if (form == widgets.keypad.form)
- X list = grablists[KEYPAD_LIST];
- X else
- X list = NULL;
- X
- X for (p = list; p != NULL; p = p->next) {
- X XtGrabKey(
- X form,
- X p->gr_keycode,
- X p->gr_modifier,
- X True,
- X GrabModeAsync,
- X GrabModeAsync
- X );
- X }
- X}
- X
- X
- X/*
- X * hotkey_ungrabkeys
- X * Ungrab all keys used as hotkeys in the specified window form.
- X *
- X * Args:
- X * form - The parent form widget.
- X *
- X * Return:
- X * Nothing.
- X */
- Xvoid
- Xhotkey_ungrabkeys(Widget form)
- X{
- X grablist_t *list,
- X *p;
- X
- X if (form == widgets.main.form)
- X list = grablists[MAIN_LIST];
- X else if (form == widgets.keypad.form)
- X list = grablists[KEYPAD_LIST];
- X else
- X list = NULL;
- X
- X for (p = list; p != NULL; p = p->next)
- X XtUngrabKey(form, p->gr_keycode, p->gr_modifier);
- X}
- X
- X
- END_OF_FILE
- if test 10129 -ne `wc -c <'hotkey.c'`; then
- echo shar: \"'hotkey.c'\" unpacked with wrong size!
- fi
- # end of 'hotkey.c'
- fi
- echo shar: End of archive 7 \(of 13\).
- cp /dev/null ark7isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 13 archives.
- echo "Now read the README and INSTALL files for further instructions."
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- /// Ti Kan vorsprung durch technik
- /// AMB Research Laboratories, Sunnyvale, CA. USA
- /// ti@amb.org
- ////// ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
- /// ...!uunet!bazooka!ti
-
-
-
- exit 0 # Just in case...
- --
- // chris@Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga: The only way to fly! | sources-x@sterling.com
- "It's intuitively obvious to the most casual observer..."
- GCS d++(--) -p+ c++ !l u++ e+ m+(-) s++/++ n h--- f+ g+++ w+ t++ r+ y+
-