2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: Prefs.c /main/7 1996/10/23 17:04:25 mustafa $ */
24 /************************************<+>*************************************
25 ****************************************************************************
29 * COMPONENT_NAME: Desktop File Manager (dtfile)
31 * Description: Source file for the change directory dialog.
33 * FUNCTIONS: ApplyCallback
39 * GetPreferencesValues
61 * (c) Copyright 1993, 1994, 1995 Hewlett-Packard Company
62 * (c) Copyright 1993, 1994, 1995 International Business Machines Corp.
63 * (c) Copyright 1993, 1994, 1995 Sun Microsystems, Inc.
64 * (c) Copyright 1993, 1994, 1995 Novell, Inc.
66 ****************************************************************************
67 ************************************<+>*************************************/
77 #include <Xm/DialogS.h>
78 #include <Xm/MessageB.h>
79 #include <Xm/BulletinB.h>
82 #include <Xm/LabelG.h>
83 #include <Xm/PushBG.h>
84 #include <Xm/ToggleBG.h>
85 #include <Xm/SeparatoG.h>
86 #include <Xm/VendorSEP.h>
87 #include <Xm/MwmUtil.h>
88 #include <Xm/Protocols.h>
90 #include <Dt/TitleBox.h>
92 #include <Dt/DtNlUtils.h>
94 #include "SharedProcs.h"
96 #include <X11/ShellP.h>
97 #include <X11/Shell.h>
98 #include <X11/Xatom.h>
106 /******** Static Function Declarations ********/
111 Widget *return_widget,
113 static void InstallChange(
114 PreferencesRec *preferences_rec,
115 XtCallbackProc callback,
116 XtPointer client_data) ;
117 static void InstallClose(
118 PreferencesRec *preferences_rec,
119 XtCallbackProc callback,
120 XtPointer client_data) ;
122 PreferencesRec *preferences_rec) ;
123 static XtPointer GetValues(
124 PreferencesRec *preferences_rec) ;
125 static XtPointer GetDefaultValues( void ) ;
126 static XtPointer GetResourceValues(
127 XrmDatabase data_base,
129 static void SetValues(
130 PreferencesRec *preferences_rec,
131 PreferencesData *preferences_data) ;
132 static void WriteResourceValues(
136 static void FreeValues(
137 PreferencesData *preferences_data) ;
138 static void ResetCallback(
140 XtPointer client_data,
141 XtPointer call_data) ;
142 static void ToggleCallback(
144 XtPointer client_data,
145 XtPointer call_data) ;
146 static void OkCallback(
148 PreferencesApply *apply_data,
149 XtPointer call_data) ;
150 static void ApplyCallback(
152 PreferencesApply *apply_data,
153 XtPointer call_data) ;
154 static void GetPreferencesValues(
155 PreferencesRec *preferences_rec,
156 PreferencesData *preferences_data) ;
158 /******** End Static Function Declarations ********/
161 static char * Order_by_file_type = "order_by_file_type";
162 static char * Order_by_alphabetical = "order_by_alphabetical";
163 static char * Order_by_date = "order_by_date";
164 static char * Order_by_size = "order_by_size";
165 static char * By_name = "by_name";
166 static char * By_name_and_icon = "by_name_and_icon";
167 static char * By_name_and_small_icon = "by_name_and_small_icon";
168 static char * By_attributes = "by_attributes";
169 static char * Direction_descending = "direction_descending";
170 static char * Direction_ascending = "direction_ascending";
171 static char * Single_directory = "single_directory";
172 static char * DirectoryTree = "directory_tree";
173 static char * Tree_files_never = "never";
174 static char * Tree_files_choose = "choose";
175 static char * Tree_files_always = "always";
176 static char * PreferencesName = "Preferences";
177 static char * Random_on = "random_on";
178 static char * Random_off = "random_off";
181 /* Resource definitions for the preferences dialog */
183 static DialogResource resources[] =
185 { "showType", SHOW_TYPE, sizeof(unsigned char),
186 XtOffset(PreferencesDataPtr, show_type),
187 (XtPointer) SINGLE_DIRECTORY, ShowTypeToString },
189 { "treeFiles", TREE_FILES, sizeof(unsigned char),
190 XtOffset(PreferencesDataPtr, tree_files),
191 (XtPointer) TREE_FILES_NEVER, TreeFilesToString },
193 { "view_single", VIEW, sizeof(unsigned char),
194 XtOffset(PreferencesDataPtr, view_single),
195 (XtPointer) BY_NAME_AND_ICON, ViewToString },
197 { "view_tree", VIEW, sizeof(unsigned char),
198 XtOffset(PreferencesDataPtr, view_tree),
199 (XtPointer) BY_NAME_AND_SMALL_ICON, ViewToString },
201 { "order", ORDER, sizeof(unsigned char),
202 XtOffset(PreferencesDataPtr, order),
203 (XtPointer) ORDER_BY_ALPHABETICAL, OrderToString },
205 { "direction", DIRECTION_RESRC, sizeof(unsigned char),
206 XtOffset(PreferencesDataPtr, direction),
207 (XtPointer) DIRECTION_ASCENDING, DirectionToString },
209 { "positionEnabled", RANDOM, sizeof(unsigned char),
210 XtOffset(PreferencesDataPtr, positionEnabled),
211 (XtPointer) RANDOM_OFF, RandomToString },
214 /* Callback function definitions */
217 * The Dialog Class structure.
219 static DialogClass preferencesClassRec =
224 (DialogInstallChangeProc) InstallChange,
225 (DialogInstallCloseProc) InstallClose,
226 (DialogDestroyProc) Destroy,
227 (DialogGetValuesProc) GetValues,
230 (DialogSetValuesProc) SetValues,
232 (DialogFreeValuesProc) FreeValues,
233 (DialogMapWindowProc) _DtGenericMapWindow,
237 DialogClass * preferencesClass = (DialogClass *) &preferencesClassRec;
242 /************************************************************************
246 ************************************************************************/
252 Widget *return_widget,
255 PreferencesRec * preferences_rec;
261 Widget direction_frame;
265 Widget headers_frame;
266 Widget position_frame;
268 XmString label_string;
270 Dimension offset, screenHeight;
274 /* Allocate the change directory dialog instance record. */
276 preferences_rec = (PreferencesRec *) XtMalloc (sizeof (PreferencesRec));
278 screenHeight = HeightOfScreen( XtScreen( parent ) );
279 /* We are supporting 3 sizes. They are: 1200, 1024, 480
280 For the sake of simplicity, process two of them.
282 if( screenHeight >= (Dimension) 1024 )
283 offset = (Dimension)5;
285 offset = (Dimension)1;
287 /* Create the shell, bulletin board and form used for the dialog. */
290 XtSetArg (args[n], XmNmwmFunctions, MWM_FUNC_MOVE
291 | MWM_FUNC_CLOSE); ++n;
292 XtSetArg (args[n], XmNmwmDecorations, MWM_DECOR_BORDER
293 | MWM_DECOR_TITLE); ++n;
294 XtSetArg (args[n], XmNallowShellResize, False); ++n;
295 preferences_rec->shell = shell =
296 XmCreateDialogShell (parent, "preferences", args, n);
299 /* Set the useAsyncGeo on the shell */
300 XtSetArg (args[0], XmNuseAsyncGeometry, True);
301 XtSetValues (XtParent(shell), args, 1);
304 XtSetArg (args[n], XmNmarginWidth, 1); n++;
305 XtSetArg (args[n], XmNmarginHeight, 1); n++;
306 XtSetArg (args[n], XmNshadowThickness, 1); n++;
307 XtSetArg (args[n], XmNshadowType, XmSHADOW_OUT); n++;
308 XtSetArg (args[n], XmNautoUnmanage, False); n++;
309 form = XmCreateForm (shell, "form", args, n);
310 XtAddCallback(form, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
311 HELP_PREFERENCES_DIALOG_STR);
314 /* Create the headers status line */
315 label_string = XmStringCreateLocalized ((GETMESSAGE(23,23, "Headers")));
317 XtSetArg (args[n], XmNtitleString, label_string); n++;
318 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
319 XtSetArg (args[n], XmNtopOffset, offset); n++;
320 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
321 XtSetArg (args[n], XmNrightOffset, offset); n++;
322 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
323 XtSetArg (args[n], XmNleftOffset, offset); n++;
324 XtSetArg (args[n], XmNmarginWidth, offset); n++;
325 XtSetArg (args[n], XmNmarginHeight, offset); n++;
326 headers_frame = _DtCreateTitleBox(form, "headers_frame", args, n);
327 XtManageChild (headers_frame);
328 XtAddCallback(headers_frame, XmNhelpCallback,
329 (XtCallbackProc)HelpRequestCB,
330 HELP_PREFERENCES_HEADERS_STR);
331 XmStringFree(label_string);
333 titleWidget = _DtTitleBoxGetTitleArea(headers_frame);
335 XtSetArg (args[0], XmNtraversalOn, False);
336 XtSetValues (titleWidget, args, 1);
339 group_form = XmCreateForm (headers_frame, "group_form", args, 0);
340 XtManageChild (group_form);
342 label_string = XmStringCreateLocalized ((GETMESSAGE(23,24, "Iconic Path")));
344 XtSetArg (args[n], XmNlabelString, label_string); n++;
345 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
346 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
347 preferences_rec->show_iconic_path = temp =
348 XmCreateToggleButtonGadget (group_form, "show_iconic_path", args, n);
349 XtManageChild (temp);
350 XmStringFree (label_string);
351 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
352 (XtPointer) preferences_rec);
353 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
354 HELP_PREFERENCES_HEADERS_STR);
356 label_string = XmStringCreateLocalized ((GETMESSAGE(23,36, "Text Path")));
358 XtSetArg (args[n], XmNlabelString, label_string); n++;
359 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
360 XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
361 XtSetArg (args[n], XmNleftWidget, preferences_rec->show_iconic_path);n++;
362 XtSetArg (args[n], XmNleftOffset, 10); n++;
363 preferences_rec->show_current_dir = temp =
364 XmCreateToggleButtonGadget (group_form, "show_current_dir", args, n);
365 XtManageChild (temp);
366 XmStringFree (label_string);
367 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback, (XtPointer) preferences_rec);
368 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
369 HELP_PREFERENCES_HEADERS_STR);
371 label_string = XmStringCreateLocalized ((GETMESSAGE(23,37, "Message Line")));
373 XtSetArg (args[n], XmNlabelString, label_string); n++;
374 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
375 XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
376 XtSetArg (args[n], XmNleftWidget, preferences_rec->show_current_dir);n++;
377 XtSetArg (args[n], XmNleftOffset, 10); n++;
378 preferences_rec->show_status_line = temp =
379 XmCreateToggleButtonGadget (group_form, "show_status_line", args, n);
380 XtManageChild (temp);
381 XmStringFree (label_string);
382 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback, (XtPointer) preferences_rec);
383 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
384 HELP_PREFERENCES_HEADERS_STR);
387 /* Create the positioning status line */
388 label_string = XmStringCreateLocalized ((GETMESSAGE(23,18, "Placement")));
390 XtSetArg (args[n], XmNtitleString, label_string); n++;
391 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
392 XtSetArg (args[n], XmNtopWidget, headers_frame); n++;
393 XtSetArg (args[n], XmNtopOffset, offset); n++;
394 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
395 XtSetArg (args[n], XmNrightOffset, offset); n++;
396 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
397 XtSetArg (args[n], XmNleftOffset, offset); n++;
398 XtSetArg (args[n], XmNmarginWidth, offset); n++;
399 XtSetArg (args[n], XmNmarginHeight, offset); n++;
400 position_frame = _DtCreateTitleBox(form, "position_frame", args, n);
401 XtManageChild (position_frame);
402 XtAddCallback(position_frame, XmNhelpCallback,
403 (XtCallbackProc)HelpRequestCB,
404 HELP_PREFERENCES_PLACEMENT_STR);
405 XmStringFree(label_string);
407 titleWidget = _DtTitleBoxGetTitleArea(position_frame);
409 XtSetArg (args[0], XmNtraversalOn, False);
410 XtSetValues (titleWidget, args, 1);
413 group_form = XmCreateForm (position_frame, "group_form", args, 0);
414 XtManageChild (group_form);
416 label_string = XmStringCreateLocalized ((GETMESSAGE(23,20, "As Placed")));
418 XtSetArg (args[n], XmNlabelString, label_string); n++;
419 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
420 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
421 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
422 preferences_rec->random_on = temp =
423 XmCreateToggleButtonGadget (group_form, "random_on", args, n);
424 XtManageChild (temp);
425 XmStringFree (label_string);
426 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
427 (XtPointer) preferences_rec);
428 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
429 HELP_PREFERENCES_PLACEMENT_STR);
431 label_string = XmStringCreateLocalized ((GETMESSAGE(23,35, "Rows and Columns")));
433 XtSetArg (args[n], XmNlabelString, label_string); n++;
434 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
435 XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
436 XtSetArg (args[n], XmNleftWidget, preferences_rec->random_on); n++;
437 XtSetArg (args[n], XmNleftOffset, 10); n++;
438 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
439 preferences_rec->random_off = temp =
440 XmCreateToggleButtonGadget (group_form, "random_off", args, n);
441 XtManageChild (temp);
442 XmStringFree (label_string);
443 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback, (XtPointer) preferences_rec);
444 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
445 HELP_PREFERENCES_PLACEMENT_STR);
448 /* Create the show container and widgets */
450 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 7, "Show")));
452 XtSetArg (args[n], XmNtitleString, label_string); n++;
453 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
454 XtSetArg (args[n], XmNtopWidget, position_frame); n++;
455 XtSetArg (args[n], XmNtopOffset, offset); n++;
456 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
457 XtSetArg (args[n], XmNleftOffset, offset); n++;
458 XtSetArg (args[n], XmNmarginWidth, offset); n++;
459 XtSetArg (args[n], XmNmarginHeight, offset); n++;
460 show_frame = _DtCreateTitleBox (form, "show_frame", args, n);
461 XtManageChild (show_frame);
462 XmStringFree (label_string);
463 XtAddCallback(show_frame, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
464 HELP_PREFERENCES_SHOW_STR);
466 titleWidget = _DtTitleBoxGetTitleArea(show_frame);
468 XtSetArg (args[0], XmNtraversalOn, False);
469 XtSetValues (titleWidget, args, 1);
471 group_form = XmCreateForm (show_frame, "show_form", args, 0);
472 XtManageChild (group_form);
474 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 8, "By Single Folder")));
476 XtSetArg (args[n], XmNlabelString, label_string); n++;
477 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
478 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
479 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
480 preferences_rec->show_single = temp =
481 XmCreateToggleButtonGadget (group_form, "by_single_directory", args, n);
482 XtManageChild (temp);
483 XmStringFree (label_string);
484 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
485 (XtPointer) preferences_rec);
486 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
487 HELP_PREFERENCES_SHOW_STR);
490 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 9, "By Tree")));
492 XtSetArg (args[n], XmNlabelString, label_string); n++;
493 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
494 XtSetArg (args[n], XmNtopWidget, temp); n++;
495 XtSetArg (args[n], XmNtopOffset, offset); n++;
496 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
497 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
498 preferences_rec->show_multiple = temp =
499 XmCreateToggleButtonGadget (group_form, "by_directory_tree", args, n);
500 XtManageChild (temp);
501 XmStringFree (label_string);
502 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
503 (XtPointer) preferences_rec);
504 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
505 HELP_PREFERENCES_SHOW_STR);
507 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 27, "Folders only")));
509 XtSetArg (args[n], XmNlabelString, label_string); n++;
510 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
511 XtSetArg (args[n], XmNtopWidget, temp); n++;
512 XtSetArg (args[n], XmNtopOffset, offset); n++;
513 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
514 XtSetArg (args[n], XmNleftOffset, 25); n++;
515 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
516 preferences_rec->tree_files_never = temp =
517 XmCreateToggleButtonGadget (group_form, "tree_files_never", args, n);
518 XtManageChild (temp);
519 XmStringFree (label_string);
520 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
521 (XtPointer) preferences_rec);
522 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
523 HELP_PREFERENCES_SHOW_STR);
525 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 28, "Folders, then Files")));
527 XtSetArg (args[n], XmNlabelString, label_string); n++;
528 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
529 XtSetArg (args[n], XmNtopWidget, temp); n++;
530 XtSetArg (args[n], XmNtopOffset, offset); n++;
531 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
532 XtSetArg (args[n], XmNleftOffset, 25); n++;
533 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
534 preferences_rec->tree_files_choose = temp =
535 XmCreateToggleButtonGadget (group_form, "tree_files_choose", args, n);
536 XtManageChild (temp);
537 XmStringFree (label_string);
538 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
539 (XtPointer) preferences_rec);
540 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
541 HELP_PREFERENCES_SHOW_STR);
543 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 29, "Folders and Files")));
545 XtSetArg (args[n], XmNlabelString, label_string); n++;
546 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
547 XtSetArg (args[n], XmNtopWidget, temp); n++;
548 XtSetArg (args[n], XmNtopOffset, offset); n++;
549 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
550 XtSetArg (args[n], XmNleftOffset, 25); n++;
551 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
552 preferences_rec->tree_files_always = temp =
553 XmCreateToggleButtonGadget (group_form, "tree_files_always", args, n);
554 XtManageChild (temp);
555 XmStringFree (label_string);
556 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
557 (XtPointer) preferences_rec);
558 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
559 HELP_PREFERENCES_SHOW_STR);
562 /* Create the view container and widgets */
564 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23,31, "Representation")));
566 XtSetArg (args[n], XmNtitleString, label_string); n++;
567 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
568 XtSetArg (args[n], XmNtopWidget, position_frame); n++;
569 XtSetArg (args[n], XmNtopOffset, offset); n++;
570 XtSetArg (args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;
571 XtSetArg (args[n], XmNleftOffset, 10); n++;
572 XtSetArg (args[n], XmNleftWidget, show_frame); n++;
573 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
574 XtSetArg (args[n], XmNrightOffset, offset); n++;
575 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
576 XtSetArg (args[n], XmNbottomWidget, show_frame); n++;
577 XtSetArg (args[n], XmNmarginWidth, offset); n++;
578 XtSetArg (args[n], XmNmarginHeight, offset); n++;
579 view_frame = _DtCreateTitleBox(form, "view_frame", args, n);
580 XtManageChild (view_frame);
581 XmStringFree (label_string);
582 XtAddCallback(view_frame, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
583 HELP_PREFERENCES_VIEW_STR);
585 titleWidget = _DtTitleBoxGetTitleArea(view_frame);
587 XtSetArg (args[0], XmNtraversalOn, False);
588 XtSetValues (titleWidget, args, 1);
590 group_form = XmCreateForm (view_frame, "view_form", args, 0);
591 XtManageChild (group_form);
593 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23,32, "By Name Only")));
595 XtSetArg (args[n], XmNlabelString, label_string); n++;
596 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
597 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
598 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
599 preferences_rec->by_name = temp =
600 XmCreateToggleButtonGadget (group_form, "by_name", args, n);
601 XtManageChild (temp);
602 XmStringFree (label_string);
603 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
604 (XtPointer) preferences_rec);
605 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
606 HELP_PREFERENCES_VIEW_STR);
609 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23,33, "By Large Icons")));
611 XtSetArg (args[n], XmNlabelString, label_string); n++;
612 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
613 XtSetArg (args[n], XmNtopWidget, temp); n++;
614 XtSetArg (args[n], XmNtopOffset, offset); n++;
615 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
616 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
617 preferences_rec->by_name_and_icon = temp =
618 XmCreateToggleButtonGadget (group_form, "by_name_and_icon", args, n);
619 XtManageChild (temp);
620 XmStringFree (label_string);
621 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
622 (XtPointer) preferences_rec);
623 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
624 HELP_PREFERENCES_VIEW_STR);
627 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23,34, "By Small Icons")));
629 XtSetArg (args[n], XmNlabelString, label_string); n++;
630 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
631 XtSetArg (args[n], XmNtopWidget, temp); n++;
632 XtSetArg (args[n], XmNtopOffset, offset); n++;
633 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
634 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
635 preferences_rec->by_name_and_small_icon = temp =
636 XmCreateToggleButtonGadget (group_form, "by_name_and_small_icon", args, n);
637 XtManageChild (temp);
638 XmStringFree (label_string);
639 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
640 (XtPointer) preferences_rec);
641 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
642 HELP_PREFERENCES_VIEW_STR);
646 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23,6, "By Name, date, size ...")));
648 XtSetArg (args[n], XmNlabelString, label_string); n++;
649 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
650 XtSetArg (args[n], XmNtopWidget, temp); n++;
651 XtSetArg (args[n], XmNtopOffset, offset); n++;
652 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
653 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
654 preferences_rec->by_attributes = temp =
655 XmCreateToggleButtonGadget (group_form, "by_attributes", args, n);
656 XtManageChild (temp);
657 XmStringFree (label_string);
658 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
659 (XtPointer) preferences_rec);
660 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
661 HELP_PREFERENCES_VIEW_STR);
664 /* Create the file order container and widgets */
666 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 10, "Order")));
668 XtSetArg (args[n], XmNtitleString, label_string); n++;
669 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
670 XtSetArg (args[n], XmNtopWidget, view_frame); n++;
671 XtSetArg (args[n], XmNtopOffset, offset); n++;
672 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
673 XtSetArg (args[n], XmNleftOffset, offset); n++;
674 XtSetArg (args[n], XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
675 XtSetArg (args[n], XmNrightWidget, show_frame); n++;
676 XtSetArg (args[n], XmNmarginWidth, offset); n++;
677 XtSetArg (args[n], XmNmarginHeight, offset); n++;
678 order_frame = _DtCreateTitleBox (form, "order_frame", args, n);
679 XtManageChild (order_frame);
680 XmStringFree (label_string);
681 XtAddCallback(order_frame, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
682 HELP_PREFERENCES_ORDER_STR);
684 titleWidget = _DtTitleBoxGetTitleArea(order_frame);
686 XtSetArg (args[0], XmNtraversalOn, False);
687 XtSetValues (titleWidget, args, 1);
689 group_form = XmCreateForm (order_frame, "order_form", args, 0);
690 XtManageChild (group_form);
692 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 12, "Alphabetically")));
694 XtSetArg (args[n], XmNlabelString, label_string); n++;
695 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
696 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
697 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
698 preferences_rec->order_alphabetical = temp =
699 XmCreateToggleButtonGadget (group_form, "alphabetically", args, n);
700 XtManageChild (temp);
701 XmStringFree (label_string);
702 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
703 (XtPointer) preferences_rec);
704 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
705 HELP_PREFERENCES_ORDER_STR);
708 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 11, "By File Type")));
710 XtSetArg (args[n], XmNlabelString, label_string); n++;
711 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
712 XtSetArg (args[n], XmNtopWidget, temp); n++;
713 XtSetArg (args[n], XmNtopOffset, offset); n++;
714 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
715 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
716 preferences_rec->order_file_type = temp =
717 XmCreateToggleButtonGadget (group_form, "by_file_type", args, n);
718 XtManageChild (temp);
719 XmStringFree (label_string);
720 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
721 (XtPointer) preferences_rec);
722 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
723 HELP_PREFERENCES_ORDER_STR);
726 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 13, "By Date")));
728 XtSetArg (args[n], XmNlabelString, label_string); n++;
729 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
730 XtSetArg (args[n], XmNtopWidget, temp); n++;
731 XtSetArg (args[n], XmNtopOffset, offset); n++;
732 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
733 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
734 preferences_rec->order_date = temp =
735 XmCreateToggleButtonGadget (group_form, "by_date", args, n);
736 XtManageChild (temp);
737 XmStringFree (label_string);
738 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
739 (XtPointer) preferences_rec);
740 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
741 HELP_PREFERENCES_ORDER_STR);
744 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 14, "By Size")));
747 XtSetArg (args[n], XmNlabelString, label_string); n++;
748 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
749 XtSetArg (args[n], XmNtopWidget, temp); n++;
750 XtSetArg (args[n], XmNtopOffset, offset); n++;
751 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
752 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
753 preferences_rec->order_size = temp =
754 XmCreateToggleButtonGadget (group_form, "by_size", args, n);
755 XtManageChild (temp);
756 XmStringFree (label_string);
757 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
758 (XtPointer) preferences_rec);
759 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
760 HELP_PREFERENCES_ORDER_STR);
763 /* Create the file direction container and widgets */
765 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 15, "Direction")));
767 XtSetArg (args[n], XmNtitleString, label_string); n++;
768 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
769 XtSetArg (args[n], XmNtopWidget, view_frame); n++;
770 XtSetArg (args[n], XmNtopOffset, offset); n++;
771 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
772 XtSetArg (args[n], XmNbottomWidget, order_frame); n++;
773 XtSetArg (args[n], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); n++;
774 XtSetArg (args[n], XmNleftWidget, view_frame); n++;
775 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
776 XtSetArg (args[n], XmNrightOffset, offset); n++;
777 XtSetArg (args[n], XmNmarginWidth, offset); n++;
778 XtSetArg (args[n], XmNmarginHeight, offset); n++;
779 direction_frame = _DtCreateTitleBox (form, "direction_frame", args, n);
780 XtManageChild (direction_frame);
781 XmStringFree (label_string);
782 XtAddCallback(direction_frame, XmNhelpCallback,
783 (XtCallbackProc)HelpRequestCB,
784 HELP_PREFERENCES_DIRECTION_STR);
786 titleWidget = _DtTitleBoxGetTitleArea(direction_frame);
788 XtSetArg (args[0], XmNtraversalOn, False);
789 XtSetValues (titleWidget, args, 1);
791 group_form = XmCreateForm (direction_frame, "direction_form", args, 0);
792 XtManageChild (group_form);
794 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 16, "Ascending")));
797 XtSetArg (args[n], XmNlabelString, label_string); n++;
798 XtSetArg (args[n], XmNtopAttachment, XmATTACH_FORM); n++;
799 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
800 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
801 preferences_rec->direction_ascending = temp =
802 XmCreateToggleButtonGadget (group_form, "ascending", args, n);
803 XtManageChild (temp);
804 XmStringFree (label_string);
805 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
806 (XtPointer) preferences_rec);
807 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
808 HELP_PREFERENCES_DIRECTION_STR);
811 label_string = XmStringCreateLocalized (((char *)GETMESSAGE(23, 17, "Descending")));
814 XtSetArg (args[n], XmNlabelString, label_string); n++;
815 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
816 XtSetArg (args[n], XmNtopWidget, temp); n++;
817 XtSetArg (args[n], XmNtopOffset, offset); n++;
818 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
819 XtSetArg (args[n], XmNindicatorType, XmONE_OF_MANY); n++;
820 preferences_rec->direction_descending = temp =
821 XmCreateToggleButtonGadget (group_form, "descending", args, n);
822 XtManageChild (temp);
823 XmStringFree (label_string);
824 XtAddCallback (temp, XmNvalueChangedCallback, ToggleCallback,
825 (XtPointer) preferences_rec);
826 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
827 HELP_PREFERENCES_DIRECTION_STR);
830 /* Create a separator between the buttons */
833 XtSetArg (args[n], XmNleftAttachment, XmATTACH_FORM); n++;
834 XtSetArg (args[n], XmNrightAttachment, XmATTACH_FORM); n++;
835 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
836 XtSetArg (args[n], XmNtopWidget, order_frame); n++;
837 XtSetArg (args[n], XmNtopOffset, offset); n++;
838 separator = XmCreateSeparatorGadget (form, "separator", args, n);
839 XtManageChild (separator);
842 /* Create the ok, apply, reset, cancel and help buttons */
845 XtSetArg (args[n], XmNlabelString, okXmString); n++;
846 XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
847 XtSetArg (args[n], XmNleftPosition, 1); n++;
848 XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
849 XtSetArg (args[n], XmNrightPosition, 19); n++;
850 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
851 XtSetArg (args[n], XmNtopWidget, separator); n++;
852 XtSetArg (args[n], XmNtopOffset, offset); n++;
853 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
854 XtSetArg (args[n], XmNbottomOffset, offset); n++;
855 XtSetArg (args[n], XmNmarginWidth, 4); n++;
856 XtSetArg (args[n], XmNmarginHeight, 4); n++;
857 preferences_rec->ok = temp =
858 XmCreatePushButtonGadget (form, "ok", args, n);
859 XtManageChild (temp);
860 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
861 HELP_PREFERENCES_DIALOG_STR);
864 XtSetArg (args[n], XmNlabelString, applyXmString); n++;
865 XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
866 XtSetArg (args[n], XmNleftPosition, 21); n++;
867 XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
868 XtSetArg (args[n], XmNrightPosition, 39); n++;
869 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
870 XtSetArg (args[n], XmNtopWidget, separator); n++;
871 XtSetArg (args[n], XmNtopOffset, offset); n++;
872 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
873 XtSetArg (args[n], XmNbottomOffset, offset); n++;
874 XtSetArg (args[n], XmNmarginWidth, 4); n++;
875 XtSetArg (args[n], XmNmarginHeight, 4); n++;
876 preferences_rec->apply = temp =
877 XmCreatePushButtonGadget (form, "apply", args, n);
878 XtManageChild (temp);
879 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
880 HELP_PREFERENCES_DIALOG_STR);
883 label_string = XmStringCreateLocalized ((GETMESSAGE(23,30, "Defaults")));
886 XtSetArg (args[n], XmNlabelString, label_string); n++;
887 XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
888 XtSetArg (args[n], XmNleftPosition, 41); n++;
889 XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
890 XtSetArg (args[n], XmNrightPosition, 59); n++;
891 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
892 XtSetArg (args[n], XmNtopWidget, separator); n++;
893 XtSetArg (args[n], XmNtopOffset, offset); n++;
894 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
895 XtSetArg (args[n], XmNbottomOffset, offset); n++;
896 XtSetArg (args[n], XmNmarginWidth, 4); n++;
897 XtSetArg (args[n], XmNmarginHeight, 4); n++;
898 preferences_rec->reset = temp =
899 XmCreatePushButtonGadget (form, "defaults", args, n);
900 XmStringFree (label_string);
901 XtManageChild (temp);
902 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
903 HELP_PREFERENCES_DIALOG_STR);
904 XtAddCallback (temp, XmNactivateCallback, ResetCallback,
905 (XtPointer) preferences_rec);
909 XtSetArg (args[n], XmNlabelString, cancelXmString); n++;
910 XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
911 XtSetArg (args[n], XmNleftPosition, 61); n++;
912 XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
913 XtSetArg (args[n], XmNrightPosition, 79); n++;
914 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
915 XtSetArg (args[n], XmNtopWidget, separator); n++;
916 XtSetArg (args[n], XmNtopOffset, offset); n++;
917 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
918 XtSetArg (args[n], XmNbottomOffset, offset); n++;
919 XtSetArg (args[n], XmNmarginWidth, 4); n++;
920 XtSetArg (args[n], XmNmarginHeight, 4); n++;
921 preferences_rec->close = temp =
922 XmCreatePushButtonGadget (form, "close", args, n);
923 XtManageChild (temp);
924 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
925 HELP_PREFERENCES_DIALOG_STR);
929 XtSetArg (args[n], XmNlabelString, helpXmString); n++;
930 XtSetArg (args[n], XmNleftAttachment, XmATTACH_POSITION); n++;
931 XtSetArg (args[n], XmNleftPosition, 81); n++;
932 XtSetArg (args[n], XmNrightAttachment, XmATTACH_POSITION); n++;
933 XtSetArg (args[n], XmNrightPosition, 99); n++;
934 XtSetArg (args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;
935 XtSetArg (args[n], XmNtopWidget, separator); n++;
936 XtSetArg (args[n], XmNtopOffset, offset); n++;
937 XtSetArg (args[n], XmNbottomAttachment, XmATTACH_FORM); n++;
938 XtSetArg (args[n], XmNbottomOffset, offset); n++;
939 XtSetArg (args[n], XmNmarginWidth, 4); n++;
940 XtSetArg (args[n], XmNmarginHeight, 4); n++;
941 preferences_rec->help = temp =
942 XmCreatePushButtonGadget (form, "help", args, n);
943 XtManageChild (temp);
944 XtAddCallback(temp, XmNactivateCallback, (XtCallbackProc)HelpRequestCB,
945 HELP_PREFERENCES_DIALOG_STR);
946 XtAddCallback(temp, XmNhelpCallback, (XtCallbackProc)HelpRequestCB,
947 HELP_PREFERENCES_DIALOG_STR);
950 XtSetArg (args[0], XmNcancelButton, preferences_rec->close);
951 XtSetArg (args[1], XmNdefaultButton, preferences_rec->ok);
952 XtSetValues (form, args, 2);
955 /* Set the return values for the dialog widget and dialog instance. */
957 *return_widget = form;
958 *dialog = (XtPointer) preferences_rec;
964 /************************************************************************
968 ************************************************************************/
972 PreferencesRec *preferences_rec,
973 XtCallbackProc callback,
974 XtPointer client_data )
976 PreferencesApply * apply_data;
979 /* Setup the callback data to be sent to the Ok callback. */
980 /* This contains the encapsulation callback to invoke upon */
981 /* the data within the dialog being changed. */
983 apply_data = (PreferencesApply *) XtMalloc (sizeof (PreferencesApply));
984 apply_data->callback = callback;
985 apply_data->client_data = client_data;
986 apply_data->preferences_rec = (XtPointer) preferences_rec;
987 preferences_rec->apply_data = apply_data;
990 /* Add the callbacks for list item insertion. */
992 XtAddCallback (preferences_rec->apply, XmNactivateCallback,
993 (XtCallbackProc)ApplyCallback, (XtPointer) apply_data);
995 XtAddCallback (preferences_rec->ok, XmNactivateCallback,
996 (XtCallbackProc)OkCallback, (XtPointer) apply_data);
1002 /************************************************************************
1006 ************************************************************************/
1010 PreferencesRec *preferences_rec,
1011 XtCallbackProc callback,
1012 XtPointer client_data )
1014 Atom delete_window_atom;
1016 XtAddCallback (preferences_rec->close,
1017 XmNactivateCallback, callback, client_data);
1019 delete_window_atom = XmInternAtom (XtDisplay(preferences_rec->shell),
1020 "WM_DELETE_WINDOW", True);
1021 XmRemoveWMProtocols( preferences_rec->shell, &delete_window_atom, 1 );
1022 XmAddWMProtocolCallback( preferences_rec->shell, delete_window_atom,
1023 callback, (XtPointer) client_data );
1029 /************************************************************************
1033 ************************************************************************/
1037 PreferencesRec *preferences_rec )
1039 XtDestroyWidget (preferences_rec->shell);
1040 XtFree ((char *) preferences_rec->apply_data);
1041 XtFree ((char *) preferences_rec);
1047 /************************************************************************
1051 ************************************************************************/
1055 PreferencesRec *preferences_rec )
1057 PreferencesData * preferences_data;
1061 /* Allocate and initialize the change dir dialog data. */
1063 preferences_data = (PreferencesData *) XtMalloc (sizeof (PreferencesData));
1065 preferences_data->displayed = True;
1067 XtSetArg (args[0], XmNx, &preferences_data->x);
1068 XtSetArg (args[1], XmNy, &preferences_data->y);
1069 XtSetArg (args[2], XmNwidth, &preferences_data->width);
1070 XtSetArg (args[3], XmNheight, &preferences_data->height);
1071 XtGetValues (preferences_rec->shell, args, 4);
1073 GetPreferencesValues (preferences_rec, preferences_data);
1075 return ((XtPointer) preferences_data);
1081 /************************************************************************
1085 ************************************************************************/
1088 GetDefaultValues( void )
1090 PreferencesData * preferences_data;
1092 /* Allocate and initialize the default change dir dialog data. */
1094 preferences_data = (PreferencesData *) XtMalloc (sizeof (PreferencesData));
1096 preferences_data->displayed = False;
1097 preferences_data->x = 0;
1098 preferences_data->y = 0;
1099 preferences_data->height = 0;
1100 preferences_data->width = 0;
1102 preferences_data->show_type = SINGLE_DIRECTORY;
1103 preferences_data->tree_files = TREE_FILES_NEVER;
1104 preferences_data->view_single = BY_NAME_AND_ICON;
1105 preferences_data->view_tree = BY_NAME_AND_SMALL_ICON;
1106 preferences_data->order = ORDER_BY_ALPHABETICAL;
1107 preferences_data->direction = DIRECTION_ASCENDING;
1108 preferences_data->positionEnabled = RANDOM_OFF;
1110 return ((XtPointer) preferences_data);
1116 /************************************************************************
1120 ************************************************************************/
1124 XrmDatabase data_base,
1127 PreferencesData * preferences_data;
1130 /* Allocate and get the resources for change dir dialog data. */
1132 preferences_data = (PreferencesData *) XtMalloc (sizeof (PreferencesData));
1134 _DtDialogGetResources (data_base, name_list, PreferencesName,
1135 (char *)preferences_data, resources,
1136 preferencesClass->resource_count);
1138 return ((XtPointer) preferences_data);
1144 /************************************************************************
1148 ************************************************************************/
1152 PreferencesRec *preferences_rec,
1153 PreferencesData *preferences_data )
1157 unsigned char *viewP;
1160 XtSetArg (true_args[0], XmNset, True);
1161 XtSetArg (false_args[0], XmNset, False);
1163 if (preferences_data->show_type == SINGLE_DIRECTORY)
1165 XtSetValues (preferences_rec->show_single, true_args, 1);
1166 XtSetValues (preferences_rec->show_multiple, false_args, 1);
1167 if( trashFileMgrData
1168 &&(PreferencesData *)trashFileMgrData->preferences->data ==
1170 XtSetSensitive (XtParent (preferences_rec->show_multiple), False);
1172 XtSetSensitive (XtParent (preferences_rec->show_multiple), True);
1174 XtSetSensitive (preferences_rec->tree_files_never, False);
1175 XtSetSensitive (preferences_rec->tree_files_choose, False);
1176 XtSetSensitive (preferences_rec->tree_files_always, False);
1177 viewP = &preferences_data->view_single;
1179 if (*viewP == BY_ATTRIBUTES)
1180 XtSetSensitive (XtParent (preferences_rec->random_on), False);
1182 XtSetSensitive (XtParent (preferences_rec->random_on), True);
1187 XtSetValues (preferences_rec->show_single, false_args, 1);
1188 XtSetValues (preferences_rec->show_multiple, true_args, 1);
1189 XtSetSensitive (XtParent (preferences_rec->random_on), False);
1190 XtSetSensitive (preferences_rec->tree_files_never, True);
1191 XtSetSensitive (preferences_rec->tree_files_choose, True);
1192 XtSetSensitive (preferences_rec->tree_files_always, True);
1193 viewP = &preferences_data->view_tree;
1196 if (preferences_data->tree_files == TREE_FILES_NEVER)
1198 XtSetValues (preferences_rec->tree_files_never, true_args, 1);
1199 XtSetValues (preferences_rec->tree_files_choose, false_args, 1);
1200 XtSetValues (preferences_rec->tree_files_always, false_args, 1);
1202 else if (preferences_data->tree_files == TREE_FILES_CHOOSE)
1204 XtSetValues (preferences_rec->tree_files_never, false_args, 1);
1205 XtSetValues (preferences_rec->tree_files_choose, true_args, 1);
1206 XtSetValues (preferences_rec->tree_files_always, false_args, 1);
1208 else /* preferences_data->tree_files == TREE_FILES_ALWAYS */
1210 XtSetValues (preferences_rec->tree_files_never, false_args, 1);
1211 XtSetValues (preferences_rec->tree_files_choose, false_args, 1);
1212 XtSetValues (preferences_rec->tree_files_always, true_args, 1);
1215 preferences_rec->view_single = preferences_data->view_single;
1216 preferences_rec->view_tree = preferences_data->view_tree;
1218 if (*viewP == BY_NAME)
1220 XtSetValues (preferences_rec->by_name, true_args, 1);
1221 XtSetValues (preferences_rec->by_name_and_icon, false_args, 1);
1222 XtSetValues (preferences_rec->by_name_and_small_icon, false_args, 1);
1223 XtSetValues (preferences_rec->by_attributes, false_args, 1);
1225 else if (*viewP == BY_NAME_AND_ICON)
1227 XtSetValues (preferences_rec->by_name, false_args, 1);
1228 XtSetValues (preferences_rec->by_name_and_icon, true_args, 1);
1229 XtSetValues (preferences_rec->by_name_and_small_icon, false_args, 1);
1230 XtSetValues (preferences_rec->by_attributes, false_args, 1);
1232 else if (*viewP == BY_NAME_AND_SMALL_ICON)
1234 XtSetValues (preferences_rec->by_name, false_args, 1);
1235 XtSetValues (preferences_rec->by_name_and_icon, false_args, 1);
1236 XtSetValues (preferences_rec->by_name_and_small_icon, true_args, 1);
1237 XtSetValues (preferences_rec->by_attributes, false_args, 1);
1239 else if (*viewP == BY_ATTRIBUTES)
1241 XtSetValues (preferences_rec->by_name, false_args, 1);
1242 XtSetValues (preferences_rec->by_name_and_icon, false_args, 1);
1243 XtSetValues (preferences_rec->by_name_and_small_icon, false_args, 1);
1244 XtSetValues (preferences_rec->by_attributes, true_args, 1);
1247 if (preferences_data->order == ORDER_BY_FILE_TYPE)
1249 XtSetValues (preferences_rec->order_file_type, true_args, 1);
1250 XtSetValues (preferences_rec->order_alphabetical, false_args, 1);
1251 XtSetValues (preferences_rec->order_date, false_args, 1);
1252 XtSetValues (preferences_rec->order_size, false_args, 1);
1254 else if (preferences_data->order == ORDER_BY_ALPHABETICAL)
1256 XtSetValues (preferences_rec->order_file_type, false_args, 1);
1257 XtSetValues (preferences_rec->order_alphabetical, true_args, 1);
1258 XtSetValues (preferences_rec->order_date, false_args, 1);
1259 XtSetValues (preferences_rec->order_size, false_args, 1);
1261 else if (preferences_data->order == ORDER_BY_DATE)
1263 XtSetValues (preferences_rec->order_file_type, false_args, 1);
1264 XtSetValues (preferences_rec->order_alphabetical, false_args, 1);
1265 XtSetValues (preferences_rec->order_date, true_args, 1);
1266 XtSetValues (preferences_rec->order_size, false_args, 1);
1268 else if (preferences_data->order == ORDER_BY_SIZE)
1270 XtSetValues (preferences_rec->order_file_type, false_args, 1);
1271 XtSetValues (preferences_rec->order_alphabetical, false_args, 1);
1272 XtSetValues (preferences_rec->order_date, false_args, 1);
1273 XtSetValues (preferences_rec->order_size, true_args, 1);
1276 if (preferences_data->direction == DIRECTION_ASCENDING)
1278 XtSetValues (preferences_rec->direction_ascending, true_args, 1);
1279 XtSetValues (preferences_rec->direction_descending, false_args, 1);
1281 if (preferences_data->direction == DIRECTION_DESCENDING)
1283 XtSetValues (preferences_rec->direction_ascending, false_args, 1);
1284 XtSetValues (preferences_rec->direction_descending, true_args, 1);
1287 if (preferences_data->positionEnabled == RANDOM_ON)
1289 XtSetValues (preferences_rec->random_on, true_args, 1);
1290 XtSetValues (preferences_rec->random_off, false_args, 1);
1292 if (preferences_data->positionEnabled == RANDOM_OFF)
1294 XtSetValues (preferences_rec->random_off, true_args, 1);
1295 XtSetValues (preferences_rec->random_on, false_args, 1);
1298 if( trashFileMgrData
1299 &&(PreferencesData *)trashFileMgrData->preferences->data ==
1302 XtSetSensitive( preferences_rec->show_iconic_path, False );
1303 XtSetSensitive( preferences_rec->show_current_dir, False );
1304 XtSetSensitive( preferences_rec->show_status_line, False );
1305 XtSetSensitive( preferences_rec->random_on, False );
1307 else if( showFilesystem )
1309 XtSetSensitive( preferences_rec->show_iconic_path, True );
1310 XtSetSensitive( preferences_rec->show_current_dir, True );
1311 XtSetSensitive( preferences_rec->show_status_line, True );
1312 XtSetSensitive( preferences_rec->random_on, True );
1315 if (preferences_data->show_iconic_path)
1316 XtSetValues (preferences_rec->show_iconic_path, true_args, 1);
1318 XtSetValues (preferences_rec->show_iconic_path, false_args, 1);
1320 if (preferences_data->show_current_dir)
1321 XtSetValues (preferences_rec->show_current_dir, true_args, 1);
1323 XtSetValues (preferences_rec->show_current_dir, false_args, 1);
1325 if (preferences_data->show_status_line)
1326 XtSetValues (preferences_rec->show_status_line, true_args, 1);
1328 XtSetValues (preferences_rec->show_status_line, false_args, 1);
1332 XtSetSensitive( preferences_rec->show_iconic_path, False );
1333 XtSetSensitive( preferences_rec->show_current_dir, False );
1334 XtSetSensitive( preferences_rec->show_status_line, False );
1335 XtSetSensitive( preferences_rec->random_on, True );
1342 /************************************************************************
1344 * WriteResourceValues
1346 ************************************************************************/
1349 WriteResourceValues(
1354 PreferencesData * preferences_data = (PreferencesData *) values->data;
1355 PreferencesRec * preferences_rec;
1359 /* If the dialog is currently displayed, update the geometry */
1360 /* fields to their current values. */
1362 if (preferences_data->displayed == True)
1364 _DtGenericUpdateWindowPosition(values);
1365 preferences_rec = (PreferencesRec *) _DtGetDialogInstance (values);
1368 _DtDialogPutResources (fd, name_list, PreferencesName, values->data,
1369 resources, preferencesClass->resource_count);
1375 /************************************************************************
1379 ************************************************************************/
1383 PreferencesData *preferences_data )
1385 XtFree ((char *) preferences_data);
1391 /************************************************************************
1395 ************************************************************************/
1400 XtPointer client_data,
1401 XtPointer call_data )
1403 PreferencesRec * preferences_rec = (PreferencesRec *) client_data;
1404 DialogData * dialog_data;
1405 PreferencesData * preferences_data;
1407 dialog_data = _DtGetInstanceData ((XtPointer)preferences_rec);
1408 preferences_data = (PreferencesData *) dialog_data->data;
1410 preferences_data->show_type = SINGLE_DIRECTORY;
1411 preferences_data->tree_files = TREE_FILES_NEVER;
1412 preferences_data->view_single = BY_NAME_AND_ICON;
1413 preferences_data->view_tree = BY_NAME_AND_SMALL_ICON;
1414 preferences_data->order = ORDER_BY_ALPHABETICAL;
1415 preferences_data->direction = DIRECTION_ASCENDING;
1416 preferences_data->positionEnabled = RANDOM_OFF;
1417 preferences_data->show_iconic_path = True;
1418 preferences_data->show_current_dir = True;
1419 preferences_data->show_status_line = True;
1421 /* Get the current data for the dialog and redisplay. */
1423 SetValues (preferences_rec, (PreferencesData *) dialog_data->data);
1429 /************************************************************************
1432 * Handle the one of many processing for the toggles.
1434 ************************************************************************/
1439 XtPointer client_data,
1440 XtPointer call_data )
1442 PreferencesRec * preferences_rec;
1443 DialogData * dialog_data;
1444 PreferencesData * preferences_data;
1446 unsigned char *viewP;
1453 preferences_rec = (PreferencesRec *) client_data;
1454 dialog_data = _DtGetInstanceData ((XtPointer)preferences_rec);
1455 preferences_data = (PreferencesData *) dialog_data->data;
1457 XtSetArg (false_args[0], XmNset, False);
1458 XtSetArg (true_args[0], XmNset, True);
1460 XtSetArg (args[0], XmNset, &set);
1461 XtGetValues (preferences_rec->show_multiple, args, 1);
1463 viewP = &preferences_rec->view_tree;
1465 viewP = &preferences_rec->view_single;
1467 if (w == preferences_rec->show_single)
1469 XtSetValues (preferences_rec->show_multiple, false_args, 1);
1470 XtSetValues (preferences_rec->show_single, true_args, 1);
1472 XtSetSensitive (XtParent (preferences_rec->random_on), True);
1473 XtSetSensitive (preferences_rec->tree_files_never, False);
1474 XtSetSensitive (preferences_rec->tree_files_choose, False);
1475 XtSetSensitive (preferences_rec->tree_files_always, False);
1477 if (preferences_rec->view_single == BY_NAME)
1478 w = preferences_rec->by_name;
1479 else if (preferences_rec->view_single == BY_NAME_AND_ICON)
1480 w = preferences_rec->by_name_and_icon;
1481 else if (preferences_rec->view_single == BY_NAME_AND_SMALL_ICON)
1482 w = preferences_rec->by_name_and_small_icon;
1485 w = preferences_rec->by_attributes;
1486 XtSetSensitive (XtParent (preferences_rec->random_on), False);
1488 showType = SINGLE_DIRECTORY;
1489 ToggleCallback (w, client_data, call_data);
1491 else if (w == preferences_rec->show_multiple)
1493 XtSetValues (preferences_rec->show_single, false_args, 1);
1494 XtSetValues (preferences_rec->show_multiple, true_args, 1);
1496 XtSetSensitive (XtParent (preferences_rec->random_on), False);
1497 XtSetSensitive (preferences_rec->tree_files_never, True);
1498 XtSetSensitive (preferences_rec->tree_files_choose, True);
1499 XtSetSensitive (preferences_rec->tree_files_always, True);
1501 if (preferences_rec->view_tree == BY_NAME)
1502 w = preferences_rec->by_name;
1503 else if (preferences_rec->view_tree == BY_NAME_AND_ICON)
1504 w = preferences_rec->by_name_and_icon;
1505 else if (preferences_rec->view_tree == BY_NAME_AND_SMALL_ICON)
1506 w = preferences_rec->by_name_and_small_icon;
1508 w = preferences_rec->by_attributes;
1510 showType = MULTIPLE_DIRECTORY;
1511 ToggleCallback (w, client_data, call_data);
1513 else if (w == preferences_rec->tree_files_never)
1515 XtSetValues (preferences_rec->tree_files_choose, false_args, 1);
1516 XtSetValues (preferences_rec->tree_files_always, false_args, 1);
1517 XtSetValues (preferences_rec->tree_files_never, true_args, 1);
1519 else if (w == preferences_rec->tree_files_choose)
1521 XtSetValues (preferences_rec->tree_files_never, false_args, 1);
1522 XtSetValues (preferences_rec->tree_files_always, false_args, 1);
1523 XtSetValues (preferences_rec->tree_files_choose, true_args, 1);
1525 else if (w == preferences_rec->tree_files_always)
1527 XtSetValues (preferences_rec->tree_files_never, false_args, 1);
1528 XtSetValues (preferences_rec->tree_files_choose, false_args, 1);
1529 XtSetValues (preferences_rec->tree_files_always, true_args, 1);
1531 else if (w == preferences_rec->by_name)
1533 if (showType == SINGLE_DIRECTORY)
1534 XtSetSensitive (XtParent (preferences_rec->random_on), True);
1535 XtSetValues (preferences_rec->by_name_and_icon, false_args, 1);
1536 XtSetValues (preferences_rec->by_name_and_small_icon, false_args, 1);
1537 XtSetValues (preferences_rec->by_attributes, false_args, 1);
1538 XtSetValues (preferences_rec->by_name, true_args, 1);
1541 else if (w == preferences_rec->by_name_and_icon)
1543 if (showType == SINGLE_DIRECTORY)
1544 XtSetSensitive (XtParent (preferences_rec->random_on), True);
1545 XtSetValues (preferences_rec->by_name, false_args, 1);
1546 XtSetValues (preferences_rec->by_name_and_small_icon, false_args, 1);
1547 XtSetValues (preferences_rec->by_attributes, false_args, 1);
1548 XtSetValues (preferences_rec->by_name_and_icon, true_args, 1);
1549 *viewP = BY_NAME_AND_ICON;
1551 else if (w == preferences_rec->by_name_and_small_icon)
1553 if (showType == SINGLE_DIRECTORY)
1554 XtSetSensitive (XtParent (preferences_rec->random_on), True);
1555 XtSetValues (preferences_rec->by_name, false_args, 1);
1556 XtSetValues (preferences_rec->by_attributes, false_args, 1);
1557 XtSetValues (preferences_rec->by_name_and_icon, false_args, 1);
1558 XtSetValues (preferences_rec->by_name_and_small_icon, true_args, 1);
1559 *viewP = BY_NAME_AND_SMALL_ICON;
1561 else if (w == preferences_rec->by_attributes)
1563 XtSetSensitive (XtParent (preferences_rec->random_on), False);
1564 XtSetValues (preferences_rec->by_name, false_args, 1);
1565 XtSetValues (preferences_rec->by_name_and_icon, false_args, 1);
1566 XtSetValues (preferences_rec->by_name_and_small_icon, false_args, 1);
1567 XtSetValues (preferences_rec->by_attributes, true_args, 1);
1568 *viewP = BY_ATTRIBUTES;
1570 else if (w == preferences_rec->order_file_type)
1572 XtSetValues (preferences_rec->order_alphabetical, false_args, 1);
1573 XtSetValues (preferences_rec->order_date, false_args, 1);
1574 XtSetValues (preferences_rec->order_size, false_args, 1);
1575 XtSetValues (preferences_rec->order_file_type, true_args, 1);
1577 else if (w == preferences_rec->order_alphabetical)
1579 XtSetValues (preferences_rec->order_file_type, false_args, 1);
1580 XtSetValues (preferences_rec->order_date, false_args, 1);
1581 XtSetValues (preferences_rec->order_size, false_args, 1);
1582 XtSetValues (preferences_rec->order_alphabetical, true_args, 1);
1584 else if (w == preferences_rec->order_date)
1586 XtSetValues (preferences_rec->order_file_type, false_args, 1);
1587 XtSetValues (preferences_rec->order_alphabetical, false_args, 1);
1588 XtSetValues (preferences_rec->order_size, false_args, 1);
1589 XtSetValues (preferences_rec->order_date, true_args, 1);
1591 else if (w == preferences_rec->order_size)
1593 XtSetValues (preferences_rec->order_file_type, false_args, 1);
1594 XtSetValues (preferences_rec->order_alphabetical, false_args, 1);
1595 XtSetValues (preferences_rec->order_date, false_args, 1);
1596 XtSetValues (preferences_rec->order_size, true_args, 1);
1598 else if (w == preferences_rec->direction_ascending)
1600 XtSetValues (preferences_rec->direction_descending, false_args, 1);
1601 XtSetValues (preferences_rec->direction_ascending, true_args, 1);
1603 else if (w == preferences_rec->direction_descending)
1605 XtSetValues (preferences_rec->direction_ascending, false_args, 1);
1606 XtSetValues (preferences_rec->direction_descending, true_args, 1);
1608 else if (w == preferences_rec->random_on)
1610 XtSetValues (preferences_rec->random_off, false_args, 1);
1611 XtSetValues (preferences_rec->random_on, true_args, 1);
1613 else if (w == preferences_rec->random_off)
1615 XtSetValues (preferences_rec->random_on, false_args, 1);
1616 XtSetValues (preferences_rec->random_off, true_args, 1);
1621 /************************************************************************
1624 * This is a callback function called when the (Ok) button
1625 * is pressed. It saves the new preverences data itnernally and
1626 * then calls the encapsulations callback function.
1628 ************************************************************************/
1633 PreferencesApply *apply_data,
1634 XtPointer call_data )
1636 PreferencesRec * preferences_rec;
1637 DialogData * dialog_data;
1639 ApplyCallback( w, apply_data, call_data);
1641 preferences_rec = (PreferencesRec *) apply_data->preferences_rec;
1642 dialog_data = _DtGetInstanceData ((XtPointer)preferences_rec);
1644 XtCallCallbacks(preferences_rec->close, XmNactivateCallback,
1645 (XtPointer)dialog_data);
1649 /************************************************************************
1652 * This is a callback function called when the (Apply) button
1653 * is pressed. It saves the new preverences data itnernally and
1654 * then calls the encapsulations callback funtion.
1656 ************************************************************************/
1661 PreferencesApply *apply_data,
1662 XtPointer call_data )
1664 (*(apply_data->callback)) (w, apply_data->client_data, NULL);
1670 /************************************************************************
1672 * GetPreferencesValues
1673 * Update the current preferences values within the data structure
1674 * from the current toggle button values.
1676 ************************************************************************/
1679 GetPreferencesValues(
1680 PreferencesRec *preferences_rec,
1681 PreferencesData *preferences_data )
1686 XtSetArg (args[0], XmNset, &set);
1688 XtGetValues (preferences_rec->show_single, args, 1);
1689 if (set) preferences_data->show_type = SINGLE_DIRECTORY;
1690 XtGetValues (preferences_rec->show_multiple, args, 1);
1691 if (set) preferences_data->show_type = MULTIPLE_DIRECTORY;
1693 preferences_data->view_single = preferences_rec->view_single;
1694 preferences_data->view_tree = preferences_rec->view_tree;
1696 XtGetValues (preferences_rec->tree_files_never, args, 1);
1697 if (set) preferences_data->tree_files = TREE_FILES_NEVER;
1698 XtGetValues (preferences_rec->tree_files_choose, args, 1);
1699 if (set) preferences_data->tree_files = TREE_FILES_CHOOSE;
1700 XtGetValues (preferences_rec->tree_files_always, args, 1);
1701 if (set) preferences_data->tree_files = TREE_FILES_ALWAYS;
1703 XtGetValues (preferences_rec->order_file_type, args, 1);
1704 if (set) preferences_data->order = ORDER_BY_FILE_TYPE;
1705 XtGetValues (preferences_rec->order_alphabetical, args, 1);
1706 if (set) preferences_data->order = ORDER_BY_ALPHABETICAL;
1707 XtGetValues (preferences_rec->order_date, args, 1);
1708 if (set) preferences_data->order = ORDER_BY_DATE;
1709 XtGetValues (preferences_rec->order_size, args, 1);
1710 if (set) preferences_data->order = ORDER_BY_SIZE;
1712 XtGetValues (preferences_rec->direction_ascending, args, 1);
1713 if (set) preferences_data->direction = DIRECTION_ASCENDING;
1714 XtGetValues (preferences_rec->direction_descending, args, 1);
1715 if (set) preferences_data->direction = DIRECTION_DESCENDING;
1717 XtGetValues (preferences_rec->random_on, args, 1);
1718 if (set) preferences_data->positionEnabled = RANDOM_ON;
1719 XtGetValues (preferences_rec->random_off, args, 1);
1720 if (set) preferences_data->positionEnabled = RANDOM_OFF;
1722 XtGetValues (preferences_rec->show_iconic_path, args, 1);
1723 preferences_data->show_iconic_path = set;
1724 XtGetValues (preferences_rec->show_current_dir, args, 1);
1725 preferences_data->show_current_dir = set;
1726 XtGetValues (preferences_rec->show_status_line, args, 1);
1727 preferences_data->show_status_line = set;
1733 /************************************************************************
1736 * Convert the show type to a string and write it out.
1738 ***********************************************************************/
1743 unsigned char *value,
1748 if (*value == SINGLE_DIRECTORY)
1749 buf = Single_directory;
1750 else if (*value == MULTIPLE_DIRECTORY)
1751 buf = DirectoryTree;
1753 _DtStringToString(fd, (char **)&buf, out_buf);
1759 /************************************************************************
1762 * Convert string to a show type.
1764 ************************************************************************/
1773 char * in_str = (char *)(from_val->addr);
1774 static unsigned char i;
1776 to_val->size = sizeof (unsigned char);
1777 to_val->addr = (XtPointer) &i;
1779 if (_DtStringsAreEquivalent (in_str, Single_directory))
1780 i = SINGLE_DIRECTORY;
1781 else if (_DtStringsAreEquivalent (in_str, DirectoryTree))
1782 i = MULTIPLE_DIRECTORY;
1786 to_val->addr = NULL;
1787 XtStringConversionWarning ((char *)from_val->addr, SHOW_TYPE);
1794 /************************************************************************
1797 * Convert the tree-files option to a string and write it out.
1799 ***********************************************************************/
1804 unsigned char *value,
1809 if (*value == TREE_FILES_NEVER)
1810 buf = Tree_files_never;
1811 else if (*value == TREE_FILES_CHOOSE)
1812 buf = Tree_files_choose;
1813 else if (*value == TREE_FILES_ALWAYS)
1814 buf = Tree_files_always;
1816 _DtStringToString(fd, (char **)&buf, out_buf);
1822 /************************************************************************
1825 * Convert string to a tree-files option.
1827 ************************************************************************/
1836 char * in_str = (char *)(from_val->addr);
1837 static unsigned char i;
1839 to_val->size = sizeof (unsigned char);
1840 to_val->addr = (XtPointer) &i;
1842 if (_DtStringsAreEquivalent (in_str, Tree_files_never))
1843 i = TREE_FILES_NEVER;
1844 else if (_DtStringsAreEquivalent (in_str, Tree_files_choose))
1845 i = TREE_FILES_CHOOSE;
1846 else if (_DtStringsAreEquivalent (in_str, Tree_files_always))
1847 i = TREE_FILES_ALWAYS;
1851 to_val->addr = NULL;
1852 XtStringConversionWarning ((char *)from_val->addr, TREE_FILES);
1859 /************************************************************************
1862 * Convert the view mode to a string and write it out.
1864 ***********************************************************************/
1869 unsigned char *value,
1874 if (*value == BY_NAME)
1876 else if (*value == BY_NAME_AND_ICON)
1877 buf = By_name_and_icon;
1878 else if (*value == BY_NAME_AND_SMALL_ICON)
1879 buf = By_name_and_small_icon;
1880 else if (*value == BY_ATTRIBUTES)
1881 buf = By_attributes;
1883 _DtStringToString(fd, (char **)&buf, out_buf);
1889 /************************************************************************
1892 * Convert string to a viewing mode.
1894 ************************************************************************/
1903 char * in_str = (char *)(from_val->addr);
1904 static unsigned char i;
1906 to_val->size = sizeof (unsigned char);
1907 to_val->addr = (XtPointer) &i;
1909 if (_DtStringsAreEquivalent (in_str, By_name))
1911 else if (_DtStringsAreEquivalent (in_str, By_name_and_icon))
1912 i = BY_NAME_AND_ICON;
1913 else if (_DtStringsAreEquivalent (in_str, By_name_and_small_icon))
1914 i = BY_NAME_AND_SMALL_ICON;
1915 else if (_DtStringsAreEquivalent (in_str, By_attributes))
1920 to_val->addr = NULL;
1921 XtStringConversionWarning ((char *)from_val->addr, VIEW);
1929 /************************************************************************
1932 * Convert the viewing order to a string and write it out.
1934 ***********************************************************************/
1939 unsigned char *value,
1944 if (*value == ORDER_BY_FILE_TYPE)
1945 buf = Order_by_file_type;
1946 else if (*value == ORDER_BY_ALPHABETICAL)
1947 buf = Order_by_alphabetical;
1948 else if (*value == ORDER_BY_DATE)
1949 buf = Order_by_date;
1950 else if (*value == ORDER_BY_SIZE)
1951 buf = Order_by_size;
1953 _DtStringToString(fd, (char **)&buf, out_buf);
1959 /************************************************************************
1962 * Convert string to a view order.
1964 ************************************************************************/
1973 char * in_str = (char *)(from_val->addr);
1974 static unsigned char i;
1976 to_val->size = sizeof (unsigned char);
1977 to_val->addr = (XtPointer) &i;
1979 if (_DtStringsAreEquivalent (in_str, Order_by_file_type))
1980 i = ORDER_BY_FILE_TYPE;
1981 else if (_DtStringsAreEquivalent (in_str, Order_by_alphabetical))
1982 i = ORDER_BY_ALPHABETICAL;
1983 else if (_DtStringsAreEquivalent (in_str, Order_by_date))
1985 else if (_DtStringsAreEquivalent (in_str, Order_by_size))
1990 to_val->addr = NULL;
1991 XtStringConversionWarning ((char *)from_val->addr, DIRECTION_RESRC);
1998 /************************************************************************
2001 * Convert the ordering direction to a string and write it out.
2003 ***********************************************************************/
2008 unsigned char *value,
2013 if (*value == DIRECTION_ASCENDING)
2014 buf = Direction_ascending;
2015 else if (*value == DIRECTION_DESCENDING)
2016 buf = Direction_descending;
2018 _DtStringToString(fd, (char **)&buf, out_buf);
2022 /************************************************************************
2025 * Convert the random placement to a string and write it out.
2027 ***********************************************************************/
2032 unsigned char *value,
2037 if (*value == RANDOM_ON)
2039 else if (*value == RANDOM_OFF)
2042 _DtStringToString(fd, (char **)&buf, out_buf);
2046 /************************************************************************
2049 * Convert string to a view ordering direction.
2051 ************************************************************************/
2060 char * in_str = (char *)(from_val->addr);
2061 static unsigned char i;
2063 to_val->size = sizeof (unsigned char);
2064 to_val->addr = (XtPointer) &i;
2066 if (_DtStringsAreEquivalent (in_str, Direction_ascending))
2067 i = DIRECTION_ASCENDING;
2068 else if (_DtStringsAreEquivalent (in_str, Direction_descending))
2069 i = DIRECTION_DESCENDING;
2073 to_val->addr = NULL;
2074 XtStringConversionWarning ((char *)from_val->addr, DIRECTION_RESRC);
2079 /************************************************************************
2082 * Convert string to either random placement on or off
2084 ************************************************************************/
2093 char * in_str = (char *)(from_val->addr);
2094 static unsigned char i;
2096 to_val->size = sizeof (unsigned char);
2097 to_val->addr = (XtPointer) &i;
2099 if (_DtStringsAreEquivalent (in_str, Random_on))
2101 else if (_DtStringsAreEquivalent (in_str, Random_off))
2106 to_val->addr = NULL;
2107 XtStringConversionWarning ((char *)from_val->addr, RANDOM);