mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-06 14:52:34 +02:00
Merge branch 'master' into HEAD
This commit is contained in:
commit
ec3a4f5069
1
.gitignore
vendored
1
.gitignore
vendored
@ -188,3 +188,4 @@ win/resetPrefs.txt
|
||||
|
||||
# Emacs backup files
|
||||
*~
|
||||
win/xaudacity.ico
|
||||
|
224
images/DarkAudacityLogoWithName.xpm
Normal file
224
images/DarkAudacityLogoWithName.xpm
Normal file
@ -0,0 +1,224 @@
|
||||
/* XPM */
|
||||
static char * AudacityLogoWithName_xpm[] = {
|
||||
"629 200 21 1",
|
||||
" c None",
|
||||
". c #ADADAD",
|
||||
"+ c #A3A3A3",
|
||||
"@ c #999999",
|
||||
"# c #8F8F8F",
|
||||
"$ c #858585",
|
||||
"% c #7A7A7A",
|
||||
"& c #707070",
|
||||
"* c #666666",
|
||||
"= c #525252",
|
||||
"- c #474747",
|
||||
"; c #5C5C5C",
|
||||
"> c #3D3D3D",
|
||||
", c #B8B8B8",
|
||||
"' c #000000",
|
||||
") c #141414",
|
||||
"! c #0A0A0A",
|
||||
"~ c #333333",
|
||||
"{ c #1F1F1F",
|
||||
"] c #292929",
|
||||
"^ c #C2C2C2",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"................................................................................................................................................................................................................................+@###$$$$$##@+.......................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...........................................................................................................................................................................................................................+#%%&**=--------=;*&&%#+..................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".......................................................................................................................................................................................................................+#%&*=--------------------=;*&#@+.............................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"....................................................................................................................................................................................................................+@&*;----------------------------=;*$+...........................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"..................................................................................................................................................................................................................+$;=----------===----------------------=%++........................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...............................................................................................................................................................................................................+#&;=-----=====------------------------------*$+......................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".............................................................................................................................................................................................................+#&=----=====---->>>>>>>>>>>>>>>>>---------------;%@....................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"............................................................................................................................................................................................................#&=---=====--->>>>>>>>>>>>>>>>>>>>>>>>>-------------;#+..................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"..........................................................................................................................................................................................................+%;---=;;;=-->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>----------=&@.................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"........................................................................................................................................................................................................+#*=--=;;==->>>>>>>>>>>---===;=;====--->>>>>>>>>>----------;$+...............................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".......................................................................................................................................................................................................+&=---;*;-->>>>>>>>>-=*&%%%$$$#$$$$$$%%&%*=->>>>>>>>>---------;#..............................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"......................................................................................................................................................................................................@;=--=**->>>>>>>>>-;%######################$#$;->>>>>>>>--------=$.............................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................$==-=;*=->>>>>>>-=&##########################@@##&;->>>>>>---------%++..........................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...................................................................................................................................................................................................+%;--;**=>>>>>>>=*$#############@@@@@@@@@@@@@@@##@@##$*=>>>>>>--------*+..........................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"..................................................................................................................................................................................................+%=-=;&;->>>>>>=*$###########@@@@@@@@@@@@@@@@@@@@@@@@#@@$&=>>>>>--------*+.........................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".................................................................................................................................................................................................+&=-=**=>>>>>>-&$##########@@@@@@@@@@++++++++++++@@@@@@@@@@$&=>>>>>------>;#+.......................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"................................................................................................................................................................................................+&===&*->>>>>-*$@#######@@@@@@@+++++++++++++++++++++++@@@@@@@@$*->>>>------>=#.......................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...............................................................................................................................................................................................+&===&*->>>>>-&#########@@@@@+++++++++++........+++++++++++++@@@@%=>>>>-------=@+.....................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...............................................................................................................................................................................................%===&*->>>>>;$#######@@@@@@+++++++....................+++++++++@@@#*->>>----->>;@++...................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"..............................................................................................................................................................................................$=-=&*->>>>-&########@@@@++++++++.........................++++++++@@#&->>>>--->--*@....................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".............................................................................................................................................................................................$=-=&*->>>>=%#######@@@@@+++++.................................++++++@@$=>>>---->--&++..................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"............................................................................................................................................................................................@;-=&*->>>>=$@######@@@@++++.......................................++++@+$;>>>--->>>-%++.................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"...........................................................................................................................................................................................+*-=*&->>>>=$@######@@@+++++.........................................++++@+#;>>>---->>-$++....................................................................................................................................................................................................+...........................................................................................................................................................",
|
||||
"...........................................................................................................................................................................................%--;&=>>>>=$@#####@@@@++++.............................................+++++#;>------->;@++..................................................................................................................................................................................................$*...........................................................................................................................................................",
|
||||
"..........................................................................................................................................................................................#=-;%=>>>>=#@#####@@@++++................................................+++++#;>------>-%+++................................................................................................................................................................................................&=;...........................................................................................................................................................",
|
||||
".........................................................................................................................................................................................+*=-&*>>>>=$@#####@@@++++...................................................++++#;>---->>>-#++..............................................................................................................................................................................................+*==;...........................................................................................................................................................",
|
||||
"........................................................................................................................................................................................+%=-;&->>>-%######@@@+++......................................................++++$->---->>>;+++............................................................................................................................................................................................#;===;...........................................................................................................................................................",
|
||||
"........................................................................................................................................................................................@=-=&=>>>>&@####@@@@+++..........................................................++%------>>-$++...........................................................................................................................................................................................$=====;...........................................................................................................................................................",
|
||||
"........................................................................................................................................................................................&-=**>>>>;######@@@+++...........................................................+++*>----->>=@@+.........................................................................................................................................................................................&======;...........................................................................................................................................................",
|
||||
".......................................................................................................................................................................................@===*->>>-$@####@@@+++.............................................................+.@=----->>-%@++......................................................................................................................................................................................@*=======;...........................................................................................................................................................",
|
||||
".......................................................................................................................................................................................&-=*=>>>>&@####@@@+++...............................................................+.$----->>>=@@++....................................................................................................................................................................................#;========;...........................................................................................................................................................",
|
||||
"......................................................................................................................................................................................+;-;*->>>;######@@+++.................................................................++*----->>-$@+++..................................................................................................................................................................................$==========;...........................................................................................................................................................",
|
||||
"......................................................................................................................................................................................%=-*=>>>-%@####@@+++....................................................................@=----->>;@@++.................................................................................................................................................................................,&==========;...........................................................................................................................................................",
|
||||
".....................................................................................................................................................................................@;-=;->>>;@####@@@++......................................................................&----->>-$++++................................................................................................................................................................................,&==========;...........................................................................................................................................................",
|
||||
"................,,,,,,,,,,,,,,,,,,,,,,,,.............................................................................................................................................%--;=>>>-$####@@@++.......................................................................@=---->>>;@@++................................................................................................................................................................................,&==========;...........................................................................................................................................................",
|
||||
"...............%-----------------------*+,..............................................................................................,$...........................................;-=;->>>*@####@@+++........................................................................&----->>-$@++................................................................................................................................................................................,&==========;.....................+#....................................................................................................................................",
|
||||
"..............,='''''''''''''''''''''''''>@.............................................................................................*),.........................................@=-=;>>>-$####@@@++.........................................................................@=---->>>&@@++...............................................................................................................................................................................,&==========;....................@;$....................................................................................................................................",
|
||||
"..............,='''''''''''''''''''''''''')%...........................................................................................='!,.........................................&-=;=>>>;####@@@+++..........................................................................;---->>>;#@++...............................................................................................................................................................................,&==========&...................@;=$....................................................................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''!@........................................................................................+~''),........................................+;--=->>>&@###@@++............................................................................@----->>-$@@++..............................................................................................................................................................................,&=========$,..................@===$....................................................................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''{,......................................................................................#{'''),........................................#=-==>>>=#####@@++............................................................................+;---->>>$@@++..............................................................................................................................................................................,&=======;#...................#====$....................................................................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''';,....................................................................................%!''''),........................................%=-=->>>;@###@@++..............................................................................$---->>>&@@+++.............................................................................................................................................................................,&======*+...................$=====$....................................................................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''')....................................................................................=!'''''),........................................&--=->>>&####@@++..............................................................................#---->>>=#@+++.............................................................................................................................................................................,&=====%....................$======$....................................................................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''!&..................................................................................>'''''''),........................................&--=->>-####@@+++..............................................................................#=--->>>=#@@++.............................................................................................................................................................................,&====$....................%=======$..............+@@@@@@@@@@@........@@@@@@@@@@@@......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''-................................................................................@]''''''''),.......................................@;--=>>>=####@@++...............................................................................+*---->>-$#@+++............................................................................................................................................................................,&==;@....................&========$..............#===========@.......*==========&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''~+..............................................................................#{'''''''''),.......................................#--=->>>;@###@+++................................................................................&---->>>&@#+++............................................................................................................................................................................,&=*+....................*=========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''{@..............................................................................&!'''''''''),.......................................#--=->>>%###@@++.................................................................................%---->>>*@@@++..........................................................................................+..................................................................................&&........+$...........*==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''!#..............................................................................&!'''''''''),.......................................#---->>>%###@@++.................................................................................#=--->>>;@@@++.........................................................................................$*..................................................................................@........@*;..........+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''$..............................................................................&!'''''''''),.......................................$---->>-&###@@++.................................................................................+=--->>>;@@@++........................................................................................%=*..........................................................................................#;=;..........+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''$..............................................................................&!'''''''''),.......................................*---->>-$###@@++.................................................................................+=--->>>=#@@@+.......................................................................................*==*.........................................................................................$===;..........+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''%..............................................................................&!'''''''''),.......................................;---->>-$##@@++...................................................................................;--->>>-$@@@++....................................................................................@*===*.......................................................................................+&====;..........+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''&..............................................................................&!'''''''''),.......................................;--->>>=$##@@+++..................................................................................;---->>-$#@@++..................................................................................,#;====*......................................................................................+;=====;..........+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''&..............................................................................&!'''''''''),......................................+;---->>=$##@@@+...................................................................................;---->>-$#@@++..................................................................................%======*.....................................................................................#=======;..........+;==========$........$.....#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''&..............................................................................&!'''''''''),......................................+;---->>=$##@@++...................................................................................;---->>-$#@@++................................................................................+&=======*.....................................................+@@@@@@@@@@@@@@@...............$========;..........+;==========$.......%=,....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!-;;;;;;;-'''''''''''&..............................................................................&!'''''''''),......................................+;--->>>=$##@$@...............................................................................@+...;---->>-$@@@++...............................................................................@;========*...................................................$*;;============;;*$...........+*=========;..........+;==========$.....+*==.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#,,,,,,,#'''''''''''&..............................................................................&!'''''''''),......................................+;--=>>>=$##@%&&@...........................................................................@%;@...;---->>-$@#@++..............................................................................#==========*..................................................*====================;.........,&==========;..........+;==========$....@;===.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&..............................................................................&!'''''''''),.....................................@&=-;*>>>=$##@+%>=$+........................................................................#;-=#...;--=->>-=%@@++..............................................................................&==========*.................................................*======================;........,&==========;..........+;==========$...#=====.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&..............................................................................&!'''''''''),....................................#;-=-&*>>>=$###&$=>-@.......................................................................@&=-=#...;--==>>>>-&@@++.............................................................................&==========*................................................%========================&.......,&==========;..........+;==========$..%======.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&..............,.@@@@@@@@@@@@@@+,..............@@@@@@@@@@@+....,+@@@+,.........&!'''''''''),.........@@@@@@@@@@@@.............+&=-===&=>>>=$#@#=%*>-@.......................................................................&&*--#...;--=*------;#++.............................................................................&==========*...............................................@;=========================#......,&==========;..........+;==========$.*=======.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&............,#>{{))))))))))))){>$,...........,]))))))))))>,..+>{))){>$,.......&!'''''''''),........#))))))))))){@...........+&--===;=>>>>=$#@#-==>-@.......................................................................;;;>-#..+;--=&=----->;@+.............................................................................&==========*...............................................%==========================&......,&==========;..........+;==========%*========.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&............=''''''''''''''''''''>...........,!''''''''''~,.@)''''''''>.......&!'''''''''),.......,-''''''''''''#...........%====--=->>>>=$#@#=-->-#.......................................................................;-->-$.++;---&*----->>*@+...................,,,,,,,,,,.........,,,,,,,,,,,...........................&==========*.................,,,,,,,,,,,,..................============================+.....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&...........-'''''''''''''''''''''']+.........,!''''''''''~,+{''''''''''>......&!'''''''''),........)''''''''''']+..........$===-=-==->>>>=$#@#--->-#.......................................................................;-->-$+++;---;%=--->>>>&++.................%**********%.......+**********&@..........................&==========*..............@$$***********&%$+..............#-===========================$.....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.........,;''''''''''''''''''''''''-.........,!''''''''''~^>''''''''''''&.....&!'''''''''),.......$!'''''''''''=..........#;=--==;*=>>>>>=$#@#--->-#.......................................................................;-->-$+++;----&;--->->>-%++................&==========&.......@===========#..........................&==========*............@;==================&+............%============================&.....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.........@''''''''''''''''''''''''''#........,!''''''''''~@)''''''''''''{.....&!'''''''''),.......;'''''''''''!$.........@;==-==;%*->>>>>=####--->-#.......................................................................;-->-$+@@;----;*----->>>-$++...............&==========&.......@===========#..........................&==========*...........#=====================;@..........,;=============================.....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&........,>''''''''''''''''''''''''''],.......,!''''''''''~*''''''''''''''%....&!'''''''''),......+>'''''''''''{.........+&--=-==$#=->>>>>=$#@#--->-#.......................................................................;-->-$@@@;----=;----->>>>*++...............&==========&.......@===========#..........................&==========*..........@=======================;+..........=============================-+....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&........@)'''''''''''''''''''''''''''#.......,!'''''''''']>''''''''''''''~,...&!'''''''''),......@)'''''''''''=,........@===-=;&@&-->>>>>=$#@#--->-#.......................................................................;-->-%@@@;-----;=--->>>>>>%++..............&==========&.......@===========#..........................&==========*..........=========================*.........+==============================@....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&........&''''''''''''''''''''''''''''>,......,!''''''''''{{''''''''''''''!....&!'''''''''),......%''''''''''''+........+*-==-=&@@;->>>>>>=$#@#=-->-#.......................................................................;-->-%@@@;-----==--->>>>>>=#+++............&==========&.......@===========#..........................&==========*.........%=========================-@........#==============================$....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&........-'''''''''''''''''''''''''''').......,!'''''''''')!'''''''''''''''$...&!'''''''''),......-'''''''''''~,........$=--==;$+&-->>>>>>=$#@#--->-#.......................................................................;-->-%@@@;------=----->>>>>*+++............&==========&.......@===========#..........................&==========*........+;==========================*........#==============================$....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......+~''''''''''''''''''''''''''''!#......,!'''''''''''''''''''''''''''*,..&!'''''''''),......)'''''''''''%........+*-=-=;%@#;-->>>>>>=$#@#--->-#.......................................................................;-->-%@@@;------=----->>>>>-$@++...........&==========&.......@===========#................,,,.......&==========*........#============================+.......#==============================$....,&==========;..........+;====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......+)''''''''''''''''''''''''''''!%......,!'''''''''''''''''''''''''''-,..&!'''''''''),.....$''''''''''')+........%-=--=*#@&=->>>>>>>=$#@#--->-#.......................................................................=-->-%@@@;------=----->>>>>>*+++...........&==========&.......@===========#............@%**===;&@....&==========*........&============================$.......$==============================%....,&==========;..........$=====================.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......@''''''''''''''''''''''''''''''*......,!'''''''''''''''''''''''''''>,..&!'''''''''),....,>'''''''''''-........+*=--==&@$;-->>>>>>>=$#@#=-->-#.......................................................................=-->-%@@@;------------>>>>>>=#@++..........&==========&.......@===========#..........@*==========&+..&==========*.......+*============================&.......$===========;;;;;;;;===========%....,&==========;........+&=====================&.....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......@'''''''''''''''''''''''''''''';......,!'''''''''''''''''''''''''''~...&!'''''''''),.....!''''''''''!%........#=---=;$#*--->>>>>>>=$#@#--->-#.......................................................................;-->-%@@@;------------->>>>>>%@+++.........&==========&.......@===========#.........@;============&..&==========*.......+;============================*+......$===========@+++++++;==========%....,&==========;.......+*=====================$......#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......$''''''''''''''''''''''''''''''=......,!'''''''''''''''''''''''''''~...&!'''''''''),....$'''''''''''{+........&----=*$%=--->>>>>>>=$#@#--->-#......................................+...............................+;-->-%@@@;------------->>>>>>=#+++.........&==========&.......@===========#.........*=============-#.&==========*.......@=============================;+......$===========+.......;==========%....,&==========;......@;=====================@.......#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''''''''''''''''''''''-......,!''''''''''''''''''''''''''']...&!'''''''''),...,-'''''''''''>,.......+;--==;&%;---->>>>>>>=$#@#--->-#...................+................+.+.+..+..........................+;-->-%@@@;------------->>>>>>>$@+++........&==========&.......@===========#........@-==============;.&==========*.......@=============================;@......$===========+.......;==========%....,&==========;.....#=====================*+........#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''''''''''''''''''''''-......,!''''''''''''''''''''''''''']+..&!'''''''''),...+]'''''''''''$........$=---=;&&=---->>>>>>>=$#@#--->-#...................+................++@+@.++..........................+;-->-%@@@;------------->>>>>>>*@@++........&==========&.......@===========#........*================#&==========*.......#==============================@......$===========+.......;==========%....,&==========;....@=====================%..........#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''{========]''''''''''-......,!''''''''''''''''''''''''''']+..&!'''''''''),...#)''''''''''),........&----=*&*----->>>>>>>=$#@#--->-#..................+++........+......+@#+@.++.+........................+;-->-%@@@;------------->>>>>>>=#@@+........&==========&.......@===========#.......+=================&%==========*.......#==============================@......$===========+.......;==========%....,&==========;....@===================-#...........#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''{*****{'''''''''']+..&!'''''''''),...&''''''''''';,.......+;----=*&;----->>>>>>>=$#@#--->-#.................++++........+......+@#+#.++.+.++.....................+=-->-%@@@;-------------->>>>>>-$@@++.......&==========&.......@===========#.......#=================;*==========*.......#==============================@......$===========+.......;==========%....,&==========;....@==================;#............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...,>'''''''''']+..&!'''''''''),...>'''''''''''+........$-----;&*=----->>>>>>>=$#@#--->-#................+@@@@.......+@......@##+#++++++@++...................++=-->-%@@@;-------------->>>>>>>*@@++.......&==========&.......@===========#.......%=================;;==========*.......$==========;********;==========#......$===========+.......;==========%....,&==========;....@=================*@.............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...,>'''''''''']+..&!'''''''''),...!''''''''''>.........%-----;*;------>>>>>>>=$#@#--->-#..............+.+##@@++.....+#+.....@#$@$+@@@++#+@...................++;-->-%@@@;--------------->>>>>>;#@+++......&==========&.......@===========#......,*=============================*.......$==========%........*==========#......$===========+.......;==========%....,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...,>'''''''''']+..&!'''''''''),..$'''''''''''&........+*----=;*=------>>>>>>>=####--->-#..............+++$#@#++....++#+....+#$$@$+#@@++#+@...................++;-->-%@@@;--------------->>>>>>-$@@++......&==========&.......@===========#.......;=============================*.......$==========$........&==========#......$===========+.......;=========&.....,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...,>'''''''''']+..&!'''''''''),.,>'''''''''')#........@=----=;;=------>>>>>>>=$#@#--->-#.............++++$###+++...++#+....+#$$#%@#@@++$+#.+.................@@=-->-%@@@;--------------->>>>>>>%@@++......&==========&.......@===========#.......;=============================*.......$==========$........&==========#......$===========+.......;========$......,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...,>'''''''''']+..&!'''''''''),..!''''''''''>.........@=----=;=------->>>>>>>=$#@#--->-#...........+.++@+%##$@@+...@+$+....##$$#%@###++$+#++................+@@=-->>%#@@;--------------->>>>>>>&@@@++.....&==========&.......@===========#......+;=============================*.......$==========$........&==========#......$===========+.......;=======@.......,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...,>'''''''''']...&!'''''''''),.%'''''''''''*.........$-----=;=------->>>>>>>=$#@#--->-#..........+++@@@+%##$@@+..+@+$@....#$%%#&#$##@@$@#+@...............++@@=-->>%##@;--------------->>>>>>>;#@@++.....&==========&.......@===========#......+;=============================*.......$==========$........&==========#......$===========+.......;=====;+........,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''>........=''''''''''-......,!''''''''''~,...,>'''''''''!$...&!'''''''''),,>''''''''''!..........&-----===------->>>>>>>=$#@#--->-#.......+.++@@#@@+%##$@@@+.@#+$@...+$%%%#*$$##@@$#$@@+..............+@@@=-->-%##@;---------------->>>>>>-#@@++.....&==========&.......@===========#......+;=============================*.......$==========$........&==========#......$===========+.......;====&+.........,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''''>+........=''''''''''-......,!''''''''''~,...,>'''''''']@,...&!'''''''''),+{''''''''''>,........+*-----=;-------->>>>>>>=$#@#--->-#.....++@++@#@#@@+%##$#@##+@#@$@+.++$&&&$*$$##@@$#$@#@............++@##@=-->-%##@;---------------->>>>>>-#@@++.....&==========&.......@===========#......+;=============================*.......$==========$........&==========#......$===========+.......;===$...........,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''!*..........=''''''''''-......,!''''''''''~,...,>'''''''-+.....&!'''''''''),$!''''''''''#.........+;-----==-------->>>>>>>=$##$--->-#.....+@#++@###@@@%$$$###$@@#@$#@.+@%&&&%*%%####%#$###+...........+@@##@=-->-%###;---------------->>>>>>-#@@+++....&==========&.......@===========#......@==============================*.......$==========$........&==========#......$===========+.......;=;@............,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''!$...........=''''''''''-......,!''''''''''~,...,>''''''*.......&!'''''''''),;''''''''''{..........+;-----==-------->>>>>>>=$##$--->-#.+++.@#$++##@####%$$##$$$@##@$#@++@&&&*%*%%$$##%#$###+..........+@@####=-->-%###;---------------->>>>>>>$#@@++....&==========&.......@===========#......@===========;;;;;;;;;==========*.......$=========&.........&==========#......$===========+......+;*+.............,&==========;....@=================$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''{@............=''''''''''-......,!''''''''''~,...,>'''')$........&!''''''''').>''''''''''*..........@;-----==-------->>>>>>>=$##$--->-#..@@+@##+@#%@#$##&$$$$%$%##$#$#@++$&*&*&*&%$$##&$$#$#@++........@@@$#$#=-->-%###;---------------->>>>>>>$#@@++....&==========&.......@===========#......@===========#+++++++&==========*.......$========#..........&==========#......$===========+......+$+..............,&==========;....@=====%;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''>+............,=''''''''''-......,!''''''''''~,...,>'''~#.........&!''''''''').!'''''''''!#..........#=-----==-------->>>>>>>=$##$--->-#++#@@#$$@##%##&##&%$$$%$%##%#%$@@@$**&*&*&&$$##&$$#$##@@.......+@##$#%#=-->-&###;---------------->>>>>>>$#@@++....&==========&.......@===========#......@===========#.......&==========*.......$======;@...........&==========#......$===========+.......................,&==========;....@===;++;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''';.............,@)''''''''''-......,!''''''''''~,...,>''=+..........&!''''''''')$''''''''''~+..........#------=--------->>>>>>>=$##$--->>#+@###$#%@#$%#$&$$&%%$%&%&$$%$%$$##%****&&&&$$$$%$$#%$##@+......@#$#%$%#=-->-&###;---------------->>>>>>>$#@@++....&==========&.......@===========#......@===========#.......&==========*.......$=====*+............&==========#......$===========+.......................,&==========;....@==;+.+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'!%,.............%!'''''''''''-......,!''''''''''~,...,>'*............&!''''''''')>'''''''''';...........$---------------->>>>>>>=$##$--->-#@#$$#$#%@$%&$$&$$*%%$%&&&$$%$%$%$$&*;*;*&**%%$%%#$#%$$#@@.+...+#$$#%$%#=-->-&$##;---------------->>>>>>>$#@@++....&==========&.......@===========#......@===========#.......&==========*.......$====&+.............&==========#......$===========+.......................,&==========;....@=&+..+;==========$..............#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%)#,.............;'''''''''''''-......,!''''''''''~,...,-&,............&!''''''''')!'''''''''!#...........$---------------->>>>>>>=$##$--->>##$$%$$$&#$%&$$&$%&%%#%*&*%%%%%%%%$**;*;*&*&%%%$%#$$%$$##@@#...+$$$$%$&#=-->-&$##;---------------->>>>>>>$##@+++...&==========&.......@===========#......@===========#.......&==========*.......$===$...............*==========#......$===========+.......................,&==========;....@$....+;==========$..............#===========+......%===========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......@@.............+>''''''''''''''-......,!''''''''''~,....+..............&!''''''''''''''''''''],...........$---------------->>>>>>>=$##$--->>##%%%%$$%#$%%$%&%&&&%$****&%%%%&&%$*;;*;;*;*&&%$%$$$%$%#$@#$+..+$%%$%%&#=-->-&$##;---------------->>>>>>>%##@+++...&==========&.......@===========#......@===========#.......&==========*.......$==#...............*===========#......$===========+.......................,&==========;..........+;==========$..............#===========+.....*============&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.....................#{'''''''''''''''-......,!''''''''''~,...................&!''''''''''''''''''''&,...........$---------------->>>>>>>=$##%--->>##%%&&%%%$$&%%%&%&&&%$**;*&%&%%**%%*;;;;;*;*&*%$%$$$&%%$%$###+.@$%%$&%&#=-->-&$##;---------------->>>>>>>%##@+++...&==========&.......@===========#......@===========#.......&==========*.......$*+..............@;============#......$===========+.......................,&==========;..........+;==========$..............#===========+...+*=============&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&....................%!''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''!.............$---------------->>>>>>>=$#$$--->>##%%&&%%%$%&%%%&%&&&%%;*;**&&&***&&*;;;;;&;*&;&$%$$$&%%$%%#$%##$$&%$%%&#--->-&$##;---------------->>>>>>>%##@@++...&==========&.......@===========#......@===========#.......&==========*.......@+.............,$;=============#......$===========+.......................,&==========;..........+;==========$..............#===========+.,#;==============&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&...................-''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''-,............%---------------->>>>>>>=$#$%--->-#$&%*&&&&%&&&&%&&&&&&&;;=;*;;;;;;;*;;;;;;*;;*;;&&&%%&&&%*&%$&%&*&&&%&&&$--->-&$##;---------------->>>>>>>%##@@++...&==========&.......@===========#......@===========#.......&==========*......................&===============#......$===========+.......................,&==========;..........+;==========$..............#===========+.%================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.................+~'''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''#.............$---------------->>>>>>>=%#$$--->-##$$*&%&&$%%%%%&&&&%&$*;;;*&%&&**&&;;;;;;&;***%$%%$%$%%%&%$#%@+#$%&%%%&$=-->-&$##;---------------->>>>>>>%##@@++...&==========&.......@===========#......@===========#.......&==========*....................+&================#......$===========+.......................,&==========;..........+;==========$..............#===========@&=================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&................#)''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''']+.............$---------------->>>>>>>=%#$$--->>##$$&%%%&$%%%%%&&&&%%$*;;;*%%&%**%&*;;;*;*;**&%$%%#%$%%%&&$#@..@$%&%%%&#=-->-&$##;---------------->>>>>>>$##@@++...&==========&.......@===========#......@===========#.......&==========*...................#;=================#......$===========+.......................,&==========;..........+;==========$..............#===========;==================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&...............*!'''''''''''''''''''''-......,!''''''''''~,...................&!''''''''''''''''''-..............$---------------->>>>>>>=%#$$--->>###$%$%%%#%%%%$&%&%%%$&;*;&%%%%&&%%*;;;*;****%&$%%$%#%%%&&$++..@$$%%%%%#=-->-&$##;---------------->>>>>>>$##@@++...&==========&.......@===========#......@===========#.......&==========*..................$===================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.............,>'''''''''''''''''''''''-......,!''''''''''~,...................&!''''''''''''''''''>+.............#=--------------->>>>>>>=%$$%--->>###@$@%%%#$%$%$%%%%%%#&*&*&%$%%%&$$***;*;****%&$$&#%#$$$%$#+...+$@%$$%%$=-->-&$##;---------------->>>>>>>$##@@++...&==========&.......@===========#......@===========#.......&==========*.................%====================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&............+]''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''')+.............@=--------------->>>>>>>=&$$%--->>##@+$@$$$#$%$%$$%%%%%#&&&*%%$%$%&#%***;****&%$&##&#%#$%##@@....+@@$$$%%$=-->-&$##;--------------->>>>>>>>$##@@++...&==========&.......@===========#......@===========#.......&==========*...............+*=====================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&...........${'''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''$.............+;--------------->>>>>>>=&#$%--->>#@++#@#$@#$$$$$$%%%%%#%%&*$%$%$%&#$&**;***&&%$&#$&#%@#$@@+.....+++$#$%%$=-->-&$##;--------------->>>>>>>>$##@@++...&==========&.......@===========#......@===========#.......&==========*..............@;======================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.........,;!''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''-,............+;--------------->>>>>>>=%#$%--->>#+++@@##@#$###$$%$$$&#%%%*$$$%$$$@#%*&*&*&&&%$%##&#%@#$@+.......++##$$$$=-->-&$##;--------------->>>>>>>>$##@@++...&==========&.......@===========#......@===========#.......&==========*.............#========================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.........>''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''!,............+;--------------->>>>>>>=&$$%--->>#++.@.@@+######$%$$$&#%$$&@#$$$$$+#$&**&*&&%%$%#@%#%@##+........+.@@#$$$=-->-&$##;--------------->>>>>>>-%##@@++...&==========&.......@===========#......@===========#.......&==========*...........+%=========================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......+~'''''''''''''''''''''''''''''-......,!''''''''''~,...................&!''''''''''''''''''''#.............&--------------->>>>>>>=&$$%--->>#...+.+@+#@#@###$#$$%#%##$@##$$$@+#$&**&&&&$%$$#@%#%@#@+..........+@####=-->-&$##;-------------->>>>>>>>=%##@+++...&==========&.......@===========#......@===========#.......&==========*..........+*==========================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!''''''''''''''''''''=,............%--------------->>>>>>>=&$$%--->>#.....++++@@+###$#$#%#$#@#+@#$$#+.+#&&*&&&%$%$$#@%#%+@+...........++@###=-->-&$##;-------------->>>>>>>>*$##@@++...&==========&.......@===========#......@===========#.......&==========*.........@============================#......$===========+.......................,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''''''''''''''!''''''''''-......,!''''''''''~,...................&!''''''''''''''''''''{,............#=-------------->>>>>>>=%$$%--->>#.......+++@+@@###$#%###@@++@#$#+.+#%&*&&&%$%$$#+%@$+@+............++@##--->-&$##;-------------->>>>>>>>*###@+++...&==========&.......@===========#......@===========#.......&==========*........$=============================#......$===========+.................#%....,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''''''''''''!==''''''''''-......,!''''''''''~,...................&!''''''''''''''''''''!#............@=-------------->>>>>>>=%$$&--->>#..........++@+@@@##%#@@@+.+@#$@+..@$&&%%%%#$##@+%@$+@..............+@@#--->-&$##;-------------->>>>>>>>&##@@+++...&==========&.......@===========#......@===========#.......&==========*.......$==============================#......$===========+................%=%....,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''''''''''')%,=''''''''''-......,!''''''''''~,...................&!'''''''''''''''''''''*............+;-------------->>>>>>>=&$$%--->>#............+++@@#@$#@@+..++@#@...+#&&%%%$#$#@@+$+#+@...............+@#--->-&$##;------------->>>>>>>>-%##@@+++...&==========&.......@===========#......@===========#.......&==========*.......$==============================#......$===========+...............*==%....,&==========;..........+;==========$..............#==============================&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''''''']@..=''''''''''-......,!''''''''''~,...................&!'''''''''!'''''''''''>.............&-------------->>>>>>>=&$$%--->>#..............++@#@##+++....@#@....@%&%$%$#$#@@+$+@++................@#=-->-&$$#;------------->>>>>>>>=$##@@++....&==========&.......@===========#......@===========#.......&==========*.......$==================%&==========#......$===========+.............@;===%....,&==========;..........+;==========$..............#==================*;==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''''''-....=''''''''''-......,!''''''''''~,...................&!''''''''')]'''''''''']+............$-------------->>>>>>>=%$$%--->>#..............+++@@##++.....+@+....+%%%$%##$@@#+#+@..................+#=-->-&$$#;------------->>>>>>>>*###@@++....&==========&.......@===========#......@===========#.......&==========*.......$================;#.&==========#......$===========+............#;====%....,&==========;..........+;==========$..............#=================&+*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''''''')*.....=''''''''''-......,!''''''''''~,...................&!''''''''');'''''''''''#............@;------------->>>>>>>=%$$&--->>#...............++@+@@+......+@+....+$%$#$#@#@@#+#++..................+#--->-&$##;------------>>>>>>>>-&###@@++....&==========&.......@===========#......@===========#.......&==========*.......$===============*+..&==========#......$===========+...........&======%....,&==========;..........+;==========$..............#================$..*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''']#......=''''''''''-......,!''''''''''~,...................&!''''''''')@'''''''''''*.............&------------->>>>>>>=%$$&--->>#................+@++@+......+++....+$%##$#@@+@++@++..................+@=-->-&$##;------------->>>>>>>-$###@@++....&==========&.......@===========#......@===========#.......&==========*.......$==============%....&==========#......$===========+.........+*=======%....,&==========;..........+;==========$..............#==============;#...*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%'''''''''']+.......=''''''''''-......,!''''''''''~,...................&!''''''''').)''''''''''~.............$------------->>>>>>>=&$$&--->>#.................+++@.......++......#%####@@+++.+.+...................#=-->>&$$#;------------>>>>>>>>;$##@@+++....&==========&.......@===========#......@===========#.......&==========*.......$============;#.....&==========#......$===========+........@;========%....,&==========;..........+;==========$..............#=============*@....*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''>+.......=''''''''''-......,!''''''''''~,...................&!''''''''').>'''''''''''.............@=------------>>>>>>>=&$$&--->>#..................++@........+......#$#@@@@++++.......................#=-->>&$##;----------->>>>>>>>>&###@@++.....&==========&.......@===========#......@===========#.......&==========*.......$===========*+......&==========#......$===========+.......$;=========%....,&==========;..........+;==========$..............#============%+.....*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),;'''''''''''%.............*------------>>>>>>>=&$$&--->-#...................++........+......@$@+++@+++........................#=-->>&$##;---------->>>>>>>>>-$$##@@++.....&==========&.......@===========#......@===========#.......&==========*.......$==========&........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#===========&.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),%!''''''''''>,............$------------>>>>>>>=%$$%--->-#...................++...............+#@+++@+.+........................#=-->-&###;---------->>>>>>>>>*#$##@@++.....&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#=========;$,.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),@)''''''''''!.............+=----------->>>>>>>=&#$%--->-#....................................+@++..++..........................#=-->-&###;--------->>>>>>>>>-%####@+++.....&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#========;@.........*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),,]'''''''''''%.............%------------>>>>>>=&#$%--->-#.....................................++...............................#=-->-&###;--------->>>>>>>>>;$###@@++......&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#=======*...........*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),,='''''''''''-,............@=---------->>>>>>>=%#$%--->-#......................................................................@=-->-&###;--------->>>>>>>>-%#$##@@++......&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#======%............*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),.$'''''''''''~+.............%----------->>>>>>=%##$--->-#......................................................................@=-->-&###;-------->>>>>>>>>;$$##@@+++......&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#=====$.............*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),.,!'''''''''')#.............+;---------->>>>>>=%##$--->-#......................................................................@=-->-&##@;-------->>>>>>>>-%####@@++.......&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#====@..............*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),.,>'''''''''''%..............$---------->>>>>>=%##$--->-#......................................................................@=-->-&##@;------->>>>>>>>>*####@@@++.......&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#==*+...............*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),..&'''''''''''-..............+*>-->----->>>>>>=$##$--->-#......................................................................@=-->-&##@;------->>>>>>>>=%$$##@@++........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............#=%.................*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),..+'''''''''''{...............#=>>>>>-->>>>>>>=$##$--->-#......................................................................@=-->-%##@;------>>>>>>>>-&$$###@+++........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..............##..................*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),...]'''''''''''@...............%->>>>>>>>>>>>>=$##$--->-#......................................................................@=-->-%##@;----->>>>>>>>>*$$###@@+++........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========+.......;==========%....,&==========;..........+;==========$..................................*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),...=''''''''''';,...............%->>>>>>>>>>>>=$###--->-#......................................................................+=-->-%##@;----->>>>>>>>;$$###@@+++.........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========#+@@@@@@;==========%....,&==========;..........+;==========%+@@@@@@@@+...............@+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),...%'''''''''''{,...............+&>>>>>>>>>>>>=$###--->-#......................................................................+=-->-%##@;---->>>>>>>>=$#####@@++..........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$===========;;;;;;;;===========%....,&==========;..........+;===========;;;;;;;;;;..............$=@.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),...#)'''''''''''+..............+.@*>>>>>>>>>>>=$###-->>-#......................................................................+=-->-%@@@;---->>>>>>>-&#$###@@+++..........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......$==============================%....,&==========;..........+;====================;.............$==+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),...+]'''''''''''*,..............+.@&->>>>>>>>>=$###-->>-#......................................................................+=->>-%#@@;--->>>>>>>=%#$###@@@++...........&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......#==============================$....,&==========;...........;====================;...........+%-==+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!#.......$'''''''''''&.......%''''''''''~+.......=''''''''''-......,!''''''''''~,...................&!'''''''''),...,>'''''''''''>,...............+++%=>>>>>>>>=$###-->>-@......................................................................+=>>>-%##@;-->>>>>>-*$#$####@@++............&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......#==============================$....,&==========;...........;====================;..........@*====+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''!=*******='''''''''''&.......%''''''''''>.,,,,,,,=''''''''''-......,!''''''''''~,...................&!'''''''''),....&'''''''''''{+................+++$=>>>>>>>=%#@#->>-%+.......................................................................$=>>-%@@@;-->>>>>-&$#$####@@+++............&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......#==============================$....,&==========;...........;====================;.........#;=====+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''&.......%'''''''''')--------]''''''''''-......,!''''''''''~,...................&!'''''''''),....+'''''''''''!%.................+++#%=>>>>>=$#@$-=%#@........................................................................+#%=-%@@@;->>>>-*%$#$####@@@++.............&==========&.......@===========#......@===========#.......&==========*.......$==========$........&==========#......+==============================@....,&==========;..........,*====================;........$=======+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''&.......%''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),....,{''''''''''';..................+++@#&;===;###@$@+@@........................................................................+++#$#@@@*==;*%########@@@+++..............&==========&.......+===========#......@===========#.......&==========*.......$==========$........&==========#.......=============================-+....,&==========;..........,&====================;......+&========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''&.......%''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),....,='''''''''''>+..................+++@@#######@@+++@+........................................................................+++++@@@@@@+@@@@######@@@+++...............&==========;%$$$$$$%===========#......@===========#.......&==========*.......$==========%@@@@@@@@*==========#......,;============================;.....,&==========;...........$====================;.....@;=========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''%.......%''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),.....#'''''''''''!+...................+++@@@@###@@@+++++.........................................................................+++++@@@+++++@@@###@@@@++++...............&==============================#......@===========#.......&==========*.......$==============================#.......%============================&.....,&==========;...........@====================;....@===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''$.......$''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),......!'''''''''''$....................+++@@@@@@@@@++++............................................................................+++++++++++@@@@@@@@@+++.................&==============================#......@===========#.......&==========*.......$==============================#.......@-===========================$......#$$$$$$$$$$$............====================;....#===========+.......*==========&......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''''#.......#''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),......>'''''''''''>,....................++++@@@@@@+++...............................................................................+++++++++++@@@@@@++++..................%==============================#......@===========#.......&==========*.......#==============================#........;==========================;+..............................%===================;....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''!#.......@''''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),......&'''''''''''!,.....................+++++@@++++.................................................................................++++++++++++@+++++....................%==============================#......@===========#.......&==========*.......#==============================#........$==========================&...............................+===================;....#===========+.......*==========&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''{@.......+!'''''''''''''''''''''''''''''-......,!''''''''''~,...................&!'''''''''),......#!'''''''''''#.......................+++++++++...................................................................................+.....+++++++++.....................%==============================#......@===========#.......&==========*.......#==============================#........+;=========================#................................&==================;....#===========*&&&&&&*;==========&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''~+.......+{''''''''''''''''''!''''''''''-......,!''''''''''~,...................&!'''''''''),......@{'''''''''''-,........................+++++.............................................................................................+++++.......................#==============================#......@===========#.......&==========*.......@==============================#.........$========================%.................................+;=================;....#==============================&......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''''-........+~'''''''''''''''''!~''''''''''-......,!''''''''''~,...................&!'''''''''),.......>'''''''''''{.......................................................................................................................................................@-=============================#......@===========#,......&==========*.......@==============================#..........%-=====================&...................................@=================;....@==============================%......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''''!&.........-'''''''''''''''''>~''''''''''-......,!''''''''''~,...................&!'''''''''),.......;'''''''''''!#......................................................................................................................................................+==================;===========#......@===========*&******;==========*.......@;==================;==========#...........%====================&.....................................@;===============;....@==============================$......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''')..........&'''''''''''''''''&]''''''''''-......,!''''''''''~,...................&!'''''''''),.......$!'''''''''''*.......................................................................................................................................................;=================&===========#......@==============================*.......+*=================;*==========#............@%**;;;;;;;;;;;;**%#........................................$&*;;;;;;;;;;;;;....@==============================%......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''''''';,.........@)'''''''''''''''!+]''''''''''-......,!''''''''''~,...................&!'''''''''),........)'''''''''''>.......................................................................................................................................................&=================$===========#......+;=============================*........&=================%*==========#...............+++++++++++++++............................................++++++++++++++....+==============================#......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''']...........,>'''''''''''''''-.]''''''''''-......,!''''''''''~,...................&!'''''''''),.......,>''''''''''']+......................................................................................................................................................$================;#===========#......+;=============================*........%=================+;==========#.............................................................................................=============================-@......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''''!@.............!''''''''''''')@,]''''''''''-......,!''''''''''~,...................&!'''''''''),.......,&'''''''''''!#......................................................................................................................................................@;===============&@===========#......+;=============================*........@================*.;==========#............................................................................................,;============================-+......................................................................................",
|
||||
"..............,='''''''''''''''''''''''''')%..............#)'''''''''''!&,,]''''''''''-......,!''''''''''~,...................&!'''''''''),........+''''''''''''#.......................................................................................................................................................&===============$@===========#......+;=============================*.........*===============#.;==========#............................................................................................,&============================;.......................................................................................",
|
||||
"..............,=''''''''''''''''''''''''!>#................@-!'''''''']%,.,{''''''''''-......,!''''''''''~,...................&''''''''''!,........,{'''''''''''#.......................................................................................................................................................+==============;+@===========#.......;=============================*.........+==============*+.;==========#.............................................................................................#============================&.......................................................................................",
|
||||
"...............$;********************;*$+....................+$****;*#+....&;********;$......,**********;%....................@*********;*..........$;**********+........................................................................................................................................................#=============#,@===========#.......;=============================*..........$============;@..;==========#..............................................................................................============================#.......................................................................................",
|
||||
"..........................................................................................................................................................................................................................................................................................................................@*=========;#..@-==========#......,*==================;==========*...........#*=========*@...;==========#..............................................................................................&==========================;+.......................................................................................",
|
||||
"............................................................................................................................................................................................................................................................................................................................@%%***&$#+...+***********@.......$=================;*==========*.............+$$****$@.....&**********@..............................................................................................@==========================&........................................................................................",
|
||||
"...............................................................................................................................................................................................................................................................................................................................,,,........,,,,,,,,,,,........@=================*&==========*.................,,.........,,,,,,,,,,................................................................................................&========================;+........................................................................................",
|
||||
"..............................................................................................................................................................................................................................................................................................................................................................;================%%==========*......................................................................................................................................+;=======================#.........................................................................................",
|
||||
"..............................................................................................................................................................................................................................................................................................................................................................%================+&==========*.......................................................................................................................................+;=====================#..........................................................................................",
|
||||
"..............................................................................................................................................................................................................................................................................................................................................................+===============&,&==========*.........................................................................................................................................&==================;@...........................................................................................",
|
||||
"...............................................................................................................................................................................................................................................................................................................................................................$=============;+.&==========*..........................................................................................................................................+$$&&&&&&&&&&&&%$@.............................................................................................",
|
||||
"................................................................................................................................................................................................................................................................................................................................................................%-===========@..&==========*.........................................................................................................................................................................................................................................................",
|
||||
".................................................................................................................................................................................................................................................................................................................................................................@;========;@...&==========;.........................................................................................................................................................................................................................................................",
|
||||
"...................................................................................................................................................................................................................................................................................................................................................................+++@@@@+.....@###########.........................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................,,,,,,,,,,,,,,",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................$>)')>$................",
|
||||
"............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................+-)*@+@*)-+..............",
|
||||
"............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................-]+.....+~-..............",
|
||||
"...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................$)+.'''{%.+)$.............",
|
||||
"....................................................................................................................................................................................................................................................................................................................................''.....................................''.............''...........................''................................................................................''.........''.......................................................''......................''....................~*..'.+%)..*>.............",
|
||||
"....................................................................................................................................................................................................................................................................................................''''!)~*+.......................''..........+!!+.......................''.............''...''......................''................................................................................''.........''............................+!!+.......................''......................''...''...............)@..'.+%)..@).............",
|
||||
"....................................................................................................................................................................................................................................................................................................'''''''')$......................''..........&''*.......................''..................''........................................................................................................''.........''............................&''*.......................''...........................''...............'+..'''!%..+'.............",
|
||||
"....................................................................................................................................................................................................................................................................................................''..+@*{'!@.....................''..........]''].......................''..................''........................................................................................................''.........''............................]''].......................''...........................''...............!@..'+&'$..@).............",
|
||||
"....................................................................................................................................................................................................................................................................................................''.....+{'=...%~!!]%....''+-!'..''...$!';..#']]'#.....''....''...@~!!-+''...%~!!]%....''..''''''#'!@....+!'#.......''..+={!!]%........''+-!!~@...+;{!!{;+..+''+..{'{..+''+...&]!')=+...''+-!'..@~!!-+''.........''+-!!~@.#'!@....+!'#........#']]'#.....''....''...@~!!-+''...%~!!]%....+;{!!]%..''..''''''#'!@....+!'#~*..'..;{+.*>.............",
|
||||
"....................................................................................................................................................................................................................................................................................................''......&']...''''''$...''~'''..''..%!'*...-'*&'-.....''....''..@)''''~''...''''''$...''..''''''.>';....;'~........''..>''''''........''~'''')@.+]'''''']+..]'%.+'''+.$']...>''''''{+..''~'''.@)''''~''.........''~'''')@.>';....;'~.........-'*&'-.....''....''..@)''''~''...''''''$..+~''''''..''..''''''.>';....;'~.$)+.'..+{>+)$.............",
|
||||
"....................................................................................................................................................................................................................................................................................................''......@'!...~$+#~'>...'')%+...''.&''&...+!!++!!+....''....''..=')$+%)''...~$+#~'>...''...''....$')+..+)'$........''..!';++$~........'')$+%)'=.;'!*@@*!';..=';.%')'%.;'=..*')&@+${'=..'')%+..=')$+%)''.........'')$+%)'=.$')+..+)'$........+!!++!!+....''....''..=')$+%)''...~$+#~'>..;'!*@+$~..''...''....$')+..+)'$..-]+.....+~-..............",
|
||||
"....................................................................................................................................................................................................................................................................................................''......+''.......@')...''&.....''&'!%....*'>..-'*....''....''..{'%...&''.......@')...''...''.....~'*..&'].........''..)'~=$..........''%...&'{.{'*....*'{..%'~.-'&'=.>'%..]'$....#')..''&....{'%...&''.........''%...&'{..~'*..&'].........*'>..-'*....''....''..{'%...&''.......@')..{'*.......''...''.....~'*..&']...+-)*@+@*)-+..............",
|
||||
"....................................................................................................................................................................................................................................................................................................''......@'!..+;{!''''...''+.....'''!$.....]'%..#']....''....''..''+...+''..+;{!''''...''...''.....$'{..]'%.........''..%!''')#........''+...+''.''@....@'!..+').{).)].)'+..!'''''''''..''+....''+...+''.........''+...+''..$'{..]'%.........]'%..#']....''....''..''+...+''..+;{!''''..!'@.......''...''.....$'{..]'%.....$>)')>$................",
|
||||
"....................................................................................................................................................................................................................................................................................................''......&']..-'''''''...''......''''&....#''''''''#...''...+''..''+...+''..-'''''''...''...''......]'%$'{..........''...+%-)']........''+...+''.''@....@'!...{'#'>.>'@'{...!'''''''''..''.....''+...+''.........''+...+''...]'%$'{.........#''''''''#...''...+''..''+...+''..-'''''''..!'@.......''...''......]'%$'{.............................",
|
||||
"....................................................................................................................................................................................................................................................................................................''.....+{'=..!'*@+@''...''......''*''&...-''''''''-...!'@..$''..{'%...&''..!'*@+@''...''...''+.....%'~>'*..........''......@'!........''%...&'{.{'*....*'{...-'-'&.&'='-...{'$.........''.....{'%...&''.........''%...&'{...%'~>'*.........-''''''''-...!'@..$''..{'%...&''..!'*@+@''..{'*.......''...''+.....%'~>'*.............................",
|
||||
"....................................................................................................................................................................................................................................................................................................''..+@*{'!@..!'&+#~''...''......''.;''*.+!'@....@'!+..]'-+#{''..=')$+%)''..!'&+#~''...''...!'%......{'')+..........''..~%++*''........'')$+%)'=.;'!*@@*!';...&'''@.@'!'&...*')*@++#*]..''.....=')$+%)''.........'')$+%)'=....{'')+........+!'@....@'!+..]'-+#{''..=')$+%)''..!'&+#~''..;'!*@+$~..''...!'%......{'')+.............................",
|
||||
"....................................................................................................................................................................................................................................................................................................'''''''')$...>''''~''...''......''..;'';*'~......~'*..*''''~''..@)''''~''..>''''~''...''...~''''....&'';...........''..''''''>........''~'''')@.+]'''''']+...@''{...{''@....-''''''''..''.....@)''''~''.........''~'''')@....&'';.........*'~......~'*..*''''~''..@)''''~''..>''''~''..+]''''''..''...~''''....&'';..............................",
|
||||
"....................................................................................................................................................................................................................................................................................................''''!)~*+....@>!!>+''...''......''...;''''&......&'{...=!!>+''...@~!!-+''..@>!!>+''...''...@~!''....#'!+...........''..%~!!{;+........''+>!!~@...+;{'!{;+.....{'=...='{......%~)'!{-#..''......@~!!-+''.........''+>!!~@.....#'!+.........{'&......&'{...=!!>+''...@~!!-+''..@>!!>+''...+;{'!]%..''...@~!''....#'!+..............................",
|
||||
"........................................................................................................................................................................................................................................................................................................................................................................................................*'=...............................''.....................................................................................*'=...............................................................................*'=...............................",
|
||||
".......................................................................................................................................................................................................................................................................................................................................................................................................+]'#...............................''....................................................................................+]'#..............................................................................+]'#...............................",
|
||||
"......................................................................................................................................................................................................................................................................................................................................................................................................'''~................................''...................................................................................'''~..............................................................................'''~................................",
|
||||
"......................................................................................................................................................................................................................................................................................................................................................................................................''~@................................''...................................................................................''~@..............................................................................''~@................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
".....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................",
|
||||
"....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................."};
|
@ -230,15 +230,16 @@ void AColor::Bevel(wxDC & dc, bool up, const wxRect & r)
|
||||
|
||||
void AColor::Bevel2(wxDC & dc, bool up, const wxRect & r)
|
||||
{
|
||||
wxBitmap & Bmp = theTheme.Bitmap( up ? bmpUpButtonLarge : bmpDownButtonLarge );
|
||||
wxBitmap & Bmp = theTheme.Bitmap( up ? bmpUpButtonExpand : bmpDownButtonExpand );
|
||||
wxMemoryDC memDC;
|
||||
memDC.SelectObject(Bmp);
|
||||
int h = wxMin( r.height, Bmp.GetHeight() );
|
||||
|
||||
|
||||
dc.Blit( r.x,r.y,r.width/2, h, &memDC, 0, 0 );
|
||||
dc.Blit( r.x+r.width/2,r.y,r.width/2, h, &memDC,
|
||||
Bmp.GetWidth() - r.width/2, 0 );
|
||||
int r2 = r.width - r.width/2;
|
||||
dc.Blit( r.x+r.width/2,r.y,r2, h, &memDC,
|
||||
Bmp.GetWidth() - r2, 0 );
|
||||
}
|
||||
|
||||
wxColour AColor::Blend( const wxColour & c1, const wxColour & c2 )
|
||||
@ -334,7 +335,7 @@ void AColor::Dark(wxDC * dc, bool selected)
|
||||
void AColor::TrackPanelBackground(wxDC * dc, bool selected)
|
||||
{
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
UseThemeColour( dc, selected ? clrDarkSelected : clrDark);
|
||||
UseThemeColour( dc, selected ? clrMediumSelected : clrMedium);
|
||||
#else
|
||||
Dark( dc, selected );
|
||||
#endif
|
||||
@ -425,11 +426,17 @@ void AColor::Init()
|
||||
if (inited)
|
||||
return;
|
||||
|
||||
wxColour light =
|
||||
wxSystemSettings::GetColour(wxSYS_COLOUR_3DHIGHLIGHT);
|
||||
wxColour med = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
|
||||
wxColour dark =
|
||||
wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW);
|
||||
wxColour light = theTheme.Colour( clrLight );
|
||||
// wxSystemSettings::GetColour(wxSYS_COLOUR_3DHIGHLIGHT);
|
||||
wxColour med = theTheme.Colour( clrMedium );
|
||||
// wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
|
||||
wxColour dark = theTheme.Colour( clrDark );
|
||||
// wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW);
|
||||
|
||||
wxColour lightSelected = theTheme.Colour( clrLightSelected );
|
||||
wxColour medSelected = theTheme.Colour( clrMediumSelected );
|
||||
wxColour darkSelected = theTheme.Colour( clrDarkSelected );
|
||||
|
||||
|
||||
clippingPen.SetColour(0xCC, 0x11, 0x00);
|
||||
|
||||
@ -489,12 +496,12 @@ void AColor::Init()
|
||||
darkPen[0].SetColour(dark);
|
||||
|
||||
// selected
|
||||
lightBrush[1].SetColour(204, 204, 255);
|
||||
mediumBrush[1].SetColour(200, 200, 214);
|
||||
darkBrush[1].SetColour(148, 148, 170);
|
||||
lightPen[1].SetColour(204, 204, 255);
|
||||
mediumPen[1].SetColour(200, 200, 214);
|
||||
darkPen[1].SetColour(0, 0, 0);
|
||||
lightBrush[1].SetColour(lightSelected);
|
||||
mediumBrush[1].SetColour(medSelected);
|
||||
darkBrush[1].SetColour(darkSelected);
|
||||
lightPen[1].SetColour(lightSelected);
|
||||
mediumPen[1].SetColour(medSelected);
|
||||
darkPen[1].SetColour(darkSelected);
|
||||
|
||||
#else
|
||||
|
||||
|
@ -44,7 +44,12 @@ hold information about one contributor to Audacity.
|
||||
#include "Theme.h"
|
||||
#include "AllThemeResources.h"
|
||||
|
||||
// DA: Logo for About box.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
#include "../images/DarkAudacityLogoWithName.xpm"
|
||||
#else
|
||||
#include "../images/AudacityLogoWithName.xpm"
|
||||
#endif
|
||||
#include "RevisionIdent.h"
|
||||
|
||||
// RevisionIdent.h may contain #defines like these ones:
|
||||
@ -300,6 +305,7 @@ AboutDialog::AboutDialog(wxWindow * parent)
|
||||
|
||||
SetName(GetTitle());
|
||||
this->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
|
||||
//this->SetBackgroundColour(theTheme.Colour( clrMedium ));
|
||||
icon = NULL;
|
||||
ShuttleGui S( this, eIsCreating );
|
||||
S.StartNotebook();
|
||||
@ -323,9 +329,17 @@ void AboutDialog::PopulateAudacityPage( ShuttleGui & S )
|
||||
{
|
||||
CreateCreditsList();
|
||||
|
||||
wxString par1Str = _(
|
||||
wxString par1Str =
|
||||
// DA: Says that it is a customised version.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
wxT(
|
||||
"Audacity, which this is a customised version of, is a free program written by a worldwide team of [[http://www.audacityteam.org/about/credits|volunteers]]. \
|
||||
Audacity is [[http://www.audacityteam.org/download|available]] for Windows, Mac, and GNU/Linux (and other Unix-like systems).");
|
||||
#else
|
||||
_(
|
||||
"Audacity is a free program written by a worldwide team of [[http://www.audacityteam.org/about/credits|volunteers]]. \
|
||||
Audacity is [[http://www.audacityteam.org/download|available]] for Windows, Mac, and GNU/Linux (and other Unix-like systems).");
|
||||
#endif
|
||||
|
||||
// This trick here means that the English language version won't mention using
|
||||
// English, whereas all translated versions will.
|
||||
@ -351,18 +365,35 @@ visit our [[http://forum.audacityteam.org/|forum]].");
|
||||
{
|
||||
translatorCredits = _("translator_credits") + wxT("<br>");
|
||||
}
|
||||
wxString localeStr = wxLocale::GetSystemEncodingName();
|
||||
|
||||
wxString creditStr = FormatHtmlText(
|
||||
wxString( wxT("<center>")) +
|
||||
wxT("<h3>Audacity ") + wxString(AUDACITY_VERSION_STRING) + wxT("</center></h3>") +
|
||||
_("Free, open source, cross-platform software for recording and editing sounds.") +
|
||||
wxT(" [[http://www.audacityteam.org/|http://www.audacityteam.org/]]") +
|
||||
wxT("<p><br>") + par1Str +
|
||||
wxT("<p>") + par2Str +
|
||||
wxString( wxT("<center>") ) +
|
||||
// DA: Description and provenance in About box
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
#undef _
|
||||
#define _(s) wxGetTranslation((s))
|
||||
wxT("<h3>DarkAudacity ") + wxString(AUDACITY_VERSION_STRING) + wxT("</center></h3>") +
|
||||
wxT("Customised version of the Audacity free, open source, cross-platform software " ) +
|
||||
wxT("for recording and editing sounds.") +
|
||||
wxT("<p><br> <b>Audacity<sup>®</sup></b> software is copyright © 1999-2017 Audacity Team.<br>") +
|
||||
wxT(" The name <b>Audacity</b> is a registered trademark of Dominic Mazzoni.<br><br>") +
|
||||
|
||||
#else
|
||||
_("<h3>Audacity ") + wxString(AUDACITY_VERSION_STRING) + wxT("</center></h3>") +
|
||||
_("Audacity the free, open source, cross-platform software for recording and editing sounds.") +
|
||||
#endif
|
||||
|
||||
//wxT("<p><br>") + par1Str +
|
||||
//wxT("<p>") + par2Str +
|
||||
wxT("<h3>") + _("Credits") + wxT("</h3>") + wxT("<p>") +
|
||||
|
||||
wxT("<p><b>") + wxString::Format(_("Audacity Team Members")) + wxT("</b><br><br>") +
|
||||
// DA: Customisation credit
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
wxT("<p><b>") + wxString::Format(_("DarkAudacity Customisation")) + wxT("</b><br>") +
|
||||
wxT("James Crook, art, coding & design<br>") +
|
||||
#endif
|
||||
|
||||
wxT("<p><b>") + wxString::Format(_("Audacity Team Members")) + wxT("</b><br>") +
|
||||
GetCreditsByRole(roleTeamMember) +
|
||||
|
||||
wxT("<p><b> ") + _("Emeritus:") + wxT("</b><br>") +
|
||||
@ -373,30 +404,33 @@ visit our [[http://forum.audacityteam.org/|forum]].");
|
||||
GetCreditsByRole(roleContributor) +
|
||||
|
||||
wxT("<p><b>") + _("Translators") + wxT("</b><br>") +
|
||||
translatorCredits +
|
||||
translatorCredits +
|
||||
GetCreditsByRole(roleTranslators) +
|
||||
|
||||
wxT("<p><b>") + _("Libraries") + wxT("</b><br>") +
|
||||
wxT("Audacity includes code from the following projects:") + wxT("<br><br>") +
|
||||
_("Audacity includes code from the following projects:") + wxT("<br><br>") +
|
||||
GetCreditsByRole(roleLibrary) +
|
||||
|
||||
wxT("<p><b>") + _("Special thanks:") + wxT("</b><br>") +
|
||||
GetCreditsByRole(roleThanks) +
|
||||
|
||||
wxT("<p><br>") + _("<b>Audacity<sup>®</sup></b> software is copyright")+
|
||||
wxT("© 1999-2017 Audacity Team.<br>") +
|
||||
_("The name <b>Audacity<sup>®</sup></b> is a registered trademark of Dominic Mazzoni.") +
|
||||
wxT("<p><br>")+_("Audacity website: [[http://www.audacityteam.org/|http://www.audacityteam.org/]]") +
|
||||
wxT("</center>"));
|
||||
wxT("<p><br>Audacity website: [[http://www.audacityteam.org/|http://www.audacityteam.org/]]") +
|
||||
|
||||
// DA: Link for DA url too
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
wxT("<br>DarkAudacity website: [[http://www.darkaudacity.com/|http://www.darkaudacity.com/]]") +
|
||||
#else
|
||||
_("<p><br> <b>Audacity<sup>®</sup></b> software is copyright © 1999-2017 Audacity Team.<br>") +
|
||||
_(" The name <b>Audacity</b> is a registered trademark of Dominic Mazzoni.<br><br>") +
|
||||
#endif
|
||||
|
||||
this->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
|
||||
wxT("</center>")
|
||||
);
|
||||
|
||||
|
||||
// New way to add to About box....
|
||||
S.StartNotebookPage( wxT("Audacity") );
|
||||
auto pPage = S.StartNotebookPage( _("Audacity") );
|
||||
//pPage->SetBackgroundColour(wxColour(0xAB, 0xAB,0xAB ));
|
||||
pPage->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
|
||||
S.StartVerticalLay(1);
|
||||
|
||||
{
|
||||
//v For now, change to AudacityLogoWithName via old-fashioned way, not Theme.
|
||||
wxBitmap logo(AudacityLogoWithName_xpm); //v
|
||||
@ -552,6 +586,12 @@ void AboutDialog::PopulateInformationPage( ShuttleGui & S )
|
||||
informationStr += _("Features");
|
||||
informationStr += wxT("</h3>\n<table>"); // start table of features
|
||||
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
AddBuildinfoRow(&informationStr, wxT("Theme"), _("Dark Theme Extras"), enabled);
|
||||
#else
|
||||
AddBuildinfoRow(&informationStr, wxT("Theme"), _("Dark Theme Extras"), disabled);
|
||||
#endif
|
||||
|
||||
# if USE_NYQUIST
|
||||
AddBuildinfoRow(&informationStr, wxT("Nyquist"), _("Plug-in support"),
|
||||
enabled);
|
||||
|
@ -67,54 +67,11 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_IMAGE( bmpCutPreviewDisabled, wxImage( 16, 16 ), wxT("CutPreviewDisabled"));
|
||||
DEFINE_IMAGE( bmpAppendRecord, wxImage( 16, 16 ), wxT("AppendRecord"));
|
||||
DEFINE_IMAGE( bmpAppendRecordDisabled, wxImage( 16, 16 ), wxT("AppendRecordDisabled"));
|
||||
DEFINE_IMAGE( bmpScrubDisabled, wxImage( 18, 16 ), wxT("ScrubDisabled"));
|
||||
DEFINE_IMAGE( bmpScrub, wxImage( 18, 16 ), wxT("Scrub"));
|
||||
DEFINE_IMAGE( bmpSeekDisabled, wxImage( 26, 16 ), wxT("SeekDisabled"));
|
||||
DEFINE_IMAGE( bmpScrubDisabled, wxImage( 18, 16 ), wxT("ScrubDisabled"));
|
||||
DEFINE_IMAGE( bmpSeek, wxImage( 26, 16 ), wxT("Seek"));
|
||||
DEFINE_IMAGE( bmpSeekDisabled, wxImage( 26, 16 ), wxT("SeekDisabled"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNewLine );
|
||||
DEFINE_IMAGE( bmpUpButtonLarge, wxImage( 48, 48 ), wxT("UpButtonLarge"));
|
||||
DEFINE_IMAGE( bmpDownButtonLarge, wxImage( 48, 48 ), wxT("DownButtonLarge"));
|
||||
DEFINE_IMAGE( bmpHiliteButtonLarge, wxImage( 48, 48 ), wxT("HiliteButtonLarge"));
|
||||
DEFINE_IMAGE( bmpUpButtonSmall, wxImage( 27, 27 ), wxT("UpButtonSmall"));
|
||||
DEFINE_IMAGE( bmpDownButtonSmall, wxImage( 27, 27 ), wxT("DownButtonSmall"));
|
||||
DEFINE_IMAGE( bmpHiliteButtonSmall, wxImage( 27, 27 ), wxT("HiliteButtonSmall"));
|
||||
DEFINE_IMAGE( bmpVolumeSlider, wxImage( 100, 28 ), wxT("VolumeSlider"));
|
||||
DEFINE_IMAGE( bmpVolumeSliderThumb, wxImage( 10, 28 ), wxT("VolumeSliderThumb"));
|
||||
DEFINE_IMAGE( bmpSliderThumb, wxImage( 11, 14 ), wxT("SliderThumb"));
|
||||
DEFINE_IMAGE( bmpToggleScrubRuler, wxImage( 20, 20 ), wxT("ToggleScrubBar"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNone );
|
||||
DEFINE_IMAGE( bmpMacUpButton, wxImage( 36, 36 ), wxT("MacUpButton"));
|
||||
DEFINE_IMAGE( bmpMacDownButton, wxImage( 36, 36 ), wxT("MacDownButton"));
|
||||
DEFINE_IMAGE( bmpMacHiliteButton, wxImage( 36, 36 ), wxT("MacHiliteButton"));
|
||||
DEFINE_IMAGE( bmpMacUpButtonSmall, wxImage( 27, 27 ), wxT("MacUpButtonSmall"));
|
||||
DEFINE_IMAGE( bmpMacDownButtonSmall, wxImage( 27, 27 ), wxT("MacDownButtonSmall"));
|
||||
DEFINE_IMAGE( bmpMacHiliteButtonSmall, wxImage( 27, 27 ), wxT("MacHiliteButtonSmall"));
|
||||
DEFINE_IMAGE( bmpMacSlider, wxImage( 100, 28 ), wxT("MacSlider"));
|
||||
DEFINE_IMAGE( bmpMacSliderThumb, wxImage( 17, 28 ), wxT("MacSliderThumb"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagInternal );
|
||||
DEFINE_IMAGE( bmpRecoloredUpLarge, wxImage( 48, 48 ), wxT("RecoloredUpLarge"));
|
||||
DEFINE_IMAGE( bmpRecoloredDownLarge, wxImage( 48, 48 ), wxT("RecoloredDownLarge"));
|
||||
DEFINE_IMAGE( bmpRecoloredHiliteLarge, wxImage( 48, 48 ), wxT("RecoloredHiliteLarge"));
|
||||
DEFINE_IMAGE( bmpRecoloredUpSmall, wxImage( 27, 27 ), wxT("RecoloredUpSmall"));
|
||||
DEFINE_IMAGE( bmpRecoloredDownSmall, wxImage( 27, 27 ), wxT("RecoloredDownSmall"));
|
||||
DEFINE_IMAGE( bmpRecoloredHiliteSmall, wxImage( 27, 27 ), wxT("RecoloredHiliteSmall"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagCursor );
|
||||
DEFINE_IMAGE( bmpIBeamCursor, wxImage( 32, 32 ), wxT("IBeamCursor"));
|
||||
DEFINE_IMAGE( bmpDrawCursor, wxImage( 32, 32 ), wxT("DrawCursor"));
|
||||
DEFINE_IMAGE( bmpEnvCursor, wxImage( 32, 32 ), wxT("EnvCursor"));
|
||||
DEFINE_IMAGE( bmpTimeCursor, wxImage( 32, 32 ), wxT("TimeCursor"));
|
||||
DEFINE_IMAGE( bmpZoomInCursor, wxImage( 32, 32 ), wxT("ZoomInCursor"));
|
||||
DEFINE_IMAGE( bmpZoomOutCursor, wxImage( 32, 32 ), wxT("ZoomOutCursor"));
|
||||
DEFINE_IMAGE( bmpLabelCursorLeft, wxImage( 32, 32 ), wxT("LabelCursorLeft"));
|
||||
DEFINE_IMAGE( bmpLabelCursorRight, wxImage( 32, 32 ), wxT("LabelCursorRight"));
|
||||
DEFINE_IMAGE( bmpDisabledCursor, wxImage( 32, 32 ), wxT("DisabledCursor"));
|
||||
DEFINE_IMAGE( bmpBottomFrequencyCursor, wxImage( 32, 32 ), wxT("BottomFrequencyCursor"));
|
||||
DEFINE_IMAGE( bmpTopFrequencyCursor, wxImage( 32, 32 ), wxT("TopFrequencyCursor"));
|
||||
DEFINE_IMAGE( bmpBandWidthCursor, wxImage(32, 32), wxT("BandWidthCursor"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNone );
|
||||
DEFINE_IMAGE( bmpIBeam, wxImage( 27, 27 ), wxT("IBeam"));
|
||||
@ -157,10 +114,6 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_IMAGE( bmpRedo, wxImage( 26, 24 ), wxT("Redo"));
|
||||
DEFINE_IMAGE( bmpRedoDisabled, wxImage( 26, 24 ), wxT("RedoDisabled"));
|
||||
|
||||
DEFINE_IMAGE( bmpSyncLockTracksDown, wxImage( 20, 20 ), wxT("SyncLockTracksDown"));
|
||||
DEFINE_IMAGE( bmpSyncLockTracksUp, wxImage( 20, 20 ), wxT("SyncLockTracksUp"));
|
||||
DEFINE_IMAGE( bmpSyncLockTracksDisabled, wxImage( 20, 20 ), wxT("SyncLockTracksDisabled"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagPaired | resFlagNewLine );
|
||||
DEFINE_IMAGE( bmpTnStartOn, wxImage( 27, 27 ), wxT("TnStartOn"));
|
||||
DEFINE_IMAGE( bmpTnStartOnDisabled, wxImage( 27, 27 ), wxT("TnStartOnDisabled"));
|
||||
@ -212,6 +165,79 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_IMAGE( bmpDockOverShort, wxImage( 15, 27 ), wxT("DockOverShort"));
|
||||
DEFINE_IMAGE( bmpDockUp, wxImage( 15, 55 ), wxT("DockUp"));
|
||||
DEFINE_IMAGE( bmpDockUpShort, wxImage( 15, 27 ), wxT("DockUpShort"));
|
||||
DEFINE_IMAGE( bmpPinnedPlayRecordHead, wxImage( 27, 27 ), wxT("PinnedPlayRecordHead"));
|
||||
DEFINE_IMAGE( bmpUnpinnedPlayRecordHead, wxImage( 27, 27 ), wxT("UnpinnedPlayRecordHead"));
|
||||
|
||||
DEFINE_IMAGE( bmpSyncLockSelTile, wxImage(20, 22), wxT("SyncLockSelTile"));
|
||||
DEFINE_IMAGE( bmpEditEffects, wxImage(21, 20), wxT("EditEffects"));
|
||||
DEFINE_IMAGE( bmpSyncLockTracksDown, wxImage( 20, 20 ), wxT("SyncLockTracksDown"));
|
||||
DEFINE_IMAGE( bmpSyncLockTracksUp, wxImage( 20, 20 ), wxT("SyncLockTracksUp"));
|
||||
DEFINE_IMAGE( bmpSyncLockTracksDisabled, wxImage( 20, 20 ), wxT("SyncLockTracksDisabled"));
|
||||
DEFINE_IMAGE( bmpToggleScrubRuler, wxImage( 20, 20 ), wxT("ToggleScrubRuler"));
|
||||
// DEFINE_IMAGE( bmpSliderThumb, wxImage( 11, 14 ), wxT("SliderThumb"));
|
||||
DEFINE_IMAGE( bmpSyncLockIcon, wxImage(12, 12), wxT("SyncLockIcon"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNewLine );
|
||||
DEFINE_IMAGE( bmpPlayPointer, wxImage( 20, 20 ), wxT("PlayPointer"));
|
||||
DEFINE_IMAGE( bmpPlayPointerPinned, wxImage( 20, 20 ), wxT("PlayPointerPinned"));
|
||||
DEFINE_IMAGE( bmpRecordPointer, wxImage( 20, 20 ), wxT("RecordPointer"));
|
||||
DEFINE_IMAGE( bmpRecordPointerPinned, wxImage( 20, 20 ), wxT("RecordPointerPinned"));
|
||||
DEFINE_IMAGE( bmpGrabberDropLoc, wxImage( 20, 20 ), wxT("GrabberDropLoc"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNone );
|
||||
DEFINE_IMAGE( bmpSliderThumb, wxImage( 11, 20 ), wxT("SliderThumb"));
|
||||
DEFINE_IMAGE( bmpSlider, wxImage( 80, 20 ), wxT("Slider"));
|
||||
DEFINE_IMAGE( bmpHiliteSlider, wxImage( 80, 20 ), wxT("HiliteSlider"));
|
||||
SET_THEME_FLAGS( resFlagNewLine );
|
||||
DEFINE_IMAGE( bmpUpButtonExpand, wxImage( 96, 18 ), wxT("UpButtonExpand"));
|
||||
DEFINE_IMAGE( bmpDownButtonExpand, wxImage( 96, 18 ), wxT("DownButtonExpand"));
|
||||
DEFINE_IMAGE( bmpHiliteButtonExpand, wxImage( 96, 18 ), wxT("HiliteButtonExpand"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNewLine );
|
||||
DEFINE_IMAGE( bmpUpButtonLarge, wxImage( 48, 48 ), wxT("UpButtonLarge"));
|
||||
DEFINE_IMAGE( bmpDownButtonLarge, wxImage( 48, 48 ), wxT("DownButtonLarge"));
|
||||
DEFINE_IMAGE( bmpHiliteButtonLarge, wxImage( 48, 48 ), wxT("HiliteButtonLarge"));
|
||||
DEFINE_IMAGE( bmpUpButtonSmall, wxImage( 27, 27 ), wxT("UpButtonSmall"));
|
||||
DEFINE_IMAGE( bmpDownButtonSmall, wxImage( 27, 27 ), wxT("DownButtonSmall"));
|
||||
DEFINE_IMAGE( bmpHiliteButtonSmall, wxImage( 27, 27 ), wxT("HiliteButtonSmall"));
|
||||
//DEFINE_IMAGE( bmpVolumeSlider, wxImage( 100, 28 ), wxT("VolumeSlider"));
|
||||
//DEFINE_IMAGE( bmpVolumeSliderThumb, wxImage( 10, 28 ), wxT("VolumeSliderThumb"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNone );
|
||||
DEFINE_IMAGE( bmpMacUpButton, wxImage( 36, 36 ), wxT("MacUpButton"));
|
||||
DEFINE_IMAGE( bmpMacDownButton, wxImage( 36, 36 ), wxT("MacDownButton"));
|
||||
DEFINE_IMAGE( bmpMacHiliteButton, wxImage( 36, 36 ), wxT("MacHiliteButton"));
|
||||
DEFINE_IMAGE( bmpMacUpButtonSmall, wxImage( 27, 27 ), wxT("MacUpButtonSmall"));
|
||||
DEFINE_IMAGE( bmpMacDownButtonSmall, wxImage( 27, 27 ), wxT("MacDownButtonSmall"));
|
||||
DEFINE_IMAGE( bmpMacHiliteButtonSmall, wxImage( 27, 27 ), wxT("MacHiliteButtonSmall"));
|
||||
DEFINE_IMAGE( bmpMacSlider, wxImage( 100, 28 ), wxT("MacSlider"));
|
||||
DEFINE_IMAGE( bmpMacSliderThumb, wxImage( 17, 28 ), wxT("MacSliderThumb"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagInternal );
|
||||
DEFINE_IMAGE( bmpRecoloredUpLarge, wxImage( 48, 48 ), wxT("RecoloredUpLarge"));
|
||||
DEFINE_IMAGE( bmpRecoloredDownLarge, wxImage( 48, 48 ), wxT("RecoloredDownLarge"));
|
||||
DEFINE_IMAGE( bmpRecoloredHiliteLarge, wxImage( 48, 48 ), wxT("RecoloredHiliteLarge"));
|
||||
DEFINE_IMAGE( bmpRecoloredUpSmall, wxImage( 27, 27 ), wxT("RecoloredUpSmall"));
|
||||
DEFINE_IMAGE( bmpRecoloredDownSmall, wxImage( 27, 27 ), wxT("RecoloredDownSmall"));
|
||||
DEFINE_IMAGE( bmpRecoloredHiliteSmall, wxImage( 27, 27 ), wxT("RecoloredHiliteSmall"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagCursor );
|
||||
DEFINE_IMAGE( bmpIBeamCursor, wxImage( 32, 32 ), wxT("IBeamCursor"));
|
||||
DEFINE_IMAGE( bmpDrawCursor, wxImage( 32, 32 ), wxT("DrawCursor"));
|
||||
DEFINE_IMAGE( bmpEnvCursor, wxImage( 32, 32 ), wxT("EnvCursor"));
|
||||
DEFINE_IMAGE( bmpTimeCursor, wxImage( 32, 32 ), wxT("TimeCursor"));
|
||||
DEFINE_IMAGE( bmpZoomInCursor, wxImage( 32, 32 ), wxT("ZoomInCursor"));
|
||||
DEFINE_IMAGE( bmpZoomOutCursor, wxImage( 32, 32 ), wxT("ZoomOutCursor"));
|
||||
DEFINE_IMAGE( bmpLabelCursorLeft, wxImage( 32, 32 ), wxT("LabelCursorLeft"));
|
||||
DEFINE_IMAGE( bmpLabelCursorRight, wxImage( 32, 32 ), wxT("LabelCursorRight"));
|
||||
DEFINE_IMAGE( bmpDisabledCursor, wxImage( 32, 32 ), wxT("DisabledCursor"));
|
||||
DEFINE_IMAGE( bmpBottomFrequencyCursor, wxImage( 32, 32 ), wxT("BottomFrequencyCursor"));
|
||||
DEFINE_IMAGE( bmpTopFrequencyCursor, wxImage( 32, 32 ), wxT("TopFrequencyCursor"));
|
||||
DEFINE_IMAGE( bmpBandWidthCursor, wxImage(32, 32), wxT("BandWidthCursor"));
|
||||
|
||||
|
||||
|
||||
/*
|
||||
DEFINE_IMAGE( bmpToolBarToggle, wxImage( 43, 35 ), wxT("ToolBarToggle"));
|
||||
DEFINE_IMAGE( bmpToolBarTarget, wxImage( 17, 26 ), wxT("ToolBarTarget"));
|
||||
DEFINE_IMAGE( bmpToolBarGrabber, wxImage( 17, 8 ), wxT("ToolBarGrabber"));
|
||||
@ -220,22 +246,21 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_IMAGE( bmpUploadFolder, wxImage( 16, 16 ), wxT("UploadFolder"));
|
||||
DEFINE_IMAGE( bmpUploadMp3, wxImage( 16, 16 ), wxT("UploadMp3"));
|
||||
DEFINE_IMAGE( bmpUploadUp, wxImage( 16, 16 ), wxT("UploadUp"));
|
||||
|
||||
*/
|
||||
SET_THEME_FLAGS( resFlagNewLine );
|
||||
|
||||
// DA: The logo with name xpm has a different width.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
#define LOGOWITHNAME_WIDTH 629
|
||||
#else
|
||||
#define LOGOWITHNAME_WIDTH 506
|
||||
#endif
|
||||
|
||||
#define LOGOWITHNAME_HEIGHT 200
|
||||
|
||||
DEFINE_IMAGE( bmpAudacityLogo, wxImage( 215, 190 ), wxT("AudacityLogo"));
|
||||
DEFINE_IMAGE( bmpAudacityLogo48x48, wxImage( 48, 48 ), wxT("AudacityLogo48x48"));
|
||||
|
||||
DEFINE_IMAGE( bmpSyncLockSelTile, wxImage(20, 22), wxT("SyncLockSelTile"));
|
||||
DEFINE_IMAGE( bmpSyncLockIcon, wxImage(12, 12), wxT("SyncLockIcon"));
|
||||
|
||||
SET_THEME_FLAGS( resFlagNone );
|
||||
DEFINE_IMAGE( bmpEditEffects, wxImage(21, 20), wxT("EditEffects"));
|
||||
|
||||
#if defined(EXPERIMENTAL_THEMING)
|
||||
DEFINE_COLOUR( clrBlank, wxColour( 64, 64, 64), wxT("Blank"));
|
||||
DEFINE_COLOUR( clrUnselected, wxColour( 30, 30, 30), wxT("Unselected"));
|
||||
DEFINE_COLOUR( clrSelected, wxColour( 93, 65, 93), wxT("Selected"));
|
||||
@ -247,26 +272,9 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_COLOUR( clrRms, wxColour(107, 154, 247), wxT("Rms"));
|
||||
DEFINE_COLOUR( clrMuteRms, wxColour(136, 136, 144), wxT("MuteRms"));
|
||||
DEFINE_COLOUR( clrShadow, wxColour(148, 148, 148), wxT("Shadow"));
|
||||
#else
|
||||
DEFINE_COLOUR( clrBlank, wxColour(214, 214, 214), wxT("Blank"));
|
||||
DEFINE_COLOUR( clrUnselected, wxColour(192, 192, 192), wxT("Unselected"));
|
||||
DEFINE_COLOUR( clrSelected, wxColour(148, 148, 170), wxT("Selected"));
|
||||
DEFINE_COLOUR( clrSample, wxColour( 50, 50, 200), wxT("Sample"));
|
||||
DEFINE_COLOUR( clrSelSample, wxColour( 50, 50, 200), wxT("SelSample"));
|
||||
DEFINE_COLOUR( clrDragSample, wxColour( 0, 0, 0), wxT("DragSample"));
|
||||
|
||||
DEFINE_COLOUR( clrMuteSample, wxColour(136, 136, 144), wxT("MuteSample"));
|
||||
DEFINE_COLOUR( clrRms, wxColour(100, 100, 220), wxT("Rms"));
|
||||
DEFINE_COLOUR( clrMuteRms, wxColour(136, 136, 144), wxT("MuteRms"));
|
||||
DEFINE_COLOUR( clrShadow, wxColour(148, 148, 148), wxT("Shadow"));
|
||||
#endif
|
||||
|
||||
DEFINE_COLOUR( clrAboutBoxBackground, wxColour(255, 255, 255), wxT("AboutBackground"));
|
||||
#if defined(EXPERIMENTAL_THEMING)
|
||||
DEFINE_COLOUR( clrTrackPanelText, wxColour(153, 153, 153), wxT("TrackPanelText"));
|
||||
#else
|
||||
DEFINE_COLOUR( clrTrackPanelText, wxColour( 0, 0, 0), wxT("TrackPanelText"));
|
||||
#endif
|
||||
DEFINE_COLOUR( clrTrackPanelText, wxColour(200, 200, 200), wxT("TrackPanelText"));
|
||||
DEFINE_COLOUR( clrLabelTrackText, wxColour( 0, 0, 0), wxT("LabelTrackText"));
|
||||
|
||||
DEFINE_COLOUR( clrMeterPeak, wxColour(102, 102, 255), wxT("MeterPeak"));
|
||||
@ -286,11 +294,7 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_COLOUR( clrMeterOutputClipBrush, wxColour(255, 53, 53), wxT("MeterOutputClipBrush") );
|
||||
DEFINE_COLOUR( clrMeterOutputLightPen, wxColour(153, 255, 153), wxT("MeterOutputLightPen") );
|
||||
DEFINE_COLOUR( clrMeterOutputDarkPen, wxColour(61, 164, 61), wxT("MeterOutputDarkPen") );
|
||||
#if defined(EXPERIMENTAL_THEMING)
|
||||
DEFINE_COLOUR( clrRulerBackground, wxColour( 93, 65, 93), wxT("RulerBackground") );
|
||||
#else
|
||||
DEFINE_COLOUR( clrRulerBackground, wxColour(148, 148, 170), wxT("RulerBackground") );
|
||||
#endif
|
||||
DEFINE_COLOUR( clrAxisLines, wxColour(0, 0, 255), wxT("AxisLines") );
|
||||
DEFINE_COLOUR( clrGraphLines, wxColour(110, 110, 220), wxT("GraphLines") );
|
||||
DEFINE_COLOUR( clrResponseLines, wxColour(0, 255, 0), wxT("ResponseLines") );
|
||||
@ -326,15 +330,9 @@ from there. Audacity will look for a file called "Pause.png".
|
||||
DEFINE_COLOUR( clrLabelSelectedPen, wxColour( 148,148,170), wxT("LabelSelectedPen") );
|
||||
DEFINE_COLOUR( clrLabelSurroundPen, wxColour( 0, 0, 0), wxT("LabelSurroundPen") );
|
||||
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
DEFINE_COLOUR( clrTrackFocus0, wxColour( 200, 200, 200), wxT("TrackFocus0") );
|
||||
DEFINE_COLOUR( clrTrackFocus1, wxColour( 180, 180, 180), wxT("TrackFocus1") );
|
||||
DEFINE_COLOUR( clrTrackFocus2, wxColour( 160, 160, 160), wxT("TrackFocus2") );
|
||||
#else
|
||||
DEFINE_COLOUR( clrTrackFocus0, wxColour( 255, 255, 128), wxT("TrackFocus0") );
|
||||
DEFINE_COLOUR( clrTrackFocus1, wxColour( 215, 215, 138), wxT("TrackFocus1") );
|
||||
DEFINE_COLOUR( clrTrackFocus2, wxColour( 185, 185, 142), wxT("TrackFocus2") );
|
||||
#endif
|
||||
|
||||
DEFINE_COLOUR( clrSnapGuide, wxColour( 255, 255, 0), wxT("SnapGuide") );
|
||||
DEFINE_COLOUR( clrTrackInfo, wxColour( 64, 64, 64), wxT("TrackInfo") );
|
||||
|
@ -45,7 +45,8 @@
|
||||
#if IS_ALPHA
|
||||
#define AUDACITY_SUFFIX wxT("-alpha-") __TDATE__
|
||||
#else
|
||||
#define AUDACITY_SUFFIX wxT("") // for a stable release
|
||||
//#define AUDACITY_SUFFIX wxT("") // for a stable release
|
||||
#define AUDACITY_SUFFIX wxT("x ") __TDATE__
|
||||
#endif
|
||||
|
||||
#define AUDACITY_MAKESTR( x ) #x
|
||||
@ -57,11 +58,20 @@
|
||||
wxT( AUDACITY_QUOTE( AUDACITY_REVISION ) ) \
|
||||
AUDACITY_SUFFIX
|
||||
|
||||
// DA: x on end of version string.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
// Version string for file info (under Windows)
|
||||
#define AUDACITY_FILE_VERSION AUDACITY_QUOTE( AUDACITY_VERSION ) "," \
|
||||
AUDACITY_QUOTE( AUDACITY_RELEASE ) "," \
|
||||
AUDACITY_QUOTE( AUDACITY_REVISION ) "," \
|
||||
AUDACITY_QUOTE( AUDACITY_MODLEVEL ) " x"
|
||||
#else
|
||||
#define AUDACITY_FILE_VERSION AUDACITY_QUOTE( AUDACITY_VERSION ) "," \
|
||||
AUDACITY_QUOTE( AUDACITY_RELEASE ) "," \
|
||||
AUDACITY_QUOTE( AUDACITY_REVISION ) "," \
|
||||
AUDACITY_QUOTE( AUDACITY_MODLEVEL )
|
||||
#endif
|
||||
|
||||
|
||||
// Increment this every time the prefs need to be reset
|
||||
// the first part (before the r) indicates the version the reset took place
|
||||
@ -177,10 +187,35 @@ void QuitAudacity();
|
||||
#define MAX_AUDIO (1. - 1./(1<<15))
|
||||
#define JUST_BELOW_MAX_AUDIO (1.f - 1.f/(1<<14))
|
||||
|
||||
|
||||
#ifndef IN_RC
|
||||
#include <wx/defs.h>
|
||||
#include <wx/string.h>
|
||||
|
||||
extern const wxString& GetCustomTranslation(const wxString& str1 );
|
||||
extern const wxString& GetCustomSubstitution(const wxString& str1 );
|
||||
|
||||
// Marks strings for extraction only...must use wxGetTranslation() to translate.
|
||||
#define XO(s) wxT(s)
|
||||
#define XO(s) wxT(s)
|
||||
// Marks string for substitution only.
|
||||
#define _TS(s) wxT(s)
|
||||
#define _TS( s ) GetCustomSubstitution( s )
|
||||
|
||||
|
||||
#define WXINTL_NO_GETTEXT_MACRO
|
||||
|
||||
#ifdef wxPLURAL
|
||||
#undef wxPLURAL
|
||||
#endif
|
||||
|
||||
#define wxPLURAL(sing, plur, n) wxGetTranslation((sing), (plur), n)
|
||||
|
||||
|
||||
#ifdef _
|
||||
#undef _
|
||||
#endif
|
||||
|
||||
#define _(s) GetCustomTranslation((s))
|
||||
#endif
|
||||
|
||||
// This renames a good use of this C++ keyword that we don't need to review when hunting for leaks.
|
||||
#define PROHIBITED = delete
|
||||
|
@ -229,7 +229,13 @@ It handles initialization and termination by subclassing wxApp.
|
||||
|
||||
#endif //(__WXMSW__)
|
||||
|
||||
// DA: Logo for Splash Screen
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
#include "../images/DarkAudacityLogoWithName.xpm"
|
||||
#else
|
||||
#include "../images/AudacityLogoWithName.xpm"
|
||||
#endif
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// Custom events
|
||||
@ -1275,8 +1281,13 @@ bool AudacityApp::OnInit()
|
||||
|
||||
// Don't use AUDACITY_NAME here.
|
||||
// We want Audacity with a capital 'A'
|
||||
wxString appName = wxT("Audacity");
|
||||
|
||||
// DA: App name
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
wxString appName = wxT("Audacity");
|
||||
#else
|
||||
wxString appName = wxT("DarkAudacity");
|
||||
#endif
|
||||
|
||||
wxTheApp->SetAppName(appName);
|
||||
// Explicitly set since OSX will use it for the "Quit" menu item
|
||||
@ -1307,7 +1318,12 @@ bool AudacityApp::OnInit()
|
||||
/* On Unix systems, the default temp dir is in /var/tmp. */
|
||||
defaultTempDir.Printf(wxT("/var/tmp/audacity-%s"), wxGetUserId().c_str());
|
||||
|
||||
// DA: Path env variable.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
wxString pathVar = wxGetenv(wxT("AUDACITY_PATH"));
|
||||
#else
|
||||
wxString pathVar = wxGetenv(wxT("DARKAUDACITY_PATH"));
|
||||
#endif
|
||||
if (pathVar != wxT(""))
|
||||
AddMultiPathsToPathList(pathVar, audacityPathList);
|
||||
AddUniquePathToPathList(::wxGetCwd(), audacityPathList);
|
||||
|
4566
src/ClassicThemeAsCeeCode.h
Normal file
4566
src/ClassicThemeAsCeeCode.h
Normal file
File diff suppressed because it is too large
Load Diff
4094
src/DarkThemeAsCeeCode.h
Normal file
4094
src/DarkThemeAsCeeCode.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -48,10 +48,13 @@
|
||||
// feature to link audio tracks to a label track
|
||||
#define EXPERIMENTAL_SYNC_LOCK
|
||||
|
||||
// DA: Enables dark audacity theme and customisations.
|
||||
//#define EXPERIMENTAL_DA
|
||||
|
||||
// experimental theming
|
||||
// Work in progress, June-2008.
|
||||
// This mostly sets up a weird color scheme currently.
|
||||
//#define EXPERIMENTAL_THEMING
|
||||
#define EXPERIMENTAL_THEMING
|
||||
|
||||
//August 2009 - Theming not locked down enough for a stable release.
|
||||
// This turns on the Theme panel in Prefs dialog. It is independent of EXPERIMENTAL_THEMING.
|
||||
@ -184,12 +187,14 @@
|
||||
// scrolling past zero is enabled. Perhaps that lessens confusion.
|
||||
#define EXPERIMENTAL_TWO_TONE_TIME_RULER
|
||||
|
||||
#ifndef IN_RC
|
||||
// Define to include crash reporting
|
||||
#include <wx/defs.h>
|
||||
#define EXPERIMENTAL_CRASH_REPORT
|
||||
#if !defined(wxUSE_DEBUGREPORT) || !wxUSE_DEBUGREPORT
|
||||
#undef EXPERIMENTAL_CRASH_REPORT
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Paul Licameli (PRL) 31 May 2015
|
||||
// Zero-padding factor for spectrograms can smooth the display of spectrograms by
|
||||
|
@ -252,7 +252,12 @@ wxString FileNames::ThemeImageDefsAsCee()
|
||||
|
||||
wxString FileNames::ThemeCacheAsCee( )
|
||||
{
|
||||
// DA: Theme sourcery file name.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
return wxFileName( ThemeDir(), wxT("ThemeAsCeeCode.h") ).GetFullPath();
|
||||
#else
|
||||
return wxFileName( ThemeDir(), wxT("DarkThemeAsCeeCode.h") ).GetFullPath();
|
||||
#endif
|
||||
}
|
||||
|
||||
wxString FileNames::ThemeComponent(const wxString &Str)
|
||||
|
@ -19,15 +19,23 @@
|
||||
#include "HelpText.h"
|
||||
#include "FileNames.h"
|
||||
#include "AboutDialog.h"
|
||||
#include "AllThemeResources.h"
|
||||
|
||||
|
||||
wxString HtmlColourOfIndex( int i ){
|
||||
wxColour c = theTheme.Colour(i);
|
||||
return wxString::Format("\"#%02X%02X%02X\"",
|
||||
c.Red(), c.Green(), c.Blue() );
|
||||
}
|
||||
|
||||
static wxString WrapText( const wxString & Text )
|
||||
{
|
||||
return wxString(wxT(""))+
|
||||
wxT("<html><head></head>") +
|
||||
wxT("<body bgcolor=\"#ffffff\">") +
|
||||
wxT("<body bgcolor=") + HtmlColourOfIndex(clrTrackInfo) + wxT(">") +
|
||||
wxT("<font color=") + HtmlColourOfIndex(clrTrackPanelText) + wxT(">") +
|
||||
wxT("<p>") + Text +
|
||||
wxT("</font>")+
|
||||
wxT("</body></html>");
|
||||
}
|
||||
|
||||
@ -90,6 +98,7 @@ static wxString LinkExpand( const wxString & Text )
|
||||
Key = Key.Mid( 0, j );
|
||||
LinkText = LinkText.Mid( 0, k );
|
||||
|
||||
LinkText=wxString("<font color=") + HtmlColourOfIndex(clrSample) + wxT(">") +LinkText+"</font>";
|
||||
wxString Replacement;
|
||||
if( Key.StartsWith( wxT("wiki:") ))
|
||||
{
|
||||
@ -116,6 +125,7 @@ static wxString LinkExpand( const wxString & Text )
|
||||
Replacement = Link( Key, LinkText );
|
||||
}
|
||||
|
||||
|
||||
Temp = Temp.Mid( 0, i ) + Replacement + Temp.Mid( i + j + k + 5 );// 5 for the [[|]]
|
||||
}
|
||||
return Temp;
|
||||
@ -190,7 +200,7 @@ static wxString HelpTextBuiltIn( const wxString & Key )
|
||||
if(Key==wxT("welcome"))
|
||||
{
|
||||
/// TO-DO: Make the links to help here use the widgets/HelpSystem mechanism
|
||||
/// so that they are consistent
|
||||
/// so that they are consistent
|
||||
/* i18n-hint: Preserve [[file:quick_help.html as it's the name of a file.*/
|
||||
wxString result =
|
||||
wxString(wxT("")) +
|
||||
@ -200,7 +210,20 @@ static wxString HelpTextBuiltIn( const wxString & Key )
|
||||
_("<br><br>The version of Audacity you are using is an <b>Alpha test version</b>.") + " " +
|
||||
_("We strongly recommend that you use our latest stable released version, which has full documentation and support.<br><br>")+
|
||||
_("You can help us get Audacity ready for release by joining our [[http://www.audacityteam.org/community/|community]].<hr><br><br>")+
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// DA: Support methods text.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
wxT("<center><h3>DarkAudacity ") + AUDACITY_VERSION_STRING + wxT("</h3></center>") +
|
||||
_("<br><br>DarkAudacity is based on Audacity:") + wxT("<ul><li>") +
|
||||
_(" [[http://www.darkaudacity.com|www.darkaudacity.com]] - for differences between them.") + wxT("</li><li>") +
|
||||
_(" email to [[mailto:james@audacityteam.org|james@audacityteam.org]] - for help using DarkAudacity.") + wxT("</li><li>") +
|
||||
_(" [[http://www.darkaudacity.com/video.html|Tutorials]] - for getting started with DarkAudacity.") + wxT("</li></ul>") +
|
||||
|
||||
wxT("<br><br>Audacity has these support methods:") + wxT("<ul><li>") +
|
||||
wxT(" [[http://manual.audacityteam.org/|Manual]] - for comprehensive Audacity documentation") + wxT("</li><li>") +
|
||||
wxT(" [[http://forum.audacityteam.org/|Forum]] - for large knowledge base on using Audacity.") + wxT("</li></ul>");
|
||||
#else
|
||||
wxT("<center><h3>Audacity ") + AUDACITY_VERSION_STRING + wxT("</h3><h3>") +
|
||||
_("How to get help") + wxT("</h3></center>") +
|
||||
_("These are our support methods:") + wxT("<p><ul><li>") +
|
||||
@ -208,6 +231,7 @@ static wxString HelpTextBuiltIn( const wxString & Key )
|
||||
_(" [[file:index.html|Manual]] - if not installed locally, [[http://manual.audacityteam.org/|view online]]") + wxT("</li><li>") +
|
||||
_(" [[http://forum.audacityteam.org/|Forum]] - ask your question directly, online.") + wxT("</li></ul></p><p>") + wxT("<b>") +
|
||||
_("More:</b> Visit our [[http://wiki.audacityteam.org/index.php|Wiki]] for tips, tricks, extra tutorials and effects plug-ins.") + wxT("</p>");
|
||||
#endif
|
||||
|
||||
#if IS_ALPHA
|
||||
result.Replace( "//manual.audacityteam.org/quick_help.html","//alphamanual.audacityteam.org/man/Quick_Help" );
|
||||
@ -237,12 +261,20 @@ audio CDs]].") + wxT("</p>")
|
||||
if(Key == wxT("remotehelp") )
|
||||
{
|
||||
// *URL* will be replaced by whatever URL we are looking for.
|
||||
// DA: View the manual on line is expected.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
return WrapText(_("The Manual does not appear to be installed. \
|
||||
Please [[*URL*|view the Manual online]].<br><br>\
|
||||
To always view the Manual online, change \"Location of Manual\" in \
|
||||
Interface Preferences to \"From Internet\".")
|
||||
#else
|
||||
return WrapText(_("The Manual does not appear to be installed. \
|
||||
Please [[*URL*|view the Manual online]] or \
|
||||
[[http://manual.audacityteam.org/man/unzipping_the_manual.html| \
|
||||
download the Manual]].<br><br>\
|
||||
To always view the Manual online, change \"Location of Manual\" in \
|
||||
Interface Preferences to \"From Internet\".")
|
||||
#endif
|
||||
);
|
||||
}
|
||||
return wxT("");
|
||||
@ -267,6 +299,7 @@ wxString HelpText( const wxString & Key )
|
||||
return WrapText( Key );
|
||||
}
|
||||
|
||||
|
||||
wxString FormatHtmlText( const wxString & Text ){
|
||||
|
||||
wxString localeStr = wxLocale::GetSystemEncodingName();
|
||||
|
@ -30,6 +30,7 @@ and on Mac OS X for the filesystem.
|
||||
|
||||
#include "Internat.h"
|
||||
#include "FileDialog.h"
|
||||
#include "Experimental.h"
|
||||
|
||||
// in order for the static member variables to exist, they must appear here
|
||||
// (_outside_) the class definition, in order to be allocated some storage.
|
||||
@ -39,6 +40,44 @@ wxChar Internat::mDecimalSeparator = wxT('.'); // default
|
||||
wxArrayString Internat::exclude;
|
||||
wxCharBuffer Internat::mFilename;
|
||||
|
||||
// DA: Use tweaked translation mechanism to replace 'Audacity' by 'DarkAudacity'.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
// This function allows us to replace Audacity by DarkAudacity without peppering
|
||||
// the source code with changes. We split out this step, the customisation, as
|
||||
// it is used on its own (without translation) in the wxTS macro.
|
||||
const wxString& GetCustomSubstitution(const wxString& str2)
|
||||
{
|
||||
// If contains 'DarkAudacity, already converted.
|
||||
if( str2.Contains( "DarkAudacity" ))
|
||||
return str2;
|
||||
// If does not contain 'Audacity', nothing to do.
|
||||
if( !str2.Contains( "Audacity" ))
|
||||
return str2;
|
||||
wxString str3 = str2;
|
||||
str3.Replace( "Audacity", "DarkAudacity" );
|
||||
str3.Replace( " an DarkAudacity", " a DarkAudacity" );
|
||||
// DA also renames sync-lock(ed) as time-lock(ed).
|
||||
str3.Replace( "Sync-Lock", "Time-Lock" );
|
||||
str3.Replace( "Sync-&Lock", "Time-&Lock" );
|
||||
str3.Replace( "Sync Lock", "Time Lock" );
|
||||
return wxTranslations::GetUntranslatedString(str3);
|
||||
}
|
||||
#else
|
||||
const wxString& GetCustomSubstitution(const wxString& str1)
|
||||
{
|
||||
return str1 ;
|
||||
}
|
||||
#endif
|
||||
|
||||
// In any translated string, we can replace the name 'Audacity' by 'DarkAudacity'
|
||||
// without requiring translators to see extra strings for the two versions.
|
||||
const wxString& GetCustomTranslation(const wxString& str1)
|
||||
{
|
||||
const wxString& str2 = wxGetTranslation( str1 );
|
||||
return GetCustomSubstitution( str2 );
|
||||
}
|
||||
|
||||
|
||||
void Internat::Init()
|
||||
{
|
||||
// Save decimal point character
|
||||
|
5776
src/LightThemeAsCeeCode.h
Normal file
5776
src/LightThemeAsCeeCode.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -326,7 +326,6 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("SaveAs"), _("Save Project &As..."), FN(OnSaveAs));
|
||||
c->BeginSubMenu( _("Save Other") );
|
||||
|
||||
//#ifdef EXPERIMENTAL_DA
|
||||
// Enable Export audio commands only when there are audio tracks.
|
||||
c->AddItem(wxT("ExportMp3"), _("Export as MP&3"), FN(OnExportMp3), wxT(""),
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag,
|
||||
@ -339,7 +338,6 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("ExportOgg"), _("Export as &OGG"), FN(OnExportOgg), wxT(""),
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag,
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag);
|
||||
//#endif
|
||||
|
||||
c->AddItem(wxT("Export"), _("&Export Audio..."), FN(OnExportAudio), wxT("Ctrl+Shift+E"),
|
||||
AudioIONotBusyFlag | WaveTracksExistFlag,
|
||||
@ -599,11 +597,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
TracksExistFlag, TracksExistFlag);
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
c->AddItem(wxT("SelSyncLockTracks"), _("In All Time-Locked Tracks"),
|
||||
#else
|
||||
c->AddItem(wxT("SelSyncLockTracks"), _("In All Sync-Locked Tracks"),
|
||||
#endif
|
||||
FN(OnSelectSyncLockSel), wxT("Ctrl+Shift+Y"),
|
||||
TracksSelectedFlag | IsSyncLockedFlag,
|
||||
TracksSelectedFlag | IsSyncLockedFlag);
|
||||
@ -613,13 +607,11 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("ZeroCross"), _("Ends to &Zero Crossings"), FN(OnZeroCrossing), wxT("Z"));
|
||||
c->AddSeparator();
|
||||
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
c->AddItem(wxT("StoreCursorPosition"), _("Save Cursor Pos&ition"), FN(OnCursorPositionStore),
|
||||
WaveTracksExistFlag,
|
||||
WaveTracksExistFlag);
|
||||
// Save cursor position is used in some selctions.
|
||||
// Maybe there should be a restore for it?
|
||||
#endif
|
||||
|
||||
// Audacity has 'Store Re&gion' here.
|
||||
c->AddItem(wxT("SelSave"), _("Save Sele&ction"), FN(OnSelectionSave),
|
||||
@ -816,8 +808,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
// Scrubbing sub-menu
|
||||
GetScrubber().AddMenuItems();
|
||||
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
// JKC: ANSWER-ME: How is this different to 'Skip To' and how is it useful?
|
||||
// JKC: ANSWER-ME: How is 'cursor to' different to 'Skip To' and how is it useful?
|
||||
c->BeginSubMenu(_("Cursor to"));
|
||||
|
||||
c->AddItem(wxT("CursSelStart"), _("Selection Star&t"), FN(OnCursorSelStart));
|
||||
@ -830,7 +821,6 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddItem(wxT("CursProjectEnd"), _("Project E&nd"), FN(OnSkipEnd), wxT("End"));
|
||||
|
||||
c->EndSubMenu();
|
||||
#endif
|
||||
|
||||
c->AddSeparator();
|
||||
|
||||
@ -983,11 +973,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddSeparator();
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
c->AddCheck(wxT("SyncLock"), _("Time-&Lock Tracks (on/off)"), FN(OnSyncLock), 0,
|
||||
#else
|
||||
c->AddCheck(wxT("SyncLock"), _("Sync-&Lock Tracks (on/off)"), FN(OnSyncLock), 0,
|
||||
#endif
|
||||
AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
c->AddSeparator();
|
||||
@ -1129,15 +1115,16 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->BeginMenu(_("&Help"));
|
||||
c->SetDefaultFlags(AlwaysEnabledFlag, AlwaysEnabledFlag);
|
||||
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
c->AddItem(wxT("QuickHelp"), _("&Quick Help"), FN(OnQuickHelp));
|
||||
c->AddItem(wxT("Manual"), _("&Manual"), FN(OnManual));
|
||||
#else
|
||||
// DA: Emphasise it is the Audacity Manual (No separate DA manual).
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
// 'Getting Started' rather than 'Quick Help' for DarkAudacity.
|
||||
// At the moment the video tutorials are aspirational (aka do not exist yet).
|
||||
// Emphasise that manual is for Audacity, not DarkAudacity.
|
||||
c->AddItem(wxT("QuickHelp"), _("&Getting Started"), FN(OnQuickHelp));
|
||||
c->AddItem(wxT("Manual"), wxT("Audacity &Manual"), FN(OnManual));
|
||||
#else
|
||||
c->AddItem(wxT("QuickHelp"), _("&Quick Help"), FN(OnQuickHelp));
|
||||
c->AddItem(wxT("Manual"), _("&Manual"), FN(OnManual));
|
||||
#endif
|
||||
|
||||
|
||||
@ -1172,6 +1159,7 @@ void AudacityProject::CreateMenusAndCommands()
|
||||
c->AddSeparator();
|
||||
#endif
|
||||
|
||||
// DA: Does not fully support update checking.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
c->AddItem(wxT("Updates"), _("&Check for Updates..."), FN(OnCheckForUpdates));
|
||||
#endif
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <wx/settings.h> // for wxSystemSettings::GetColour and wxSystemSettings::GetMetric
|
||||
|
||||
#include "AColor.h"
|
||||
#include "AllThemeResources.h"
|
||||
#include "AudioIO.h"
|
||||
|
||||
#ifdef USE_MIDI
|
||||
@ -175,8 +176,8 @@ MixerTrackCluster::MixerTrackCluster(wxWindow* parent,
|
||||
|
||||
SetName(mTrack->GetName());
|
||||
|
||||
this->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
|
||||
|
||||
//this->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
|
||||
this->SetBackgroundColour( theTheme.Colour( clrMedium ) );
|
||||
// Not sure why, but sizers weren't getting offset vertically,
|
||||
// probably because not using wxDefaultPosition,
|
||||
// so positions are calculated explicitly below, and sizers code was removed.
|
||||
@ -190,6 +191,7 @@ MixerTrackCluster::MixerTrackCluster(wxWindow* parent,
|
||||
wxALIGN_CENTRE | wxST_NO_AUTORESIZE | wxSUNKEN_BORDER);
|
||||
//v Useful when different tracks are different colors, but not now.
|
||||
// mStaticText_TrackName->SetBackgroundColour(this->GetTrackColor());
|
||||
mStaticText_TrackName->SetForegroundColour(theTheme.Colour(clrTrackPanelText));
|
||||
|
||||
|
||||
// gain and velocity sliders at left (both in same place)
|
||||
@ -895,11 +897,12 @@ MixerBoard::MixerBoard(AudacityProject* pProject,
|
||||
wxHSCROLL); // long style = wxHSCROLL | wxVSCROLL, const wxString& name = "scrolledWindow")
|
||||
|
||||
// Set background color to same as TrackPanel background.
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
mScrolledWindow->SetBackgroundColour(this->GetParent()->GetBackgroundColour());
|
||||
#else
|
||||
mScrolledWindow->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW));
|
||||
#endif
|
||||
// #ifdef EXPERIMENTAL_THEMING
|
||||
// mScrolledWindow->SetBackgroundColour(this->GetParent()->GetBackgroundColour());
|
||||
// #else
|
||||
// mScrolledWindow->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DSHADOW));
|
||||
// #endif
|
||||
mScrolledWindow->SetBackgroundColour( theTheme.Colour( clrMedium ) );
|
||||
|
||||
mScrolledWindow->SetScrollRate(10, 0); // no vertical scroll
|
||||
mScrolledWindow->SetVirtualSize(size);
|
||||
@ -1296,6 +1299,7 @@ void MixerBoard::CreateMuteSoloImages()
|
||||
{
|
||||
// Much of this is taken from TrackLabel::DrawMuteSolo.
|
||||
wxMemoryDC dc;
|
||||
dc.SetTextForeground(theTheme.Colour(clrTrackPanelText));
|
||||
wxString str = _("Mute");
|
||||
int textWidth, textHeight;
|
||||
|
||||
|
@ -1276,7 +1276,7 @@ void AudacityProject::UpdatePrefsVariables()
|
||||
gPrefs->Read(wxT("/AudioFiles/NormalizeOnLoad"),&mNormalizeOnLoad, false);
|
||||
gPrefs->Read(wxT("/GUI/AutoScroll"), &mViewInfo.bUpdateTrackIndicator, true);
|
||||
gPrefs->Read(wxT("/GUI/EmptyCanBeDirty"), &mEmptyCanBeDirty, true );
|
||||
// DA 2.1.3x did not ship with a manual, so default for DA is internet.
|
||||
// DA: Default for DA is manual from internet.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
gPrefs->Read(wxT("/GUI/Help"), &mHelpPref, wxT("FromInternet") );
|
||||
#else
|
||||
|
@ -42,7 +42,12 @@ most commonly asked questions about Audacity.
|
||||
#include "Prefs.h"
|
||||
#include "HelpText.h"
|
||||
|
||||
// DA: Logo for Splash Dialog (welcome dialog)
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
#include "../images/DarkAudacityLogoWithName.xpm"
|
||||
#else
|
||||
#include "../images/AudacityLogoWithName.xpm"
|
||||
#endif
|
||||
|
||||
SplashDialog * SplashDialog::pSelf=NULL;
|
||||
|
||||
@ -64,7 +69,6 @@ SplashDialog::SplashDialog(wxWindow * parent)
|
||||
wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
|
||||
{
|
||||
SetName(GetTitle());
|
||||
this->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
|
||||
m_pLogo = NULL; //v
|
||||
ShuttleGui S( this, eIsCreating );
|
||||
Populate( S );
|
||||
@ -78,6 +82,7 @@ SplashDialog::SplashDialog(wxWindow * parent)
|
||||
void SplashDialog::Populate( ShuttleGui & S )
|
||||
{
|
||||
this->SetBackgroundColour(theTheme.Colour( clrAboutBoxBackground ));
|
||||
// this->SetBackgroundColour(wxColour(0xAB, 0xAB,0xAB ));
|
||||
bool bShow;
|
||||
gPrefs->Read(wxT("/GUI/ShowSplashScreen"), &bShow, true );
|
||||
S.StartVerticalLay(1);
|
||||
|
122
src/Theme.cpp
122
src/Theme.cpp
@ -72,6 +72,7 @@ and use it for toolbar and window layouts too.
|
||||
#include "AllThemeResources.h" // can remove this later, only needed for 'XPMS_RETIRED'.
|
||||
#include "FileNames.h"
|
||||
#include "Prefs.h"
|
||||
#include "AColor.h"
|
||||
|
||||
#include <wx/arrimpl.cpp>
|
||||
|
||||
@ -188,8 +189,15 @@ WX_DEFINE_USER_EXPORTED_OBJARRAY( ArrayOfColours )
|
||||
#include "AllThemeResources.h"
|
||||
|
||||
// Include the ImageCache...
|
||||
static unsigned char ImageCacheAsData[] = {
|
||||
#include "ThemeAsCeeCode.h"
|
||||
|
||||
static unsigned char DarkImageCacheAsData[] = {
|
||||
#include "DarkThemeAsCeeCode.h"
|
||||
};
|
||||
static unsigned char LightImageCacheAsData[] = {
|
||||
#include "LightThemeAsCeeCode.h"
|
||||
};
|
||||
static unsigned char ClassicImageCacheAsData[] = {
|
||||
#include "ClassicThemeAsCeeCode.h"
|
||||
};
|
||||
|
||||
// theTheme is a global variable.
|
||||
@ -217,14 +225,27 @@ void Theme::EnsureInitialised()
|
||||
RegisterExtraThemeResources();
|
||||
#endif
|
||||
|
||||
bool bLoadThemeAtStart;
|
||||
gPrefs->Read( wxT("/Theme/LoadAtStart"), &bLoadThemeAtStart, false );
|
||||
LoadThemeAtStartUp( bLoadThemeAtStart );
|
||||
LoadPreferredTheme();
|
||||
}
|
||||
|
||||
bool ThemeBase::LoadPreferredTheme()
|
||||
{
|
||||
// DA: Default themes differ.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
wxString theme = gPrefs->Read(wxT("/GUI/Theme"), wxT("dark"));
|
||||
#else
|
||||
wxString theme = gPrefs->Read(wxT("/GUI/Theme"), wxT("classic"));
|
||||
#endif
|
||||
|
||||
theTheme.LoadTheme( theTheme.ThemeTypeOfTypeName( theme ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
void Theme::ApplyUpdatedImages()
|
||||
{
|
||||
AColor::ReInit();
|
||||
AudacityProject *p = GetActiveProject();
|
||||
p->ResetColours();
|
||||
for( int ii = 0; ii < ToolBarCount; ++ii )
|
||||
{
|
||||
ToolBar *pToolBar = p->GetToolManager()->GetToolBar(ii);
|
||||
@ -262,41 +283,17 @@ ThemeBase::~ThemeBase(void)
|
||||
}
|
||||
|
||||
/// This function is called to load the initial Theme images.
|
||||
/// There are many possible choices for what this function
|
||||
/// should do, as we have (potentially) four sources of images.
|
||||
/// - (deprecated) programmed in XPMs.
|
||||
/// - Programmed in in-built theme.
|
||||
/// - External image Cache file.
|
||||
/// - External component files.
|
||||
///
|
||||
/// We currently still have the deprecated XPMs, so we have
|
||||
/// those being used if the user decides not to load themes.
|
||||
///
|
||||
/// @param bLookForExternalFiles uses file iff true.
|
||||
void ThemeBase::LoadThemeAtStartUp( bool bLookForExternalFiles )
|
||||
/// It does not though cause the GUI to refresh.
|
||||
void ThemeBase::LoadTheme( teThemeType Theme )
|
||||
{
|
||||
EnsureInitialised();
|
||||
|
||||
const bool cbBinaryRead =true;
|
||||
const bool cbOkIfNotFound = true;
|
||||
|
||||
// IF not interested in external files,
|
||||
// THEN just use the internal default set.
|
||||
if( !bLookForExternalFiles )
|
||||
{
|
||||
// IF the XPMs have been retired, THEN we'd better use the built-in cache
|
||||
// at start up.
|
||||
// ELSE do nothing, we already have XPM based images.
|
||||
#ifdef XPMS_RETIRED
|
||||
ReadThemeInternal();
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
// ELSE IF can't read the external image cache.
|
||||
else if( !ReadImageCache( cbBinaryRead, cbOkIfNotFound ) )
|
||||
if( !ReadImageCache( Theme, cbOkIfNotFound ) )
|
||||
{
|
||||
// THEN get the default set.
|
||||
ReadThemeInternal();
|
||||
ReadImageCache( GetFallbackThemeType(), !cbOkIfNotFound );
|
||||
|
||||
// JKC: Now we could go on and load the individual images
|
||||
// on top of the default images using the commented out
|
||||
@ -513,7 +510,12 @@ int SourceOutputStream::OpenFile(const wxString & Filename)
|
||||
bOk = File.Open( Filename, wxFile::write );
|
||||
if( bOk )
|
||||
{
|
||||
// DA: Naming of output sourcery
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
File.Write( wxT("// DarkThemeAsCeeCode.h\r\n") );
|
||||
#else
|
||||
File.Write( wxT("// ThemeAsCeeCode.h\r\n") );
|
||||
#endif
|
||||
File.Write( wxT("//\r\n") );
|
||||
File.Write( wxT("// This file was Auto-Generated.\r\n") );
|
||||
File.Write( wxT("// It is included by Theme.cpp.\r\n") );
|
||||
@ -703,7 +705,7 @@ void ThemeBase::WriteImageMap( )
|
||||
return;
|
||||
|
||||
File.Write( wxT("<html>\r\n"));
|
||||
File.Write( wxT("<body>\r\n"));
|
||||
File.Write( wxT("<body bgcolor=\"303030\">\r\n"));
|
||||
File.Write( wxT("<img src=\"ImageCache.png\" usemap=\"#map1\">\r\n" ));
|
||||
File.Write( wxT("<map name=\"map1\">\r\n") );
|
||||
|
||||
@ -781,7 +783,28 @@ void ThemeBase::WriteImageDefs( )
|
||||
}
|
||||
|
||||
|
||||
teThemeType ThemeBase::GetFallbackThemeType(){
|
||||
// Fallback must be an internally supported type,
|
||||
// to guarantee it is found.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
return themeDark;
|
||||
#else
|
||||
return themeClassic;
|
||||
#endif
|
||||
}
|
||||
|
||||
teThemeType ThemeBase::ThemeTypeOfTypeName( const wxString & Name )
|
||||
{
|
||||
wxArrayString aThemes;
|
||||
aThemes.Add( "classic" );
|
||||
aThemes.Add( "dark" );
|
||||
aThemes.Add( "light" );
|
||||
aThemes.Add( "custom" );
|
||||
int themeIx = aThemes.Index( Name );
|
||||
if( themeIx < 0 )
|
||||
return GetFallbackThemeType();
|
||||
return (teThemeType)themeIx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -790,7 +813,7 @@ void ThemeBase::WriteImageDefs( )
|
||||
/// otherwise the data is taken from a compiled in block of memory.
|
||||
/// @param bOkIfNotFound if true means do not report absent file.
|
||||
/// @return true iff we loaded the images.
|
||||
bool ThemeBase::ReadImageCache( bool bBinaryRead, bool bOkIfNotFound)
|
||||
bool ThemeBase::ReadImageCache( teThemeType type, bool bOkIfNotFound)
|
||||
{
|
||||
EnsureInitialised();
|
||||
wxImage ImageCache;
|
||||
@ -802,8 +825,7 @@ bool ThemeBase::ReadImageCache( bool bBinaryRead, bool bOkIfNotFound)
|
||||
// ImageCache.InitAlpha();
|
||||
// }
|
||||
|
||||
// IF bBinary read THEN a normal read from a PNG file
|
||||
if( bBinaryRead )
|
||||
if( type == themeFromFile )
|
||||
{
|
||||
const wxString &FileName = FileNames::ThemeCachePng();
|
||||
if( !wxFileExists( FileName ))
|
||||
@ -829,8 +851,25 @@ bool ThemeBase::ReadImageCache( bool bBinaryRead, bool bOkIfNotFound)
|
||||
// ELSE we are reading from internal storage.
|
||||
else
|
||||
{
|
||||
wxMemoryInputStream InternalStream(
|
||||
(char *)ImageCacheAsData, sizeof(ImageCacheAsData));
|
||||
size_t ImageSize = 0;
|
||||
char * pImage = NULL;
|
||||
switch( type ){
|
||||
case themeClassic :
|
||||
ImageSize = sizeof(ClassicImageCacheAsData);
|
||||
pImage = (char *)ClassicImageCacheAsData;
|
||||
break;
|
||||
default:
|
||||
case themeDark :
|
||||
ImageSize = sizeof(DarkImageCacheAsData);
|
||||
pImage = (char *)DarkImageCacheAsData;
|
||||
break;
|
||||
case themeLight :
|
||||
ImageSize = sizeof(LightImageCacheAsData);
|
||||
pImage = (char *)LightImageCacheAsData;
|
||||
break;
|
||||
}
|
||||
wxMemoryInputStream InternalStream( pImage, ImageSize );
|
||||
|
||||
if( !ImageCache.LoadFile( InternalStream, wxBITMAP_TYPE_PNG ))
|
||||
{
|
||||
// If we get this message, it means that the data in file
|
||||
@ -1013,11 +1052,6 @@ void ThemeBase::SaveComponents()
|
||||
FileNames::ThemeComponentsDir().c_str() ));
|
||||
}
|
||||
|
||||
void ThemeBase::ReadThemeInternal()
|
||||
{
|
||||
// false indicates not using standard binary method.
|
||||
ReadImageCache( false );
|
||||
}
|
||||
|
||||
void ThemeBase::SaveThemeAsCode()
|
||||
{
|
||||
|
17
src/Theme.h
17
src/Theme.h
@ -44,6 +44,14 @@ enum teResourceFlags
|
||||
resFlagInternal = 0x08 // For image manipulation. Don't save or load.
|
||||
};
|
||||
|
||||
enum teThemeType
|
||||
{
|
||||
themeClassic,
|
||||
themeDark,
|
||||
themeLight,
|
||||
themeFromFile,
|
||||
};
|
||||
|
||||
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxImage, ArrayOfImages, AUDACITY_DLL_API);
|
||||
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxBitmap, ArrayOfBitmaps, AUDACITY_DLL_API);
|
||||
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxColour, ArrayOfColours, AUDACITY_DLL_API);
|
||||
@ -93,19 +101,22 @@ public:
|
||||
public:
|
||||
virtual void EnsureInitialised()=0;
|
||||
virtual void ApplyUpdatedImages()=0;
|
||||
void LoadThemeAtStartUp( bool bLookForExternalFiles );
|
||||
void LoadTheme( teThemeType Theme );
|
||||
void RegisterImage( int &iIndex,char const** pXpm, const wxString & Name);
|
||||
void RegisterImage( int &iIndex, const wxImage &Image, const wxString & Name );
|
||||
void RegisterColour( int &iIndex, const wxColour &Clr, const wxString & Name );
|
||||
|
||||
teThemeType GetFallbackThemeType();
|
||||
teThemeType ThemeTypeOfTypeName( const wxString & Name );
|
||||
void CreateImageCache(bool bBinarySave = true);
|
||||
bool ReadImageCache( bool bBinaryRead = true, bool bOkIfNotFound=false);
|
||||
bool ReadImageCache( teThemeType type = themeFromFile, bool bOkIfNotFound=false);
|
||||
void LoadComponents( bool bOkIfNotFound =false);
|
||||
void SaveComponents();
|
||||
void ReadThemeInternal();
|
||||
void SaveThemeAsCode();
|
||||
void WriteImageDefs( );
|
||||
void WriteImageMap( );
|
||||
static bool LoadPreferredTheme();
|
||||
|
||||
|
||||
wxColour & Colour( int iIndex );
|
||||
wxBitmap & Bitmap( int iIndex );
|
||||
|
@ -133,10 +133,10 @@ void Track::SetOwner(TrackList *list, TrackNodePointer node)
|
||||
int Track::GetMinimizedHeight() const
|
||||
{
|
||||
if (GetLink()) {
|
||||
return 20;
|
||||
return 21;
|
||||
}
|
||||
|
||||
return 40;
|
||||
return 42;
|
||||
}
|
||||
|
||||
int Track::GetIndex() const
|
||||
|
@ -192,13 +192,15 @@ class AUDACITY_DLL_API Track /* not final */ : public XMLTagHandler
|
||||
virtual void SetSelected(bool s);
|
||||
void SetLinked (bool l);
|
||||
|
||||
int GetChannel() const { return mChannel; }
|
||||
virtual int GetChannel() const { return mChannel;};
|
||||
virtual double GetOffset() const = 0;
|
||||
|
||||
void Offset(double t) { SetOffset(GetOffset() + t); }
|
||||
virtual void SetOffset (double o) { mOffset = o; }
|
||||
|
||||
void SetChannel(int c) { mChannel = c; }
|
||||
virtual void SetPan( float ){ ;};
|
||||
virtual void SetPanFromChannelType(){ ;};
|
||||
|
||||
// AS: Note that the dirManager is mutable. This is
|
||||
// mostly to support "Duplicate" of const objects,
|
||||
|
@ -371,7 +371,7 @@ BEGIN_EVENT_TABLE(TrackPanel, OverlayPanel)
|
||||
EVT_MENU_RANGE(On16BitID, OnFloatID, TrackPanel::OnFormatChange)
|
||||
EVT_MENU(OnRateOtherID, TrackPanel::OnRateOther)
|
||||
EVT_MENU(OnSwapChannelsID, TrackPanel::OnSwapChannels)
|
||||
EVT_MENU(OnSplitStereoID, TrackPanel::OnSplitStereo)
|
||||
EVT_MENU(OnSplitStereoID, TrackPanel::OnSplitStereoMono)
|
||||
EVT_MENU(OnSplitStereoMonoID, TrackPanel::OnSplitStereoMono)
|
||||
EVT_MENU(OnMergeStereoID, TrackPanel::OnMergeStereo)
|
||||
|
||||
@ -624,13 +624,13 @@ void TrackPanel::BuildMenus(void)
|
||||
|
||||
// include both mono and stereo items as a work around for bug 1250
|
||||
|
||||
mWaveTrackMenu->AppendRadioItem(OnChannelMonoID, _("&Mono"));
|
||||
mWaveTrackMenu->AppendRadioItem(OnChannelLeftID, _("&Left Channel"));
|
||||
mWaveTrackMenu->AppendRadioItem(OnChannelRightID, _("&Right Channel"));
|
||||
// mWaveTrackMenu->AppendRadioItem(OnChannelMonoID, _("&Mono"));
|
||||
// mWaveTrackMenu->AppendRadioItem(OnChannelLeftID, _("&Left Channel"));
|
||||
// mWaveTrackMenu->AppendRadioItem(OnChannelRightID, _("&Right Channel"));
|
||||
mWaveTrackMenu->Append(OnMergeStereoID, _("Ma&ke Stereo Track"));
|
||||
mWaveTrackMenu->Append(OnSwapChannelsID, _("Swap Stereo &Channels"));
|
||||
mWaveTrackMenu->Append(OnSplitStereoID, _("Spl&it Stereo Track"));
|
||||
mWaveTrackMenu->Append(OnSplitStereoMonoID, _("Split Stereo to Mo&no"));
|
||||
// mWaveTrackMenu->Append(OnSplitStereoMonoID, _("Split Stereo to Mo&no"));
|
||||
mWaveTrackMenu->AppendSeparator();
|
||||
|
||||
mWaveTrackMenu->Append(0, _("&Format"), (mFormatMenu = formatMenu.release()));
|
||||
@ -7212,7 +7212,7 @@ void TrackPanel::DrawOutside(Track * t, wxDC * dc, const wxRect & rec,
|
||||
true);
|
||||
}
|
||||
|
||||
mTrackInfo.DrawBordersWithin( dc, rect, bIsWave );
|
||||
//mTrackInfo.DrawBordersWithin( dc, rect, bIsWave );
|
||||
|
||||
auto wt = bIsWave ? static_cast<WaveTrack*>(t) : nullptr;
|
||||
if (bIsWave) {
|
||||
@ -7220,6 +7220,9 @@ void TrackPanel::DrawOutside(Track * t, wxDC * dc, const wxRect & rec,
|
||||
mTrackInfo.DrawMuteSolo(dc, rect, t, (captured && mMouseCapture == IsSoloing), true, HasSoloButton());
|
||||
|
||||
mTrackInfo.DrawSliders(dc, (WaveTrack *)t, rect, captured);
|
||||
|
||||
// DA: For classic Audacity, show stero/mono and rate.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
if (!t->GetMinimized()) {
|
||||
|
||||
int offset = 8;
|
||||
@ -7233,6 +7236,7 @@ void TrackPanel::DrawOutside(Track * t, wxDC * dc, const wxRect & rec,
|
||||
trackRect.x + offset,
|
||||
trackRect.y + 38);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef USE_MIDI
|
||||
@ -7702,6 +7706,9 @@ void TrackPanel::OnTrackMenu(Track *t)
|
||||
theMenu->Enable(OnSwapChannelsID, t->GetLinked() && !unsafe);
|
||||
theMenu->Enable(OnMergeStereoID, canMakeStereo && !unsafe);
|
||||
theMenu->Enable(OnSplitStereoID, t->GetLinked() && !unsafe);
|
||||
|
||||
// Several menu items no longer needed....
|
||||
#if 0
|
||||
theMenu->Enable(OnSplitStereoMonoID, t->GetLinked() && !unsafe);
|
||||
|
||||
// We only need to set check marks. Clearing checks causes problems on Linux (bug 851)
|
||||
@ -7726,6 +7733,7 @@ void TrackPanel::OnTrackMenu(Track *t)
|
||||
theMenu->Enable(OnChannelMonoID, !t->GetLinked());
|
||||
theMenu->Enable(OnChannelLeftID, !t->GetLinked());
|
||||
theMenu->Enable(OnChannelRightID, !t->GetLinked());
|
||||
#endif
|
||||
|
||||
WaveTrack *const track = (WaveTrack *)t;
|
||||
const int display = track->GetDisplay();
|
||||
@ -8056,8 +8064,10 @@ void TrackPanel::SplitStereo(bool stereo)
|
||||
{
|
||||
wxASSERT(mPopupMenuTarget);
|
||||
|
||||
if (!stereo)
|
||||
if (!stereo){
|
||||
mPopupMenuTarget->SetPanFromChannelType();
|
||||
mPopupMenuTarget->SetChannel(Track::MonoChannel);
|
||||
}
|
||||
|
||||
// Assume partner is present, and is wave
|
||||
auto partner = static_cast<WaveTrack*>(mPopupMenuTarget->GetLink());
|
||||
@ -8076,8 +8086,10 @@ void TrackPanel::SplitStereo(bool stereo)
|
||||
if (partner)
|
||||
{
|
||||
partner->SetName(mPopupMenuTarget->GetName());
|
||||
if (!stereo)
|
||||
if (!stereo){
|
||||
partner->SetPanFromChannelType();
|
||||
partner->SetChannel(Track::MonoChannel); // Keep original stereo track name.
|
||||
}
|
||||
|
||||
//On Demand - have each channel add it's own.
|
||||
if (ODManager::IsInstanceCreated() && partner->GetKind() == Track::Wave)
|
||||
@ -8122,7 +8134,9 @@ void TrackPanel::OnMergeStereo(wxCommandEvent & WXUNUSED(event))
|
||||
// Set partner's parameters to match target.
|
||||
partner->Merge(*mPopupMenuTarget);
|
||||
|
||||
mPopupMenuTarget->SetPan( 0.0f );
|
||||
mPopupMenuTarget->SetChannel(Track::LeftChannel);
|
||||
partner->SetPan( 0.0f );
|
||||
partner->SetChannel(Track::RightChannel);
|
||||
|
||||
// Set NEW track heights and minimized state
|
||||
@ -9039,63 +9053,120 @@ int TrackInfo::GetTrackInfoWidth() const
|
||||
return kTrackInfoWidth;
|
||||
}
|
||||
|
||||
int TrackInfo::CalcItemY( int iItem ) const
|
||||
{
|
||||
int y = 1;
|
||||
if( iItem == kItemBarButtons )
|
||||
return y;
|
||||
y+= kTrackInfoBtnSize +2;
|
||||
if( iItem == kItemStatusInfo )
|
||||
return y;
|
||||
|
||||
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||
int y1=y;
|
||||
if( iItem == kItemNoteMute )
|
||||
return y;
|
||||
if( iItem == kItemNoteSolo )
|
||||
return y;
|
||||
y=y1;
|
||||
#endif
|
||||
|
||||
// DA: Does not have status information for a track.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
y+= 30;
|
||||
#else
|
||||
y+= 2;
|
||||
#endif
|
||||
|
||||
if( iItem == kItemMute )
|
||||
return y;
|
||||
|
||||
// DA: Has Mute and Solo on separate lines.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
y+= kTrackInfoBtnSize + 2;
|
||||
#endif
|
||||
|
||||
if( iItem == kItemSolo )
|
||||
return y;
|
||||
y+= kTrackInfoBtnSize + 3;
|
||||
|
||||
if( iItem == kItemGain )
|
||||
return y;
|
||||
y+= 30;
|
||||
if( iItem == kItemPan )
|
||||
return y;
|
||||
y+= 30;
|
||||
return y;
|
||||
}
|
||||
|
||||
void TrackInfo::GetCloseBoxRect(const wxRect & rect, wxRect & dest) const
|
||||
{
|
||||
dest.x = rect.x;
|
||||
dest.y = rect.y;
|
||||
dest.x = rect.x+1;
|
||||
dest.y = rect.y + CalcItemY( kItemBarButtons );
|
||||
dest.width = kTrackInfoBtnSize;
|
||||
dest.height = kTrackInfoBtnSize;
|
||||
}
|
||||
|
||||
void TrackInfo::GetTitleBarRect(const wxRect & rect, wxRect & dest) const
|
||||
{
|
||||
dest.x = rect.x + kTrackInfoBtnSize; // to right of CloseBoxRect
|
||||
dest.y = rect.y;
|
||||
dest.width = kTrackInfoWidth - rect.x - kTrackInfoBtnSize; // to right of CloseBoxRect
|
||||
dest.x = rect.x + kTrackInfoBtnSize+2; // to right of CloseBoxRect
|
||||
dest.y = rect.y + CalcItemY( kItemBarButtons );
|
||||
dest.width = kTrackInfoWidth - rect.x - kTrackInfoBtnSize-1; // to right of CloseBoxRect
|
||||
dest.height = kTrackInfoBtnSize;
|
||||
}
|
||||
|
||||
void TrackInfo::GetMuteSoloRect(const wxRect & rect, wxRect & dest, bool solo, bool bHasSoloButton, const Track *pTrack) const
|
||||
{
|
||||
dest.x = rect.x;
|
||||
|
||||
dest.height = kTrackInfoBtnSize +1;
|
||||
dest.x = rect.x+1;
|
||||
|
||||
int MuteSoloType = 0;
|
||||
|
||||
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||
if (pTrack->GetKind() == Track::Note)
|
||||
dest.y = rect.y + 16;
|
||||
MuteSoloType = kItemNoteMute - kItemMute;
|
||||
#endif
|
||||
|
||||
int yMute = CalcItemY( kItemMute + MuteSoloType );
|
||||
int ySolo = CalcItemY( kItemSolo + MuteSoloType );
|
||||
|
||||
bool bSameRow = ( yMute == ySolo );
|
||||
bool bNarrow = bSameRow && bHasSoloButton;
|
||||
|
||||
if( bNarrow )
|
||||
{
|
||||
dest.width = rect.width / 2-2;
|
||||
if( solo ){
|
||||
dest.x+=dest.width;
|
||||
dest.width-=1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wxASSERT(pTrack->GetKind() == Track::Wave);
|
||||
dest.y = rect.y + 50;
|
||||
dest.width = rect.width - 2 * kTrackInfoBtnSize;
|
||||
dest.x = rect.x + kTrackInfoBtnSize;
|
||||
}
|
||||
#else
|
||||
dest.y = rect.y + 50;
|
||||
#endif
|
||||
dest.width = 48;
|
||||
dest.height = kTrackInfoBtnSize;
|
||||
|
||||
if( !bHasSoloButton )
|
||||
{
|
||||
dest.width +=48;
|
||||
}
|
||||
else if (solo)
|
||||
{
|
||||
dest.x += 48;
|
||||
}
|
||||
if( bSameRow || !solo )
|
||||
dest.y = rect.y + yMute;
|
||||
else
|
||||
dest.y = rect.y + ySolo;
|
||||
|
||||
}
|
||||
|
||||
void TrackInfo::GetGainRect(const wxRect & rect, wxRect & dest) const
|
||||
{
|
||||
dest.x = rect.x + 7;
|
||||
dest.y = rect.y + 70;
|
||||
dest.y = rect.y + CalcItemY( kItemGain );
|
||||
dest.width = 84;
|
||||
dest.height = 25;
|
||||
}
|
||||
|
||||
void TrackInfo::GetPanRect(const wxRect & rect, wxRect & dest) const
|
||||
{
|
||||
dest.x = rect.x + 7;
|
||||
dest.y = rect.y + 100;
|
||||
dest.width = 84;
|
||||
dest.height = 25;
|
||||
GetGainRect( rect, dest );
|
||||
dest.y = rect.y + CalcItemY( kItemPan );
|
||||
}
|
||||
|
||||
#ifdef EXPERIMENTAL_MIDI_OUT
|
||||
@ -9111,10 +9182,10 @@ void TrackInfo::GetVelocityRect(const wxRect & rect, wxRect & dest) const
|
||||
void TrackInfo::GetMinimizeRect(const wxRect & rect, wxRect &dest) const
|
||||
{
|
||||
const int kBlankWidth = kTrackInfoBtnSize + 4;
|
||||
dest.x = rect.x + kBlankWidth;
|
||||
dest.x = rect.x + 4;
|
||||
dest.y = rect.y + rect.height - 19;
|
||||
// Width is kTrackInfoWidth less space on left for track select and on right for sync-lock icon.
|
||||
dest.width = kTrackInfoWidth - (2 * kBlankWidth);
|
||||
dest.width = kTrackInfoWidth - (1.2 * kBlankWidth);
|
||||
dest.height = kTrackInfoBtnSize;
|
||||
}
|
||||
|
||||
@ -9218,6 +9289,7 @@ void TrackInfo::DrawCloseBox(wxDC * dc, const wxRect & rect, bool down) const
|
||||
{
|
||||
wxRect bev;
|
||||
GetCloseBoxRect(rect, bev);
|
||||
AColor::Bevel2(*dc, !down, bev);
|
||||
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
wxPen pen( theTheme.Colour( clrTrackPanelText ));
|
||||
@ -9225,7 +9297,7 @@ void TrackInfo::DrawCloseBox(wxDC * dc, const wxRect & rect, bool down) const
|
||||
#else
|
||||
dc->SetPen(*wxBLACK_PEN);
|
||||
#endif
|
||||
|
||||
bev.Inflate( -1, -1 );
|
||||
// Draw the "X"
|
||||
const int s = 6;
|
||||
|
||||
@ -9239,8 +9311,7 @@ void TrackInfo::DrawCloseBox(wxDC * dc, const wxRect & rect, bool down) const
|
||||
AColor::Line(*dc, rs, ts, ls, bs);
|
||||
AColor::Line(*dc, rs + 1, ts, ls + 1, bs);
|
||||
|
||||
bev.Inflate(-1, -1);
|
||||
AColor::BevelTrackInfo(*dc, !down, bev);
|
||||
// bev.Inflate(-1, -1);
|
||||
}
|
||||
|
||||
void TrackInfo::DrawTitleBar(wxDC * dc, const wxRect & rect, Track * t,
|
||||
@ -9248,7 +9319,8 @@ void TrackInfo::DrawTitleBar(wxDC * dc, const wxRect & rect, Track * t,
|
||||
{
|
||||
wxRect bev;
|
||||
GetTitleBarRect(rect, bev);
|
||||
bev.Inflate(-1, -1);
|
||||
//bev.Inflate(-1, -1);
|
||||
AColor::Bevel2(*dc, !down, bev);
|
||||
|
||||
// Draw title text
|
||||
SetTrackInfoFont(dc);
|
||||
@ -9262,14 +9334,6 @@ void TrackInfo::DrawTitleBar(wxDC * dc, const wxRect & rect, Track * t,
|
||||
dc->GetTextExtent(titleStr, &textWidth, &textHeight);
|
||||
}
|
||||
|
||||
// wxGTK leaves little scraps (antialiasing?) of the
|
||||
// characters if they are repeatedly drawn. This
|
||||
// happens when holding down mouse button and moving
|
||||
// in and out of the title bar. So clear it first.
|
||||
AColor::MediumTrackInfo(dc, t->GetSelected());
|
||||
dc->DrawRectangle(bev);
|
||||
dc->DrawText(titleStr, bev.x + 2, bev.y + (bev.height - textHeight) / 2);
|
||||
|
||||
// Pop-up triangle
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
wxColour c = theTheme.Colour( clrTrackPanelText );
|
||||
@ -9277,6 +9341,19 @@ void TrackInfo::DrawTitleBar(wxDC * dc, const wxRect & rect, Track * t,
|
||||
wxColour c = *wxBLACK;
|
||||
#endif
|
||||
|
||||
// wxGTK leaves little scraps (antialiasing?) of the
|
||||
// characters if they are repeatedly drawn. This
|
||||
// happens when holding down mouse button and moving
|
||||
// in and out of the title bar. So clear it first.
|
||||
// AColor::MediumTrackInfo(dc, t->GetSelected());
|
||||
// dc->DrawRectangle(bev);
|
||||
|
||||
dc->SetTextForeground( c );
|
||||
dc->SetTextBackground( wxTRANSPARENT );
|
||||
dc->DrawText(titleStr, bev.x + 2, bev.y + (bev.height - textHeight) / 2);
|
||||
|
||||
|
||||
|
||||
dc->SetPen(c);
|
||||
dc->SetBrush(c);
|
||||
|
||||
@ -9286,7 +9363,6 @@ void TrackInfo::DrawTitleBar(wxDC * dc, const wxRect & rect, Track * t,
|
||||
bev.y + ((bev.height - (s / 2)) / 2),
|
||||
s);
|
||||
|
||||
AColor::BevelTrackInfo(*dc, !down, bev);
|
||||
}
|
||||
|
||||
/// Draw the Mute or the Solo button, depending on the value of solo.
|
||||
@ -9297,13 +9373,14 @@ void TrackInfo::DrawMuteSolo(wxDC * dc, const wxRect & rect, Track * t,
|
||||
if( solo && !bHasSoloButton )
|
||||
return;
|
||||
GetMuteSoloRect(rect, bev, solo, bHasSoloButton, t);
|
||||
bev.Inflate(-1, -1);
|
||||
//bev.Inflate(-1, -1);
|
||||
|
||||
if (bev.y + bev.height >= rect.y + rect.height - 19)
|
||||
return; // don't draw mute and solo buttons, because they don't fit into track label
|
||||
|
||||
AColor::MediumTrackInfo( dc, t->GetSelected());
|
||||
auto pt = dynamic_cast<const PlayableTrack *>(t);
|
||||
|
||||
#if 0
|
||||
AColor::MediumTrackInfo( dc, t->GetSelected());
|
||||
if( solo )
|
||||
{
|
||||
if( pt && pt->GetSolo() )
|
||||
@ -9322,6 +9399,7 @@ void TrackInfo::DrawMuteSolo(wxDC * dc, const wxRect & rect, Track * t,
|
||||
// AColor::Mute(dc, t->GetMute(), t->GetSelected(), t->GetSolo());
|
||||
dc->SetPen( *wxTRANSPARENT_PEN );//No border!
|
||||
dc->DrawRectangle(bev);
|
||||
#endif
|
||||
|
||||
wxCoord textWidth, textHeight;
|
||||
wxString str = (solo) ?
|
||||
@ -9330,16 +9408,16 @@ void TrackInfo::DrawMuteSolo(wxDC * dc, const wxRect & rect, Track * t,
|
||||
/* i18n-hint: This is on a button that will silence all the other tracks.*/
|
||||
_("Mute");
|
||||
|
||||
SetTrackInfoFont(dc);
|
||||
dc->GetTextExtent(str, &textWidth, &textHeight);
|
||||
dc->DrawText(str, bev.x + (bev.width - textWidth) / 2, bev.y + (bev.height - textHeight) / 2);
|
||||
|
||||
AColor::BevelTrackInfo(
|
||||
AColor::Bevel2(
|
||||
*dc,
|
||||
(solo ? pt->GetSolo() : (pt && pt->GetMute())) == down,
|
||||
bev
|
||||
);
|
||||
|
||||
SetTrackInfoFont(dc);
|
||||
dc->GetTextExtent(str, &textWidth, &textHeight);
|
||||
dc->DrawText(str, bev.x + (bev.width - textWidth) / 2, bev.y + (bev.height - textHeight) / 2);
|
||||
|
||||
if (solo && !down) {
|
||||
// Update the mute button, which may be grayed out depending on
|
||||
// the state of the solo button.
|
||||
@ -9357,6 +9435,8 @@ void TrackInfo::DrawMinimize(wxDC * dc, const wxRect & rect, Track * t, bool dow
|
||||
AColor::MediumTrackInfo(dc, t->GetSelected());
|
||||
dc->DrawRectangle(bev);
|
||||
|
||||
AColor::Bevel2(*dc, !down, bev);
|
||||
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
wxColour c = theTheme.Colour(clrTrackPanelText);
|
||||
dc->SetBrush(c);
|
||||
@ -9371,20 +9451,21 @@ void TrackInfo::DrawMinimize(wxDC * dc, const wxRect & rect, Track * t, bool dow
|
||||
10,
|
||||
t->GetMinimized());
|
||||
|
||||
AColor::BevelTrackInfo(*dc, !down, bev);
|
||||
}
|
||||
|
||||
void TrackInfo::DrawSliders(wxDC *dc, WaveTrack *t, wxRect rect, bool captured) const
|
||||
{
|
||||
wxRect sliderRect;
|
||||
// Larger slidermargin means it disappears sooner on collapsing track.
|
||||
const int sliderMargin = 14;
|
||||
|
||||
GetGainRect(rect, sliderRect);
|
||||
if (sliderRect.y + sliderRect.height < rect.y + rect.height - 19) {
|
||||
if (sliderRect.y + sliderRect.height < rect.y + rect.height - sliderMargin) {
|
||||
GainSlider(t, captured)->OnPaint(*dc);
|
||||
}
|
||||
|
||||
GetPanRect(rect, sliderRect);
|
||||
if (sliderRect.y + sliderRect.height < rect.y + rect.height - 19) {
|
||||
if (sliderRect.y + sliderRect.height < rect.y + rect.height - sliderMargin) {
|
||||
PanSlider(t, captured)->OnPaint(*dc);
|
||||
}
|
||||
}
|
||||
|
@ -76,6 +76,17 @@ enum {
|
||||
kTimerInterval = 50, // milliseconds
|
||||
};
|
||||
|
||||
enum {
|
||||
kItemBarButtons = 0,
|
||||
kItemStatusInfo = 1,
|
||||
kItemMute = 2,
|
||||
kItemSolo = 3,
|
||||
kItemNoteMute = 4,
|
||||
kItemNoteSolo = 5,
|
||||
kItemGain = 6,
|
||||
kItemPan = 7,
|
||||
};
|
||||
|
||||
class AUDACITY_DLL_API TrackInfo
|
||||
{
|
||||
public:
|
||||
@ -83,9 +94,11 @@ public:
|
||||
~TrackInfo();
|
||||
|
||||
private:
|
||||
int CalcItemY( int iItem ) const;
|
||||
int GetTrackInfoWidth() const;
|
||||
void SetTrackInfoFont(wxDC *dc) const;
|
||||
|
||||
|
||||
void DrawBackground(wxDC * dc, const wxRect & rect, bool bSelected, bool bHasMuteSolo, const int labelw, const int vrul) const;
|
||||
void DrawBordersWithin(wxDC * dc, const wxRect & rect, bool bHasMuteSolo ) const;
|
||||
void DrawCloseBox(wxDC * dc, const wxRect & rect, bool down) const;
|
||||
@ -859,7 +872,7 @@ enum : int {
|
||||
|
||||
enum : int {
|
||||
kTrackInfoWidth = 100,
|
||||
kTrackInfoBtnSize = 16 // widely used dimension, usually height
|
||||
kTrackInfoBtnSize = 18 // widely used dimension, usually height
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
@ -90,6 +90,7 @@ bool ZoomInfo::ZoomOutAvailable() const
|
||||
void ZoomInfo::SetZoom(double pixelsPerSecond)
|
||||
{
|
||||
zoom = std::max(gMinZoom, std::min(gMaxZoom, pixelsPerSecond));
|
||||
// DA: Avoids stuck in snap-to
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
// Disable snapping if user zooms in a long way.
|
||||
// Helps stop users be trapped in snap-to.
|
||||
|
@ -199,6 +199,27 @@ void WaveTrack::SetOffset(double o)
|
||||
mOffset = o;
|
||||
}
|
||||
|
||||
int WaveTrack::GetChannel() const
|
||||
{
|
||||
if( mChannel != Track::MonoChannel )
|
||||
return mChannel;
|
||||
auto pan = GetPan();
|
||||
if( pan < -0.99 )
|
||||
return Track::LeftChannel;
|
||||
if( pan > 0.99 )
|
||||
return Track::RightChannel;
|
||||
return mChannel;
|
||||
}
|
||||
|
||||
void WaveTrack::SetPanFromChannelType()
|
||||
{
|
||||
if( mChannel == Track::LeftChannel )
|
||||
SetPan( -1.0f );
|
||||
else if( mChannel == Track::RightChannel )
|
||||
SetPan( 1.0f );
|
||||
};
|
||||
|
||||
|
||||
//static
|
||||
WaveTrack::WaveTrackDisplay WaveTrack::FindDefaultViewMode()
|
||||
{
|
||||
|
@ -104,6 +104,9 @@ class AUDACITY_DLL_API WaveTrack final : public PlayableTrack {
|
||||
virtual ~WaveTrack();
|
||||
double GetOffset() const override;
|
||||
void SetOffset(double o) override;
|
||||
virtual int GetChannel() const override;
|
||||
virtual void SetPanFromChannelType() override;
|
||||
|
||||
|
||||
/** @brief Get the time at which the first clip in the track starts
|
||||
*
|
||||
@ -142,7 +145,7 @@ class AUDACITY_DLL_API WaveTrack final : public PlayableTrack {
|
||||
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
|
||||
bool SetPan(float newPan);
|
||||
#else
|
||||
void SetPan(float newPan);
|
||||
void SetPan(float newPan) override;
|
||||
#endif
|
||||
// Takes gain and pan into account
|
||||
float GetChannelGain(int channel) const;
|
||||
|
@ -14,6 +14,7 @@
|
||||
*//*******************************************************************/
|
||||
|
||||
#include "../Audacity.h"
|
||||
#include "../Experimental.h"
|
||||
#include "DtmfGen.h"
|
||||
|
||||
#include <wx/intl.h>
|
||||
@ -33,12 +34,19 @@ enum
|
||||
ID_DutyCycle,
|
||||
};
|
||||
|
||||
// DA: DTMF for Audacity uses a different string.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
#define SHORT_APP_NAME "darkaudacity"
|
||||
#else
|
||||
#define SHORT_APP_NAME "audacity"
|
||||
#endif
|
||||
|
||||
// Define keys, defaults, minimums, and maximums for the effect parameters
|
||||
//
|
||||
// Name Type Key Def Min Max Scale
|
||||
Param( Sequence, wxString, XO("Sequence"), wxT("audacity"), wxT(""), wxT(""), wxT(""));
|
||||
Param( DutyCycle, double, XO("Duty Cycle"), 55.0, 0.0, 100.0, 10.0 );
|
||||
Param( Amplitude, double, XO("Amplitude"), 0.8, 0.001, 1.0, 1 );
|
||||
// Name Type Key Def Min Max Scale
|
||||
Param( Sequence, wxString, XO("Sequence"), wxT(SHORT_APP_NAME), wxT(""), wxT(""), wxT(""));
|
||||
Param( DutyCycle, double, XO("Duty Cycle"), 55.0, 0.0, 100.0, 10.0 );
|
||||
Param( Amplitude, double, XO("Amplitude"), 0.8, 0.001, 1.0, 1 );
|
||||
|
||||
static const double kFadeInOut = 250.0; // used for fadein/out needed to remove clicking noise
|
||||
|
||||
@ -269,7 +277,7 @@ bool EffectDtmf::Startup()
|
||||
// Load the old "current" settings
|
||||
if (gPrefs->Exists(base))
|
||||
{
|
||||
gPrefs->Read(base + wxT("String"), &dtmfSequence, wxT("audacity"));
|
||||
gPrefs->Read(base + wxT("String"), &dtmfSequence, wxT(SHORT_APP_NAME));
|
||||
gPrefs->Read(base + wxT("DutyCycle"), &dtmfDutyCycle, 550L);
|
||||
gPrefs->Read(base + wxT("Amplitude"), &dtmfAmplitude, 0.8f);
|
||||
|
||||
|
@ -624,6 +624,7 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
|
||||
int w;
|
||||
mdBRuler->ruler.GetMaxSize(&w, NULL);
|
||||
mdBRuler->SetMinSize(wxSize(w, 150)); // height needed for wxGTK
|
||||
mdBRuler->ruler.SetTickColour( wxColour(0,0,0) );
|
||||
|
||||
S.Prop(1);
|
||||
S.AddSpace(0, 1);
|
||||
@ -679,6 +680,8 @@ void EffectEqualization::PopulateOrExchange(ShuttleGui & S)
|
||||
int h;
|
||||
mFreqRuler->ruler.GetMaxSize(NULL, &h);
|
||||
mFreqRuler->SetMinSize(wxSize(wxDefaultCoord, h));
|
||||
mFreqRuler->ruler.SetTickColour( wxColour(0,0,0) );
|
||||
|
||||
|
||||
S.Prop(1);
|
||||
S.SetBorder(1);
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#include "../AudacityApp.h"
|
||||
#include "../Languages.h"
|
||||
#include "../Theme.h"
|
||||
#include "../Prefs.h"
|
||||
#include "../ShuttleGui.h"
|
||||
|
||||
@ -31,6 +32,9 @@
|
||||
|
||||
#include "../Experimental.h"
|
||||
|
||||
#include "ThemePrefs.h"
|
||||
#include "../AColor.h"
|
||||
|
||||
GUIPrefs::GUIPrefs(wxWindow * parent)
|
||||
: PrefsPanel(parent, _("Interface"))
|
||||
{
|
||||
@ -157,6 +161,23 @@ void GUIPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
#endif
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartStatic(_("Theme"));
|
||||
{
|
||||
S.StartRadioButtonGroup(wxT("/GUI/Theme"), wxT("dark"));
|
||||
{
|
||||
S.TieRadioButton(_("Classic"),
|
||||
wxT("classic"));
|
||||
S.TieRadioButton(_("Dark"),
|
||||
wxT("dark"));
|
||||
S.TieRadioButton(_("Light"),
|
||||
wxT("light"));
|
||||
S.TieRadioButton(_("Custom"),
|
||||
wxT("custom"));
|
||||
}
|
||||
S.EndRadioButtonGroup();
|
||||
}
|
||||
S.EndStatic();
|
||||
}
|
||||
|
||||
bool GUIPrefs::Apply()
|
||||
@ -172,7 +193,9 @@ bool GUIPrefs::Apply()
|
||||
gPrefs->Write(wxT("/Locale/Language"), usedLang);
|
||||
gPrefs->Flush();
|
||||
}
|
||||
|
||||
// Reads preference /GUI/Theme
|
||||
theTheme.LoadPreferredTheme();
|
||||
theTheme.ApplyUpdatedImages();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -93,13 +93,10 @@ void ThemePrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
|
||||
#ifdef __WXDEBUG__
|
||||
S.AddFixedText(
|
||||
_("You have compiled Audacity with an extra button, 'Output Sourcery'. This will save a\nC version of the image cache that can be compiled in as a default.")
|
||||
_("This is a debug version of Audacity, with an extra button, 'Output Sourcery'. This will save a\nC version of the image cache that can be compiled in as a default.")
|
||||
);
|
||||
#endif
|
||||
|
||||
S.AddFixedText(
|
||||
_("If 'Load Theme Cache At Startup' is checked, then the Theme Cache will be loaded\nwhen the program starts up.")
|
||||
);
|
||||
S.AddFixedText(
|
||||
_("Saving and loading individual theme files uses a separate file for each image, but is\notherwise the same idea.")
|
||||
);
|
||||
@ -125,14 +122,6 @@ void ThemePrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
S.Id(idReadThemeInternal).AddButton(_("&Defaults"));
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
|
||||
S.StartHorizontalLay(wxALIGN_LEFT);
|
||||
{
|
||||
S.TieCheckBox(_("Load Theme Cache At Startup"),
|
||||
wxT("/Theme/LoadAtStart"),
|
||||
false);
|
||||
}
|
||||
S.EndHorizontalLay();
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
@ -172,7 +161,6 @@ void ThemePrefs::OnSaveThemeComponents(wxCommandEvent & WXUNUSED(event))
|
||||
void ThemePrefs::OnLoadThemeCache(wxCommandEvent & WXUNUSED(event))
|
||||
{
|
||||
theTheme.ReadImageCache();
|
||||
AColor::ReInit();
|
||||
theTheme.ApplyUpdatedImages();
|
||||
}
|
||||
|
||||
@ -186,7 +174,7 @@ void ThemePrefs::OnSaveThemeCache(wxCommandEvent & WXUNUSED(event))
|
||||
/// Read Theme from internal storage.
|
||||
void ThemePrefs::OnReadThemeInternal(wxCommandEvent & WXUNUSED(event))
|
||||
{
|
||||
theTheme.ReadThemeInternal();
|
||||
theTheme.ReadImageCache( theTheme.GetFallbackThemeType() );
|
||||
theTheme.ApplyUpdatedImages();
|
||||
}
|
||||
|
||||
|
@ -218,11 +218,14 @@ void ControlToolBar::RegenerateTooltips()
|
||||
switch (iWinID)
|
||||
{
|
||||
case ID_PLAY_BUTTON:
|
||||
// Without shift
|
||||
commands.push_back(wxT("Play"));
|
||||
// With shift
|
||||
commands.push_back(_("Loop Play"));
|
||||
commands.push_back(wxT("PlayLooped"));
|
||||
break;
|
||||
case ID_RECORD_BUTTON:
|
||||
// Without shift
|
||||
commands.push_back(wxT("Record"));
|
||||
#ifdef PREFER_NEW_TRACKS
|
||||
commands.push_back(_("Append Record"));
|
||||
@ -945,7 +948,6 @@ void ControlToolBar::OnRecord(wxCommandEvent &evt)
|
||||
|
||||
// If SHIFT key was down, the user wants append to tracks
|
||||
int recordingChannels = 0;
|
||||
|
||||
if (shifted) {
|
||||
recordingChannels = gPrefs->Read(wxT("/AudioIO/RecordChannels"), 2);
|
||||
bool sel = false;
|
||||
|
@ -148,10 +148,13 @@ void EditToolBar::Populate()
|
||||
AddSeparator();
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
AddButton(bmpSyncLockTracksUp, bmpSyncLockTracksDown, bmpSyncLockTracksDisabled, ETBSyncLockID,
|
||||
// DA: No Sync Lock edit button.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
AddButton(bmpSyncLockTracksUp, bmpSyncLockTracksDown, bmpSyncLockTracksUp, ETBSyncLockID,
|
||||
_("Sync-Lock Tracks"), true);
|
||||
|
||||
AddSeparator();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
AddButton(bmpZoomIn, bmpZoomIn, bmpZoomInDisabled, ETBZoomInID,
|
||||
@ -172,8 +175,11 @@ void EditToolBar::Populate()
|
||||
mButtons[ETBPasteID]->SetEnabled(false);
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
// DA: Has no sync Lock Button
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
mButtons[ETBSyncLockID]->PushDown();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(EXPERIMENTAL_EFFECTS_RACK)
|
||||
AddSeparator();
|
||||
@ -212,7 +218,10 @@ void EditToolBar::RegenerateTooltips()
|
||||
{ ETBRedoID, wxT("Redo"), XO("Redo") },
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
// DA: No Sync Lock edit button
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
{ ETBSyncLockID, wxT("SyncLock"), XO("Sync-Lock Tracks") },
|
||||
#endif
|
||||
#endif
|
||||
|
||||
{ ETBZoomInID, wxT("ZoomIn"), XO("Zoom In") },
|
||||
@ -245,7 +254,16 @@ void EditToolBar::OnButton(wxCommandEvent &event)
|
||||
// due to bugs elsewhere (see: AudacityProject::UpdateMenus() )
|
||||
|
||||
// Be sure the pop-up happens even if there are exceptions
|
||||
auto cleanup = finally( [&] { SetButton(false, mButtons[id]); } );
|
||||
// Except, Sync Lock button is a toggle...
|
||||
auto cleanup = finally( [&] {
|
||||
bool bIsToggle = false;
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
bIsToggle = bIsToggle || ( id != ETBSyncLockID );
|
||||
#endif
|
||||
if( bIsToggle )
|
||||
SetButton(false, mButtons[id]);
|
||||
}
|
||||
);
|
||||
|
||||
switch (id) {
|
||||
case ETBCutID:
|
||||
@ -274,9 +292,12 @@ void EditToolBar::OnButton(wxCommandEvent &event)
|
||||
p->OnRedo();
|
||||
break;
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
// DA: Has no sync Lock Button
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
case ETBSyncLockID:
|
||||
p->OnSyncLock();
|
||||
return;//avoiding the call to SetButton()
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
case ETBZoomInID:
|
||||
p->OnZoomIn();
|
||||
@ -285,7 +306,7 @@ void EditToolBar::OnButton(wxCommandEvent &event)
|
||||
p->OnZoomOut();
|
||||
break;
|
||||
|
||||
#if 0 // Disabled for version 1.2.0 since it doesn't work quite right...
|
||||
#if 0 // Disabled for version 1.2.0 because we have many other zoomers.
|
||||
case ETBZoomToggleID:
|
||||
p->OnZoomToggle();
|
||||
break;
|
||||
@ -333,6 +354,8 @@ void EditToolBar::EnableDisableButtons()
|
||||
mButtons[ETBPasteID]->SetEnabled(cm->GetEnabled("Paste"));
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
// DA: Does not have Sync-Lock Button.
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
bool bSyncLockTracks;
|
||||
gPrefs->Read(wxT("/GUI/SyncLockTracks"), &bSyncLockTracks, false);
|
||||
|
||||
@ -341,4 +364,5 @@ void EditToolBar::EnableDisableButtons()
|
||||
else
|
||||
mButtons[ETBSyncLockID]->PopUp();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
@ -38,7 +38,10 @@ enum {
|
||||
ETBRedoID,
|
||||
|
||||
#ifdef EXPERIMENTAL_SYNC_LOCK
|
||||
// DA: No Sync Lock edit button
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
ETBSyncLockID,
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ETBZoomInID,
|
||||
|
@ -52,6 +52,7 @@ with changes in the SelectionBar.
|
||||
#include "../Project.h"
|
||||
#include "../Snap.h"
|
||||
#include "../widgets/NumericTextCtrl.h"
|
||||
#include "../AllThemeResources.h"
|
||||
|
||||
IMPLEMENT_CLASS(SelectionBar, ToolBar);
|
||||
|
||||
@ -136,41 +137,62 @@ void SelectionBar::Populate()
|
||||
// Top row (mostly labels)
|
||||
//
|
||||
|
||||
mainSizer->Add(safenew wxStaticText(this, -1, _("Project Rate (Hz):"),
|
||||
wxColour clrText = theTheme.Colour( clrTrackPanelText );
|
||||
wxColour clrText2 = *wxBLUE;
|
||||
wxStaticText * pProjRate = safenew wxStaticText(this, -1, _("Project Rate (Hz):"),
|
||||
// LLL: On my Ubuntu 7.04 install, the label wraps to two lines
|
||||
// and I could not figure out why. Thus...hackage.
|
||||
#if defined(__WXGTK__)
|
||||
wxDefaultPosition, wxSize(110, -1)),
|
||||
wxDefaultPosition, wxSize(110, -1));
|
||||
#else
|
||||
wxDefaultPosition, wxDefaultSize),
|
||||
wxDefaultPosition, wxDefaultSize);
|
||||
#endif
|
||||
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
|
||||
pProjRate->SetForegroundColour( clrText );
|
||||
mainSizer->Add(pProjRate,0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
mainSizer->Add(5, 1);
|
||||
|
||||
mainSizer->Add(safenew wxStaticText(this, -1, _("Snap To:")),
|
||||
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
wxStaticText * pSnapTo = safenew wxStaticText(this, -1, _("Snap To:"));
|
||||
pSnapTo->SetForegroundColour( clrText );
|
||||
mainSizer->Add( pSnapTo, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
|
||||
mainSizer->Add(safenew wxStaticText(this, -1, _("Selection Start:")),
|
||||
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
wxStaticText * pSelStart = safenew wxStaticText(this, -1, _("Selection Start:"));
|
||||
pSelStart->SetForegroundColour( clrText );
|
||||
mainSizer->Add( pSelStart,0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
|
||||
bool showSelectionLength = false;
|
||||
gPrefs->Read(wxT("/ShowSelectionLength"), &showSelectionLength);
|
||||
|
||||
{
|
||||
// Can't set textcolour of radio buttons.
|
||||
// so instead we make the text empty and add in two wxStaticTexts
|
||||
// and we can set the colour of those.
|
||||
// Slight regression relative ot Audacity in that this text is not
|
||||
// clickable/active. You have to click on the actual button.
|
||||
auto hSizer = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
|
||||
mRightEndButton = safenew wxRadioButton(this, OnEndRadioID, _("End"),
|
||||
mRightEndButton = safenew wxRadioButton(this, OnEndRadioID, wxT(""),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
wxRB_GROUP);
|
||||
mRightEndButton->SetName(_("End"));
|
||||
mRightEndButton->SetForegroundColour( clrText );
|
||||
mRightEndButton->SetValue(!showSelectionLength);
|
||||
hSizer->Add(mRightEndButton,
|
||||
0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5);
|
||||
mRightLengthButton = safenew wxRadioButton(this, OnLengthRadioID, _("Length"));
|
||||
wxStaticText * pEndText = safenew wxStaticText(this, -1, _("End"));
|
||||
pEndText->SetForegroundColour( clrText );
|
||||
hSizer->Add(pEndText,
|
||||
0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5);
|
||||
|
||||
mRightLengthButton = safenew wxRadioButton(this, OnLengthRadioID, wxT(""));
|
||||
mRightLengthButton->SetName(_("Length"));
|
||||
mRightLengthButton->SetForegroundColour( clrText );
|
||||
mRightLengthButton->SetValue(showSelectionLength);
|
||||
hSizer->Add(mRightLengthButton,
|
||||
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
wxStaticText * pLengthText = safenew wxStaticText(this, -1, _("Length"));
|
||||
pLengthText->SetForegroundColour( clrText );
|
||||
hSizer->Add(pLengthText,
|
||||
0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5);
|
||||
|
||||
#if defined(__WXMSW__)
|
||||
// Refer to Microsoft KB article 261192 for an explanation as
|
||||
// to why this is needed. We've only experienced it under Win2k
|
||||
@ -180,16 +202,17 @@ void SelectionBar::Populate()
|
||||
safenew wxRadioButton(this, wxID_ANY, _("hidden"),
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
wxRB_GROUP);
|
||||
dummyButton->SetForegroundColour( clrText );
|
||||
dummyButton->Disable();
|
||||
dummyButton->Hide();
|
||||
#endif
|
||||
mainSizer->Add(hSizer.release(), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 0);
|
||||
}
|
||||
|
||||
mainSizer->Add(5, 1);
|
||||
|
||||
mainSizer->Add(safenew wxStaticText(this, -1, _("Audio Position:")),
|
||||
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 0);
|
||||
wxStaticText * pAudioPos = safenew wxStaticText(this, -1, _("Audio Position:"));
|
||||
pAudioPos->SetForegroundColour( clrText );
|
||||
mainSizer->Add(pAudioPos, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 0);
|
||||
|
||||
//
|
||||
// Middle row (mostly time controls)
|
||||
@ -199,6 +222,7 @@ void SelectionBar::Populate()
|
||||
wxT(""),
|
||||
wxDefaultPosition, wxSize(80, -1));
|
||||
mRateBox->SetName(_("Project Rate (Hz):"));
|
||||
//mRateBox->SetForegroundColour( clrText2 );
|
||||
wxTextValidator vld(wxFILTER_INCLUDE_CHAR_LIST);
|
||||
vld.SetIncludes(wxArrayString(10, numbers));
|
||||
mRateBox->SetValidator(vld);
|
||||
@ -246,6 +270,7 @@ void SelectionBar::Populate()
|
||||
mainSizer->Add(mSnapTo,
|
||||
0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
mSnapTo->SetName(_("Snap To"));
|
||||
//mSnapTo->SetForegroundColour( clrText2 );
|
||||
mSnapTo->SetSelection(mListener ? mListener->AS_GetSnapTo() : SNAP_OFF);
|
||||
|
||||
mSnapTo->Connect(wxEVT_SET_FOCUS,
|
||||
@ -260,6 +285,7 @@ void SelectionBar::Populate()
|
||||
mLeftTime = safenew NumericTextCtrl(
|
||||
NumericConverter::TIME, this, OnLeftTimeID, formatName, 0.0, mRate);
|
||||
mLeftTime->SetName(_("Selection Start:"));
|
||||
mLeftTime->SetForegroundColour( clrText );
|
||||
mLeftTime->EnableMenu();
|
||||
mainSizer->Add(mLeftTime, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
|
||||
@ -268,6 +294,7 @@ void SelectionBar::Populate()
|
||||
mRightTime->SetName(wxString(_("Selection ")) + (showSelectionLength ?
|
||||
_("Length") :
|
||||
_("End")));
|
||||
mRightTime->SetForegroundColour( clrText );
|
||||
mRightTime->EnableMenu();
|
||||
mainSizer->Add(mRightTime, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5);
|
||||
|
||||
@ -279,6 +306,7 @@ void SelectionBar::Populate()
|
||||
mAudioTime = safenew NumericTextCtrl(
|
||||
NumericConverter::TIME, this, wxID_ANY, formatName, 0.0, mRate);
|
||||
mAudioTime->SetName(_("Audio Position:"));
|
||||
mAudioTime->SetForegroundColour( clrText );
|
||||
mAudioTime->EnableMenu();
|
||||
mainSizer->Add(mAudioTime, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 0);
|
||||
|
||||
|
@ -685,12 +685,17 @@ void ToolBar::MakeMacRecoloredImage(teBmps eBmpOut, teBmps eBmpIn )
|
||||
|
||||
void ToolBar::MakeRecoloredImage( teBmps eBmpOut, teBmps eBmpIn )
|
||||
{
|
||||
// Don't recolour the buttons...
|
||||
MakeMacRecoloredImage( eBmpOut, eBmpIn );
|
||||
return;
|
||||
wxImage * pSrc = &theTheme.Image( eBmpIn );
|
||||
#if defined( __WXGTK__ )
|
||||
wxColour newColour = wxSystemSettings::GetColour( wxSYS_COLOUR_BACKGROUND );
|
||||
#else
|
||||
wxColour newColour = wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE );
|
||||
#endif
|
||||
|
||||
newColour = wxColour( 60,60,60 );
|
||||
wxColour baseColour = wxColour( 204, 204, 204 );
|
||||
|
||||
auto pPattern = ChangeImageColour( pSrc, baseColour, newColour );
|
||||
@ -802,7 +807,11 @@ void ToolBar::SetButtonToolTip
|
||||
if (!iter->empty()) {
|
||||
if (commandManager) {
|
||||
auto keyStr = commandManager->GetKeyFromName(*iter);
|
||||
if (!keyStr.empty()) {
|
||||
// For DarkAudacity, only add '(shortcut-info)' if there is
|
||||
// some, rather than as in that case in Audacity saying
|
||||
// '(no key)'. More users will be confused by the Audacity
|
||||
// way than helped by it.
|
||||
if (!keyStr.empty()){
|
||||
result += wxT(" ");
|
||||
result += Internat::Parenthesize(KeyStringDisplay(keyStr, true));
|
||||
}
|
||||
@ -851,9 +860,9 @@ void ToolBar::OnPaint( wxPaintEvent & event )
|
||||
// Under GTK, we specifically set the toolbar background to the background
|
||||
// colour in the system theme.
|
||||
#if defined( __WXGTK__ )
|
||||
dc.SetBackground( wxBrush( wxSystemSettings::GetColour( wxSYS_COLOUR_BACKGROUND ) ) );
|
||||
//dc.SetBackground( wxBrush( wxSystemSettings::GetColour( wxSYS_COLOUR_BACKGROUND ) ) );
|
||||
#endif
|
||||
|
||||
dc.SetBackground( wxBrush( theTheme.Colour( clrMedium ) ) );
|
||||
dc.Clear();
|
||||
|
||||
// EXPERIMENTAL_THEMING is set to not apply the gradient
|
||||
@ -861,7 +870,7 @@ void ToolBar::OnPaint( wxPaintEvent & event )
|
||||
#ifdef USE_AQUA_THEME
|
||||
Repaint( &dc );
|
||||
#else
|
||||
|
||||
return;
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
wxImage * mpBackGradient = &theTheme.Image( bmpRecoloredUpLarge );
|
||||
|
||||
|
@ -356,7 +356,7 @@ ToolDock::ToolDock( ToolManager *manager, wxWindow *parent, int dockid ):
|
||||
// Init
|
||||
mManager = manager;
|
||||
memset(mBars, 0, sizeof(mBars)); // otherwise uninitialized
|
||||
|
||||
SetBackgroundColour(theTheme.Colour( clrMedium ));
|
||||
// Use for testing gaps
|
||||
// SetOwnBackgroundColour( wxColour( 255, 0, 0 ) );
|
||||
}
|
||||
@ -872,10 +872,10 @@ void ToolDock::OnPaint( wxPaintEvent & WXUNUSED(event) )
|
||||
|
||||
// Start with a clean background
|
||||
//
|
||||
// Under GTK, we specifically set the toolbar background to the background
|
||||
// colour in the system theme.
|
||||
// Under GTK, we don't set the toolbar background to the background
|
||||
// colour in the system theme. Instead we use our own colour.
|
||||
#if defined( __WXGTK__ )
|
||||
dc.SetBackground( wxBrush( wxSystemSettings::GetColour( wxSYS_COLOUR_BACKGROUND ) ) );
|
||||
dc.SetBackground( wxBrush( theTheme.Colour( clrMedium )));
|
||||
#endif
|
||||
dc.Clear();
|
||||
|
||||
|
@ -186,7 +186,8 @@ void ToolFrame::OnPaint( wxPaintEvent & WXUNUSED(event) )
|
||||
dc.SetPen( wxColour( 90, 90, 90 ) );
|
||||
|
||||
#if !defined(__WXMAC__)
|
||||
dc.SetBackground(wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)));
|
||||
wxBrush clearer( wxColour( 60,60,60 ));
|
||||
dc.SetBackground( clearer );
|
||||
dc.Clear();
|
||||
dc.SetBrush( *wxTRANSPARENT_BRUSH );
|
||||
dc.DrawRectangle( 0, 0, sz.GetWidth(), sz.GetHeight() );
|
||||
@ -490,7 +491,13 @@ static struct DefaultConfigEntry {
|
||||
{ PlayMeterBarID, RecordMeterBarID, NoBarID },
|
||||
{ MixerBarID, PlayMeterBarID, NoBarID },
|
||||
{ EditBarID, MixerBarID, NoBarID },
|
||||
|
||||
// DA: Transcription Toolbar not docked, by default.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
{ TranscriptionBarID, NoBarID, NoBarID },
|
||||
#else
|
||||
{ TranscriptionBarID, EditBarID, NoBarID },
|
||||
#endif
|
||||
|
||||
// start another top dock row
|
||||
{ ScrubbingBarID, NoBarID, TransportBarID },
|
||||
@ -564,6 +571,12 @@ void ToolManager::Reset()
|
||||
|| ndx == SpectralSelectionBarID
|
||||
#endif
|
||||
|| ndx == ScrubbingBarID
|
||||
// DA: Hides three more toolbars.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
|| ndx == DeviceBarID
|
||||
|| ndx == TranscriptionBarID
|
||||
|| ndx == SelectionBarID
|
||||
#endif
|
||||
)
|
||||
{
|
||||
expose = false;
|
||||
@ -1269,9 +1282,11 @@ void ToolManager::OnTimer( wxTimerEvent & event )
|
||||
//
|
||||
void ToolManager::OnIndicatorPaint( wxPaintEvent & event )
|
||||
{
|
||||
// TODO: Better to use a bitmap than a triangular region.
|
||||
wxWindow *w = (wxWindow *)event.GetEventObject();
|
||||
wxPaintDC dc( w );
|
||||
dc.SetBackground( *wxBLUE_BRUSH );
|
||||
wxBrush brush( theTheme.Colour( clrTrackPanelText ) );
|
||||
dc.SetBackground( brush );
|
||||
dc.Clear();
|
||||
}
|
||||
|
||||
|
@ -78,6 +78,10 @@ const int sliderFontSize = 10;
|
||||
const int sliderFontSize = 12;
|
||||
#endif
|
||||
|
||||
#ifndef EXPERIMENTAL_DA
|
||||
#define OPTIONAL_SLIDER_TICKS
|
||||
#endif
|
||||
|
||||
//
|
||||
// TipPanel
|
||||
//
|
||||
@ -568,8 +572,8 @@ void LWSlider::AdjustSize(const wxSize & sz)
|
||||
if( mBitmap ){
|
||||
mBitmap.reset();
|
||||
}
|
||||
mThumbWidth = 14;
|
||||
mThumbHeight = 14;
|
||||
mThumbWidth = 11;
|
||||
mThumbHeight = 20;
|
||||
|
||||
if (mOrientation == wxHORIZONTAL)
|
||||
{
|
||||
@ -649,6 +653,9 @@ void LWSlider::Draw(wxDC & paintDC)
|
||||
// Set up the memory DC
|
||||
wxMemoryDC dc;
|
||||
|
||||
mThumbBitmap = std::make_unique<wxBitmap>(wxBitmap( theTheme.Bitmap( bmpSliderThumb )));
|
||||
|
||||
#ifdef OPTIONAL_SLIDER_TICKS
|
||||
// Create the bitmap
|
||||
mThumbBitmap = std::make_unique<wxBitmap>();
|
||||
mThumbBitmap->Create(mThumbWidth, mThumbHeight, paintDC);
|
||||
@ -711,6 +718,7 @@ void LWSlider::Draw(wxDC & paintDC)
|
||||
mThumbBitmap->SetMask(safenew wxMask(*mThumbBitmap, transparentColour));
|
||||
#endif
|
||||
|
||||
#endif
|
||||
//
|
||||
// Now the background bitmap
|
||||
//
|
||||
@ -734,17 +742,21 @@ void LWSlider::Draw(wxDC & paintDC)
|
||||
#endif
|
||||
|
||||
// Draw the line along which the thumb moves.
|
||||
AColor::Dark(&dc, false);
|
||||
//AColor::Light(&dc, false);
|
||||
AColor::UseThemeColour( &dc, clrTrackPanelText );
|
||||
|
||||
if (mOrientation == wxHORIZONTAL)
|
||||
{
|
||||
AColor::Line(dc, mLeftX, mCenterY, mRightX+2, mCenterY);
|
||||
AColor::Line(dc, mLeftX, mCenterY+1, mRightX+2, mCenterY+1);
|
||||
}
|
||||
else //v if (mStyle != DB_SLIDER) // Let the ruler do it for vertical DB_SLIDER.
|
||||
{
|
||||
AColor::Line(dc, mCenterX, mTopY, mCenterX, mBottomY+2);
|
||||
AColor::Line(dc, mCenterX+1, mTopY, mCenterX+1, mBottomY+2);
|
||||
}
|
||||
|
||||
|
||||
// Draw +/- or L/R first. We need to draw these before the tick marks.
|
||||
if (mStyle == PAN_SLIDER)
|
||||
{
|
||||
@ -850,6 +862,7 @@ void LWSlider::Draw(wxDC & paintDC)
|
||||
divs = mMaxValue - mMinValue + 1;
|
||||
upp = divs / (double)(mHeightY-1);
|
||||
}
|
||||
#ifdef OPTIONAL_SLIDER_TICKS
|
||||
double d = 0.0;
|
||||
int int_d = -1;
|
||||
const int kMax = (mOrientation == wxHORIZONTAL) ? mWidthX : mHeightY;
|
||||
@ -868,7 +881,7 @@ void LWSlider::Draw(wxDC & paintDC)
|
||||
{
|
||||
AColor::Line(dc, mCenterX-tickLength, mTopY+p, mCenterX-1, mTopY+p); // ticks at left
|
||||
}
|
||||
|
||||
#if 0
|
||||
AColor::Dark(&dc, false);
|
||||
|
||||
if (mOrientation == wxHORIZONTAL)
|
||||
@ -879,9 +892,11 @@ void LWSlider::Draw(wxDC & paintDC)
|
||||
{
|
||||
AColor::Line(dc, mCenterX-tickLength+1, mTopY+p+1, mCenterX-1, mTopY+p+1); // ticks at left
|
||||
}
|
||||
#endif
|
||||
}
|
||||
d += upp;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
dc.SelectObject(wxNullBitmap);
|
||||
@ -1555,6 +1570,9 @@ ASlider::ASlider( wxWindow * parent,
|
||||
int orientation /*= wxHORIZONTAL*/)
|
||||
: wxPanel( parent, id, pos, size, wxWANTS_CHARS )
|
||||
{
|
||||
//wxColour Col(parent->GetBackgroundColour());
|
||||
//SetBackgroundColour( Col );
|
||||
SetBackgroundColour( theTheme.Colour( clrMedium ) );
|
||||
mLWSlider = std::make_unique<LWSlider>( this,
|
||||
name,
|
||||
wxPoint(0,0),
|
||||
|
@ -147,10 +147,10 @@ ExpandingToolBar::ExpandingToolBar(wxWindow* parent,
|
||||
mGrabber = safenew ToolBarGrabber(this, -1, this);
|
||||
|
||||
/// \todo check whether this is a memory leak (and check similar code)
|
||||
wxImage hbar = theTheme.Image(bmpToolBarToggle);
|
||||
wxColour magicColor = wxColour(0, 255, 255);
|
||||
ImageArray fourStates = ImageRoll::SplitV(hbar, magicColor);
|
||||
|
||||
//wxImage hbar = theTheme.Image(bmpToolBarToggle);
|
||||
//wxColour magicColor = wxColour(0, 255, 255);
|
||||
//ImageArray fourStates = ImageRoll::SplitV(hbar, magicColor);
|
||||
/*
|
||||
mToggleButton = safenew AButton(this, kToggleButtonID,
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
ImageRoll(ImageRoll::HorizontalRoll,
|
||||
@ -163,7 +163,7 @@ ExpandingToolBar::ExpandingToolBar(wxWindow* parent,
|
||||
fourStates[3], magicColor),
|
||||
true);
|
||||
mToggleButton->UseDisabledAsDownHiliteImage(true);
|
||||
|
||||
*/
|
||||
SetAutoLayout(true);
|
||||
mTimer.SetOwner(this, kTimerID);
|
||||
}
|
||||
@ -542,11 +542,11 @@ void ExpandingToolBar::StartMoving()
|
||||
mDropTarget = kDummyRect;
|
||||
|
||||
wxColour magicColor = wxColour(0, 255, 255);
|
||||
wxImage tgtImage = theTheme.Image(bmpToolBarTarget);
|
||||
ImageRoll tgtImageRoll = ImageRoll(ImageRoll::VerticalRoll,
|
||||
tgtImage,
|
||||
magicColor);
|
||||
mTargetPanel = safenew ImageRollPanel(mAreaParent, -1, tgtImageRoll,
|
||||
// wxImage tgtImage = theTheme.Image(bmpToolBarTarget);
|
||||
// ImageRoll tgtImageRoll = ImageRoll(ImageRoll::VerticalRoll,
|
||||
// tgtImage,
|
||||
// magicColor);
|
||||
mTargetPanel = safenew ImageRollPanel(mAreaParent, -1, //tgtImageRoll,
|
||||
wxDefaultPosition,
|
||||
wxDefaultSize,
|
||||
wxTRANSPARENT_WINDOW);
|
||||
@ -672,6 +672,7 @@ ToolBarGrabber::ToolBarGrabber(wxWindow *parent,
|
||||
wxPanelWrapper(parent, id, pos, size),
|
||||
mOwnerToolBar(ownerToolbar)
|
||||
{
|
||||
#if 0
|
||||
wxImage grabberImages = theTheme.Image(bmpToolBarGrabber);
|
||||
wxColour magicColor = wxColour(0, 255, 255);
|
||||
ImageArray images = ImageRoll::SplitH(grabberImages, magicColor);
|
||||
@ -685,7 +686,7 @@ ToolBarGrabber::ToolBarGrabber(wxWindow *parent,
|
||||
|
||||
SetSizeHints(mImageRoll[0].GetMinSize(),
|
||||
mImageRoll[1].GetMaxSize());
|
||||
|
||||
#endif
|
||||
mState = 0;
|
||||
}
|
||||
|
||||
@ -720,7 +721,7 @@ void ToolBarGrabber::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
|
||||
mImageRoll[mState].Draw(dc, GetClientRect());
|
||||
// mImageRoll[mState].Draw(dc, GetClientRect());
|
||||
}
|
||||
|
||||
void ToolBarGrabber::OnSize(wxSizeEvent & WXUNUSED(event))
|
||||
|
@ -144,7 +144,7 @@ class ToolBarGrabber final : public wxPanelWrapper
|
||||
|
||||
protected:
|
||||
int mState;
|
||||
ImageRoll mImageRoll[2];
|
||||
//ImageRoll mImageRoll[2];
|
||||
ExpandingToolBar *mOwnerToolBar;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
|
@ -32,6 +32,7 @@ around to NEW positions.
|
||||
#include "../Experimental.h"
|
||||
|
||||
#include "../AColor.h"
|
||||
#include "../AllThemeResources.h"
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
/// Methods for Grabber
|
||||
@ -60,6 +61,7 @@ Grabber::Grabber(wxWindow * parent, wxWindowID id)
|
||||
mOver = false;
|
||||
mPressed = false;
|
||||
mAsSpacer = false;
|
||||
SetBackgroundColour( theTheme.Colour( clrMedium ) );
|
||||
|
||||
/* i18n-hint: A 'Grabber' is a region you can click and drag on
|
||||
It's used to drag a track around (when in multi-tool mode) rather
|
||||
@ -117,8 +119,6 @@ void Grabber::DrawGrabber( wxDC & dc )
|
||||
r.SetPosition( wxPoint(0,0) );
|
||||
int y, left, right, top, bottom;
|
||||
|
||||
#ifndef EXPERIMENTAL_THEMING
|
||||
|
||||
AColor::Medium(&dc, mOver );
|
||||
dc.DrawRectangle(r);
|
||||
|
||||
@ -126,24 +126,6 @@ void Grabber::DrawGrabber( wxDC & dc )
|
||||
if( mAsSpacer )
|
||||
r.width -= 1;
|
||||
|
||||
#else
|
||||
// Paint the background
|
||||
if( mOver )
|
||||
{
|
||||
AColor::Medium(&dc, mOver );
|
||||
dc.DrawRectangle(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Get colour from parent...
|
||||
// when parent colour changes, child colour might not!
|
||||
wxBrush brush( GetParent()->GetBackgroundColour() );
|
||||
dc.SetBrush( brush );
|
||||
dc.DrawRectangle(r);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __WXMAC__
|
||||
|
||||
// Add a box
|
||||
|
@ -302,9 +302,16 @@ void HelpSystem::ShowHelpDialog(wxWindow *parent,
|
||||
}
|
||||
else if (releasePageName == wxT("Quick_Help"))
|
||||
{
|
||||
// DA: No bundled help, by default, and different quick-help URL.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
releasePageName = wxT("video") + HelpSystem::ReleaseSuffix + anchor;
|
||||
localHelpPage = wxFileName(FileNames::HtmlHelpDir(), releasePageName).GetFullPath();
|
||||
webHelpPath = wxT("http://www.darkaudacity.com/");
|
||||
#else
|
||||
releasePageName = wxT("quick_help") + HelpSystem::ReleaseSuffix + anchor;
|
||||
localHelpPage = wxFileName(FileNames::HtmlHelpDir(), releasePageName).GetFullPath();
|
||||
webHelpPath = wxT("http://")+HelpSystem::HelpHostname+HelpSystem::HelpServerHomeDir;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -424,16 +424,16 @@ IMPLEMENT_CLASS(ImageRollPanel, wxPanelWrapper)
|
||||
|
||||
ImageRollPanel::ImageRollPanel(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
ImageRoll &imgRoll,
|
||||
//ImageRoll &imgRoll,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
long style):
|
||||
wxPanelWrapper(parent, id, pos, size, style),
|
||||
mImageRoll(imgRoll),
|
||||
//mImageRoll(imgRoll),
|
||||
mLogicalFunction(wxCOPY)
|
||||
{
|
||||
SetSizeHints(mImageRoll.GetMinSize(),
|
||||
mImageRoll.GetMaxSize());
|
||||
// SetSizeHints(mImageRoll.GetMinSize(),
|
||||
// mImageRoll.GetMaxSize());
|
||||
}
|
||||
|
||||
void ImageRollPanel::SetLogicalFunction(wxRasterOperationMode func)
|
||||
@ -445,7 +445,7 @@ void ImageRollPanel::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
|
||||
mImageRoll.Draw(dc, GetClientRect(), mLogicalFunction);
|
||||
// mImageRoll.Draw(dc, GetClientRect(), mLogicalFunction);
|
||||
}
|
||||
|
||||
void ImageRollPanel::OnSize(wxSizeEvent & WXUNUSED(event))
|
||||
|
@ -74,7 +74,7 @@ class ImageRollPanel final : public wxPanelWrapper
|
||||
|
||||
ImageRollPanel(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
ImageRoll &imgRoll,
|
||||
//ImageRoll &imgRoll,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxTAB_TRAVERSAL);
|
||||
@ -85,7 +85,7 @@ class ImageRollPanel final : public wxPanelWrapper
|
||||
void OnSize(wxSizeEvent &evt);
|
||||
|
||||
protected:
|
||||
ImageRoll mImageRoll;
|
||||
//ImageRoll mImageRoll;
|
||||
|
||||
wxRasterOperationMode mLogicalFunction;
|
||||
|
||||
|
@ -256,11 +256,11 @@ Meter::Meter(AudacityProject *project,
|
||||
mRuler.SetFonts(GetFont(), GetFont(), GetFont());
|
||||
mRuler.SetFlip(mStyle != MixerTrackCluster);
|
||||
mRuler.SetLabelEdges(true);
|
||||
//mRuler.SetTickColour( wxColour( 0,0,255 ) );
|
||||
|
||||
UpdatePrefs();
|
||||
|
||||
wxColour backgroundColour =
|
||||
wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
|
||||
wxColour backgroundColour = theTheme.Colour( clrMedium);
|
||||
mBkgndBrush = wxBrush(backgroundColour, wxSOLID);
|
||||
|
||||
mPeakPeakPen = wxPen(theTheme.Colour( clrMeterPeak), 1, wxSOLID);
|
||||
@ -428,6 +428,8 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
std::unique_ptr<wxDC> paintDC{ wxAutoBufferedPaintDCFactory(this) };
|
||||
#endif
|
||||
wxDC & destDC = *paintDC;
|
||||
wxColour clrText = theTheme.Colour( clrTrackPanelText );
|
||||
wxColour clrBoxFill = theTheme.Colour( clrMedium );
|
||||
|
||||
if (mLayoutValid == false)
|
||||
{
|
||||
@ -444,10 +446,10 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
// LLL: Should research USE_AQUA_THEME usefulness...
|
||||
#ifndef USE_AQUA_THEME
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
if( !mMeterDisabled )
|
||||
{
|
||||
mBkgndBrush.SetColour( GetParent()->GetBackgroundColour() );
|
||||
}
|
||||
//if( !mMeterDisabled )
|
||||
//{
|
||||
// mBkgndBrush.SetColour( GetParent()->GetBackgroundColour() );
|
||||
//}
|
||||
#endif
|
||||
|
||||
dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
@ -469,6 +471,7 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
}
|
||||
dc.DrawBitmap(*mIcon, mIconRect.GetPosition(), true);
|
||||
dc.SetFont(GetFont());
|
||||
dc.SetTextForeground( clrText );
|
||||
dc.DrawText(mLeftText, mLeftTextPos.x, mLeftTextPos.y);
|
||||
dc.DrawText(mRightText, mRightTextPos.x, mRightTextPos.y);
|
||||
}
|
||||
@ -569,9 +572,10 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
mRuler.SetTickColour( clrText );
|
||||
dc.SetTextForeground( clrText );
|
||||
// Draw the ruler
|
||||
mRuler.Draw(dc);
|
||||
//mRuler.Draw(dc);
|
||||
|
||||
// Bitmap created...unselect
|
||||
dc.SelectObject(wxNullBitmap);
|
||||
@ -586,11 +590,16 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
DrawMeterBar(destDC, &mBar[i]);
|
||||
}
|
||||
|
||||
destDC.SetTextForeground( clrText );
|
||||
|
||||
#if 0
|
||||
// We can have numbers over the bars, in which case we have to draw them each time.
|
||||
if (mStyle == HorizontalStereoCompact || mStyle == VerticalStereoCompact)
|
||||
{
|
||||
mRuler.SetTickColour( clrText );
|
||||
mRuler.Draw(destDC);
|
||||
}
|
||||
#endif
|
||||
|
||||
// Let the user know they can click to start monitoring
|
||||
if( mIsInput && !mActive )
|
||||
@ -619,11 +628,12 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
Siz.GetHeight(),
|
||||
Siz.GetWidth() );
|
||||
|
||||
destDC.SetBrush( *wxWHITE_BRUSH );
|
||||
destDC.SetPen( *wxGREY_PEN );
|
||||
destDC.SetBrush( wxBrush( clrBoxFill ) );
|
||||
destDC.SetPen( *wxWHITE_PEN );
|
||||
destDC.DrawRectangle( r );
|
||||
destDC.SetBackgroundMode( wxTRANSPARENT );
|
||||
r.SetTop( r.GetBottom() + (gap / 2) );
|
||||
destDC.SetTextForeground( clrText );
|
||||
destDC.DrawRotatedText( Text, r.GetPosition(), 90 );
|
||||
break;
|
||||
}
|
||||
@ -637,12 +647,13 @@ void Meter::OnPaint(wxPaintEvent & WXUNUSED(event))
|
||||
Siz.GetWidth(),
|
||||
Siz.GetHeight() );
|
||||
|
||||
destDC.SetBrush( *wxWHITE_BRUSH );
|
||||
destDC.SetPen( *wxGREY_PEN );
|
||||
destDC.SetBrush( wxBrush( clrBoxFill ) );
|
||||
destDC.SetPen( *wxWHITE_PEN );
|
||||
destDC.DrawRectangle( r );
|
||||
destDC.SetBackgroundMode( wxTRANSPARENT );
|
||||
r.SetLeft( r.GetLeft() + (gap / 2) );
|
||||
r.SetTop( r.GetTop() + (gap / 2));
|
||||
destDC.SetTextForeground( clrText );
|
||||
destDC.DrawText( Text, r.GetPosition() );
|
||||
break;
|
||||
}
|
||||
|
@ -1278,6 +1278,7 @@ void Ruler::Draw(wxDC& dc, const TimeTrack* timetrack)
|
||||
if (!mValid)
|
||||
Update(timetrack);
|
||||
|
||||
mDC->SetTextForeground( mTickColour );
|
||||
#ifdef EXPERIMENTAL_THEMING
|
||||
mDC->SetPen(mPen);
|
||||
#else
|
||||
@ -1983,7 +1984,12 @@ namespace {
|
||||
bool ReadScrubEnabledPref()
|
||||
{
|
||||
bool result {};
|
||||
// DA: Scrub is disabled by default.
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
gPrefs->Read(scrubEnabledPrefName, &result, false);
|
||||
#else
|
||||
gPrefs->Read(scrubEnabledPrefName, &result, true);
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -2058,11 +2064,12 @@ void AdornedRulerPanel::ReCreateButtons()
|
||||
mButtons[iButton++] = button;
|
||||
return button;
|
||||
};
|
||||
auto button = buttonMaker(OnTogglePinnedStateID, bmpPinnedPlayHead, true);
|
||||
auto button = buttonMaker(OnTogglePinnedStateID, bmpPlayPointerPinned, true);
|
||||
ToolBar::MakeAlternateImages(
|
||||
*button, 1,
|
||||
bmpRecoloredUpSmall, bmpRecoloredDownSmall, bmpRecoloredHiliteSmall,
|
||||
bmpUnpinnedPlayHead, bmpUnpinnedPlayHead, bmpUnpinnedPlayHead,
|
||||
//bmpUnpinnedPlayHead, bmpUnpinnedPlayHead, bmpUnpinnedPlayHead,
|
||||
bmpPlayPointer, bmpPlayPointer, bmpPlayPointer,
|
||||
size);
|
||||
|
||||
UpdateButtonStates();
|
||||
@ -3214,12 +3221,6 @@ void AdornedRulerPanel::DoDrawIndicator
|
||||
dc->DrawPolygon( 3, tri );
|
||||
}
|
||||
else {
|
||||
// synonyms... (makes compatibility with DarkAudacity easier).
|
||||
#define bmpPlayPointerPinned bmpPinnedPlayHead
|
||||
#define bmpPlayPointer bmpUnpinnedPlayHead
|
||||
#define bmpRecordPointerPinned bmpPinnedRecordHead
|
||||
#define bmpRecordPointer bmpUnpinnedRecordHead
|
||||
|
||||
bool pinned = TracksPrefs::GetPinnedHeadPreference();
|
||||
wxBitmap & bmp = theTheme.Bitmap( pinned ?
|
||||
(playing ? bmpPlayPointerPinned : bmpRecordPointerPinned) :
|
||||
|
@ -1,6 +1,14 @@
|
||||
AudacityLogo ICON "audacity.ico"
|
||||
#include "wx/msw/wx.rc"
|
||||
#define IN_RC
|
||||
#include "Audacity.h"
|
||||
#include "Experimental.h"
|
||||
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
AudacityLogo ICON "darkaudacity.ico"
|
||||
#else
|
||||
AudacityLogo ICON "audacity.ico"
|
||||
#endif
|
||||
|
||||
#include "wx/msw/wx.rc"
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
@ -22,15 +30,27 @@ BEGIN
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "The Audacity Team"
|
||||
VALUE "FileDescription", "Audacity®, the Free, Cross-Platform Sound Editor"
|
||||
#ifdef EXPERIMENTAL_DA
|
||||
VALUE "CompanyName", "Extended Audacity Team"
|
||||
VALUE "FileDescription", "A customised Audacity® Cross-Platform Sound Editor"
|
||||
VALUE "FileVersion", AUDACITY_FILE_VERSION
|
||||
VALUE "InternalName", "DarkAudacity"
|
||||
VALUE "LegalCopyright", "Copyright © 2017. All rights reserved."
|
||||
VALUE "LegalTrademarks", "Audacity® is a registered trademark of Dominic Mazzoni."
|
||||
VALUE "OriginalFilename", "DarkAudacity.exe"
|
||||
VALUE "ProductName", "DarkAudacity"
|
||||
VALUE "ProductVersion", AUDACITY_FILE_VERSION
|
||||
#else
|
||||
VALUE "CompanyName", "Audacity Team"
|
||||
VALUE "FileDescription", "Audacity® Cross-Platform Sound Editor"
|
||||
VALUE "FileVersion", AUDACITY_FILE_VERSION
|
||||
VALUE "InternalName", "Audacity"
|
||||
VALUE "LegalCopyright", "Copyright © 2017. All rights reserved."
|
||||
VALUE "LegalTrademarks", "Audacity® is a registered trademark of Dominic Mazzoni."
|
||||
VALUE "OriginalFilename", "Audacity.exe"
|
||||
VALUE "ProductName", "Audacity®"
|
||||
VALUE "ProductName", "Audacity"
|
||||
VALUE "ProductVersion", AUDACITY_FILE_VERSION
|
||||
#endif
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
BIN
win/darkaudacity.ico
Normal file
BIN
win/darkaudacity.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 403 KiB |
Loading…
x
Reference in New Issue
Block a user