summaryrefslogtreecommitdiff
path: root/buttons.c
diff options
context:
space:
mode:
authorEgbert Eich <eich@suse.de>2004-03-14 08:35:40 +0000
committerEgbert Eich <eich@suse.de>2004-03-14 08:35:40 +0000
commit0b24854cbc017733d4e782db65912a473ec053be (patch)
tree32c740984dea9924de146b7d4655a552cae19c1f /buttons.c
parent7093a5ad5e15f7c2a7bb8feb6f3255f9a4f8983a (diff)
Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004xf86-4_4_99_1
Diffstat (limited to 'buttons.c')
-rw-r--r--buttons.c135
1 files changed, 62 insertions, 73 deletions
diff --git a/buttons.c b/buttons.c
index d30d52f..1cd6fca 100644
--- a/buttons.c
+++ b/buttons.c
@@ -28,7 +28,7 @@ other dealings in this Software without prior written authorization
from the X Consortium.
*/
-/* $XFree86: xc/programs/xman/buttons.c,v 1.3 2000/03/03 23:16:26 dawes Exp $ */
+/* $XFree86: xc/programs/xman/buttons.c,v 1.5 2004/03/12 02:17:55 dickey Exp $ */
/*
* xman - X window system manual page display program.
@@ -75,12 +75,12 @@ MakeTopBox(void)
static char * half_size[] = {
HELP_BUTTON, QUIT_BUTTON, NULL
};
-
+
/* create the top icon. */
num_args = 0;
XtSetArg(arglist[num_args], XtNiconPixmap,
- XCreateBitmapFromData( XtDisplay(initial_widget),
+ XCreateBitmapFromData( XtDisplay(initial_widget),
XtScreen(initial_widget)->root,
(char *)iconclosed_bits, iconclosed_width,
iconclosed_height));
@@ -89,28 +89,28 @@ MakeTopBox(void)
num_args++;
XtSetArg(arglist[num_args], XtNiconic, resources.iconic);
num_args++;
- top = XtCreatePopupShell(TOPBOXNAME, topLevelShellWidgetClass,
+ top = XtCreatePopupShell(TOPBOXNAME, topLevelShellWidgetClass,
initial_widget, arglist, num_args);
- form = XtCreateManagedWidget("form", formWidgetClass, top,
+ form = XtCreateManagedWidget("form", formWidgetClass, top,
NULL, (Cardinal) 0);
- label = XtCreateManagedWidget("topLabel", labelWidgetClass, form,
+ label = XtCreateManagedWidget("topLabel", labelWidgetClass, form,
NULL, (Cardinal) 0);
num_args = 0;
XtSetArg(arglist[num_args], XtNfromVert, label); num_args++;
- command = XtCreateManagedWidget(HELP_BUTTON, commandWidgetClass, form,
+ command = XtCreateManagedWidget(HELP_BUTTON, commandWidgetClass, form,
arglist, num_args);
/* use same vertical as help widget. */
XtSetArg(arglist[num_args], XtNfromHoriz, command); num_args++;
- command = XtCreateManagedWidget(QUIT_BUTTON, commandWidgetClass, form,
+ command = XtCreateManagedWidget(QUIT_BUTTON, commandWidgetClass, form,
arglist, num_args);
num_args = 0;
XtSetArg(arglist[num_args], XtNfromVert, command); num_args++;
- command = XtCreateManagedWidget(MANPAGE_BUTTON, commandWidgetClass, form,
+ command = XtCreateManagedWidget(MANPAGE_BUTTON, commandWidgetClass, form,
arglist, num_args);
help_widget = NULL; /* We have not seen the help yet. */
@@ -121,13 +121,7 @@ MakeTopBox(void)
/* add WM_COMMAND property */
XSetCommand(XtDisplay(top), XtWindow(top), saved_argv, saved_argc);
- man_globals = (ManpageGlobals*) XtMalloc( (Cardinal) sizeof(ManpageGlobals));
- man_globals->label = NULL;
- man_globals->search_widget = NULL;
- man_globals->manpagewidgets.directory = NULL;
- man_globals->manpagewidgets.manpage = NULL;
- man_globals->manpagewidgets.box = NULL;
- man_globals->current_directory = 0;
+ man_globals = (ManpageGlobals*) XtCalloc(1, (Cardinal) sizeof(ManpageGlobals));
MakeSearchWidget(man_globals, top);
MakeSaveWidgets(man_globals, top);
@@ -142,7 +136,7 @@ MakeTopBox(void)
(top, XtParseTranslationTable ("<Message>WM_PROTOCOLS: Quit()"));
(void) XSetWMProtocols (XtDisplay(top), XtWindow(top),
&wm_delete_window, 1);
-
+
}
@@ -155,11 +149,11 @@ MakeTopBox(void)
Widget
CreateManpage(FILE * file)
{
- ManpageGlobals * man_globals; /* The psuedo global structure. */
+ ManpageGlobals * man_globals; /* The pseudo global structure. */
man_globals = InitPsuedoGlobals();
CreateManpageWidget(man_globals, MANNAME, TRUE);
-
+
if (file == NULL)
StartManpage( man_globals, OpenHelpfile(man_globals), FALSE );
else {
@@ -170,36 +164,34 @@ CreateManpage(FILE * file)
}
/* Function Name: InitPsuedoGlobals
- * Description: Initializes the psuedo global variables.
+ * Description: Initializes the pseudo global variables.
* Arguments: none.
* Returns: a pointer to a new pseudo globals structure.
*/
-ManpageGlobals *
+ManpageGlobals *
InitPsuedoGlobals(void)
{
ManpageGlobals * man_globals;
/*
- * Allocate necessary memory.
+ * Allocate necessary memory.
*/
- man_globals = (ManpageGlobals *)
- XtMalloc( (Cardinal) sizeof(ManpageGlobals));
+ man_globals = (ManpageGlobals *) XtCalloc(1, sizeof(ManpageGlobals));
- man_globals->search_widget = NULL;
- man_globals->section_name = (char **) XtMalloc( (Cardinal) (sections *
+ man_globals->section_name = (char **) XtCalloc(1, (Cardinal) (sections *
sizeof(char *)));
man_globals->manpagewidgets.box = (Widget *) XtCalloc( (Cardinal) sections,
(Cardinal) sizeof(Widget));
-
+
/* Initialize the number of screens that will be shown */
man_globals->both_shown = resources.both_shown_initial;
-
+
return(man_globals);
}
-
+
/* Function Name: CreateManpageWidget
* Description: Creates a new manual page widget.
* Arguments: man_globals - a new man_globals structure.
@@ -225,9 +217,9 @@ Boolean full_instance)
num_args = (Cardinal) 0;
XtSetArg(arglist[num_args], XtNwidth, default_width);
- num_args++;
+ num_args++;
XtSetArg(arglist[num_args], XtNheight, default_height);
- num_args++;
+ num_args++;
mytop = XtCreatePopupShell(name, topLevelShellWidgetClass, initial_widget,
arglist, num_args);
@@ -239,7 +231,7 @@ Boolean full_instance)
XCreateBitmapFromData( XtDisplay(mytop), XtScreen(mytop)->root,
(char *)icon_open_bits, icon_open_width,
icon_open_height));
- else
+ else
XtSetArg(arglist[num_args], XtNiconPixmap,
XCreateBitmapFromData( XtDisplay(mytop), XtScreen(mytop)->root,
(char *)icon_help_bits, icon_help_width,
@@ -247,7 +239,7 @@ Boolean full_instance)
num_args++;
XtSetValues(mytop, arglist, num_args);
- pane = XtCreateManagedWidget("vertPane", panedWidgetClass, mytop, NULL,
+ pane = XtCreateManagedWidget("Manpage_Vpane", panedWidgetClass, mytop, NULL,
(Cardinal) 0);
/* Create menu bar. */
@@ -274,7 +266,7 @@ Boolean full_instance)
CreateSectionMenu(man_globals, mytop);
MakeSaveWidgets(man_globals, mytop);
} else {
- XtSetSensitive(mysections, FALSE);
+ XtSetSensitive(mysections, FALSE);
XtSetArg(arglist[0], XtNsensitive, FALSE);
XtSetValues(man_globals->dir_entry, arglist, ONE);
XtSetValues(man_globals->manpage_entry, arglist, ONE);
@@ -292,13 +284,13 @@ Boolean full_instance)
num_args = 0;
XtSetArg(arglist[num_args], XtNallowVert, TRUE);
num_args++;
-
+
mpw->directory = XtCreateWidget(DIRECTORY_NAME, viewportWidgetClass,
pane, arglist, num_args);
-
+
man_globals->current_directory = INITIAL_DIR;
MakeDirectoryBox(man_globals, mpw->directory,
- mpw->box + man_globals->current_directory,
+ mpw->box + man_globals->current_directory,
man_globals->current_directory );
XtManageChild(mpw->box[man_globals->current_directory]);
}
@@ -312,7 +304,7 @@ Boolean full_instance)
/* Function Name: StartManpage
* Description: Starts up a new manpage.
- * Arguments: man_globals - the psuedo globals variable.
+ * Arguments: man_globals - the pseudo globals variable.
* help - is this a help file?
* page - Is there a page to display?
* Returns: none.
@@ -323,15 +315,14 @@ StartManpage(ManpageGlobals * man_globals, Boolean help, Boolean page)
{
Widget dir = man_globals->manpagewidgets.directory;
Widget manpage = man_globals->manpagewidgets.manpage;
- Widget label = man_globals->label;
Arg arglist[1];
-/*
+/*
* If there is a helpfile then put up both screens if both_show is set.
*/
if (page || help) {
- if (help)
+ if (help)
strcpy(man_globals->manpage_title, "Xman Help");
if (man_globals->both_shown) {
@@ -347,11 +338,10 @@ StartManpage(ManpageGlobals * man_globals, Boolean help, Boolean page)
XtSetArg(arglist[0], XtNlabel, SHOW_ONE);
XtSetValues(man_globals->both_screens_entry, arglist, ONE);
- ChangeLabel(label,
- man_globals->section_name[man_globals->current_directory]);
+ ShowDirTitle(man_globals,man_globals->current_directory);
}
else {
- ChangeLabel(label,man_globals->manpage_title);
+ ShowManTitle(man_globals);
}
XtManageChild(manpage);
man_globals->dir_shown = FALSE;
@@ -360,7 +350,7 @@ StartManpage(ManpageGlobals * man_globals, Boolean help, Boolean page)
* Since There is file to display, put up directory and do not allow change
* to manpage, show both, or help.
*/
- else {
+ else {
XtManageChild(dir);
man_globals->dir_shown = TRUE;
XtSetArg(arglist[0], XtNsensitive, FALSE);
@@ -368,8 +358,7 @@ StartManpage(ManpageGlobals * man_globals, Boolean help, Boolean page)
XtSetValues(man_globals->help_entry, arglist, ONE);
XtSetValues(man_globals->both_screens_entry, arglist, ONE);
man_globals->both_shown = FALSE;
- ChangeLabel(label,
- man_globals->section_name[man_globals->current_directory]);
+ ShowDirTitle(man_globals, man_globals->current_directory);
}
/*
@@ -392,7 +381,7 @@ StartManpage(ManpageGlobals * man_globals, Boolean help, Boolean page)
* Set up ICCCM delete window.
*/
XtOverrideTranslations
- (man_globals->This_Manpage,
+ (man_globals->This_Manpage,
XtParseTranslationTable ("<Message>WM_PROTOCOLS: RemoveThisManpage()"));
(void) XSetWMProtocols (XtDisplay(man_globals->This_Manpage),
XtWindow(man_globals->This_Manpage),
@@ -432,7 +421,7 @@ CreateOptionMenu(ManpageGlobals * man_globals, Widget parent)
MANPAGE,
HELP,
SEARCH,
- BOTH_SCREENS,
+ BOTH_SCREENS,
REMOVE_MANPAGE,
OPEN_MANPAGE,
SHOW_VERSION,
@@ -442,7 +431,7 @@ CreateOptionMenu(ManpageGlobals * man_globals, Widget parent)
menu = XtCreatePopupShell(OPTION_MENU, simpleMenuWidgetClass, parent,
NULL, (Cardinal) 0);
man_globals->option_menu = menu;
-
+
for (i = 0 ; i < NUM_OPTIONS ; i++) {
entry = XtCreateManagedWidget(option_names[i], smeBSBObjectClass,
menu, NULL, ZERO);
@@ -505,10 +494,10 @@ CreateSectionMenu(ManpageGlobals * man_globals, Widget parent)
num_args = 0;
XtSetArg(args[num_args], XtNlabel, manual[i].blabel); num_args++;
sprintf(entry_name, "section%d", i);
-
+
entry = XtCreateManagedWidget(entry_name, smeBSBObjectClass,
menu, args, num_args);
- menu_struct = (MenuStruct *) XtMalloc(sizeof(MenuStruct));
+ menu_struct = (MenuStruct *) XtCalloc(1,sizeof(MenuStruct));
menu_struct->data = (caddr_t) man_globals;
menu_struct->number = i;
XtAddCallback(entry, XtNcallback, DirPopupCallback, (caddr_t) menu_struct);
@@ -529,21 +518,21 @@ CreateList(int section)
char ** ret_list, **current;
int count;
- ret_list = (char **) XtMalloc( (manual[section].nentries + 1) *
+ ret_list = (char **) XtMalloc( (unsigned)(manual[section].nentries + 1) *
sizeof (char *));
for (current = ret_list, count = 0 ; count < manual[section].nentries ;
count++, current++)
*current = CreateManpageName(manual[section].entries[count], section,
manual[section].flags);
-
+
*current = NULL; /* NULL terminate the list. */
return(ret_list);
}
/* Function Name: MakeDirectoryBox
* Description: make a directory box.
- * Arguments: man_globals - the psuedo global structure for each manpage.
+ * Arguments: man_globals - the pseudo global structure for each manpage.
* parent - this guys parent widget.
* dir_disp - the directory display widget.
* section - the section number.
@@ -569,18 +558,18 @@ MakeDirectoryBox(ManpageGlobals *man_globals, Widget parent, Widget *dir_disp, i
num_args++;
XtSetArg(arglist[num_args], XtNfont, resources.fonts.directory);
num_args++;
-
+
*dir_disp = XtCreateWidget(DIRECTORY_NAME, listWidgetClass, parent,
arglist, num_args);
-
+
XtAddCallback(*dir_disp, XtNcallback,
DirectoryHandler, (caddr_t) man_globals);
}
/* Function Name: MakeSaveWidgets.
- * Description: This functions creates two popup widgets, the please
+ * Description: This functions creates two popup widgets, the please
* standby widget and the would you like to save widget.
- * Arguments: man_globals - the psuedo globals structure for each man page
+ * Arguments: man_globals - the pseudo globals structure for each man page
* parent - the realized parent for both popups.
* Returns: none.
*/
@@ -599,14 +588,14 @@ MakeSaveWidgets(ManpageGlobals *man_globals, Widget parent)
shell = XtCreatePopupShell( "pleaseStandBy", transientShellWidgetClass,
parent, warg, (Cardinal) n);
- man_globals->standby = XtCreateManagedWidget("label", labelWidgetClass,
+ man_globals->standby = XtCreateManagedWidget("label", labelWidgetClass,
shell, NULL, (Cardinal) 0);
man_globals->save = XtCreatePopupShell("likeToSave",
transientShellWidgetClass,
parent, warg, n);
- dialog = XtCreateManagedWidget("dialog", dialogWidgetClass,
+ dialog = XtCreateManagedWidget("dialog", dialogWidgetClass,
man_globals->save, NULL, (Cardinal) 0);
XawDialogAddButton(dialog, FILE_SAVE, NULL, NULL);
@@ -635,10 +624,10 @@ FormUpWidgets(Widget parent, char ** full_size, char ** half_size)
Dimension longest, length, b_width;
int interior_dist;
Arg arglist[2];
-
+
full_widgets = ConvertNamesToWidgets(parent, full_size);
half_widgets = ConvertNamesToWidgets(parent, half_size);
-
+
long_widget = NULL;
longest = 0;
XtSetArg(arglist[0], XtNwidth, &length);
@@ -658,7 +647,7 @@ FormUpWidgets(Widget parent, char ** full_size, char ** half_size)
}
if (long_widget == (Widget) NULL) { /* Make sure we found one. */
- PopupWarning(GetGlobals(parent),
+ PopupWarning(GetGlobals(parent),
"Could not find longest widget, aborting...");
XtFree((char *)full_widgets);
XtFree((char *)half_widgets);
@@ -675,7 +664,7 @@ FormUpWidgets(Widget parent, char ** full_size, char ** half_size)
XtSetArg(arglist[0], XtNborderWidth, &border_width);
XtGetValues(*temp, arglist, (Cardinal) 1);
-
+
width = longest - 2 * border_width;
XtSetArg(arglist[0], XtNwidth, width);
XtSetValues(*temp, arglist, (Cardinal) 1);
@@ -687,13 +676,13 @@ FormUpWidgets(Widget parent, char ** full_size, char ** half_size)
XtSetArg(arglist[0], XtNdefaultDistance, &interior_dist);
XtGetValues(parent, arglist, (Cardinal) 1);
-
+
for ( temp = half_widgets ; *temp != (Widget) NULL ; temp++) {
Dimension width, border_width;
XtSetArg(arglist[0], XtNborderWidth, &border_width);
XtGetValues(*temp, arglist, (Cardinal) 1);
-
+
width = (int)(longest - interior_dist)/2 - 2 * border_width;
XtSetArg(arglist[0], XtNwidth, width);
XtSetValues(*temp, arglist, (Cardinal) 1);
@@ -702,9 +691,9 @@ FormUpWidgets(Widget parent, char ** full_size, char ** half_size)
XtFree((char *)full_widgets);
XtFree((char *)half_widgets);
}
-
+
/* Function Name: ConvertNamesToWidgets
- * Description: Convers a list of names into a list of widgets.
+ * Description: Converts a list of names into a list of widgets.
* Arguments: parent - the common parent of these widgets.
* names - an array of widget names.
* Returns: an array of widget id's.
@@ -715,25 +704,25 @@ ConvertNamesToWidgets(Widget parent, char ** names)
{
char ** temp;
Widget * ids, * temp_ids;
- int count;
+ unsigned count;
for (count = 0, temp = names; *temp != NULL ; count++, temp++);
ids = (Widget *) XtMalloc( (count + 1) * sizeof(Widget));
-
+
for ( temp_ids = ids; *names != NULL ; names++, temp_ids++) {
*temp_ids = XtNameToWidget(parent, *names);
if (*temp_ids == NULL) {
char error_buf[BUFSIZ];
-
+
sprintf(error_buf, "Could not find widget named '%s'", *names);
PrintError(error_buf);
XtFree((char *)ids);
return(NULL);
}
}
-
+
*temp_ids = (Widget) NULL;
return(ids);
}