простейший путь: добавляйте свои CheckBox и реакцию на них в +functions_nnbackup
- Code: Select all
REQUIRE (WIN-SHOW-CONST) plugins/other/wincon.f \ подключение описано здесь http://www.nncron.ru/forums/viewtopic.php?t=6828
REQUIRE OpenDialog plugins/other/filedialogs.f \ подключение описано здесь http://www.nncron.ru/forums/viewtopic.php?t=6828
REQUIRE SHBrowseForFolder plugins/other/opendir.f \ подключение описано здесь http://www.nncron.ru/forums/viewtopic.php?t=6828
REQUIRE ProgressBar plugins/other/progressbar.f \ подключение описано здесь http://www.nncron.ru/forums/viewtopic.php?t=6828
CLASS: winguinnbackup <SUPER FrameWindow
var -a
var -u
Static OBJ nnbsttext :init a v 10 2 pos 100 10 size S" местоположение nnBackup.exe" text ;
Edit OBJ nnbdirInput :init a v 10 10 pos 218 10 size S" C:\Program Files\nnBackup\nnbackup.exe" text tabstop ;
Button OBJ nnbdirInputbt :init a v 228 10 pos 10 10 size S" ..." text tabstop ;
OpenDialog OBJ od1
FILTER: AllFilter
NAME" nnBackup (nnbackup.exe)" EXT" nnbackup.exe"
;FILTER
Static OBJ nnbsttextfrom2 :init a v 3 30 pos 10 10 size S" -i" text ;
Static OBJ nnbsttextfrom :init a v 10 22 pos 100 10 size S" местоположение исходного каталога" text ;
Edit OBJ nnbdirInputfrom :init a v 10 30 pos 218 10 size tabstop ;
Button OBJ nnbdirInputfromt :init a v 228 30 pos 10 10 size S" ..." text tabstop ;
Static OBJ nnbsttextfrom2 :init a v 3 50 pos 10 10 size S" -o" text ;
Static OBJ nnbsttextto :init a v 10 42 pos 100 10 size S" местоположение приемного каталога" text ;
Edit OBJ nnbdirInputto :init a v 10 50 pos 218 10 size tabstop ;
Button OBJ nnbdirInputtomt :init a v 228 50 pos 10 10 size S" ..." text tabstop ;
\ режимы nnBackup
RadioButton OBJ nbcopy :init a v 10 65 pos 25 10 size S" copy" text tabstop ;
RadioButton OBJ nbver :init a v 40 65 pos 25 10 size S" ver" text tabstop ;
RadioButton OBJ nbverz :init a v 70 65 pos 25 10 size S" verz" text tabstop ;
RadioButton OBJ nbsync :init a v 100 65 pos 25 10 size S" sync" text tabstop ;
RadioButton OBJ nbsync2 :init a v 130 65 pos 25 10 size S" sync2" text tabstop ;
RadioButton OBJ nbdump :init a v 160 65 pos 25 10 size S" dump" text tabstop ;
RadioButton OBJ nbfill :init a v 190 65 pos 25 10 size S" fill" text tabstop ;
RadioButton OBJ nbdelabsent :init a v 210 65 pos 30 10 size S" delabsent" text tabstop ;
\ GroupBox OBJ gr1 :init a v 5 57 pos 235 13 size S" " text ;
CheckBox OBJ chk-nocopy :init a v 10 80 pos 40 10 size S" -nocopy" text tabstop ;
CheckBox OBJ chk-c :init a v 10 90 pos 40 10 size S" -c" text tabstop ;
CheckBox OBJ chk-s :init a v 10 100 pos 40 10 size S" -s" text tabstop ;
CheckBox OBJ chk-e :init a v 10 110 pos 40 10 size S" -e" text tabstop ;
CheckBox OBJ chk-p :init a v 10 120 pos 40 10 size S" -p структура" text tabstop ;
CheckBox OBJ chk-v :init a v 10 130 pos 40 10 size S" -v" text tabstop ;
CheckBox OBJ chk-ad :init a v 10 140 pos 40 10 size S" -ad" text tabstop ;
CheckBox OBJ chk-da :init a v 10 150 pos 40 10 size S" -da" text tabstop ;
CheckBox OBJ chk-zip :init a v 10 160 pos 40 10 size S" -zip" text tabstop ;
Button OBJ nnbSee :init a v 10 200 pos 100 10 size S" See command line" text tabstop ;
Edit OBJ sttextend :init a v 10 215 pos 218 10 size S" " text
\ vStyle @
\ ES_WANTRETURN OR
\ ES_MULTILINE
\ WS_VSCROLL OR \ OR
\ vStyle !
tabstop
;
Button OBJ nnbCopy :init a v 10 230 pos 30 10 size S" Copy" text tabstop ;
Button OBJ nnbRun :init a v 45 230 pos 30 10 size S" Run" text tabstop ;
Button OBJ nnbCancel :init a v 80 230 pos 30 10 size S" Cancel" text tabstop ;
ChooseDirDialog OBJ openFolder
ProgressBar OBJ bbars :init a v 10 225 pos 218 4 size ;
: test-progress
10 0 DO bbars StepIt 100 PAUSE LOOP
;
: 1Get_If_S+ ->CLASS RadioButton GetCheck IF S+ ELSE 2DROP THEN ;
: +procedure_nnbackup
S" copy" nbcopy SELF 1Get_If_S+
S" ver" nbver SELF 1Get_If_S+
S" verz" nbverz SELF 1Get_If_S+
S" sync" nbsync SELF 1Get_If_S+
S" sync2" nbsync2 SELF 1Get_If_S+
S" dump" nbdump SELF 1Get_If_S+
S" fill" nbfill SELF 1Get_If_S+
S" delabsent" nbdelabsent SELF 1Get_If_S+
;
: +QUOTES+ S+ QUOTE S+ ;
: +catalogs_for_nnbackup
S" -i " +QUOTES+ nnbdirInputfrom GetText +QUOTES+
S" -o " +QUOTES+ nnbdirInputto GetText +QUOTES+
;
: 2Get_If_S+ ->CLASS CheckBox GetCheck IF S+ ELSE 2DROP THEN ;
: +functions_nnbackup
S" -nocopy" chk-nocopy SELF 2Get_If_S+
S" -c" chk-c SELF 2Get_If_S+
S" -s" chk-s SELF 2Get_If_S+
S" -e" chk-e SELF 2Get_If_S+
S" -p" chk-p SELF 2Get_If_S+
S" -v" chk-v SELF 2Get_If_S+
S" -ad" chk-ad SELF 2Get_If_S+
S" -da" chk-da SELF 2Get_If_S+
S" -zip" chk-zip SELF 2Get_If_S+
;
: see_text
test-progress
QUOTE nnbdirInput GetText +QUOTES+
+procedure_nnbackup
+catalogs_for_nnbackup
+functions_nnbackup
sttextend SetText
;
: get_text sttextend GetText 2DUP CLIPBOARD! -u ! -a ! ; \ 2DUP CLIPBOARD! - при запуске ком.строки, строка копируется в буфер
\ M: chk-nocopyClick chk-nocopy GetCheck IF chk-da Enable ELSE chk-da Disable THEN ;
\ M: chk-nocopyClick chk-nocopy GetCheck IF chk-da Hide ELSE chk-da Show THEN ;
M: nnbRunClick get_text 1 ModalResult! ;
\ M: nnbCopyClick sttextend GetText CLIPBOARD! ; \ !!!
M: nnbCopyClick get_text ;
\ M: nnbCopyClick get_text 2 ModalResult! ;
M: nnbSeeClick bbars Show see_text bbars Hide sttextend Enable nnbCopy Enable nnbRun Enable ;
M: nnbCancelClick 0 ModalResult! ;
VM: OnExit 0 ModalResult! ;
M: nnbdirInputbtClick
AllFilter od1 SetFilter
od1 Execute
IF
od1 FileName
nnbdirInput SetText
THEN
;
M: nnbdirInputtomtClick
S" Приемный каталог" openFolder SetTitle
openFolder Execute
IF
openFolder GetPath nnbdirInputto SetText
THEN
;
M: nnbdirInputfromtClick
S" Исходный каталог" openFolder SetTitle
openFolder Execute
IF
openFolder GetPath nnbdirInputfrom SetText
THEN
;
M: Create
Create
AutoCreate
nbcopy Checked
chk-nocopy Checked
bbars Hide
sttextend Disable
nnbCopy Disable
nnbRun Disable
['] nnbRunClick nnbRun OnClick !
['] nnbCopyClick nnbCopy OnClick !
['] nnbCancelClick nnbCancel OnClick !
['] nnbdirInputbtClick nnbdirInputbt OnClick !
['] nnbSeeClick nnbSee OnClick !
['] nnbdirInputtomtClick nnbdirInputtomt OnClick !
['] nnbdirInputfromtClick nnbdirInputfromt OnClick !
;
;CLASS
: Guinnbk { \ w -- }
winguinnbackup NEW TO w
0 w ->CLASS winguinnbackup Create
S" GUI nnBackup.exe" w ->CLASS winguinnbackup SetText
260 260 w ->CLASS winguinnbackup Center
\ w ->CLASS winguinnbackup Show
w ->CLASS winguinnbackup ShowModal
CASE
0 OF ENDOF
1 OF 0 w ->CLASS winguinnbackup -a @ w ->CLASS winguinnbackup -u @ StartApp DROP ENDOF
\ 2 OF w ->CLASS winguinnbackup -a @ w ->CLASS winguinnbackup -u @ CLIPBOARD! ENDOF
DUP OF ." неизвестный параметр в CASE" ENDOF
ENDCASE
w DELETE
;
слово для запуска Guinnbk