mirror of
https://github.com/MidnightCommander/mc
synced 2025-01-26 21:22:03 +03:00
Merge branch '320_menu_reorganization'
* 320_menu_reorganization: New "Panel options" configuration dialog is fully described. New "Layout" configuration dialog is fully described. New "Configuration options" dialog is fully described. Some fixes for menu items help. old_esc_mode option can be setup now in 'Configure options' dialog. Reorganizing of 'Panel options' configuration dialog. Applied mouse_scroll_pages option to the mouse wheel. More options in configure dialogs. Modified loading/saving panel options. Configuration dialogs reorganization. Refactoring of configuration handling. Added new quick widget: quick_groupbox. Ticket #320: menu and configuration dialogs reorganization.
This commit is contained in:
commit
1a1ae74ba6
388
doc/man/mc.1.in
388
doc/man/mc.1.in
@ -223,18 +223,6 @@ program is executed.
|
||||
Also, it is possible to execute the commands assigned to the function
|
||||
key labels by clicking on them.
|
||||
.PP
|
||||
If a mouse button is clicked on the top frame line of the directory panel,
|
||||
it is scrolled one page up. Likewise, a click on the bottom frame line
|
||||
will cause scrolling one page down. This frame line method works also
|
||||
in the
|
||||
.\"LINK2"
|
||||
Help Viewer
|
||||
.\"Contents"
|
||||
and the
|
||||
.\"LINK2"
|
||||
Directory Tree\&.
|
||||
.\"Directory Tree"
|
||||
.PP
|
||||
The default auto repeat rate for the mouse buttons is 400
|
||||
milliseconds. This may be changed to other values by editing the
|
||||
.\"LINK2"
|
||||
@ -322,30 +310,29 @@ the input lines in the query dialogs.
|
||||
Hotkey bindings may be readed from external file (keymap\-file).
|
||||
A keymap\-file is searched on the following algorithm (to the first one found):
|
||||
.IP
|
||||
.br
|
||||
.BR
|
||||
1) command line option
|
||||
.BR \-K
|
||||
.BR \<keymap\>
|
||||
or
|
||||
.BR \-\-keymap=\<keymap\>
|
||||
.br
|
||||
.BR
|
||||
2) Environment variable
|
||||
.BR MC_KEYMAP
|
||||
.br
|
||||
.BR
|
||||
3) In config file parameter
|
||||
.BR keymap
|
||||
in section
|
||||
.BR [Midhight Commander]
|
||||
.br
|
||||
.BR [Midnight Commander]
|
||||
.BR
|
||||
4) File
|
||||
.BR ~/.mc/mc.keymap
|
||||
.br
|
||||
.BR
|
||||
5) File
|
||||
.BR @sysconfdir@/mc/mc.keymap
|
||||
.br
|
||||
6) File
|
||||
.BR @prefix@/share/mc/mc.keymap
|
||||
|
||||
.PP
|
||||
Command line option, environment variable and parameter in config file may
|
||||
contain the absolute path to the keymap\-file (with the extension \.keymap
|
||||
@ -353,14 +340,13 @@ or without it). Search of keymap\-file will occur in (to the first one found):
|
||||
.IP
|
||||
1)
|
||||
.BR ~/.mc/
|
||||
.br
|
||||
.BR
|
||||
2)
|
||||
.BR @sysconfdir@/mc/
|
||||
.br
|
||||
.BR
|
||||
3)
|
||||
.BR @prefix@/share/mc/
|
||||
.br
|
||||
|
||||
.BR
|
||||
.\"NODE " Miscellaneous Keys"
|
||||
.SH " Miscellaneous Keys"
|
||||
Here are some keys which don't fall into any of the other categories:
|
||||
@ -595,15 +581,6 @@ again, the next match is searched for.
|
||||
.P
|
||||
Besides the filename characters, you can also use wildcard
|
||||
characters '*' and '?'.
|
||||
.P
|
||||
Quick search mode is defined by
|
||||
.I quick_search_case_sensitive
|
||||
option located in [Midnight-Commander] section in configuration file.
|
||||
This option can have one of the following values: 0, 1 or 2.
|
||||
If quick_search_case_sensitive=0, quick search is case insensitive.
|
||||
If quick_search_case_sensitive=1, quick search is case sensitive.
|
||||
If quick_search_case_sensitive=2 (default value), quick search mode
|
||||
is matched to the the panel sort order: case sensitive or not.
|
||||
.\"NODE " Shell Command Line"
|
||||
.SH " Shell Command Line"
|
||||
This section lists keys which are useful to avoid excessive typing when
|
||||
@ -965,9 +942,9 @@ order by checking the reverse box.
|
||||
By default directories are sorted before files but this can be changed
|
||||
from the
|
||||
.\"LINK2"
|
||||
Options menu
|
||||
.\"Options Menu"
|
||||
(option
|
||||
Panel options
|
||||
.\"Panel options"
|
||||
menu (option
|
||||
.BR "Mix all files" ).
|
||||
.\"NODE " Filter..."
|
||||
.SH " Filter..."
|
||||
@ -1705,6 +1682,12 @@ looks like on the screen.
|
||||
.PP
|
||||
The
|
||||
.\"LINK2"
|
||||
Panel options
|
||||
.\"Panel options"
|
||||
command pops up a dialog from which you specify options of file manager panels.
|
||||
.PP
|
||||
The
|
||||
.\"LINK2"
|
||||
Confirmation
|
||||
.\"Confirmation"
|
||||
command pops up a dialog from which you specify which actions you want to
|
||||
@ -1738,72 +1721,10 @@ command saves the current settings of the Left, Right and Options
|
||||
menus. A small number of other settings is saved, too.
|
||||
.\"NODE " Configuration"
|
||||
.SH " Configuration"
|
||||
The options in this dialog are divided into three groups:
|
||||
Panel Options, Pause after run and Other Options.
|
||||
The options in this dialog are divided into several groups: "File
|
||||
operation options", "Esc key mode", "Pause after run" and "Other options".
|
||||
.PP
|
||||
.B Panel Options
|
||||
.PP
|
||||
.I Use SI size units.
|
||||
If this option is set, Midnight Commander will use SI units (powers of 1000)
|
||||
when displaying any byte sizes. The suffixes (k, m ...) are shown in lowercase.
|
||||
If unset (default), Midnight Commander will use binary units (powers of 1024)
|
||||
and the suffixes are shown in upper case (K, M ...)
|
||||
.PP
|
||||
.I Show Backup Files.
|
||||
If enabled, the Midnight Commander will show files ending with a tilde.
|
||||
Otherwise, they won't be shown (like GNU's ls option \-B).
|
||||
.PP
|
||||
.I Show Hidden Files.
|
||||
If enabled, the Midnight Commander will show all files that start with
|
||||
a dot (like ls \-a).
|
||||
.PP
|
||||
.I Mark moves down.
|
||||
If enabled, the selection bar will move down when you mark a file (with
|
||||
Insert key).
|
||||
.PP
|
||||
.I Drop down menus.
|
||||
When this option is enabled, the pull down menus will be activated as
|
||||
soon as you press the
|
||||
.B F9
|
||||
key. Otherwise, you will only get the menu title, and you will have
|
||||
to activate the menu either with the arrow keys or with the hotkeys.
|
||||
It is recommended if you are using hotkeys.
|
||||
.PP
|
||||
.I Mix all files.
|
||||
If this option is enabled, all files and directories are shown mixed
|
||||
together. If the option is off, directories (and links to directories)
|
||||
are shown at the beginning of the listing, and other files below.
|
||||
.PP
|
||||
.I Fast directory reload.
|
||||
If this option is enabled, the Midnight Commander will use a trick to
|
||||
determine if the directory contents have changed. The trick is to reload
|
||||
the directory only if the i\-node of the directory has changed; this means
|
||||
that reloads only happen when files are created or deleted. If what
|
||||
changes is the i\-node for a file in the directory (file size changes,
|
||||
mode or owner changes, etc) the display is not updated. In these cases,
|
||||
if you have the option on, you have to rescan the directory manually
|
||||
(with C\-r).
|
||||
.PP
|
||||
.B Pause after run
|
||||
.PP
|
||||
After executing your commands, the Midnight Commander can pause, so
|
||||
that you can examine the output of the command. There are three
|
||||
possible settings for this variable:
|
||||
.PP
|
||||
.I Never.
|
||||
Means that you do not want to see the output of your command. If you
|
||||
are using the Linux or FreeBSD console or an xterm, you will be able to
|
||||
see the output of the command by typing C\-o.
|
||||
.PP
|
||||
.I On dumb terminals.
|
||||
You will get the pause message on terminals that are not capable of
|
||||
showing the output of the last command executed (any terminal that is
|
||||
not an xterm or the Linux console).
|
||||
.PP
|
||||
.I Always.
|
||||
The program will pause after executing all of your commands.
|
||||
.PP
|
||||
.B Other Options
|
||||
.B File operation options
|
||||
.PP
|
||||
.I Verbose operation.
|
||||
This toggles whether the file Copy, Rename and Delete operations are
|
||||
@ -1813,30 +1734,64 @@ automatically turned off if the speed of your terminal is less than
|
||||
9600 bps.
|
||||
.PP
|
||||
.I Compute totals.
|
||||
If this option is enabled, the Midnight
|
||||
Commander computes total byte sizes and total number of files
|
||||
prior to any Copy, Rename and Delete operations. This will
|
||||
provide you with a more accurate progress bar at the expense
|
||||
of some speed. This option has no effect, if
|
||||
.I Verbose operation
|
||||
If this option is enabled, the Midnight Commander computes total byte
|
||||
sizes and total number of files prior to any Copy, Rename and Delete
|
||||
operations. This will provide you with a more accurate progress bar
|
||||
at the expense of some speed. This option has no effect, if
|
||||
.I Verbose operation
|
||||
is disabled.
|
||||
.PP
|
||||
.I Shell Patterns.
|
||||
By default the Select, Unselect and Filter commands will use shell\-like
|
||||
regular expressions. The following conversions are performed to achieve
|
||||
this: the '*' is replaced by '.*' (zero or more characters); the '?'
|
||||
is replaced by '.' (exactly one character) and '.' by the literal
|
||||
dot. If the option is disabled, then the regular expressions are the
|
||||
ones described in ed(1).
|
||||
.I Classic progressbar.
|
||||
If this option is enabled, the progressbar of Copy/Move/Delete operations
|
||||
is always grown form left to right. If disabled, the growing direction
|
||||
of progressbar follows to direction of Copy/Move/Delete operation:
|
||||
from left panel to right one and vice versa. Enabled by default.
|
||||
.PP
|
||||
.I Auto Save Setup.
|
||||
If this option is enabled, when you exit the Midnight Commander the
|
||||
configurable options of the Midnight Commander are saved in the
|
||||
~/.mc/ini file.
|
||||
.I Mkdir autoname
|
||||
When you press F7 to create a new directory, the input line in popup dialog
|
||||
will be filled by name of current file or directory in active panel.
|
||||
Disabled by default.
|
||||
.PP
|
||||
.I Auto menus.
|
||||
If this option is enabled, the user menu will be invoked at startup.
|
||||
Useful for building menus for non\-unixers.
|
||||
.B Esc key mode.
|
||||
.PP
|
||||
By default the Midnight Commander treats the ESC key as a key prefix.
|
||||
Therefore, you should press Esc code twice to exit a dialog. But there is
|
||||
a possibility to use a single press of ESC key for that action.
|
||||
.PP
|
||||
.I Single press.
|
||||
By default this option is disabled. If you'll enable it, the ESC key
|
||||
will act as a prefix key for set up time interval (see
|
||||
.I Timeout
|
||||
option below), and if no extra keys have arrived, then the ESC key
|
||||
is interpreted as a cancel key (ESC ESC).
|
||||
.PP
|
||||
.I Timeout.
|
||||
This options is used to setup the time interval (in microseconds)
|
||||
for single press of ESC key. By default, this inrerval is one second
|
||||
(1000000 microseconds). Also the timeout can be set via KEYBOARD_KEY_TIMEOUT_US
|
||||
environment variable (also in microseconds), which has higher priority
|
||||
than Timeout option value.
|
||||
.PP
|
||||
.B Pause after run
|
||||
.PP
|
||||
After executing your commands, the Midnight Commander can pause, so
|
||||
that you can examine the output of the command. There are three
|
||||
possible settings for this variable:
|
||||
.PP
|
||||
.IR Never .
|
||||
Means that you do not want to see the output of your command. If you
|
||||
are using the Linux or FreeBSD console or an xterm, you will be able to
|
||||
see the output of the command by typing C\-o.
|
||||
.PP
|
||||
.IR On dumb terminals .
|
||||
You will get the pause message on terminals that are not capable of
|
||||
showing the output of the last command executed (any terminal that is
|
||||
not an xterm or the Linux console).
|
||||
.PP
|
||||
.IR Always .
|
||||
The program will pause after executing all of your commands.
|
||||
.PP
|
||||
.B Other options
|
||||
.PP
|
||||
.I Use internal editor.
|
||||
If this option is enabled, the built\-in file editor is used to edit
|
||||
@ -1862,6 +1817,24 @@ command is used. See the section on the
|
||||
internal file viewer\&.
|
||||
.\"Internal File Viewer"
|
||||
.PP
|
||||
.I Auto menus.
|
||||
If this option is enabled, the user menu will be invoked at startup.
|
||||
Useful for building menus for non\-unixers.
|
||||
.PP
|
||||
.I Drop down menus.
|
||||
When this option is enabled, the pull down menus will be activated as
|
||||
soon as you press the F9 key. Otherwise, you will only get the menu title,
|
||||
and you will have to activate the menu either with the arrow keys or with
|
||||
the hotkeys. It is recommended if you are using hotkeys.
|
||||
.PP
|
||||
.I Shell Patterns.
|
||||
By default the Select, Unselect and Filter commands will use shell\-like
|
||||
regular expressions. The following conversions are performed to achieve
|
||||
this: the '*' is replaced by '.*' (zero or more characters); the '?'
|
||||
is replaced by '.' (exactly one character) and '.' by the literal
|
||||
dot. If the option is disabled, then the regular expressions are the
|
||||
ones described in ed(1).
|
||||
.PP
|
||||
.I Complete: show all.
|
||||
By default the Midnight Commander pops up all possible
|
||||
.\"LINK2"
|
||||
@ -1880,12 +1853,6 @@ If this option is enabled, the
|
||||
Midnight Commander shows a rotating dash in the upper right corner
|
||||
as a work in progress indicator.
|
||||
.PP
|
||||
.I Lynx\-like motion.
|
||||
If this option is enabled,
|
||||
you may use the arrows keys to automatically chdir if the
|
||||
current selection is a subdirectory and the shell command
|
||||
line is empty. By default, this setting is off.
|
||||
.PP
|
||||
.I Cd follows links.
|
||||
This option, if set, causes the Midnight Commander to follow the
|
||||
logical chain of directories when changing current directory
|
||||
@ -1900,17 +1867,132 @@ If this option is enabled, deleting files and directory hotlist entries
|
||||
unintentionally becomes more difficult. The default selection in the
|
||||
confirmation dialogs for deletion changes from "Yes" to "No".
|
||||
This option is disabled by default.
|
||||
.PP
|
||||
.I Auto save setup.
|
||||
If this option is enabled, when you exit the Midnight Commander the
|
||||
configurable options of the Midnight Commander are saved in the
|
||||
~/.mc/ini file.
|
||||
.\"NODE " Layout"
|
||||
.SH " Layout"
|
||||
The layout dialog gives you a possibility to change the general layout
|
||||
of screen. You can specify whether the menubar, the command prompt, the
|
||||
hintbar and the function keybar are visible. On the Linux or FreeBSD
|
||||
console you can specify how many lines are shown in the output window.
|
||||
of screen. The options in this dialog are divided into several groups:
|
||||
"Panel split", "Console output" and "Other options".
|
||||
.PP
|
||||
.B Panel split
|
||||
.PP
|
||||
The rest of the screen area is used for the two directory panels. You
|
||||
can specify whether the area is split to the panels in vertical or
|
||||
horizontal direction. The split can be equal or you can specify an
|
||||
unequal split.
|
||||
can specify whether the area is split to the panels in
|
||||
.I Vertical
|
||||
or
|
||||
.I Horizontal
|
||||
direction. Panel layout can be changed using Alt\-, (Alt\-comma) shortcut.
|
||||
.PP
|
||||
.I Equal split.
|
||||
By default, panels have equal sizes. Using this option you can specify
|
||||
an unequal split.
|
||||
.PP
|
||||
.B Console output
|
||||
.PP
|
||||
On the Linux or FreeBSD console you can specify how many lines are shown
|
||||
in the output window. This option is available if Midnight Commander runs
|
||||
on native console only.
|
||||
.PP
|
||||
.B Other options
|
||||
.PP
|
||||
.I Menu bar visible.
|
||||
If enabled, main menu of Midnight Commander is always visible on the top row
|
||||
of screen above panels. Enabled by default.
|
||||
.PP
|
||||
.I Show mini\-status.
|
||||
If enabled, one line of status information about the currently selected item
|
||||
is shown at the bottom of the panels. Enabled by default.
|
||||
.PP
|
||||
.I Command prompt.
|
||||
If enabled, command line is avalable. Enabled by default.
|
||||
.PP
|
||||
.I Keybar visible.
|
||||
If enabled, 10 lables associated with F1\-F10 keys are located at the bottom
|
||||
row of screen. Enabled by default.
|
||||
.PP
|
||||
.I Hintbar visible.
|
||||
If enabled, the one\-line hints are visible below panels. Enabled by default.
|
||||
.PP
|
||||
.I XTerm window title.
|
||||
When run in a terminal emulator for X11, Midnight Commander sets the
|
||||
terminal window title to the current working directory and updates it
|
||||
when necessary. If your terminal emulator is broken and you see some
|
||||
incorrect output on startup and directory change, turn off this option.
|
||||
Enabled by default.
|
||||
.PP
|
||||
.I Show free space.
|
||||
If enabled, free space and total space of current file system is shown
|
||||
at the bottom frame of panel. Enabled by default.
|
||||
.\"NODE " Panel options"
|
||||
.SH " Panel options"
|
||||
.B Main panel options
|
||||
.PP
|
||||
.I Use SI size units.
|
||||
If this option is enabled, Midnight Commander will use SI units (powers of 1000)
|
||||
when displaying any byte sizes. The suffixes (k, m ...) are shown in lowercase.
|
||||
If disabled (default), Midnight Commander will use binary units (powers of 1024)
|
||||
and the suffixes are shown in upper case (K, M ...)
|
||||
.PP
|
||||
.I Mix all files.
|
||||
If this option is enabled, all files and directories are shown mixed
|
||||
together. If the option is desabled (default), directories (and links to
|
||||
directories) are shown at the beginning of the listing, and other files below.
|
||||
.PP
|
||||
.I Show backup files.
|
||||
If enabled, the Midnight Commander will show files ending with a tilde.
|
||||
Otherwise, they won't be shown (like GNU's ls option \-B). Enabled by default.
|
||||
.PP
|
||||
.I Show hidden files.
|
||||
If enabled, the Midnight Commander will show all files that start with
|
||||
a dot (like ls \-a). Disabled by default.
|
||||
.PP
|
||||
.I Fast directory reload.
|
||||
If this option is enabled, the Midnight Commander will use a trick to
|
||||
determine if the directory contents have changed. The trick is to reload
|
||||
the directory only if the i\-node of the directory has changed; this means
|
||||
that reloads only happen when files are created or deleted. If what
|
||||
changes is the i\-node for a file in the directory (file size changes,
|
||||
mode or owner changes, etc) the display is not updated. In these cases,
|
||||
if you have the option on, you have to rescan the directory manually
|
||||
(with C\-r). Disabled by default.
|
||||
.PP
|
||||
.I Mark moves down.
|
||||
If enabled, the selection bar will move down when you mark a file (with
|
||||
Insert key). Enabled by default.
|
||||
.PP
|
||||
.I Reverse files only.
|
||||
Allow revert selection of files only. Enabled by default.
|
||||
If enabled, the reverse selection is applied to files only, not to directories.
|
||||
The selection of directories is untouched. If off, the reverse selection
|
||||
is applied to files as well to directories: all unselected items become
|
||||
selected, and vice versa.
|
||||
.PP
|
||||
.I Auto save panels setup.
|
||||
If this option is enabled, when you exit the Midnight Commander the
|
||||
current settings of panels are saved in the ~/.mc/panels.ini file.
|
||||
Disabled by default.
|
||||
.PP
|
||||
.B Navigation
|
||||
.PP
|
||||
.I Lynx\-like motion.
|
||||
If this option is enabled, you may use the arrows keys to automatically
|
||||
chdir if the current selection is a subdirectory and the shell command
|
||||
line is empty. By default, this setting is off.
|
||||
.PP
|
||||
.I Page scrolling.
|
||||
If set (the default), panel will scroll by half the display when the
|
||||
cursor reaches the end or the beginning of the panel, otherwise it
|
||||
will just scroll a file at a time.
|
||||
.PP
|
||||
.I Mouse page scrolling.
|
||||
Controls whenever scrolling with the mouse wheel is done by pages or
|
||||
line by line on the panels.
|
||||
.PP
|
||||
.B File highlight
|
||||
.PP
|
||||
You can specify whether
|
||||
.I permissions
|
||||
@ -1937,17 +2019,14 @@ Filenames Highlight
|
||||
.\"Filenames Highlight"
|
||||
for more info.
|
||||
.PP
|
||||
If the
|
||||
.I Show Mini\-Status
|
||||
option is enabled, one line of status information about the currently
|
||||
selected item is shown at the bottom of the panels.
|
||||
.B Quick search
|
||||
.PP
|
||||
When run in a terminal emulator for X11, Midnight Commander sets the
|
||||
terminal window title to the current working directory and updates it
|
||||
when necessary. If your terminal emulator is broken and you see some
|
||||
incorrect output on startup and directory change, turn off the
|
||||
.I Xterm Window Title
|
||||
option.
|
||||
You can specify how the
|
||||
.\"LINK2"
|
||||
Quick search
|
||||
.\"Quick search"
|
||||
mode should works: case insensitively, case sensitively or be matched
|
||||
to the the panel sort order: case sensitive or not.
|
||||
.\"NODE " Confirmation"
|
||||
.SH " Confirmation"
|
||||
In this dialog you configure the confirmation options for file deletion,
|
||||
@ -3385,7 +3464,7 @@ base_color=normal=white,default:marked=magenta,default
|
||||
|
||||
.\"NODE "Skins"
|
||||
.SH "Skins"
|
||||
You can change the appearance of Midhight Commander.
|
||||
You can change the appearance of Midnight Commander.
|
||||
To do this, you must specify a file that contain descriptions of colors
|
||||
and lines to draw boxes. Redefining of the colors is entirely compatible
|
||||
with the assignment of colors, as described in Section
|
||||
@ -3497,7 +3576,6 @@ color of input lines used in query dialogs.
|
||||
.TP
|
||||
.I reverse
|
||||
reverse color
|
||||
|
||||
.PP
|
||||
Section
|
||||
.B [dialog]
|
||||
@ -3794,20 +3872,10 @@ updates too jumpy.
|
||||
It seems that setting max_dirt_limit to 10 causes the best behavior,
|
||||
and that is the default value.
|
||||
.TP
|
||||
.I mouse_move_pages
|
||||
Controls whenever scrolling with the mouse is done by pages or line by
|
||||
line on the panels.
|
||||
.TP
|
||||
.I mouse_move_pages_viewer
|
||||
Controls if scrolling with the mouse is done by pages or line by line
|
||||
on the internal file viewer.
|
||||
.TP
|
||||
.I old_esc_mode
|
||||
By default the Midnight Commander treats the ESC key as a key prefix
|
||||
(old_esc_mode=0). If this option is set (old_esc_mode=1), the ESC key
|
||||
will act as a prefix key for one second, and if no extra keys have
|
||||
arrived, then the ESC key is interpreted as a cancel key (ESC ESC).
|
||||
.TP
|
||||
.I only_leading_plus_minus
|
||||
Allow special treatment for '+', '\-', '*' in the command line (select,
|
||||
unselect, reverse selection) only if the command line is empty. You
|
||||
@ -3815,18 +3883,6 @@ don't need to quote those characters in the middle of the command line.
|
||||
On the other hand, you cannot use them to change selection when the
|
||||
command line is not empty.
|
||||
.TP
|
||||
.I reverse_files_only
|
||||
Allow revert selection of files only. This variable is on by default.
|
||||
If on, the reverse selection is applied to files only, not to directories.
|
||||
The selection of directories is untouched. If off, the reverse
|
||||
selection is applied to files as well to directories: all unselected
|
||||
items become selected, and vice versa.
|
||||
.TP
|
||||
.I panel_scroll_pages
|
||||
If set (the default), panel will scroll by half the display when the
|
||||
cursor reaches the end or the beginning of the panel, otherwise it
|
||||
will just scroll a file at a time.
|
||||
.TP
|
||||
.I show_output_starts_shell
|
||||
This variable only works if you are not using the subshell support.
|
||||
When you use the C\-o keystroke to go back to the user screen, if this
|
||||
|
@ -214,19 +214,6 @@ Commander, просто набрав имя этой команды (прогр
|
||||
функциональной клавишей, щелкнув по соответствующей экранной кнопке в
|
||||
самой нижней строке экрана.
|
||||
.PP
|
||||
Если щелкнуть мышью по верхней рамке панели, отображающей очень длинный
|
||||
список файлов, происходит перемещение списка на одну колонку назад.
|
||||
Щелчок по нижней рамке панели приводит, соответственно, к перемещению по
|
||||
списку на целую колонку вперед. Этот метод перемещения работает также
|
||||
при просмотре
|
||||
.\"LINK2"
|
||||
встроенной подсказки
|
||||
.\"Contents"
|
||||
и просмотре окна
|
||||
.\"LINK2"
|
||||
Дерево каталогов\&.
|
||||
.\"Directory Tree"
|
||||
.PP
|
||||
По умолчанию скорость эмуляции повторных нажатий на клавишу в случае ее
|
||||
удержания (auto repeat rate) составляет 400 миллисекунд. Это значение
|
||||
можно изменить путем изменения параметра
|
||||
@ -274,7 +261,6 @@ S\-<символ> означает, что нужно держать в нажа
|
||||
.PP
|
||||
Все последующие описания клавиатурных команд относятся к поведению по
|
||||
умолчанию.
|
||||
|
||||
.PP
|
||||
Описания клавиатурных команд даются в нескольких разделах помощи.
|
||||
Наиболее важными являются следующие разделы:
|
||||
@ -333,7 +319,7 @@ S\-<символ> означает, что нужно держать в нажа
|
||||
3) В конфигурационном файле параметр
|
||||
.BR keymap
|
||||
в секции
|
||||
.BR [Midhight Commander]
|
||||
.BR [Midnight Commander]
|
||||
.br
|
||||
4) Файл
|
||||
.BR ~/.mc/mc.keymap
|
||||
@ -598,15 +584,6 @@ Midnight Commander\-а. Для возврата к вашему приложен
|
||||
Кроме обычных символов в имени файла также можно использовать
|
||||
символы маски '*' и '?'.
|
||||
.P
|
||||
Режим быстрого поиска определяется параметром
|
||||
.I quick_search_case_sensitive
|
||||
который должен располагаться в секции [Midnight-Commander] конфигурационного
|
||||
файла. Этот параметр может иметь одно из следующих значений: 0, 1 или 2.
|
||||
Если quick_search_case_sensitive=0, при быстром поиске не учитывается
|
||||
регистр имён файлов. Если quick_search_case_sensitive=1, регистр имён файлов
|
||||
учитывается. Если quick_search_case_sensitive=2 (значение по умолчанию),
|
||||
режим быстрого поиска соответствует порядку сортировки в панели: с учётом
|
||||
регистра или без.
|
||||
.\"NODE " Shell Command Line"
|
||||
.SH " Командная строка оболочки"
|
||||
В этом разделе перечислены команды, которые позволяют сократить число
|
||||
@ -769,10 +746,10 @@ Commander\-ом (например, символ '+').
|
||||
.PP
|
||||
Пункты меню
|
||||
.\"LINK2"
|
||||
"Левая" и "Правая"
|
||||
"Левая" и "Правая " ("Верхняя" и "Нижняя")
|
||||
.\"Left and Right Menus"
|
||||
позволяют изменить вид, соответственно, левой и правой панелей, и
|
||||
характер отображаемой в панели информации, в частности, выполнить
|
||||
позволяют изменить вид, соответственно, левой и правой (или верней и нижней)
|
||||
панелей и характер отображаемой в панели информации, в частности, выполнить
|
||||
соединения с удаленными компьютерами.
|
||||
.PP
|
||||
Меню
|
||||
@ -797,12 +774,12 @@ Commander\-ом (например, символ '+').
|
||||
программы Midnight Commander. Один из пунктов этого меню служит для
|
||||
сохранения настроек, заданных пользователем.
|
||||
.\"NODE " Left and Right Menus"
|
||||
.SH "Меню левой и правой панелей ('Левая' и 'Правая')"
|
||||
.SH "Меню левой и правой (или верхней и нижней) панелей"
|
||||
Вид панелей, в которых отображаются списки файлов и каталогов, может
|
||||
быть изменен через пункты меню
|
||||
.B "Левая" ("Left")
|
||||
.B "Левая" (или "Верхняя")
|
||||
и
|
||||
.B "Правая" ("Right").
|
||||
.B "Правая" (или "Нижняя").
|
||||
.\"NODE " Listing Mode..."
|
||||
.SH " Формат списка..."
|
||||
Этот пункт меню предназначен для определения формата вывода списка
|
||||
@ -987,10 +964,10 @@ half name | size:7 | type mode:3
|
||||
По умолчанию каталоги отображаются в начале списка, но это можно
|
||||
изменить, проставив отметку возле опции
|
||||
.B "Смешивать файлы и каталоги" ("Mix all files")
|
||||
пункта "Конфигурация" меню
|
||||
пункта меню
|
||||
.\"LINK2"
|
||||
"Настройки"\&.
|
||||
.\"Options Menu"
|
||||
Настройки панелей\&.
|
||||
.\"Panel options"
|
||||
.\"NODE " Filter..."
|
||||
.SH " Фильтр..."
|
||||
Пункт меню "Фильтр" позволяет задать шаблон, которому должны
|
||||
@ -1822,21 +1799,27 @@ L List the contents of a compressed tar\-archive
|
||||
.PP
|
||||
Пункт
|
||||
.\"LINK2"
|
||||
Внешний вид (Layout)
|
||||
Внешний вид
|
||||
.\"Layout"
|
||||
служит для задания настроек, определяющих положение и вид окна программы
|
||||
mc на экране.
|
||||
.PP
|
||||
Пункт
|
||||
.\"LINK2"
|
||||
Подтверждение (Confirmation)
|
||||
Настройки панелей
|
||||
.\"Panel options"
|
||||
служит для задания настроек панелей файлового менеджера.
|
||||
.PP
|
||||
Пункт
|
||||
.\"LINK2"
|
||||
Подтверждение
|
||||
.\"Confirmation"
|
||||
вызывает диалоговое окно, в котором вы указываете, на выполнение каких
|
||||
действий программа будет требовать подтверждения.
|
||||
.PP
|
||||
Пункт
|
||||
.\"LINK2"
|
||||
Биты символов (Display bits)
|
||||
Биты символов
|
||||
.\"Display bits"
|
||||
вызывает диалоговое окно, в котором вы указываете, в каком формате ваш
|
||||
терминал будет обрабатывать (вводить и отображать на дисплее)
|
||||
@ -1844,7 +1827,7 @@ mc на экране.
|
||||
.PP
|
||||
Пункт
|
||||
.\"LINK2"
|
||||
Распознавание клавиш (Learn keys)
|
||||
Распознавание клавиш
|
||||
.\"Learn keys"
|
||||
вызывает диалоговое окно, в котором вы можете протестировать работу
|
||||
некоторых клавиш, которые работают не на всех типах терминалов, и
|
||||
@ -1853,98 +1836,25 @@ mc на экране.
|
||||
.PP
|
||||
Пункт
|
||||
.\"LINK2"
|
||||
Виртуальные ФС (Virtual FS)
|
||||
Виртуальные ФС
|
||||
.\"Virtual FS"
|
||||
вызывает диалоговое окно, в котором вы можете задать значения некоторых
|
||||
параметров, связанных с использованием виртуальных файловых систем.
|
||||
.PP
|
||||
По команде
|
||||
.\"LINK2"
|
||||
Сохранить настройки (Save setup)
|
||||
Сохранить настройки
|
||||
.\"Save Setup"
|
||||
введенные значения параметров сохраняются в ini\-файле программы.
|
||||
.\"NODE " Configuration"
|
||||
.SH " Конфигурация"
|
||||
Параметры конфигурации, задаваемые в этом окне, делятся на три группы:
|
||||
"Настройки панелей", "Пауза после исполнения" и "Прочие настройки".
|
||||
Параметры конфигурации, задаваемые в этом окне, делятся на несколько
|
||||
групп: "Параметры операций с файлами", "Клавиша Esc", "Пауза после
|
||||
исполнения" и "Прочие настройки".
|
||||
.PP
|
||||
.B Настройки панелей (Panel Options)
|
||||
.B Параметры операций с файлами
|
||||
.PP
|
||||
.I Размеры в единицах СИ.
|
||||
Если эта опция включена, то Midnight Commander отображает размеры файлов
|
||||
и каталогов в единицах СИ (по основанию 1000). Суффиксы к, м, и т. д.
|
||||
отображаются в нижнем регистре. По умолчанию опция выключена. В этом случае
|
||||
Midnight Commander отображат размеры в двоичных единицах (по снованию
|
||||
1024), и суффиксы К, М, и т. д. отображаются в верхнем регистре.
|
||||
.PP
|
||||
.I Показывать резервные (Backup) файлы.
|
||||
По умолчанию программа Midnight Commander не показывает файлы, имена
|
||||
которых заканчиваются на '~' (подобно ключу \-B команды ls в GNU).
|
||||
.PP
|
||||
.I Показывать скрытые файлы.
|
||||
По умолчанию Midnight Commander показывает все файлы, имена которых
|
||||
начинаются точкой (как ls \-a).
|
||||
.PP
|
||||
.I Отметка перемещает курсор.
|
||||
Когда вы отмечаете файл (клавишей
|
||||
.BR Insert ),
|
||||
то по умолчанию подсветка на имени файла смещается на одну строку вниз.
|
||||
.PP
|
||||
.I Выпадение меню при вызове.
|
||||
Если эта опция включена, то при вызове главного меню нажатием клавиши
|
||||
.B F9,
|
||||
будет сразу отображаться перечень пунктов меню (выпадающее меню). В
|
||||
противном случае активизируются только пункты главного меню и вы должны
|
||||
(после выбора одного из них клавишами стрелок) нажать клавишу
|
||||
.B Enter,
|
||||
либо выбрать нужный пункт по первой букве названия, и только после этого
|
||||
получите возможность выбрать пункт выпадающего меню.
|
||||
.PP
|
||||
.I Смешивать файлы/каталоги.
|
||||
Если эта опция включена, имена файлов и каталогов отображаются
|
||||
вперемежку. Если опция отключена, каталоги (и ссылки на каталоги)
|
||||
показываются в начале списка, а имена файлов \- после имен всех
|
||||
каталогов.
|
||||
.PP
|
||||
.I Быстрая загрузка каталога.
|
||||
По умолчанию эта опция выключена. Если вы активизируете ее, Midnight
|
||||
Commander будет использовать для вывода содержимого каталога следующий
|
||||
трюк: содержимое каталога перечитывается только в том случае, если
|
||||
изменилась запись в i\-node каталога, то есть если в каталоге создавались
|
||||
или удалялись файлы; если изменялись только записи в i\-node файлов
|
||||
каталога (изменялся размер файла, режим доступа или владелец и т.п.)
|
||||
содержимое панели не обновляется. В этом случае (если опция включена) вы
|
||||
должны обновлять список файлов вручную (клавишами
|
||||
.BR C\-r ).
|
||||
.PP
|
||||
.B Пауза после исполнения
|
||||
.PP
|
||||
После выполнения вашей команды Midnight Commander может обеспечить
|
||||
паузу, чтобы вы могли просмотреть и изучить вывод команды. Есть три
|
||||
варианта установки этой опции:
|
||||
.IP
|
||||
.I <Никогда>
|
||||
Это значит, что вы не хотите видеть вывод команды. На консоли Linux или
|
||||
FreeBSD или при использовании xterm вы можете просмотреть этот вывод,
|
||||
нажав C\-o.
|
||||
.IP
|
||||
.I <На "тупых" терминалах>
|
||||
Пауза будет создаваться на терминалах, которые не способны обеспечить
|
||||
показ вывода последней из выполнявшихся команд (это любые терминалы,
|
||||
отличные от xterm или Linux\-консоли).
|
||||
.IP
|
||||
.I <Всегда>
|
||||
Программа обеспечит паузу после выполнения любой команды.
|
||||
.PP
|
||||
.PP
|
||||
.B Прочие настройки
|
||||
.PP
|
||||
.I Mkdir autoname.
|
||||
При создании нового каталога по F7 в поле ввода имени нового каталога
|
||||
будет автоматически подставляться имя файла или каталога, находящегося
|
||||
под курсором.
|
||||
.PP
|
||||
.I Детали операций (Verbose operation).
|
||||
.I Детали операций.
|
||||
Этот переключатель определяет, будет ли при выполнении операций
|
||||
копирования, перемещения и удаления выводится дополнительное окно,
|
||||
отображающее ход выполнения операции. Если у вас медленный терминал, вы
|
||||
@ -1960,25 +1870,61 @@ FreeBSD или при использовании xterm вы можете про
|
||||
опция
|
||||
.I Детали операций.
|
||||
.PP
|
||||
.I Образцы в стиле shell (Shell Patterns).
|
||||
По умолчанию команды Select, Unselect и Filter используют регулярные
|
||||
выражения, которые строятся по правилам, действующим в оболочке (shell\-
|
||||
like regular expressions). Для того, чтобы достичь такого эффекта,
|
||||
выполняются следующие преобразования: '*' заменяется на '.*' (ноль или
|
||||
больше символов); '?' заменяется на '.' (в точности один символ) и '.'
|
||||
заменяется на обычную точку. Если опция отключена, то регулярные
|
||||
выражения должны строиться так, как описано в ed(1).
|
||||
.I Обычный индикатор прогресса.
|
||||
Если эта опция включена, индикатор прогресса файловых операций (копирование,
|
||||
перемещение, удаление) всегда увеличивается слева направо. Если опция
|
||||
выключена, направление увеличения индикатора прогресса совпадает с направлением
|
||||
файловой операции: с левой панели на правую или наоборот. По умолчанию включено.
|
||||
.PP
|
||||
.I Автосохранение настроек.
|
||||
Если эта опция включена, то при выходе из программы Midnight Commander
|
||||
значения всех настраиваемых параметров сохраняются в файле
|
||||
.BR ~/.mc/ini .
|
||||
.I Автоимя каталога.
|
||||
При создании нового каталога по F7 в поле ввода имени нового каталога
|
||||
будет автоматически подставляться имя файла или каталога, находящегося
|
||||
под курсором. По умолчанию выключено.
|
||||
.PP
|
||||
.I Автоматические меню.
|
||||
Если эта опция включена, пользовательское меню будет автоматически
|
||||
вызываться на экран при запуске программы. Это бывает полезно, если на
|
||||
компьютере работают неопытные пользователи (операторы), которые должны
|
||||
выполнять только стандартные операции.
|
||||
.B Клавиша Esc
|
||||
.PP
|
||||
По умолчанию Midnight Commander трактует нажатие на клавишу ESC как
|
||||
действие, предшествующее нажатию какой\-то другой клавиши и совместно
|
||||
обрабатывает комбинацию <Esc\-key>. Поэтому вы должны нажимать ESC
|
||||
дважды, чтобы закрыть диалог. Но существует возможность использовать
|
||||
однократное нажатие ESC для этого действия.
|
||||
.PP
|
||||
.I Однократное нажатие.
|
||||
По умолчанию эта опция выключена. Если вы её включите, то программа будет
|
||||
ожидать нажатия второй клавиши только в течение некоторого временного
|
||||
интервала (см. ниже опцию
|
||||
.IR Интервал ),
|
||||
и если за это время ни одна клавиша не нажата, то ESC интерпретируется
|
||||
как каоманда "Отмена" (ESC ESC).
|
||||
.PP
|
||||
.I Интервал.
|
||||
Эта опция используется для задания временного интервала (в микросекундах)
|
||||
для использования однократного нажатия на клавишу ESC. По умолчанию этот
|
||||
интервал равен 1 секунде (1000000 микросекунд). Кроме того, этот интервал
|
||||
может быть установлен через переменную окружения KEYBOARD_KEY_TIMEOUT_US
|
||||
(также в микросекундах), которая имеет приоритет над над значеним этой
|
||||
опции.
|
||||
.PP
|
||||
.B Пауза после исполнения
|
||||
.PP
|
||||
После выполнения вашей команды Midnight Commander может обеспечить
|
||||
паузу, чтобы вы могли просмотреть и изучить вывод команды. Есть три
|
||||
варианта установки этой опции:
|
||||
.PP
|
||||
.IR Никогда.
|
||||
Это значит, что вы не хотите видеть вывод команды. На консоли Linux или
|
||||
FreeBSD или при использовании xterm вы можете просмотреть этот вывод,
|
||||
нажав C\-o.
|
||||
.PP
|
||||
.IR "На "тупых" терминалах" .
|
||||
Пауза будет создаваться на терминалах, которые не способны обеспечить
|
||||
показ вывода последней из выполнявшихся команд (это любые терминалы,
|
||||
отличные от xterm или Linux\-консоли).
|
||||
.PP
|
||||
.IR Всегда .
|
||||
Программа обеспечит паузу после выполнения любой команды.
|
||||
.PP
|
||||
.B Прочие настройки
|
||||
.PP
|
||||
.I Встроенный редактор.
|
||||
Если эта опция включена, то для редактирования файлов вызывается
|
||||
@ -2004,7 +1950,30 @@ like regular expressions). Для того, чтобы достичь таког
|
||||
Встроенная программа просмотра файлов\&.
|
||||
.\"Internal File Viewer"
|
||||
.PP
|
||||
.I Дополнение: показывать все (Complete: show all).
|
||||
.I Автоматические меню.
|
||||
Если эта опция включена, пользовательское меню будет автоматически
|
||||
вызываться на экран при запуске программы. Это бывает полезно, если на
|
||||
компьютере работают неопытные пользователи (операторы), которые должны
|
||||
выполнять только стандартные операции.
|
||||
.PP
|
||||
.I Выпадение меню при вызове.
|
||||
Если эта опция включена, то при вызове главного меню нажатием клавиши F9
|
||||
будет сразу отображаться перечень пунктов меню (выпадающее меню).
|
||||
В противном случае активизируются только пункты главного меню, и вы должны
|
||||
(после выбора одного из них клавишами стрелок) нажать клавишу Enter
|
||||
либо выбрать нужный пункт по "горячей клавише" и только после этого
|
||||
получите возможность выбрать пункт выпадающего меню.
|
||||
.PP
|
||||
.I Образцы в стиле shell.
|
||||
По умолчанию команды Select, Unselect и Filter используют регулярные
|
||||
выражения, которые строятся по правилам, действующим в оболочке (shell\-
|
||||
like regular expressions). Для того, чтобы достичь такого эффекта,
|
||||
выполняются следующие преобразования: '*' заменяется на '.*' (ноль или
|
||||
больше символов); '?' заменяется на '.' (в точности один символ) и '.'
|
||||
заменяется на обычную точку. Если опция отключена, то регулярные
|
||||
выражения должны строиться так, как описано в ed(1).
|
||||
.PP
|
||||
.I Дополнение: показывать все.
|
||||
В процессе ввода команд Midnight Commander может выполнять
|
||||
.\"LINK2"
|
||||
Завершение ввода
|
||||
@ -2028,13 +1997,6 @@ like regular expressions). Для того, чтобы достичь таког
|
||||
углу вращающуюся черточку, как индикатор того, что выполняется какое\-то
|
||||
задание (операция).
|
||||
.PP
|
||||
.I Навигация в стиле lynx (Lynx\-like motion).
|
||||
Если эта опция включена, вы имеете возможность использовать клавиши
|
||||
"стрелка вправо" для перехода в подсвеченный в данный момент каталог и
|
||||
"стрелка влево" для перехода в родительский по отношению к текущему
|
||||
каталог (при условии, что командная строка пуста). По умолчанию опция
|
||||
отключена.
|
||||
.PP
|
||||
.I Смена каталога по ссылкам.
|
||||
Установка этой опции приводит к тому, что Midnight Commander будет
|
||||
следовать логической цепочке подкаталогов при выполнении команд смены
|
||||
@ -2059,18 +2021,141 @@ like regular expressions). Для того, чтобы достичь таког
|
||||
на
|
||||
.BR Нет .
|
||||
По умолчанию эта опция отключена.
|
||||
.PP
|
||||
.I Автосохранение настроек.
|
||||
Если эта опция включена, то при выходе из программы Midnight Commander
|
||||
значения всех настраиваемых параметров сохраняются в файле
|
||||
.BR ~/.mc/ini .
|
||||
.\"NODE " Layout"
|
||||
.SH " Внешний вид"
|
||||
Диалоговое окно "Внешний вид" дает вам возможность изменить некоторые
|
||||
параметры отображения на экране главного окна программы Midnight
|
||||
Commander. Вы можете вывести на экран или отменить вывод строки главного
|
||||
меню, командной строки, строки подсказок, мини\-статуса, строки с
|
||||
подсказкой по функциональным клавишам. На консоли Linux или FreeBSD
|
||||
можно задать число строк, которые будут оставлены для отображения вывода
|
||||
команды.
|
||||
Commander. Параметры, задаваемые в этом окне, делятся на несколько
|
||||
групп: "Разбиение панелей", "Консольный вывод" и "Прочие настройки".
|
||||
.PP
|
||||
Можно также указать, должны ли панели располагаться горизонтально или
|
||||
вертикально, изменить размеры панелей.
|
||||
.B Разбиение панелей
|
||||
.PP
|
||||
Большую часть экрана занимают файловые панели. Вы можете указать,
|
||||
каким должно быть расположение панелей:
|
||||
.I вертикальное
|
||||
или
|
||||
.IR горизонтальное .
|
||||
Изменить расположение панелей можно также с помощью клавиатурного сочетания
|
||||
Alt\-, (Alt\-запятая).
|
||||
.PP
|
||||
.I Равные размеры
|
||||
По умолчанию панели имеют равные разменры. Эта опция позволяет изменить их.
|
||||
.PP
|
||||
.B Консольный вывод
|
||||
.PP
|
||||
Эта опция доступна, если Midnight Commander запущен на консоли Linux или
|
||||
FreeBSD. Она устанавливает число строк, которые будут оставлены для отображения
|
||||
вывода команды.
|
||||
.PP
|
||||
.B Прочие настройки
|
||||
.PP
|
||||
.I Линейка меню.
|
||||
Если включено, основное меню программы будет отображаться постоянно вверху
|
||||
экрана. По умолчанию включено.
|
||||
.PP
|
||||
.I Мини\-статус.
|
||||
Если включено, в нижней части каждой панели выводится строка информации
|
||||
о выделенном подсветкой файле или каталоге каждой панели. По умолчанию включено.
|
||||
.PP
|
||||
.I Командная строка.
|
||||
Если включено, в нижней части экрана будет доступна командная строка.
|
||||
По умолчанию включено.
|
||||
.PP
|
||||
.I Метки клавиш.
|
||||
Если включено, внизу экрана будут отображаться 10 меток, соответствующих
|
||||
функциональным клавишам F1\-F10. По умолчанию включено.
|
||||
.PP
|
||||
.I Строка подсказки.
|
||||
Если включено, ниже панелей будут отображаться однострочные подсказки
|
||||
по приёмам работы в Midnight Commander. По умолчанию включено.
|
||||
.PP
|
||||
.I Заголовок xterm.
|
||||
При исполнении в эмуляторе терминала системы X11 Midnight Commander
|
||||
отображает в заголовке xterm текущий каталог и изменяет этот заголовок
|
||||
при необходимости. Если ваш эмулятор терминала неисправен и вы видите
|
||||
неверный заголовок при старте или изменении каталога, выключите эту опцию.
|
||||
По умолчанию включено.
|
||||
.PP
|
||||
.I Свободное место.
|
||||
Если включено, на нижней рамке панели будет показано свободное место и общий
|
||||
размер текущей файловой системы. По умолчанию включено.
|
||||
.\"NODE " Panel options"
|
||||
.SH " Настройки панелей"
|
||||
.B Основные настройки панелей
|
||||
.PP
|
||||
.I Размеры в единицах СИ.
|
||||
Если эта опция включена, то Midnight Commander отображает размеры файлов
|
||||
и каталогов в единицах СИ (по основанию 1000). Суффиксы к, м, и т. д.
|
||||
отображаются в нижнем регистре. По умолчанию опция выключена. В этом случае
|
||||
Midnight Commander отображат размеры в двоичных единицах (по снованию
|
||||
1024), и суффиксы К, М, и т. д. отображаются в верхнем регистре.
|
||||
.PP
|
||||
.I Смешивать файлы/каталоги.
|
||||
Если эта опция включена, имена файлов и каталогов отображаются вперемежку.
|
||||
Если опция выключена, каталоги (и ссылки на каталоги) показываются в начале
|
||||
списка, а имена файлов \- после имен всех каталогов. По умолчанию выключено.
|
||||
.PP
|
||||
.I Показывать резервные (Backup) файлы.
|
||||
Если эта опция выключена, Midnight Commander не показывает файлы, имена которых
|
||||
заканчиваются на '~' (подобно ключу \-B команды ls в GNU). По умолчанию включено.
|
||||
.PP
|
||||
.I Показывать скрытые файлы.
|
||||
Если эта опция включена, Midnight Commander показывает все файлы, имена которых
|
||||
начинаются точкой (как ls \-a). По умолчанию включено.
|
||||
.PP
|
||||
.I Быстрая загрузка каталога.
|
||||
По умолчанию эта опция выключена. Если вы активизируете ее, Midnight
|
||||
Commander будет использовать для вывода содержимого каталога следующий трюк:
|
||||
содержимое каталога перечитывается только в том случае, если изменилась
|
||||
запись в i\-node каталога, то есть если в каталоге создавались или удалялись
|
||||
файлы; если изменялись только записи в i\-node файлов каталога (изменялся
|
||||
размер файла, режим доступа или владелец и т.п.) содержимое панели
|
||||
не обновляется. В этом случае (если опция включена) вы должны обновлять список
|
||||
файлов вручную (используя клавиатурное сочетание C\-r).
|
||||
.PP
|
||||
.I Отметка перемещает курсор.
|
||||
Когда вы отмечаете файл (клавишей Insert), то по умолчанию подсветка
|
||||
на имени файла смещается на одну строку вниз.
|
||||
.PP
|
||||
.I Инвертировать только файлы.
|
||||
Если опция включена (по умолчанию она включена), инвертирование
|
||||
выбора применяется только к файлам, но не к каталогам. Выбор каталогов
|
||||
не изменяется. Если не установлена, производится инвертирование как файлов,
|
||||
так и каталогов. Все невыбранные объекты становятся выбранными и наоборот.
|
||||
.PP
|
||||
.I Автосохранение настроек панелей.
|
||||
Если опция включена (по умолчанию она выключена), то при выходе из
|
||||
Midnight Commander'а текущие настройки панелей соханяются в файле
|
||||
~/.mc/panels.ini.
|
||||
.PP
|
||||
.B Навигация
|
||||
.PP
|
||||
.I Навигация в стиле lynx.
|
||||
Если эта опция включена, вы имеете возможность использовать клавиши
|
||||
"стрелка вправо" для перехода в подсвеченный в данный момент каталог и
|
||||
"стрелка влево" для перехода в родительский по отношению к текущему
|
||||
каталог (при условии, что командная строка пуста). По умолчанию опция
|
||||
отключена.
|
||||
.PP
|
||||
.I Страничное листание.
|
||||
Если опция установлена (по умолчанию она установлена), то когда курсор
|
||||
(подсветка) достигает конца или начала списка файлов, отображаемого на
|
||||
панели, будет производиться смещение на половину этого списка (то есть
|
||||
половина отображаемого списка остается на экране, а половина пропадает,
|
||||
заменяясь следующими пунктами общего списка). Если опция не установлена,
|
||||
происходит смещение только на одну строку.
|
||||
.PP
|
||||
.I Страничное листание мышью.
|
||||
Определяет, будет ли прокрутка информации (scrolling) в панелях,
|
||||
осуществляемая с помощью мышки, производиться страницами или на одну
|
||||
строку.
|
||||
.PP
|
||||
.B Расцветка файлов
|
||||
.PP
|
||||
По умолчанию вся информация отображаются одним цветом, но вы можете
|
||||
сделать так, чтобы
|
||||
@ -2099,39 +2184,15 @@ Commander, выделены цветом, определенным ключев
|
||||
.\"Filenames Highlight"
|
||||
для получения большей информации.
|
||||
.PP
|
||||
При включенной опции
|
||||
.IR Линейка меню
|
||||
вызываемое при нажатии клавиши F9 меню будет отображаться постоянно.
|
||||
.B Быстрый поиск
|
||||
.PP
|
||||
Если включена опция
|
||||
.IR Мини\-статус ,
|
||||
в нижней части каждой панели выводится строка информации о выделенном
|
||||
подсветкой файле или каталоге каждой панели.
|
||||
.PP
|
||||
Если включена опция
|
||||
.IR Командная строка ,
|
||||
в нижней части экрана будет отображаться приглашение командной строки.
|
||||
.PP
|
||||
Включение опции
|
||||
.IR Метки клавиш
|
||||
будет постоянно отображать в нижней части экрана строку подсказок
|
||||
функциональных клавиш.
|
||||
.PP
|
||||
Если включена опция
|
||||
.IR Строка подсказки ,
|
||||
в нижней части экрана будут отображаться произвольно выбранные подсказки
|
||||
(tips) по приёмам работы с Midmight Commander.
|
||||
.PP
|
||||
При исполнении в эмуляторе терминала системы X11 Midnight Commander
|
||||
отображает в заголовке xterm текущий каталог и изменяет этот заголовок
|
||||
при необходимости. Если ваш эмулятор терминала неисправен и вы видите
|
||||
неверный заголовок при старте или изменении каталога, выключите параметр
|
||||
.I Заголовок xterm
|
||||
(Xterm Window Title).
|
||||
.PP
|
||||
Включение опции
|
||||
.IR show free space ,
|
||||
покажет свободное место / всего места на разделах.
|
||||
.\"LINK2"
|
||||
Быстрый поиск файлов
|
||||
.\"Quick search"
|
||||
может работать в одном из трёх режимов: с учётом регистра имён файлов,
|
||||
без учёта регистра или в соответствии с порядком сортировки файлов в панели:
|
||||
с учётом регистра или без. Режим по умолчанию \- использование порядка
|
||||
сортировки файлов в панели.
|
||||
.\"NODE " Confirmation"
|
||||
.SH " Подтверждения"
|
||||
Используя это диалоговое окно, вы можете сделать так, чтобы перед
|
||||
@ -3684,7 +3745,7 @@ base_color=normal=white,default:marked=magenta,default
|
||||
|
||||
.\"NODE "Skins"
|
||||
.SH "Внешний вид"
|
||||
Вы можете изменить внешний вид Midhight Commander'а. Для этого необходимо
|
||||
Вы можете изменить внешний вид Midnight Commander'а. Для этого необходимо
|
||||
указать файл, в котором указаны цвета и линии для отрисовки рамок. Такой
|
||||
файл называется далее скин\-файл. переопределение внешнего вида полностью
|
||||
совместимо с заданием цветов, описанным в секции
|
||||
@ -3709,7 +3770,7 @@ base_color=normal=white,default:marked=magenta,default
|
||||
3) В конфигурационном файле параметр
|
||||
.BR skin
|
||||
в секции
|
||||
.BR [Midhight Commander]
|
||||
.BR [Midnight Commander]
|
||||
.br
|
||||
4) Файл
|
||||
.BR @sysconfdir@/mc/skins/default.ini
|
||||
@ -4106,31 +4167,15 @@ router). Эта опция работает только в том случае,
|
||||
значение этого параметра может привести к тому, что процедура обновления
|
||||
экрана начнет вaс раздражать.
|
||||
.IP
|
||||
По\-видимому значение max_dirt_limit, равное 10, обеспечивает наилучший
|
||||
По\-видимому, значение max_dirt_limit, равное 10, обеспечивает наилучший
|
||||
выбор, и именно такое значение устанавливается по умолчанию.
|
||||
.PP
|
||||
.I mouse_move_pages
|
||||
.IP
|
||||
Определяет, будет ли прокрутка информации (scrolling) в панелях,
|
||||
осуществляемая с помощью мышки, производиться страницами или на одну
|
||||
строку.
|
||||
.PP
|
||||
.I mouse_move_pages_viewer
|
||||
.IP
|
||||
Определяет, будет ли прокрутка информации (scrolling) во встроенной
|
||||
программе просмотра, осуществляемая с помощью мышки, производиться
|
||||
страницами или на одну строку.
|
||||
.PP
|
||||
.I old_esc_mode
|
||||
.IP
|
||||
По умолчанию Midnight Commander трактует нажатие на клавишу ESC как
|
||||
действие, предшествующее нажатию какой\-то другой клавиши
|
||||
(old_esc_mode=0), и совместно обрабатывает комбинацию <Esc\-key>. Если
|
||||
установить эту опцию в 1 (old_esc_mode=1), то программа будет ожидать
|
||||
нажатия второй клавиши только в течение 1 секунды, и если за это время
|
||||
ни одна клавиша не нажата, то ESC интерпретируется как требование отказа
|
||||
от выполнения предыдущей команды (ESC ESC).
|
||||
.PP
|
||||
.I only_leading_plus_minus
|
||||
.IP
|
||||
Устанавливает специальный режим обработки символов '+', '\-', '*' в
|
||||
@ -4141,22 +4186,6 @@ router). Эта опция работает только в том случае,
|
||||
использовать эти символы для таких операций, если командная строка не
|
||||
пуста.
|
||||
.PP
|
||||
.I reverse_files_only
|
||||
.IP
|
||||
Если опция установлена (по умолчанию она установлена), инвертирование
|
||||
выбора применяется только к файлам, но не к каталогам. Выбор каталогов
|
||||
не изменяется. Если не установлена, производится инвертирование как файлов,
|
||||
так и каталогов. Все невыбранные объекты становятся выбранными и наоборот.
|
||||
.PP
|
||||
.I panel_scroll_pages
|
||||
.IP
|
||||
Если опция установлена (по умолчанию она установлена), то когда курсор
|
||||
(подсветка) достигает конца или начала списка файлов, отображаемого на
|
||||
панели, будет производиться смещение на половину этого списка (то есть
|
||||
половина отображаемого списка остается на экране, а половина пропадает,
|
||||
заменяясь следующими пунктами общего списка). Если опция не установлена,
|
||||
происходит смещение только на одну строку.
|
||||
.PP
|
||||
.I show_output_starts_shell
|
||||
.IP
|
||||
Эта переменная работает только в том случае, когда не включена поддержка
|
||||
|
@ -489,7 +489,7 @@ static key_define_t qansi_key_defines[] = {
|
||||
};
|
||||
|
||||
/* timeout for old_esc_mode in usec */
|
||||
static int keyboard_key_timeout = 1000000; /* settable via env */
|
||||
int old_esc_mode_timeout = 1000000; /* settable via env */
|
||||
|
||||
/* This holds all the key definitions */
|
||||
static key_def *keys = NULL;
|
||||
@ -983,8 +983,8 @@ xgetch_second (void)
|
||||
int c;
|
||||
struct timeval time_out;
|
||||
|
||||
time_out.tv_sec = keyboard_key_timeout / 1000000;
|
||||
time_out.tv_usec = keyboard_key_timeout % 1000000;
|
||||
time_out.tv_sec = old_esc_mode_timeout / 1000000;
|
||||
time_out.tv_usec = old_esc_mode_timeout % 1000000;
|
||||
tty_nodelay (TRUE);
|
||||
FD_ZERO (&Read_FD_Set);
|
||||
FD_SET (input_fd, &Read_FD_Set);
|
||||
@ -1039,9 +1039,6 @@ void
|
||||
init_key (void)
|
||||
{
|
||||
const char *term = getenv ("TERM");
|
||||
const char *kt = getenv ("KEYBOARD_KEY_TIMEOUT_US");
|
||||
if (kt != NULL)
|
||||
keyboard_key_timeout = atoi (kt);
|
||||
|
||||
/* This has to be the first define_sequence */
|
||||
/* So, we can assume that the first keys member has ESC */
|
||||
@ -1520,8 +1517,8 @@ get_key_code (int no_delay)
|
||||
if (esctime.tv_sec == -1)
|
||||
return -1;
|
||||
GET_TIME (current);
|
||||
time_out.tv_sec = keyboard_key_timeout / 1000000 + esctime.tv_sec;
|
||||
time_out.tv_usec = keyboard_key_timeout % 1000000 + esctime.tv_usec;
|
||||
time_out.tv_sec = old_esc_mode_timeout / 1000000 + esctime.tv_sec;
|
||||
time_out.tv_usec = old_esc_mode_timeout % 1000000 + esctime.tv_usec;
|
||||
if (time_out.tv_usec > 1000000) {
|
||||
time_out.tv_usec -= 1000000;
|
||||
time_out.tv_sec++;
|
||||
|
@ -32,6 +32,8 @@ typedef struct {
|
||||
|
||||
extern const key_code_name_t key_name_conv_tab[];
|
||||
|
||||
extern int old_esc_mode_timeout;
|
||||
|
||||
/* mouse support */
|
||||
struct Gpm_Event;
|
||||
int tty_get_event (struct Gpm_Event *event, gboolean redo_event, gboolean block);
|
||||
|
35
lib/util.c
35
lib/util.c
@ -57,13 +57,6 @@
|
||||
|
||||
int easy_patterns = 1;
|
||||
|
||||
/*
|
||||
* If true, SI units (1000 based) will be used for
|
||||
* larger units (kilobyte, megabyte, ...).
|
||||
* If false binary units (1024 based) will be used.
|
||||
*/
|
||||
int kilobyte_si = 0;
|
||||
|
||||
char *user_recent_timeformat = NULL; /* time format string for recent dates */
|
||||
char *user_old_timeformat = NULL; /* time format string for older dates */
|
||||
|
||||
@ -289,7 +282,7 @@ path_trunc (const char *path, size_t trunc_len)
|
||||
}
|
||||
|
||||
const char *
|
||||
size_trunc (double size)
|
||||
size_trunc (double size, gboolean use_si)
|
||||
{
|
||||
static char x[BUF_TINY];
|
||||
long int divisor = 1;
|
||||
@ -297,12 +290,12 @@ size_trunc (double size)
|
||||
|
||||
if (size > 999999999L)
|
||||
{
|
||||
divisor = kilobyte_si ? 1000 : 1024;
|
||||
xtra = kilobyte_si ? "k" : "K";
|
||||
divisor = use_si ? 1000 : 1024;
|
||||
xtra = use_si ? "k" : "K";
|
||||
if (size / divisor > 999999999L)
|
||||
{
|
||||
divisor = kilobyte_si ? (1000 * 1000) : (1024 * 1024);
|
||||
xtra = kilobyte_si ? "m" : "M";
|
||||
divisor = use_si ? (1000 * 1000) : (1024 * 1024);
|
||||
xtra = use_si ? "m" : "M";
|
||||
}
|
||||
}
|
||||
g_snprintf (x, sizeof (x), "%.0f%s", (size / divisor), xtra);
|
||||
@ -310,14 +303,14 @@ size_trunc (double size)
|
||||
}
|
||||
|
||||
const char *
|
||||
size_trunc_sep (double size)
|
||||
size_trunc_sep (double size, gboolean use_si)
|
||||
{
|
||||
static char x[60];
|
||||
int count;
|
||||
const char *p, *y;
|
||||
char *d;
|
||||
|
||||
p = y = size_trunc (size);
|
||||
p = y = size_trunc (size, use_si);
|
||||
p += strlen (p) - 1;
|
||||
d = x + sizeof (x) - 1;
|
||||
*d-- = 0;
|
||||
@ -348,7 +341,7 @@ size_trunc_sep (double size)
|
||||
* 0=bytes, 1=Kbytes, 2=Mbytes, etc.
|
||||
*/
|
||||
void
|
||||
size_trunc_len (char *buffer, unsigned int len, off_t size, int units)
|
||||
size_trunc_len (char *buffer, unsigned int len, off_t size, int units, gboolean use_si)
|
||||
{
|
||||
/* Avoid taking power for every file. */
|
||||
static const off_t power10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000,
|
||||
@ -367,7 +360,7 @@ size_trunc_len (char *buffer, unsigned int len, off_t size, int units)
|
||||
* We can't just multiply by 1024 - that might cause overflow
|
||||
* if off_t type is too small
|
||||
*/
|
||||
if (units && kilobyte_si)
|
||||
if (units && use_si)
|
||||
{
|
||||
for (j = 0; j < units; j++)
|
||||
{
|
||||
@ -391,26 +384,22 @@ size_trunc_len (char *buffer, unsigned int len, off_t size, int units)
|
||||
|
||||
/* Use "~K" or just "K" if len is 1. Use "B" for bytes. */
|
||||
g_snprintf (buffer, len + 1, (len > 1) ? "~%s" : "%s",
|
||||
(j > 1) ? (kilobyte_si ? suffix_lc[j - 1] : suffix[j - 1]) : "B");
|
||||
(j > 1) ? (use_si ? suffix_lc[j - 1] : suffix[j - 1]) : "B");
|
||||
break;
|
||||
}
|
||||
|
||||
if (size < power10[len - (j > 0)])
|
||||
{
|
||||
g_snprintf (buffer, len + 1, "%lu%s", (unsigned long) size,
|
||||
kilobyte_si ? suffix_lc[j] : suffix[j]);
|
||||
use_si ? suffix_lc[j] : suffix[j]);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Powers of 1000 or 1024, with rounding. */
|
||||
if (kilobyte_si)
|
||||
{
|
||||
if (use_si)
|
||||
size = (size + 500) / 1000;
|
||||
}
|
||||
else
|
||||
{
|
||||
size = (size + 512) >> 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,9 @@
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern char *user_recent_timeformat; /* time format string for recent dates */
|
||||
extern char *user_old_timeformat; /* time format string for older dates */
|
||||
|
||||
/* Returns its argument as a "modifiable" string. This function is
|
||||
* intended to pass strings to legacy libraries that don't know yet
|
||||
* about the "const" modifier. The return value of this function
|
||||
@ -55,18 +58,18 @@ const char *path_trunc (const char *path, size_t trunc_len);
|
||||
/* return a static string representing size, appending "K" or "M" for
|
||||
* big sizes.
|
||||
* NOTE: uses the same static buffer as size_trunc_sep. */
|
||||
const char *size_trunc (double size);
|
||||
const char *size_trunc (double size, gboolean use_si);
|
||||
|
||||
/* return a static string representing size, appending "K" or "M" for
|
||||
* big sizes. Separates every three digits by ",".
|
||||
* NOTE: uses the same static buffer as size_trunc. */
|
||||
const char *size_trunc_sep (double size);
|
||||
const char *size_trunc_sep (double size, gboolean use_si);
|
||||
|
||||
/* Print file SIZE to BUFFER, but don't exceed LEN characters,
|
||||
* not including trailing 0. BUFFER should be at least LEN+1 long.
|
||||
*
|
||||
* Units: size units (0=bytes, 1=Kbytes, 2=Mbytes, etc.) */
|
||||
void size_trunc_len (char *buffer, unsigned int len, off_t size, int units);
|
||||
void size_trunc_len (char *buffer, unsigned int len, off_t size, int units, gboolean use_si);
|
||||
int is_exe (mode_t mode);
|
||||
const char *string_perm (mode_t mode_bits);
|
||||
|
||||
|
@ -227,6 +227,7 @@ CmdSingleDirsize = ctrl-space
|
||||
CmdSuspend = ctrl-z
|
||||
CmdSwapPanel = ctrl-u
|
||||
CmdHistory = alt-h
|
||||
CmdListing =
|
||||
CmdToggleListing = alt-t
|
||||
CmdToggleShowHidden = alt-dot
|
||||
CmdTogglePanelsSplit = alt-comma
|
||||
|
@ -231,6 +231,7 @@ CmdSingleDirsize = ctrl-space
|
||||
CmdSuspend = ctrl-z
|
||||
CmdSwapPanel = ctrl-u
|
||||
CmdHistory = alt-h
|
||||
CmdListing =
|
||||
CmdToggleListing = alt-t
|
||||
CmdToggleShowHidden = alt-dot
|
||||
CmdTogglePanelsSplit = alt-comma
|
||||
|
2
po/ru.po
2
po/ru.po
@ -3054,7 +3054,7 @@ msgid "&Horizontal"
|
||||
msgstr "&Горизонтальное"
|
||||
|
||||
msgid "show free sp&Ace"
|
||||
msgstr "показать свободное пространство"
|
||||
msgstr "Сво&бодное место"
|
||||
|
||||
msgid "&Xterm window title"
|
||||
msgstr "&Заголовок xterm"
|
||||
|
20
src/chown.c
20
src/chown.c
@ -43,13 +43,12 @@
|
||||
#include "widget.h"
|
||||
|
||||
/* Needed for the extern declarations of integer parameters */
|
||||
#include "dir.h"
|
||||
#include "panel.h" /* Needed for the externs */
|
||||
#include "chmod.h"
|
||||
#include "main.h" /* update_panels() */
|
||||
#include "layout.h" /* repaint_screen() */
|
||||
#include "chown.h"
|
||||
#include "wtools.h" /* For init_box_colors */
|
||||
#include "wtools.h" /* init_box_colors() */
|
||||
#include "setup.h" /* panels_options */
|
||||
|
||||
#define UX 5
|
||||
#define UY 2
|
||||
@ -75,7 +74,8 @@ static int single_set;
|
||||
static WListbox *l_user, *l_group;
|
||||
|
||||
/* *INDENT-OFF* */
|
||||
static struct {
|
||||
static struct
|
||||
{
|
||||
int ret_cmd, flags, y, x;
|
||||
const char *text;
|
||||
} chown_but[BUTTONS] = {
|
||||
@ -91,11 +91,11 @@ static struct {
|
||||
int y, x;
|
||||
WLabel *l;
|
||||
} chown_label [LABELS] = {
|
||||
{ TY + 2, TX + 2, NULL },
|
||||
{ TY + 4, TX + 2, NULL },
|
||||
{ TY + 6, TX + 2, NULL },
|
||||
{ TY + 8, TX + 2, NULL },
|
||||
{ TY + 10,TX + 2, NULL }
|
||||
{ TY + 2, TX + 2, NULL },
|
||||
{ TY + 4, TX + 2, NULL },
|
||||
{ TY + 6, TX + 2, NULL },
|
||||
{ TY + 8, TX + 2, NULL },
|
||||
{ TY + 10, TX + 2, NULL }
|
||||
};
|
||||
/* *INDENT-ON* */
|
||||
|
||||
@ -282,7 +282,7 @@ chown_cmd (void)
|
||||
chown_label (0, str_trunc (fname, 15));
|
||||
chown_label (1, str_trunc (get_owner (sf_stat.st_uid), 15));
|
||||
chown_label (2, str_trunc (get_group (sf_stat.st_gid), 15));
|
||||
size_trunc_len (buffer, 15, sf_stat.st_size, 0);
|
||||
size_trunc_len (buffer, 15, sf_stat.st_size, 0, panels_options.kilobyte_si);
|
||||
chown_label (3, buffer);
|
||||
chown_label (4, string_perm (sf_stat.st_mode));
|
||||
|
||||
|
15
src/cmd.c
15
src/cmd.c
@ -105,9 +105,6 @@ int use_internal_edit = 1;
|
||||
/* Automatically fills name with current selected item name on mkdir */
|
||||
int auto_fill_mkdir_name = 1;
|
||||
|
||||
/* if set, only selection of files is inverted */
|
||||
int reverse_files_only = 1;
|
||||
|
||||
/* selection flags */
|
||||
typedef enum
|
||||
{
|
||||
@ -546,7 +543,7 @@ reverse_selection_cmd (void)
|
||||
for (i = 0; i < current_panel->count; i++)
|
||||
{
|
||||
file = ¤t_panel->dir.list[i];
|
||||
if ((reverse_files_only == 0) || !S_ISDIR (file->st.st_mode))
|
||||
if (!panels_options.reverse_files_only || !S_ISDIR (file->st.st_mode))
|
||||
do_file_mark (current_panel, i, !file->f.marked);
|
||||
}
|
||||
}
|
||||
@ -1340,8 +1337,8 @@ single_dirsize_cmd (void)
|
||||
compute_dir_size_destroy_ui (ui);
|
||||
}
|
||||
|
||||
if (mark_moves_down)
|
||||
send_message (&(panel->widget), WIDGET_KEY, KEY_DOWN);
|
||||
if (panels_options.mark_moves_down)
|
||||
send_message (&panel->widget, WIDGET_KEY, KEY_DOWN);
|
||||
|
||||
recalculate_panel_summary (panel);
|
||||
|
||||
@ -1453,6 +1450,12 @@ switch_to_listing (int panel_index)
|
||||
|
||||
void
|
||||
listing_cmd (void)
|
||||
{
|
||||
switch_to_listing (MENU_PANEL_IDX);
|
||||
}
|
||||
|
||||
void
|
||||
change_listing_cmd (void)
|
||||
{
|
||||
int list_type;
|
||||
int use_msformat;
|
||||
|
@ -60,6 +60,7 @@ char *get_random_hint (int force);
|
||||
void user_file_menu_cmd (void);
|
||||
void info_cmd (void);
|
||||
void listing_cmd (void);
|
||||
void change_listing_cmd (void);
|
||||
void quick_cmd_no_menu (void);
|
||||
void info_cmd_no_menu (void);
|
||||
void quick_view_cmd (void);
|
||||
|
144
src/cmddef.h
144
src/cmddef.h
@ -306,77 +306,79 @@
|
||||
|
||||
/* main commands */
|
||||
#define CK_AddHotlist 7001
|
||||
#define CK_ChmodCmd 7002
|
||||
#define CK_ChownAdvancedCmd 7003
|
||||
#define CK_ChownCmd 7004
|
||||
#define CK_CompareDirsCmd 7005
|
||||
#define CK_ConfigureBox 7006
|
||||
#define CK_ConfigureVfs 7007
|
||||
#define CK_ConfirmBox 7008
|
||||
#define CK_CopyCmd 7009
|
||||
#define CK_CopyCurrentPathname 7010
|
||||
#define CK_CopyCurrentReadlink 7011
|
||||
#define CK_CopyCurrentTagged 7012
|
||||
#define CK_CopyOtherPathname 7013
|
||||
#define CK_CopyOtherReadlink 7014
|
||||
#define CK_CopyOtherTagged 7015
|
||||
#define CK_DeleteCmd 7016
|
||||
#define CK_DirsizesCmd 7017
|
||||
#define CK_DisplayBitsBox 7018
|
||||
#define CK_EditCmd 7019
|
||||
#define CK_EditExtFileCmd 7020
|
||||
#define CK_EditFhlFileCmd 7021
|
||||
#define CK_EditMcMenuCmd 7022
|
||||
#define CK_EditSymlinkCmd 7023
|
||||
#define CK_EditSyntaxCmd 7024
|
||||
#define CK_EditUserMenuCmd 7025
|
||||
#define CK_ExternalPanelize 7026
|
||||
#define CK_FilterCmd 7027
|
||||
#define CK_FilteredViewCmd 7028
|
||||
#define CK_FindCmd 7029
|
||||
#define CK_FishlinkCmd 7030
|
||||
#define CK_FtplinkCmd 7031
|
||||
#define CK_HistoryCmd 7032
|
||||
#define CK_InfoCmd 7033
|
||||
#define CK_JobsCmd 7034
|
||||
#define CK_LayoutCmd 7035
|
||||
#define CK_LearnKeys 7036
|
||||
#define CK_LinkCmd 7037
|
||||
#define CK_ListingCmd 7038
|
||||
#define CK_ListmodeCmd 7039
|
||||
#define CK_MenuLastSelectedCmd 7042
|
||||
#define CK_MkdirCmd 7044
|
||||
#define CK_NetlinkCmd 7045
|
||||
#define CK_QuickCdCmd 7046
|
||||
#define CK_QuickChdirCmd 7047
|
||||
#define CK_QuickViewCmd 7048
|
||||
#define CK_QuietQuitCmd 7049
|
||||
#define CK_QuitCmd 7050
|
||||
#define CK_RenameCmd 7051
|
||||
#define CK_RereadCmd 7052
|
||||
#define CK_ReselectVfs 7053
|
||||
#define CK_ReverseSelectionCmd 7054
|
||||
#define CK_SaveSetupCmd 7055
|
||||
#define CK_SelectCmd 7056
|
||||
#define CK_SingleDirsizeCmd 7057
|
||||
#define CK_SmblinkCmd 7058
|
||||
#define CK_SuspendCmd 7059
|
||||
#define CK_SwapCmd 7060
|
||||
#define CK_SymlinkCmd 7061
|
||||
#define CK_ToggleListingCmd 7062
|
||||
#define CK_ToggleShowHidden 7063
|
||||
#define CK_TreeCmd 7064
|
||||
#define CK_TreeBoxCmd 7065
|
||||
#define CK_UndeleteCmd 7066
|
||||
#define CK_UnselectCmd 7067
|
||||
#define CK_UserFileMenuCmd 7068
|
||||
#define CK_UserMenuCmd 7069
|
||||
#define CK_ViewCmd 7070
|
||||
#define CK_ViewFileCmd 7071
|
||||
#define CK_HelpCmd 7072
|
||||
#define CK_MenuCmd 7073
|
||||
#define CK_TogglePanelsSplit 7074
|
||||
#define CK_DiffViewCmd 7075
|
||||
#define CK_ChangeListingCmd 7002
|
||||
#define CK_ChmodCmd 7003
|
||||
#define CK_ChownAdvancedCmd 7004
|
||||
#define CK_ChownCmd 7005
|
||||
#define CK_CompareDirsCmd 7006
|
||||
#define CK_ConfigureBox 7007
|
||||
#define CK_ConfigureVfs 7008
|
||||
#define CK_ConfirmBox 7009
|
||||
#define CK_CopyCmd 7010
|
||||
#define CK_CopyCurrentPathname 7011
|
||||
#define CK_CopyCurrentReadlink 7012
|
||||
#define CK_CopyCurrentTagged 7013
|
||||
#define CK_CopyOtherPathname 7014
|
||||
#define CK_CopyOtherReadlink 7015
|
||||
#define CK_CopyOtherTagged 7016
|
||||
#define CK_DeleteCmd 7017
|
||||
#define CK_DirsizesCmd 7018
|
||||
#define CK_DisplayBitsBox 7019
|
||||
#define CK_EditCmd 7020
|
||||
#define CK_EditExtFileCmd 7021
|
||||
#define CK_EditFhlFileCmd 7022
|
||||
#define CK_EditMcMenuCmd 7023
|
||||
#define CK_EditSymlinkCmd 7024
|
||||
#define CK_EditSyntaxCmd 7025
|
||||
#define CK_EditUserMenuCmd 7026
|
||||
#define CK_ExternalPanelize 7027
|
||||
#define CK_FilterCmd 7028
|
||||
#define CK_FilteredViewCmd 7029
|
||||
#define CK_FindCmd 7030
|
||||
#define CK_FishlinkCmd 7031
|
||||
#define CK_FtplinkCmd 7032
|
||||
#define CK_HistoryCmd 7033
|
||||
#define CK_InfoCmd 7034
|
||||
#define CK_JobsCmd 7035
|
||||
#define CK_LayoutBox 7036
|
||||
#define CK_LearnKeys 7037
|
||||
#define CK_LinkCmd 7038
|
||||
#define CK_ListingCmd 7039
|
||||
#define CK_ListmodeCmd 7042
|
||||
#define CK_MenuLastSelectedCmd 7044
|
||||
#define CK_MkdirCmd 7045
|
||||
#define CK_NetlinkCmd 7046
|
||||
#define CK_QuickCdCmd 7047
|
||||
#define CK_QuickChdirCmd 7048
|
||||
#define CK_QuickViewCmd 7049
|
||||
#define CK_QuietQuitCmd 7050
|
||||
#define CK_QuitCmd 7051
|
||||
#define CK_RenameCmd 7052
|
||||
#define CK_RereadCmd 7053
|
||||
#define CK_ReselectVfs 7054
|
||||
#define CK_ReverseSelectionCmd 7055
|
||||
#define CK_SaveSetupCmd 7056
|
||||
#define CK_SelectCmd 7057
|
||||
#define CK_SingleDirsizeCmd 7058
|
||||
#define CK_SmblinkCmd 7059
|
||||
#define CK_SuspendCmd 7060
|
||||
#define CK_SwapCmd 7061
|
||||
#define CK_SymlinkCmd 7062
|
||||
#define CK_ToggleListingCmd 7063
|
||||
#define CK_ToggleShowHidden 7064
|
||||
#define CK_TreeCmd 7065
|
||||
#define CK_TreeBoxCmd 7066
|
||||
#define CK_UndeleteCmd 7067
|
||||
#define CK_UnselectCmd 7068
|
||||
#define CK_UserFileMenuCmd 7069
|
||||
#define CK_UserMenuCmd 7070
|
||||
#define CK_ViewCmd 7071
|
||||
#define CK_ViewFileCmd 7072
|
||||
#define CK_HelpCmd 7073
|
||||
#define CK_MenuCmd 7074
|
||||
#define CK_TogglePanelsSplit 7075
|
||||
#define CK_DiffViewCmd 7076
|
||||
#define CK_PanelOptionsBox 7077
|
||||
|
||||
/* panels */
|
||||
#define CK_PanelChdirOtherPanel 8001
|
||||
|
44
src/dir.c
44
src/dir.c
@ -37,15 +37,7 @@
|
||||
#include "wtools.h"
|
||||
#include "treestore.h"
|
||||
#include "dir.h"
|
||||
|
||||
/* If true show files starting with a dot */
|
||||
int show_dot_files = 1;
|
||||
|
||||
/* If true show files ending in ~ */
|
||||
int show_backups = 1;
|
||||
|
||||
/* If false then directories are shown separately from files */
|
||||
int mix_all_files = 0;
|
||||
#include "setup.h" /* panels_options */
|
||||
|
||||
/* Reverse flag */
|
||||
static int reverse = 1;
|
||||
@ -84,13 +76,13 @@ sort_name (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files) {
|
||||
if (ad == bd || panels_options.mix_all_files) {
|
||||
/* create key if does not exist, key will be freed after sorting */
|
||||
if (a->sort_key == NULL)
|
||||
if (a->sort_key == NULL)
|
||||
a->sort_key = str_create_key_for_filename (a->fname, case_sensitive);
|
||||
if (b->sort_key == NULL)
|
||||
if (b->sort_key == NULL)
|
||||
b->sort_key = str_create_key_for_filename (b->fname, case_sensitive);
|
||||
|
||||
|
||||
return str_key_collate (a->sort_key, b->sort_key, case_sensitive)
|
||||
* reverse;
|
||||
}
|
||||
@ -103,7 +95,7 @@ sort_vers (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files) {
|
||||
if (ad == bd || panels_options.mix_all_files) {
|
||||
return str_verscmp(a->fname, b->fname) * reverse;
|
||||
} else {
|
||||
return bd - ad;
|
||||
@ -117,10 +109,10 @@ sort_ext (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files){
|
||||
if (a->second_sort_key == NULL)
|
||||
if (ad == bd || panels_options.mix_all_files) {
|
||||
if (a->second_sort_key == NULL)
|
||||
a->second_sort_key = str_create_key (extension (a->fname), case_sensitive);
|
||||
if (b->second_sort_key == NULL)
|
||||
if (b->second_sort_key == NULL)
|
||||
b->second_sort_key = str_create_key (extension (b->fname), case_sensitive);
|
||||
|
||||
r = str_key_collate (a->second_sort_key, b->second_sort_key, case_sensitive);
|
||||
@ -138,7 +130,7 @@ sort_time (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files) {
|
||||
if (ad == bd || panels_options.mix_all_files) {
|
||||
int result = a->st.st_mtime < b->st.st_mtime ? -1 :
|
||||
a->st.st_mtime > b->st.st_mtime;
|
||||
if (result != 0)
|
||||
@ -156,7 +148,7 @@ sort_ctime (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files) {
|
||||
if (ad == bd || panels_options.mix_all_files) {
|
||||
int result = a->st.st_ctime < b->st.st_ctime ? -1 :
|
||||
a->st.st_ctime > b->st.st_ctime;
|
||||
if (result != 0)
|
||||
@ -174,7 +166,7 @@ sort_atime (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files) {
|
||||
if (ad == bd || panels_options.mix_all_files) {
|
||||
int result = a->st.st_atime < b->st.st_atime ? -1 :
|
||||
a->st.st_atime > b->st.st_atime;
|
||||
if (result != 0)
|
||||
@ -192,7 +184,7 @@ sort_inode (file_entry *a, file_entry *b)
|
||||
int ad = MY_ISDIR (a);
|
||||
int bd = MY_ISDIR (b);
|
||||
|
||||
if (ad == bd || mix_all_files)
|
||||
if (ad == bd || panels_options.mix_all_files)
|
||||
return (a->st.st_ino - b->st.st_ino) * reverse;
|
||||
else
|
||||
return bd-ad;
|
||||
@ -205,7 +197,7 @@ sort_size (file_entry *a, file_entry *b)
|
||||
int bd = MY_ISDIR (b);
|
||||
int result = 0;
|
||||
|
||||
if (ad != bd && !mix_all_files)
|
||||
if (ad != bd && !panels_options.mix_all_files)
|
||||
return bd - ad;
|
||||
|
||||
result = a->st.st_size < b->st.st_size ? -1 :
|
||||
@ -300,10 +292,11 @@ handle_dirent (dir_list *list, const char *fltr, struct dirent *dp,
|
||||
return 0;
|
||||
if (dp->d_name[0] == '.' && dp->d_name[1] == '.' && dp->d_name[2] == 0)
|
||||
return 0;
|
||||
if (!show_dot_files && (dp->d_name[0] == '.'))
|
||||
if (!panels_options.show_dot_files && (dp->d_name[0] == '.'))
|
||||
return 0;
|
||||
if (!show_backups && dp->d_name[NLENGTH (dp) - 1] == '~')
|
||||
if (!panels_options.show_backups && dp->d_name[NLENGTH (dp) - 1] == '~')
|
||||
return 0;
|
||||
|
||||
if (mc_lstat (dp->d_name, buf1) == -1) {
|
||||
/*
|
||||
* lstat() fails - such entries should be identified by
|
||||
@ -362,7 +355,8 @@ get_dotdot_dir_stat (const char *path, struct stat *st)
|
||||
}
|
||||
|
||||
/* handle_path is a simplified handle_dirent. The difference is that
|
||||
handle_path doesn't pay attention to show_dot_files and show_backups.
|
||||
handle_path doesn't pay attention to panels_options.show_dot_files
|
||||
and panels_options.show_backups.
|
||||
Moreover handle_path can't be used with a filemask.
|
||||
If you change handle_path then check also handle_dirent. */
|
||||
/* Return values: -1 = failure, 0 = don't add, 1 = add to the list */
|
||||
|
@ -66,9 +66,4 @@ int sort_inode (file_entry *a, file_entry *b);
|
||||
int link_isdir (const file_entry *);
|
||||
int if_link_is_exe (const char *full_name, const file_entry *file);
|
||||
|
||||
extern int show_backups;
|
||||
extern int show_dot_files;
|
||||
extern int mix_all_files;
|
||||
extern int kilobyte_si;
|
||||
|
||||
#endif
|
||||
#endif /* MC_DIR_H */
|
||||
|
@ -155,6 +155,7 @@ typedef struct
|
||||
struct stat *s_stat, *d_stat;
|
||||
} FileOpContextUI;
|
||||
|
||||
int classic_progressbar = 1;
|
||||
|
||||
/* Used to save the hint line */
|
||||
static int last_hint_line;
|
||||
@ -339,8 +340,7 @@ file_op_context_create_ui_without_init (FileOpContext * ctx, gboolean with_eta,
|
||||
add_widget (ui->op_dlg, ui->file_string[0] = label_new (3, FCOPY_LABEL_X, ""));
|
||||
add_widget (ui->op_dlg, ui->file_label[0] = label_new (2, FCOPY_LABEL_X, ""));
|
||||
|
||||
if ((right_panel == current_panel)
|
||||
&& !mc_config_get_bool (mc_main_config, "Layout", "classic_progressbar", TRUE))
|
||||
if ((right_panel == current_panel) && !classic_progressbar)
|
||||
{
|
||||
ui->progress_file_gauge->from_left_to_right = FALSE;
|
||||
if (dialog_type == FILEGUI_DIALOG_MULTI_ITEM)
|
||||
@ -543,8 +543,8 @@ file_progress_show_total (FileOpTotalContext * tctx, FileOpContext * ctx, double
|
||||
g_snprintf (buffer, BUF_TINY, _("Time: %s %s (%s)"), buffer2, buffer3, buffer4);
|
||||
label_set_text (ui->time_label, buffer);
|
||||
|
||||
size_trunc_len (buffer2, 5, tctx->copyed_bytes, 0);
|
||||
size_trunc_len (buffer3, 5, ctx->progress_bytes, 0);
|
||||
size_trunc_len (buffer2, 5, tctx->copyed_bytes, 0, panels_options.kilobyte_si);
|
||||
size_trunc_len (buffer3, 5, ctx->progress_bytes, 0, panels_options.kilobyte_si);
|
||||
|
||||
g_snprintf (buffer, BUF_TINY, _(" Total: %s of %s "), buffer2, buffer3);
|
||||
|
||||
|
@ -27,6 +27,8 @@
|
||||
#define MC_HISTORY_FM_PANEL_FILTER "mc.fm.panel-filter"
|
||||
#define MC_HISTORY_FM_MENU_EXEC_PARAM "mc.fm.menu.exec.parameter"
|
||||
|
||||
#define MC_HISTORY_ESC_TIMEOUT "mc.esc.timeout"
|
||||
|
||||
#define MC_HISTORY_VIEW_GOTO "mc.view.goto"
|
||||
#define MC_HISTORY_VIEW_GOTO_LINE "mc.view.goto-line"
|
||||
#define MC_HISTORY_VIEW_GOTO_ADDR "mc.view.goto-addr"
|
||||
|
@ -36,12 +36,11 @@
|
||||
#include "dialog.h"
|
||||
#include "widget.h" /* default_proc */
|
||||
#include "main-widgets.h" /* the_menubar */
|
||||
#include "dir.h" /* required by panel */
|
||||
#include "panel.h" /* for the panel structure */
|
||||
#include "main.h" /* other_panel, current_panel definitions */
|
||||
#include "menu.h" /* menubar_visible */
|
||||
#include "layout.h"
|
||||
#include "mountlist.h"
|
||||
#include "setup.h" /* panels_options */
|
||||
#include "info.h"
|
||||
|
||||
#ifndef VERSION
|
||||
@ -125,8 +124,8 @@ info_show_info (struct WInfo *info)
|
||||
if (myfs_stats.avail > 0 || myfs_stats.total > 0)
|
||||
{
|
||||
char buffer1[6], buffer2[6];
|
||||
size_trunc_len (buffer1, 5, myfs_stats.avail, 1);
|
||||
size_trunc_len (buffer2, 5, myfs_stats.total, 1);
|
||||
size_trunc_len (buffer1, 5, myfs_stats.avail, 1, panels_options.kilobyte_si);
|
||||
size_trunc_len (buffer2, 5, myfs_stats.total, 1, panels_options.kilobyte_si);
|
||||
tty_printf (_("Free space: %s (%d%%) of %s"), buffer1, myfs_stats.total ?
|
||||
(int) (100 * (double) myfs_stats.avail / myfs_stats.total) : 0, buffer2);
|
||||
}
|
||||
@ -181,7 +180,7 @@ info_show_info (struct WInfo *info)
|
||||
#endif
|
||||
{
|
||||
char buffer[10];
|
||||
size_trunc_len (buffer, 9, st.st_size, 0);
|
||||
size_trunc_len (buffer, 9, st.st_size, 0, panels_options.kilobyte_si);
|
||||
tty_printf (_("Size: %s"), buffer);
|
||||
#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
|
||||
tty_printf (ngettext (" (%ld block)", " (%ld blocks)",
|
||||
|
@ -355,9 +355,10 @@ static name_keymap_t command_names[] = {
|
||||
#ifdef WITH_BACKGROUND
|
||||
{ "CmdJobs", CK_JobsCmd },
|
||||
#endif
|
||||
{ "CmdLayout", CK_LayoutCmd },
|
||||
{ "CmdLayout", CK_LayoutBox },
|
||||
{ "CmdLearnKeys", CK_LearnKeys },
|
||||
{ "CmdLink", CK_LinkCmd },
|
||||
{ "CmdChangeListing", CK_ChangeListingCmd },
|
||||
{ "CmdListing", CK_ListingCmd },
|
||||
#ifdef LISTMODE_EDITOR
|
||||
{ "CmdListmodeCmd", CK_ListmodeCmd }.
|
||||
@ -366,6 +367,7 @@ static name_keymap_t command_names[] = {
|
||||
#if defined (USE_NETCODE) && defined (ENABLE_VFS_MCFS)
|
||||
{ "CmdNetlink", CK_NetlinkCmd },
|
||||
#endif
|
||||
{ "CmdPanelOptions", CK_PanelOptionsBox },
|
||||
{ "CmdQuickCd", CK_QuickCdCmd },
|
||||
{ "CmdQuickChdir", CK_QuickChdirCmd },
|
||||
{ "CmdQuickView", CK_QuickViewCmd },
|
||||
|
114
src/layout.c
114
src/layout.c
@ -141,8 +141,6 @@ static int _keybar_visible;
|
||||
static int _message_visible;
|
||||
static int _xterm_title;
|
||||
static int _free_space;
|
||||
static int _permission_mode;
|
||||
static int _filetype_mode;
|
||||
|
||||
static int height;
|
||||
|
||||
@ -150,8 +148,6 @@ static int height;
|
||||
#define MINWIDTH 12
|
||||
#define MINHEIGHT 5
|
||||
|
||||
#define BY 12
|
||||
|
||||
#define B_2LEFT B_USER
|
||||
#define B_2RIGHT (B_USER + 1)
|
||||
#define B_PLUS (B_USER + 2)
|
||||
@ -171,26 +167,22 @@ static struct {
|
||||
int *variable;
|
||||
WCheck *widget;
|
||||
} check_options [] = {
|
||||
{ N_("show free sp&Ace"), &free_space, 0 },
|
||||
{ N_("&Xterm window title"), &xterm_title, 0 },
|
||||
{ N_("h&Intbar visible"), &message_visible, 0 },
|
||||
{ N_("&Keybar visible"), &keybar_visible, 0 },
|
||||
{ N_("command &Prompt"), &command_prompt, 0 },
|
||||
{ N_("show &Mini status"), &show_mini_info, 0 },
|
||||
{ N_("menu&Bar visible"), &menubar_visible, 0 },
|
||||
{ N_("&Equal split"), &equal_split, 0 },
|
||||
{ N_("pe&Rmissions"), &permission_mode, 0 },
|
||||
{ N_("&File types"), &filetype_mode, 0 },
|
||||
{ 0, 0, 0 }
|
||||
{ N_("show free sp&Ace"), &free_space, NULL },
|
||||
{ N_("&XTerm window title"), &xterm_title, NULL },
|
||||
{ N_("h&Intbar visible"), &message_visible, NULL },
|
||||
{ N_("&Keybar visible"), &keybar_visible, NULL },
|
||||
{ N_("command &Prompt"), &command_prompt, NULL },
|
||||
{ N_("show &Mini status"), &show_mini_info, NULL },
|
||||
{ N_("menu&Bar visible"), &menubar_visible, NULL },
|
||||
{ N_("&Equal split"), &equal_split, NULL }
|
||||
};
|
||||
|
||||
#define LAYOUT_OPTIONS_COUNT 10
|
||||
#define HIGHLIGHT_OPTIONS_COUNT 2
|
||||
#define SPLIT_OPTIONS_COUNT 1
|
||||
#define OTHER_OPTIONS_COUNT 7
|
||||
#define LAYOUT_OPTIONS_COUNT sizeof (check_options) / sizeof (check_options[0])
|
||||
#define OTHER_OPTIONS_COUNT (LAYOUT_OPTIONS_COUNT - 1)
|
||||
|
||||
static gsize first_width, second_width;
|
||||
static const char *output_lines_label;
|
||||
static gsize first_width;
|
||||
static const char *output_lines_label = 0;
|
||||
static int output_lines_label_len;
|
||||
|
||||
static WButton *bleft_widget, *bright_widget;
|
||||
|
||||
@ -308,17 +300,15 @@ layout_callback (Dlg_head *h, Widget *sender,
|
||||
if (old_output_lines != _output_lines){
|
||||
old_output_lines = _output_lines;
|
||||
tty_setcolor (COLOR_NORMAL);
|
||||
dlg_move (h, LAYOUT_OPTIONS_COUNT, 16 + first_width);
|
||||
dlg_move (h, 9, 6);
|
||||
tty_print_string (output_lines_label);
|
||||
dlg_move (h, LAYOUT_OPTIONS_COUNT, 10 + first_width);
|
||||
dlg_move (h, 9, 6 + 3 + output_lines_label_len);
|
||||
tty_printf ("%02d", _output_lines);
|
||||
}
|
||||
}
|
||||
return MSG_HANDLED;
|
||||
|
||||
case DLG_POST_KEY:
|
||||
_filetype_mode = check_options [9].widget->state & C_BOOL;
|
||||
_permission_mode = check_options [8].widget->state & C_BOOL;
|
||||
_equal_split = check_options [7].widget->state & C_BOOL;
|
||||
_menubar_visible = check_options [6].widget->state & C_BOOL;
|
||||
_command_prompt = check_options [5].widget->state & C_BOOL;
|
||||
@ -353,7 +343,7 @@ layout_callback (Dlg_head *h, Widget *sender,
|
||||
if (old_output_lines != _output_lines){
|
||||
old_output_lines = _output_lines;
|
||||
tty_setcolor (COLOR_NORMAL);
|
||||
dlg_move (h, LAYOUT_OPTIONS_COUNT, 10 + first_width);
|
||||
dlg_move (h, 9, 6 + 3 + output_lines_label_len);
|
||||
tty_printf ("%02d", _output_lines);
|
||||
}
|
||||
}
|
||||
@ -378,12 +368,12 @@ init_layout (void)
|
||||
if (!i18n_layt_flag) {
|
||||
gsize l1;
|
||||
|
||||
first_width = 19; /* length of line with '<' '>' buttons */
|
||||
first_width = 0;
|
||||
|
||||
title1 = _(" Panel split ");
|
||||
title2 = _(" Highlight... ");
|
||||
title2 = _(" Console output ");
|
||||
title3 = _(" Other options ");
|
||||
output_lines_label = _("output lines");
|
||||
output_lines_label = _("Output lines: ");
|
||||
|
||||
while (i--) {
|
||||
s_split_direction[i] = _(s_split_direction[i]);
|
||||
@ -399,25 +389,19 @@ init_layout (void)
|
||||
first_width = l1;
|
||||
}
|
||||
|
||||
l1 = str_term_width1 (title1) + 1;
|
||||
l1 = str_term_width1 (title1) + 1;
|
||||
if (l1 > first_width)
|
||||
first_width = l1;
|
||||
|
||||
l1 = str_term_width1 (title2) + 1;
|
||||
l1 = str_term_width1 (title2) + 1;
|
||||
if (l1 > first_width)
|
||||
first_width = l1;
|
||||
|
||||
second_width = str_term_width1 (title3) + 1;
|
||||
for (i = 0; i < OTHER_OPTIONS_COUNT; i++) {
|
||||
check_options[i].text = _(check_options[i].text);
|
||||
l1 = str_term_width1 (check_options[i].text) + 7;
|
||||
if (l1 > second_width)
|
||||
second_width = l1;
|
||||
}
|
||||
if (console_flag) {
|
||||
l1 = str_term_width1 (output_lines_label) + 13;
|
||||
if (l1 > second_width)
|
||||
second_width = l1;
|
||||
output_lines_label_len = str_term_width1 (output_lines_label);
|
||||
l1 = output_lines_label_len + 12;
|
||||
if (l1 > first_width)
|
||||
first_width = l1;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -433,7 +417,7 @@ init_layout (void)
|
||||
+ str_term_width1 (save_button) /* notice: it is 3 char less because */
|
||||
+ str_term_width1 (cancel_button); /* of '&' char in button text */
|
||||
|
||||
i = (first_width + second_width - l1) / 4;
|
||||
i = (first_width * 2 - l1) / 4;
|
||||
b1 = 5 + i;
|
||||
b2 = b1 + str_term_width1 (ok_button) + i + 6;
|
||||
b3 = b2 + str_term_width1 (save_button) + i + 4;
|
||||
@ -442,47 +426,33 @@ init_layout (void)
|
||||
}
|
||||
|
||||
layout_dlg =
|
||||
create_dlg (0, 0, 15, first_width + second_width + 9,
|
||||
create_dlg (0, 0, 14, first_width * 2 + 9,
|
||||
dialog_colors, layout_callback, "[Layout]",
|
||||
_("Layout"), DLG_CENTER | DLG_REVERSE);
|
||||
|
||||
add_widget (layout_dlg, groupbox_new (2, 4, 6, first_width, title1));
|
||||
add_widget (layout_dlg, groupbox_new (8, 4, 4, first_width, title2));
|
||||
|
||||
add_widget (layout_dlg,
|
||||
groupbox_new (2, 5 + first_width, 10, second_width,
|
||||
groupbox_new (2, 5 + first_width, 9, first_width,
|
||||
title3));
|
||||
|
||||
add_widget (layout_dlg,
|
||||
button_new (BY, b3, B_CANCEL, NORMAL_BUTTON, cancel_button,
|
||||
button_new (11, b3, B_CANCEL, NORMAL_BUTTON, cancel_button,
|
||||
0));
|
||||
add_widget (layout_dlg,
|
||||
button_new (BY, b2, B_EXIT, NORMAL_BUTTON, save_button,
|
||||
button_new (11, b2, B_EXIT, NORMAL_BUTTON, save_button,
|
||||
0));
|
||||
add_widget (layout_dlg,
|
||||
button_new (BY, b1, B_ENTER, DEFPUSH_BUTTON, ok_button,
|
||||
button_new (11, b1, B_ENTER, DEFPUSH_BUTTON, ok_button,
|
||||
0));
|
||||
if (console_flag) {
|
||||
add_widget (layout_dlg,
|
||||
button_new (LAYOUT_OPTIONS_COUNT, 12 + first_width, B_MINUS,
|
||||
NARROW_BUTTON, "&-", bminus_cback));
|
||||
add_widget (layout_dlg,
|
||||
button_new (LAYOUT_OPTIONS_COUNT, 7 + first_width, B_PLUS, NARROW_BUTTON,
|
||||
"&+", bplus_cback));
|
||||
}
|
||||
#define XTRACT(i) *check_options[i].variable, check_options[i].text
|
||||
|
||||
for (i = 0; i < OTHER_OPTIONS_COUNT; i++) {
|
||||
check_options[i].widget =
|
||||
check_new (LAYOUT_OPTIONS_COUNT - i - 1, 7 + first_width, XTRACT (i));
|
||||
check_new (OTHER_OPTIONS_COUNT - i + 2, 7 + first_width, XTRACT (i));
|
||||
add_widget (layout_dlg, check_options[i].widget);
|
||||
}
|
||||
check_options[9].widget = check_new (10, 6, XTRACT (9));
|
||||
add_widget (layout_dlg, check_options[9].widget);
|
||||
check_options[8].widget = check_new (9, 6, XTRACT (8));
|
||||
add_widget (layout_dlg, check_options[8].widget);
|
||||
|
||||
_filetype_mode = filetype_mode;
|
||||
_permission_mode = permission_mode;
|
||||
_equal_split = equal_split;
|
||||
_menubar_visible = menubar_visible;
|
||||
_command_prompt = command_prompt;
|
||||
@ -490,6 +460,18 @@ init_layout (void)
|
||||
_message_visible = message_visible;
|
||||
_xterm_title = xterm_title;
|
||||
_free_space = free_space;
|
||||
|
||||
if (console_flag) {
|
||||
add_widget (layout_dlg, groupbox_new (8, 4, 3, first_width, title2));
|
||||
|
||||
add_widget (layout_dlg,
|
||||
button_new (9, output_lines_label_len + 6 + 5, B_MINUS,
|
||||
NARROW_BUTTON, "&-", bminus_cback));
|
||||
add_widget (layout_dlg,
|
||||
button_new (9, output_lines_label_len + 6, B_PLUS,
|
||||
NARROW_BUTTON, "&+", bplus_cback));
|
||||
}
|
||||
|
||||
bright_widget =
|
||||
button_new (6, 15, B_2RIGHT, NARROW_BUTTON, "&>", b2right_cback);
|
||||
add_widget (layout_dlg, bright_widget);
|
||||
@ -497,12 +479,14 @@ init_layout (void)
|
||||
button_new (6, 9, B_2LEFT, NARROW_BUTTON, "&<", b2left_cback);
|
||||
add_widget (layout_dlg, bleft_widget);
|
||||
check_options[7].widget = check_new (5, 6, XTRACT (7));
|
||||
|
||||
old_first_panel_size = -1;
|
||||
old_horizontal_split = -1;
|
||||
old_output_lines = -1;
|
||||
|
||||
_first_panel_size = first_panel_size;
|
||||
_output_lines = output_lines;
|
||||
|
||||
add_widget (layout_dlg, check_options[7].widget);
|
||||
radio_widget = radio_new (3, 6, 2, s_split_direction);
|
||||
add_widget (layout_dlg, radio_widget);
|
||||
@ -521,7 +505,7 @@ layout_change (void)
|
||||
load_hint (1);
|
||||
}
|
||||
|
||||
void layout_cmd (void)
|
||||
void layout_box (void)
|
||||
{
|
||||
int result;
|
||||
int i;
|
||||
@ -532,7 +516,7 @@ void layout_cmd (void)
|
||||
result = layout_dlg->ret_value;
|
||||
|
||||
if (result == B_ENTER || result == B_EXIT){
|
||||
for (i = 0; check_options [i].text; i++)
|
||||
for (i = 0; i < LAYOUT_OPTIONS_COUNT; i++)
|
||||
if (check_options [i].widget)
|
||||
*check_options [i].variable = check_options [i].widget->state & C_BOOL;
|
||||
horizontal_split = radio_widget->sel;
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include "widget.h"
|
||||
|
||||
void layout_change (void);
|
||||
void layout_cmd (void);
|
||||
void layout_box (void);
|
||||
void setup_panels (void);
|
||||
void destroy_panels (void);
|
||||
void sigwinch_handler (int dummy);
|
||||
|
93
src/main.c
93
src/main.c
@ -148,9 +148,6 @@ int cd_symlinks = 1;
|
||||
/* they do a complete refresh, refreshing all the parts of the program */
|
||||
int fast_refresh = 0;
|
||||
|
||||
/* If true, marking a files moves the cursor down */
|
||||
int mark_moves_down = 1;
|
||||
|
||||
/* If true, at startup the user-menu is invoked */
|
||||
int auto_menu = 0;
|
||||
|
||||
@ -191,15 +188,6 @@ int utf8_display = 0;
|
||||
/* If true use the internal viewer */
|
||||
int use_internal_view = 1;
|
||||
|
||||
/* Have we shown the fast-reload warning in the past? */
|
||||
int fast_reload_w = 0;
|
||||
|
||||
/* Move page/item? When clicking on the top or bottom of a panel */
|
||||
int mouse_move_pages = 1;
|
||||
|
||||
/* If true: l&r arrows are used to chdir if the input line is empty */
|
||||
int navigate_with_arrows = 0;
|
||||
|
||||
/* The prompt */
|
||||
const char *mc_prompt = NULL;
|
||||
|
||||
@ -302,7 +290,7 @@ mc_main_error_quark (void)
|
||||
void
|
||||
save_cwds_stat (void)
|
||||
{
|
||||
if (fast_reload)
|
||||
if (panels_options.fast_reload)
|
||||
{
|
||||
mc_stat (current_panel->cwd, &(current_panel->dir_stat));
|
||||
if (get_other_type () == view_listing)
|
||||
@ -671,18 +659,16 @@ create_panel_menu (void)
|
||||
{
|
||||
GList *entries = NULL;
|
||||
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Listing mode..."), CK_ListingCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Quick view"), CK_QuickViewCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Info"), CK_InfoCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Tree"), CK_TreeCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("File listin&g"), CK_ListingCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Quick view"), CK_QuickViewCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Info" ), CK_InfoCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Tree"), CK_TreeCmd));
|
||||
entries = g_list_append (entries, menu_separator_create ());
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Sort order..."), CK_Sort));
|
||||
entries = g_list_append (entries, menu_separator_create ());
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Filter..."), CK_FilterCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Listing mode..."), CK_ChangeListingCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Sort order..."), CK_Sort));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Filter..."), CK_FilterCmd));
|
||||
#ifdef HAVE_CHARSET
|
||||
entries = g_list_append (entries, menu_separator_create ());
|
||||
entries =
|
||||
g_list_append (entries, menu_entry_create (_("&Encoding..."), CK_PanelSetPanelEncoding));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Encoding..."), CK_PanelSetPanelEncoding));
|
||||
#endif
|
||||
#ifdef USE_NETCODE
|
||||
entries = g_list_append (entries, menu_separator_create ());
|
||||
@ -694,7 +680,7 @@ create_panel_menu (void)
|
||||
#ifdef ENABLE_VFS_SMB
|
||||
entries = g_list_append (entries, menu_entry_create (_("SM&B link..."), CK_SmblinkCmd));
|
||||
#endif /* ENABLE_VFS_SMB */
|
||||
#endif
|
||||
#endif /* USE_NETCODE */
|
||||
entries = g_list_append (entries, menu_separator_create ());
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Rescan"), CK_RereadCmd));
|
||||
|
||||
@ -798,10 +784,11 @@ create_options_menu (void)
|
||||
GList *entries = NULL;
|
||||
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Configuration..."), CK_ConfigureBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Layout..."), CK_LayoutCmd));
|
||||
entries = g_list_append (entries, menu_entry_create (_("C&onfirmation..."), CK_ConfirmBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Display bits..."), CK_DisplayBitsBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("Learn &keys..."), CK_LearnKeys));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Layout..."), CK_LayoutBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Panel options..."), CK_PanelOptionsBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("C&onfirmation..."), CK_ConfirmBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Display bits..."), CK_DisplayBitsBox));
|
||||
entries = g_list_append (entries, menu_entry_create (_("Learn &keys..."), CK_LearnKeys));
|
||||
#ifdef ENABLE_VFS
|
||||
entries = g_list_append (entries, menu_entry_create (_("&Virtual FS..."), CK_ConfigureVfs));
|
||||
#endif
|
||||
@ -878,41 +865,10 @@ midnight_get_shortcut (unsigned long command)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Flag toggling functions */
|
||||
void
|
||||
toggle_fast_reload (void)
|
||||
{
|
||||
fast_reload = !fast_reload;
|
||||
if (fast_reload_w == 0 && fast_reload)
|
||||
{
|
||||
message (D_NORMAL, _(" Information "),
|
||||
_
|
||||
(" Using the fast reload option may not reflect the exact \n"
|
||||
" directory contents. In this case you'll need to do a \n"
|
||||
" manual reload of the directory. See the man page for \n"
|
||||
" the details. "));
|
||||
fast_reload_w = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
toggle_mix_all_files (void)
|
||||
{
|
||||
mix_all_files = !mix_all_files;
|
||||
update_panels (UP_RELOAD, UP_KEEPSEL);
|
||||
}
|
||||
|
||||
void
|
||||
toggle_show_backup (void)
|
||||
{
|
||||
show_backups = !show_backups;
|
||||
update_panels (UP_RELOAD, UP_KEEPSEL);
|
||||
}
|
||||
|
||||
void
|
||||
toggle_show_hidden (void)
|
||||
{
|
||||
show_dot_files = !show_dot_files;
|
||||
panels_options.show_dot_files = !panels_options.show_dot_files;
|
||||
update_panels (UP_RELOAD, UP_KEEPSEL);
|
||||
}
|
||||
|
||||
@ -924,13 +880,6 @@ toggle_panels_split (void)
|
||||
do_refresh ();
|
||||
}
|
||||
|
||||
void
|
||||
toggle_kilobyte_si (void)
|
||||
{
|
||||
kilobyte_si = !kilobyte_si;
|
||||
update_panels (UP_RELOAD, UP_KEEPSEL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Just a hack for allowing url-like pathnames to be accepted from the
|
||||
* command line.
|
||||
@ -1176,6 +1125,9 @@ midnight_execute_cmd (Widget * sender, unsigned long command)
|
||||
case CK_AddHotlist:
|
||||
add2hotlist_cmd ();
|
||||
break;
|
||||
case CK_ChangeListingCmd:
|
||||
change_listing_cmd ();
|
||||
break;
|
||||
case CK_ChmodCmd:
|
||||
chmod_cmd ();
|
||||
break;
|
||||
@ -1283,8 +1235,8 @@ midnight_execute_cmd (Widget * sender, unsigned long command)
|
||||
jobs_cmd ();
|
||||
break;
|
||||
#endif
|
||||
case CK_LayoutCmd:
|
||||
layout_cmd ();
|
||||
case CK_LayoutBox:
|
||||
layout_box ();
|
||||
break;
|
||||
case CK_LearnKeys:
|
||||
learn_keys ();
|
||||
@ -1314,6 +1266,9 @@ midnight_execute_cmd (Widget * sender, unsigned long command)
|
||||
netlink_cmd ();
|
||||
break;
|
||||
#endif
|
||||
case CK_PanelOptionsBox:
|
||||
panel_options_box ();
|
||||
break;
|
||||
#ifdef HAVE_CHARSET
|
||||
case CK_PanelSetPanelEncoding:
|
||||
encoding_cmd ();
|
||||
|
11
src/main.h
11
src/main.h
@ -34,12 +34,7 @@ extern char *mc_run_param0;
|
||||
*/
|
||||
extern char *mc_run_param1;
|
||||
|
||||
/* Toggling functions */
|
||||
void toggle_fast_reload (void);
|
||||
void toggle_mix_all_files (void);
|
||||
void toggle_show_backup (void);
|
||||
void toggle_show_hidden (void);
|
||||
void toggle_kilobyte_si (void);
|
||||
|
||||
extern int quote;
|
||||
extern volatile int quit;
|
||||
@ -54,20 +49,15 @@ struct WButtonBar;
|
||||
void midnight_set_buttonbar (struct WButtonBar *b);
|
||||
|
||||
/* See main.c for details on these variables */
|
||||
extern int mark_moves_down;
|
||||
extern int auto_menu;
|
||||
extern int pause_after_run;
|
||||
extern int auto_save_setup;
|
||||
extern int use_internal_view;
|
||||
extern int use_internal_edit;
|
||||
extern int fast_reload_w;
|
||||
extern int clear_before_exec;
|
||||
extern int mouse_move_pages;
|
||||
|
||||
extern int option_tab_spacing;
|
||||
|
||||
extern int quick_search_case_sensitive;
|
||||
|
||||
#ifdef HAVE_CHARSET
|
||||
extern int source_codepage;
|
||||
extern int default_source_codepage;
|
||||
@ -82,7 +72,6 @@ extern int full_eight_bits;
|
||||
extern int utf8_display;
|
||||
|
||||
extern int fast_refresh;
|
||||
extern int navigate_with_arrows;
|
||||
extern int drop_menus;
|
||||
extern int cd_symlinks;
|
||||
extern int show_all_if_ambiguous;
|
||||
|
515
src/option.c
515
src/option.c
@ -1,6 +1,6 @@
|
||||
/* Configure box module for the Midnight Commander
|
||||
Copyright (C) 1994, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
2007, 2009 Free Software Foundation, Inc.
|
||||
2007, 2009, 2010 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -18,11 +18,12 @@
|
||||
*/
|
||||
|
||||
/** \file option.c
|
||||
* \brief Source: configure box module
|
||||
* \brief Source: configure boxes module
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <stdlib.h> /* atoi() */
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
@ -31,220 +32,370 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include "lib/global.h"
|
||||
#include "lib/tty/tty.h"
|
||||
#include "lib/mcconfig.h" /* For mc_config_save_file */
|
||||
#include "lib/strutil.h"
|
||||
#include "lib/mcconfig.h" /* mc_config_save_file() */
|
||||
#include "lib/strutil.h" /* str_term_width1() */
|
||||
#include "lib/tty/key.h" /* old_esc_mode_timeout */
|
||||
|
||||
#include "dialog.h"
|
||||
#include "widget.h"
|
||||
#include "setup.h" /* For save_setup() */
|
||||
#include "dialog.h" /* B_ constants */
|
||||
#include "setup.h" /* panels_options */
|
||||
#include "main.h"
|
||||
#include "panel.h" /* Needed for the externs */
|
||||
#include "file.h" /* safe_delete */
|
||||
#include "layout.h" /* For nice_rotating_dash */
|
||||
#include "file.h" /* file_op_compute_totals */
|
||||
#include "layout.h" /* nice_rotating_dash */
|
||||
#include "wtools.h" /* QuickDialog */
|
||||
#include "history.h" /* MC_HISTORY_ESC_TIMEOUT */
|
||||
|
||||
#include "option.h"
|
||||
|
||||
static Dlg_head *conf_dlg;
|
||||
|
||||
#define TOGGLE_VARIABLE 0
|
||||
|
||||
static int first_width, second_width;
|
||||
|
||||
static struct {
|
||||
const char *text;
|
||||
int *variable;
|
||||
void (*toggle_function)(void);
|
||||
WCheck *widget;
|
||||
} check_options [] = {
|
||||
/* other options */
|
||||
{N_("safe de&Lete"), &safe_delete, TOGGLE_VARIABLE, 0 },
|
||||
{N_("cd follows lin&Ks"), &cd_symlinks, TOGGLE_VARIABLE, 0 },
|
||||
{N_("L&ynx-like motion"), &navigate_with_arrows,TOGGLE_VARIABLE, 0 },
|
||||
{N_("rotatin&G dash"), &nice_rotating_dash,TOGGLE_VARIABLE, 0 },
|
||||
{N_("co&Mplete: show all"),&show_all_if_ambiguous,TOGGLE_VARIABLE, 0 },
|
||||
{N_("&Use internal view"), &use_internal_view, TOGGLE_VARIABLE, 0 },
|
||||
{N_("use internal ed&It"), &use_internal_edit, TOGGLE_VARIABLE, 0 },
|
||||
{N_("auto m&Enus"), &auto_menu, TOGGLE_VARIABLE, 0 },
|
||||
{N_("&Auto save setup"), &auto_save_setup, TOGGLE_VARIABLE, 0 },
|
||||
{N_("shell &Patterns"), &easy_patterns, TOGGLE_VARIABLE, 0 },
|
||||
{N_("Compute &Totals"), &file_op_compute_totals, TOGGLE_VARIABLE, 0 },
|
||||
{N_("&Verbose operation"), &verbose, TOGGLE_VARIABLE, 0 },
|
||||
{N_("Mkdir autoname"), &auto_fill_mkdir_name, TOGGLE_VARIABLE, 0 },
|
||||
/* panel options */
|
||||
{N_("&Fast dir reload"), &fast_reload, toggle_fast_reload, 0 },
|
||||
{N_("mi&X all files"), &mix_all_files, toggle_mix_all_files, 0 },
|
||||
{N_("&Drop down menus"), &drop_menus, TOGGLE_VARIABLE, 0 },
|
||||
{N_("ma&Rk moves down"), &mark_moves_down, TOGGLE_VARIABLE, 0 },
|
||||
{N_("show &Hidden files"), &show_dot_files, toggle_show_hidden, 0 },
|
||||
{N_("show &Backup files"), &show_backups, toggle_show_backup, 0 },
|
||||
{N_("Use SI si&ze units"), &kilobyte_si, toggle_kilobyte_si, 0 },
|
||||
{ 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
/* Make sure this corresponds to the check_options structure */
|
||||
#define OTHER_OPTIONS 13
|
||||
#define PANEL_OPTIONS 7
|
||||
|
||||
static WRadio *pause_radio;
|
||||
|
||||
static const char *pause_options [3] = {
|
||||
N_("&Never"),
|
||||
N_("on dumb &Terminals"),
|
||||
N_("Alwa&ys") };
|
||||
|
||||
#define PAUSE_OPTIONS (sizeof(pause_options) / sizeof(pause_options[0]))
|
||||
|
||||
/* Heights of the panes */
|
||||
#define PY 3
|
||||
#define OY PY
|
||||
/* Align bottoms of "pause after run" and "other options" */
|
||||
#define RY (OTHER_OPTIONS - PAUSE_OPTIONS + OY)
|
||||
#define DLG_Y (OTHER_OPTIONS + 9)
|
||||
#define BY (DLG_Y - 3)
|
||||
|
||||
/* Horizontal dimensions */
|
||||
#define X_MARGIN 3
|
||||
#define X_PANE_GAP 1
|
||||
#define PX X_MARGIN
|
||||
#define RX X_MARGIN
|
||||
#define OX (first_width + X_MARGIN + X_PANE_GAP)
|
||||
|
||||
/* Create the "Configure options" dialog */
|
||||
static void
|
||||
init_configure (void)
|
||||
void
|
||||
configure_box (void)
|
||||
{
|
||||
int i;
|
||||
static int i18n_config_flag = 0;
|
||||
static int b1, b2, b3;
|
||||
const char *ok_button = _("&OK");
|
||||
const char *cancel_button = _("&Cancel");
|
||||
const char *save_button = _("&Save");
|
||||
static const char *title1, *title2, *title3;
|
||||
int dlg_width = 60;
|
||||
int dlg_height = 20;
|
||||
|
||||
if (!i18n_config_flag) {
|
||||
register int l1;
|
||||
char time_out[BUF_TINY] = "";
|
||||
char *time_out_new;
|
||||
|
||||
/* Similar code is in layout.c (init_layout()) */
|
||||
const char *pause_options[] = {
|
||||
N_("&Never"),
|
||||
N_("On dum&b terminals"),
|
||||
N_("Alwa&ys")
|
||||
};
|
||||
|
||||
title1 = _(" Panel options ");
|
||||
title2 = _(" Pause after run... ");
|
||||
title3 = _(" Other options ");
|
||||
int pause_options_num = sizeof (pause_options) / sizeof (pause_options[0]);
|
||||
|
||||
first_width = str_term_width1 (title1) + 1;
|
||||
second_width = str_term_width1 (title3) + 1;
|
||||
QuickWidget quick_widgets[] = {
|
||||
/* buttons */
|
||||
QUICK_BUTTON (38, dlg_width, dlg_height - 3, dlg_height, N_("&Cancel"), B_CANCEL, NULL),
|
||||
QUICK_BUTTON (26, dlg_width, dlg_height - 3, dlg_height, N_("&Save"), B_EXIT, NULL),
|
||||
QUICK_BUTTON (14, dlg_width, dlg_height - 3, dlg_height, N_("&OK"), B_ENTER, NULL),
|
||||
/* other options */
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 12, dlg_height, N_("A&uto save setup"),
|
||||
&auto_save_setup),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 11, dlg_height, N_("Sa&fe delete"),
|
||||
&safe_delete),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 10, dlg_height, N_("Cd follows lin&ks"),
|
||||
&cd_symlinks),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 9, dlg_height, N_("Rotating d&ash"),
|
||||
&nice_rotating_dash),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 8, dlg_height, N_("Co&mplete: show all"),
|
||||
&show_all_if_ambiguous),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 7, dlg_height, N_("Shell &patterns"),
|
||||
&easy_patterns),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 6, dlg_height, N_("&Drop down menus"),
|
||||
&drop_menus),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 5, dlg_height, N_("Auto m&enus"), &auto_menu),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 4, dlg_height, N_("Use internal vie&w"),
|
||||
&use_internal_view),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 3, dlg_height, N_("Use internal edi&t"),
|
||||
&use_internal_edit),
|
||||
QUICK_GROUPBOX (dlg_width / 2, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 15,
|
||||
N_("Other options")),
|
||||
/* pause options */
|
||||
QUICK_RADIO (5, dlg_width, 13, dlg_height, pause_options_num, pause_options,
|
||||
&pause_after_run),
|
||||
QUICK_GROUPBOX (3, dlg_width, 12, dlg_height, dlg_width / 2 - 4, 5, N_("Pause after run")),
|
||||
|
||||
for (i = 0; check_options[i].text; i++) {
|
||||
check_options[i].text = _(check_options[i].text);
|
||||
l1 = str_term_width1 (check_options[i].text) + 7;
|
||||
if (i >= OTHER_OPTIONS) {
|
||||
if (l1 > first_width)
|
||||
first_width = l1;
|
||||
} else {
|
||||
if (l1 > second_width)
|
||||
second_width = l1;
|
||||
}
|
||||
}
|
||||
/* Esc key mode */
|
||||
QUICK_INPUT (10, dlg_width, 10, dlg_height, (const char *) time_out, 8, 0,
|
||||
MC_HISTORY_ESC_TIMEOUT, &time_out_new),
|
||||
QUICK_LABEL (5, dlg_width, 10, dlg_height, N_("Timeout:")),
|
||||
QUICK_CHECKBOX (5, dlg_width, 9, dlg_height, N_("S&ingle press"), &old_esc_mode),
|
||||
QUICK_GROUPBOX (3, dlg_width, 8, dlg_height, dlg_width / 2 - 4, 4, N_("Esc key mode")),
|
||||
|
||||
i = PAUSE_OPTIONS;
|
||||
while (i--) {
|
||||
pause_options[i] = _(pause_options[i]);
|
||||
l1 = str_term_width1 (pause_options[i]) + 7;
|
||||
if (l1 > first_width)
|
||||
first_width = l1;
|
||||
}
|
||||
/* file operation options */
|
||||
QUICK_CHECKBOX (5, dlg_width, 6, dlg_height, N_("Mkdi&r autoname"), &auto_fill_mkdir_name),
|
||||
QUICK_CHECKBOX (5, dlg_width, 5, dlg_height, N_("Classic pro&gressbar"), &classic_progressbar),
|
||||
QUICK_CHECKBOX (5, dlg_width, 4, dlg_height, N_("Compute tota&ls"),
|
||||
&file_op_compute_totals),
|
||||
QUICK_CHECKBOX (5, dlg_width, 3, dlg_height, N_("&Verbose operation"), &verbose),
|
||||
QUICK_GROUPBOX (3, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 6,
|
||||
N_("File operation options")),
|
||||
QUICK_END
|
||||
};
|
||||
|
||||
l1 = str_term_width1 (title2) + 1;
|
||||
if (l1 > first_width)
|
||||
first_width = l1;
|
||||
const size_t qw_num = sizeof (quick_widgets) / sizeof (quick_widgets[0]) - 1;
|
||||
|
||||
l1 = 11 + str_term_width1 (ok_button)
|
||||
+ str_term_width1 (save_button)
|
||||
+ str_term_width1 (cancel_button);
|
||||
QuickDialog Quick_input = {
|
||||
dlg_width, dlg_height, -1, -1,
|
||||
N_("Configure options"), "[Configuration]",
|
||||
quick_widgets, TRUE
|
||||
};
|
||||
|
||||
i = (first_width + second_width - l1) / 4;
|
||||
b1 = 5 + i;
|
||||
b2 = b1 + str_term_width1 (ok_button) + i + 6;
|
||||
b3 = b2 + str_term_width1 (save_button) + i + 4;
|
||||
int qd_result;
|
||||
|
||||
i18n_config_flag = 1;
|
||||
int b0_len, b1_len, b2_len;
|
||||
int b_len, c_len, g_len, l_len;
|
||||
size_t i;
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
{
|
||||
for (i = 0; i < qw_num; i++)
|
||||
if (i < 3)
|
||||
/* buttons */
|
||||
quick_widgets[i].u.button.text = _(quick_widgets[i].u.button.text);
|
||||
else if ((i == 13) || (i == 15) || (i == 19) || (i == 24))
|
||||
/* groupboxes */
|
||||
quick_widgets[i].u.groupbox.title = _(quick_widgets[i].u.groupbox.title);
|
||||
else if (i == 14)
|
||||
{
|
||||
/* radio button */
|
||||
size_t j;
|
||||
for (j = 0; j < pause_options_num; j++)
|
||||
pause_options[j] = _(pause_options[j]);
|
||||
}
|
||||
else if (i == 17)
|
||||
/* label */
|
||||
quick_widgets[i].u.label.text = _(quick_widgets[i].u.label.text);
|
||||
else if (i != 16)
|
||||
/* checkboxes */
|
||||
quick_widgets[i].u.checkbox.text = _(quick_widgets[i].u.checkbox.text);
|
||||
|
||||
Quick_input.title = _(Quick_input.title);
|
||||
}
|
||||
#endif /* ENABLE_NLS */
|
||||
|
||||
conf_dlg =
|
||||
create_dlg (0, 0, DLG_Y,
|
||||
first_width + second_width + 2 * X_MARGIN + X_PANE_GAP,
|
||||
dialog_colors, NULL, "[Configuration]",
|
||||
_("Configure options"), DLG_CENTER | DLG_REVERSE);
|
||||
/* calculate widget and dialog widths */
|
||||
/* dialog title */
|
||||
dlg_width = max (dlg_width, str_term_width1 (Quick_input.title) + 4);
|
||||
/* buttons */
|
||||
b0_len = str_term_width1 (quick_widgets[0].u.button.text) + 3;
|
||||
b1_len = str_term_width1 (quick_widgets[1].u.button.text) + 3;
|
||||
b2_len = str_term_width1 (quick_widgets[2].u.button.text) + 5;
|
||||
b_len = b0_len + b1_len + b2_len + 2;
|
||||
|
||||
add_widget (conf_dlg,
|
||||
groupbox_new (PY, PX, PANEL_OPTIONS + 2, first_width, title1));
|
||||
/* checkboxes within groupboxes */
|
||||
c_len = 0;
|
||||
for (i = 3; i < 24; i++)
|
||||
if ((i < 13) || (i == 18) || (i > 19))
|
||||
c_len = max (c_len, str_term_width1 (quick_widgets[i].u.checkbox.text) + 3);
|
||||
/* radiobuttons */
|
||||
for (i = 0; i < pause_options_num; i++)
|
||||
c_len = max (c_len, str_term_width1 (pause_options[i]) + 3);
|
||||
/* label + input */
|
||||
l_len = str_term_width1 (quick_widgets[17].u.label.text);
|
||||
c_len = max (c_len, l_len + 1 + 8);
|
||||
/* groupboxes */
|
||||
g_len = max (c_len + 2, str_term_width1 (quick_widgets[24].u.groupbox.title) + 4);
|
||||
g_len = max (g_len, str_term_width1 (quick_widgets[19].u.groupbox.title) + 4);
|
||||
g_len = max (g_len, str_term_width1 (quick_widgets[15].u.groupbox.title) + 4);
|
||||
g_len = max (g_len, str_term_width1 (quick_widgets[13].u.groupbox.title) + 4);
|
||||
/* dialog width */
|
||||
Quick_input.xlen = max (dlg_width, g_len * 2 + 9);
|
||||
Quick_input.xlen = max (Quick_input.xlen, b_len + 2);
|
||||
if ((Quick_input.xlen & 1) != 0)
|
||||
Quick_input.xlen++;
|
||||
|
||||
add_widget (conf_dlg,
|
||||
groupbox_new (RY, RX, PAUSE_OPTIONS + 2, first_width, title2));
|
||||
/* fix widget parameters */
|
||||
for (i = 0; i < qw_num; i++)
|
||||
quick_widgets[i].x_divisions = Quick_input.xlen;
|
||||
|
||||
add_widget (conf_dlg,
|
||||
groupbox_new (OY, OX, OTHER_OPTIONS + 2, second_width, title3));
|
||||
/* groupboxes */
|
||||
quick_widgets[15].u.groupbox.width =
|
||||
quick_widgets[19].u.groupbox.width =
|
||||
quick_widgets[24].u.groupbox.width = Quick_input.xlen / 2 - 4;
|
||||
quick_widgets[13].u.groupbox.width = Quick_input.xlen / 2 - 3;
|
||||
|
||||
add_widget (conf_dlg,
|
||||
button_new (BY, b3, B_CANCEL, NORMAL_BUTTON,
|
||||
cancel_button, 0));
|
||||
/* input */
|
||||
quick_widgets[16].relative_x = quick_widgets[17].relative_x + l_len + 1;
|
||||
quick_widgets[16].u.input.len = quick_widgets[19].u.groupbox.width - l_len - 4;
|
||||
|
||||
add_widget (conf_dlg,
|
||||
button_new (BY, b2, B_EXIT, NORMAL_BUTTON,
|
||||
save_button, 0));
|
||||
/* right column */
|
||||
quick_widgets[13].relative_x = Quick_input.xlen / 2;
|
||||
for (i = 3; i < 13; i++)
|
||||
quick_widgets[i].relative_x = quick_widgets[13].relative_x + 2;
|
||||
|
||||
add_widget (conf_dlg,
|
||||
button_new (BY, b1, B_ENTER, DEFPUSH_BUTTON,
|
||||
ok_button, 0));
|
||||
/* buttons */
|
||||
quick_widgets[2].relative_x = (Quick_input.xlen - b_len) / 2;
|
||||
quick_widgets[1].relative_x = quick_widgets[2].relative_x + b2_len + 1;
|
||||
quick_widgets[0].relative_x = quick_widgets[1].relative_x + b1_len + 1;
|
||||
|
||||
#define XTRACT(i) *check_options[i].variable, check_options[i].text
|
||||
g_snprintf (time_out, sizeof (time_out), "%ld", old_esc_mode_timeout);
|
||||
|
||||
/* Add checkboxes for "other options" */
|
||||
for (i = 0; i < OTHER_OPTIONS; i++) {
|
||||
check_options[i].widget =
|
||||
check_new (OY + (OTHER_OPTIONS - i), OX + 2, XTRACT (i));
|
||||
add_widget (conf_dlg, check_options[i].widget);
|
||||
}
|
||||
qd_result = quick_dialog (&Quick_input);
|
||||
|
||||
pause_radio =
|
||||
radio_new (RY + 1, RX + 2, 3, pause_options);
|
||||
pause_radio->sel = pause_after_run;
|
||||
add_widget (conf_dlg, pause_radio);
|
||||
if ((qd_result == B_ENTER) || (qd_result == B_EXIT))
|
||||
old_esc_mode_timeout = atoi (time_out_new);
|
||||
|
||||
/* Add checkboxes for "panel options" */
|
||||
for (i = 0; i < PANEL_OPTIONS; i++) {
|
||||
check_options[i + OTHER_OPTIONS].widget =
|
||||
check_new (PY + (PANEL_OPTIONS - i), PX + 2,
|
||||
XTRACT (i + OTHER_OPTIONS));
|
||||
add_widget (conf_dlg, check_options[i + OTHER_OPTIONS].widget);
|
||||
g_free (time_out_new);
|
||||
|
||||
/* Save button */
|
||||
if (qd_result == B_EXIT)
|
||||
{
|
||||
save_config ();
|
||||
mc_config_save_file (mc_main_config, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void configure_box (void)
|
||||
void
|
||||
panel_options_box (void)
|
||||
{
|
||||
int result, i;
|
||||
|
||||
init_configure ();
|
||||
run_dlg (conf_dlg);
|
||||
int dlg_width = 60;
|
||||
int dlg_height = 19;
|
||||
|
||||
result = conf_dlg->ret_value;
|
||||
if (result == B_ENTER || result == B_EXIT){
|
||||
for (i = 0; check_options [i].text; i++)
|
||||
if (check_options [i].widget->state & C_CHANGE){
|
||||
if (check_options [i].toggle_function)
|
||||
(*check_options [i].toggle_function)();
|
||||
else
|
||||
*check_options [i].variable =
|
||||
!(*check_options [i].variable);
|
||||
}
|
||||
pause_after_run = pause_radio->sel;
|
||||
const char *qsearch_options[] = {
|
||||
N_("Case &insensitive"),
|
||||
N_("Case s&ensitive"),
|
||||
N_("Use panel sort mo&de")
|
||||
};
|
||||
|
||||
QuickWidget quick_widgets[] = {
|
||||
/* buttons */
|
||||
QUICK_BUTTON (38, dlg_width, dlg_height - 3, dlg_height, N_("&Cancel"), B_CANCEL, NULL),
|
||||
QUICK_BUTTON (26, dlg_width, dlg_height - 3, dlg_height, N_("&Save"), B_EXIT, NULL),
|
||||
QUICK_BUTTON (14, dlg_width, dlg_height - 3, dlg_height, N_("&OK"), B_ENTER, NULL),
|
||||
/* quick search */
|
||||
QUICK_RADIO (dlg_width / 2 + 2, dlg_width, 12, dlg_height, QSEARCH_NUM, qsearch_options,
|
||||
(int *) &panels_options.qsearch_mode),
|
||||
QUICK_GROUPBOX (dlg_width / 2, dlg_width, 11, dlg_height, dlg_width / 2 - 4, QSEARCH_NUM + 2,
|
||||
N_("Quick search")),
|
||||
/* file highlighting */
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 9, dlg_height, N_("&Permissions"),
|
||||
&panels_options.permission_mode),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 8, dlg_height, N_("File &types"),
|
||||
&panels_options.filetype_mode),
|
||||
QUICK_GROUPBOX (dlg_width / 2, dlg_width, 7, dlg_height, dlg_width / 2 - 4, 4,
|
||||
N_("File highlight")),
|
||||
/* navigation */
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 5, dlg_height, N_("&Mouse page scrolling"),
|
||||
&panels_options.mouse_move_pages),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 4, dlg_height, N_("Pa&ge scrolling"),
|
||||
&panels_options.scroll_pages),
|
||||
QUICK_CHECKBOX (dlg_width / 2 + 2, dlg_width, 3, dlg_height, N_("L&ynx-like motion"),
|
||||
&panels_options.navigate_with_arrows),
|
||||
QUICK_GROUPBOX (dlg_width / 2, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 5,
|
||||
N_("Navigation")),
|
||||
/* main panel options */
|
||||
QUICK_CHECKBOX (5, dlg_width, 10, dlg_height, N_("A&uto save panels setup"),
|
||||
&panels_options.auto_save_setup),
|
||||
QUICK_CHECKBOX (5, dlg_width, 9, dlg_height, N_("Re&verse files only"),
|
||||
&panels_options.reverse_files_only),
|
||||
QUICK_CHECKBOX (5, dlg_width, 8, dlg_height, N_("Ma&rk moves down"),
|
||||
&panels_options.mark_moves_down),
|
||||
QUICK_CHECKBOX (5, dlg_width, 7, dlg_height, N_("&Fast dir reload"),
|
||||
&panels_options.fast_reload),
|
||||
QUICK_CHECKBOX (5, dlg_width, 6, dlg_height, N_("Show &hidden files"),
|
||||
&panels_options.show_dot_files),
|
||||
QUICK_CHECKBOX (5, dlg_width, 5, dlg_height, N_("Show &backup files"),
|
||||
&panels_options.show_backups),
|
||||
QUICK_CHECKBOX (5, dlg_width, 4, dlg_height, N_("Mi&x all files"),
|
||||
&panels_options.mix_all_files),
|
||||
QUICK_CHECKBOX (5, dlg_width, 3, dlg_height, N_("Use SI si&ze units"),
|
||||
&panels_options.kilobyte_si),
|
||||
QUICK_GROUPBOX (3, dlg_width, 2, dlg_height, dlg_width / 2 - 4, 14, N_("Main panel options")),
|
||||
QUICK_END
|
||||
};
|
||||
|
||||
const size_t qw_num = sizeof (quick_widgets) / sizeof (quick_widgets[0]) - 1;
|
||||
|
||||
QuickDialog Quick_input = {
|
||||
dlg_width, dlg_height, -1, -1,
|
||||
N_("Panel options"), "[Panel options]",
|
||||
quick_widgets, TRUE
|
||||
};
|
||||
|
||||
int qd_result;
|
||||
|
||||
int b0_len, b1_len, b2_len;
|
||||
int b_len, c_len, g_len;
|
||||
size_t i;
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
{
|
||||
for (i = 0; i < qw_num; i++)
|
||||
if (i < 3)
|
||||
/* buttons */
|
||||
quick_widgets[i].u.button.text = _(quick_widgets[i].u.button.text);
|
||||
else if (i == 3)
|
||||
{
|
||||
/* radio button */
|
||||
size_t j;
|
||||
for (j = 0; j < QSEARCH_NUM; j++)
|
||||
qsearch_options[j] = _(qsearch_options[j]);
|
||||
}
|
||||
else if ((i == 4) || (i == 7) || (i == 11) || (i == 20))
|
||||
/* groupboxes */
|
||||
quick_widgets[i].u.groupbox.title = _(quick_widgets[i].u.groupbox.title);
|
||||
else
|
||||
/* checkboxes */
|
||||
quick_widgets[i].u.checkbox.text = _(quick_widgets[i].u.checkbox.text);
|
||||
|
||||
Quick_input.title = _(Quick_input.title);
|
||||
}
|
||||
#endif /* ENABLE_NLS */
|
||||
|
||||
/* calculate widget and dialog widths */
|
||||
/* dialog title */
|
||||
dlg_width = max (dlg_width, str_term_width1 (Quick_input.title) + 4);
|
||||
/* buttons */
|
||||
b0_len = str_term_width1 (quick_widgets[0].u.button.text) + 3;
|
||||
b1_len = str_term_width1 (quick_widgets[1].u.button.text) + 3;
|
||||
b2_len = str_term_width1 (quick_widgets[2].u.button.text) + 5;
|
||||
b_len = b0_len + b1_len + b2_len + 2;
|
||||
|
||||
/* checkboxes within groupboxes */
|
||||
c_len = 0;
|
||||
for (i = 5; i < 20; i++)
|
||||
if ((i != 7) && (i != 11))
|
||||
c_len = max (c_len, str_term_width1 (quick_widgets[i].u.checkbox.text) + 4);
|
||||
|
||||
/* radiobuttons */
|
||||
for (i = 0; i < QSEARCH_NUM; i++)
|
||||
c_len = max (c_len, str_term_width1 (qsearch_options[i]) + 3);
|
||||
/* groupboxes */
|
||||
g_len = max (c_len + 2, str_term_width1 (quick_widgets[4].u.groupbox.title) + 4);
|
||||
g_len = max (g_len, str_term_width1 (quick_widgets[ 7].u.groupbox.title) + 4);
|
||||
g_len = max (g_len, str_term_width1 (quick_widgets[11].u.groupbox.title) + 4);
|
||||
g_len = max (g_len, str_term_width1 (quick_widgets[20].u.groupbox.title) + 4);
|
||||
/* dialog width */
|
||||
Quick_input.xlen = max (dlg_width, g_len * 2 + 9);
|
||||
Quick_input.xlen = max (Quick_input.xlen, b_len + 2);
|
||||
if ((Quick_input.xlen & 1) != 0)
|
||||
Quick_input.xlen++;
|
||||
|
||||
/* fix widget parameters */
|
||||
for (i = 0; i < qw_num; i++)
|
||||
quick_widgets[i].x_divisions = Quick_input.xlen;
|
||||
|
||||
/* groupboxes */
|
||||
quick_widgets[4].u.groupbox.width =
|
||||
quick_widgets[ 7].u.groupbox.width =
|
||||
quick_widgets[11].u.groupbox.width = Quick_input.xlen / 2 - 3;
|
||||
quick_widgets[20].u.groupbox.width = Quick_input.xlen / 2 - 4;
|
||||
|
||||
/* right column */
|
||||
quick_widgets[4].relative_x =
|
||||
quick_widgets[ 7].relative_x =
|
||||
quick_widgets[11].relative_x = Quick_input.xlen / 2;
|
||||
for (i = 3; i < 11; i++)
|
||||
if ((i != 4) && (i != 7))
|
||||
quick_widgets[i].relative_x = quick_widgets[4].relative_x + 2;
|
||||
|
||||
/* buttons */
|
||||
quick_widgets[2].relative_x = (Quick_input.xlen - b_len) / 2;
|
||||
quick_widgets[1].relative_x = quick_widgets[2].relative_x + b2_len + 1;
|
||||
quick_widgets[0].relative_x = quick_widgets[1].relative_x + b1_len + 1;
|
||||
|
||||
qd_result = quick_dialog (&Quick_input);
|
||||
|
||||
if ((qd_result == B_ENTER) || (qd_result == B_EXIT))
|
||||
{
|
||||
if (!panels_options.fast_reload_msg_shown && panels_options.fast_reload)
|
||||
{
|
||||
message (D_NORMAL, _("Information"),
|
||||
_(" Using the fast reload option may not reflect the exact \n"
|
||||
" directory contents. In this case you'll need to do a \n"
|
||||
" manual reload of the directory. See the man page for \n"
|
||||
" the details. "));
|
||||
panels_options.fast_reload_msg_shown = TRUE;
|
||||
}
|
||||
update_panels (UP_RELOAD, UP_KEEPSEL);
|
||||
}
|
||||
|
||||
/* If they pressed the save button */
|
||||
if (result == B_EXIT){
|
||||
save_configure ();
|
||||
mc_config_save_file (mc_main_config, NULL);
|
||||
if (qd_result == B_EXIT)
|
||||
{
|
||||
/* save panel options */
|
||||
panels_save_options ();
|
||||
mc_config_save_file (mc_main_config, NULL);
|
||||
}
|
||||
|
||||
destroy_dlg (conf_dlg);
|
||||
}
|
||||
|
@ -7,5 +7,6 @@
|
||||
#define MC_OPTION_H
|
||||
|
||||
void configure_box (void);
|
||||
void panel_options_box (void);
|
||||
|
||||
#endif
|
||||
|
@ -104,11 +104,7 @@ WPanel *panel_new_with_dir (const char *panel_name, const char *dr);
|
||||
void panel_clean_dir (WPanel *panel);
|
||||
|
||||
extern int torben_fj_mode;
|
||||
extern int permission_mode;
|
||||
extern int filetype_mode;
|
||||
extern int show_mini_info;
|
||||
extern int panel_scroll_pages;
|
||||
extern int fast_reload;
|
||||
|
||||
void panel_reload (WPanel *panel);
|
||||
void panel_set_sort_order (WPanel *panel, const panel_field_t *sort_order);
|
||||
|
118
src/screen.c
118
src/screen.c
@ -97,33 +97,12 @@ typedef struct format_e
|
||||
const char *id;
|
||||
} format_e;
|
||||
|
||||
enum
|
||||
{
|
||||
QSEARCH_CASE_INSENSITIVE = 0, /* quick search in case insensitive mode */
|
||||
QSEARCH_CASE_SENSITIVE = 1, /* quick search in case sensitive mode */
|
||||
QSEARCH_PANEL_CASE = 2 /* quick search get value from panel case_sensitive */
|
||||
};
|
||||
|
||||
int quick_search_case_sensitive = QSEARCH_PANEL_CASE;
|
||||
|
||||
/* If true, show the mini-info on the panel */
|
||||
int show_mini_info = 1;
|
||||
|
||||
/* If true, then use stat() on the cwd to determine directory changes */
|
||||
int fast_reload = 0;
|
||||
|
||||
/* If true, use some usability hacks by Torben */
|
||||
int torben_fj_mode = 0;
|
||||
|
||||
/* If true, up/down keys scroll the pane listing by pages */
|
||||
int panel_scroll_pages = 1;
|
||||
|
||||
/* If 1, we use permission hilighting */
|
||||
int permission_mode = 0;
|
||||
|
||||
/* If 1 - then add per file type hilighting */
|
||||
int filetype_mode = 1;
|
||||
|
||||
/* The hook list for the select file function */
|
||||
Hook *select_file_hook = 0;
|
||||
|
||||
@ -266,7 +245,7 @@ string_file_size (file_entry * fe, int len)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
size_trunc_len (buffer, (unsigned int) len, fe->st.st_size, 0);
|
||||
size_trunc_len (buffer, (unsigned int) len, fe->st.st_size, 0, panels_options.kilobyte_si);
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
@ -676,7 +655,7 @@ file_compute_color (int attr, file_entry * fe)
|
||||
return (NORMAL_COLOR);
|
||||
case NORMAL:
|
||||
default:
|
||||
if (!filetype_mode)
|
||||
if (!panels_options.filetype_mode)
|
||||
return (NORMAL_COLOR);
|
||||
}
|
||||
|
||||
@ -727,7 +706,7 @@ format_file (char *dest, int limit, WPanel * panel, int file_index, int width, i
|
||||
break;
|
||||
|
||||
perm = 0;
|
||||
if (permission_mode)
|
||||
if (panels_options.permission_mode)
|
||||
{
|
||||
if (!strcmp (format->id, "perm"))
|
||||
perm = 1;
|
||||
@ -906,7 +885,7 @@ display_total_marked_size (WPanel * panel, int y, int x, gboolean size_only)
|
||||
*/
|
||||
g_snprintf (b_bytes, sizeof (b_bytes),
|
||||
ngettext ("%s byte", "%s bytes", (unsigned long) panel->total),
|
||||
size_trunc_sep (panel->total));
|
||||
size_trunc_sep (panel->total, panels_options.kilobyte_si));
|
||||
if (!size_only)
|
||||
g_snprintf (buffer, sizeof (buffer),
|
||||
ngettext ("%s in %d file", "%s in %d files", panel->marked),
|
||||
@ -973,8 +952,8 @@ show_free_space (WPanel * panel)
|
||||
if (myfs_stats.avail > 0 || myfs_stats.total > 0)
|
||||
{
|
||||
char buffer1[6], buffer2[6], tmp[BUF_SMALL];
|
||||
size_trunc_len (buffer1, sizeof (buffer1) - 1, myfs_stats.avail, 1);
|
||||
size_trunc_len (buffer2, sizeof (buffer2) - 1, myfs_stats.total, 1);
|
||||
size_trunc_len (buffer1, sizeof (buffer1) - 1, myfs_stats.avail, 1, panels_options.kilobyte_si);
|
||||
size_trunc_len (buffer2, sizeof (buffer2) - 1, myfs_stats.total, 1, panels_options.kilobyte_si);
|
||||
g_snprintf (tmp, sizeof (tmp), " %s/%s (%d%%) ", buffer1, buffer2,
|
||||
myfs_stats.total > 0 ?
|
||||
(int) (100 * (double) myfs_stats.avail / myfs_stats.total) : 0);
|
||||
@ -1004,10 +983,9 @@ show_dir (WPanel * panel)
|
||||
widget_move (&panel->widget, 0, 1);
|
||||
tty_print_string (panel_history_prev_item_sign);
|
||||
|
||||
tmp = (show_dot_files) ? panel_hiddenfiles_sign_show : panel_hiddenfiles_sign_hide;
|
||||
tmp =
|
||||
g_strdup_printf ("%s[%s]%s", tmp, panel_history_show_list_sign,
|
||||
panel_history_next_item_sign);
|
||||
tmp = panels_options.show_dot_files ? panel_hiddenfiles_sign_show : panel_hiddenfiles_sign_hide;
|
||||
tmp = g_strdup_printf ("%s[%s]%s", tmp, panel_history_show_list_sign,
|
||||
panel_history_next_item_sign);
|
||||
|
||||
widget_move (&panel->widget, 0, panel->widget.cols - 6);
|
||||
tty_print_string (tmp);
|
||||
@ -1033,7 +1011,8 @@ show_dir (WPanel * panel)
|
||||
char buffer[BUF_SMALL];
|
||||
|
||||
g_snprintf (buffer, sizeof (buffer), " %s ",
|
||||
size_trunc_sep (panel->dir.list[panel->selected].st.st_size));
|
||||
size_trunc_sep (panel->dir.list[panel->selected].st.st_size,
|
||||
panels_options.kilobyte_si));
|
||||
tty_setcolor (NORMAL_COLOR);
|
||||
widget_move (&panel->widget, panel->widget.lines - 1, 4);
|
||||
tty_print_string (buffer);
|
||||
@ -1435,7 +1414,7 @@ panel_reload (WPanel * panel)
|
||||
{
|
||||
struct stat current_stat;
|
||||
|
||||
if (fast_reload && !stat (panel->cwd, ¤t_stat)
|
||||
if (panels_options.fast_reload && !stat (panel->cwd, ¤t_stat)
|
||||
&& current_stat.st_ctime == panel->dir_stat.st_ctime
|
||||
&& current_stat.st_mtime == panel->dir_stat.st_mtime)
|
||||
return;
|
||||
@ -1957,21 +1936,19 @@ mini_status_format (WPanel * panel)
|
||||
static cb_ret_t
|
||||
maybe_cd (int move_up_dir)
|
||||
{
|
||||
if (navigate_with_arrows)
|
||||
if (panels_options.navigate_with_arrows && (cmdline->buffer[0] == '\0'))
|
||||
{
|
||||
if (!cmdline->buffer[0])
|
||||
if (move_up_dir)
|
||||
{
|
||||
if (move_up_dir)
|
||||
{
|
||||
do_cd ("..", cd_exact);
|
||||
return MSG_HANDLED;
|
||||
}
|
||||
if (S_ISDIR (selection (current_panel)->st.st_mode)
|
||||
|| link_isdir (selection (current_panel)))
|
||||
{
|
||||
do_cd (selection (current_panel)->fname, cd_exact);
|
||||
return MSG_HANDLED;
|
||||
}
|
||||
do_cd ("..", cd_exact);
|
||||
return MSG_HANDLED;
|
||||
}
|
||||
|
||||
if (S_ISDIR (selection (current_panel)->st.st_mode)
|
||||
|| link_isdir (selection (current_panel)))
|
||||
{
|
||||
do_cd (selection (current_panel)->fname, cd_exact);
|
||||
return MSG_HANDLED;
|
||||
}
|
||||
}
|
||||
return MSG_NOT_HANDLED;
|
||||
@ -2057,7 +2034,7 @@ move_down (WPanel * panel)
|
||||
|
||||
unselect_item (panel);
|
||||
panel->selected++;
|
||||
if (panel->selected - panel->top_file == ITEMS (panel) && panel_scroll_pages)
|
||||
if (panels_options.scroll_pages && panel->selected - panel->top_file == ITEMS (panel))
|
||||
{
|
||||
/* Scroll window half screen */
|
||||
panel->top_file += ITEMS (panel) / 2;
|
||||
@ -2076,7 +2053,7 @@ move_up (WPanel * panel)
|
||||
|
||||
unselect_item (panel);
|
||||
panel->selected--;
|
||||
if (panel->selected < panel->top_file && panel_scroll_pages)
|
||||
if (panels_options.scroll_pages && panel->selected < panel->top_file)
|
||||
{
|
||||
/* Scroll window half screen */
|
||||
panel->top_file -= ITEMS (panel) / 2;
|
||||
@ -2357,7 +2334,7 @@ static void
|
||||
do_mark_file (WPanel * panel, mark_act_t do_move)
|
||||
{
|
||||
do_file_mark (panel, panel->selected, selection (panel)->f.marked ? 0 : 1);
|
||||
if ((mark_moves_down && do_move == MARK_DOWN) || do_move == MARK_FORCE_DOWN)
|
||||
if ((panels_options.mark_moves_down && do_move == MARK_DOWN) || do_move == MARK_FORCE_DOWN)
|
||||
move_down (panel);
|
||||
else if (do_move == MARK_FORCE_UP)
|
||||
move_up (panel);
|
||||
@ -2438,7 +2415,7 @@ do_search (WPanel * panel, int c_code)
|
||||
search = mc_search_new (esc_str, -1);
|
||||
search->search_type = MC_SEARCH_T_GLOB;
|
||||
search->is_entire_line = TRUE;
|
||||
switch (quick_search_case_sensitive)
|
||||
switch (panels_options.qsearch_mode)
|
||||
{
|
||||
case QSEARCH_CASE_SENSITIVE:
|
||||
search->is_case_sensitive = TRUE;
|
||||
@ -3311,7 +3288,7 @@ do_panel_event (Gpm_Event * event, WPanel * panel, gboolean * redir)
|
||||
{
|
||||
if (is_active)
|
||||
{
|
||||
if (panel->top_file > 0)
|
||||
if (panels_options.mouse_move_pages && (panel->top_file > 0))
|
||||
prev_page (panel);
|
||||
else /* We are in first page */
|
||||
move_up (panel);
|
||||
@ -3323,7 +3300,8 @@ do_panel_event (Gpm_Event * event, WPanel * panel, gboolean * redir)
|
||||
{
|
||||
if (is_active)
|
||||
{
|
||||
if (panel->top_file + ITEMS (panel) < panel->count)
|
||||
if (panels_options.mouse_move_pages
|
||||
&& (panel->top_file + ITEMS (panel) < panel->count))
|
||||
next_page (panel);
|
||||
else /* We are in last page */
|
||||
move_down (panel);
|
||||
@ -3339,32 +3317,20 @@ do_panel_event (Gpm_Event * event, WPanel * panel, gboolean * redir)
|
||||
if (!is_active)
|
||||
change_panel ();
|
||||
|
||||
if (event->y <= 0)
|
||||
{
|
||||
mark_if_marking (panel, event);
|
||||
if (mouse_move_pages)
|
||||
prev_page (panel);
|
||||
else
|
||||
move_up (panel);
|
||||
return MOU_REPEAT;
|
||||
}
|
||||
if (event->y > lines)
|
||||
return MOU_NORMAL;
|
||||
|
||||
if (!((panel->top_file + event->y <= panel->count) && event->y <= lines))
|
||||
{
|
||||
mark_if_marking (panel, event);
|
||||
if (mouse_move_pages)
|
||||
next_page (panel);
|
||||
else
|
||||
move_down (panel);
|
||||
return MOU_REPEAT;
|
||||
}
|
||||
|
||||
my_index = panel->top_file + event->y - 1;
|
||||
if (panel->split && (event->x > ((panel->widget.cols - 2) / 2)))
|
||||
my_index += llines (panel);
|
||||
|
||||
if (my_index >= panel->count)
|
||||
if (panel->top_file + event->y > panel->count)
|
||||
my_index = panel->count - 1;
|
||||
else
|
||||
{
|
||||
my_index = panel->top_file + event->y - 1;
|
||||
if (panel->split && (event->x > ((panel->widget.cols - 2) / 2)))
|
||||
my_index += llines (panel);
|
||||
|
||||
if (my_index >= panel->count)
|
||||
my_index = panel->count - 1;
|
||||
}
|
||||
|
||||
if (my_index != panel->selected)
|
||||
{
|
||||
|
1066
src/setup.c
1066
src/setup.c
File diff suppressed because it is too large
Load Diff
89
src/setup.h
89
src/setup.h
@ -6,39 +6,82 @@
|
||||
#ifndef MC_SETUP_H
|
||||
#define MC_SETUP_H
|
||||
|
||||
#include "panel.h"
|
||||
#include <config.h>
|
||||
|
||||
char *setup_init (void);
|
||||
void save_layout (void);
|
||||
void save_configure (void);
|
||||
void load_setup (void);
|
||||
gboolean save_setup (void);
|
||||
void done_setup (void);
|
||||
void load_key_defs (void);
|
||||
char *load_anon_passwd (void);
|
||||
#include "lib/global.h" /* GError */
|
||||
|
||||
void panel_save_setup (struct WPanel *panel, const char *section);
|
||||
void panel_load_setup (struct WPanel *panel, const char *section);
|
||||
void save_panel_types (void);
|
||||
void load_keymap_defs (void);
|
||||
void free_keymap_defs (void);
|
||||
#include "panel.h" /* WPanel, panel_view_mode_t */
|
||||
|
||||
/* global paremeters */
|
||||
extern char *profile_name;
|
||||
extern char *global_profile_name;
|
||||
|
||||
extern char *setup_color_string;
|
||||
extern char *term_color_string;
|
||||
extern char *color_terminal_string;
|
||||
extern int verbose;
|
||||
extern int mouse_close_dialog;
|
||||
extern int select_flags;
|
||||
extern int setup_copymove_persistent_attr;
|
||||
extern int num_history_items_recorded;
|
||||
extern int classic_progressbar;
|
||||
|
||||
char *setup_init (void);
|
||||
void load_setup (void);
|
||||
gboolean save_setup (void);
|
||||
void done_setup (void);
|
||||
void save_config (void);
|
||||
void setup_save_config_show_error (const char *filename, GError **error);
|
||||
|
||||
void save_layout (void);
|
||||
|
||||
void load_key_defs (void);
|
||||
#if defined(ENABLE_VFS) && defined (USE_NETCODE)
|
||||
char *load_anon_passwd (void);
|
||||
#endif /* ENABLE_VFS && defined USE_NETCODE */
|
||||
|
||||
void load_keymap_defs (void);
|
||||
void free_keymap_defs (void);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
QSEARCH_CASE_INSENSITIVE = 0, /* quick search in case insensitive mode */
|
||||
QSEARCH_CASE_SENSITIVE = 1, /* quick search in case sensitive mode */
|
||||
QSEARCH_PANEL_CASE = 2, /* quick search get value from panel case_sensitive */
|
||||
QSEARCH_NUM
|
||||
} qsearch_mode_t;
|
||||
|
||||
/* panels ini options; [Panels] section */
|
||||
typedef struct
|
||||
{
|
||||
gboolean kilobyte_si; /* If TRUE, SI units (1000 based) will be used for larger units
|
||||
* (kilobyte, megabyte, ...). If FALSE, binary units (1024 based) will be used */
|
||||
gboolean mix_all_files; /* If FALSE then directories are shown separately from files */
|
||||
gboolean show_backups; /* If TRUE, show files ending in ~ */
|
||||
gboolean show_dot_files; /* If TRUE, show files starting with a dot */
|
||||
gboolean fast_reload; /* If TRUE then use stat() on the cwd to determine directory changes */
|
||||
gboolean fast_reload_msg_shown; /* Have we shown the fast-reload warning in the past? */
|
||||
gboolean mark_moves_down; /* If TRUE, marking a files moves the cursor down */
|
||||
gboolean reverse_files_only; /* If TRUE, only selection of files is inverted */
|
||||
gboolean auto_save_setup;
|
||||
gboolean navigate_with_arrows; /* If TRUE: l&r arrows are used to chdir if the input line is empty */
|
||||
gboolean scroll_pages; /* If TRUE, panel is scrolled by half the display when the cursor reaches
|
||||
the end or the beginning of the panel */
|
||||
gboolean mouse_move_pages; /* Scroll page/item using mouse wheel */
|
||||
gboolean filetype_mode; /* If TRUE then add per file type hilighting */
|
||||
gboolean permission_mode; /* If TRUE, we use permission hilighting */
|
||||
qsearch_mode_t qsearch_mode; /* Quick search mode */
|
||||
} panels_options_t;
|
||||
|
||||
extern panels_options_t panels_options;
|
||||
|
||||
extern panel_view_mode_t startup_left_mode;
|
||||
extern panel_view_mode_t startup_right_mode;
|
||||
extern int verbose;
|
||||
|
||||
extern int mouse_close_dialog;
|
||||
extern int reverse_files_only;
|
||||
extern int select_flags;
|
||||
void panel_load_setup (struct WPanel *panel, const char *section);
|
||||
void panel_save_setup (struct WPanel *panel, const char *section);
|
||||
void save_panel_types (void);
|
||||
|
||||
void panels_load_options (void);
|
||||
void panels_save_options (void);
|
||||
|
||||
extern int setup_copymove_persistent_attr;
|
||||
void setup_save_config_show_error(const char *filename, GError **error);
|
||||
|
||||
#endif
|
||||
#endif /* MC_SETUP_H */
|
||||
|
@ -43,10 +43,11 @@
|
||||
#include "lib/tty/key.h"
|
||||
#include "lib/strutil.h"
|
||||
|
||||
#include "src/main.h"
|
||||
#include "src/dialog.h" /* Dlg_head */
|
||||
#include "src/charsets.h"
|
||||
#include "src/widget.h" /* WButtonBar */
|
||||
#include "src/charsets.h"
|
||||
#include "src/setup.h" /* panels_options */
|
||||
#include "src/main.h" /* source_codepage */
|
||||
|
||||
#include "internal.h"
|
||||
#include "mcviewer.h"
|
||||
@ -152,7 +153,7 @@ mcview_display_status (mcview_t * view)
|
||||
}
|
||||
else
|
||||
{
|
||||
size_trunc_len (buffer, 5, mcview_get_filesize (view), 0);
|
||||
size_trunc_len (buffer, 5, mcview_get_filesize (view), 0, panels_options.kilobyte_si);
|
||||
tty_printf ("%9lli/%s%s %s", view->dpy_end,
|
||||
buffer, mcview_may_still_grow (view) ? "+" : " ",
|
||||
#ifdef HAVE_CHARSET
|
||||
|
@ -60,6 +60,7 @@
|
||||
#include "keybind.h" /* global_keymap_t */
|
||||
#include "panel.h" /* current_panel */
|
||||
#include "main.h" /* confirm_history_cleanup */
|
||||
#include "setup.h" /* num_history_items_recorded */
|
||||
|
||||
static void
|
||||
widget_selectcolor (Widget * w, gboolean focused, gboolean hotkey)
|
||||
|
@ -411,6 +411,13 @@ quick_dialog_skip (QuickDialog *qd, int nskip)
|
||||
qw->widget = (Widget *) label_new (ypos, xpos, I18N (qw->u.label.text));
|
||||
break;
|
||||
|
||||
case quick_groupbox:
|
||||
qw->widget = (Widget *) groupbox_new (ypos, xpos,
|
||||
qw->u.groupbox.height,
|
||||
qw->u.groupbox.width,
|
||||
I18N (qw->u.groupbox.title));
|
||||
break;
|
||||
|
||||
case quick_radio:
|
||||
{
|
||||
int i;
|
||||
|
26
src/wtools.h
26
src/wtools.h
@ -31,7 +31,8 @@ typedef enum {
|
||||
quick_button = 2,
|
||||
quick_input = 3,
|
||||
quick_label = 4,
|
||||
quick_radio = 5
|
||||
quick_radio = 5,
|
||||
quick_groupbox = 6
|
||||
} quick_t;
|
||||
|
||||
/* The widget is placed on relative_?/divisions_? of the parent widget */
|
||||
@ -75,6 +76,12 @@ typedef struct {
|
||||
const char **items;
|
||||
int *value; /* in/out */
|
||||
} radio;
|
||||
|
||||
struct {
|
||||
int width;
|
||||
int height;
|
||||
const char *title;
|
||||
} groupbox;
|
||||
} u;
|
||||
} QuickWidget;
|
||||
|
||||
@ -162,6 +169,23 @@ typedef struct {
|
||||
} \
|
||||
}
|
||||
|
||||
#define QUICK_GROUPBOX(x, xdiv, y, ydiv, w, h, t) \
|
||||
{ \
|
||||
.widget_type = quick_groupbox, \
|
||||
.relative_x = x, \
|
||||
.x_divisions = xdiv, \
|
||||
.relative_y = y, \
|
||||
.y_divisions = ydiv, \
|
||||
.widget = NULL, \
|
||||
.u = { \
|
||||
.groupbox = { \
|
||||
.width = w, \
|
||||
.height = h, \
|
||||
.title = t \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
#define QUICK_END \
|
||||
{ \
|
||||
.widget_type = quick_end, \
|
||||
|
Loading…
Reference in New Issue
Block a user