diff options
-rw-r--r-- | Xedit-noxprint.ad | 462 | ||||
-rw-r--r-- | Xedit-xprint.ad | 559 | ||||
-rw-r--r-- | commands.c | 130 | ||||
-rw-r--r-- | hook.c | 4 | ||||
-rw-r--r-- | ispell.c | 24 | ||||
-rw-r--r-- | lisp/lisp.c | 2 | ||||
-rw-r--r-- | util.c | 2 | ||||
-rw-r--r-- | xedit.c | 30 | ||||
-rw-r--r-- | xedit.h | 7 |
9 files changed, 1182 insertions, 38 deletions
diff --git a/Xedit-noxprint.ad b/Xedit-noxprint.ad new file mode 100644 index 0000000..16334a3 --- /dev/null +++ b/Xedit-noxprint.ad @@ -0,0 +1,462 @@ +! $XFree86: xc/programs/xedit/Xedit.ad,v 1.23 2002/09/22 07:09:05 paulo Exp $ + +*geometry: 590x440 +*input: TRUE +*enableBackups: True +*backupNameSuffix: ~ +*changedBitmap: xlogo11 +*international: True + +*hints:\ +Use Control-S and Control-R to Search.\n\ +Use Control-Shift-_ to Undo. Control-G to switch between Undo and Redo.\n\ +Use Control-A to jump to the beginning of the line.\n\ +Use Control-E to jump to the end of the line.\n\ +Use Control-T to transpose characters.\n\ +Use Control-K to cut to the end of the line. Control-Y to paste.\n\ +Use Control-Q to escape control characters.\n\ +Use Control-U[,<number>] to multiply actions. Control-G to cancel.\n\ +Use Control-Z to scroll one line up. Meta-Z to scroll one line down.\n\ +Use Meta-Q to format a paragraph.\n\ +Use Right-Button to extend selections.\n\ +Use Meta-I to insert a file.\n\ +Use Control-W to delete a selection, and/or jump to the selection mark.\n\ +Use Control-X,Control-F to find a file. Tab for filename completion.\n\ +Use Control-X,Control-S to save.\n\ +Use Control-X,Control-C to exit.\n\ +Use Control-C to paste the selection at CUT_BUFFER0.\n\ +Use Control Left-Button to popup the File Menu.\n\ +Use Control Middle-Button to popup the Edit Menu.\n\ +Use Control Right-Button to popup the Option Menu.\n\ +Use Control-X,Tab to Indent.\n\ +Use Control-X,0 to delete current splitted window.\n\ +Use Control-X,1 to delete other splitted window.\n\ +Use Control-X,2 to split the window vertically.\n\ +Use Control-X,3 to split the window horizontally.\n\ +Use Control-X,b to switch to another file.\n\ +Use Control-X,d to list directory. Control-G to Cancel.\n\ +Use Control-X,k to close file being edited.\n\ +Use Control-X,o to switch to another splitted window.\n\ +Use Control-X,u to undo. Control-G to switch between Undo and Redo.\n\ +Use Insert to toggle Overwrite mode.\n\ +Use Control-G to interrupt the lisp subprocess + +*formWindow*defaultDistance: 2 +*formWindow.?.borderWidth: 0 +*formWindow.min: 18 +*formWindow.max: 18 +*formWindow.showGrip: False +*positionWindow.fromHoriz: labelWindow +*positionWindow.horizDistance: 0 +*positionWindow.left: chainRight +*positionWindow.right: chainRight +*positionWindow.width: 90 +*positionWindow.label: error +*positionWindow.justify: left +*labelWindow*justify: center +*labelWindow*label: no file yet +*labelWindow.left: chainLeft +*labelWindow.right: chainRight + +*quit.label: Quit +*quit.tip: Close xedit window +*save.label: Save +*save.tip: Save current file +*load.label: Load +*load.tip: Load a new file + +*buttons*orientation: horizontal +*buttons*showGrip: False +*buttons.min: 18 + +*messageWindow.height: 50 +*messageWindow.min: 18 +*Paned*Text*allowResize: True + +*messageWindow.autoFill: False +*messageWindow.scrollVertical: Never + +*editWindow.autoFill: False +*editWindow.scrollVertical: Always +*editWindow.showGrip: True +xedit.textSource*enableUndo: True + +*bc_label*label: Use Control-S and Control-R to Search. +*bc_label*showGrip: False +*bc_label.min: 18 + +*dirlabel.showGrip: False +*dirlabel.min: 18 +*dirlabel.max: 18 + +*dirwindow.defaultColumns: 0 +*dirwindow.verticalList: True + +*viewport.forceBars: True +*viewport.allowVert: 1 + +*insertFile*text.width: 141 +*insertFile*text.?.pieceSize: 256 +*search*searchText.width: 157 +*search*replaceText.width: 157 +*search*case.horizDistance: 25 +*search*Text.?.pieceSize: 256 + +*SimpleMenu.BackingStore: NotUseful +*SimpleMenu.menuLabel.vertSpace: 80 +*SimpleMenu.SmeBSB.HorizontalMargins: 16 +*SimpleMenu.justify: center +*SimpleMenu.menuLabel.height: 250 +*SimpleMenu*cursor: left_ptr + +*fileMenu.label: File Menu +*optionsMenu.label: Option Menu +*optionsMenu.ispell.label: ispell... +*editMenu.label: Edit Menu +*editMenu.wrapMenuItem.label: Wrapping +*editMenu.wrapMenuItem.leftBitmap: menu12 +*wrapMenu.never.label: Never +*wrapMenu.line.label: Line +*wrapMenu.word.label: Word +*editMenu.autoFill.label: Auto Fill +*editMenu.justifyMenuItem.label: Justification +*editMenu.justifyMenuItem.leftBitmap: menu12 +*justifyMenu.left.label: Left +*justifyMenu.right.label: Right +*justifyMenu.center.label: Center +*justifyMenu.full.label: Full +*editMenu.breakColumns.label: Break Columns... +*editMenu.scrollMenuItem.label: Scrollbars +*editMenu.scrollMenuItem.leftBitmap: menu12 +*scrollMenu.vertical.label: Vertical +*scrollMenu.horizontal.label: Horizontal +*editMenu.modeMenuItem.leftBitmap: menu12 +*editMenu.modeMenuItem.label: Edit Mode +*editModes.none.label: Plain/None + +*TransientShell*Text.translations: #override \ +c<Key>S: no-op(r)\n\ +c<Key>R: no-op(r)\n\ +m<Key>I: no-op(r) + +*search.translations: #override \ +<Create>:get-values(my, $w, width, $h, height)\ + set-values(1, minWidth, $w, minHeight, $h, maxHeight, $h, allowShellResize, False) + +*insertFile.title: Insert File +*insertFile.translations: #override \ +<Create>:get-values(my, $w, width, $h, height)\ + set-values(1, minWidth, $w, minHeight, $h, maxHeight, $h, allowShellResize, False) + +*baseTranslations: #override \ +<Ctrl>X,<Ctrl>C:quit()\n\ +<Ctrl>X,<Ctrl>S:save-file()\n\ +<Ctrl>X,<Ctrl>F:find-file()\n\ +<Key>Escape: line-edit() + +*messageWindow.Translations: #override \ +<Ctrl>X,<Ctrl>C:quit()\n\ +<Ctrl>X,<Ctrl>S:save-file()\n\ +<Ctrl>X,<Ctrl>F:find-file()\n\ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*searchText.Translations: #override \ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*replaceText.Translations: #override \ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*editWindow.translations: #override \ +<Ctrl>X,<Ctrl>E:lisp-eval()\n\ +<Ctrl>X,<Key>Tab:indent()\n\ +<Ctrl>X,:<Key>0:delete-window(current)\n\ +<Ctrl>X,:<Key>1:delete-window(other)\n\ +<Ctrl>X,:<Key>2:split-window(vertical)\n\ +<Ctrl>X,:<Key>3:split-window(horizontal)\n\ +<Ctrl>X,!l @Num_Lock<Key>b:switch-source()\n\ +<Ctrl>X,!l <Key>b:switch-source()\n\ +<Ctrl>X,!@Num_Lock<Key>b:switch-source()\n\ +<Ctrl>X,!<Key>b:switch-source()\n\ +<Ctrl>X,!l @Num_Lock<Key>d:dir-window()\n\ +<Ctrl>X,!l <Key>d:dir-window()\n\ +<Ctrl>X,!@Num_Lock<Key>d:dir-window()\n\ +<Ctrl>X,!<Key>d:dir-window()\n\ +<Ctrl>X,!l @Num_Lock<Key>k:kill-file()\n\ +<Ctrl>X,!l <Key>k:kill-file()\n\ +<Ctrl>X,!@Num_Lock<Key>k:kill-file()\n\ +<Ctrl>X,!<Key>k:kill-file()\n\ +<Ctrl>X,!l @Num_Lock<Key>o:other-window()\n\ +<Ctrl>X,!l <Key>o:other-window()\n\ +<Ctrl>X,!@Num_Lock<Key>o:other-window()\n\ +<Ctrl>X,!<Key>o:other-window()\n\ +<Ctrl>X,!l @Num_Lock<Key>u:undo()\n\ +<Ctrl>X,!l <Key>u:undo()\n\ +<Ctrl>X,!@Num_Lock<Key>u:undo()\n\ +<Ctrl>X,!<Key>u:undo()\n\ +<Ctrl>G: xedit-keyboard-reset()\n\ +<Ctrl>J: xedit-print-lisp-eval()\n\ +<Key>Tab: insert-char()\n\ +!l @Num_Lock<Key>b:insert-char()\n\ +!l <Key>b: insert-char()\n\ +!@Num_Lock<Key>b:insert-char()\n\ +!<Key>b: insert-char()\n\ +!l @Num_Lock<Key>d:insert-char()\n\ +!l <Key>d: insert-char()\n\ +!@Num_Lock<Key>d:insert-char()\n\ +!<Key>d: insert-char()\n\ +!l <Key>k: insert-char()\n\ +!l @Num_Lock<Key>k:insert-char()\n\ +!@Num_Lock<Key>k:insert-char()\n\ +!<Key>k: insert-char()\n\ +!l @Num_Lock<Key>o:insert-char()\n\ +!l <Key>o: insert-char()\n\ +!@Num_Lock<Key>o:insert-char()\n\ +!<Key>o: insert-char()\n\ +!l @Num_Lock<Key>u:insert-char()\n\ +!l <Key>u: insert-char()\n\ +!@Num_Lock<Key>u:insert-char()\n\ +!<Key>u: insert-char()\n\ +~s <Key>Insert: toggle-overwrite()\n\ +c l @Num_Lock<Btn1Down>:xedit-focus() popup-menu(fileMenu)\n\ +c @Num_Lock<Btn1Down>:xedit-focus() popup-menu(fileMenu)\n\ +c l<Btn1Down>: xedit-focus() popup-menu(fileMenu)\n\ +c<Btn1Down>: xedit-focus() popup-menu(fileMenu)\n\ +c l @Num_Lock<Btn2Down>:xedit-focus() popup-menu(editMenu)\n\ +c @Num_Lock<Btn2Down>:xedit-focus() popup-menu(editMenu)\n\ +c l<Btn2Down>: xedit-focus() popup-menu(editMenu)\n\ +c<Btn2Down>: xedit-focus() popup-menu(editMenu)\n\ +c l @Num_Lock<Btn3Down>:xedit-focus() popup-menu(optionsMenu)\n\ +c @Num_Lock<Btn3Down>:xedit-focus() popup-menu(optionsMenu)\n\ +c l<Btn3Down>:xedit-focus() popup-menu(optionsMenu)\n\ +c<Btn3Down>: xedit-focus() popup-menu(optionsMenu)\n\ +<Btn1Down>: xedit-focus() select-start() + +*filename.?.pieceSize: 256 +*filename.translations: #override \ +c<Key>S: no-op(r)\n\ +c<Key>R: no-op(r)\n\ +m<Key>I: no-op(r)\n\ +c<Key>G: cancel-find-file()\n\ +<Key>Return: load-file()\n\ +<Key>Tab: file-completion(h)\n\ +<Key>Escape: cancel-find-file()\n\ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*ispell.translations: #override \ +<Message>WM_PROTOCOLS: ispell(end) + +! Sample dictionary, word chars and text mode resources setup +!*ispell.dictionary: br +!*ispell.dictionaries: br american americanmed+ english +!*ispell*br.wordChars: áéíóúçÁÉÍÓÚÇàÀâêôÂÊÔüÜãõÃÕ- +!*ispell.ispellCommand: /usr/local/bin/ispell -B -m +!*ispell*text.skipLines: .# + +*ispell.geometry: 0x0 +*ispell.minWidth: 320 +*ispell.minHeight: 245 +*ispell*Label.borderWidth: 0 +*ispell*Label.internalHeight: 4 +*ispell*Label.justify: right +*ispell*Label.width: 112 +*ispell*Label.left: chainLeft +*ispell*Label.right: chainLeft +*ispell*Label.top: chainTop +*ispell*Label.bottom: chainTop +*ispell*mispelled.label: Misspelled word: +*ispell*mispelled.top: chainTop +*ispell*mispelled.bottom: chainTop +*ispell*mispelled.internalWidth: 0 +*ispell*repeated.label: Repeated words: +*ispell*repeated.internalWidth: 0 +*ispell*replacement.label: Replace with: +*ispell*word.fromHoriz: mispelled +*ispell*word.justify: left +*ispell*word.borderWidth: 1 +*ispell*word.internalWidth: 4 +*ispell*word.internalHeight: 3 +*ispell*word.width: 194 +*ispell*word.left: chainLeft +*ispell*word.right: chainRight +*ispell*word.top: chainTop +*ispell*word.bottom: chainTop +*ispell*word.label: +*ispell*word.tip: Press here to select this text +*ispell*word.highlightThickness: 0 +*ispell*text.fromHoriz: replacement +*ispell*replacement.fromVert: mispelled +*ispell*replacement.internalWidth: 0 +*ispell*form.text.fromVert: word +*ispell*form.text.width: 194 +*ispell*form.text.top: chainTop +*ispell*form.text.bottom: chainTop +*ispell*form.text.left: chainLeft +*ispell*form.text.right: chainRight +*ispell*form.text.leftMargin: 4 +*ispell*form.text.?.pieceSize: 256 +*ispell*suggestions.label: Suggestions: +*ispell*suggestions.fromVert: replacement +*ispell*suggestions.internalWidth: 0 +*ispell*viewport.fromHoriz: suggestions +*ispell*viewport.fromVert: text +*ispell*viewport.width: 194 +*ispell*viewport.height: 143 +*ispell*viewport.top: chainTop +*ispell*viewport.bottom: chainBottom +*ispell*viewport.left: chainLeft +*ispell*viewport.right: chainRight +*ispell*viewport.forceBars: 1 +*ispell*viewport.allowVert: 1 +*ispell*list.defaultColumns: 1 +*ispell*list.longest: 16384 +*ispell*commands.vertDistance: 5 +*ispell*commands.fromVert: suggestions +*ispell*commands.top: chainBottom +*ispell*commands.bottom: chainBottom +*ispell*commands.right: chainLeft +*ispell*commands.left: chainLeft +*ispell*check.label: Check +*ispell*check.width: 54 +*ispell*check.tip: Ask ispell about the word in the text field +*ispell*look.label: Look +*ispell*look.fromHoriz: check +*ispell*look.horizDistance: 0 +*ispell*look.width: 46 +*ispell*look.tip: Runs the look command +*ispell*undo.fromVert: check +*ispell*undo.label: Undo +*ispell*undo.width: 102 +*ispell*undo.tip: Undo last action +*ispell*replace.fromVert: undo +*ispell*replace.label: Replace +*ispell*replace.tip: Replace occurence of the word +*ispell*replaceAll.fromVert: undo +*ispell*replaceAll.fromHoriz: replace +*ispell*replaceAll.label: All +*ispell*replaceAll.tip: Replace all occurences of the word +*ispell*ignore.fromVert: replace +*ispell*ignore.label: Ignore +*ispell*ignore.tip: Ignore this word +*ispell*ignoreAll.fromVert: replaceAll +*ispell*ignoreAll.fromHoriz: ignore +*ispell*ignoreAll.label: All +*ispell*ignoreAll.tip: Ignore all ocurrences of the word +*ispell*add.fromVert: ignore +*ispell*add.label: Add +*ispell*add.width: 50 +*ispell*add.tip: Add word to your private dictionary +*ispell*addUncap.fromVert: ignoreAll +*ispell*addUncap.fromHoriz: add +*ispell*addUncap.label: Uncap +*ispell*addUncap.horizDistance: 0 +*ispell*addUncap.width: 50 +*ispell*addUncap.tip: Add word uncapitalized, to your private dictionary +*ispell*suspend.fromVert: add +*ispell*suspend.label: Suspend +*ispell*suspend.width: 57 +*ispell*suspend.tip: Suspend ispell execution +*ispell*cancel.fromHoriz: suspend +*ispell*cancel.fromVert: addUncap +*ispell*cancel.label: Close +*ispell*cancel.width: 43 +*ispell*cancel.horizDistance: 0 +*ispell*cancel.tip: Terminates ispell process +*ispell*replace.width: 65 +*ispell*ignore.width: 65 +*ispell*replaceAll.width: 35 +*ispell*replaceAll.horizDistance: 0 +*ispell*ignoreAll.width: 35 +*ispell*ignoreAll.horizDistance: 0 +*ispell*terse.fromVert: cancel +*ispell*terse.Label: Terse Mode +*ispell*terse.width: 104 +*ispell*terse.borderWidth: 0 +*ispell*terse.tip: Switch terse mode +*ispell*status.fromVert: viewport +*ispell*status.fromHoriz: suggestions +*ispell*status.top: chainBottom +*ispell*status.bottom: chainBottom +*ispell*status.left: chainLeft +*ispell*status.right: chainRight +*ispell*status.width: 194 +*ispell*status.borderWidth: 1 +*ispell*status.justify: left +*ispell*status.internalHeight: 2 +*ispell*status.vertDistance: 2 +*ispell*options.fromVert: status +*ispell*options.fromHoriz: commands +*ispell*options.bottom: chainBottom +*ispell*options.top: chainBottom +*ispell*options.left: chainLeft +*ispell*options.right: chainRight +*ispell*options.dict.width: 121 +*ispell*options.horizDistance: 2 +*ispell*options.vertDistance: 2 +*ispell*options.defaultDistance: 2 +*ispell*dict.highlightThickness: 0 +*ispell*dict.justify: left +*ispell*dict.resizable: False +*ispell*dict.leftBitmap: menu12 +*ispell*dict.label: Dictionary +*ispell*dict.tip: Change dictionary +*ispell*options.format.width: 65 +*ispell*format.highlightThickness: 0 +*ispell*format.justify: left +*ispell*format.resizable: False +*ispell*format.leftBitmap: menu12 +*ispell*format.fromHoriz: dict +*ispell*format.horizDistance: 0 +*ispell*format.tip: Select text type + +*columns.minWidth: 140 +*columns.minHeight: 76 +*columns.maxWidth: 140 +*columns.maxHeight: 76 +*columns.form*defaultDistance: 4 +*columns*left: chainLeft +*columns*right: chainLeft +*columns*top: chainTop +*columns*bottom: chainTop +*columns*Label.width: 96 +*columns*Label.borderWidth: 0 +*columns*Label.internalHeight: 4 +*columns*Label.internalWidth: 2 +*columns*Label.justify: right +*columns*Text.width: 30 +*columns*Command.width: 58 +*columns*leftLabel.label: Left Column: +*columns*left.fromHoriz: leftLabel +*columns*rightLabel.label: Right Column: +*columns*rightLabel.fromVert: leftLabel +*columns*right.fromHoriz: rightLabel +*columns*right.fromVert: left +*columns*ok.fromVert: rightLabel +*columns*cancel.fromHoriz: ok +*columns*cancel.fromVert: rightLabel +*columns*cancel.horizDistance: 12 +*columns*Text.?.pieceSize: 8 + +*columns*Text.translations: #override \ +c<Key>S: no-op(r)\n\ +c<Key>R: no-op(r)\n\ +m<Key>I: no-op(r)\n\ +<Key>Return: set-columns(ok)\n\ +<Key>Tab: change-field()\n\ +c<Key>G: set-columns(cancel)\n\ +<Key>Escape: set-columns(cancel)\n\ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*columns.translations: #override \ +<Message>WM_PROTOCOLS: set-columns(cancel) + +! EOF. diff --git a/Xedit-xprint.ad b/Xedit-xprint.ad new file mode 100644 index 0000000..f6ef6dc --- /dev/null +++ b/Xedit-xprint.ad @@ -0,0 +1,559 @@ +! $XFree86: xc/programs/xedit/Xedit.ad,v 1.23 2002/09/22 07:09:05 paulo Exp $ + +*geometry: 590x440 +*input: TRUE +*enableBackups: True +*backupNameSuffix: ~ +*changedBitmap: xlogo11 +*international: True + +*hints:\ +Use Control-S and Control-R to Search.\n\ +Use Control-Shift-_ to Undo. Control-G to switch between Undo and Redo.\n\ +Use Control-A to jump to the beginning of the line.\n\ +Use Control-E to jump to the end of the line.\n\ +Use Control-T to transpose characters.\n\ +Use Control-K to cut to the end of the line. Control-Y to paste.\n\ +Use Control-Q to escape control characters.\n\ +Use Control-U[,<number>] to multiply actions. Control-G to cancel.\n\ +Use Control-Z to scroll one line up. Meta-Z to scroll one line down.\n\ +Use Meta-Q to format a paragraph.\n\ +Use Right-Button to extend selections.\n\ +Use Meta-I to insert a file.\n\ +Use Control-W to delete a selection, and/or jump to the selection mark.\n\ +Use Control-X,Control-F to find a file. Tab for filename completion.\n\ +Use Control-X,Control-S to save.\n\ +Use Control-X,Control-C to exit.\n\ +Use Control-C to paste the selection at CUT_BUFFER0.\n\ +Use Control Left-Button to popup the File Menu.\n\ +Use Control Middle-Button to popup the Edit Menu.\n\ +Use Control Right-Button to popup the Option Menu.\n\ +Use Control-X,Tab to Indent.\n\ +Use Control-X,0 to delete current splitted window.\n\ +Use Control-X,1 to delete other splitted window.\n\ +Use Control-X,2 to split the window vertically.\n\ +Use Control-X,3 to split the window horizontally.\n\ +Use Control-X,b to switch to another file.\n\ +Use Control-X,d to list directory. Control-G to Cancel.\n\ +Use Control-X,k to close file being edited.\n\ +Use Control-X,o to switch to another splitted window.\n\ +Use Control-X,u to undo. Control-G to switch between Undo and Redo.\n\ +Use Insert to toggle Overwrite mode.\n\ +Use Control-G to interrupt the lisp subprocess + +*formWindow*defaultDistance: 2 +*formWindow.?.borderWidth: 0 +*formWindow.min: 18 +*formWindow.max: 18 +*formWindow.showGrip: False +*positionWindow.fromHoriz: labelWindow +*positionWindow.horizDistance: 0 +*positionWindow.left: chainRight +*positionWindow.right: chainRight +*positionWindow.width: 90 +*positionWindow.label: error +*positionWindow.justify: left +*labelWindow*justify: center +*labelWindow*label: no file yet +*labelWindow.left: chainLeft +*labelWindow.right: chainRight + +*quit.label: Quit +*quit.tip: Close xedit window +*save.label: Save +*save.tip: Save current file +*load.label: Load +*load.tip: Load a new file +*print.label: Print +*print.tip: Print current file + +*buttons*orientation: horizontal +*buttons*showGrip: False +*buttons.min: 18 + +*messageWindow.height: 50 +*messageWindow.min: 18 +*Paned*Text*allowResize: True + +*messageWindow.autoFill: False +*messageWindow.scrollVertical: Never + +*editWindow.autoFill: False +*editWindow.scrollVertical: Always +*editWindow.showGrip: True +xedit.textSource*enableUndo: True + +*bc_label*label: Use Control-S and Control-R to Search. +*bc_label*showGrip: False +*bc_label.min: 18 + +*dirlabel.showGrip: False +*dirlabel.min: 18 +*dirlabel.max: 18 + +*dirwindow.defaultColumns: 0 +*dirwindow.verticalList: True + +*viewport.forceBars: True +*viewport.allowVert: 1 + +*insertFile*text.width: 141 +*insertFile*text.?.pieceSize: 256 +*search*searchText.width: 157 +*search*replaceText.width: 157 +*search*case.horizDistance: 25 +*search*Text.?.pieceSize: 256 + +*SimpleMenu.BackingStore: NotUseful +*SimpleMenu.menuLabel.vertSpace: 80 +*SimpleMenu.SmeBSB.HorizontalMargins: 16 +*SimpleMenu.justify: center +*SimpleMenu.menuLabel.height: 250 +*SimpleMenu*cursor: left_ptr + +*fileMenu.label: File Menu +*optionsMenu.label: Option Menu +*optionsMenu.ispell.label: ispell... +*editMenu.label: Edit Menu +*editMenu.wrapMenuItem.label: Wrapping +*editMenu.wrapMenuItem.leftBitmap: menu12 +*wrapMenu.never.label: Never +*wrapMenu.line.label: Line +*wrapMenu.word.label: Word +*editMenu.autoFill.label: Auto Fill +*editMenu.justifyMenuItem.label: Justification +*editMenu.justifyMenuItem.leftBitmap: menu12 +*justifyMenu.left.label: Left +*justifyMenu.right.label: Right +*justifyMenu.center.label: Center +*justifyMenu.full.label: Full +*editMenu.breakColumns.label: Break Columns... +*editMenu.scrollMenuItem.label: Scrollbars +*editMenu.scrollMenuItem.leftBitmap: menu12 +*scrollMenu.vertical.label: Vertical +*scrollMenu.horizontal.label: Horizontal +*editMenu.modeMenuItem.leftBitmap: menu12 +*editMenu.modeMenuItem.label: Edit Mode +*editModes.none.label: Plain/None + +*TransientShell*Text.translations: #override \ +c<Key>S: no-op(r)\n\ +c<Key>R: no-op(r)\n\ +m<Key>I: no-op(r) + +*search.translations: #override \ +<Create>:get-values(my, $w, width, $h, height)\ + set-values(1, minWidth, $w, minHeight, $h, maxHeight, $h, allowShellResize, False) + +*insertFile.title: Insert File +*insertFile.translations: #override \ +<Create>:get-values(my, $w, width, $h, height)\ + set-values(1, minWidth, $w, minHeight, $h, maxHeight, $h, allowShellResize, False) + +*baseTranslations: #override \ +<Ctrl>X,<Ctrl>C:quit()\n\ +<Ctrl>X,<Ctrl>S:save-file()\n\ +<Ctrl>X,<Ctrl>F:find-file()\n\ +<Key>Escape: line-edit() + +*messageWindow.Translations: #override \ +<Ctrl>X,<Ctrl>C:quit()\n\ +<Ctrl>X,<Ctrl>S:save-file()\n\ +<Ctrl>X,<Ctrl>F:find-file()\n\ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*searchText.Translations: #override \ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*replaceText.Translations: #override \ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*editWindow.translations: #override \ +<Ctrl>X,<Ctrl>E:lisp-eval()\n\ +<Ctrl>X,<Key>Tab:indent()\n\ +<Ctrl>X,:<Key>0:delete-window(current)\n\ +<Ctrl>X,:<Key>1:delete-window(other)\n\ +<Ctrl>X,:<Key>2:split-window(vertical)\n\ +<Ctrl>X,:<Key>3:split-window(horizontal)\n\ +<Ctrl>X,!l @Num_Lock<Key>b:switch-source()\n\ +<Ctrl>X,!l <Key>b:switch-source()\n\ +<Ctrl>X,!@Num_Lock<Key>b:switch-source()\n\ +<Ctrl>X,!<Key>b:switch-source()\n\ +<Ctrl>X,!l @Num_Lock<Key>d:dir-window()\n\ +<Ctrl>X,!l <Key>d:dir-window()\n\ +<Ctrl>X,!@Num_Lock<Key>d:dir-window()\n\ +<Ctrl>X,!<Key>d:dir-window()\n\ +<Ctrl>X,!l @Num_Lock<Key>k:kill-file()\n\ +<Ctrl>X,!l <Key>k:kill-file()\n\ +<Ctrl>X,!@Num_Lock<Key>k:kill-file()\n\ +<Ctrl>X,!<Key>k:kill-file()\n\ +<Ctrl>X,!l @Num_Lock<Key>o:other-window()\n\ +<Ctrl>X,!l <Key>o:other-window()\n\ +<Ctrl>X,!@Num_Lock<Key>o:other-window()\n\ +<Ctrl>X,!<Key>o:other-window()\n\ +<Ctrl>X,!l @Num_Lock<Key>u:undo()\n\ +<Ctrl>X,!l <Key>u:undo()\n\ +<Ctrl>X,!@Num_Lock<Key>u:undo()\n\ +<Ctrl>X,!<Key>u:undo()\n\ +<Ctrl>G: xedit-keyboard-reset()\n\ +<Ctrl>J: xedit-print-lisp-eval()\n\ +<Key>Tab: insert-char()\n\ +!l @Num_Lock<Key>b:insert-char()\n\ +!l <Key>b: insert-char()\n\ +!@Num_Lock<Key>b:insert-char()\n\ +!<Key>b: insert-char()\n\ +!l @Num_Lock<Key>d:insert-char()\n\ +!l <Key>d: insert-char()\n\ +!@Num_Lock<Key>d:insert-char()\n\ +!<Key>d: insert-char()\n\ +!l <Key>k: insert-char()\n\ +!l @Num_Lock<Key>k:insert-char()\n\ +!@Num_Lock<Key>k:insert-char()\n\ +!<Key>k: insert-char()\n\ +!l @Num_Lock<Key>o:insert-char()\n\ +!l <Key>o: insert-char()\n\ +!@Num_Lock<Key>o:insert-char()\n\ +!<Key>o: insert-char()\n\ +!l @Num_Lock<Key>u:insert-char()\n\ +!l <Key>u: insert-char()\n\ +!@Num_Lock<Key>u:insert-char()\n\ +!<Key>u: insert-char()\n\ +~s <Key>Insert: toggle-overwrite()\n\ +c l @Num_Lock<Btn1Down>:xedit-focus() popup-menu(fileMenu)\n\ +c @Num_Lock<Btn1Down>:xedit-focus() popup-menu(fileMenu)\n\ +c l<Btn1Down>: xedit-focus() popup-menu(fileMenu)\n\ +c<Btn1Down>: xedit-focus() popup-menu(fileMenu)\n\ +c l @Num_Lock<Btn2Down>:xedit-focus() popup-menu(editMenu)\n\ +c @Num_Lock<Btn2Down>:xedit-focus() popup-menu(editMenu)\n\ +c l<Btn2Down>: xedit-focus() popup-menu(editMenu)\n\ +c<Btn2Down>: xedit-focus() popup-menu(editMenu)\n\ +c l @Num_Lock<Btn3Down>:xedit-focus() popup-menu(optionsMenu)\n\ +c @Num_Lock<Btn3Down>:xedit-focus() popup-menu(optionsMenu)\n\ +c l<Btn3Down>:xedit-focus() popup-menu(optionsMenu)\n\ +c<Btn3Down>: xedit-focus() popup-menu(optionsMenu)\n\ +<Btn1Down>: xedit-focus() select-start() + +*filename.?.pieceSize: 256 +*filename.translations: #override \ +c<Key>S: no-op(r)\n\ +c<Key>R: no-op(r)\n\ +m<Key>I: no-op(r)\n\ +c<Key>G: cancel-find-file()\n\ +<Key>Return: load-file()\n\ +<Key>P: print-file()\n\ +<Key>Tab: file-completion(h)\n\ +<Key>Escape: cancel-find-file()\n\ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*ispell.translations: #override \ +<Message>WM_PROTOCOLS: ispell(end) + +! Sample dictionary, word chars and text mode resources setup +!*ispell.dictionary: br +!*ispell.dictionaries: br american americanmed+ english +!*ispell*br.wordChars: áéíóúçÁÉÍÓÚÇàÀâêôÂÊÔüÜãõÃÕ- +!*ispell.ispellCommand: /usr/local/bin/ispell -B -m +!*ispell*text.skipLines: .# + +*ispell.geometry: 0x0 +*ispell.minWidth: 320 +*ispell.minHeight: 245 +*ispell*Label.borderWidth: 0 +*ispell*Label.internalHeight: 4 +*ispell*Label.justify: right +*ispell*Label.width: 112 +*ispell*Label.left: chainLeft +*ispell*Label.right: chainLeft +*ispell*Label.top: chainTop +*ispell*Label.bottom: chainTop +*ispell*mispelled.label: Misspelled word: +*ispell*mispelled.top: chainTop +*ispell*mispelled.bottom: chainTop +*ispell*mispelled.internalWidth: 0 +*ispell*repeated.label: Repeated words: +*ispell*repeated.internalWidth: 0 +*ispell*replacement.label: Replace with: +*ispell*word.fromHoriz: mispelled +*ispell*word.justify: left +*ispell*word.borderWidth: 1 +*ispell*word.internalWidth: 4 +*ispell*word.internalHeight: 3 +*ispell*word.width: 194 +*ispell*word.left: chainLeft +*ispell*word.right: chainRight +*ispell*word.top: chainTop +*ispell*word.bottom: chainTop +*ispell*word.label: +*ispell*word.tip: Press here to select this text +*ispell*word.highlightThickness: 0 +*ispell*text.fromHoriz: replacement +*ispell*replacement.fromVert: mispelled +*ispell*replacement.internalWidth: 0 +*ispell*form.text.fromVert: word +*ispell*form.text.width: 194 +*ispell*form.text.top: chainTop +*ispell*form.text.bottom: chainTop +*ispell*form.text.left: chainLeft +*ispell*form.text.right: chainRight +*ispell*form.text.leftMargin: 4 +*ispell*form.text.?.pieceSize: 256 +*ispell*suggestions.label: Suggestions: +*ispell*suggestions.fromVert: replacement +*ispell*suggestions.internalWidth: 0 +*ispell*viewport.fromHoriz: suggestions +*ispell*viewport.fromVert: text +*ispell*viewport.width: 194 +*ispell*viewport.height: 143 +*ispell*viewport.top: chainTop +*ispell*viewport.bottom: chainBottom +*ispell*viewport.left: chainLeft +*ispell*viewport.right: chainRight +*ispell*viewport.forceBars: 1 +*ispell*viewport.allowVert: 1 +*ispell*list.defaultColumns: 1 +*ispell*list.longest: 16384 +*ispell*commands.vertDistance: 5 +*ispell*commands.fromVert: suggestions +*ispell*commands.top: chainBottom +*ispell*commands.bottom: chainBottom +*ispell*commands.right: chainLeft +*ispell*commands.left: chainLeft +*ispell*check.label: Check +*ispell*check.width: 54 +*ispell*check.tip: Ask ispell about the word in the text field +*ispell*look.label: Look +*ispell*look.fromHoriz: check +*ispell*look.horizDistance: 0 +*ispell*look.width: 46 +*ispell*look.tip: Runs the look command +*ispell*undo.fromVert: check +*ispell*undo.label: Undo +*ispell*undo.width: 102 +*ispell*undo.tip: Undo last action +*ispell*replace.fromVert: undo +*ispell*replace.label: Replace +*ispell*replace.tip: Replace occurence of the word +*ispell*replaceAll.fromVert: undo +*ispell*replaceAll.fromHoriz: replace +*ispell*replaceAll.label: All +*ispell*replaceAll.tip: Replace all occurences of the word +*ispell*ignore.fromVert: replace +*ispell*ignore.label: Ignore +*ispell*ignore.tip: Ignore this word +*ispell*ignoreAll.fromVert: replaceAll +*ispell*ignoreAll.fromHoriz: ignore +*ispell*ignoreAll.label: All +*ispell*ignoreAll.tip: Ignore all ocurrences of the word +*ispell*add.fromVert: ignore +*ispell*add.label: Add +*ispell*add.width: 50 +*ispell*add.tip: Add word to your private dictionary +*ispell*addUncap.fromVert: ignoreAll +*ispell*addUncap.fromHoriz: add +*ispell*addUncap.label: Uncap +*ispell*addUncap.horizDistance: 0 +*ispell*addUncap.width: 50 +*ispell*addUncap.tip: Add word uncapitalized, to your private dictionary +*ispell*suspend.fromVert: add +*ispell*suspend.label: Suspend +*ispell*suspend.width: 57 +*ispell*suspend.tip: Suspend ispell execution +*ispell*cancel.fromHoriz: suspend +*ispell*cancel.fromVert: addUncap +*ispell*cancel.label: Close +*ispell*cancel.width: 43 +*ispell*cancel.horizDistance: 0 +*ispell*cancel.tip: Terminates ispell process +*ispell*replace.width: 65 +*ispell*ignore.width: 65 +*ispell*replaceAll.width: 35 +*ispell*replaceAll.horizDistance: 0 +*ispell*ignoreAll.width: 35 +*ispell*ignoreAll.horizDistance: 0 +*ispell*terse.fromVert: cancel +*ispell*terse.Label: Terse Mode +*ispell*terse.width: 104 +*ispell*terse.borderWidth: 0 +*ispell*terse.tip: Switch terse mode +*ispell*status.fromVert: viewport +*ispell*status.fromHoriz: suggestions +*ispell*status.top: chainBottom +*ispell*status.bottom: chainBottom +*ispell*status.left: chainLeft +*ispell*status.right: chainRight +*ispell*status.width: 194 +*ispell*status.borderWidth: 1 +*ispell*status.justify: left +*ispell*status.internalHeight: 2 +*ispell*status.vertDistance: 2 +*ispell*options.fromVert: status +*ispell*options.fromHoriz: commands +*ispell*options.bottom: chainBottom +*ispell*options.top: chainBottom +*ispell*options.left: chainLeft +*ispell*options.right: chainRight +*ispell*options.dict.width: 121 +*ispell*options.horizDistance: 2 +*ispell*options.vertDistance: 2 +*ispell*options.defaultDistance: 2 +*ispell*dict.highlightThickness: 0 +*ispell*dict.justify: left +*ispell*dict.resizable: False +*ispell*dict.leftBitmap: menu12 +*ispell*dict.label: Dictionary +*ispell*dict.tip: Change dictionary +*ispell*options.format.width: 65 +*ispell*format.highlightThickness: 0 +*ispell*format.justify: left +*ispell*format.resizable: False +*ispell*format.leftBitmap: menu12 +*ispell*format.fromHoriz: dict +*ispell*format.horizDistance: 0 +*ispell*format.tip: Select text type + +*columns.minWidth: 140 +*columns.minHeight: 76 +*columns.maxWidth: 140 +*columns.maxHeight: 76 +*columns.form*defaultDistance: 4 +*columns*left: chainLeft +*columns*right: chainLeft +*columns*top: chainTop +*columns*bottom: chainTop +*columns*Label.width: 96 +*columns*Label.borderWidth: 0 +*columns*Label.internalHeight: 4 +*columns*Label.internalWidth: 2 +*columns*Label.justify: right +*columns*Text.width: 30 +*columns*Command.width: 58 +*columns*leftLabel.label: Left Column: +*columns*left.fromHoriz: leftLabel +*columns*rightLabel.label: Right Column: +*columns*rightLabel.fromVert: leftLabel +*columns*right.fromHoriz: rightLabel +*columns*right.fromVert: left +*columns*ok.fromVert: rightLabel +*columns*cancel.fromHoriz: ok +*columns*cancel.fromVert: rightLabel +*columns*cancel.horizDistance: 12 +*columns*Text.?.pieceSize: 8 + +*columns*Text.translations: #override \ +c<Key>S: no-op(r)\n\ +c<Key>R: no-op(r)\n\ +m<Key>I: no-op(r)\n\ +<Key>Return: set-columns(ok)\n\ +<Key>Tab: change-field()\n\ +c<Key>G: set-columns(cancel)\n\ +<Key>Escape: set-columns(cancel)\n\ +<Enter>: no-op()\n\ +<Leave>: no-op()\n\ +<Btn1Down>: set-keyboard-focus() select-start() + +*columns.translations: #override \ +<Message>WM_PROTOCOLS: set-columns(cancel) + +! Use "white" as background for printing +*printshell*background: white + +! Print dialog +*printdialogshell*geometry: 600x120 +*printdialogshell*title: Print +*printdialogshell*main*ok.fromVert: innerform +*printdialogshell*main*ok.label: Print +*printdialogshell*main*ok.tip: Print +*printdialogshell*main*setup.fromHoriz: ok +*printdialogshell*main*setup.fromVert: innerform +*printdialogshell*main*setup.label: Setup... +*printdialogshell*main*setup.tip: Configure print job options (page size, orientation, etc.) +*printdialogshell*main*cancel.fromHoriz: setup +*printdialogshell*main*cancel.fromVert: innerform +*printdialogshell*main*cancel.label: Cancel +*printdialogshell*main*cancel.tip: Cancel printing +*printdialogshell*main*desclabel.label: Printer Description: +*printdialogshell*main*desclabel.tip: Short description of printer +*printdialogshell*main*desc.fromHoriz: desclabel +*printdialogshell*main*desc.tip: Short description of printer +*printdialogshell*main*info.fromHoriz: desc +*printdialogshell*main*info.label: Printer info... +*printdialogshell*main*info.tip: Display additional information about this printer +*printdialogshell*main*namelabel.fromVert: desclabel +*printdialogshell*main*namelabel.label: Printer Name: +*printdialogshell*main*namelabel.tip: Name of selected printer +*printdialogshell*main*name.fromHoriz: namelabel +*printdialogshell*main*name.fromVert: desclabel +*printdialogshell*main*name.tip: Name of selected printer +*printdialogshell*main*selectprinter.fromHoriz: name +*printdialogshell*main*selectprinter.fromVert: desclabel +*printdialogshell*main*selectprinter.label: Select Printer... +*printdialogshell*main*selectprinter.label: Select Printer... +*printdialogshell*main*selectprinter.tip: Select a different printer +*printdialogshell*main*filenamelabel.fromVert: namelabel +*printdialogshell*main*filenamelabel.label: File Name: +*printdialogshell*main*filenamelabel.tip: File where the output should be stored +*printdialogshell*main*filename.fromHoriz: filenamelabel +*printdialogshell*main*filename.fromVert: namelabel +*printdialogshell*main*filename.tip: File where the output should be stored +*printdialogshell*main*selectfile.fromHoriz: filename +*printdialogshell*main*selectfile.fromVert: namelabel +*printdialogshell*main*selectfile.label: Select File... +*printdialogshell*main*selectfile.tip: Select file where the output should be stored +*printdialogshell*main*printtoprinter.fromVert: filenamelabel +*printdialogshell*main*printtoprinter.label: Print to Printer +*printdialogshell*main*printtoprinter.tip: Send print job to printer +*printdialogshell*main*printtofile.fromVert: filenamelabel +*printdialogshell*main*printtofile.fromHoriz: printtoprinter +*printdialogshell*main*printtofile.label: Print to File +*printdialogshell*main*printtofile.tip: Save print job in a file + +! Print job options dialog +*printdialogshell*setup*geometry: 600x400 +*printdialogshell*setup*title: Print: Print job options +*printdialogshell*setup*ok.fromVert: list +*printdialogshell*setup*ok.label: OK +*printdialogshell*setup*ok.tip: Commit changes +*printdialogshell*setup*cancel.fromHoriz: ok +*printdialogshell*setup*cancel.fromVert: list +*printdialogshell*setup*cancel.label: Cancel +*printdialogshell*setup*cancel.tip: Cancel and reset to defaults +*printdialogshell*setup*paperlist.tip: Select paper size +*printdialogshell*setup*resolutionlist.fromHoriz: paperlist +*printdialogshell*setup*resolutionlist.tip: Select page resolution +*printdialogshell*setup*orientationlist.fromHoriz: resolutionlist +*printdialogshell*setup*orientationlist.tip: Select page orientation +*printdialogshell*setup*plexlist.fromHoriz: orientationlist +*printdialogshell*setup*plexlist.tip: Select page plex mode (simplex, duplex, etc.) +*printdialogshell*setup*jobcopieslabel.fromVert: paperlist +*printdialogshell*setup*jobcopieslabel.tip: Set number of job copies +*printdialogshell*setup*jobcopieslabel.label: Job Copies: +*printdialogshell*setup*jobcopies.fromHoriz: jobcopieslabel +*printdialogshell*setup*jobcopies.fromVert: paperlist +*printdialogshell*setup*jobcopies.tip: Set number of job copies + +! Printer selection +*printdialogshell*printerselection*geometry: 400x150 +*printdialogshell*printerselection*title: Print: Select printer +*printdialogshell*printerselection*ok.fromVert: list +*printdialogshell*printerselection*ok.label: OK +*printdialogshell*printerselection*ok.tip: Switch printer +*printdialogshell*printerselection*cancel.fromHoriz: ok +*printdialogshell*printerselection*cancel.fromVert: list +*printdialogshell*printerselection*cancel.label: Cancel +*printdialogshell*printerselection*cancel.tip: Cancel printer selection +*printdialogshell*printerselection*list.tip: Select printer name from list + +! Select job file +*printdialogshell*selectfile*geometry: 400x80 +*printdialogshell*selectfile*title: Print: Select job file +*printdialogshell*selectfile*dialog.label: Select Filename: + +! EOF. @@ -29,10 +29,16 @@ #include <X11/Xfuncs.h> #include <X11/Xos.h> #include "xedit.h" +#ifdef INCLUDE_XPRINT_SUPPORT +#include "printdialog.h" +#include "print.h" +#endif /* INCLUDE_XPRINT_SUPPORT */ #ifdef CRAY #include <unistd.h> #endif #include <stdlib.h> +#include <stdio.h> +#include <limits.h> #include <string.h> #include <dirent.h> #include <pwd.h> @@ -41,6 +47,19 @@ #include <X11/IntrinsicP.h> #include <X11/Xaw/TextSrcP.h> +/* Turn a NULL pointer string into an empty string */ +#define NULLSTR(x) (((x)!=NULL)?(x):("")) + +#define Error(x) { printf x ; exit(EXIT_FAILURE); } +#define Assertion(expr, msg) { if (!(expr)) { Error msg } } +#define Log(x) { if (True) printf x; } + +#ifdef INCLUDE_XPRINT_SUPPORT +static Widget printdialog_shell = NULL; +static Widget printdialog = NULL; +static char printJobNameBuffer[PATH_MAX+256]; +#endif /* INCLUDE_XPRINT_SUPPORT */ + void ResetSourceChanged(xedit_flist_item*); static void ResetDC(Widget, XtPointer, XtPointer); @@ -338,8 +357,8 @@ DoSave(Widget w, XtPointer client_data, XtPointer call_data) XtRemoveCallback(scratch, XtNcallback, SourceChanged, (XtPointer)item); item->source = scratch = - XtVaCreateWidget("textSource", international ? - multiSrcObjectClass : asciiSrcObjectClass, + XtVaCreateWidget("textSource", + multiSrcObjectClass, topwindow, XtNtype, XawAsciiFile, XtNeditType, XawtextEdit, @@ -476,8 +495,8 @@ ReallyDoLoad(char *name, char *filename) XtSetArg(args[num_args], XtNstring, NULL); num_args++; } - source = XtVaCreateWidget("textSource", international ? - multiSrcObjectClass : asciiSrcObjectClass, + source = XtVaCreateWidget("textSource", + multiSrcObjectClass, topwindow, XtNtype, XawAsciiFile, XtNeditType, XawtextEdit, @@ -500,6 +519,109 @@ ReallyDoLoad(char *name, char *filename) return (True); } +#ifdef INCLUDE_XPRINT_SUPPORT +static void +printshellDestroyXtProc(Widget w, XtPointer client_data, XtPointer callData) +{ + XawPrintDialogClosePrinterConnection(printdialog, False); +} + +static void +printOKXtProc(Widget w, XtPointer client_data, XtPointer callData) +{ + XawPrintDialogCallbackStruct *pdcs = (XawPrintDialogCallbackStruct *)callData; + Cardinal n; + Arg args[2]; + Widget textsource; + + Log(("printOKXtProc: OK.\n")); + + /* Get TextSource object */ + n = 0; + XtSetArg(args[n], XtNtextSource, &textsource); n++; + XtGetValues(textwindow, args, n); + + Assertion(textsource != NULL, (("printOKXtProc: textsource == NULL.\n"))); + + /* ||printJobNameBuffer| must live as long the print job prints + * because it is used for the job title AND the page headers... */ + sprintf(printJobNameBuffer, "Xedit print job"); + + DoPrintTextSource("Xedit", + textsource, topwindow, + pdcs->pdpy, pdcs->pcontext, printshellDestroyXtProc, + printJobNameBuffer, + pdcs->printToFile?pdcs->printToFileName:NULL); + + XtPopdown(printdialog_shell); +} + +static void +printCancelXtProc(Widget w, XtPointer client_data, XtPointer callData) +{ + Log(("printCancelXtProc: cancel.\n")); + XtPopdown(printdialog_shell); + + Log(("destroying print dialog shell...\n")); + XtDestroyWidget(printdialog_shell); + printdialog_shell = NULL; + printdialog = NULL; + Log(("... done\n")); +} + + +/*ARGSUSED*/ +void +PrintFile(Widget w, XEvent *event, String *params, Cardinal *num_params) +{ + DoPrint(w, NULL, NULL); +} + +/*ARGSUSED*/ +void +DoPrint(Widget w, XtPointer client_data, XtPointer call_data) +{ + Dimension width, height; + Position x, y; + Widget parent = topwindow; + Log(("print!\n")); + + if (!printdialog) { + int n; + Arg args[20]; + + n = 0; + XtSetArg(args[n], XtNallowShellResize, True); n++; + printdialog_shell = XtCreatePopupShell("printdialogshell", + transientShellWidgetClass, + topwindow, args, n); + n = 0; + printdialog = XtCreateManagedWidget("printdialog", printDialogWidgetClass, + printdialog_shell, args, n); + XtAddCallback(printdialog, XawNOkCallback, printOKXtProc, NULL); + XtAddCallback(printdialog, XawNCancelCallback, printCancelXtProc, NULL); + + XtRealizeWidget(printdialog_shell); + } + + /* Center dialog */ + XtVaGetValues(printdialog_shell, + XtNwidth, &width, + XtNheight, &height, + NULL); + + x = (Position)(XWidthOfScreen( XtScreen(parent)) - width) / 2; + y = (Position)(XHeightOfScreen(XtScreen(parent)) - height) / 3; + + XtVaSetValues(printdialog_shell, + XtNx, x, + XtNy, y, + NULL); + + XtPopup(printdialog_shell, XtGrabNonexclusive); +} +#endif /* INCLUDE_XPRINT_SUPPORT */ + /* Function Name: SourceChanged * Description: A callback routine called when the source has changed. * Arguments: w - the text source that has changed. @@ -388,9 +388,11 @@ LineEditAction(Widget w, XEvent *event, String *params, Cardinal *num_params) { XawTextBlock block; - if (international) + if (True) { /* XXX FIXME */ + fprintf(stderr, "LineEditAction: Not working in international mode.\n"); return; + } block.firstPos = 0; block.format = FMT8BIT; @@ -27,7 +27,7 @@ * Author: Paulo César Pereira de Andrade */ -/* $XdotOrg: xc/programs/xedit/ispell.c,v 1.2 2004/04/23 19:54:43 eich Exp $ */ +/* $XdotOrg: xc/programs/xedit/ispell.c,v 1.3 2004/05/30 22:44:00 gisburn Exp $ */ /* $XFree86: xc/programs/xedit/ispell.c,v 1.19 2002/10/19 20:04:20 herrb Exp $ */ #include "xedit.h" @@ -825,7 +825,7 @@ IspellConvertHtmlAmp(char *buf) else if (*buf == '#') { char *tmp; - if (len == 1); + if (len == 1) return ('?'); ch = strtol(&buf[1], &tmp, 10); if (*tmp) @@ -938,10 +938,7 @@ IspellSend(void) return (-1); } for (i = 0; i < block.length; i++) { - if (international) - wctomb(mb, ((wchar_t*)block.ptr)[i]); - else - *mb = block.ptr[i]; + wctomb(mb, ((wchar_t*)block.ptr)[i]); if (amplen) { if (amplen + 2 >= sizeof(ampbuf)) { if (!ispell.terse_mode) @@ -1039,10 +1036,7 @@ IspellSend(void) return (-1); } for (i = 0; i < block.length; i++) { - if (international) - wctomb(mb, ((wchar_t*)block.ptr)[i]); - else - *mb = block.ptr[i]; + wctomb(mb, ((wchar_t*)block.ptr)[i]); if (amplen) { if (amplen + 2 >= sizeof(ampbuf)) { if (!ispell.terse_mode) @@ -1566,18 +1560,12 @@ ReplaceIspell(Widget w, XtPointer client_data, XtPointer call_data) char mb[sizeof(wchar_t)]; if (XawTextSourceRead(ispell.source, pos - 1, &check, 1) > 0) { - if (international) - wctomb(mb, *(wchar_t*)check.ptr); - else - *mb = *check.ptr; + wctomb(mb, *(wchar_t*)check.ptr); do_replace = !isalpha(*mb) && *mb && !strchr(ispell.wchars, *mb); } if (do_replace && XawTextSourceRead(ispell.source, pos + search.length, &check, 1) > 0) { - if (international) - wctomb(mb, *(wchar_t*)check.ptr); - else - *mb = *check.ptr; + wctomb(mb, *(wchar_t*)check.ptr); do_replace = !isalpha(*mb) && *mb && !strchr(ispell.wchars, *mb); } if (do_replace) { diff --git a/lisp/lisp.c b/lisp/lisp.c index da5d1c8..15226f6 100644 --- a/lisp/lisp.c +++ b/lisp/lisp.c @@ -46,7 +46,7 @@ #endif #if defined(linux) -#include <asm/page.h> /* for PAGE_SIZE */ +#include <asm/page.h> /* for PAGE_SIZE */ #define HAS_GETPAGESIZE #define HAS_SC_PAGESIZE /* _SC_PAGESIZE may be an enum for Linux */ #endif @@ -83,6 +83,8 @@ MakeCommandButton(Widget box, char *name, XtCallbackProc function) Widget w = XtCreateManagedWidget(name, commandWidgetClass, box, NULL, ZERO); if (function != NULL) XtAddCallback(w, XtNcallback, function, (caddr_t) NULL); + else + XtVaSetValues(w, XtNsensitive, False, NULL); return w; } @@ -41,6 +41,9 @@ static XtActionsRec actions[] = { {"quit", QuitAction}, {"save-file", SaveFile}, {"load-file", LoadFile}, +#ifdef INCLUDE_XPRINT_SUPPORT +{"print-file", PrintFile}, +#endif /* INCLUDE_XPRINT_SUPPORT */ {"find-file", FindFile}, {"cancel-find-file", CancelFindFile}, {"file-completion", FileCompletion}, @@ -71,7 +74,6 @@ static XawTextPositionInfo infos[3]; Widget topwindow, textwindow, messwidget, labelwindow, filenamewindow; Widget scratch, hpane, vpanes[2], labels[3], texts[3], forms[3], positions[3]; Widget options_popup, dirlabel, dirwindow; -Boolean international; Boolean line_edit; XawTextWrapMode wrapmodes[3]; @@ -111,6 +113,11 @@ static XtResource resources[] = { #undef Offset +String fallback_resources[] = { + "*international: True", /* set this globally for ALL widgets to avoid wiered crashes */ + NULL +}; + int main(int argc, char *argv[]) { @@ -118,7 +125,7 @@ main(int argc, char *argv[]) unsigned num_loaded = 0; XtSetLanguageProc(NULL, NULL, NULL); - topwindow = XtAppInitialize(&appcon, "Xedit", NULL, 0, &argc, argv, NULL, NULL, 0); + topwindow = XtAppInitialize(&appcon, "Xedit", NULL, 0, &argc, argv, fallback_resources, NULL, 0); XtAppAddActions(appcon, actions, XtNumber(actions)); XtOverrideTranslations @@ -240,9 +247,8 @@ main(int argc, char *argv[]) flags = 0; XtSetArg(args[num_args], XtNstring, NULL); num_args++; } - source = XtVaCreateWidget("textSource", international ? - multiSrcObjectClass - : asciiSrcObjectClass, topwindow, + source = XtVaCreateWidget("textSource", + multiSrcObjectClass, topwindow, XtNtype, XawAsciiFile, XtNeditType, XawtextEdit, NULL, NULL); @@ -281,7 +287,7 @@ main(int argc, char *argv[]) XtSetKeyboardFocus(topwindow, textwindow); XtAppMainLoop(appcon); - exit(0); + return EXIT_SUCCESS; } static void @@ -302,6 +308,9 @@ makeButtonsAndBoxes(Widget parent) MakeCommandButton(b_row, "quit", DoQuit); MakeCommandButton(b_row, "save", DoSave); MakeCommandButton(b_row, "load", DoLoad); +#ifdef INCLUDE_XPRINT_SUPPORT + MakeCommandButton(b_row, "print", DoPrint); +#endif /* INCLUDE_XPRINT_SUPPORT */ filenamewindow = MakeStringBox(b_row, "filename", NULL); } hintswindow = XtCreateManagedWidget("bc_label", labelWidgetClass, @@ -347,15 +356,10 @@ makeButtonsAndBoxes(Widget parent) textwindow = XtCreateManagedWidget(editWindow, asciiTextWidgetClass, vpanes[0], arglist, num_args); num_args = 0; - XtSetArg(arglist[num_args], XtNinternational, &international); ++num_args; - XtGetValues(textwindow, arglist, num_args); - - num_args = 0; XtSetArg(arglist[num_args], XtNtype, XawAsciiFile); ++num_args; XtSetArg(arglist[num_args], XtNeditType, XawtextEdit); ++num_args; - scratch = XtVaCreateWidget("textSource", international ? - multiSrcObjectClass - : asciiSrcObjectClass, topwindow, + scratch = XtVaCreateWidget("textSource", + multiSrcObjectClass, topwindow, XtNtype, XawAsciiFile, XtNeditType, XawtextEdit, NULL, NULL); @@ -100,7 +100,6 @@ extern struct _app_resources { extern Widget topwindow, textwindow, labelwindow, filenamewindow, messwidget; extern Widget dirlabel, dirwindow; -extern Boolean international; extern Boolean line_edit; /* externals in xedit.c */ @@ -132,9 +131,15 @@ void QuitAction(Widget, XEvent*, String*, Cardinal*); void DoSave(Widget, XtPointer, XtPointer); void SaveFile(Widget, XEvent*, String*, Cardinal*); void DoLoad(Widget, XtPointer, XtPointer); +#ifdef INCLUDE_XPRINT_SUPPORT +void DoPrint(Widget, XtPointer, XtPointer); +#endif /* INCLUDE_XPRINT_SUPPORT */ void CancelFindFile(Widget, XEvent*, String*, Cardinal*); void FindFile(Widget, XEvent*, String*, Cardinal*); void LoadFile(Widget, XEvent*, String*, Cardinal*); +#ifdef INCLUDE_XPRINT_SUPPORT +void PrintFile(Widget, XEvent*, String*, Cardinal*); +#endif /* INCLUDE_XPRINT_SUPPORT */ void FileCompletion(Widget, XEvent*, String*, Cardinal*); void KillFile(Widget, XEvent*, String*, Cardinal*); void DirWindowCB(Widget, XtPointer, XtPointer); |