Merge remote-tracking branch 'refs/remotes/project64/master'
This commit is contained in:
commit
9d718182ec
|
@ -0,0 +1,16 @@
|
||||||
|
# All files that are binary and should not be normalized
|
||||||
|
|
||||||
|
# Images
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.psd binary
|
||||||
|
*.gif binary
|
||||||
|
*.bmp binary
|
||||||
|
*.ico binary
|
||||||
|
*.cur binary
|
||||||
|
|
||||||
|
# Binary data
|
||||||
|
*.exe binary
|
||||||
|
*.dll binary
|
||||||
|
*.e32 binary
|
||||||
|
*.lib binary
|
|
@ -4,6 +4,15 @@
|
||||||
*.sdf
|
*.sdf
|
||||||
*.suo
|
*.suo
|
||||||
*.user
|
*.user
|
||||||
|
*.opendb
|
||||||
|
|
||||||
|
# compiler-generated sources (MSVC, GCC)
|
||||||
|
*.asm
|
||||||
|
*.s
|
||||||
|
|
||||||
|
# assembled linker objects (GCC)
|
||||||
|
*.o
|
||||||
|
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
/Bin/Debug
|
/Bin/Debug
|
||||||
/Bin/Debug64
|
/Bin/Debug64
|
||||||
|
@ -47,5 +56,10 @@ Thumbs.db
|
||||||
/Plugin64/RSP/pdb
|
/Plugin64/RSP/pdb
|
||||||
/Plugin64/RSP/RSP 1.7.dll
|
/Plugin64/RSP/RSP 1.7.dll
|
||||||
/Plugin64/RSP/RSP_d 1.7.dll
|
/Plugin64/RSP/RSP_d 1.7.dll
|
||||||
/Source/3rd Party/wx/lib/vc_lib/mswu/wx/msw/rcdefs.h
|
/Source/3rdParty/wx/lib/vc_lib/msw/wx/setup.h
|
||||||
/Source/3rd Party/wx/lib/vc_lib/mswud/wx/msw/rcdefs.h
|
/Source/3rdParty/wx/lib/vc_lib/mswd/wx/setup.h
|
||||||
|
/Source/3rdParty/wx/lib/vc_lib/mswu/wx/msw/rcdefs.h
|
||||||
|
/Source/3rdParty/wx/lib/vc_lib/mswu/wx/setup.h
|
||||||
|
/Source/3rdParty/wx/lib/vc_lib/mswud/wx/msw/rcdefs.h
|
||||||
|
/Source/3rdParty/wx/lib/vc_lib/mswud/wx/setup.h
|
||||||
|
/Save
|
||||||
|
|
Binary file not shown.
|
@ -182,6 +182,7 @@ Internal Name=1080 SNOWBOARDING
|
||||||
alt_tex_size=1
|
alt_tex_size=1
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
optimize_texrect=1
|
optimize_texrect=1
|
||||||
swapmode=2
|
swapmode=2
|
||||||
|
|
||||||
|
@ -190,6 +191,7 @@ Good Name=1080 Snowboarding (JU) (M2)
|
||||||
Internal Name=1080 SNOWBOARDING
|
Internal Name=1080 SNOWBOARDING
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
optimize_texrect=1
|
optimize_texrect=1
|
||||||
swapmode=2
|
swapmode=2
|
||||||
|
|
||||||
|
@ -205,26 +207,31 @@ use_sts1_only=1
|
||||||
Good Name=A Bug's Life (E)
|
Good Name=A Bug's Life (E)
|
||||||
Internal Name=A Bug's Life
|
Internal Name=A Bug's Life
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
[2B38AEC0-6350B810-C:46]
|
[2B38AEC0-6350B810-C:46]
|
||||||
Good Name=A Bug's Life (F)
|
Good Name=A Bug's Life (F)
|
||||||
Internal Name=A Bug's Life
|
Internal Name=A Bug's Life
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
[DFF227D9-0D4D8169-C:44]
|
[DFF227D9-0D4D8169-C:44]
|
||||||
Good Name=A Bug's Life (G)
|
Good Name=A Bug's Life (G)
|
||||||
Internal Name=A Bug's Life
|
Internal Name=A Bug's Life
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
[F63B89CE-4582D57D-C:49]
|
[F63B89CE-4582D57D-C:49]
|
||||||
Good Name=A Bug's Life (I)
|
Good Name=A Bug's Life (I)
|
||||||
Internal Name=A Bug's Life
|
Internal Name=A Bug's Life
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
[82DC04FD-CF2D82F4-C:45]
|
[82DC04FD-CF2D82F4-C:45]
|
||||||
Good Name=A Bug's Life (U)
|
Good Name=A Bug's Life (U)
|
||||||
Internal Name=A Bug's Life
|
Internal Name=A Bug's Life
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
[62F6BE95-F102D6D6-C:50]
|
[62F6BE95-F102D6D6-C:50]
|
||||||
Good Name=AeroFighters Assault (E) (M3)
|
Good Name=AeroFighters Assault (E) (M3)
|
||||||
|
@ -256,12 +263,14 @@ Good Name=Akumajou Dracula Mokushiroku - Real Action Adventure (J)
|
||||||
Internal Name=DRACULA MOKUSHIROKU
|
Internal Name=DRACULA MOKUSHIROKU
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
old_style_adither=1
|
||||||
|
|
||||||
[A5533106-B9F25E5B-C:4A]
|
[A5533106-B9F25E5B-C:4A]
|
||||||
Good Name=Akumajou Dracula Mokushiroku Gaiden - Legend of Cornell (J)
|
Good Name=Akumajou Dracula Mokushiroku Gaiden - Legend of Cornell (J)
|
||||||
Internal Name=DRACULA MOKUSHIROKU2
|
Internal Name=DRACULA MOKUSHIROKU2
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
old_style_adither=1
|
||||||
|
|
||||||
[D9EDD54D-6BB8E274-C:50]
|
[D9EDD54D-6BB8E274-C:50]
|
||||||
Good Name=All-Star Baseball '99 (E)
|
Good Name=All-Star Baseball '99 (E)
|
||||||
|
@ -626,12 +635,14 @@ Good Name=Castlevania - Legacy of Darkness (E) (M3)
|
||||||
Internal Name=CASTLEVANIA2
|
Internal Name=CASTLEVANIA2
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
old_style_adither=1
|
||||||
|
|
||||||
[1CC06338-87388926-C:45]
|
[1CC06338-87388926-C:45]
|
||||||
Good Name=Castlevania - Legacy of Darkness (U)
|
Good Name=Castlevania - Legacy of Darkness (U)
|
||||||
Internal Name=CASTLEVANIA2
|
Internal Name=CASTLEVANIA2
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
old_style_adither=1
|
||||||
|
|
||||||
[DCCF2134-9DD63578-C:50]
|
[DCCF2134-9DD63578-C:50]
|
||||||
Good Name=Centre Court Tennis (E)
|
Good Name=Centre Court Tennis (E)
|
||||||
|
@ -789,11 +800,13 @@ fix_tex_coord=16
|
||||||
[7ED67CD4-B4415E6D-C:50]
|
[7ED67CD4-B4415E6D-C:50]
|
||||||
Good Name=Dark Rift (E)
|
Good Name=Dark Rift (E)
|
||||||
Internal Name=DARK RIFT
|
Internal Name=DARK RIFT
|
||||||
|
fb_smart=0
|
||||||
force_microcheck=1
|
force_microcheck=1
|
||||||
|
|
||||||
[A4A52B58-23759841-C:45]
|
[A4A52B58-23759841-C:45]
|
||||||
Good Name=Dark Rift (U)
|
Good Name=Dark Rift (U)
|
||||||
Internal Name=DARK RIFT
|
Internal Name=DARK RIFT
|
||||||
|
fb_smart=0
|
||||||
force_microcheck=1
|
force_microcheck=1
|
||||||
|
|
||||||
[F5363349-DBF9D21B-C:45]
|
[F5363349-DBF9D21B-C:45]
|
||||||
|
@ -834,6 +847,7 @@ Internal Name=DONKEY KONG 64
|
||||||
depth_bias=64
|
depth_bias=64
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[053C89A7-A5064302-C:4A]
|
[053C89A7-A5064302-C:4A]
|
||||||
|
@ -842,6 +856,7 @@ Internal Name=DONKEY KONG 64
|
||||||
depth_bias=64
|
depth_bias=64
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[EC58EABF-AD7C7169-C:45]
|
[EC58EABF-AD7C7169-C:45]
|
||||||
|
@ -850,6 +865,7 @@ Internal Name=DONKEY KONG 64
|
||||||
depth_bias=64
|
depth_bias=64
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[0DD4ABAB-B5A2A91E-C:45]
|
[0DD4ABAB-B5A2A91E-C:45]
|
||||||
|
@ -857,6 +873,7 @@ Good Name=Donkey Kong 64 (U) (Kiosk Demo)
|
||||||
Internal Name=D K DISPLAY
|
Internal Name=D K DISPLAY
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[2C739EAC-9EF77726-C:50]
|
[2C739EAC-9EF77726-C:50]
|
||||||
Good Name=Doom 64 (E)
|
Good Name=Doom 64 (E)
|
||||||
|
@ -979,26 +996,31 @@ filtering=2
|
||||||
Good Name=Excitebike 64 (E)
|
Good Name=Excitebike 64 (E)
|
||||||
Internal Name=EXCITEBIKE64
|
Internal Name=EXCITEBIKE64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[861C3519-F6091CE5-C:4A]
|
[861C3519-F6091CE5-C:4A]
|
||||||
Good Name=Excitebike 64 (J)
|
Good Name=Excitebike 64 (J)
|
||||||
Internal Name=EXCITEBIKE64
|
Internal Name=EXCITEBIKE64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[07861842-A12EBC9F-C:45]
|
[07861842-A12EBC9F-C:45]
|
||||||
Good Name=Excitebike 64 (U) (V1.0)
|
Good Name=Excitebike 64 (U) (V1.0)
|
||||||
Internal Name=EXCITEBIKE64
|
Internal Name=EXCITEBIKE64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[F9D411E3-7CB29BC0-C:45]
|
[F9D411E3-7CB29BC0-C:45]
|
||||||
Good Name=Excitebike 64 (U) (V1.1)
|
Good Name=Excitebike 64 (U) (V1.1)
|
||||||
Internal Name=EXCITEBIKE64
|
Internal Name=EXCITEBIKE64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[AF754F7B-1DD17381-C:45]
|
[AF754F7B-1DD17381-C:45]
|
||||||
Good Name=Excitebike 64 (U) (Kiosk Demo)
|
Good Name=Excitebike 64 (U) (Kiosk Demo)
|
||||||
Internal Name=EXCITEBIKE64
|
Internal Name=EXCITEBIKE64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[8E9D834E-1E8B29A9-C:50]
|
[8E9D834E-1E8B29A9-C:50]
|
||||||
Good Name=Extreme-G (E) (M5)
|
Good Name=Extreme-G (E) (M5)
|
||||||
|
@ -1459,7 +1481,6 @@ swapmode=2
|
||||||
[E436467A-82DE8F9B-C:45]
|
[E436467A-82DE8F9B-C:45]
|
||||||
Good Name=Indy Racing 2000 (U)
|
Good Name=Indy Racing 2000 (U)
|
||||||
Internal Name=INDY RACING 2000
|
Internal Name=INDY RACING 2000
|
||||||
fb_render=0
|
|
||||||
fb_smart=0
|
fb_smart=0
|
||||||
|
|
||||||
[336364A0-06C8D5BF-C:58]
|
[336364A0-06C8D5BF-C:58]
|
||||||
|
@ -2235,6 +2256,7 @@ wrap_big_tex=1
|
||||||
Good Name=Nintama Rantarou 64 Game Gallery (J)
|
Good Name=Nintama Rantarou 64 Game Gallery (J)
|
||||||
Internal Name=NINTAMAGAMEGALLERY64
|
Internal Name=NINTAMAGAMEGALLERY64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_smart=0
|
||||||
force_microcheck=1
|
force_microcheck=1
|
||||||
|
|
||||||
[8A97A197-272DF6C1-C:50]
|
[8A97A197-272DF6C1-C:50]
|
||||||
|
@ -2252,6 +2274,13 @@ Good Name=Nuclear Strike 64 (U)
|
||||||
Internal Name=NUCLEARSTRIKE64
|
Internal Name=NUCLEARSTRIKE64
|
||||||
buff_clear=0
|
buff_clear=0
|
||||||
|
|
||||||
|
[D83BB920-CC406416-C:4A]
|
||||||
|
Good Name=Nushi Duri 64 (J) (V1.0)
|
||||||
|
buff_clear=1
|
||||||
|
depthmode=0
|
||||||
|
force_microcheck=1
|
||||||
|
wrap_big_tex=0
|
||||||
|
|
||||||
[C5F1DE79-5D4BEB6E-C:4A]
|
[C5F1DE79-5D4BEB6E-C:4A]
|
||||||
Good Name=Nushi Duri 64 (J) (V1.1)
|
Good Name=Nushi Duri 64 (J) (V1.1)
|
||||||
Internal Name=ǼÂÞØ64
|
Internal Name=ǼÂÞØ64
|
||||||
|
@ -2329,6 +2358,7 @@ Internal Name=Perfect Dark
|
||||||
decrease_fillrect_edge=1
|
decrease_fillrect_edge=1
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
optimize_texrect=0
|
optimize_texrect=0
|
||||||
useless_is_useless=1
|
useless_is_useless=1
|
||||||
|
@ -2339,6 +2369,7 @@ Internal Name=PERFECT DARK
|
||||||
decrease_fillrect_edge=1
|
decrease_fillrect_edge=1
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
optimize_texrect=0
|
optimize_texrect=0
|
||||||
useless_is_useless=1
|
useless_is_useless=1
|
||||||
|
@ -2349,6 +2380,7 @@ Internal Name=Perfect Dark
|
||||||
decrease_fillrect_edge=1
|
decrease_fillrect_edge=1
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
optimize_texrect=0
|
optimize_texrect=0
|
||||||
useless_is_useless=1
|
useless_is_useless=1
|
||||||
|
@ -2359,10 +2391,35 @@ Internal Name=Perfect Dark
|
||||||
decrease_fillrect_edge=1
|
decrease_fillrect_edge=1
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
optimize_texrect=0
|
optimize_texrect=0
|
||||||
useless_is_useless=1
|
useless_is_useless=1
|
||||||
|
|
||||||
|
[766309EA-3F64A369-C:45]
|
||||||
|
Good Name=Perfect Dark XBLA Mp3 (1.0)
|
||||||
|
decrease_fillrect_edge=1
|
||||||
|
depthmode=1
|
||||||
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
|
filtering=1
|
||||||
|
optimize_texrect=0
|
||||||
|
useless_is_useless=1
|
||||||
|
|
||||||
|
[EE08C602-6BC2D5A6-C:50]
|
||||||
|
Good Name=PGA European Tour (E) (M5)
|
||||||
|
Internal Name=PGA European Tour
|
||||||
|
buff_clear=0
|
||||||
|
fb_read_always=1
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
|
[B54CE881-BCCB6126-C:45]
|
||||||
|
Good Name=PGA European Tour (U)
|
||||||
|
Internal Name=PGA European Tour
|
||||||
|
buff_clear=0
|
||||||
|
fb_read_always=1
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
[1AA05AD5-46F52D80-C:50]
|
[1AA05AD5-46F52D80-C:50]
|
||||||
Good Name=Pilotwings 64 (E) (M3)
|
Good Name=Pilotwings 64 (E) (M3)
|
||||||
Internal Name=Pilot Wings64
|
Internal Name=Pilot Wings64
|
||||||
|
@ -2726,8 +2783,10 @@ force_quad3d=1
|
||||||
Good Name=Pro Mahjong Tsuwamono 64 - Jansou Battle ni Chousen (J)
|
Good Name=Pro Mahjong Tsuwamono 64 - Jansou Battle ni Chousen (J)
|
||||||
Internal Name=TSUWAMONO64
|
Internal Name=TSUWAMONO64
|
||||||
depthmode=0
|
depthmode=0
|
||||||
|
fb_smart=0 //disabling FB is a horrible hack
|
||||||
force_microcheck=1
|
force_microcheck=1
|
||||||
|
|
||||||
|
|
||||||
//================ Q ================
|
//================ Q ================
|
||||||
[16931D74-65DC6D34-C:50]
|
[16931D74-65DC6D34-C:50]
|
||||||
Good Name=Quake 64 (E)
|
Good Name=Quake 64 (E)
|
||||||
|
@ -2755,6 +2814,7 @@ Internal Name=QUAKE II
|
||||||
Good Name=Quest 64 (U)
|
Good Name=Quest 64 (U)
|
||||||
Internal Name=Quest 64
|
Internal Name=Quest 64
|
||||||
depthmode=1
|
depthmode=1
|
||||||
|
filtering=2
|
||||||
|
|
||||||
//================ R ================
|
//================ R ================
|
||||||
[2877AC2D-C3DC139A-C:44]
|
[2877AC2D-C3DC139A-C:44]
|
||||||
|
@ -2975,6 +3035,7 @@ Internal Name=Sin and Punishment
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
old_style_adither=1
|
||||||
|
|
||||||
[C2751D1A-F8C19BFF-C:50]
|
[C2751D1A-F8C19BFF-C:50]
|
||||||
Good Name=Snowboard Kids 2 (E)
|
Good Name=Snowboard Kids 2 (E)
|
||||||
|
@ -3143,7 +3204,7 @@ Good Name=Super Mario 64 (E) (M3)
|
||||||
Internal Name=SUPER MARIO 64
|
Internal Name=SUPER MARIO 64
|
||||||
depth_bias=32
|
depth_bias=32
|
||||||
depthmode=1
|
depthmode=1
|
||||||
filtering=1
|
filtering=0
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[4EAA3D0E-74757C24-C:4A]
|
[4EAA3D0E-74757C24-C:4A]
|
||||||
|
@ -3151,7 +3212,7 @@ Good Name=Super Mario 64 (J)
|
||||||
Internal Name=SUPER MARIO 64
|
Internal Name=SUPER MARIO 64
|
||||||
depth_bias=32
|
depth_bias=32
|
||||||
depthmode=1
|
depthmode=1
|
||||||
filtering=1
|
filtering=0
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[635A2BFF-8B022326-C:45]
|
[635A2BFF-8B022326-C:45]
|
||||||
|
@ -3159,7 +3220,7 @@ Good Name=Super Mario 64 (U)
|
||||||
Internal Name=SUPER MARIO 64
|
Internal Name=SUPER MARIO 64
|
||||||
depth_bias=32
|
depth_bias=32
|
||||||
depthmode=1
|
depthmode=1
|
||||||
filtering=1
|
filtering=0
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[D6FBA4A8-6326AA2C-C:4A]
|
[D6FBA4A8-6326AA2C-C:4A]
|
||||||
|
@ -3167,7 +3228,7 @@ Good Name=Super Mario 64 - Shindou Edition (J)
|
||||||
Internal Name=SUPERMARIO64
|
Internal Name=SUPERMARIO64
|
||||||
depth_bias=32
|
depth_bias=32
|
||||||
depthmode=1
|
depthmode=1
|
||||||
filtering=1
|
filtering=0
|
||||||
lodmode=1
|
lodmode=1
|
||||||
|
|
||||||
[66572080-28E348E1-C:4A]
|
[66572080-28E348E1-C:4A]
|
||||||
|
@ -3263,6 +3324,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3272,6 +3334,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3281,6 +3344,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3290,6 +3354,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3299,6 +3364,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3308,6 +3374,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3317,6 +3384,7 @@ Internal Name=MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3326,6 +3394,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[B044B569-373C1985-C:50]
|
[B044B569-373C1985-C:50]
|
||||||
|
@ -3334,6 +3403,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[B2055FBD-0BAB4E0C-C:50]
|
[B2055FBD-0BAB4E0C-C:50]
|
||||||
|
@ -3342,6 +3412,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[F3DD35BA-4152E075-C:45]
|
[F3DD35BA-4152E075-C:45]
|
||||||
|
@ -3350,6 +3421,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[EC7011B7-7616D72B-C:45]
|
[EC7011B7-7616D72B-C:45]
|
||||||
|
@ -3358,6 +3430,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[D43DA81F-021E1E19-C:45]
|
[D43DA81F-021E1E19-C:45]
|
||||||
|
@ -3366,6 +3439,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[693BA2AE-B7F14E9F-C:45]
|
[693BA2AE-B7F14E9F-C:45]
|
||||||
|
@ -3374,6 +3448,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[1D4136F3-AF63EEA9-C:50]
|
[1D4136F3-AF63EEA9-C:50]
|
||||||
|
@ -3382,6 +3457,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[27A3831D-B505A533-C:45]
|
[27A3831D-B505A533-C:45]
|
||||||
|
@ -3390,6 +3466,7 @@ Internal Name=ZELDA MASTER QUEST
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[1D4136F3-AF63EEA9-C:45]
|
[1D4136F3-AF63EEA9-C:45]
|
||||||
|
@ -3398,6 +3475,7 @@ Internal Name=ZELDA MASTER QUEST
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[917D18F6-69BC5453-C:45]
|
[917D18F6-69BC5453-C:45]
|
||||||
|
@ -3406,6 +3484,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[F034001A-AE47ED06-C:45]
|
[F034001A-AE47ED06-C:45]
|
||||||
|
@ -3414,6 +3493,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[E61CFF0A-CE1C0D71-C:50]
|
[E61CFF0A-CE1C0D71-C:50]
|
||||||
|
@ -3466,25 +3546,33 @@ filtering=1
|
||||||
Good Name=Tom Clancy's Rainbow Six (E)
|
Good Name=Tom Clancy's Rainbow Six (E)
|
||||||
Internal Name=RAINBOW SIX
|
Internal Name=RAINBOW SIX
|
||||||
depthmode=1
|
depthmode=1
|
||||||
|
fb_render=1
|
||||||
increase_texrect_edge=1
|
increase_texrect_edge=1
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
[486BF335-034DCC81-C:46]
|
[486BF335-034DCC81-C:46]
|
||||||
Good Name=Tom Clancy's Rainbow Six (F)
|
Good Name=Tom Clancy's Rainbow Six (F)
|
||||||
Internal Name=RAINBOW SIX
|
Internal Name=RAINBOW SIX
|
||||||
depthmode=1
|
depthmode=1
|
||||||
|
fb_render=1
|
||||||
increase_texrect_edge=1
|
increase_texrect_edge=1
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
[8D412933-588F64DB-C:44]
|
[8D412933-588F64DB-C:44]
|
||||||
Good Name=Tom Clancy's Rainbow Six (G)
|
Good Name=Tom Clancy's Rainbow Six (G)
|
||||||
Internal Name=RAINBOW SIX
|
Internal Name=RAINBOW SIX
|
||||||
depthmode=1
|
depthmode=1
|
||||||
|
fb_render=1
|
||||||
increase_texrect_edge=1
|
increase_texrect_edge=1
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
[392A0C42-B790E77D-C:45]
|
[392A0C42-B790E77D-C:45]
|
||||||
Good Name=Tom Clancy's Rainbow Six (U)
|
Good Name=Tom Clancy's Rainbow Six (U)
|
||||||
Internal Name=RAINBOW SIX
|
Internal Name=RAINBOW SIX
|
||||||
depthmode=1
|
depthmode=1
|
||||||
|
fb_render=1
|
||||||
increase_texrect_edge=1
|
increase_texrect_edge=1
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
[093F916E-4408B698-C:50]
|
[093F916E-4408B698-C:50]
|
||||||
Good Name=Tonic Trouble (E) (M5)
|
Good Name=Tonic Trouble (E) (M5)
|
||||||
|
@ -3624,6 +3712,30 @@ depthmode=1
|
||||||
filtering=1
|
filtering=1
|
||||||
swapmode=2
|
swapmode=2
|
||||||
|
|
||||||
|
[CCEB3858-26952D97-C:50]
|
||||||
|
Good Name=Toy Story 2 (E)
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
|
[CB93DB97-7F5C63D5-C:46]
|
||||||
|
Good Name=Toy Story 2 (F)
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
|
[782A9075-E552631D-C:44]
|
||||||
|
Good Name=Toy Story 2 (G)
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
|
[BC4F2AB8-AA99E32E-C:44]
|
||||||
|
Good Name=Toy Story 2 (G) (V1.1)
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
|
[A150743E-CF2522CD-C:45]
|
||||||
|
Good Name=Toy Story 2 (U)
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
|
[C151AD61-280FFF22-C:45]
|
||||||
|
Good Name=Toy Story 2 (U) (V1.1)
|
||||||
|
zmode_compare_less=1
|
||||||
|
|
||||||
[FE4B6B43-081D29A7-C:45]
|
[FE4B6B43-081D29A7-C:45]
|
||||||
Good Name=Triple Play 2000 (U)
|
Good Name=Triple Play 2000 (U)
|
||||||
Internal Name=TRIPLE PLAY 2000
|
Internal Name=TRIPLE PLAY 2000
|
||||||
|
@ -3636,12 +3748,14 @@ Internal Name=TSUMI TO BATSU
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
old_style_adither=1
|
||||||
|
|
||||||
[E688A5B8-B14B3F18-C:50]
|
[E688A5B8-B14B3F18-C:50]
|
||||||
Good Name=Twisted Edge Extreme Snowboarding (E)
|
Good Name=Twisted Edge Extreme Snowboarding (E)
|
||||||
Internal Name=TWISTED EDGE
|
Internal Name=TWISTED EDGE
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
|
|
||||||
[BBC99D32-117DAA80-C:45]
|
[BBC99D32-117DAA80-C:45]
|
||||||
Good Name=Twisted Edge Extreme Snowboarding (U)
|
Good Name=Twisted Edge Extreme Snowboarding (U)
|
||||||
|
@ -3694,30 +3808,38 @@ depthmode=1
|
||||||
Good Name=Waialae Country Club - True Golf Classics (E) (M4) (V1.0)
|
Good Name=Waialae Country Club - True Golf Classics (E) (M4) (V1.0)
|
||||||
Internal Name=Waialae Country Club
|
Internal Name=Waialae Country Club
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_smart=0
|
fb_smart=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
[0C5057AD-046E126E-C:50]
|
[0C5057AD-046E126E-C:50]
|
||||||
Good Name=Waialae Country Club - True Golf Classics (E) (M4) (V1.1)
|
Good Name=Waialae Country Club - True Golf Classics (E) (M4) (V1.1)
|
||||||
Internal Name=Waialae Country Club
|
Internal Name=Waialae Country Club
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_smart=0
|
fb_smart=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
[8066D58A-C3DECAC1-C:45]
|
[8066D58A-C3DECAC1-C:45]
|
||||||
Good Name=Waialae Country Club - True Golf Classics (U) (V1.0)
|
Good Name=Waialae Country Club - True Golf Classics (U) (V1.0)
|
||||||
Internal Name=Waialae Country Club
|
Internal Name=Waialae Country Club
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_smart=0
|
fb_smart=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
[DD318CE2-B73798BA-C:45]
|
[DD318CE2-B73798BA-C:45]
|
||||||
Good Name=Waialae Country Club - True Golf Classics (U) (V1.1)
|
Good Name=Waialae Country Club - True Golf Classics (U) (V1.1)
|
||||||
Internal Name=Waialae Country Club
|
Internal Name=Waialae Country Club
|
||||||
depthmode=0
|
depthmode=0
|
||||||
fb_smart=0
|
fb_smart=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
[D715CC70-271CF5D6-C:50]
|
||||||
|
Good Name=War Gods (E)
|
||||||
|
filtering=2
|
||||||
|
|
||||||
|
[F7FE28F6-C3F2ACC3-C:45]
|
||||||
|
Good Name=War Gods (U)
|
||||||
|
filtering=2
|
||||||
|
|
||||||
[650EFA96-30DDF9A7-C:50]
|
[650EFA96-30DDF9A7-C:50]
|
||||||
Good Name=Wave Race 64 (E) (M2)
|
Good Name=Wave Race 64 (E) (M2)
|
||||||
Internal Name=WAVE RACE 64
|
Internal Name=WAVE RACE 64
|
||||||
|
@ -3779,6 +3901,12 @@ buff_clear=0
|
||||||
depthmode=0
|
depthmode=0
|
||||||
swapmode=0
|
swapmode=0
|
||||||
|
|
||||||
|
[4F1E88F7-4A5A3F96-C:4A]
|
||||||
|
Good Name=Wonder Project J2 [T]
|
||||||
|
buff_clear=0
|
||||||
|
depthmode=0
|
||||||
|
swapmode=0
|
||||||
|
|
||||||
[F9FC3090-FF014EC2-C:50]
|
[F9FC3090-FF014EC2-C:50]
|
||||||
Good Name=World Cup 98 (E) (M8)
|
Good Name=World Cup 98 (E) (M8)
|
||||||
Internal Name=World Cup 98
|
Internal Name=World Cup 98
|
||||||
|
@ -3843,6 +3971,7 @@ Internal Name=THE MASK OF MUJURA
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3852,6 +3981,7 @@ Internal Name=THE MASK OF MUJURA
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3861,6 +3991,7 @@ Internal Name=ZELDA MAJORA'S MASK
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
fb_crc_mode=0
|
fb_crc_mode=0
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
wrap_big_tex=1
|
wrap_big_tex=1
|
||||||
|
|
||||||
|
@ -3870,6 +4001,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[D43DA81F-021E1E19-C:4A]
|
[D43DA81F-021E1E19-C:4A]
|
||||||
|
@ -3878,6 +4010,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[693BA2AE-B7F14E9F-C:4A]
|
[693BA2AE-B7F14E9F-C:4A]
|
||||||
|
@ -3886,6 +4019,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[F7F52DB8-2195E636-C:4A]
|
[F7F52DB8-2195E636-C:4A]
|
||||||
|
@ -3894,6 +4028,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[F611F4BA-C584135C-C:4A]
|
[F611F4BA-C584135C-C:4A]
|
||||||
|
@ -3902,6 +4037,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
[F43B45BA-2F0E9B6F-C:4A]
|
[F43B45BA-2F0E9B6F-C:4A]
|
||||||
|
@ -3910,6 +4046,7 @@ Internal Name=THE LEGEND OF ZELDA
|
||||||
depth_bias=60
|
depth_bias=60
|
||||||
depthmode=1
|
depthmode=1
|
||||||
fb_clear=1
|
fb_clear=1
|
||||||
|
fb_render=1
|
||||||
filtering=1
|
filtering=1
|
||||||
|
|
||||||
//================ PD ================
|
//================ PD ================
|
||||||
|
@ -3928,3 +4065,6 @@ buff_clear=0
|
||||||
force_microcheck=1
|
force_microcheck=1
|
||||||
swapmode=0
|
swapmode=0
|
||||||
|
|
||||||
|
[37955E65-C6F2B7B3-C:0]
|
||||||
|
Good Name=Tamiya Racing 64 (Unreleased)
|
||||||
|
force_microcheck=1
|
||||||
|
|
|
@ -720,6 +720,7 @@ Cheat3="Have\All Difficulties",E95E2008 585A
|
||||||
Cheat4="Have\All Tracks",E95E2014 1050
|
Cheat4="Have\All Tracks",E95E2014 1050
|
||||||
Cheat5="Have\All Boards",E95E201C 595B,E95E201A 504F
|
Cheat5="Have\All Boards",E95E201C 595B,E95E201A 504F
|
||||||
Cheat1="Low Timer",E85E1FFC 595A,E85E1FFA 595A
|
Cheat1="Low Timer",E85E1FFC 595A,E85E1FFA 595A
|
||||||
|
Cheat6="exhalatio audio hack",81052760 AD99
|
||||||
|
|
||||||
//----
|
//----
|
||||||
|
|
||||||
|
@ -1021,6 +1022,55 @@ Cheat5="Unlock Extras",E8601D5B 594F,E8601D59 594F
|
||||||
|
|
||||||
//----
|
//----
|
||||||
|
|
||||||
|
[B73AB6F6-296267DD-C:45]
|
||||||
|
Good Name=Sin & Punishment (J) [T]
|
||||||
|
Cheat0="All Levels\Unlock All\Levels - Options Menu",E85BB42A 504F,E85BB429 504F
|
||||||
|
Cheat1="All Levels\Unlock All\Option Menu Items",E85BB430 504F,E85BB42F 504F
|
||||||
|
Cheat2="All Levels\Infinite\Energy",E861ADED 594F
|
||||||
|
Cheat3="All Levels\Infinite\Time",E861ADE9 59BB
|
||||||
|
Cheat4="All Levels\Infinite\Max Credits",E85BB434 594F
|
||||||
|
Cheat5="Level\0-0\Invincible",E8660E7D 5959
|
||||||
|
Cheat6="Level\1-1\Invincible",E86CAA4D 5959
|
||||||
|
Cheat7="Level\1-2\Invincible",E86F220D 5959
|
||||||
|
Cheat8="Level\1-3\Invincible",E8657A5D 5959
|
||||||
|
Cheat9="Level\2-1\Invincible",E86F250D 5959
|
||||||
|
Cheat10="Level\2-2\Invincible",E86FE88D 5959
|
||||||
|
Cheat11="Level\2-3\Invincible",E870D45D 5959
|
||||||
|
Cheat12="Level\3-1\Invincible",E869E05D 5959
|
||||||
|
Cheat13="Level\3-2\Invincible",E86FE6DD 5959
|
||||||
|
Cheat14="Level\3-3\Invincible",E9666160 1CAA
|
||||||
|
Cheat15="Level\0-0\Infinite Air Jumping",E8660E64 595A
|
||||||
|
Cheat16="Level\1-1\Infinite Air Jumping",E86CAA34 595A
|
||||||
|
Cheat17="Level\1-2\Infinite Air Jumping",E86F22F4 595A
|
||||||
|
Cheat18="Level\1-3\Infinite Air Jumping",E8657944 595A
|
||||||
|
Cheat19="Level\2-1\Infinite Air Jumping",E86F25F4 595A
|
||||||
|
Cheat20="Level\2-2\Infinite Air Jumping",E86FE874 595A
|
||||||
|
Cheat21="Level\2-3\Infinite Air Jumping",E870D344 595A
|
||||||
|
Cheat22="Level\3-1\Infinite Air Jumping",E869DF44 595A
|
||||||
|
Cheat23="Level\3-2\Infinite Air Jumping",E86FE6C4 595A
|
||||||
|
Cheat24="Level\3-3\Infinite Air Jumping",E8666624 595A
|
||||||
|
Cheat5_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat6_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat7_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat8_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat10_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat11_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat12_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat13_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat14_N=Only use one Ivincible level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat15_N=Only use one Infinite Air Jumping level Code at a time and only use for that specific level Cheat
|
||||||
|
Cheat16_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat17_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat18_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat19_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat20_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat21_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat22_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat23_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
Cheat24_N=Only use one Infinite Air Jumping level Code at a time for that specific level and only use for that specific level Cheat
|
||||||
|
|
||||||
|
//----
|
||||||
|
|
||||||
[66572080-28E348E1-C:4A]
|
[66572080-28E348E1-C:4A]
|
||||||
Name=Super Robot Spirits (J)
|
Name=Super Robot Spirits (J)
|
||||||
Cheat1="Infinite Sp",E87669FD 59B4
|
Cheat1="Infinite Sp",E87669FD 59B4
|
||||||
|
@ -9369,6 +9419,10 @@ Cheat12="Have Shotgun",E8878B88 5959
|
||||||
|
|
||||||
//----
|
//----
|
||||||
|
|
||||||
|
[E688A5B8-B14B3F18-C:50]
|
||||||
|
Good Name=Twisted Edge Extreme Snowboarding (E)
|
||||||
|
Cheat0="exhalatio audio hack",81051960 AD99
|
||||||
|
|
||||||
[BBC99D32-117DAA80-C:45]
|
[BBC99D32-117DAA80-C:45]
|
||||||
Name=Twisted Edge Extreme Snowboarding (U)
|
Name=Twisted Edge Extreme Snowboarding (U)
|
||||||
Cheat0="Max\50000 Stunt Points",E95E8010 1CAA
|
Cheat0="Max\50000 Stunt Points",E95E8010 1CAA
|
||||||
|
@ -9377,6 +9431,7 @@ Cheat3="Have\All Difficulties",E95E8048 585A
|
||||||
Cheat4="Have\All Tracks",E95E8054 1050
|
Cheat4="Have\All Tracks",E95E8054 1050
|
||||||
Cheat5="Have\All Boards",E95E7D5C 595B,E95E7D5A 504F
|
Cheat5="Have\All Boards",E95E7D5C 595B,E95E7D5A 504F
|
||||||
Cheat1="Low Timer",E86AEC51 595A,E86AE957 595A
|
Cheat1="Low Timer",E86AEC51 595A,E86AE957 595A
|
||||||
|
Cheat6="exhalatio audio hack",81051840 AD99
|
||||||
|
|
||||||
//----
|
//----
|
||||||
|
|
||||||
|
|
1673
Config/Project64.rdb
1673
Config/Project64.rdb
File diff suppressed because it is too large
Load Diff
|
@ -5,17 +5,17 @@
|
||||||
#1 # "Português Brasileiro" // LANGUAGE ID
|
#1 # "Português Brasileiro" // LANGUAGE ID
|
||||||
#2 # "Project64 team" // Author
|
#2 # "Project64 team" // Author
|
||||||
#3 # "2.2" // Version
|
#3 # "2.2" // Version
|
||||||
#4 # "Abril, 2015" // Date
|
#4 # "Fevereiro, 2016" // Date
|
||||||
|
|
||||||
//About DLL Dialog
|
//About DLL Dialog
|
||||||
#5 # "Idioma Atual"
|
#5 # "Idioma Atual"
|
||||||
#6 # "Autor"
|
#6 # "Autor"
|
||||||
#7 # "Versão"
|
#7 # "Versão"
|
||||||
#8 # "Data"
|
#8 # "Data"
|
||||||
#9 # "Visitar a Home Page"
|
#9 # "Visitar o Website"
|
||||||
#10 # "Base de Dados da ROM (.RDB)"
|
#10 # "Banco de Dados das ROMs (.RDB)"
|
||||||
#11 # "Arquivo do Código de Trapaças (.CHT)"
|
#11 # "Arquivo de Códigos de Trapaça (.CHT)"
|
||||||
#12 # "Informação Extendida da ROM (.RDX)"
|
#12 # "Informação Extendida das ROMs (.RDX)"
|
||||||
|
|
||||||
//About INI title
|
//About INI title
|
||||||
#20 # "Sobre os Arquivos de Configuração"
|
#20 # "Sobre os Arquivos de Configuração"
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
#103# "Iniciar a Emulação"
|
#103# "Iniciar a Emulação"
|
||||||
#104# "&Finalizar a Emulação"
|
#104# "&Finalizar a Emulação"
|
||||||
#105# "Escolher o Diretório das ROMs..."
|
#105# "Escolher o Diretório das ROMs..."
|
||||||
#106# "Atualizar a Lista das ROMs"
|
#106# "Atualizar Lista"
|
||||||
#107# "ROMs Recentes"
|
#107# "ROMs Recentes"
|
||||||
#108# "Diretórios das ROMs Recentes"
|
#108# "Diretórios das ROMs Recentes"
|
||||||
#109# "S&air"
|
#109# "S&air"
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
#181# "Sobre os Arqui&vos de Configuração"
|
#181# "Sobre os Arqui&vos de Configuração"
|
||||||
#182# "&Sobre o Project 64"
|
#182# "&Sobre o Project 64"
|
||||||
#183# "Fórum de &Suporte"
|
#183# "Fórum de &Suporte"
|
||||||
#184# "&Homepage"
|
#184# "&Website"
|
||||||
|
|
||||||
//Current Save Slot menu
|
//Current Save Slot menu
|
||||||
#190# "Padrão"
|
#190# "Padrão"
|
||||||
|
@ -88,13 +88,15 @@
|
||||||
#198# "Slot 8"
|
#198# "Slot 8"
|
||||||
#199# "Slot 9"
|
#199# "Slot 9"
|
||||||
#200# "Slot 10"
|
#200# "Slot 10"
|
||||||
|
#201# "Save Slot (%ws) selecionado"
|
||||||
|
|
||||||
//Pop up Menu
|
//Pop up Menu
|
||||||
#210# "Jogar o Jogo"
|
#210# "Jogar"
|
||||||
#211# "Informação da ROM"
|
#211# "Informações da ROM"
|
||||||
#212# "Editar as Configurações do Jogo"
|
#212# "Editar as Configurações do Jogo"
|
||||||
#213# "Editar as Trapaças"
|
#213# "Editar as Trapaças"
|
||||||
#214# "Plugin Gráfico"
|
#214# "Plugin Gráfico"
|
||||||
|
#215# "Jogar com Disco"
|
||||||
|
|
||||||
//Alternate Name to save Slot
|
//Alternate Name to save Slot
|
||||||
#220# "Slot Padrão"
|
#220# "Slot Padrão"
|
||||||
|
@ -117,18 +119,18 @@
|
||||||
#254# "Selecionar o Diretório das ROMs"
|
#254# "Selecionar o Diretório das ROMs"
|
||||||
#255# "Atualizar a lista de ROMs atuais no Explorador de ROMs"
|
#255# "Atualizar a lista de ROMs atuais no Explorador de ROMs"
|
||||||
#256# "Sair deste aplicativo"
|
#256# "Sair deste aplicativo"
|
||||||
#257# "Reiniciar a imagem da ROM atual (recarregar quaisquer mudanças nas configurações)"
|
#257# "Reiniciar a imagem da ROM em execução (recarregar quaisquer mudanças nas configurações)"
|
||||||
#258# "Pausar/Resumir a emulação da ROM atual em execução"
|
#258# "Pausar/Resumir a emulação da ROM atualmente em execução"
|
||||||
#259# "Gerar uma imagem Bitmap da Tela atual"
|
#259# "Gerar uma imagem Bitmap da Tela atual"
|
||||||
#260# "Limitar o FPS para a velocidade correta do n64"
|
#260# "Limitar o FPS para a velocidade correta do n64"
|
||||||
#261# "Criar um instante do sistema atual para o salvamento rápido"
|
#261# "Salvar o atual estado do sistema"
|
||||||
#262# "Criar um instante do sistema atual com a seleção do local do arquivo"
|
#262# "Salvar o atual estado do sistema em um local específico"
|
||||||
#263# "Carregar um salvamento do instante rápido"
|
#263# "Carregar um estado de sistema salvo"
|
||||||
#264# "Escolher um arquivo de salvamento do instante para carregar"
|
#264# "Escolher um estado de sistema salvo para carregar"
|
||||||
#265# "Ativar/Desativar as trapaças do Game shark"
|
#265# "Ativar/Desativar as trapaças do Game shark"
|
||||||
#266# "O botão do Game shark é usado com trapaças especifícas"
|
#266# "O botão do Game shark é usado com trapaças especifícas"
|
||||||
#267# "Mudar a emulação do modo de janela para tela cheia"
|
#267# "Mudar o modo de janela para tela cheia"
|
||||||
#268# "Fazer a janela ficar acima de todas as outras janelas"
|
#268# "Manter a janela atual acima de todas as outras janelas"
|
||||||
#269# "Mudar as configurações dentro do plugin dos Gráficos"
|
#269# "Mudar as configurações dentro do plugin dos Gráficos"
|
||||||
#270# "Mudar as configurações dentro do plugin de Áudio"
|
#270# "Mudar as configurações dentro do plugin de Áudio"
|
||||||
#271# "Mudar as configurações dentro do plugin do Controle (ex: definir as teclas)"
|
#271# "Mudar as configurações dentro do plugin do Controle (ex: definir as teclas)"
|
||||||
|
@ -139,7 +141,7 @@
|
||||||
#276# "Visualizar o FAQ do aplicativo"
|
#276# "Visualizar o FAQ do aplicativo"
|
||||||
#278# "Sobre o aplicativo e os autores"
|
#278# "Sobre o aplicativo e os autores"
|
||||||
#277# "Sobre os autores dos arquivos de suporte"
|
#277# "Sobre os autores dos arquivos de suporte"
|
||||||
#279# "Abrir esta imagem da ROM aberta anteriormente"
|
#279# "Abrir ROM anteriormente aberta"
|
||||||
#280# "Escolher este diretório como seu diretório das ROMs"
|
#280# "Escolher este diretório como seu diretório das ROMs"
|
||||||
#281# "Mudar o Aplicativo para usar este idioma"
|
#281# "Mudar o Aplicativo para usar este idioma"
|
||||||
#282# "Escolher este local para salvamento rápido"
|
#282# "Escolher este local para salvamento rápido"
|
||||||
|
@ -177,7 +179,7 @@
|
||||||
#320# "Selecionar o diretório atual das ROMs"
|
#320# "Selecionar o diretório atual das ROMs"
|
||||||
|
|
||||||
//Messages
|
//Messages
|
||||||
#340# "ROM ruim? Use o GoodN64 & procure por um RDB atualizado"
|
#340# "ROM ruim? Use o GoodN64 & verifique se o RDB esta atualizado."
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Options *
|
* Options *
|
||||||
|
@ -230,7 +232,7 @@
|
||||||
#463# "Lembrar as trapaças selecionadas"
|
#463# "Lembrar as trapaças selecionadas"
|
||||||
#464# "Desativar a proteção de tela quando executar uma ROM"
|
#464# "Desativar a proteção de tela quando executar uma ROM"
|
||||||
#465# "Exibir a velocidade"
|
#465# "Exibir a velocidade"
|
||||||
#466# "Forma de exibição da velocidade:"
|
#466# "Display de velocidade:"
|
||||||
#467# "Verificar se o Project64 já está em execução"
|
#467# "Verificar se o Project64 já está em execução"
|
||||||
|
|
||||||
//ROM Browser Tab
|
//ROM Browser Tab
|
||||||
|
@ -241,7 +243,7 @@
|
||||||
#484# "Usar Explorador de ROMs"
|
#484# "Usar Explorador de ROMs"
|
||||||
#485# "Usar repetição de diretório"
|
#485# "Usar repetição de diretório"
|
||||||
#486# "Campos disponíveis:"
|
#486# "Campos disponíveis:"
|
||||||
#487# "Mostrar os campos nesta ordem:"
|
#487# "Ordem dos campos:"
|
||||||
#488# "Adicionar ->"
|
#488# "Adicionar ->"
|
||||||
#489# "<- Remover"
|
#489# "<- Remover"
|
||||||
#490# "Pra Cima"
|
#490# "Pra Cima"
|
||||||
|
@ -254,7 +256,7 @@
|
||||||
#502# "Estilo do core da CPU:"
|
#502# "Estilo do core da CPU:"
|
||||||
#503# "Método do código self-mod"
|
#503# "Método do código self-mod"
|
||||||
#504# "Tamanho padrão da memória:"
|
#504# "Tamanho padrão da memória:"
|
||||||
#505# "Ligamento de blocos avançado"
|
#505# "ABL"
|
||||||
#506# "Iniciar a emulação quando a ROM está aberta"
|
#506# "Iniciar a emulação quando a ROM está aberta"
|
||||||
#507# "Sempre sobrescrever as configurações padrão com aquelas do RDB"
|
#507# "Sempre sobrescrever as configurações padrão com aquelas do RDB"
|
||||||
#508# "Automaticamente comprimir os save states"
|
#508# "Automaticamente comprimir os save states"
|
||||||
|
@ -282,10 +284,10 @@
|
||||||
#533# "Timing do áudio fixo"
|
#533# "Timing do áudio fixo"
|
||||||
#534# "Método de procura de função:"
|
#534# "Método de procura de função:"
|
||||||
#535# "Método de self-mod personalizado"
|
#535# "Método de self-mod personalizado"
|
||||||
#536# "Sincronizar usando o áudio"
|
#536# "Sincronizar com o áudio"
|
||||||
#537# "Contagem de IA por byte"
|
#537# "Contagem de IA por byte"
|
||||||
#538# "Engine de 32 bits"
|
#538# "Engine de 32 bits"
|
||||||
#539# "Atrasar a interrupção do DP"
|
#539# "Atrasar o DP interrupt"
|
||||||
|
|
||||||
//Core Styles
|
//Core Styles
|
||||||
#540# "Interpretador"
|
#540# "Interpretador"
|
||||||
|
@ -315,10 +317,10 @@
|
||||||
#601# "Desligado"
|
#601# "Desligado"
|
||||||
|
|
||||||
//Save Type
|
//Save Type
|
||||||
#620# "Usar o Primeiro Tipo de Salvamento Usado"
|
#620# "Usar o primeiro tipo de salvamento utilizado"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
@ -440,33 +442,33 @@
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
#2000# "*** CPU PAUSADA ***"
|
#2000# "*** CPU PAUSADA ***"
|
||||||
#2001# "CPU Resumida"
|
#2001# "CPU Resumida"
|
||||||
#2002# "Em um loop permanente do qual não se pode sair. \nA emulação vai parar agora. \n\nVerifique a ROM e as configurações da ROM."
|
#2002# "Em um loop permanente do qual não se pode sair.\nA emulação vai parar agora.\n\nVerifique a ROM e as configurações da ROM."
|
||||||
#2003# "Falha ao alocar a Memória"
|
#2003# "Falha ao alocar a Memória"
|
||||||
#2004# "O plugin de vídeo padrão ou selecionado está faltando ou é inválido. \n\nVocê precisa ir em Configurações e selecionar um plugin de vídeo (gráficos).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
#2004# "O plugin de vídeo padrão ou selecionado está faltando ou é inválido.\n\nVocê precisa ir em Configurações e selecionar um plugin de vídeo (gráficos).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
||||||
#2005# "O plugin de áudio padrão ou selecionado está faltando ou é inválido. \n\nVocê precisa ir em Configurações e selecionar um plugin de áudio (som).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
#2005# "O plugin de áudio padrão ou selecionado está faltando ou é inválido.\n\nVocê precisa ir em Configurações e selecionar um plugin de áudio (som).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
||||||
#2006# "O plugin de RSP padrão ou selecionado está faltando ou é inválido. \n\nVocê precisa ir em Configurações e selecionar um plugin de RSP (Reality Signal Processor).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
#2006# "O plugin de RSP padrão ou selecionado está faltando ou é inválido.\n\nVocê precisa ir em Configurações e selecionar um plugin de RSP (Reality Signal Processor).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
||||||
#2007# "O plugin de entrada padrão ou selecionado está faltando ou é inválido. \n\nVocê precisa ir em Configurações e selecionar um plugin de entrada (controle).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
#2007# "O plugin de entrada padrão ou selecionado está faltando ou é inválido.\n\nVocê precisa ir em Configurações e selecionar um plugin de entrada (controle).\nVerifique se você tem ao menos um arquivo de plugin compatível na sua pasta de plugins."
|
||||||
#2008# "Falha ao carregar o plugin:"
|
#2008# "Falha ao carregar o plugin:"
|
||||||
#2009# "Falha ao carregar a palavra\n\nVerifique a ROM e as configurações da ROM."
|
#2009# "Falha ao carregar a palavra\n\nVerifique a ROM e as configurações da ROM."
|
||||||
#2010# "Falha ao abrir o Arquivo do Salvamento"
|
#2010# "Falha ao abrir o Arquivo do Salvamento"
|
||||||
#2011# "Falha ao abrir o EEPROM"
|
#2011# "Falha ao abrir o EEPROM"
|
||||||
#2012# "Falha ao abrir a flash RAM"
|
#2012# "Falha ao abrir a flash RAM"
|
||||||
#2013# "Falha ao abrir o mempak"
|
#2013# "Falha ao abrir o mempak"
|
||||||
#2014# "A tentativa de abrir o arquivo zip falhou. \n\nProvavelmente um arquivo zip corrompido - tente descompactar a ROM manualmente."
|
#2014# "A tentativa de abrir o arquivo zip falhou.\n\nProvavelmente um arquivo zip corrompido - tente descompactar a ROM manualmente."
|
||||||
#2015# "A tentativa de abrir o arquivo falhou."
|
#2015# "A tentativa de abrir o arquivo falhou."
|
||||||
#2016# "Um erro ocorreu quando tentava abrir o arquivo zip."
|
#2016# "Um erro ocorreu quando tentava abrir o arquivo zip."
|
||||||
#2017# "O arquivo carregado não aparenta ser uma ROM de N64 válida. \n\nVerifique suas ROMs com o GoodN64."
|
#2017# "O arquivo carregado não aparenta ser uma ROM de N64 válida.\n\nVerifique suas ROMs com o GoodN64."
|
||||||
#2018# "País desconhecido"
|
#2018# "País desconhecido"
|
||||||
#2019# "Chip Cic desconhecido"
|
#2019# "Chip Cic desconhecido"
|
||||||
#2020# "Formato do arquivo desconhecido"
|
#2020# "Formato do arquivo desconhecido"
|
||||||
#2021# "Ação de memória desconhecida\n\nEmulação parada"
|
#2021# "Ação de memória desconhecida\n\nEmulação parada"
|
||||||
#2022# "OpCode R4300i não manejado em"
|
#2022# "OpCode R4300i não manejado em"
|
||||||
#2023# "Executando do espaço não-mapeado.\n\nVerifique a ROM e as configurações da ROM."
|
#2023# "Executando do espaço não-mapeado.\n\nVerifique a ROM e as configurações da ROM."
|
||||||
#2024# "Este save state não aparenta combinar com a ROM em execução. \n\nOs save states devem ser salvos & carregados entre ROMs 100% idênticas, \nEm particular a REGIÃO e VERSÃO precisam ser as mesmas. \nCarregar este state provavelmente causaria um crash no jogo e/ou no emulador. \n\nVocê tem certeza que você quer continuar carregando?"
|
#2024# "Este save state não aparenta combinar com a ROM em execução.\n\nOs save states devem ser salvos & carregados entre ROMs 100% idênticas,\nEm particular a REGIÃO e VERSÃO precisam ser as mesmas. \nCarregar este state provavelmente causaria um crash no jogo e/ou no emulador. \n\nVocê tem certeza que você quer continuar carregando?"
|
||||||
#2025# "Erro"
|
#2025# "Erro"
|
||||||
#2026# "Sequência de Copyright não encontrada no LUT. O jogo não mais funcionará."
|
#2026# "Sequência de Copyright não encontrada no LUT. O jogo não mais funcionará."
|
||||||
#2027# "Falha da Proteção Contra Cópia"
|
#2027# "Falha da Proteção Contra Cópia"
|
||||||
#2028# "Mudar um plugin requer que o Project64 resete uma ROM em execução. \nSe você não quer perder seu lugar, responda Não e faça um save state primeiro. \n\nMudar os plugins e resetar a ROM agora?"
|
#2028# "Mudar um plugin requer que o Project64 resete uma ROM em execução.\nSe você não quer perder seu lugar, responda Não e faça um save state primeiro.\n\nMudar os plugins e resetar a ROM agora?"
|
||||||
#2029# "Mudar os Plugins"
|
#2029# "Mudar os Plugins"
|
||||||
#2030# "Emulação encerrada"
|
#2030# "Emulação encerrada"
|
||||||
#2031# "Emulação iniciada"
|
#2031# "Emulação iniciada"
|
||||||
|
|
|
@ -266,7 +266,7 @@
|
||||||
#620# "* открий първият използван тип"
|
#620# "* открий първият използван тип"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -0,0 +1,498 @@
|
||||||
|
/*********************************************************************************
|
||||||
|
* Meta Information *
|
||||||
|
*********************************************************************************/
|
||||||
|
//About DLL
|
||||||
|
#1 # "Català" // LANGUAGE ID
|
||||||
|
#2 # "Hiro5" // Author
|
||||||
|
#3 # "2.2" // Version
|
||||||
|
#4 # "11 d'octubre de 2015" // Date
|
||||||
|
|
||||||
|
//About DLL Dialog
|
||||||
|
#5 # "Idioma actual"
|
||||||
|
#6 # "Autor"
|
||||||
|
#7 # "Versió"
|
||||||
|
#8 # "Data"
|
||||||
|
#9 # "Visiteu el lloc web"
|
||||||
|
#10 # "Base de dades de ROMs (.RDB)"
|
||||||
|
#11 # "Fitxer de Trucs (.CHT)"
|
||||||
|
#12 # "Informació estesa de ROM (.RDX)"
|
||||||
|
|
||||||
|
//About INI title
|
||||||
|
#20 # "Quant als fitxers de configuració"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* Menu *
|
||||||
|
*********************************************************************************/
|
||||||
|
//File Menu
|
||||||
|
#100# "&Fitxer"
|
||||||
|
#101# "&Obre una ROM"
|
||||||
|
#102# "&Informació de ROM...."
|
||||||
|
#103# "Comença l'emulació"
|
||||||
|
#104# "&Finalitza l'emulació"
|
||||||
|
#105# "Tria directori de ROMs..."
|
||||||
|
#106# "Actualitza llista de ROMs"
|
||||||
|
#107# "ROMs recents"
|
||||||
|
#108# "Directoris de ROMs recents"
|
||||||
|
#109# "&Surt"
|
||||||
|
|
||||||
|
//System Menu
|
||||||
|
#120# "&Sistema"
|
||||||
|
#121# "&Reinicia"
|
||||||
|
#122# "&Pausa"
|
||||||
|
#123# "Captura pantalla"
|
||||||
|
#124# "Limitador de velocitat"
|
||||||
|
#125# "&Desa"
|
||||||
|
#126# "Anomena i desa..."
|
||||||
|
#127# "&Restaura"
|
||||||
|
#128# "Carrega..."
|
||||||
|
#129# "&Estat desat actual"
|
||||||
|
#130# "Trucs..."
|
||||||
|
#131# "Botó de GameShark"
|
||||||
|
#132# "Continua"
|
||||||
|
#133# "Reinicia el &Programari"
|
||||||
|
#134# "Reinicia el &Maquinari"
|
||||||
|
|
||||||
|
//Options Menu
|
||||||
|
#140# "&Opcions"
|
||||||
|
#141# "&Pantalla completa"
|
||||||
|
#142# "&Sempre a sobre"
|
||||||
|
#143# "Configura el connector de vídeo..."
|
||||||
|
#144# "Configura el connector d'àudio..."
|
||||||
|
#145# "Configura el connector del controlador..."
|
||||||
|
#146# "Configura el connector RSP..."
|
||||||
|
#147# "Mostra % d'ús de CPU"
|
||||||
|
#148# "&Paràmetres..."
|
||||||
|
|
||||||
|
//Debugger Menu
|
||||||
|
#160# "&Depurador"
|
||||||
|
|
||||||
|
//Language Menu
|
||||||
|
#175# "&Idioma"
|
||||||
|
|
||||||
|
//Help Menu
|
||||||
|
#180# "&Ajuda"
|
||||||
|
#181# "Quant als fitxers &INI"
|
||||||
|
#182# "&Quant al Project 64"
|
||||||
|
#183# "&Fòrum de suport"
|
||||||
|
#184# "&Lloc web"
|
||||||
|
|
||||||
|
//Current Save Slot menu
|
||||||
|
#190# "Per defecte"
|
||||||
|
#191# "Ranura 1"
|
||||||
|
#192# "Ranura 2"
|
||||||
|
#193# "Ranura 3"
|
||||||
|
#194# "Ranura 4"
|
||||||
|
#195# "Ranura 5"
|
||||||
|
#196# "Ranura 6"
|
||||||
|
#197# "Ranura 7"
|
||||||
|
#198# "Ranura 8"
|
||||||
|
#199# "Ranura 9"
|
||||||
|
#200# "Ranura 10"
|
||||||
|
|
||||||
|
//Pop up Menu
|
||||||
|
#210# "Juga el joc"
|
||||||
|
#211# "Informació de ROM"
|
||||||
|
#212# "Edita els paràmetres del joc"
|
||||||
|
#213# "Edita els trucs"
|
||||||
|
#214# "Connector de vídeo"
|
||||||
|
|
||||||
|
//Alternate Name to save Slot
|
||||||
|
#220# "Desa a la ranura per defecte"
|
||||||
|
#221# "Desa a la ranura 1"
|
||||||
|
#222# "Desa a la ranura 2"
|
||||||
|
#223# "Desa a la ranura 3"
|
||||||
|
#224# "Desa a la ranura 4"
|
||||||
|
#225# "Desa a la ranura 5"
|
||||||
|
#226# "Desa a la ranura 6"
|
||||||
|
#227# "Desa a la ranura 7"
|
||||||
|
#228# "Desa a la ranura 8"
|
||||||
|
#229# "Desa a la ranura 9"
|
||||||
|
#230# "Desa a la ranura 10"
|
||||||
|
|
||||||
|
// Menu Descriptions
|
||||||
|
#250# "Obre una imatge ROM de Nintendo 64"
|
||||||
|
#251# "Mostra informació de la imatge carregada"
|
||||||
|
#252# "Inicia l'emulació de la imatge ROM carregada"
|
||||||
|
#253# "Atura l'emulació de la imatge ROM carregada"
|
||||||
|
#254# "Selecciona el directori de ROMs"
|
||||||
|
#255# "Actualitza la llista de ROMs en l'explorador de ROMs"
|
||||||
|
#256# "Tanca aquesta aplicació"
|
||||||
|
#257# "Recarrega la imatge ROM actual (recarrega qualsevol canvi de paràmetres)"
|
||||||
|
#258# "Pausa/Continua l'emulació de la ROM en execució actual"
|
||||||
|
#259# "Genera una imatge Bitmap de la pantalla actual"
|
||||||
|
#260# "Limita els quadres per segon a la velocitat correcta de la n64"
|
||||||
|
#261# "Crea una instantània del sistema actual per un desat ràpid"
|
||||||
|
#262# "Crea una instantània del sistema actual seleccionant la ubicació del fitxer"
|
||||||
|
#263# "Carrega una instantània ràpida desada"
|
||||||
|
#264# "Tria un fitxer d'instantània per carregar"
|
||||||
|
#265# "Activa/Desactiva trucs del GameShark"
|
||||||
|
#266# "El botó de GameShark s'utilitza amb trucs específics"
|
||||||
|
#267# "Canvia l'emulació de mode en finestra a pantalla completa"
|
||||||
|
#268# "Fa que la finestra estigui per sobre de totes les altres"
|
||||||
|
#269# "Canvia els paràmetres dins del connector de vídeo"
|
||||||
|
#270# "Canvia els paràmetres dins del connector d'àudio"
|
||||||
|
#271# "Canvia els paràmetres dins del connector de controladors (i.e. assigna les tecles)"
|
||||||
|
#272# "Canvia els paràmetres dins del connector RSP"
|
||||||
|
#273# "Mostra l'ús de CPU de l'emulador dividit en diferents recursos"
|
||||||
|
#274# "Mostra/Canvia paràmetres per aquesta aplicació"
|
||||||
|
#275# "Mostra el Manual per l'aplicació"
|
||||||
|
#276# "Mostra les PMF per l'aplicació"
|
||||||
|
#278# "Quant a l'aplicació i als autors"
|
||||||
|
#277# "Quant als autors dels fitxers de suport"
|
||||||
|
#279# "Obre aquesta imatge de ROM oberta anteriorment"
|
||||||
|
#280# "Tria aquest directori com el directori de ROMs"
|
||||||
|
#281# "Canvia l'aplicació per utilitzar aquest idioma"
|
||||||
|
#282# "Tria aquesta ubicació de desat ràpid"
|
||||||
|
#283# "Comença el joc seleccionat"
|
||||||
|
#284# "Informació del joc seleccionat"
|
||||||
|
#285# "Edita els paràmetres pel joc seleccionat"
|
||||||
|
#286# "Edita els trucs per joc seleccionat"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* ROM Browser *
|
||||||
|
*********************************************************************************/
|
||||||
|
//ROM Browser Fields
|
||||||
|
#300# "Nom de fitxer"
|
||||||
|
#301# "Nom intern"
|
||||||
|
#302# "Nom bo"
|
||||||
|
#303# "Estat"
|
||||||
|
#304# "Mida de ROM"
|
||||||
|
#305# "Notes (Nucli)"
|
||||||
|
#306# "Notes (complements per defecte)"
|
||||||
|
#307# "Notes (Usuari)"
|
||||||
|
#308# "ID de cartutx"
|
||||||
|
#309# "Fabricant"
|
||||||
|
#310# "País"
|
||||||
|
#311# "Desenvolupador"
|
||||||
|
#312# "CRC1"
|
||||||
|
#313# "CRC2"
|
||||||
|
#314# "Xip CIC"
|
||||||
|
#315# "Data de sortida"
|
||||||
|
#316# "Gènere"
|
||||||
|
#317# "Jugadors"
|
||||||
|
#318# "Força resposta"
|
||||||
|
#319# "Format de fitxer"
|
||||||
|
|
||||||
|
//Select ROM
|
||||||
|
#320# "Selecciona directori de ROMs actual"
|
||||||
|
|
||||||
|
//Messages
|
||||||
|
#340# "ROM dolenta? Utilitza GoodN64 i cerca una RDB actualitzada"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* Options *
|
||||||
|
*********************************************************************************/
|
||||||
|
//Options Title
|
||||||
|
#400# "Paràmetres"
|
||||||
|
|
||||||
|
//Tabs
|
||||||
|
#401# "Connectors"
|
||||||
|
#402# "Directoris"
|
||||||
|
#403# "Opcions"
|
||||||
|
#404# "Selecció de ROM"
|
||||||
|
#405# "Avançat"
|
||||||
|
#406# "Paràmetres generals"
|
||||||
|
#407# "Integració del sistema"
|
||||||
|
#408# "Notes"
|
||||||
|
#409# "Dreceres de teclat"
|
||||||
|
#410# "Estat"
|
||||||
|
#411# "Recompilador"
|
||||||
|
|
||||||
|
//Plugin Dialog
|
||||||
|
#420# "Quant a"
|
||||||
|
#421# " Complement de processador de senyal de realitat: "
|
||||||
|
#422# " Complement de vídeo (gràfics): "
|
||||||
|
#423# " Complement d'àudio (so): "
|
||||||
|
#424# " Complement d'entrada (controlador): "
|
||||||
|
#425# "HLE de vídeo"
|
||||||
|
#426# "HLE d'àudio"
|
||||||
|
#427# "** Utilitza complement del sistema **"
|
||||||
|
|
||||||
|
//Directory Dialog
|
||||||
|
#440# " Directori de complements: "
|
||||||
|
#441# " Directori de ROMs: "
|
||||||
|
#442# " Autodesats de N64: "
|
||||||
|
#443# " Instantànies: "
|
||||||
|
#444# " Captures de pantalla: "
|
||||||
|
#445# "Carpeta des d'on es va obrir la darrera ROM."
|
||||||
|
#446# "Seleccioneu directori de complements"
|
||||||
|
#447# "Seleccioneu directori de ROMs"
|
||||||
|
#448# "Seleccioneu directori d'autodesats"
|
||||||
|
#449# "Seleccioneu directori de desats d'instantànies"
|
||||||
|
#450# "Seleccioneu directori d'imatges"
|
||||||
|
#451# " Directori de paquets de textures: "
|
||||||
|
#452# "Seleccioneu directori de paquets de textures"
|
||||||
|
|
||||||
|
//Options Dialog
|
||||||
|
#460# "Posa en pausa quan la finestra no està activa"
|
||||||
|
#461# "Canvia a pantalla completa en carregar una ROM"
|
||||||
|
#462# "Amaga els paràmetres avançats"
|
||||||
|
#463# "Recorda els trucs seleccionats"
|
||||||
|
#464# "Desactiva l'estalvi de pantalla mentre s'executa una ROM"
|
||||||
|
#465# "Mostra la velocitat"
|
||||||
|
#466# "Mostra la velocitat:"
|
||||||
|
#467# "Comprova si Project64 ja s'està executant"
|
||||||
|
|
||||||
|
//ROM Browser Tab
|
||||||
|
#480# "Límit de ROMs recordades (Màx 10):"
|
||||||
|
#481# "ROMs"
|
||||||
|
#482# "Límit de Dirs de ROMs recordades (Màx 10):"
|
||||||
|
#483# "dirs"
|
||||||
|
#484# "Empra explorador de ROMs"
|
||||||
|
#485# "Cerca subdirectoris"
|
||||||
|
#486# "Camps disponibles:"
|
||||||
|
#487# "Mostra els camps en aquest ordre:"
|
||||||
|
#488# "Afegeix ->"
|
||||||
|
#489# "<- Esborra"
|
||||||
|
#490# "Amunt"
|
||||||
|
#491# "Avall"
|
||||||
|
#492# "Refresca el navegador automàticament"
|
||||||
|
|
||||||
|
//Advanced Options
|
||||||
|
#500# "La majoria d'aquests canvis no faran efecte fins que s'obri una nova ROM o fins a reiniciar l'actual ROM."
|
||||||
|
#501# "Predeterminats de nucli"
|
||||||
|
#502# "Estil de nucli de CPU:"
|
||||||
|
#503# "Mètode de codi auto-mod:"
|
||||||
|
#504# "Mida de memòria per defecte:"
|
||||||
|
#505# "Enllaçat de bloc avançat:"
|
||||||
|
#506# "Iniciar l'emulació quan s'obri la ROM"
|
||||||
|
#507# "Sobreescriu sempre els paràmetres per defecte amb els de l'INI"
|
||||||
|
#508# "Comprimeix automàticament els estats desats"
|
||||||
|
#509# "Activa el depurador"
|
||||||
|
#510# "Mem. cau"
|
||||||
|
#511# "PI DMA"
|
||||||
|
#512# "Inici canviat"
|
||||||
|
#513# "Memòria protegida"
|
||||||
|
#514# "Desmapat TLB"
|
||||||
|
|
||||||
|
//ROM Options
|
||||||
|
#520# "Estil de nucli de CPU:"
|
||||||
|
#521# "Refresc d'entrada de vídeo:"
|
||||||
|
#522# "Mida de memòria:"
|
||||||
|
#523# "Enllaçat de blocs avançat:"
|
||||||
|
#524# "Tipus de desat per defecte:"
|
||||||
|
#525# "Factor de comptador:"
|
||||||
|
#526# "Memòria de compilació més gran"
|
||||||
|
#527# "Empra TLB"
|
||||||
|
#528# "Registra la mem. cau"
|
||||||
|
#529# "Retard d'interrupció SI"
|
||||||
|
#530# "Modificació d'SP"
|
||||||
|
#531# "Per defecte"
|
||||||
|
#532# "Senyal d'àudio RSP"
|
||||||
|
#533# "Sincr. d'àudio arreglada"
|
||||||
|
#534# "Funció de mètode de cerca:"
|
||||||
|
#535# "Mètode de codi auto-modificant"
|
||||||
|
#536# "Sincr. utilitzant l'àudio"
|
||||||
|
#537# "Compta AI per byte"
|
||||||
|
#538# "Màquina 32-bit"
|
||||||
|
#539# "Retard d'interrupció DP"
|
||||||
|
|
||||||
|
//Core Styles
|
||||||
|
#540# "Intèrpret"
|
||||||
|
#541# "Recompilador"
|
||||||
|
#542# "Sincronitza nuclis"
|
||||||
|
|
||||||
|
//Self Mod Methods
|
||||||
|
#560# "Cap"
|
||||||
|
#561# "Mem. cau"
|
||||||
|
#562# "Protegeix memòria"
|
||||||
|
#563# "Comprova memòria i mem. cau"
|
||||||
|
#564# "Canvia memòria i mem. cau"
|
||||||
|
#565# "Comprova memòria avançada"
|
||||||
|
#566# "Neteja codi en mem. cau"
|
||||||
|
|
||||||
|
//Function Lookup method
|
||||||
|
#570# "Taula de cerca física"
|
||||||
|
#571# "Taula de cerca virtual"
|
||||||
|
#572# "Canvia la memòria"
|
||||||
|
|
||||||
|
//RDRAM Size
|
||||||
|
#580# "4 MB"
|
||||||
|
#581# "8 MB"
|
||||||
|
|
||||||
|
//Advanced Block Linking
|
||||||
|
#600# "Encès"
|
||||||
|
#601# "Apagat"
|
||||||
|
|
||||||
|
//Save Type
|
||||||
|
#620# "Primer tipus de desat usat"
|
||||||
|
#621# "EEPROM de 4 kbits"
|
||||||
|
#622# "EEPROM de 16 kbits"
|
||||||
|
#623# "SRAM"
|
||||||
|
#624# "FlashRAM de 128kbytes"
|
||||||
|
|
||||||
|
//Shell Integration Tab
|
||||||
|
#640# "Associació d'extensions de fitxer:"
|
||||||
|
|
||||||
|
//ROM Notes
|
||||||
|
#660# "Estat de ROM:"
|
||||||
|
#661# "Nota de nucli:"
|
||||||
|
#662# "Nota de complement:"
|
||||||
|
|
||||||
|
// Accelerator Selector
|
||||||
|
#680# "Estat de CPU:"
|
||||||
|
#681# "Element de menú:"
|
||||||
|
#682# "Claus actuals:"
|
||||||
|
#683# "Seleccioneu la nova clau de drecera:"
|
||||||
|
#684# "Assignada actualment a:"
|
||||||
|
#685# "Assigna"
|
||||||
|
#686# "Esborra"
|
||||||
|
#687# "Reinicia-ho tot"
|
||||||
|
#688# "No s'està jugant"
|
||||||
|
#689# "S'està jugant"
|
||||||
|
#690# "S'està jugant en finestra"
|
||||||
|
#691# "S'està jugant a pantalla completa"
|
||||||
|
#692# "Detecta tecla"
|
||||||
|
|
||||||
|
// Frame Rate Option
|
||||||
|
#700# "Interrupcions vertical per segon"
|
||||||
|
#701# "Mostra llistes per segon"
|
||||||
|
#702# "% de velocitat completa"
|
||||||
|
|
||||||
|
// Increase speed
|
||||||
|
#710# "Augmenta velocitat de joc"
|
||||||
|
#711# "Disminueix velocitat de joc"
|
||||||
|
|
||||||
|
//Bottom page buttons
|
||||||
|
#720# "Reinicia pàg."
|
||||||
|
#721# "Reinicia tot"
|
||||||
|
#722# "Aplica"
|
||||||
|
#723# "Tanca"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* ROM Information *
|
||||||
|
*********************************************************************************/
|
||||||
|
//ROM Info Title
|
||||||
|
#800# "Informació de ROM"
|
||||||
|
|
||||||
|
//ROM Info Text
|
||||||
|
#801# "Nom de ROM:"
|
||||||
|
#802# "Nom de fitxer:"
|
||||||
|
#803# "Ubicació:"
|
||||||
|
#804# "Mida de ROM:"
|
||||||
|
#805# "ID de cartutx:"
|
||||||
|
#806# "Fabricant:"
|
||||||
|
#807# "País:"
|
||||||
|
#808# "CRC1:"
|
||||||
|
#809# "CRC2:"
|
||||||
|
#810# "Xip CIC:"
|
||||||
|
#811# "MD5:"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* Cheats *
|
||||||
|
*********************************************************************************/
|
||||||
|
//Cheat List
|
||||||
|
#1000# "Trucs"
|
||||||
|
#1001# "Trucs:"
|
||||||
|
#1002# " Notes: "
|
||||||
|
#1003# "Marca-ho tot"
|
||||||
|
#1004# "Desmarca-ho tot"
|
||||||
|
|
||||||
|
//Add Cheat
|
||||||
|
#1005# "Afegeix truc"
|
||||||
|
#1006# "Nom:"
|
||||||
|
#1007# "Codi:"
|
||||||
|
#1008# "Insereix"
|
||||||
|
#1009# "Neteja"
|
||||||
|
#1010# " Notes del truc: "
|
||||||
|
#1011# "Afegeix a la DB"
|
||||||
|
|
||||||
|
//Code extension
|
||||||
|
#1012# "Extensions de codi"
|
||||||
|
#1013# "Trieu un valor per:"
|
||||||
|
#1014# "D'acord"
|
||||||
|
#1015# "Cancel·la"
|
||||||
|
|
||||||
|
//Digital Value
|
||||||
|
#1016# "Dígit de quantitat"
|
||||||
|
#1017# "Trieu un valor per:"
|
||||||
|
#1018# "&Valor"
|
||||||
|
#1019# "de"
|
||||||
|
#1020# "a"
|
||||||
|
#1021# "&Notes:"
|
||||||
|
#1022# "Afegeix truc"
|
||||||
|
#1023# "Nou truc"
|
||||||
|
#1024# "<adreça> <valor>"
|
||||||
|
#1025# "Opcions:"
|
||||||
|
#1026# "<valor> <etiqueta>"
|
||||||
|
|
||||||
|
//Edit Cheat
|
||||||
|
#1027# "Edita el truc"
|
||||||
|
#1028# "Actualitza el truc"
|
||||||
|
#1029# "El truc s'ha modificat.\n\nVoleu actualitzar?"
|
||||||
|
#1030# "Truc actualitzat"
|
||||||
|
|
||||||
|
//Cheat Popup Menu
|
||||||
|
#1040# "Afegeix nou truc..."
|
||||||
|
#1041# "Edita"
|
||||||
|
#1042# "Esborra"
|
||||||
|
|
||||||
|
// short-cut editor
|
||||||
|
#1100# "Reinicia dreceres"
|
||||||
|
#1101# "Segur que voleu reiniciar les dreceres?\n\nAquesta acció no es podrà desfer."
|
||||||
|
#1102# "Menú de Fitxer"
|
||||||
|
#1103# "Menú de Sistema"
|
||||||
|
#1104# "Opcions"
|
||||||
|
#1105# "Ranures de desat"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* Messages *
|
||||||
|
*********************************************************************************/
|
||||||
|
#2000# "*** CPU EN PAUSA ***"
|
||||||
|
#2001# "CPU continuat"
|
||||||
|
#2002# "Es troba en un bucle permanent i no pot sortir.\nL'emulació s'aturarà ara.\n\nComproveu la ROM i els paràmetres de ROM."
|
||||||
|
#2003# "No s'ha pogut assignar memòria"
|
||||||
|
#2004# "Ha desaparegut o no és vàlid el complement de vídeo seleccionat o per defecte.\n\nComproveu que teniu com a mínim un fitxer de complement compatible en la carpeta de complements."
|
||||||
|
#2005# "Ha desaparegut o no és vàlid el complement d'àudio seleccionat o per defecte.\n\nComproveu que teniu com a mínim un fitxer de complement compatible en la carpeta de complements."
|
||||||
|
#2006# "Ha desaparegut o no és vàlid el complement d'RSP seleccionat o per defecte.\n\nComproveu que teniu Project64 instal·lat adequadament amb un camí de complements vàlid."
|
||||||
|
#2007# "Ha desaparegut o no és vàlid el complement d'entrada seleccionat o per defecte.\n\nComproveu que teniu com a mínim un fitxer de complement compatible en la carpeta de complements."
|
||||||
|
#2008# "No s'ha pogut carregar el complement:"
|
||||||
|
#2009# "No s'ha pogut carregar la paraula\n\nComproveu la ROM i els paràmetres de ROM."
|
||||||
|
#2010# "No s'ha pogut obrir el fitxer de desat"
|
||||||
|
#2011# "No s'ha pogut obrir l'EEPROM"
|
||||||
|
#2012# "No s'ha pogut obrir el FlashRAM"
|
||||||
|
#2013# "No s'ha pogut obrir el mempak"
|
||||||
|
#2014# "Ha fallat l'intent d'obrir el fitxer zip.\nFitxer zip desaparegut o malmès - comproveu el camí i el fitxer.\n\nPotser necessitareu reiniciar l'aplicació."
|
||||||
|
#2015# "Ha fallat l'intent d'obrir el fitxer."
|
||||||
|
#2016# "S'ha produït un error en provar d'obrir el fitxer zip."
|
||||||
|
#2017# "El fitxer carregat no sembla que sigui una ROM de Nintendo 64 vàlida.\n\nVerifiqueu les ROMs amb GoodN64."
|
||||||
|
#2018# "País desconegut"
|
||||||
|
#2019# "Xip CIC desconegut"
|
||||||
|
#2020# "Format de fitxer desconegut"
|
||||||
|
#2021# "Acció de memòria desconeguda\n\nEmulació aturada"
|
||||||
|
#2022# "OpCode R4300i no gestionat a"
|
||||||
|
#2023# "Executant des d'un espai no-mapat.\n\nVerifiqueu la ROM i els paràmetres de la ROM."
|
||||||
|
#2024# "Sembla que l'estat desat no correspon a la ROM en execució.\n\nEls estats desats s'han de desar i carregar entre ROMs 100% idèntiques,\nen particular la REGIÓ i la VERSIÓ han de ser les mateixes.\nCarregant aquest estat és com provocar una fallida al joc o a l'emulador.\n\nSegur que voleu continuar carregant?"
|
||||||
|
#2025# "Error"
|
||||||
|
#2026# "No s'ha trobat la seqüència de copyright en el LUT. El joc deixarà de funcionar."
|
||||||
|
#2027# "Fallida de protecció de còpia"
|
||||||
|
#2028# "Canviar un complement cal que Project64 reinicii una ROM en execució.\nSi no vols perdre la teva posició, respon No i fes un desat d'estat primer.\n\nVoleu canviar els complements i reiniciar el joc ara?"
|
||||||
|
#2029# "Canvia complements"
|
||||||
|
#2030# "Emulació finalitzada"
|
||||||
|
#2031# "Emulació iniciada"
|
||||||
|
#2032# "No s'ha pogut carregar l'estat desat"
|
||||||
|
#2033# "S'ha carregat l'estat desat"
|
||||||
|
#2034# "S'ha desat l'estat actual a"
|
||||||
|
#2035# "Ranura d'estat desat"
|
||||||
|
#2036# "Imatge d'intercanvi d'octets"
|
||||||
|
#2037# "Triant imatge de N64"
|
||||||
|
#2038# "Carregat"
|
||||||
|
#2039# "Carregant imatge"
|
||||||
|
#2040# "No es pot obrir cap ROM perquè els complements no s'han iniciat correctament"
|
||||||
|
#2041# "Esteu realment segur que voleu esborrar això?"
|
||||||
|
#2042# "Esborra el truc"
|
||||||
|
#2043# "El nom del truc ja es troba en ús"
|
||||||
|
#2044# "Heu arribat al límit màxim de trucs per aquesta ROM"
|
||||||
|
#2045# "Inicialitzant complement"
|
||||||
|
#2046# "No heu seleccionat una clau virtual per assignar a l'element de menú."
|
||||||
|
#2047# "Necessiteu seleccionar un element de menú per assignar a aquesta acció."
|
||||||
|
#2048# "La drecera ja està assignada a un altre element de menú."
|
||||||
|
#2049# "No s'ha seleccionat cap drecera per esborrar."
|
||||||
|
#2050# "ROM carregada. Esperant per iniciar l'emulació."
|
||||||
|
#2051# "La versió beta de Project64 només és pels membres.\n\nSi teniu un compte a pj64.net, no hauríeu de veure aquest error!!\nContacteu amb nosaltres a la web."
|
||||||
|
#2052# "Error del programa"
|
||||||
|
#2053# "No s'ha pogut trobar el fitxer dins del fitxer 7z"
|
||||||
|
#2054# "Emulació de baix nivell (LLE) de vídeo"
|
||||||
|
#2055# "L'LLE de vídeo no és per un ús genèric!!!\nÉs aconsellable que només utilitzis això per fer proves i no per jugar.\n\nVoleu canviar a l'LLE de vídeo?"
|
||||||
|
#2056# "Emulació d'alt nivell (HLE) d'àudio"
|
||||||
|
#2057# "L'HLE d'àudio requereix un complement de tercers!!!\nSi s'utilitza cap complement de tercers que suporti HLE, no hi haurà cap so.\n\nVoleu canviar a l'HLE d'àudio?"
|
|
@ -88,6 +88,7 @@
|
||||||
#198# "插槽 8"
|
#198# "插槽 8"
|
||||||
#199# "插槽 9"
|
#199# "插槽 9"
|
||||||
#200# "插槽 10"
|
#200# "插槽 10"
|
||||||
|
#201# "插槽 (%ws) 被选"
|
||||||
|
|
||||||
//Pop up Menu
|
//Pop up Menu
|
||||||
#210# "运行游戏"
|
#210# "运行游戏"
|
||||||
|
@ -224,7 +225,7 @@
|
||||||
#452# " 选择材质包目录"
|
#452# " 选择材质包目录"
|
||||||
|
|
||||||
//Options Dialog
|
//Options Dialog
|
||||||
#460# "当窗口处于非活动状态时暂停模拟器"
|
#460# "当模拟器窗口不是处于屏幕最上方,暂停模拟器"
|
||||||
#461# "载入ROM后切换为全屏模式"
|
#461# "载入ROM后切换为全屏模式"
|
||||||
#462# "隐藏高级设置"
|
#462# "隐藏高级设置"
|
||||||
#463# "记住已选择的金手指"
|
#463# "记住已选择的金手指"
|
||||||
|
@ -255,7 +256,7 @@
|
||||||
#503# "自我修改码方案:"
|
#503# "自我修改码方案:"
|
||||||
#504# "默认存档容量:"
|
#504# "默认存档容量:"
|
||||||
#505# "高级模块连接"
|
#505# "高级模块连接"
|
||||||
#506# "当ROM加载后,开始模拟"
|
#506# "当读取完ROM后,开始模拟"
|
||||||
#507# "总是从 RDB 中覆盖默认设置"
|
#507# "总是从 RDB 中覆盖默认设置"
|
||||||
#508# "自动压缩即时存档文件"
|
#508# "自动压缩即时存档文件"
|
||||||
#509# "开启调试器"
|
#509# "开启调试器"
|
||||||
|
@ -318,7 +319,7 @@
|
||||||
#620# "使用最初的存档类型"
|
#620# "使用最初的存档类型"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -270,7 +270,7 @@
|
||||||
#620# "使用最初使用的存檔類型"
|
#620# "使用最初使用的存檔類型"
|
||||||
#621# "4-Kbit EEPROM"
|
#621# "4-Kbit EEPROM"
|
||||||
#622# "16-Kbit EEPROM"
|
#622# "16-Kbit EEPROM"
|
||||||
#623# "32-KByte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -266,7 +266,7 @@ RDB není pøítomno nebo volba dole 'pøepsat' je nezaškrtnutá"
|
||||||
#620# "* detek. první užívaný typ"
|
#620# "* detek. první užívaný typ"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbajtù SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbajtù flash RAM"
|
#624# "128-kbajtù flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -265,7 +265,7 @@
|
||||||
#620# "* Find den først anvendte type"
|
#620# "* Find den først anvendte type"
|
||||||
#621# "4kbit EEPROM"
|
#621# "4kbit EEPROM"
|
||||||
#622# "16kbit EEPROM"
|
#622# "16kbit EEPROM"
|
||||||
#623# "32kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128kbyte FlashRAM"
|
#624# "128kbyte FlashRAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -265,7 +265,7 @@
|
||||||
#620# "Gebruik de eerst gebruikte save"
|
#620# "Gebruik de eerst gebruikte save"
|
||||||
#621# "4kbit EEPROM"
|
#621# "4kbit EEPROM"
|
||||||
#622# "16kbit EEPROM"
|
#622# "16kbit EEPROM"
|
||||||
#623# "32kbytes SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flashram"
|
#624# "Flashram"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -88,6 +88,7 @@
|
||||||
#198# "Slot 8"
|
#198# "Slot 8"
|
||||||
#199# "Slot 9"
|
#199# "Slot 9"
|
||||||
#200# "Slot 10"
|
#200# "Slot 10"
|
||||||
|
#201# "Save Slot (%ws) selected"
|
||||||
|
|
||||||
//Pop up Menu
|
//Pop up Menu
|
||||||
#210# "Play Game"
|
#210# "Play Game"
|
||||||
|
@ -95,6 +96,7 @@
|
||||||
#212# "Edit Game Settings"
|
#212# "Edit Game Settings"
|
||||||
#213# "Edit Cheats"
|
#213# "Edit Cheats"
|
||||||
#214# "Graphics Plugin"
|
#214# "Graphics Plugin"
|
||||||
|
#215# "Play Game with Disk"
|
||||||
|
|
||||||
//Alternate Name to save Slot
|
//Alternate Name to save Slot
|
||||||
#220# "Save Slot - Default"
|
#220# "Save Slot - Default"
|
||||||
|
@ -177,7 +179,7 @@
|
||||||
#320# "Select current ROM directory"
|
#320# "Select current ROM directory"
|
||||||
|
|
||||||
//Messages
|
//Messages
|
||||||
#340# "Bad ROM? Use GoodN64 & check for updated RDB."
|
#340# "Bad ROM? Use GoodN64 & check that the RDB is up-to-date."
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Options *
|
* Options *
|
||||||
|
@ -241,7 +243,7 @@
|
||||||
#484# "Use ROM browser"
|
#484# "Use ROM browser"
|
||||||
#485# "Use directory recursion"
|
#485# "Use directory recursion"
|
||||||
#486# "Available fields:"
|
#486# "Available fields:"
|
||||||
#487# "Show fields in this order:"
|
#487# "Order of fields:"
|
||||||
#488# "Add ->"
|
#488# "Add ->"
|
||||||
#489# "<- Remove"
|
#489# "<- Remove"
|
||||||
#490# "Up"
|
#490# "Up"
|
||||||
|
@ -318,7 +320,7 @@
|
||||||
#620# "Use first-used save type"
|
#620# "Use first-used save type"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -277,7 +277,7 @@ no RDB is present, or 'overwrite' option below is unchecked"
|
||||||
#620# "* detect first-used type"
|
#620# "* detect first-used type"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Käytä 1. tallennustyyppiä"
|
#620# "Käytä 1. tallennustyyppiä"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -5,20 +5,20 @@
|
||||||
#1 # "Français" // LANGUAGE ID
|
#1 # "Français" // LANGUAGE ID
|
||||||
#2 # "Benjamin Siskoo" // Author
|
#2 # "Benjamin Siskoo" // Author
|
||||||
#3 # "2.2" // Version
|
#3 # "2.2" // Version
|
||||||
#4 # "6 Mai 2015" // Date
|
#4 # "2 Décembre 2015" // Date
|
||||||
|
|
||||||
//About DLL Dialog
|
//About DLL Dialog
|
||||||
#5 # "Langue en cours"
|
#5 # "Langue actuelle"
|
||||||
#6 # "Auteur"
|
#6 # "Auteur"
|
||||||
#7 # "Version"
|
#7 # "Version"
|
||||||
#8 # "Date"
|
#8 # "Date"
|
||||||
#9 # "Visiter le Site Web"
|
#9 # "Visiter le site web"
|
||||||
#10 # "Base de données des ROMs (.RDB)"
|
#10 # "Base de données des ROM (.rdb)"
|
||||||
#11 # "Fichier des Codes Cheats (.CHT)"
|
#11 # "Fichier des cheats (.cht)"
|
||||||
#12 # "Info sur les ROM étendues (.RDX)"
|
#12 # "Infos sur les ROM étendues (.rdx)"
|
||||||
|
|
||||||
//About INI title
|
//About INI title
|
||||||
#20 # "A Propos Des Fichiers Config"
|
#20 # "À propos des fichiers de configuration"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Menu *
|
* Menu *
|
||||||
|
@ -26,55 +26,55 @@
|
||||||
//File Menu
|
//File Menu
|
||||||
#100# "&Fichier"
|
#100# "&Fichier"
|
||||||
#101# "&Ouvrir une ROM"
|
#101# "&Ouvrir une ROM"
|
||||||
#102# "&Info sur la ROM..."
|
#102# "&Infos sur la ROM…"
|
||||||
#103# "Démarrer l'Emulation"
|
#103# "Démarrer l’émulation"
|
||||||
#104# "Arrêter l'Emulation"
|
#104# "Arrêter l’émulation"
|
||||||
#105# "Choisir le Répertoire ROM..."
|
#105# "Choisir le répertoire des ROM…"
|
||||||
#106# "Rafraîchir la Liste de ROM"
|
#106# "Rafraîchir la liste des ROM"
|
||||||
#107# "ROM Récente"
|
#107# "ROM récentes"
|
||||||
#108# "Répertoires ROM Récente"
|
#108# "Répertoires des ROM récentes"
|
||||||
#109# "&Quitter"
|
#109# "&Quitter"
|
||||||
|
|
||||||
//System Menu
|
//System Menu
|
||||||
#120# "&Système"
|
#120# "&Système"
|
||||||
#121# "&Redémarrer"
|
#121# "&Redémarrer"
|
||||||
#122# "&Pause"
|
#122# "&Pause"
|
||||||
#123# "&Capture d'Ecran"
|
#123# "&Capture d’écran"
|
||||||
#124# "Limiter les FPS"
|
#124# "Limiter les FPS"
|
||||||
#125# "&Sauvegarder l'Etat"
|
#125# "&Sauvegarder l’état"
|
||||||
#126# "Sauvegarder Sous..."
|
#126# "Sauvegarder sous…"
|
||||||
#127# "&Charger un Etat"
|
#127# "&Charger un état"
|
||||||
#128# "Charger..."
|
#128# "Charger…"
|
||||||
#129# "Sauvegarder l'&Etat en Cours"
|
#129# "Sauvegarder l’&état actuel"
|
||||||
#130# "Cheats..."
|
#130# "Cheats…"
|
||||||
#131# "Bouton GameShark (Cheats)"
|
#131# "Bouton GameShark (cheats)"
|
||||||
#132# "R&eprendre"
|
#132# "R&eprendre"
|
||||||
#133# "Redémarrage &Logiciel"
|
#133# "Redémarrage &logiciel"
|
||||||
#134# "Redémarrage &Matériel"
|
#134# "Redémarrage &matériel"
|
||||||
|
|
||||||
//Options Menu
|
//Options Menu
|
||||||
#140# "&Options"
|
#140# "&Options"
|
||||||
#141# "&Plein écran"
|
#141# "&Plein écran"
|
||||||
#142# "&Afficher la Fenêtre au Premier Plan"
|
#142# "&Toujours visible"
|
||||||
#143# "Configurer le Plugin Graphique..."
|
#143# "Configurer le plugin graphique…"
|
||||||
#144# "Configurer le Plugin Audio..."
|
#144# "Configurer le plugin audio…"
|
||||||
#145# "Configurer le Plugin Contrôleur..."
|
#145# "Configurer le plugin contrôleur…"
|
||||||
#146# "Configurer le Plugin RSP..."
|
#146# "Configurer le plugin RSP…"
|
||||||
#147# "Afficher l'Utilisation du CPU"
|
#147# "Afficher l’utilisation du CPU"
|
||||||
#148# "&Paramètres..."
|
#148# "&Paramètres…"
|
||||||
|
|
||||||
//Debugger Menu
|
//Debugger Menu
|
||||||
#160# "&Débugeur"
|
#160# "&Débogueur"
|
||||||
|
|
||||||
//Language Menu
|
//Language Menu
|
||||||
#175# "&Langage"
|
#175# "&Langage"
|
||||||
|
|
||||||
//Help MenuAide"
|
//Help Menu
|
||||||
#180# "&Aide"
|
#180# "&Aide"
|
||||||
#181# "A Propos Des Fichiers Conf&ig"
|
#181# "À propos des fichiers de conf&iguration"
|
||||||
#182# "&A Propos De Project64"
|
#182# "À &propos de Project64"
|
||||||
#183# "&Forum de Support"
|
#183# "&Forum de support"
|
||||||
#184# "Site &Web"
|
#184# "Site &web"
|
||||||
|
|
||||||
//Current Save Slot menu
|
//Current Save Slot menu
|
||||||
#190# "Défaut"
|
#190# "Défaut"
|
||||||
|
@ -88,96 +88,98 @@
|
||||||
#198# "Emplacement 8"
|
#198# "Emplacement 8"
|
||||||
#199# "Emplacement 9"
|
#199# "Emplacement 9"
|
||||||
#200# "Emplacement 10"
|
#200# "Emplacement 10"
|
||||||
|
#201# "Sélection de l’emplacement de sauvegarde (%ws)"
|
||||||
|
|
||||||
//Pop up Menu
|
//Pop up Menu
|
||||||
#210# "Lancer le Jeu"
|
#210# "Lancer le jeu"
|
||||||
#211# "Information sur la ROM"
|
#211# "Informations sur la ROM"
|
||||||
#212# "Editer les Paramètres du Jeu"
|
#212# "Éditer les paramètres du jeu"
|
||||||
#213# "Editer les Cheats"
|
#213# "Éditer les cheats"
|
||||||
#214# "Plugin Graphiques"
|
#214# "Plugin graphique"
|
||||||
|
#215# "Lancer le Jeu avec le Disque"
|
||||||
|
|
||||||
//Alternate Name to save Slot
|
//Alternate Name to save Slot
|
||||||
#220# "Sauvegarder l'Emplacement - Défaut"
|
#220# "Emplacement de sauvegarde - Défaut"
|
||||||
#221# "Sauvegarder l'Emplacement - 1"
|
#221# "Emplacement de sauvegarde - 1"
|
||||||
#222# "Sauvegarder l'Emplacement - 2"
|
#222# "Emplacement de sauvegarde - 2"
|
||||||
#223# "Sauvegarder l'Emplacement - 3"
|
#223# "Emplacement de sauvegarde - 3"
|
||||||
#224# "Sauvegarder l'Emplacement - 4"
|
#224# "Emplacement de sauvegarde - 4"
|
||||||
#225# "Sauvegarder l'Emplacement - 5"
|
#225# "Emplacement de sauvegarde - 5"
|
||||||
#226# "Sauvegarder l'Emplacement - 6"
|
#226# "Emplacement de sauvegarde - 6"
|
||||||
#227# "Sauvegarder l'Emplacement - 7"
|
#227# "Emplacement de sauvegarde - 7"
|
||||||
#228# "Sauvegarder l'Emplacement - 8"
|
#228# "Emplacement de sauvegarde - 8"
|
||||||
#229# "Sauvegarder l'Emplacement - 9"
|
#229# "Emplacement de sauvegarde - 9"
|
||||||
#230# "Sauvegarder l'Emplacement - 10"
|
#230# "Emplacement de sauvegarde - 10"
|
||||||
|
|
||||||
// Menu Descriptions
|
// Menu Descriptions
|
||||||
#250# "Ouvrir une Image ROM N64"
|
#250# "Ouvrir une image ROM N64"
|
||||||
#251# "Afficher les informations concernant l'image chargé"
|
#251# "Afficher les informations concernant l’image chargée"
|
||||||
#252# "Lancer l'émulation d'une image ROM chargé"
|
#252# "Lancer l’émulation de l’image ROM chargée"
|
||||||
#253# "Arrêter l'émulation d'une image ROM chargé"
|
#253# "Arrêter l’émulation de l’image ROM chargée"
|
||||||
#254# "Sélectionner le répertoire de la ROM"
|
#254# "Sélectionner le répertoire des ROM"
|
||||||
#255# "Rafraîchir la liste de ROMS en cours dans le navigateur de ROM"
|
#255# "Rafraîchir la liste actuelle des ROM dans le navigateur de ROM"
|
||||||
#256# "Quitter l'application"
|
#256# "Quitter l’application"
|
||||||
#257# "Redémarrer l'image de la ROM en cours (recharger tous les changements de paramètres)"
|
#257# "Redémarrer l’image ROM actuelle (recharger tous les changements de paramètres)"
|
||||||
#258# "Mettre en pause/reprendre l'émulation de la ROM lancé en cours"
|
#258# "Mettre en pause/reprendre l’émulation de la ROM lancée"
|
||||||
#259# "Générer une image bitmap de l'écran en cours"
|
#259# "Générer une image bitmap de l’écran actuel"
|
||||||
#260# "Limiter les FPS à la bonne vitesse de la N64"
|
#260# "Limiter les FPS à la bonne vitesse de la N64"
|
||||||
#261# "Sauvegarder l'état du système en cours"
|
#261# "Sauvegarder l’état actuel du système"
|
||||||
#262# "Sauvegarder l'état du système en cours dans l'emplacement du fichier sélectionné"
|
#262# "Sauvegarder l’état actuel du système à l’emplacement du fichier sélectionné"
|
||||||
#263# "Charger l'état du système sauvegardé"
|
#263# "Charger la sauvegarde d’état"
|
||||||
#264# "Choisir un fichier d'état système sauvegardé à charger"
|
#264# "Choisir un fichier de sauvegarde d’état à charger"
|
||||||
#265# "Activer/Désactiver les cheats GameShark"
|
#265# "Activer/désactiver les cheats GameShark"
|
||||||
#266# "Le bouton GameShark est utilisé avec des cheats spécifique."
|
#266# "Le bouton GameShark est utilisé avec des cheats spécifiques."
|
||||||
#267# "Basculer l'émulation du mode fenêtré vers le mode plein écran."
|
#267# "Basculer l’émulation du mode fenêtré vers le mode plein écran."
|
||||||
#268# "Permet de mettre la fenêtre Project64 au premier plan"
|
#268# "Permet de mettre la fenêtre Project64 toujours au premier plan"
|
||||||
#269# "Configurer le plugin graphique"
|
#269# "Configurer le plugin graphique"
|
||||||
#270# "Configurer le plugin audio"
|
#270# "Configurer le plugin audio"
|
||||||
#271# "Configurer le plugin contrôleur (ex : choisir les touches)"
|
#271# "Configurer le plugin contrôleur (ex : choisir les touches)"
|
||||||
#272# "Configurer le plugin RSP"
|
#272# "Configurer le plugin RSP"
|
||||||
#273# "Afficher l'utilisation du CPU de l'émulateur répartie sur les différentes tâches"
|
#273# "Afficher l’utilisation du CPU de l’émulateur répartie sur les différentes ressources"
|
||||||
#274# "Voir/changer les paramètres pour cette application"
|
#274# "Voir/changer les paramètres pour cette application"
|
||||||
#275# "Voir le manuel pour l'application"
|
#275# "Voir le manuel pour l’application"
|
||||||
#276# "Voir la FAQ pour l'application"
|
#276# "Voir la FAQ pour l’application"
|
||||||
#278# "A Propos de l'application et des auteurs"
|
#278# "À propos de l’application et des auteurs"
|
||||||
#277# "A Propos des auteurs sur les fichiers de support"
|
#277# "À propos des auteurs sur les fichiers de support"
|
||||||
#279# "Ouvrir l'image ROM ouverte précédemment"
|
#279# "Ouvrir l’image ROM ouverte précédemment"
|
||||||
#280# "Choisir ce répertoire comme votre répertoire de jeu"
|
#280# "Choisir ce répertoire comme votre répertoire de jeu"
|
||||||
#281# "Changer l'application pour utiliser cette langue"
|
#281# "Changer l’application pour utiliser cette langue"
|
||||||
#282# "Choisir l'emplacement de sauvegarde pour l'état sauvegardé"
|
#282# "Choisir l’emplacement de sauvegarde pour l’état sauvegardé"
|
||||||
#283# "Jouer au jeu sélectionné"
|
#283# "Jouer au jeu sélectionné"
|
||||||
#284# "Information concernant le jeu sélectionné"
|
#284# "Informations concernant le jeu sélectionné"
|
||||||
#285# "Editer les paramètres pour le jeu sélectionné"
|
#285# "Éditer les paramètres pour le jeu sélectionné"
|
||||||
#286# "Editer les cheats pour le jeu sélectionné"
|
#286# "Éditer les cheats pour le jeu sélectionné"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* ROM Browser *
|
* ROM Browser *
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
//ROM Browser Fields
|
//ROM Browser Fields
|
||||||
#300# "Nom du Fichier"
|
#300# "Nom du fichier"
|
||||||
#301# "Nom Interne"
|
#301# "Nom interne"
|
||||||
#302# "Nom Correcte (GOODN64)"
|
#302# "Nom correct (GoodN64)"
|
||||||
#303# "Statut"
|
#303# "Statut"
|
||||||
#304# "Taille de la ROM"
|
#304# "Taille de la ROM"
|
||||||
#305# "Notes (noyau)"
|
#305# "Notes (noyau)"
|
||||||
#306# "Notes (plugins par défaut)"
|
#306# "Notes (plugins par défaut)"
|
||||||
#307# "Notes (utilisateur)"
|
#307# "Notes (utilisateur)"
|
||||||
#308# "ID de la Cartouche"
|
#308# "ID de la cartouche"
|
||||||
#309# "Constructeur"
|
#309# "Constructeur"
|
||||||
#310# "Pays"
|
#310# "Pays"
|
||||||
#311# "Développeur"
|
#311# "Développeur"
|
||||||
#312# "CRC1"
|
#312# "CRC1"
|
||||||
#313# "CRC2"
|
#313# "CRC2"
|
||||||
#314# "Puce CIC"
|
#314# "Puce CIC"
|
||||||
#315# "Date de Sortie"
|
#315# "Date de sortie"
|
||||||
#316# "Genre"
|
#316# "Genre"
|
||||||
#317# "Joueurs"
|
#317# "Joueurs"
|
||||||
#318# "Forcer le Feedback"
|
#318# "Forcer le feedback"
|
||||||
#319# "Format de Fichier"
|
#319# "Format de fichier"
|
||||||
|
|
||||||
//Select ROM
|
//Select ROM
|
||||||
#320# "Sélectionner le Répertoire ROM en cours"
|
#320# "Sélectionner le répertoire de ROM actuel"
|
||||||
|
|
||||||
//Messages
|
//Messages
|
||||||
#340# "Mauvaise ROM ? Utilisez GoodN64 & vérifier la mise à jour de RDB"
|
#340# "Mauvaise ROM ? Utilisez GoodN64 et vérifiez que le fichier RDB est à jour"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Options *
|
* Options *
|
||||||
|
@ -189,122 +191,122 @@
|
||||||
#401# "Plugins"
|
#401# "Plugins"
|
||||||
#402# "Répertoires"
|
#402# "Répertoires"
|
||||||
#403# "Options"
|
#403# "Options"
|
||||||
#404# "Sélection de la ROM"
|
#404# "Navigateur de ROM"
|
||||||
#405# "Avancée"
|
#405# "Avancé"
|
||||||
#406# "Paramètre Général"
|
#406# "Paramètres généraux"
|
||||||
#407# "Intégration du Shell"
|
#407# "Intégration au shell"
|
||||||
#408# "Notes"
|
#408# "Notes"
|
||||||
#409# "Raccourcis Clavier"
|
#409# "Raccourcis clavier"
|
||||||
#410# "Statut"
|
#410# "Statut"
|
||||||
#411# "Recompileur"
|
#411# "Recompilateur"
|
||||||
|
|
||||||
//Plugin Dialog
|
//Plugin Dialog
|
||||||
#420# "A Propos De"
|
#420# "À propos"
|
||||||
#421# " Plugin RSP (Reality Signal Processor) : "
|
#421# " Plugin RSP (Reality Signal Processor) : "
|
||||||
#422# " Plugin Vidéo (graphique) : "
|
#422# " Plugin vidéo (graphique) : "
|
||||||
#423# " Plugin Audio (son) : "
|
#423# " Plugin audio (son) : "
|
||||||
#424# " Plugin Input (contrôleur) : "
|
#424# " Plugin input (contrôleur) : "
|
||||||
#425# "Graphismes HLE"
|
#425# "Graphismes HLE"
|
||||||
#426# "Audio HLE"
|
#426# "Audio HLE"
|
||||||
#427# "** Utiliser le Système de Plugin **"
|
#427# "** Utiliser le plugin système **"
|
||||||
|
|
||||||
//Directory Dialog
|
//Directory Dialog
|
||||||
#440# " Répertoire Plugins : "
|
#440# " Répertoire des plugins : "
|
||||||
#441# " Répertoire ROM : "
|
#441# " Répertoire des ROM : "
|
||||||
#442# " Répertoire des Sauvegardes N64 natif : "
|
#442# " Répertoire des sauvegardes N64 natives : "
|
||||||
#443# " Répertoire des Etats Sauvegardés : "
|
#443# " Répertoire des sauvegardes d’état : "
|
||||||
#444# " Répertoire des Captures d'Ecrans : "
|
#444# " Répertoire des captures d’écran : "
|
||||||
#445# "Dernier Dossier d'où la ROM a été ouverte"
|
#445# "Dernier répertoire d’où la ROM a été ouverte"
|
||||||
#446# "Sélectionner le Répertoire Plugin"
|
#446# "Sélectionner le répertoire des plugins"
|
||||||
#447# "Sélectionner le Répertoire ROM"
|
#447# "Sélectionner le répertoire des ROM"
|
||||||
#448# "Sélectionner le Répertoire des Sauvegardes N64 natif"
|
#448# "Sélectionner le répertoire des sauvegardes N64 natives"
|
||||||
#449# "Sélectionner le Répertoire des Etats Sauvegardés"
|
#449# "Sélectionner le répertoire des sauvegardes d’état"
|
||||||
#450# "Sélectionner le Répertoire des Copies d'Ecrans"
|
#450# "Sélectionner le répertoire des captures d’écran"
|
||||||
#451# " Répertoire du Pack de Texture : "
|
#451# " Répertoire du pack de textures : "
|
||||||
#452# "Sélectionner le Répertoire du Pack de Texture"
|
#452# "Sélectionner le répertoire du pack de texture"
|
||||||
|
|
||||||
//Options (general) Tab
|
//Options (general) Tab
|
||||||
#460# "Emulation en pause quand la fenêtre n'est pas active"
|
#460# "Émulation en pause quand la fenêtre est inactive"
|
||||||
#461# "Entrer en mode Plein Ecran pendant le Chargement d'une ROM"
|
#461# "Passer en plein écran au chargement d’une ROM"
|
||||||
#462# "Cacher les Paramètres Avancées"
|
#462# "Cacher les paramètres avancés"
|
||||||
#463# "Retenir les Cheats Sélectionnés"
|
#463# "Retenir les cheats sélectionnés"
|
||||||
#464# "Désactiver l'Ecran de Veille pendant le Lancement d'une ROM"
|
#464# "Désactiver l’écran de veille quand une ROM est lancée"
|
||||||
#465# "Afficher la Vitesse"
|
#465# "Afficher la vitesse"
|
||||||
#466# "Vitesse Affiché"
|
#466# "Vitesse affichée :"
|
||||||
#467# "Vérifier si Project64 est déjà lancé"
|
#467# "Vérifier si Project64 est déjà lancé"
|
||||||
|
|
||||||
//ROM Browser Tab
|
//ROM Browser Tab
|
||||||
#480# "Max de ROMS à retenir (0-10) :"
|
#480# "Max de ROM à retenir (0-10) :"
|
||||||
#481# "ROMs"
|
#481# "ROM"
|
||||||
#482# "Max de répertoires ROM à retenir (0-10) :"
|
#482# "Max de répertoires ROM à retenir (0-10) :"
|
||||||
#483# "répertoires"
|
#483# "répertoires"
|
||||||
#484# "Utiliser le Navigateur de ROM"
|
#484# "Utiliser le navigateur de ROM"
|
||||||
#485# "Utiliser la Récursivité du Répertoire"
|
#485# "Utiliser également les sous-répertoires"
|
||||||
#486# "Champs Disponible :"
|
#486# "Champs disponibles :"
|
||||||
#487# "Champs dans l'ordre :"
|
#487# "Champs dans l’ordre :"
|
||||||
#488# "Ajouter ->"
|
#488# "Ajouter ->"
|
||||||
#489# "<- Supprimer"
|
#489# "<- Supprimer"
|
||||||
#490# "Haut"
|
#490# "Haut"
|
||||||
#491# "Bas"
|
#491# "Bas"
|
||||||
#492# "Rafraîchir Automatique le Navigateur"
|
#492# "Rafraîchir automatiquement le navigateur"
|
||||||
|
|
||||||
//Advanced Options
|
//Advanced Options
|
||||||
#500# "La plupart de ces changements ne prendront pas effet jusqu'à ce qu'une nouvelle ROM soit ouverte ou que la ROM en cours soit redémarré."
|
#500# "La plupart de ces changements ne prendront pas effet avant qu’une nouvelle ROM soit ouverte ou que la ROM actuelle soit redémarrée."
|
||||||
#501# "Noyau par Défaut"
|
#501# "Noyau par défaut"
|
||||||
#502# "Style du Noyau du CPU :"
|
#502# "Style de noyau CPU :"
|
||||||
#503# "Méthodes Self mod"
|
#503# "Méthodes Self Mod"
|
||||||
#504# "Taille de la Mémoire par Défaut :"
|
#504# "Taille de la mémoire par défaut :"
|
||||||
#505# "Lien Avancée du Bloc :"
|
#505# "Liaison de blocs avancée"
|
||||||
#506# "Démarrer l'émulation après le chargement des ROMS"
|
#506# "Démarrer l’émulation au chargement d’une ROM"
|
||||||
#507# "Préférer les réglages du fichier RDB à ceux par défaut"
|
#507# "Préférer les réglages du fichier RDB à ceux par défaut"
|
||||||
#508# "Compresser Automatiquement les Etats Sauvegardés"
|
#508# "Compresser automatiquement les sauvegardes d’état"
|
||||||
#509# "Activer le Débugeur"
|
#509# "Activer le débogueur"
|
||||||
#510# "Cache"
|
#510# "Cache"
|
||||||
#511# "PI DMA"
|
#511# "PI DMA"
|
||||||
#512# "Lance le Changement"
|
#512# "Lancer si modifié"
|
||||||
#513# "Mémoire Protégé"
|
#513# "Protéger la mémoire"
|
||||||
#514# "TLB Non Défini"
|
#514# "TLB unmapping"
|
||||||
|
|
||||||
//ROM Options
|
//ROM Options
|
||||||
#520# "Style de Noyau :"
|
#520# "Style de noyau CPU :"
|
||||||
#521# "Taux Rafraîchissement VI :"
|
#521# "Taux de rafraîchissement VI :"
|
||||||
#522# "Taille de la Mémoire :"
|
#522# "Taille de la mémoire :"
|
||||||
#523# "Lien Avancée du Bloc"
|
#523# "Liaison de blocs avancée"
|
||||||
#524# "Type de Sauvegarde :"
|
#524# "Type de sauvegarde :"
|
||||||
#525# "Compteur (Facteur) :"
|
#525# "Facteur compteur :"
|
||||||
#526# "Augmentation Compilé du Tampon"
|
#526# "Plus grand tampon de compilation"
|
||||||
#527# "Utiliser le TLB"
|
#527# "Utiliser le TLB"
|
||||||
#528# "Registre en Cache"
|
#528# "Mettre en cache les registres"
|
||||||
#529# "Retarder l'Interruption SI"
|
#529# "Retarder l’interruption SI"
|
||||||
#530# "SP Rapide"
|
#530# "SP rapide"
|
||||||
#531# "Défaut"
|
#531# "Défaut"
|
||||||
#532# "Signal Audio RSP"
|
#532# "Signal audio RSP"
|
||||||
#533# "Correction du Timing Audio"
|
#533# "Correction du timing audio"
|
||||||
#534# "Méthode Fonction Recherche :"
|
#534# "Méthode de recherche de fonctions :"
|
||||||
#535# "Méthode Personnalisé self mod"
|
#535# "Méthode self mod personnalisée"
|
||||||
#536# "Synchronisation Audio"
|
#536# "Synchronisation audio"
|
||||||
#537# "Compteur AI par byte"
|
#537# "Compteur AI par octet"
|
||||||
#538# "Moteur 32-bit"
|
#538# "Moteur 32 bits"
|
||||||
#539# "Retarder l'Interruption DP"
|
#539# "Retarder l’interruption DP"
|
||||||
|
|
||||||
//Core Styles
|
//Core Styles
|
||||||
#540# "Interpréteur"
|
#540# "Interpréteur"
|
||||||
#541# "Recompileur"
|
#541# "Recompilateur"
|
||||||
#542# "Synchroniser les Noyaux"
|
#542# "Synchroniser les noyaux"
|
||||||
|
|
||||||
//Self Mod Methods
|
//Self Mod Methods
|
||||||
#560# "Aucun"
|
#560# "Aucun"
|
||||||
#561# "Cache"
|
#561# "Cache"
|
||||||
#562# "Mémoire Protégé"
|
#562# "Protéger la mémoire"
|
||||||
#563# "Vérifier la Mémoire & le Cache"
|
#563# "Vérifier la mémoire et le cache"
|
||||||
#564# "Changer la Mémoire & le Cache"
|
#564# "Changer la mémoire et le cache"
|
||||||
#565# "Vérifier la Mémoire Avancée"
|
#565# "Vérifier la mémoire avancée"
|
||||||
#566# "Vider le Code du Cache"
|
#566# "Vider le code du cache"
|
||||||
|
|
||||||
//Function Lookup method
|
//Function Lookup method
|
||||||
#570# "Table de Recherche Physique"
|
#570# "Table de recherche physique"
|
||||||
#571# "Table de Recherche Virtuelle"
|
#571# "Table de recherche virtuelle"
|
||||||
#572# "Changer la Mémoire"
|
#572# "Changer la mémoire"
|
||||||
|
|
||||||
//RDRAM Size
|
//RDRAM Size
|
||||||
#580# "4 Mo"
|
#580# "4 Mo"
|
||||||
|
@ -316,59 +318,61 @@
|
||||||
|
|
||||||
//Save Type
|
//Save Type
|
||||||
#620# "Par défaut"
|
#620# "Par défaut"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4 kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16 kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
#640# "Associer Fichier d'Extension :"
|
#640# "Associer l’extension de fichier :"
|
||||||
|
|
||||||
//ROM Notes
|
//ROM Notes
|
||||||
#660# "Statut ROM :"
|
#660# "Statut ROM :"
|
||||||
#661# "Note Noyau :"
|
#661# "Note noyau :"
|
||||||
#662# "Note Plugin :"
|
#662# "Note plugin :"
|
||||||
|
|
||||||
// Accelerator Selector
|
// Accelerator Selector
|
||||||
#680# "Etat du CPU :"
|
#680# "État du CPU :"
|
||||||
#681# "Menu Objet :"
|
#681# "Menu objet :"
|
||||||
#682# "Touches en Cours :"
|
#682# "Touches actuelles :"
|
||||||
#683# "Sélectionner Nouveau Raccourci :"
|
#683# "Sélectionner nouveau raccourci :"
|
||||||
#684# "Actuellement Assigné à :"
|
#684# "Actuellement assigné à :"
|
||||||
#685# "Assigner"
|
#685# "Assigner"
|
||||||
#686# "Supprimer"
|
#686# "Supprimer"
|
||||||
#687# "Tout Redémarrer"
|
#687# "Tout Réinitialiser"
|
||||||
#688# "Le jeu ne se lance pas"
|
#688# "Aucun jeu lancé"
|
||||||
#689# "Le jeu fonctionne"
|
#689# "Un jeu est lancé"
|
||||||
#690# "Le jeu fonctionne (Fenêtré)"
|
#690# "Un jeu est lancé (Fenêtré)"
|
||||||
#691# "Le jeu fonctionne (Plein Ecran)"
|
#691# "Un jeu est lancé (Plein écran)"
|
||||||
|
#692# "Détecter la touche"
|
||||||
|
|
||||||
// Frame Rate Option
|
// Frame Rate Option
|
||||||
#700# "Interruptions Vertical par secondes"
|
#700# "Interruptions verticales par seconde"
|
||||||
#701# "Afficher les listes par secondes"
|
#701# "Listes d’affichage par seconde"
|
||||||
#702# "Pourcentage à Pleine Vitesse"
|
#702# "Pourcentage de la vitesse normale"
|
||||||
|
|
||||||
// Increase speed
|
// Increase speed
|
||||||
#710# "Augmenter la Vitesse du Jeu"
|
#710# "Augmenter la vitesse du jeu"
|
||||||
#711# "Diminuer la Vitesse du Jeu"
|
#711# "Diminuer la vitesse du jeu"
|
||||||
|
|
||||||
//Bottom page buttons
|
//Bottom page buttons
|
||||||
#720# "Redémarrer la Page"
|
#720# "Réinitialiser la page"
|
||||||
#721# "Tout Redémarrer"
|
#721# "Tout réinitialiser"
|
||||||
#722# "Appliquer"
|
#722# "Appliquer"
|
||||||
|
#723# "Fermer"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* ROM Information *
|
* ROM Information *
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
//ROM Info Title
|
//ROM Info Title
|
||||||
#800# "Information ROM"
|
#800# "Informations sur la ROM"
|
||||||
|
|
||||||
//ROM Info Text
|
//ROM Info Text
|
||||||
#801# "Nom de la ROM :"
|
#801# "Nom de la ROM :"
|
||||||
#802# "Nom du Fichier :"
|
#802# "Nom du fichier :"
|
||||||
#803# "Localisation :"
|
#803# "Emplacement :"
|
||||||
#804# "Taille de la ROM :"
|
#804# "Taille de la ROM :"
|
||||||
#805# "ID Cartouche :"
|
#805# "ID cartouche :"
|
||||||
#806# "Développeur :"
|
#806# "Développeur :"
|
||||||
#807# "Pays :"
|
#807# "Pays :"
|
||||||
#808# "CRC1 :"
|
#808# "CRC1 :"
|
||||||
|
@ -383,114 +387,114 @@
|
||||||
#1000# "Cheats"
|
#1000# "Cheats"
|
||||||
#1001# "Cheats :"
|
#1001# "Cheats :"
|
||||||
#1002# " Notes : "
|
#1002# " Notes : "
|
||||||
#1003# "Tout Marquer"
|
#1003# "Tout cocher"
|
||||||
#1004# "Rien Marquer"
|
#1004# "Tout décocher"
|
||||||
|
|
||||||
//Add Cheat
|
//Add Cheat
|
||||||
#1005# "Ajouter un Cheat"
|
#1005# "Ajouter un cheat"
|
||||||
#1006# "Nom :"
|
#1006# "Nom :"
|
||||||
#1007# "Code :"
|
#1007# "Code :"
|
||||||
#1008# "Insérer"
|
#1008# "Insérer"
|
||||||
#1009# "Vider"
|
#1009# "Vider"
|
||||||
#1010# " Notes Cheat : "
|
#1010# " Notes cheat : "
|
||||||
#1011# "Ajout à la BDD"
|
#1011# "Ajouter à la BDD"
|
||||||
|
|
||||||
//Code extension
|
//Code extension
|
||||||
#1012# "Code Extensions"
|
#1012# "Extensions de code"
|
||||||
#1013# "Veuillez choisir une valeur a utilisé pour :"
|
#1013# "Veuillez choisir une valeur à utiliser pour :"
|
||||||
#1014# "OK"
|
#1014# "OK"
|
||||||
#1015# "Annuler"
|
#1015# "Annuler"
|
||||||
|
|
||||||
//Digital Value
|
//Digital Value
|
||||||
#1016# "Quantité de Chiffre"
|
#1016# "Nombre quantité"
|
||||||
#1017# "Veuillez Choisir une Valeur pour :"
|
#1017# "Veuillez choisir une valeur pour :"
|
||||||
#1018# "&Valeur"
|
#1018# "&Valeur"
|
||||||
#1019# "depuis"
|
#1019# "depuis"
|
||||||
#1020# "vers"
|
#1020# "vers"
|
||||||
#1021# "&Notes :"
|
#1021# "&Notes :"
|
||||||
#1022# "Ajouter un Cheat"
|
#1022# "Ajouter un cheat"
|
||||||
#1023# "Nouveau Cheat"
|
#1023# "nouveau cheat"
|
||||||
#1024# "<adresse> <valeur>"
|
#1024# "<adresse> <valeur>"
|
||||||
#1025# "Options :"
|
#1025# "Options :"
|
||||||
#1026# "<value> <label>"
|
#1026# "<valeur> <label>"
|
||||||
|
|
||||||
//Edit Cheat
|
//Edit Cheat
|
||||||
#1027# "Editer un Cheat"
|
#1027# "Éditer un cheat"
|
||||||
#1028# "Mise à jour du Cheat"
|
#1028# "Mettre à jour un cheat"
|
||||||
#1029# "Le Cheat a été changé.\n\nVoulez vous mettre à jour ?"
|
#1029# "Le cheat a été modifié.\n\nVoulez vous mettre à jour ?"
|
||||||
#1030# "Cheat mise à jour"
|
#1030# "Cheat mise à jour"
|
||||||
|
|
||||||
//Cheat Popup Menu
|
//Cheat Popup Menu
|
||||||
#1040# "Ajouter un Nouveau Cheat..."
|
#1040# "Ajouter un nouveau cheat…"
|
||||||
#1041# "Editer"
|
#1041# "Éditer"
|
||||||
#1042# "Effacer"
|
#1042# "Effacer"
|
||||||
|
|
||||||
// short-cut editor
|
// short-cut editor
|
||||||
#1100# "Raz les Raccourcis"
|
#1100# "Réinitialiser les raccourcis"
|
||||||
#1101# "Etes vous sûr de vouloir redémarrer les raccourcis ?\n\nCette action ne peut pas être annulé."
|
#1101# "Êtes-vous sûr de vouloir réinitialiser les raccourcis?\n\nCette action ne peut pas être annulée."
|
||||||
#1102# "Menu Fichier"
|
#1102# "Menu fichier"
|
||||||
#1103# "Menu Système"
|
#1103# "Menu système"
|
||||||
#1104# "Options"
|
#1104# "Options"
|
||||||
#1105# "Sauvegarder les Emplacements"
|
#1105# "Emplacements de sauvegarde"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Messages *
|
* Messages *
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
#2000# "*** CPU EN PAUSE ***"
|
#2000# "*** CPU EN PAUSE ***"
|
||||||
#2001# "Reprise CPU"
|
#2001# "Reprise du CPU"
|
||||||
#2002# "Dans une boucle permanente, on ne peut pas quitter. \nL'émulation s'arrêtera. \n\nVérifier la ROM et les paramètres de la ROM."
|
#2002# "Dans une boucle permanente dont il est impossible de sortir.\nL’émulation va maintenant s’arrêter.\n\nVérifiez la ROM et les paramètres de la ROM."
|
||||||
#2003# "L'allocation de mémoire a échoué"
|
#2003# "L’allocation de mémoire a échoué"
|
||||||
#2004# "Le plugin Vidéo sélectionné ou par défaut est manquant ou invalide. \n\nVous devez aller dans les Paramètres et sélectionner un plugin Vidéo (graphique).\nVérifier que vous ayez au moins un fichier plugin compatible dans votre dossier plugin."
|
#2004# "Le plugin vidéo sélectionné ou par défaut est manquant ou invalide.\n\nVous devez aller dans les paramètres et sélectionner un plugin vidéo (graphique).\nVérifiez que vous avez au moins un fichier plugin compatible dans votre répertoire de plugins."
|
||||||
#2005# "Le plugin Audio sélectionné ou par défaut est manquant ou invalide. \n\nVous devez aller dans les Paramètres et sélectionner un plugin Audio (son).\nVérifier que vous ayez au moins un fichier plugin compatible dans votre dossier plugin."
|
#2005# "Le plugin audio sélectionné ou par défaut est manquant ou invalide.\n\nVous devez aller dans les paramètres et sélectionner un plugin audio (son).\nVérifiez que vous avez au moins un fichier plugin compatible dans votre répertoire de plugins."
|
||||||
#2006# "Le plugin RSP sélectionné ou par défaut est manquant ou invalide. \n\nVous devez aller dans les Paramètres et sélectionner un plugin RSP (Reality Signal Processor).\nVérifier que vous ayez au moins un fichier plugin compatible dans votre dossier plugin."
|
#2006# "Le plugin RSP sélectionné ou par défaut est manquant ou invalide.\n\nVous devez aller dans les paramètres et sélectionner un plugin RSP (Reality Signal Processor).\nVérifiez que vous avez au moins un fichier plugin compatible dans votre répertoire de plugins."
|
||||||
#2007# "Le plugin Entrée sélectionné ou par défaut est manquant ou invalide. \n\nVous devez aller dans les Paramètres et sélectionner un plugin Entrée (contrôleur).\nVérifier que vous ayez au moins un fichier plugin compatible dans votre dossier plugin."
|
#2007# "Le plugin input sélectionné ou par défaut est manquant ou invalide.\n\nVous devez aller dans les paramètres et sélectionner un plugin input (contrôleur).\nVérifiez que vous avez au moins un fichier plugin compatible dans votre répertoire de plugins."
|
||||||
#2008# "Echec du chargement du plugin :"
|
#2008# "Échec du chargement du plugin :"
|
||||||
#2009# "Echec du chargement word.\n\nVérifier la ROM et les paramètres de la ROM."
|
#2009# "Échec du chargement word.\n\nVérifier la ROM et les paramètres de la ROM."
|
||||||
#2010# "Echec à l'ouverture du fichier de sauvegarde"
|
#2010# "Échec à l’ouverture du fichier de sauvegarde"
|
||||||
#2011# "Echec à l'ouverture de l'EEPROM"
|
#2011# "Échec à l’ouverture de l’EEPROM"
|
||||||
#2012# "Echec à l'ouverture de la RAM flash"
|
#2012# "Échec à l’ouverture de la RAM flash"
|
||||||
#2013# "Echec à l'ouverture du mempak"
|
#2013# "Échec à l’ouverture du mempak"
|
||||||
#2014# "La tentative d'ouverture du fichier zip a échouée. \n\nIl est possible que le fichier zip soit corrompue - essayez de décompresser la RAM manuellement."
|
#2014# "La tentative d’ouverture du fichier zip a échoué.\n\nIl est possible que le fichier zip soit corrompu – essayez de décompresser la ROM manuellement."
|
||||||
#2015# "La tentative d'ouverture du fichier a échouée."
|
#2015# "La tentative d’ouverture du fichier a échoué."
|
||||||
#2016# "L'erreur s'est produite pendant l'ouverture du fichier zip."
|
#2016# "Une erreur s’est produite pendant l’ouverture du fichier zip."
|
||||||
#2017# "Le fichier chargé ne semble pas être une ROM N64 valide. \n\nVérifier vos ROMS avec GoodN64."
|
#2017# "Le fichier chargé ne semble pas être une ROM N64 valide.\n\nVérifiez vos ROM avec GoodN64."
|
||||||
#2018# "Pays inconnu"
|
#2018# "Pays inconnu"
|
||||||
#2019# "Puce CIC inconnu"
|
#2019# "Puce CIC inconnu"
|
||||||
#2020# "Format de Fichier inconnu"
|
#2020# "Format de fichier inconnu"
|
||||||
#2021# "Action de la mémoire inconnu\n\nL'émulation est arrêté"
|
#2021# "Action de la mémoire inconnue\n\nL’émulation s’est arrêtée."
|
||||||
#2022# "OpCode R4300i non pris en charge à"
|
#2022# "Opcode R4300i non pris en charge à"
|
||||||
#2023# "Exécution d'un espace non définie.\n\nVérifier la ROM et les paramètres de ROM."
|
#2023# "Exécution depuis un espace non mappé.\n\nVérifiez la ROM et les paramètres de ROM."
|
||||||
#2024# "Cette sauvegarde d'état ne semble pas correspondre à la ROM qui est lancé. \n\nLes états sauvegardés & chargés doivent être à 100% identiques à la ROM. \nEn particulier la REGION et la VERSION doivent être identique. \nLe chargement de cet état peut probablement faire planter le jeu ou l'émulateur. \n\nSouhaitez-vous le charger quand même ?"
|
#2024# "Cette sauvegarde d’état ne semble pas correspondre à la ROM qui est lancée.\n\nLes états sauvegardés et chargés doivent être à 100 % identiques à la ROM.\nEn particulier la RÉGION et la VERSION doivent être identiques.\nLe chargement de cette sauvegarde va probablement faire planter le jeu ou l’émulateur.\n\nSouhaitez-vous le charger quand même ?"
|
||||||
#2025# "Erreur"
|
#2025# "Erreur"
|
||||||
#2026# "La séquence de Copyright n'a pas été trouvé dans LUT. Le jeu ne fonctionnera plus."
|
#2026# "La séquence de copyright n’a pas été trouvé dans la LUT. Le jeu ne fonctionnera plus."
|
||||||
#2027# "Echec de la protection de la copie"
|
#2027# "Échec de la protection de copie"
|
||||||
#2028# "Changer un plugin nécessite que Project64 redémarre la ROM lancée. \nSi vous ne voulez pas perdre votre progression, répondez Non et sauvegarder le premier état en cours. \n\nChanger les plugins et redémarrer maintenant ?"
|
#2028# "Changer un plugin nécessite que Project64 redémarre la ROM lancée.\nSi vous ne voulez pas perdre votre progression, répondez non et sauvegardez l’état actuel d’abord.\n\nChanger les plugins et redémarrer maintenant ?"
|
||||||
#2029# "Changer les Plugins"
|
#2029# "Changer les plugins"
|
||||||
#2030# "Emulation terminée"
|
#2030# "Émulation terminée"
|
||||||
#2031# "Emulation démarrée"
|
#2031# "Émulation démarrée"
|
||||||
#2032# "Impossible de charger un état"
|
#2032# "Impossible de charger l’état"
|
||||||
#2033# "Etat chargé"
|
#2033# "État chargé"
|
||||||
#2034# "Sauvegarder l'état en cours vers"
|
#2034# "État sauvegardé vers"
|
||||||
#2035# "Emplacement d'état"
|
#2035# "Emplacement d’état"
|
||||||
#2036# "Byte-swapping image"
|
#2036# "Byte-swapping image"
|
||||||
#2037# "Choisir une ROM N64"
|
#2037# "Choisir une image N64"
|
||||||
#2038# "Chargé"
|
#2038# "Chargé"
|
||||||
#2039# "Chargement d'une image"
|
#2039# "Chargement de l’image"
|
||||||
#2040# "Ne peut pas ouvrir une ROM car les plugins n'ont pas été initialisés."
|
#2040# "Impossible d’ouvrir une ROM car les plugins n’ont pas été initialisés."
|
||||||
#2041# "Etes vous sûr de vouloir vraiment effacer ?"
|
#2041# "Êtes-vous sûr de vouloir effacer ceci ?"
|
||||||
#2042# "Effacer un Cheat"
|
#2042# "Effacer le cheat"
|
||||||
#2043# "Le nom du cheat est déjà utilisé."
|
#2043# "Le nom du cheat est déjà utilisé."
|
||||||
#2044# "Vous avez atteint le nombre maximum de codes cheats pour ce jeu"
|
#2044# "Vous avez atteint le nombre maximum de codes cheats pour ce jeu"
|
||||||
#2045# "Initialisation du Plugin"
|
#2045# "Initialisation du plugin"
|
||||||
#2046# "Vous n'avez pas sélectionné une touche virtuelle à assigner au menu objet."
|
#2046# "Vous n’avez pas sélectionné de touche virtuelle à assigner à l’entrée de menu."
|
||||||
#2047# "Vous avez besoin de sélectionner un menu objet pour assigner cette touche."
|
#2047# "Vous avez besoin de sélectionner une entrée de menu à laquelle assigner cette touche."
|
||||||
#2048# "Le raccourci a déjà été assigné vers un autre menu objet."
|
#2048# "Le raccourci a déjà été assigné à une autre entrée de menu."
|
||||||
#2049# "Aucun raccourci n'a été sélectionné pour être supprimé."
|
#2049# "Aucun raccourci n’a été sélectionné pour être supprimé."
|
||||||
#2050# "ROM chargé. Emulation en attente de lancement."
|
#2050# "ROM chargée. Émulation en attente de lancement."
|
||||||
#2051# "Project64 beta est réservé aux membres seulement.\n\nSi vous avez un compte sur pj64-emu.com, vous ne devriez pas voir cette erreur !!\nVeuillez nous contacter sur le site."
|
#2051# "Project64 beta est réservé aux membres seulement.\n\nSi vous avez un compte sur pj64-emu.com, vous ne devriez pas voir cette erreur !!\nVeuillez nous contacter sur le site."
|
||||||
#2052# "Erreur du Programme"
|
#2052# "Erreur du programme"
|
||||||
#2053# "Impossible de trouver le nom de fichier dans l'archive 7z"
|
#2053# "Impossible de trouver le nom de fichier dans l’archive 7z"
|
||||||
#2054# "Emulation des graphismes bas niveau (LLE)"
|
#2054# "Émulation des graphismes bas niveau (LLE)"
|
||||||
#2055# "Les graphismes LLE ne sont pas à utiliser par tout le monde !!!\nIl est fortement conseillé d'utiliser seulement ceci à des fins de test et non pour jouer.\n\nChanger pour les graphismes en mode LLE ?"
|
#2055# "Les graphismes LLE ne sont pas à utiliser par tout le monde !!!\nIl est recommandé d’utiliser seulement ceci à des fins de test et non pour jouer.\n\nChanger pour les graphismes en mode LLE ?"
|
||||||
#2056# "Emulation Audio haut niveau (HLE)"
|
#2056# "Émulation audio haut niveau (HLE)"
|
||||||
#2057# "L'Audio HLE nécessite un plugin tiers !!!\nSi vous n'utilisez pas un plugin audio tiers qui supporte le HLE, vous n'entendrez aucun son.\n\nChanger pour l'Audio en mode HLE ?"
|
#2057# "L’audio HLE nécessite un plugin tiers !!!\nSi vous n’utilisez pas un plugin audio tiers qui supporte le HLE, vous n’entendrez aucun son.\n\nChanger pour l’audio en mode HLE ?"
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Automatisch"
|
#620# "Automatisch"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -265,7 +265,7 @@
|
||||||
#620# "Automatisch"
|
#620# "Automatisch"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -266,7 +266,7 @@
|
||||||
#620# "Αυτόματος"
|
#620# "Αυτόματος"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Elõszöri mentés fajta használata"
|
#620# "Elõszöri mentés fajta használata"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Riconosci automaticamente"
|
#620# "Riconosci automaticamente"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-ko SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-ko flash RAM"
|
#624# "128-ko flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -265,7 +265,7 @@
|
||||||
#620# "Riconosci il salvataggio automaticamente"
|
#620# "Riconosci il salvataggio automaticamente"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-ko SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-ko flash RAM"
|
#624# "128-ko flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#1 # "Japanese" // LANGUAGE ID
|
#1 # "Japanese" // LANGUAGE ID
|
||||||
#2 # "Nekokabu" // Author
|
#2 # "Nekokabu" // Author
|
||||||
#3 # "2.2" // Version
|
#3 # "2.2" // Version
|
||||||
#4 # "2015/3/5" // Date
|
#4 # "2015/12/5" // Date
|
||||||
|
|
||||||
//About DLL Dialog
|
//About DLL Dialog
|
||||||
#5 # "現在の言語"
|
#5 # "現在の言語"
|
||||||
|
@ -20,6 +20,20 @@
|
||||||
//About INI title
|
//About INI title
|
||||||
#20 # "設定ファイルについて"
|
#20 # "設定ファイルについて"
|
||||||
|
|
||||||
|
/*********************************************************************************
|
||||||
|
* Numbers *
|
||||||
|
*********************************************************************************/
|
||||||
|
//#50# "0"
|
||||||
|
//#51# "1"
|
||||||
|
//#52# "2"
|
||||||
|
//#53# "3"
|
||||||
|
//#54# "4"
|
||||||
|
//#55# "5"
|
||||||
|
//#56# "6"
|
||||||
|
//#57# "7"
|
||||||
|
//#58# "8"
|
||||||
|
//#59# "9"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Menu *
|
* Menu *
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
|
@ -88,6 +102,7 @@
|
||||||
#198# "スロット &8"
|
#198# "スロット &8"
|
||||||
#199# "スロット &9"
|
#199# "スロット &9"
|
||||||
#200# "スロット 1&0"
|
#200# "スロット 1&0"
|
||||||
|
#201# "セーブスロット (%ws) が選択されました"
|
||||||
|
|
||||||
//Pop up Menu
|
//Pop up Menu
|
||||||
#210# "ゲーム開始(&P)"
|
#210# "ゲーム開始(&P)"
|
||||||
|
@ -95,11 +110,12 @@
|
||||||
#212# "ロム設定の編集(&S)"
|
#212# "ロム設定の編集(&S)"
|
||||||
#213# "チートの編集(&E)"
|
#213# "チートの編集(&E)"
|
||||||
#214# "ビデオプラグイン"
|
#214# "ビデオプラグイン"
|
||||||
|
#215# "ディスク有りで起動する"
|
||||||
|
|
||||||
//Alternate Name to save Slot
|
//Alternate Name to save Slot
|
||||||
#220# "デフォルト"
|
#220# "デフォルト"
|
||||||
#221# "保存するスロット - 1"
|
#221# "保存するスロット - 1"
|
||||||
#222# "スロット - 2"
|
#222# "保存するスロット - 2"
|
||||||
#223# "保存するスロット - 3"
|
#223# "保存するスロット - 3"
|
||||||
#224# "保存するスロット - 4"
|
#224# "保存するスロット - 4"
|
||||||
#225# "保存するスロット - 5"
|
#225# "保存するスロット - 5"
|
||||||
|
@ -231,6 +247,7 @@
|
||||||
#464# "ロムの実行中はスクリーンセーバーを無効にする"
|
#464# "ロムの実行中はスクリーンセーバーを無効にする"
|
||||||
#465# "フレームレートを表示"
|
#465# "フレームレートを表示"
|
||||||
#466# "表示形式によってフレームレートを変更する:"
|
#466# "表示形式によってフレームレートを変更する:"
|
||||||
|
#467# "Project64がすでに起動しているかチェックする"
|
||||||
|
|
||||||
//ROM Browser Tab
|
//ROM Browser Tab
|
||||||
#480# "最近開いたロムファイルの表示する数(0~10):"
|
#480# "最近開いたロムファイルの表示する数(0~10):"
|
||||||
|
@ -266,9 +283,9 @@
|
||||||
|
|
||||||
//ROM Options
|
//ROM Options
|
||||||
#520# "CPUコアスタイル(&C):"
|
#520# "CPUコアスタイル(&C):"
|
||||||
#521# "自己書換コード処理方法(&M):"
|
#521# "VI リフレッシュレート:"
|
||||||
#522# "メモリサイズ(&E):"
|
#522# "メモリサイズ(&E):"
|
||||||
#523# "アドバンスブロックリンク(&A):"
|
#523# "アドバンスブロックリンク(&A)"
|
||||||
#524# "セーブタイプ(&S):"
|
#524# "セーブタイプ(&S):"
|
||||||
#525# "カウンターファクター(&F):"
|
#525# "カウンターファクター(&F):"
|
||||||
#526# "コンパイルバッファを大きくする(&L)"
|
#526# "コンパイルバッファを大きくする(&L)"
|
||||||
|
@ -317,7 +334,7 @@
|
||||||
#620# "自動検出"
|
#620# "自動検出"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
@ -341,6 +358,7 @@
|
||||||
#689# "ゲーム実行中"
|
#689# "ゲーム実行中"
|
||||||
#690# "ゲーム実行中 (ウィンドウ時)"
|
#690# "ゲーム実行中 (ウィンドウ時)"
|
||||||
#691# "ゲーム実行中 (フルスクリーン時)"
|
#691# "ゲーム実行中 (フルスクリーン時)"
|
||||||
|
#692# "キーの削除"
|
||||||
|
|
||||||
// Frame Rate Option
|
// Frame Rate Option
|
||||||
#700# "垂直割り込み/秒"
|
#700# "垂直割り込み/秒"
|
||||||
|
@ -352,9 +370,10 @@
|
||||||
#711# "スピードを下げる"
|
#711# "スピードを下げる"
|
||||||
|
|
||||||
//Bottom page buttons
|
//Bottom page buttons
|
||||||
#720# "この項目のリセット"
|
#720# "項目のリセット"
|
||||||
#721# "すべてリセット"
|
#721# "すべてリセット"
|
||||||
#722# "適用"
|
#722# "適用"
|
||||||
|
#723# "閉じる"
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* ROM Information *
|
* ROM Information *
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Naudoti pirmà naudotà tipà"
|
#620# "Naudoti pirmà naudotà tipà"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Intergration Tab
|
//Shell Intergration Tab
|
||||||
|
|
|
@ -271,7 +271,7 @@ De vil ta effekt når ROM'en er resatt eller en ny er startet."
|
||||||
#620# "bruk den første brukte lagrings typen"
|
#620# "bruk den første brukte lagrings typen"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Pierwszy u¿yty format"
|
#620# "Pierwszy u¿yty format"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -267,7 +267,7 @@
|
||||||
#620# "По умолчанию"
|
#620# "По умолчанию"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#1 # "Español" // LANGUAGE ID
|
#1 # "Español" // LANGUAGE ID
|
||||||
#2 # "MELERIX" // Author
|
#2 # "MELERIX" // Author
|
||||||
#3 # "2.2" // Version
|
#3 # "2.2" // Version
|
||||||
#4 # "April, 2015" // Date
|
#4 # "12/02/2016" // Date
|
||||||
|
|
||||||
//About DLL Dialog
|
//About DLL Dialog
|
||||||
#5 # "Lenguaje Actual"
|
#5 # "Lenguaje Actual"
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
#9 # "Visitar la Página Principal"
|
#9 # "Visitar la Página Principal"
|
||||||
#10 # "Base de datos de ROMs (.RDB)"
|
#10 # "Base de datos de ROMs (.RDB)"
|
||||||
#11 # "Archivo de Códigos de Trucos (.CHT)"
|
#11 # "Archivo de Códigos de Trucos (.CHT)"
|
||||||
#12 # "Información Extendida del ROM (.RDX)"
|
#12 # "Información Extendida de la ROM (.RDX)"
|
||||||
|
|
||||||
//About INI title
|
//About INI title
|
||||||
#20 # "Acerca de los Archivos de Configuración"
|
#20 # "Acerca de los Archivos de Configuración"
|
||||||
|
@ -26,13 +26,13 @@
|
||||||
//File Menu
|
//File Menu
|
||||||
#100# "&Archivo"
|
#100# "&Archivo"
|
||||||
#101# "&Abrir ROM"
|
#101# "&Abrir ROM"
|
||||||
#102# "&Info del ROM...."
|
#102# "&Info de la ROM...."
|
||||||
#103# "Iniciar Emulación"
|
#103# "Iniciar Emulación"
|
||||||
#104# "&Finalizar Emulación"
|
#104# "&Finalizar Emulación"
|
||||||
#105# "Elegir Directorio de ROMs..."
|
#105# "Elegir Directorio de ROMs..."
|
||||||
#106# "Actualizar Lista de ROMs"
|
#106# "Actualizar Lista de ROMs"
|
||||||
#107# "ROM Reciente"
|
#107# "ROM Reciente"
|
||||||
#108# "Directorio de ROMs Reciente"
|
#108# "Directorios de ROMs Recientes"
|
||||||
#109# "&Salir"
|
#109# "&Salir"
|
||||||
|
|
||||||
//System Menu
|
//System Menu
|
||||||
|
@ -56,11 +56,11 @@
|
||||||
#140# "&Opciones"
|
#140# "&Opciones"
|
||||||
#141# "&Pantalla Completa"
|
#141# "&Pantalla Completa"
|
||||||
#142# "&Siempre por Encima"
|
#142# "&Siempre por Encima"
|
||||||
#143# "Configurar Plugin de Gráficos..."
|
#143# "Configurar Complemento de Gráficos..."
|
||||||
#144# "Configurar Plugin de Audio..."
|
#144# "Configurar Complemento de Audio..."
|
||||||
#145# "Configurar Plugin de Control..."
|
#145# "Configurar Complemento de Control..."
|
||||||
#146# "Configurar Plugin de RSP..."
|
#146# "Configurar Complemento de RSP..."
|
||||||
#147# "Mostrar Uso de CPU"
|
#147# "Mostrar Uso de la CPU"
|
||||||
#148# "&Ajustes..."
|
#148# "&Ajustes..."
|
||||||
|
|
||||||
//Debugger Menu
|
//Debugger Menu
|
||||||
|
@ -88,13 +88,15 @@
|
||||||
#198# "Ranura 8"
|
#198# "Ranura 8"
|
||||||
#199# "Ranura 9"
|
#199# "Ranura 9"
|
||||||
#200# "Ranura 10"
|
#200# "Ranura 10"
|
||||||
|
#201# "Ranura de Guardado (%ws) seleccionada"
|
||||||
|
|
||||||
//Pop up Menu
|
//Pop up Menu
|
||||||
#210# "Jugar Juego"
|
#210# "Jugar Juego"
|
||||||
#211# "Información del ROM"
|
#211# "Información de la ROM"
|
||||||
#212# "Editar Ajustes del Juego"
|
#212# "Editar Ajustes del Juego"
|
||||||
#213# "Editar Trucos"
|
#213# "Editar Trucos"
|
||||||
#214# "Plugin Gráfico"
|
#214# "Complemento Gráfico"
|
||||||
|
#215# "Jugar Juego con Disco"
|
||||||
|
|
||||||
//Alternate Name to save Slot
|
//Alternate Name to save Slot
|
||||||
#220# "Ranura de Guardado - Predeterminada"
|
#220# "Ranura de Guardado - Predeterminada"
|
||||||
|
@ -110,15 +112,15 @@
|
||||||
#230# "Ranura de Guardado - 10"
|
#230# "Ranura de Guardado - 10"
|
||||||
|
|
||||||
// Menu Descriptions
|
// Menu Descriptions
|
||||||
#250# "Abrir una imagen ROM de N64"
|
#250# "Abrir una imagen de ROM de N64"
|
||||||
#251# "Mostrar información acerca de la imagen cargada"
|
#251# "Mostrar información acerca de la imagen cargada"
|
||||||
#252# "Iniciar emulación de la imagen ROM cargada"
|
#252# "Iniciar emulación de la imagen de ROM cargada"
|
||||||
#253# "Detener emulación de la imagen ROM cargada"
|
#253# "Detener emulación de la imagen de ROM cargada"
|
||||||
#254# "Seleccionar directorio de ROMs"
|
#254# "Seleccionar directorio de ROMs"
|
||||||
#255# "Actualizar la lista actual de ROMs en el navegador de ROMs"
|
#255# "Actualizar la lista actual de ROMs en el navegador de ROMs"
|
||||||
#256# "Salir de esta aplicación"
|
#256# "Salir de esta aplicación"
|
||||||
#257# "Reiniciar la imagen ROM actual (recarga cualquier cambio de ajustes)"
|
#257# "Reiniciar la imagen de ROM actual (recarga cualquier cambio de ajustes)"
|
||||||
#258# "Pausar/reanudar emulación del ROM en ejecución actual"
|
#258# "Pausar/reanudar emulación de la ROM en ejecución actual"
|
||||||
#259# "Generar una imagen bitmap de la pantalla actual"
|
#259# "Generar una imagen bitmap de la pantalla actual"
|
||||||
#260# "Limitar FPS a la velocidad correcta del N64"
|
#260# "Limitar FPS a la velocidad correcta del N64"
|
||||||
#261# "Guardar el estado de sistema actual"
|
#261# "Guardar el estado de sistema actual"
|
||||||
|
@ -129,17 +131,17 @@
|
||||||
#266# "El botón GameShark es usado con trucos específicos."
|
#266# "El botón GameShark es usado con trucos específicos."
|
||||||
#267# "Cambiar emulación de ventana a modo pantalla completa."
|
#267# "Cambiar emulación de ventana a modo pantalla completa."
|
||||||
#268# "Hacer que la ventana quede por encima las demás ventanas"
|
#268# "Hacer que la ventana quede por encima las demás ventanas"
|
||||||
#269# "Cambiar ajustes dentro del plugin de gráficos"
|
#269# "Cambiar ajustes dentro del complemento de gráficos"
|
||||||
#270# "Cambiar ajustes dentro del plugin de audio"
|
#270# "Cambiar ajustes dentro del complemento de audio"
|
||||||
#271# "Cambiar ajustes dentro del plugin de control (es decir, definir las teclas)"
|
#271# "Cambiar ajustes dentro del complemento de control (es decir, definir las teclas)"
|
||||||
#272# "Cambiar ajustes dentro del plugin de RSP"
|
#272# "Cambiar ajustes dentro del complemento de RSP"
|
||||||
#273# "Mostrar uso de CPU del emulador dividido sobre diferentes recursos"
|
#273# "Mostrar uso de la CPU del emulador dividido sobre diferentes recursos"
|
||||||
#274# "Ver/cambiar ajustes para esta aplicación"
|
#274# "Ver/cambiar ajustes para esta aplicación"
|
||||||
#275# "Ver manual para la aplicación"
|
#275# "Ver manual para la aplicación"
|
||||||
#276# "Ver FAQ para la aplicación"
|
#276# "Ver FAQ para la aplicación"
|
||||||
#278# "Acerca de la aplicación y autores"
|
#278# "Acerca de la aplicación y autores"
|
||||||
#277# "Acerca de los autores de los archivos de soporte"
|
#277# "Acerca de los autores de los archivos de soporte"
|
||||||
#279# "Abrir esta imagen ROM previamente abierta"
|
#279# "Abrir esta imagen de ROM previamente abierta"
|
||||||
#280# "Elegir este directorio como tu directorio de ROMs"
|
#280# "Elegir este directorio como tu directorio de ROMs"
|
||||||
#281# "Cambiar aplicación para usar este lenguaje"
|
#281# "Cambiar aplicación para usar este lenguaje"
|
||||||
#282# "Elegir esta ubicación de guardado para los estados guardados"
|
#282# "Elegir esta ubicación de guardado para los estados guardados"
|
||||||
|
@ -156,9 +158,9 @@
|
||||||
#301# "Nombre Interno"
|
#301# "Nombre Interno"
|
||||||
#302# "Nombre Correcto"
|
#302# "Nombre Correcto"
|
||||||
#303# "Estado"
|
#303# "Estado"
|
||||||
#304# "Tamaño del ROM"
|
#304# "Tamaño de la ROM"
|
||||||
#305# "Notas (núcleo)"
|
#305# "Notas (núcleo)"
|
||||||
#306# "Notas (plugins predeterminados)"
|
#306# "Notas (complementos predeterminados)"
|
||||||
#307# "Notas (usuario)"
|
#307# "Notas (usuario)"
|
||||||
#308# "ID del Cartucho"
|
#308# "ID del Cartucho"
|
||||||
#309# "Fabricante"
|
#309# "Fabricante"
|
||||||
|
@ -177,7 +179,7 @@
|
||||||
#320# "Seleccionar directorio de ROMs actual"
|
#320# "Seleccionar directorio de ROMs actual"
|
||||||
|
|
||||||
//Messages
|
//Messages
|
||||||
#340# "¿ROM Dañado? Usa GoodN64 y verifica que la RDB esté actualizada."
|
#340# "¿ROM Dañada? Usa GoodN64 y comprueba que la RDB esté actualizada."
|
||||||
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
* Options *
|
* Options *
|
||||||
|
@ -186,7 +188,7 @@
|
||||||
#400# "Ajustes"
|
#400# "Ajustes"
|
||||||
|
|
||||||
//Tabs
|
//Tabs
|
||||||
#401# "Plugins"
|
#401# "Complementos"
|
||||||
#402# "Directorios"
|
#402# "Directorios"
|
||||||
#403# "Opciones"
|
#403# "Opciones"
|
||||||
#404# "Selección de ROM"
|
#404# "Selección de ROM"
|
||||||
|
@ -200,22 +202,22 @@
|
||||||
|
|
||||||
//Plugin Dialog
|
//Plugin Dialog
|
||||||
#420# "Acerca de"
|
#420# "Acerca de"
|
||||||
#421# " Plugin de RSP (Reality Signal Processor): "
|
#421# " Complemento de RSP (Reality Signal Processor): "
|
||||||
#422# " Plugin de Vídeo (gráficos): "
|
#422# " Complemento de Vídeo (gráficos): "
|
||||||
#423# " Plugin de Audio (sonido) : "
|
#423# " Complemento de Audio (sonido) : "
|
||||||
#424# " Plugin de Entrada (mando): "
|
#424# " Complemento de Entrada (control): "
|
||||||
#425# "Gráficos HLE"
|
#425# "Gráficos HLE"
|
||||||
#426# "Audio HLE"
|
#426# "Audio HLE"
|
||||||
#427# "** Usar Plugin de Sistema **"
|
#427# "** Usar Complemento del Sistema **"
|
||||||
|
|
||||||
//Directory Dialog
|
//Directory Dialog
|
||||||
#440# " Directorio de Plugins: "
|
#440# " Directorio de Complementos: "
|
||||||
#441# " Directorio de ROMs: "
|
#441# " Directorio de ROMs: "
|
||||||
#442# " Directorio de guardados nativos de N64: "
|
#442# " Directorio de guardados nativos de N64: "
|
||||||
#443# " Directorio de estados guardados: "
|
#443# " Directorio de estados guardados: "
|
||||||
#444# " Directorio de capturas de pantalla: "
|
#444# " Directorio de capturas de pantalla: "
|
||||||
#445# "Última carpeta de la cual un ROM fue abierto."
|
#445# "Última carpeta desde la cual una ROM fue abierta."
|
||||||
#446# "Seleccionar directorio de plugins"
|
#446# "Seleccionar directorio de complementos"
|
||||||
#447# "Seleccionar directorio de ROMs"
|
#447# "Seleccionar directorio de ROMs"
|
||||||
#448# "Seleccionar directorio de guardados nativos de N64"
|
#448# "Seleccionar directorio de guardados nativos de N64"
|
||||||
#449# "Seleccionar directorio de estados guardados"
|
#449# "Seleccionar directorio de estados guardados"
|
||||||
|
@ -225,16 +227,16 @@
|
||||||
|
|
||||||
//Options Dialog
|
//Options Dialog
|
||||||
#460# "Pausar emulación cuando la ventana no esté activa"
|
#460# "Pausar emulación cuando la ventana no esté activa"
|
||||||
#461# "Entrar en modo de pantalla completa al cargar un ROM"
|
#461# "Entrar en modo de pantalla completa al cargar una ROM"
|
||||||
#462# "Ocultar ajustes avanzados"
|
#462# "Ocultar ajustes avanzados"
|
||||||
#463# "Recordar trucos seleccionados"
|
#463# "Recordar trucos seleccionados"
|
||||||
#464# "Desactivar protector de pantalla cuando se esté en ejecutando un ROM"
|
#464# "Desactivar protector de pantalla cuando se esté ejecutando una ROM"
|
||||||
#465# "Mostrar velocidad"
|
#465# "Mostrar velocidad"
|
||||||
#466# "Velocidad de la pantalla:"
|
#466# "Velocidad de la pantalla:"
|
||||||
#467# "Comprobar si Project64 ya está en ejecución"
|
#467# "Comprobar si Project64 ya está en ejecución"
|
||||||
|
|
||||||
//ROM Browser Tab
|
//ROM Browser Tab
|
||||||
#480# "Máx # de ROMs recordados (0-10):"
|
#480# "Máx # de ROMs recordadas (0-10):"
|
||||||
#481# "ROMs"
|
#481# "ROMs"
|
||||||
#482# "Máx # de directorios de ROMs recordados (0-10):"
|
#482# "Máx # de directorios de ROMs recordados (0-10):"
|
||||||
#483# "directorios"
|
#483# "directorios"
|
||||||
|
@ -249,13 +251,13 @@
|
||||||
#492# "Actualizar navegador automáticamente"
|
#492# "Actualizar navegador automáticamente"
|
||||||
|
|
||||||
//Advanced Options
|
//Advanced Options
|
||||||
#500# "La mayoría de estos cambios no tendrán efecto hasta que un nuevo ROM sea abierto o el ROM actual sea reiniciado."
|
#500# "La mayoría de estos cambios no tendrán efecto hasta que una nueva ROM sea abierta o la ROM actual sea reiniciada."
|
||||||
#501# "Predeterminados del Núcleo"
|
#501# "Predeterminados del Núcleo"
|
||||||
#502# "Estilo de núcleo del CPU:"
|
#502# "Estilo de núcleo de la CPU:"
|
||||||
#503# "Métodos self mod:"
|
#503# "Métodos self mod:"
|
||||||
#504# "Tamaño de memoria predeterminado:"
|
#504# "Tamaño de memoria predeterminado:"
|
||||||
#505# "Vinculación avanzada de bloques"
|
#505# "Vinculación avanzada de bloques"
|
||||||
#506# "Iniciar emulación cuando el ROM sea abierto"
|
#506# "Iniciar emulación cuando la ROM sea abierta"
|
||||||
#507# "Siempre sustituir los ajustes predeterminados con los de la RDB"
|
#507# "Siempre sustituir los ajustes predeterminados con los de la RDB"
|
||||||
#508# "Comprimir automáticamente estados guardados"
|
#508# "Comprimir automáticamente estados guardados"
|
||||||
#509# "Habilitar depurador"
|
#509# "Habilitar depurador"
|
||||||
|
@ -266,7 +268,7 @@
|
||||||
#514# "TLB no mapeado"
|
#514# "TLB no mapeado"
|
||||||
|
|
||||||
//ROM Options
|
//ROM Options
|
||||||
#520# "Estilo de núcleo del CPU:"
|
#520# "Estilo de núcleo de la CPU:"
|
||||||
#521# "Frecuencia de actualización de VI:"
|
#521# "Frecuencia de actualización de VI:"
|
||||||
#522# "Tamaño de memoria:"
|
#522# "Tamaño de memoria:"
|
||||||
#523# "Vinculación avanzada de bloques"
|
#523# "Vinculación avanzada de bloques"
|
||||||
|
@ -318,19 +320,19 @@
|
||||||
#620# "Usar primer tipo de guardado usado"
|
#620# "Usar primer tipo de guardado usado"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
#640# "Asociación de extensión de archivo:"
|
#640# "Asociación de extensión de archivo:"
|
||||||
|
|
||||||
//ROM Notes
|
//ROM Notes
|
||||||
#660# "Estado del ROM:"
|
#660# "Estado de la ROM:"
|
||||||
#661# "Nota del núcleo:"
|
#661# "Nota del núcleo:"
|
||||||
#662# "Nota del plugin:"
|
#662# "Nota del complemento:"
|
||||||
|
|
||||||
// Accelerator Selector
|
// Accelerator Selector
|
||||||
#680# "Estado del CPU:"
|
#680# "Estado de la CPU:"
|
||||||
#681# "Elemento del menú"
|
#681# "Elemento del menú"
|
||||||
#682# "Teclas actuales:"
|
#682# "Teclas actuales:"
|
||||||
#683# "Seleccionar nueva tecla de atajo:"
|
#683# "Seleccionar nueva tecla de atajo:"
|
||||||
|
@ -363,13 +365,13 @@
|
||||||
* ROM Information *
|
* ROM Information *
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
//ROM Info Title
|
//ROM Info Title
|
||||||
#800# "Información del ROM"
|
#800# "Información de la ROM"
|
||||||
|
|
||||||
//ROM Info Text
|
//ROM Info Text
|
||||||
#801# "Nombre del ROM:"
|
#801# "Nombre de la ROM:"
|
||||||
#802# "Nombre del archivo:"
|
#802# "Nombre del archivo:"
|
||||||
#803# "Ubicación:"
|
#803# "Ubicación:"
|
||||||
#804# "Tamaño del ROM:"
|
#804# "Tamaño de la ROM:"
|
||||||
#805# "ID del Cartucho:"
|
#805# "ID del Cartucho:"
|
||||||
#806# "Fabricante:"
|
#806# "Fabricante:"
|
||||||
#807# "País:"
|
#807# "País:"
|
||||||
|
@ -419,7 +421,7 @@
|
||||||
//Edit Cheat
|
//Edit Cheat
|
||||||
#1027# "Editar Truco"
|
#1027# "Editar Truco"
|
||||||
#1028# "Actualizar Truco"
|
#1028# "Actualizar Truco"
|
||||||
#1029# "El Truco ha sido cambiado.\n\n¿Deseas actualizar?"
|
#1029# "El Truco ha sido cambiado.\n\n¿Quieres actualizar?"
|
||||||
#1030# "Truco actualizado"
|
#1030# "Truco actualizado"
|
||||||
|
|
||||||
//Cheat Popup Menu
|
//Cheat Popup Menu
|
||||||
|
@ -440,34 +442,34 @@
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
#2000# "*** CPU PAUSADO ***"
|
#2000# "*** CPU PAUSADO ***"
|
||||||
#2001# "CPU Reanudado"
|
#2001# "CPU Reanudado"
|
||||||
#2002# "En un bucle permanente del que no se puede salir.\nLa Emulación se detendrá ahora.\n\nComprueba el ROM y sus ajustes."
|
#2002# "En un bucle permanente del que no se puede salir.\nLa Emulación ahora se detendrá.\n\nVerifica la ROM y sus ajustes."
|
||||||
#2003# "Error al asignar memoria"
|
#2003# "Error al asignar memoria"
|
||||||
#2004# "El plugin predeterminado o seleccionado de vídeo no se encuentra o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un plugin de vídeo (gráficos).\nComprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
|
#2004# "El complemento predeterminado o seleccionado de vídeo falta o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un complemento de vídeo (gráficos).\nComprueba que tengas al menos un archivo de complemento compatible en tu carpeta de complementos."
|
||||||
#2005# "El plugin predeterminado o seleccionado de audio no se encuentra o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un plugin de audio (sonido).\nComprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
|
#2005# "El complemento predeterminado o seleccionado de audio falta o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un complemento de audio (sonido).\nComprueba que tengas al menos un archivo de complemento compatible en tu carpeta de complementos."
|
||||||
#2006# "El plugin predeterminado o seleccionado de RSP no se encuentra o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un plugin RSP (Reality Signal Processor).\nComprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
|
#2006# "El complemento predeterminado o seleccionado de RSP falta o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un complemento de RSP (Reality Signal Processor).\nComprueba que tengas al menos un archivo de complemento compatible en tu carpeta de complementos."
|
||||||
#2007# "El plugin predeterminado o seleccionado de entrada no se encuentra o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un plugin de entrada (controles).\nComprueba que tengas al menos un archivo de plugin compatible en tu carpeta de plugins."
|
#2007# "El complemento predeterminado o seleccionado de entrada falta o es inválido.\n\nNecesitas entrar en Ajustes y seleccionar un complemento de entrada (control).\nComprueba que tengas al menos un archivo de complemento compatible en tu carpeta de complementos."
|
||||||
#2008# "Error al cargar plugin:"
|
#2008# "Error al cargar complemento:"
|
||||||
#2009# "Error al cargar palabra\n\nComprueba el ROM y los ajustes del ROM."
|
#2009# "Error al cargar palabra\n\nVerifica la ROM y sus ajustes."
|
||||||
#2010# "Error al abrir el archivo de guardado"
|
#2010# "Error al abrir el archivo de guardado"
|
||||||
#2011# "Error al abrir EEPROM"
|
#2011# "Error al abrir EEPROM"
|
||||||
#2012# "Error al abrir flash RAM"
|
#2012# "Error al abrir flash RAM"
|
||||||
#2013# "Error al abrir mempak"
|
#2013# "Error al abrir mempak"
|
||||||
#2014# "Error al intentar abrir el archivo ZIP.\n\nEl archivo podría estar corrupto - Intenta descomprimir el ROM manualmente."
|
#2014# "Error al intentar abrir el archivo zip.\n\nProbablemente un archivo zip corrupto - intenta descomprimir la ROM manualmente."
|
||||||
#2015# "Error al intentar abrir el archivo."
|
#2015# "Error al intentar abrir el archivo."
|
||||||
#2016# "Ocurrió un error cuando se intentaba abrir el archivo ZIP."
|
#2016# "Ocurrió un error cuando se intentaba abrir el archivo zip."
|
||||||
#2017# "El archivo cargado no parece ser un ROM de N64 válido. \n\nVerifica tus ROMs con GoodN64."
|
#2017# "El archivo cargado no parece ser una ROM de N64 válida.\n\nVerifica tus ROMs con GoodN64."
|
||||||
#2018# "País desconocido"
|
#2018# "País desconocido"
|
||||||
#2019# "Chip CIC desconocido"
|
#2019# "Chip CIC desconocido"
|
||||||
#2020# "Formato de archivo desconocido"
|
#2020# "Formato de archivo desconocido"
|
||||||
#2021# "Acción de memoria desconocida\n\nEmulación detenida"
|
#2021# "Acción de memoria desconocida\n\nEmulación detenida"
|
||||||
#2022# "OpCode R4300i no manejado en"
|
#2022# "OpCode R4300i no manejado en"
|
||||||
#2023# "Ejecutando desde un espacio no mapeado.\n\nComprueba el ROM y los ajustes del ROM."
|
#2023# "Ejecutando desde un espacio no mapeado.\n\nVerifica la ROM y sus ajustes."
|
||||||
#2024# "Este estado guardado no coincide con el ROM en ejecución.\n\nLos estados deben ser guardados y cargados entre ROMs 100% idénticos.\nEn particular, la REGIÓN y VERSIÓN necesita ser la misma.\nCargar esta estado podría causar que el juego y/o emulador se bloqueen.\n\n¿Estás seguro de que quieres continuar cargando?"
|
#2024# "Este estado guardado no parece coincidir con la ROM en ejecución.\n\nLos estados deben ser guardados y cargados entre ROMs 100% idénticas.\nEn particular, la REGIÓN y VERSIÓN necesitan ser la misma.\nCargar este estado podría causar que el juego y/o el emulador se bloqueen.\n\n¿Estás seguro de que quieres continuar cargando?"
|
||||||
#2025# "Error"
|
#2025# "Error"
|
||||||
#2026# "Secuencia de copyright no encontrada en el LUT. El juego ya no funcionará."
|
#2026# "Secuencia de copyright no encontrada en el LUT. El juego ya no funcionará."
|
||||||
#2027# "Falla en la Protección de Copia"
|
#2027# "Falla en la Protección de Copia"
|
||||||
#2028# "Cambiar un plugin requiere que Project64 reinicie un ROM en ejecución.\nSi no quieres perder tu posición, responde No y guarda el estado actual primero.\n\n¿Cambiar plugins y reiniciar el ROM ahora?"
|
#2028# "Cambiar un complemento requiere que Project64 reinicie una ROM en ejecución.\nSi no quieres perder tu posición, responde No y guarda el estado actual primero.\n\n¿Cambiar complementos y reiniciar la ROM ahora?"
|
||||||
#2029# "Cambiar Plugins"
|
#2029# "Cambiar Complementos"
|
||||||
#2030# "Emulación finalizada"
|
#2030# "Emulación finalizada"
|
||||||
#2031# "Emulación iniciada"
|
#2031# "Emulación iniciada"
|
||||||
#2032# "Imposible cargar estado"
|
#2032# "Imposible cargar estado"
|
||||||
|
@ -478,21 +480,21 @@
|
||||||
#2037# "Eligiendo imagen de N64"
|
#2037# "Eligiendo imagen de N64"
|
||||||
#2038# "Cargada"
|
#2038# "Cargada"
|
||||||
#2039# "Cargando imagen"
|
#2039# "Cargando imagen"
|
||||||
#2040# "No se puede abrir un ROM porque los plugins no se han inicializado correctamente."
|
#2040# "No se puede abrir una ROM porque los complementos no se han inicializado exitosamente."
|
||||||
#2041# "¿Estás seguro de que realmente quieres borrar esto?"
|
#2041# "¿Estás seguro de que realmente quieres borrar esto?"
|
||||||
#2042# "Borrar Truco"
|
#2042# "Borrar Truco"
|
||||||
#2043# "El nombre del truco ya está en uso."
|
#2043# "El nombre del truco ya está en uso."
|
||||||
#2044# "Haz alcanzado la cantidad máxima de trucos para este ROM."
|
#2044# "Haz alcanzado la cantidad máxima de trucos para esta ROM."
|
||||||
#2045# "Inicializando el plugin"
|
#2045# "Inicializando el complemento"
|
||||||
#2046# "No has seleccionado una tecla virtual para asignar al elemento del menú."
|
#2046# "No has seleccionado una tecla virtual para asignar al elemento del menú."
|
||||||
#2047# "Necesitas seleccionar un elemento del menú al cual asignarle esta tecla."
|
#2047# "Necesitas seleccionar un elemento del menú al cual asignarle esta tecla."
|
||||||
#2048# "El acceso directo ya está asignado a otro elemento del menú."
|
#2048# "El acceso directo ya está asignado a otro elemento del menú."
|
||||||
#2049# "Ningún acceso directo ha sido seleccionado para ser removido."
|
#2049# "Ningún acceso directo ha sido seleccionado para ser removido."
|
||||||
#2050# "ROM cargado. Esperando el inicio de la emulación."
|
#2050# "ROM cargada. Esperando por la emulación para iniciar."
|
||||||
#2051# "Project64 Beta es sólo para miembros.\n\n¡¡Si tienes una cuenta en pj64-emu.com, no deberías estar viendo este error!!\nPor favor contacta con nosotros en el sitio."
|
#2051# "Las versiones beta de Project64 son sólo para miembros.\n\n¡¡Si tienes una cuenta en www.pj64-emu.com, no deberías estar viendo este error!!\nPor favor contacta con nosotros en el sitio."
|
||||||
#2052# "Error del Programa"
|
#2052# "Error del Programa"
|
||||||
#2053# "Fallo al encontrar el nombre de archivo en archivo 7z"
|
#2053# "Fallo al encontrar el nombre de archivo en archivo 7z"
|
||||||
#2054# "Gráficos de Emulación de Bajo Nivel"
|
#2054# "Gráficos de Emulación de Bajo Nivel"
|
||||||
#2055# "¡¡¡Los Gráficos LLE no son para uso general!!!\nEs aconsejable que sólo uses esto para pruebas, y no para jugar juegos.\n\n¿Cambiar a Gráficos LLE?"
|
#2055# "¡¡¡Los Gráficos LLE no son para uso general!!!\nEs aconsejable que sólo uses esto para pruebas, y no para jugar juegos.\n\n¿Cambiar a Gráficos LLE?"
|
||||||
#2056# "Audio de Emulación de Alto Nivel"
|
#2056# "Audio de Emulación de Alto Nivel"
|
||||||
#2057# "¡¡¡El Audio HLE requiere un plugin de terceros!!!\nSi no usas un plugin de audio terceros que soporte HLE, no oirás ningún sonido.\n\n¿Cambiar a Audio HLE?"
|
#2057# "¡¡¡El Audio HLE requiere un complemento de terceros!!!\nSi no usas un complemento de audio terceros que soporte HLE, no oirás ningún sonido.\n\n¿Cambiar a Audio HLE?"
|
||||||
|
|
|
@ -269,7 +269,7 @@
|
||||||
#620# "Använd Första sparnings typ"
|
#620# "Använd Första sparnings typ"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbytes SRAM"
|
#623# "SRAM"
|
||||||
#624# "Flash RAM"
|
#624# "Flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -267,7 +267,7 @@
|
||||||
#620# "Обирає програма"
|
#620# "Обирає програма"
|
||||||
#621# "4-kbit EEPROM"
|
#621# "4-kbit EEPROM"
|
||||||
#622# "16-kbit EEPROM"
|
#622# "16-kbit EEPROM"
|
||||||
#623# "32-kbyte SRAM"
|
#623# "SRAM"
|
||||||
#624# "128-kbyte flash RAM"
|
#624# "128-kbyte flash RAM"
|
||||||
|
|
||||||
//Shell Integration Tab
|
//Shell Integration Tab
|
||||||
|
|
|
@ -0,0 +1,255 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 2013
|
||||||
|
VisualStudioVersion = 12.0.31101.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{AA8F7F8E-5377-4911-859D-8A8817B0DB26}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wxWidgets", "wxWidgets", "{1379F817-7E3D-4F58-9C22-7E364E46E842}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Glide", "Glide", "{9FE699A5-41C3-4441-92AB-639B3D77DE26}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "Source\Common\Common.vcxproj", "{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64", "Source\Project64\Project64.vcxproj", "{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RSP", "Source\RSP\RSP.vcxproj", "{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Settings", "Source\Settings\Settings.vcxproj", "{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zip", "Source\3rdParty\7zip\7zip.vcxproj", "{3326E128-33AF-422C-BB7C-67CC6B915610}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTL", "Source\3rdParty\WTL\WTL.vcxproj", "{4BC6906B-213E-40D7-9FC7-1A93E228393D}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "Source\3rdParty\zlib\zlib.vcxproj", "{731BD205-2826-4631-B7AF-117658E88DBC}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64Setup", "Source\Installer\Installer.vcxproj", "{360A34F3-3172-4B09-8BC9-B3FBEE677863}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1} = {A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glide64", "Source\Glide64\Glide64.vcxproj", "{A4D13408-A794-4199-8FC7-4A9A32505005}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "Source\3rdParty\wx\wx_core.vcxproj", "{93447136-FACD-4740-8F35-FC46FB4A9E82}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "Source\3rdParty\wx\wx_base.vcxproj", "{427F1DCD-3BED-4010-9322-077A4C06D871}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "Source\3rdParty\wx\wx_wxjpeg.vcxproj", "{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "Source\3rdParty\wx\wx_wxpng.vcxproj", "{05B9CB11-12D1-47CD-8E4A-88E12162119B}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "Source\3rdParty\wx\wx_wxzlib.vcxproj", "{25A25249-C284-4C5A-8DC2-26FC3EB13703}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glitch64", "Source\Glitch64\Glitch64.vcxproj", "{462C2608-182F-452C-944F-AF201E19300B}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GlideHQ", "Source\GlideHQ\GlideHQ.vcxproj", "{2DADDAA5-0F57-46ED-A974-747908DDC7F3}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PJ64 NRage", "Source\nragev20\NRage_Input_V2.vcxproj", "{FD617E80-9E40-4138-85DA-B94633972E6A}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PropertySheets", "PropertySheets", "{181AA451-63A7-4E3B-BE0C-F92BE3F3D2F2}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
PropertySheets\Debug.props = PropertySheets\Debug.props
|
||||||
|
PropertySheets\Platform.Debug.props = PropertySheets\Platform.Debug.props
|
||||||
|
PropertySheets\Platform.props = PropertySheets\Platform.props
|
||||||
|
PropertySheets\Platform.Release.props = PropertySheets\Platform.Release.props
|
||||||
|
PropertySheets\Release.props = PropertySheets\Release.props
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "Source\3rdParty\sdl\sdl2.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64-core", "Source\Project64-core\Project64-core.vcxproj", "{00C7B43A-DED7-4DF0-B072-9A5783EF866D}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "Source\3rdParty\png\png.vcxproj", "{17836496-31B0-46F2-B1B1-366D7DF6F04C}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Win32 = Debug|Win32
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Release|Win32 = Release|Win32
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.Build.0 = Release|x64
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|x64.Build.0 = Release|x64
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|x64.Build.0 = Release|x64
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|x64.Build.0 = Release|x64
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.Build.0 = Release|x64
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|x64.Build.0 = Release|x64
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.Build.0 = Release|x64
|
||||||
|
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
|
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|x64.ActiveCfg = Release|Win32
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|x64.Build.0 = Release|x64
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|x64.Build.0 = Release|x64
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|x64.Build.0 = Release|x64
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|x64.Build.0 = Release|x64
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|x64.Build.0 = Release|x64
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|x64.Build.0 = Release|x64
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B}.Release|x64.Build.0 = Release|x64
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|x64.Build.0 = Release|x64
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|x64.Build.0 = Release|x64
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|x64.Build.0 = Release|x64
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C}.Release|x64.Build.0 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{1379F817-7E3D-4F58-9C22-7E364E46E842} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{3326E128-33AF-422C-BB7C-67CC6B915610} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{4BC6906B-213E-40D7-9FC7-1A93E228393D} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{731BD205-2826-4631-B7AF-117658E88DBC} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
||||||
|
{93447136-FACD-4740-8F35-FC46FB4A9E82} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
||||||
|
{427F1DCD-3BED-4010-9322-077A4C06D871} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
||||||
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
||||||
|
{05B9CB11-12D1-47CD-8E4A-88E12162119B} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
||||||
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
||||||
|
{462C2608-182F-452C-944F-AF201E19300B} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
||||||
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{17836496-31B0-46F2-B1B1-366D7DF6F04C} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -8,6 +8,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64", "Source\Project
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC} = {731BD205-2826-4631-B7AF-117658E88DBC}
|
{731BD205-2826-4631-B7AF-117658E88DBC} = {731BD205-2826-4631-B7AF-117658E88DBC}
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
|
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610} = {3326E128-33AF-422C-BB7C-67CC6B915610}
|
{3326E128-33AF-422C-BB7C-67CC6B915610} = {3326E128-33AF-422C-BB7C-67CC6B915610}
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D} = {00C7B43A-DED7-4DF0-B072-9A5783EF866D}
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421} = {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421} = {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
|
@ -20,14 +21,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RSP", "Source\RSP\RSP.vcpro
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Settings", "Source\Settings\Settings.vcproj", "{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Settings", "Source\Settings\Settings.vcproj", "{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zip", "Source\3rd Party\7zip\7zip.vcproj", "{3326E128-33AF-422C-BB7C-67CC6B915610}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zip", "Source\3rdParty\7zip\7zip.vcproj", "{3326E128-33AF-422C-BB7C-67CC6B915610}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTL", "Source\3rd Party\WTL\WTL.vcproj", "{4BC6906B-213E-40D7-9FC7-1A93E228393D}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTL", "Source\3rdParty\WTL\WTL.vcproj", "{4BC6906B-213E-40D7-9FC7-1A93E228393D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "Source\3rd Party\zlib\zlib.vcproj", "{731BD205-2826-4631-B7AF-117658E88DBC}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "Source\3rdParty\zlib\zlib.vcproj", "{731BD205-2826-4631-B7AF-117658E88DBC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64Setup", "Source\Installer\Installer.vcproj", "{360A34F3-3172-4B09-8BC9-B3FBEE677863}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64Setup", "Source\Installer\Installer.vcproj", "{360A34F3-3172-4B09-8BC9-B3FBEE677863}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
|
||||||
|
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1} = {A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}
|
||||||
|
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18} = {7E534C8E-1ACE-4A88-8807-39A11ED4DA18}
|
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18} = {7E534C8E-1ACE-4A88-8807-39A11ED4DA18}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -38,28 +42,30 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glide64", "Source\Glide64\G
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82} = {93447136-FACD-4740-8F35-FC46FB4A9E82}
|
{93447136-FACD-4740-8F35-FC46FB4A9E82} = {93447136-FACD-4740-8F35-FC46FB4A9E82}
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703} = {25A25249-C284-4C5A-8DC2-26FC3EB13703}
|
{25A25249-C284-4C5A-8DC2-26FC3EB13703} = {25A25249-C284-4C5A-8DC2-26FC3EB13703}
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421} = {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}
|
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421} = {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}
|
||||||
|
{51A84197-56BA-4017-9C0C-43E7F285184A} = {51A84197-56BA-4017-9C0C-43E7F285184A}
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3} = {2DADDAA5-0F57-46ED-A974-747908DDC7F3}
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3} = {2DADDAA5-0F57-46ED-A974-747908DDC7F3}
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D} = {8B9961B1-88D9-4EA3-A752-507A00DD9F3D}
|
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D} = {8B9961B1-88D9-4EA3-A752-507A00DD9F3D}
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871} = {427F1DCD-3BED-4010-9322-077A4C06D871}
|
{427F1DCD-3BED-4010-9322-077A4C06D871} = {427F1DCD-3BED-4010-9322-077A4C06D871}
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2} = {93CFEDF3-9A75-4484-B169-D9D8074F5AC2}
|
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2} = {93CFEDF3-9A75-4484-B169-D9D8074F5AC2}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "Source\3rd Party\wx\wx_core.vcproj", "{93447136-FACD-4740-8F35-FC46FB4A9E82}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "Source\3rdParty\wx\wx_core.vcproj", "{93447136-FACD-4740-8F35-FC46FB4A9E82}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{AA8F7F8E-5377-4911-859D-8A8817B0DB26}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rdParty", "3rdParty", "{AA8F7F8E-5377-4911-859D-8A8817B0DB26}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wxWidgets", "wxWidgets", "{1379F817-7E3D-4F58-9C22-7E364E46E842}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wxWidgets", "wxWidgets", "{1379F817-7E3D-4F58-9C22-7E364E46E842}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "Source\3rd Party\wx\wx_base.vcproj", "{427F1DCD-3BED-4010-9322-077A4C06D871}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "Source\3rdParty\wx\wx_base.vcproj", "{427F1DCD-3BED-4010-9322-077A4C06D871}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82} = {93447136-FACD-4740-8F35-FC46FB4A9E82}
|
{93447136-FACD-4740-8F35-FC46FB4A9E82} = {93447136-FACD-4740-8F35-FC46FB4A9E82}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "Source\3rd Party\wx\wx_wxjpeg.vcproj", "{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "Source\3rdParty\wx\wx_wxjpeg.vcproj", "{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "Source\3rd Party\wx\wx_wxpng.vcproj", "{05B9CB11-12D1-47CD-8E4A-88E12162119B}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "Source\3rdParty\wx\wx_wxpng.vcproj", "{05B9CB11-12D1-47CD-8E4A-88E12162119B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "Source\3rd Party\wx\wx_wxzlib.vcproj", "{25A25249-C284-4C5A-8DC2-26FC3EB13703}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "Source\3rdParty\wx\wx_wxzlib.vcproj", "{25A25249-C284-4C5A-8DC2-26FC3EB13703}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glitch64", "Source\Glitch64\Glitch64.vcproj", "{462C2608-182F-452C-944F-AF201E19300B}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glitch64", "Source\Glitch64\Glitch64.vcproj", "{462C2608-182F-452C-944F-AF201E19300B}"
|
||||||
EndProject
|
EndProject
|
||||||
|
@ -79,6 +85,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SortRdb", "Source\SortRdb\S
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PJ64 NRage", "Source\nragev20\NRage_Input_V2.vcproj", "{FD617E80-9E40-4138-85DA-B94633972E6A}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PJ64 NRage", "Source\nragev20\NRage_Input_V2.vcproj", "{FD617E80-9E40-4138-85DA-B94633972E6A}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "Source\3rdParty\sdl\sdl2.vcproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64-core", "Source\Project64-core\Project64-core.vcproj", "{00C7B43A-DED7-4DF0-B072-9A5783EF866D}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "png", "Source\3rdParty\png\png.vcproj", "{51A84197-56BA-4017-9C0C-43E7F285184A}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Win32 = Debug|Win32
|
Debug|Win32 = Debug|Win32
|
||||||
|
@ -156,6 +168,18 @@ Global
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.Build.0 = Debug|Win32
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.ActiveCfg = Release|Win32
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.Build.0 = Release|Win32
|
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{00C7B43A-DED7-4DF0-B072-9A5783EF866D}.Release|Win32.Build.0 = Release|Win32
|
||||||
|
{51A84197-56BA-4017-9C0C-43E7F285184A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{51A84197-56BA-4017-9C0C-43E7F285184A}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
|
{51A84197-56BA-4017-9C0C-43E7F285184A}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{51A84197-56BA-4017-9C0C-43E7F285184A}.Release|Win32.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
@ -165,6 +189,8 @@ Global
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
{731BD205-2826-4631-B7AF-117658E88DBC} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
{1379F817-7E3D-4F58-9C22-7E364E46E842} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
{1379F817-7E3D-4F58-9C22-7E364E46E842} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
{3326E128-33AF-422C-BB7C-67CC6B915610} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
|
{51A84197-56BA-4017-9C0C-43E7F285184A} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
||||||
{462C2608-182F-452C-944F-AF201E19300B} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
{462C2608-182F-452C-944F-AF201E19300B} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
{A4D13408-A794-4199-8FC7-4A9A32505005} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
{2DADDAA5-0F57-46ED-A974-747908DDC7F3} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
||||||
|
|
|
@ -1,192 +0,0 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 2013
|
|
||||||
VisualStudioVersion = 12.0.31101.0
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "3rd Party", "3rd Party", "{AA8F7F8E-5377-4911-859D-8A8817B0DB26}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wxWidgets", "wxWidgets", "{1379F817-7E3D-4F58-9C22-7E364E46E842}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Glide", "Glide", "{9FE699A5-41C3-4441-92AB-639B3D77DE26}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "Source\Common\Common.vcxproj", "{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64", "Source\Project64\Project64.vcxproj", "{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RSP", "Source\RSP\RSP.vcxproj", "{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Settings", "Source\Settings\Settings.vcxproj", "{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "7zip", "Source\3rd Party\7zip\7zip.vcxproj", "{3326E128-33AF-422C-BB7C-67CC6B915610}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTL", "Source\3rd Party\WTL\WTL.vcxproj", "{4BC6906B-213E-40D7-9FC7-1A93E228393D}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "Source\3rd Party\zlib\zlib.vcxproj", "{731BD205-2826-4631-B7AF-117658E88DBC}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project64Setup", "Source\Installer\Installer.vcxproj", "{360A34F3-3172-4B09-8BC9-B3FBEE677863}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005} = {A4D13408-A794-4199-8FC7-4A9A32505005}
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1} = {A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A} = {FD617E80-9E40-4138-85DA-B94633972E6A}
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glide64", "Source\Glide64\Glide64.vcxproj", "{A4D13408-A794-4199-8FC7-4A9A32505005}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "Source\3rd Party\wx\wx_core.vcxproj", "{93447136-FACD-4740-8F35-FC46FB4A9E82}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base", "Source\3rd Party\wx\wx_base.vcxproj", "{427F1DCD-3BED-4010-9322-077A4C06D871}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxjpeg", "Source\3rd Party\wx\wx_wxjpeg.vcxproj", "{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxpng", "Source\3rd Party\wx\wx_wxpng.vcxproj", "{05B9CB11-12D1-47CD-8E4A-88E12162119B}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxzlib", "Source\3rd Party\wx\wx_wxzlib.vcxproj", "{25A25249-C284-4C5A-8DC2-26FC3EB13703}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Glitch64", "Source\Glitch64\Glitch64.vcxproj", "{462C2608-182F-452C-944F-AF201E19300B}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GlideHQ", "Source\GlideHQ\GlideHQ.vcxproj", "{2DADDAA5-0F57-46ED-A974-747908DDC7F3}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PJ64 NRage", "Source\nragev20\NRage_Input_V2.vcxproj", "{FD617E80-9E40-4138-85DA-B94633972E6A}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Win32 = Debug|Win32
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Release|Win32 = Release|Win32
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.Build.0 = Release|x64
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|x64.Build.0 = Release|x64
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.Build.0 = Release|x64
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.Build.0 = Release|x64
|
|
||||||
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(NestedProjects) = preSolution
|
|
||||||
{1379F817-7E3D-4F58-9C22-7E364E46E842} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
|
||||||
{3326E128-33AF-422C-BB7C-67CC6B915610} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
|
||||||
{4BC6906B-213E-40D7-9FC7-1A93E228393D} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
|
||||||
{731BD205-2826-4631-B7AF-117658E88DBC} = {AA8F7F8E-5377-4911-859D-8A8817B0DB26}
|
|
||||||
{A4D13408-A794-4199-8FC7-4A9A32505005} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
|
||||||
{93447136-FACD-4740-8F35-FC46FB4A9E82} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
|
||||||
{427F1DCD-3BED-4010-9322-077A4C06D871} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
|
||||||
{93CFEDF3-9A75-4484-B169-D9D8074F5AC2} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
|
||||||
{05B9CB11-12D1-47CD-8E4A-88E12162119B} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
|
||||||
{25A25249-C284-4C5A-8DC2-26FC3EB13703} = {1379F817-7E3D-4F58-9C22-7E364E46E842}
|
|
||||||
{462C2608-182F-452C-944F-AF201E19300B} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
|
||||||
{2DADDAA5-0F57-46ED-A974-747908DDC7F3} = {9FE699A5-41C3-4441-92AB-639B3D77DE26}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
|
@ -1,9 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -18,9 +14,6 @@
|
||||||
<SmallerTypeCheck>true</SmallerTypeCheck>
|
<SmallerTypeCheck>true</SmallerTypeCheck>
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
|
||||||
<ProfileGuidedDatabase />
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
<Midl>
|
||||||
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</Midl>
|
</Midl>
|
||||||
|
@ -28,5 +21,4 @@
|
||||||
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
</Project>
|
|
@ -20,7 +20,7 @@
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
UseUnicodeResponseFiles="true"
|
UseUnicodeResponseFiles="true"
|
||||||
AdditionalIncludeDirectories=".\;..\;..\3rd Party"
|
AdditionalIncludeDirectories=".\;..\;..\3rdParty"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
|
PreprocessorDefinitions="_CRT_SECURE_NO_WARNINGS"
|
||||||
IgnoreStandardIncludePath="false"
|
IgnoreStandardIncludePath="false"
|
||||||
GeneratePreprocessedFile="0"
|
GeneratePreprocessedFile="0"
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLibrarianTool"
|
Name="VCLibrarianTool"
|
||||||
OutputFile="$(OutDir)\lib\$(ProjectName).lib"
|
OutputFile="$(OutDir)\$(ProjectName).lib"
|
||||||
UseUnicodeResponseFiles="true"
|
UseUnicodeResponseFiles="true"
|
||||||
LinkLibraryDependencies="true"
|
LinkLibraryDependencies="true"
|
||||||
AdditionalLibraryDirectories=""
|
AdditionalLibraryDirectories=""
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
AdditionalIncludeDirectories=".;$(SRC);$(SRC)\3rd Party"
|
AdditionalIncludeDirectories=".;$(SRC);$(SRC)\3rdParty"
|
||||||
IgnoreStandardIncludePath="false"
|
IgnoreStandardIncludePath="false"
|
||||||
MkTypLibCompatible="false"
|
MkTypLibCompatible="false"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="Platform.props" />
|
||||||
|
<Import Project="Debug.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="Platform.props" />
|
||||||
|
<Import Project="Release.props" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,227 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
|
||||||
|
<PropertyGroup Label="Configuration">
|
||||||
|
<PlatformToolset Condition="'$(DefaultPlatformToolset)'!=''">$(DefaultPlatformToolset)_xp</PlatformToolset>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ImportGroup Label="PropertySheets">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
|
||||||
|
<!-- All platforms settings -->
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)build\$(Configuration)\$(ProjectName)\</IntDir>
|
||||||
|
<ExtensionsToDeleteOnClean>*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath);$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
|
||||||
|
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
||||||
|
<LinkIncremental>false</LinkIncremental>
|
||||||
|
<EmbedManifest>true</EmbedManifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(ConfigurationType)'=='StaticLibrary'">
|
||||||
|
<OutDir>$(SolutionDir)bin\$(Configuration)\lib\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<ClCompile>
|
||||||
|
<PreprocessorDefinitions>WIN32;_WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Label="UserMacros">
|
||||||
|
<ROOT>$(SolutionDir)</ROOT>
|
||||||
|
<SRC>$(ROOT)Source\</SRC>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<BuildMacro Include="ROOT">
|
||||||
|
<Value>$(ROOT)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
<BuildMacro Include="SRC">
|
||||||
|
<Value>$(SRC)</Value>
|
||||||
|
</BuildMacro>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemDefinitionGroup>
|
||||||
|
<BuildLog>
|
||||||
|
<Path>$(IntDir)BuildLog.htm</Path>
|
||||||
|
</BuildLog>
|
||||||
|
<Bscmake>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<OutputFile>$(OutDir)$(ProjectName).bsc</OutputFile>
|
||||||
|
</Bscmake>
|
||||||
|
<ClCompile>
|
||||||
|
<AdditionalIncludeDirectories>.\;$(SolutionDir)\Source;$(SolutionDir)\Source\3rdParty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||||
|
<PreprocessToFile>false</PreprocessToFile>
|
||||||
|
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
|
||||||
|
<PreprocessKeepComments>false</PreprocessKeepComments>
|
||||||
|
<StringPooling>true</StringPooling>
|
||||||
|
<MinimalRebuild>true</MinimalRebuild>
|
||||||
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
|
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||||
|
<SmallerTypeCheck>false</SmallerTypeCheck>
|
||||||
|
<StructMemberAlignment>Default</StructMemberAlignment>
|
||||||
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">NoExtensions</EnableEnhancedInstructionSet>
|
||||||
|
<EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32' AND ('$(PlatformToolset)'=='v90' OR '$(PlatformToolset)'=='v100')">NotSet</EnableEnhancedInstructionSet>
|
||||||
|
<FloatingPointModel>Precise</FloatingPointModel>
|
||||||
|
<FloatingPointExceptions>false</FloatingPointExceptions>
|
||||||
|
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
||||||
|
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
|
||||||
|
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
||||||
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||||
|
<OpenMPSupport>false</OpenMPSupport>
|
||||||
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
|
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
|
||||||
|
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
|
||||||
|
<ExpandAttributedSource>false</ExpandAttributedSource>
|
||||||
|
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||||
|
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||||
|
<ProgramDataBaseFileName>$(IntDir)vc$(VisualStudioVersion).pdb</ProgramDataBaseFileName>
|
||||||
|
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
|
||||||
|
<XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
|
||||||
|
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
||||||
|
<WarningLevel>Level4</WarningLevel>
|
||||||
|
<TreatWarningAsError>false</TreatWarningAsError>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
|
<CallingConvention>Cdecl</CallingConvention>
|
||||||
|
<CompileAs>Default</CompileAs>
|
||||||
|
<ShowIncludes>false</ShowIncludes>
|
||||||
|
<UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
|
||||||
|
<EnablePREfast>false</EnablePREfast>
|
||||||
|
<UseFullPaths>false</UseFullPaths>
|
||||||
|
<OmitDefaultLibName>false</OmitDefaultLibName>
|
||||||
|
<ErrorReporting>Prompt</ErrorReporting>
|
||||||
|
</ClCompile>
|
||||||
|
<Lib>
|
||||||
|
<OutputFile>$(OutDir)$(TargetName).lib</OutputFile>
|
||||||
|
<UseUnicodeResponseFiles>true</UseUnicodeResponseFiles>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||||
|
</Lib>
|
||||||
|
<ProjectReference>
|
||||||
|
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
||||||
|
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
||||||
|
</ProjectReference>
|
||||||
|
<Link>
|
||||||
|
<RegisterOutput>false</RegisterOutput>
|
||||||
|
<PerUserRedirection>false</PerUserRedirection>
|
||||||
|
<AdditionalOptions>/IGNORE:4199 /OPT:ICF=3 %(AdditionalOptions)</AdditionalOptions>
|
||||||
|
<ShowProgress>NotSet</ShowProgress>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<ManifestFile>$(IntDir)$(TargetFileName).intermediate.manifest</ManifestFile>
|
||||||
|
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
||||||
|
<ModuleDefinitionFile />
|
||||||
|
<DelayLoadDLLs>advapi32.dll;userenv.dll;shell32.dll;shlwapi.dll;ws2_32.dll;version.dll;wtsapi32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
||||||
|
<IgnoreEmbeddedIDL>false</IgnoreEmbeddedIDL>
|
||||||
|
<TypeLibraryResourceID>1</TypeLibraryResourceID>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<ProgramDatabaseFile>$(TargetDir)pdb/$(TargetName).pdb</ProgramDatabaseFile>
|
||||||
|
<GenerateMapFile>true</GenerateMapFile>
|
||||||
|
<MapFileName>$(TargetDir)map/$(TargetName).map</MapFileName>
|
||||||
|
<MapExports>false</MapExports>
|
||||||
|
<HeapReserveSize>0</HeapReserveSize>
|
||||||
|
<HeapCommitSize>0</HeapCommitSize>
|
||||||
|
<StackReserveSize>0</StackReserveSize>
|
||||||
|
<StackCommitSize>0</StackCommitSize>
|
||||||
|
<SwapRunFromCD>false</SwapRunFromCD>
|
||||||
|
<SwapRunFromNET>false</SwapRunFromNET>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<NoEntryPoint>false</NoEntryPoint>
|
||||||
|
<SetChecksum>false</SetChecksum>
|
||||||
|
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||||
|
<FixedBaseAddress>false</FixedBaseAddress>
|
||||||
|
<TurnOffAssemblyGeneration>false</TurnOffAssemblyGeneration>
|
||||||
|
<SupportUnloadOfDelayLoadedDLL>false</SupportUnloadOfDelayLoadedDLL>
|
||||||
|
<ImportLibrary>$(TargetDir)lib/$(TargetName).lib</ImportLibrary>
|
||||||
|
<Profile>false</Profile>
|
||||||
|
<CLRThreadAttribute>DefaultThreadingAttribute</CLRThreadAttribute>
|
||||||
|
<CLRImageType>Default</CLRImageType>
|
||||||
|
<LinkErrorReporting>PromptImmediately</LinkErrorReporting>
|
||||||
|
<CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
|
||||||
|
</Link>
|
||||||
|
<Midl>
|
||||||
|
<AdditionalIncludeDirectories>.;$(SRC);$(SRC)\3rdParty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
|
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||||
|
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||||
|
<WarningLevel>3</WarningLevel>
|
||||||
|
<WarnAsError>false</WarnAsError>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<DefaultCharType>Unsigned</DefaultCharType>
|
||||||
|
<GenerateStublessProxies>true</GenerateStublessProxies>
|
||||||
|
<GenerateTypeLibrary>true</GenerateTypeLibrary>
|
||||||
|
<TypeLibraryName>$(IntDir)%(Filename).tlb</TypeLibraryName>
|
||||||
|
<HeaderFileName>%(Filename)_h.h</HeaderFileName>
|
||||||
|
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
||||||
|
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
||||||
|
<EnableErrorChecks>All</EnableErrorChecks>
|
||||||
|
<ErrorCheckAllocations>false</ErrorCheckAllocations>
|
||||||
|
<ErrorCheckBounds>false</ErrorCheckBounds>
|
||||||
|
<ErrorCheckEnumRange>false</ErrorCheckEnumRange>
|
||||||
|
<ErrorCheckRefPointers>false</ErrorCheckRefPointers>
|
||||||
|
<ErrorCheckStubData>false</ErrorCheckStubData>
|
||||||
|
<ValidateAllParameters>true</ValidateAllParameters>
|
||||||
|
<StructMemberAlignment>NotSet</StructMemberAlignment>
|
||||||
|
</Midl>
|
||||||
|
<ResourceCompile>
|
||||||
|
<Culture>0x0000</Culture>
|
||||||
|
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
||||||
|
<ShowProgress>false</ShowProgress>
|
||||||
|
<ResourceOutputFileName>$(IntDir)%(Filename).res</ResourceOutputFileName>
|
||||||
|
</ResourceCompile>
|
||||||
|
<Manifest>
|
||||||
|
<OutputManifestFile>$(IntDir)$(TargetFileName).embed.manifest</OutputManifestFile>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<VerboseOutput>false</VerboseOutput>
|
||||||
|
<GenerateCatalogFiles>false</GenerateCatalogFiles>
|
||||||
|
<UpdateFileHashes>false</UpdateFileHashes>
|
||||||
|
</Manifest>
|
||||||
|
<ManifestResourceCompile>
|
||||||
|
<ResourceOutputFileName>$(IntDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
|
||||||
|
</ManifestResourceCompile>
|
||||||
|
<Xdcmake>
|
||||||
|
<DocumentLibraryDependencies>true</DocumentLibraryDependencies>
|
||||||
|
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||||
|
<OutputFile>$(TargetDir)$(TargetName).xml</OutputFile>
|
||||||
|
</Xdcmake>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<!-- END common platform settings -->
|
||||||
|
|
||||||
|
<!-- Win32 -->
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
|
||||||
|
<Lib>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
</Lib>
|
||||||
|
<Link>
|
||||||
|
<TargetMachine>MachineX86</TargetMachine>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<!-- END Win32 -->
|
||||||
|
|
||||||
|
<!-- x64 -->
|
||||||
|
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
||||||
|
<OutDir>$(SolutionDir)bin\$(Configuration)64\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)build\$(Configuration)64\$(ProjectName)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(ConfigurationType)|$(Platform)'=='StaticLibrary|x64'">
|
||||||
|
<OutDir>$(SolutionDir)bin\$(Configuration)64\lib\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
|
||||||
|
<Lib>
|
||||||
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
|
</Lib>
|
||||||
|
<Link>
|
||||||
|
<TargetMachine>MachineX64</TargetMachine>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<!-- END x64 -->
|
||||||
|
|
||||||
|
</Project>
|
|
@ -1,8 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
<ItemDefinitionGroup>
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>MinSpace</Optimization>
|
<Optimization>MinSpace</Optimization>
|
||||||
|
@ -16,9 +13,6 @@
|
||||||
<SmallerTypeCheck>false</SmallerTypeCheck>
|
<SmallerTypeCheck>false</SmallerTypeCheck>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
|
||||||
<ProfileGuidedDatabase />
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
<Midl>
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</Midl>
|
</Midl>
|
||||||
|
@ -26,5 +20,4 @@
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
</Project>
|
|
@ -1,13 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="Win32.props" />
|
|
||||||
<Import Project="Debug.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup />
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,13 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="Win32.props" />
|
|
||||||
<Import Project="Release.props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup />
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,200 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
|
|
||||||
<OutDir Condition="'$(Platform)'=='x64'">$(SolutionDir)bin\$(Configuration)64\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)build\$(Configuration)\$(ProjectName)\</IntDir>
|
|
||||||
<IntDir Condition="'$(Platform)'=='x64'">$(SolutionDir)build\$(Configuration)64\$(ProjectName)\</IntDir>
|
|
||||||
<ExtensionsToDeleteOnClean>*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath);$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
|
|
||||||
<IgnoreImportLibrary>false</IgnoreImportLibrary>
|
|
||||||
<LinkIncremental>false</LinkIncremental>
|
|
||||||
<LinkDelaySign>false</LinkDelaySign>
|
|
||||||
<EmbedManifest>true</EmbedManifest>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(ConfigurationType)'=='StaticLibrary'">
|
|
||||||
<OutDir>$(SolutionDir)bin\$(Configuration)\lib\</OutDir>
|
|
||||||
<OutDir Condition="'$(Platform)'=='x64'">$(SolutionDir)bin\$(Configuration)64\lib\</OutDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>WIN32;_WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
|
|
||||||
<TargetMachine Condition="'$(Platform)'=='x64'">MachineX64</TargetMachine>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<PropertyGroup Label="UserMacros">
|
|
||||||
<ROOT>$(SolutionDir)</ROOT>
|
|
||||||
<SRC>$(ROOT)Source\</SRC>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<BuildMacro Include="ROOT">
|
|
||||||
<Value>$(ROOT)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
<BuildMacro Include="SRC">
|
|
||||||
<Value>$(SRC)</Value>
|
|
||||||
</BuildMacro>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
<BuildLog>
|
|
||||||
<Path>$(IntDir)BuildLog.htm</Path>
|
|
||||||
</BuildLog>
|
|
||||||
<Bscmake>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).bsc</OutputFile>
|
|
||||||
</Bscmake>
|
|
||||||
<ClCompile>
|
|
||||||
<AdditionalIncludeDirectories>.\;..\;..\3rd Party;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
|
||||||
<PreprocessToFile>false</PreprocessToFile>
|
|
||||||
<PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
|
|
||||||
<PreprocessKeepComments>false</PreprocessKeepComments>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
|
||||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
|
||||||
<SmallerTypeCheck>false</SmallerTypeCheck>
|
|
||||||
<StructMemberAlignment>Default</StructMemberAlignment>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">NoExtensions</EnableEnhancedInstructionSet>
|
|
||||||
<FloatingPointModel>Precise</FloatingPointModel>
|
|
||||||
<FloatingPointExceptions>false</FloatingPointExceptions>
|
|
||||||
<DisableLanguageExtensions>false</DisableLanguageExtensions>
|
|
||||||
<AdditionalOptions />
|
|
||||||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
|
|
||||||
<ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
|
|
||||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
||||||
<OpenMPSupport>false</OpenMPSupport>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<ExpandAttributedSource>false</ExpandAttributedSource>
|
|
||||||
<AssemblerOutput />
|
|
||||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
|
||||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
|
||||||
<ProgramDataBaseFileName>$(IntDir)vc90.pdb</ProgramDataBaseFileName>
|
|
||||||
<GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
|
|
||||||
<XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
|
|
||||||
<BrowseInformation />
|
|
||||||
<BrowseInformationFile>$(IntDir)</BrowseInformationFile>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<TreatWarningAsError>false</TreatWarningAsError>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<CallingConvention>Cdecl</CallingConvention>
|
|
||||||
<CompileAs>Default</CompileAs>
|
|
||||||
<ShowIncludes>false</ShowIncludes>
|
|
||||||
<UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
|
|
||||||
<EnablePREfast>false</EnablePREfast>
|
|
||||||
<UseFullPaths>false</UseFullPaths>
|
|
||||||
<OmitDefaultLibName>false</OmitDefaultLibName>
|
|
||||||
<ErrorReporting>Prompt</ErrorReporting>
|
|
||||||
</ClCompile>
|
|
||||||
<Lib>
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
|
|
||||||
<UseUnicodeResponseFiles>true</UseUnicodeResponseFiles>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
</Lib>
|
|
||||||
<ProjectReference>
|
|
||||||
<LinkLibraryDependencies>true</LinkLibraryDependencies>
|
|
||||||
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
|
|
||||||
</ProjectReference>
|
|
||||||
<Link>
|
|
||||||
<RegisterOutput>false</RegisterOutput>
|
|
||||||
<PerUserRedirection>false</PerUserRedirection>
|
|
||||||
<AdditionalOptions>/IGNORE:4199 /OPT:ICF=3 %(AdditionalOptions)</AdditionalOptions>
|
|
||||||
<ShowProgress>NotSet</ShowProgress>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<ManifestFile>$(IntDir)$(TargetFileName).intermediate.manifest</ManifestFile>
|
|
||||||
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
||||||
<ModuleDefinitionFile />
|
|
||||||
<DelayLoadDLLs>advapi32.dll;userenv.dll;shell32.dll;shlwapi.dll;ws2_32.dll;version.dll;wtsapi32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
|
|
||||||
<IgnoreEmbeddedIDL>false</IgnoreEmbeddedIDL>
|
|
||||||
<TypeLibraryResourceID>1</TypeLibraryResourceID>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<AssemblyDebug />
|
|
||||||
<ProgramDatabaseFile>$(TargetDir)pdb/$(TargetName).pdb</ProgramDatabaseFile>
|
|
||||||
<GenerateMapFile>true</GenerateMapFile>
|
|
||||||
<MapFileName>$(TargetDir)map/$(TargetName).map</MapFileName>
|
|
||||||
<MapExports>false</MapExports>
|
|
||||||
<HeapReserveSize>0</HeapReserveSize>
|
|
||||||
<HeapCommitSize>0</HeapCommitSize>
|
|
||||||
<StackReserveSize>0</StackReserveSize>
|
|
||||||
<StackCommitSize>0</StackCommitSize>
|
|
||||||
<LargeAddressAware />
|
|
||||||
<TerminalServerAware />
|
|
||||||
<SwapRunFromCD>false</SwapRunFromCD>
|
|
||||||
<SwapRunFromNET>false</SwapRunFromNET>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<ProfileGuidedDatabase />
|
|
||||||
<NoEntryPoint>false</NoEntryPoint>
|
|
||||||
<SetChecksum>false</SetChecksum>
|
|
||||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
|
||||||
<FixedBaseAddress>false</FixedBaseAddress>
|
|
||||||
<DataExecutionPrevention />
|
|
||||||
<TurnOffAssemblyGeneration>false</TurnOffAssemblyGeneration>
|
|
||||||
<SupportUnloadOfDelayLoadedDLL>false</SupportUnloadOfDelayLoadedDLL>
|
|
||||||
<ImportLibrary>$(TargetDir)lib/$(TargetName).lib</ImportLibrary>
|
|
||||||
<Profile>false</Profile>
|
|
||||||
<CLRThreadAttribute>DefaultThreadingAttribute</CLRThreadAttribute>
|
|
||||||
<CLRImageType>Default</CLRImageType>
|
|
||||||
<LinkErrorReporting>PromptImmediately</LinkErrorReporting>
|
|
||||||
<CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<MinimumRequiredVersion />
|
|
||||||
</Link>
|
|
||||||
<Midl>
|
|
||||||
<AdditionalIncludeDirectories>.;$(SRC);$(SRC)\3rd Party;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
|
||||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
|
||||||
<WarningLevel>3</WarningLevel>
|
|
||||||
<WarnAsError>false</WarnAsError>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<DefaultCharType>Unsigned</DefaultCharType>
|
|
||||||
<GenerateStublessProxies>true</GenerateStublessProxies>
|
|
||||||
<GenerateTypeLibrary>true</GenerateTypeLibrary>
|
|
||||||
<TypeLibraryName>$(IntDir)%(Filename).tlb</TypeLibraryName>
|
|
||||||
<HeaderFileName>%(Filename)_h.h</HeaderFileName>
|
|
||||||
<DllDataFileName />
|
|
||||||
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
|
|
||||||
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
|
|
||||||
<EnableErrorChecks>All</EnableErrorChecks>
|
|
||||||
<ErrorCheckAllocations>false</ErrorCheckAllocations>
|
|
||||||
<ErrorCheckBounds>false</ErrorCheckBounds>
|
|
||||||
<ErrorCheckEnumRange>false</ErrorCheckEnumRange>
|
|
||||||
<ErrorCheckRefPointers>false</ErrorCheckRefPointers>
|
|
||||||
<ErrorCheckStubData>false</ErrorCheckStubData>
|
|
||||||
<ValidateAllParameters>true</ValidateAllParameters>
|
|
||||||
<StructMemberAlignment>NotSet</StructMemberAlignment>
|
|
||||||
</Midl>
|
|
||||||
<ResourceCompile>
|
|
||||||
<Culture>0x0000</Culture>
|
|
||||||
<IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
|
|
||||||
<ShowProgress>false</ShowProgress>
|
|
||||||
<ResourceOutputFileName>$(IntDir)%(Filename).res</ResourceOutputFileName>
|
|
||||||
</ResourceCompile>
|
|
||||||
<Manifest>
|
|
||||||
<OutputManifestFile>$(IntDir)$(TargetFileName).embed.manifest</OutputManifestFile>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<VerboseOutput>false</VerboseOutput>
|
|
||||||
<GenerateCatalogFiles>false</GenerateCatalogFiles>
|
|
||||||
<UpdateFileHashes>false</UpdateFileHashes>
|
|
||||||
</Manifest>
|
|
||||||
<ManifestResourceCompile>
|
|
||||||
<ResourceOutputFileName>$(IntDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
|
|
||||||
</ManifestResourceCompile>
|
|
||||||
<Xdcmake>
|
|
||||||
<DocumentLibraryDependencies>true</DocumentLibraryDependencies>
|
|
||||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
|
||||||
<OutputFile>$(TargetDir)$(TargetName).xml</OutputFile>
|
|
||||||
</Xdcmake>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
</Project>
|
|
|
@ -1,59 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{4BC6906B-213E-40D7-9FC7-1A93E228393D}</ProjectGuid>
|
|
||||||
<RootNamespace>WTL</RootNamespace>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<PlatformToolset>v120_xp</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
<Import Project="$(SolutionDir)PropertySheets\$(Platform).$(Configuration).props" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="atlapp.h" />
|
|
||||||
<ClInclude Include="atlcrack.h" />
|
|
||||||
<ClInclude Include="atlctrls.h" />
|
|
||||||
<ClInclude Include="atlctrlw.h" />
|
|
||||||
<ClInclude Include="atlctrlx.h" />
|
|
||||||
<ClInclude Include="atlddx.h" />
|
|
||||||
<ClInclude Include="atldlgs.h" />
|
|
||||||
<ClInclude Include="atlfind.h" />
|
|
||||||
<ClInclude Include="atlframe.h" />
|
|
||||||
<ClInclude Include="atlgdi.h" />
|
|
||||||
<ClInclude Include="atlmisc.h" />
|
|
||||||
<ClInclude Include="atlprint.h" />
|
|
||||||
<ClInclude Include="atlres.h" />
|
|
||||||
<ClInclude Include="atlresce.h" />
|
|
||||||
<ClInclude Include="atlscrl.h" />
|
|
||||||
<ClInclude Include="atlsplit.h" />
|
|
||||||
<ClInclude Include="atltheme.h" />
|
|
||||||
<ClInclude Include="atluser.h" />
|
|
||||||
<ClInclude Include="atlwince.h" />
|
|
||||||
<ClInclude Include="atlwinx.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
|
@ -1,118 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $Revision: 9 $
|
|
||||||
** $Date: 12/23/97 9:57a $
|
|
||||||
*/
|
|
||||||
#ifndef __3DFX_H__
|
|
||||||
#define __3DFX_H__
|
|
||||||
|
|
||||||
/*
|
|
||||||
** basic data types
|
|
||||||
*/
|
|
||||||
typedef unsigned char FxU8;
|
|
||||||
typedef signed char FxI8;
|
|
||||||
typedef unsigned short FxU16;
|
|
||||||
typedef signed short FxI16;
|
|
||||||
typedef signed long FxI32;
|
|
||||||
typedef unsigned long FxU32;
|
|
||||||
typedef int FxBool;
|
|
||||||
typedef float FxFloat;
|
|
||||||
typedef double FxDouble;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** color types
|
|
||||||
*/
|
|
||||||
typedef unsigned long FxColor_t;
|
|
||||||
typedef struct { float r, g, b, a; } FxColor4;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** fundamental types
|
|
||||||
*/
|
|
||||||
#define FXTRUE 1
|
|
||||||
#define FXFALSE 0
|
|
||||||
|
|
||||||
/*
|
|
||||||
** helper macros
|
|
||||||
*/
|
|
||||||
#define FXUNUSED( a ) ((void)(a))
|
|
||||||
#define FXBIT( i ) ( 1L << (i) )
|
|
||||||
|
|
||||||
/*
|
|
||||||
** export macros
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__MSC__)
|
|
||||||
# if defined (MSVC16)
|
|
||||||
# define FX_ENTRY
|
|
||||||
# define FX_CALL
|
|
||||||
# else
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL __stdcall
|
|
||||||
# endif
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL __stdcall
|
|
||||||
#elif defined (__IBMC__) || defined (__IBMCPP__)
|
|
||||||
/* IBM Visual Age C/C++: */
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL __stdcall
|
|
||||||
#elif defined(__DJGPP__)
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL
|
|
||||||
#elif defined(__unix__)
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL
|
|
||||||
#elif defined(__MWERKS__)
|
|
||||||
# if macintosh
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL
|
|
||||||
# else /* !macintosh */
|
|
||||||
# error "Unknown MetroWerks target platform"
|
|
||||||
# endif /* !macintosh */
|
|
||||||
#else
|
|
||||||
# warning define FX_ENTRY & FX_CALL for your compiler
|
|
||||||
# define FX_ENTRY extern
|
|
||||||
# define FX_CALL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** x86 compiler specific stuff
|
|
||||||
*/
|
|
||||||
#if defined(__BORLANDC_)
|
|
||||||
# define REALMODE
|
|
||||||
|
|
||||||
# define REGW( a, b ) ((a).x.b)
|
|
||||||
# define REGB( a, b ) ((a).h.b)
|
|
||||||
# define INT86( a, b, c ) int86(a,b,c)
|
|
||||||
# define INT86X( a, b, c, d ) int86x(a,b,c,d)
|
|
||||||
|
|
||||||
# define RM_SEG( a ) FP_SEG( a )
|
|
||||||
# define RM_OFF( a ) FP_OFF( a )
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
# undef FP_SEG
|
|
||||||
# undef FP_OFF
|
|
||||||
|
|
||||||
# define REGW( a, b ) ((a).w.b)
|
|
||||||
# define REGB( a, b ) ((a).h.b)
|
|
||||||
# define INT86( a, b, c ) int386(a,b,c)
|
|
||||||
# define INT86X( a, b, c, d ) int386x(a,b,c,d)
|
|
||||||
|
|
||||||
# define RM_SEG( a ) ( ( ( ( FxU32 ) (a) ) & 0x000F0000 ) >> 4 )
|
|
||||||
# define RM_OFF( a ) ( ( FxU16 ) (a) )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !__3DFX_H__ */
|
|
|
@ -1,125 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 1996, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $Revision: 9 $
|
|
||||||
** $Date: 7/24/98 1:37p $
|
|
||||||
*/
|
|
||||||
/* preprocessor defines for libraries to support DLL creation */
|
|
||||||
|
|
||||||
/* in header file, use FX_ENTRY return-type FX_CALL function-name ( ... ) */
|
|
||||||
/* in source file, use FX_EXPORT return-type FX_CSTYLE function-name (... ) */
|
|
||||||
|
|
||||||
/* in source file, set FX_DLL_DEFINITION, include this file, then include
|
|
||||||
header file for library. */
|
|
||||||
|
|
||||||
/* we need to use two macros per declaration/definition because MSVC
|
|
||||||
requires __stdcall and __declspec( dllexport ) be in different parts
|
|
||||||
of the prototype! */
|
|
||||||
|
|
||||||
/* I use two sets in case we need to control declarations and definitions
|
|
||||||
differently. If it turns out we don't, it should be easy to do a search
|
|
||||||
and replace to eliminate one set */
|
|
||||||
|
|
||||||
/* NOTE: this header file may be included more than once, and FX_DLL_DEFINITION
|
|
||||||
may have changed, so we do not protect this with an #fndef __FXDLL_H__
|
|
||||||
statement like we normally would. */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef FX_ENTRY
|
|
||||||
#undef FX_ENTRY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FX_CALL
|
|
||||||
#undef FX_CALL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FX_EXPORT
|
|
||||||
#undef FX_EXPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FX_CSTYLE
|
|
||||||
#undef FX_CSTYLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(FX_DLL_DEFINITION)
|
|
||||||
#if defined(FX_DLL_ENABLE)
|
|
||||||
#if defined(__MSC__)
|
|
||||||
#ifndef KERNEL
|
|
||||||
#define FX_ENTRY __declspec( dllexport )
|
|
||||||
#define FX_EXPORT __declspec( dllexport )
|
|
||||||
#else
|
|
||||||
#define FX_ENTRY
|
|
||||||
#define FX_EXPORT
|
|
||||||
#endif /* #ifndef KERNEL */
|
|
||||||
#define FX_CALL __stdcall
|
|
||||||
#define FX_CSTYLE __stdcall
|
|
||||||
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
#define FX_ENTRY
|
|
||||||
#define FX_CALL __stdcall __export
|
|
||||||
|
|
||||||
#define FX_EXPORT
|
|
||||||
#define FX_CSTYLE __stdcall __export
|
|
||||||
|
|
||||||
#else /* compiler */
|
|
||||||
#error define FX_ENTRY,FX_CALL & FX_EXPORT,FX_CSTYLE for your compiler
|
|
||||||
#endif /* compiler */
|
|
||||||
|
|
||||||
#else /* FX_DLL_ENABLE */
|
|
||||||
#define FX_ENTRY
|
|
||||||
#define FX_CALL __stdcall
|
|
||||||
|
|
||||||
#define FX_EXPORT
|
|
||||||
#define FX_CSTYLE __stdcall
|
|
||||||
#endif /* FX_DLL_ENABLE */
|
|
||||||
|
|
||||||
#else /* FX_DLL_DEFINITION */
|
|
||||||
#define FX_ENTRY extern
|
|
||||||
#define FX_CALL __stdcall
|
|
||||||
#endif /* FX_DLL_DEFINITION */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We don't want any of this DLL junk for DJGPP or UNIX
|
|
||||||
* so undo what is done above.
|
|
||||||
*/
|
|
||||||
#if defined(__DJGPP__) || defined(__unix__)
|
|
||||||
#ifdef FX_CALL
|
|
||||||
#undef FX_CALL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FX_CSTYLE
|
|
||||||
#undef FX_CSTYLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FX_EXPORT
|
|
||||||
#undef FX_EXPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FX_ENTRY
|
|
||||||
#undef FX_ENTRY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define FX_CALL
|
|
||||||
#define FX_CSTYLE
|
|
||||||
#define FX_EXPORT
|
|
||||||
#define FX_ENTRY
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined (MSVC16)
|
|
||||||
#undef FX_CALL
|
|
||||||
#define FX_CALL
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $ Revision: $
|
|
||||||
** $ Date: $
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _FXGLOB_H_
|
|
||||||
#define _FXGLOB_H_
|
|
||||||
|
|
||||||
|
|
||||||
void fxGlobify( int *argc, char ***argv );
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,50 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $ Revision: $
|
|
||||||
** $ Date: $
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef _FXOS_H_
|
|
||||||
#define _FXOS_H_
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
# ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifdef WIN32
|
|
||||||
void sleep(int secs);
|
|
||||||
#define gethostname fxGethostname
|
|
||||||
|
|
||||||
int gethostname(char *name, int namelen);
|
|
||||||
|
|
||||||
# endif
|
|
||||||
|
|
||||||
float fxTime(void);
|
|
||||||
float timer(int flag);
|
|
||||||
|
|
||||||
FILE *fxFopenPath(const char *filename, const char *mode,
|
|
||||||
const char *path, const char **pprefix);
|
|
||||||
|
|
||||||
# ifdef __cplusplus
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,111 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $Header: /devel/cvg/incsrc/SST1VID.H 6 7/24/98 1:41p Hohn $
|
|
||||||
** $Log: /devel/cvg/incsrc/SST1VID.H $
|
|
||||||
**
|
|
||||||
** 6 7/24/98 1:41p Hohn
|
|
||||||
**
|
|
||||||
** 5 3/10/98 2:33p Psmith
|
|
||||||
** separating cvg tree from h3/h4 trees
|
|
||||||
*
|
|
||||||
* 4 9/09/97 7:35p Sellers
|
|
||||||
* Added 400x300 resolution
|
|
||||||
*
|
|
||||||
* 3 8/24/97 9:31a Sellers
|
|
||||||
* moved new video timing to sst1vid.h
|
|
||||||
* redefined 1600x1280 to be 1600x1200
|
|
||||||
*
|
|
||||||
* 2 6/05/97 11:14p Pgj
|
|
||||||
*
|
|
||||||
* 5 7/24/96 3:43p Sellers
|
|
||||||
* added 512x384 @ 60 Hz for arcade monitors
|
|
||||||
* added 512x256 @ 60 Hz for arcade monitors
|
|
||||||
*
|
|
||||||
* 4 7/18/96 10:58a Sellers
|
|
||||||
* fixed FT and TF clock delay values for lower frequencies with
|
|
||||||
* .5/.5 combos
|
|
||||||
*
|
|
||||||
* 3 6/18/96 6:54p Sellers
|
|
||||||
* added sst1InitShutdownSli() to fix Glide Splash screen problems with
|
|
||||||
* SLI
|
|
||||||
*
|
|
||||||
* 2 6/13/96 7:45p Sellers
|
|
||||||
* added "voodoo.ini" support
|
|
||||||
* added DirectX support
|
|
||||||
* misc cleanup
|
|
||||||
*
|
|
||||||
* 2 6/11/96 1:43p Sellers
|
|
||||||
* added support for 60, 75, 85, and 120 Hz refresh rates for "most"
|
|
||||||
* resolutions
|
|
||||||
*
|
|
||||||
* 1 5/08/96 5:43p Paik
|
|
||||||
* Video definitions
|
|
||||||
*/
|
|
||||||
#ifndef __SST1VID_H__
|
|
||||||
#define __SST1VID_H__
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Video defines */
|
|
||||||
|
|
||||||
typedef FxI32 GrScreenRefresh_t;
|
|
||||||
#define GR_REFRESH_60Hz 0x0
|
|
||||||
#define GR_REFRESH_70Hz 0x1
|
|
||||||
#define GR_REFRESH_72Hz 0x2
|
|
||||||
#define GR_REFRESH_75Hz 0x3
|
|
||||||
#define GR_REFRESH_80Hz 0x4
|
|
||||||
#define GR_REFRESH_90Hz 0x5
|
|
||||||
#define GR_REFRESH_100Hz 0x6
|
|
||||||
#define GR_REFRESH_85Hz 0x7
|
|
||||||
#define GR_REFRESH_120Hz 0x8
|
|
||||||
#define GR_REFRESH_NONE 0xff
|
|
||||||
|
|
||||||
typedef FxI32 GrScreenResolution_t;
|
|
||||||
#define GR_RESOLUTION_320x200 0x0
|
|
||||||
#define GR_RESOLUTION_320x240 0x1
|
|
||||||
#define GR_RESOLUTION_400x256 0x2
|
|
||||||
#define GR_RESOLUTION_512x384 0x3
|
|
||||||
#define GR_RESOLUTION_640x200 0x4
|
|
||||||
#define GR_RESOLUTION_640x350 0x5
|
|
||||||
#define GR_RESOLUTION_640x400 0x6
|
|
||||||
#define GR_RESOLUTION_640x480 0x7
|
|
||||||
#define GR_RESOLUTION_800x600 0x8
|
|
||||||
#define GR_RESOLUTION_960x720 0x9
|
|
||||||
#define GR_RESOLUTION_856x480 0xa
|
|
||||||
#define GR_RESOLUTION_512x256 0xb
|
|
||||||
#define GR_RESOLUTION_1024x768 0xC
|
|
||||||
#define GR_RESOLUTION_1280x1024 0xD
|
|
||||||
#define GR_RESOLUTION_1600x1200 0xE
|
|
||||||
#define GR_RESOLUTION_400x300 0xF
|
|
||||||
#define GR_RESOLUTION_NONE 0xff
|
|
||||||
|
|
||||||
#ifdef GR_RESOLUTION_MAX
|
|
||||||
#undef GR_RESOLUTION_MAX
|
|
||||||
#endif
|
|
||||||
#ifdef GR_RESOLUTION_MIN
|
|
||||||
#undef GR_RESOLUTION_MIN
|
|
||||||
#endif
|
|
||||||
#define GR_RESOLUTION_MIN GR_RESOLUTION_320x200
|
|
||||||
#define GR_RESOLUTION_MAX GR_RESOLUTION_1600x1200
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __SST1VID_H__ */
|
|
|
@ -1,917 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** GLIDE.H
|
|
||||||
**
|
|
||||||
** The following #defines are relevant when using Glide:
|
|
||||||
**
|
|
||||||
** One of the following "platform constants" must be defined during
|
|
||||||
** compilation:
|
|
||||||
**
|
|
||||||
** __DOS__ Defined for 32-bit DOS applications
|
|
||||||
** __WIN32__ Defined for 32-bit Windows applications
|
|
||||||
** __sparc__ Defined for Sun Solaris/SunOS
|
|
||||||
** __linux__ Defined for Linux applications
|
|
||||||
** __IRIX__ Defined for SGI Irix applications
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
#ifndef __GLIDE_H__
|
|
||||||
#define __GLIDE_H__
|
|
||||||
|
|
||||||
#include <3dfx.h>
|
|
||||||
#include <glidesys.h>
|
|
||||||
#include <sst1vid.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
** TYPE DEFINITIONS
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
typedef FxU32 GrColor_t;
|
|
||||||
typedef FxU8 GrAlpha_t;
|
|
||||||
typedef FxU32 GrMipMapId_t;
|
|
||||||
typedef FxU8 GrFog_t;
|
|
||||||
typedef FxU32 GrContext_t;
|
|
||||||
typedef int (__stdcall *GrProc)();
|
|
||||||
|
|
||||||
/*
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
** CONSTANTS AND TYPES
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
#define GR_NULL_MIPMAP_HANDLE ((GrMipMapId_t) -1)
|
|
||||||
|
|
||||||
#define GR_MIPMAPLEVELMASK_EVEN FXBIT(0)
|
|
||||||
#define GR_MIPMAPLEVELMASK_ODD FXBIT(1)
|
|
||||||
#define GR_MIPMAPLEVELMASK_BOTH (GR_MIPMAPLEVELMASK_EVEN | GR_MIPMAPLEVELMASK_ODD )
|
|
||||||
|
|
||||||
#define GR_LODBIAS_BILINEAR 0.5
|
|
||||||
#define GR_LODBIAS_TRILINEAR 0.0
|
|
||||||
|
|
||||||
typedef FxI32 GrChipID_t;
|
|
||||||
#define GR_TMU0 0x0
|
|
||||||
#define GR_TMU1 0x1
|
|
||||||
#define GR_TMU2 0x2
|
|
||||||
|
|
||||||
#define GR_FBI 0x0
|
|
||||||
|
|
||||||
typedef FxI32 GrCombineFunction_t;
|
|
||||||
#define GR_COMBINE_FUNCTION_ZERO 0x0
|
|
||||||
#define GR_COMBINE_FUNCTION_NONE GR_COMBINE_FUNCTION_ZERO
|
|
||||||
#define GR_COMBINE_FUNCTION_LOCAL 0x1
|
|
||||||
#define GR_COMBINE_FUNCTION_LOCAL_ALPHA 0x2
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_OTHER 0x3
|
|
||||||
#define GR_COMBINE_FUNCTION_BLEND_OTHER GR_COMBINE_FUNCTION_SCALE_OTHER
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL 0x4
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL_ALPHA 0x5
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL 0x6
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL 0x7
|
|
||||||
#define GR_COMBINE_FUNCTION_BLEND GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL_ALPHA 0x8
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL 0x9
|
|
||||||
#define GR_COMBINE_FUNCTION_BLEND_LOCAL GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL
|
|
||||||
#define GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL_ALPHA 0x10
|
|
||||||
|
|
||||||
typedef FxI32 GrCombineFactor_t;
|
|
||||||
#define GR_COMBINE_FACTOR_ZERO 0x0
|
|
||||||
#define GR_COMBINE_FACTOR_NONE GR_COMBINE_FACTOR_ZERO
|
|
||||||
#define GR_COMBINE_FACTOR_LOCAL 0x1
|
|
||||||
#define GR_COMBINE_FACTOR_OTHER_ALPHA 0x2
|
|
||||||
#define GR_COMBINE_FACTOR_LOCAL_ALPHA 0x3
|
|
||||||
#define GR_COMBINE_FACTOR_TEXTURE_ALPHA 0x4
|
|
||||||
#define GR_COMBINE_FACTOR_TEXTURE_RGB 0x5
|
|
||||||
#define GR_COMBINE_FACTOR_DETAIL_FACTOR GR_COMBINE_FACTOR_TEXTURE_ALPHA
|
|
||||||
#define GR_COMBINE_FACTOR_LOD_FRACTION 0x5
|
|
||||||
#define GR_COMBINE_FACTOR_ONE 0x8
|
|
||||||
#define GR_COMBINE_FACTOR_ONE_MINUS_LOCAL 0x9
|
|
||||||
#define GR_COMBINE_FACTOR_ONE_MINUS_OTHER_ALPHA 0xa
|
|
||||||
#define GR_COMBINE_FACTOR_ONE_MINUS_LOCAL_ALPHA 0xb
|
|
||||||
#define GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA 0xc
|
|
||||||
#define GR_COMBINE_FACTOR_ONE_MINUS_DETAIL_FACTOR GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA
|
|
||||||
#define GR_COMBINE_FACTOR_ONE_MINUS_LOD_FRACTION 0xd
|
|
||||||
|
|
||||||
|
|
||||||
typedef FxI32 GrCombineLocal_t;
|
|
||||||
#define GR_COMBINE_LOCAL_ITERATED 0x0
|
|
||||||
#define GR_COMBINE_LOCAL_CONSTANT 0x1
|
|
||||||
#define GR_COMBINE_LOCAL_NONE GR_COMBINE_LOCAL_CONSTANT
|
|
||||||
#define GR_COMBINE_LOCAL_DEPTH 0x2
|
|
||||||
|
|
||||||
typedef FxI32 GrCombineOther_t;
|
|
||||||
#define GR_COMBINE_OTHER_ITERATED 0x0
|
|
||||||
#define GR_COMBINE_OTHER_TEXTURE 0x1
|
|
||||||
#define GR_COMBINE_OTHER_CONSTANT 0x2
|
|
||||||
#define GR_COMBINE_OTHER_NONE GR_COMBINE_OTHER_CONSTANT
|
|
||||||
|
|
||||||
|
|
||||||
typedef FxI32 GrAlphaSource_t;
|
|
||||||
#define GR_ALPHASOURCE_CC_ALPHA 0x0
|
|
||||||
#define GR_ALPHASOURCE_ITERATED_ALPHA 0x1
|
|
||||||
#define GR_ALPHASOURCE_TEXTURE_ALPHA 0x2
|
|
||||||
#define GR_ALPHASOURCE_TEXTURE_ALPHA_TIMES_ITERATED_ALPHA 0x3
|
|
||||||
|
|
||||||
|
|
||||||
typedef FxI32 GrColorCombineFnc_t;
|
|
||||||
#define GR_COLORCOMBINE_ZERO 0x0
|
|
||||||
#define GR_COLORCOMBINE_CCRGB 0x1
|
|
||||||
#define GR_COLORCOMBINE_ITRGB 0x2
|
|
||||||
#define GR_COLORCOMBINE_ITRGB_DELTA0 0x3
|
|
||||||
#define GR_COLORCOMBINE_DECAL_TEXTURE 0x4
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_TIMES_CCRGB 0x5
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_TIMES_ITRGB 0x6
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_TIMES_ITRGB_DELTA0 0x7
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_TIMES_ITRGB_ADD_ALPHA 0x8
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_TIMES_ALPHA 0x9
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_TIMES_ALPHA_ADD_ITRGB 0xa
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_ADD_ITRGB 0xb
|
|
||||||
#define GR_COLORCOMBINE_TEXTURE_SUB_ITRGB 0xc
|
|
||||||
#define GR_COLORCOMBINE_CCRGB_BLEND_ITRGB_ON_TEXALPHA 0xd
|
|
||||||
#define GR_COLORCOMBINE_DIFF_SPEC_A 0xe
|
|
||||||
#define GR_COLORCOMBINE_DIFF_SPEC_B 0xf
|
|
||||||
#define GR_COLORCOMBINE_ONE 0x10
|
|
||||||
|
|
||||||
typedef FxI32 GrAlphaBlendFnc_t;
|
|
||||||
#define GR_BLEND_ZERO 0x0
|
|
||||||
#define GR_BLEND_SRC_ALPHA 0x1
|
|
||||||
#define GR_BLEND_SRC_COLOR 0x2
|
|
||||||
#define GR_BLEND_DST_COLOR GR_BLEND_SRC_COLOR
|
|
||||||
#define GR_BLEND_DST_ALPHA 0x3
|
|
||||||
#define GR_BLEND_ONE 0x4
|
|
||||||
#define GR_BLEND_ONE_MINUS_SRC_ALPHA 0x5
|
|
||||||
#define GR_BLEND_ONE_MINUS_SRC_COLOR 0x6
|
|
||||||
#define GR_BLEND_ONE_MINUS_DST_COLOR GR_BLEND_ONE_MINUS_SRC_COLOR
|
|
||||||
#define GR_BLEND_ONE_MINUS_DST_ALPHA 0x7
|
|
||||||
#define GR_BLEND_RESERVED_8 0x8
|
|
||||||
#define GR_BLEND_RESERVED_9 0x9
|
|
||||||
#define GR_BLEND_RESERVED_A 0xa
|
|
||||||
#define GR_BLEND_RESERVED_B 0xb
|
|
||||||
#define GR_BLEND_RESERVED_C 0xc
|
|
||||||
#define GR_BLEND_RESERVED_D 0xd
|
|
||||||
#define GR_BLEND_RESERVED_E 0xe
|
|
||||||
#define GR_BLEND_ALPHA_SATURATE 0xf
|
|
||||||
#define GR_BLEND_PREFOG_COLOR GR_BLEND_ALPHA_SATURATE
|
|
||||||
|
|
||||||
typedef FxI32 GrAspectRatio_t;
|
|
||||||
#define GR_ASPECT_LOG2_8x1 3 /* 8W x 1H */
|
|
||||||
#define GR_ASPECT_LOG2_4x1 2 /* 4W x 1H */
|
|
||||||
#define GR_ASPECT_LOG2_2x1 1 /* 2W x 1H */
|
|
||||||
#define GR_ASPECT_LOG2_1x1 0 /* 1W x 1H */
|
|
||||||
#define GR_ASPECT_LOG2_1x2 -1 /* 1W x 2H */
|
|
||||||
#define GR_ASPECT_LOG2_1x4 -2 /* 1W x 4H */
|
|
||||||
#define GR_ASPECT_LOG2_1x8 -3 /* 1W x 8H */
|
|
||||||
|
|
||||||
typedef FxI32 GrBuffer_t;
|
|
||||||
#define GR_BUFFER_FRONTBUFFER 0x0
|
|
||||||
#define GR_BUFFER_BACKBUFFER 0x1
|
|
||||||
#define GR_BUFFER_AUXBUFFER 0x2
|
|
||||||
#define GR_BUFFER_DEPTHBUFFER 0x3
|
|
||||||
#define GR_BUFFER_ALPHABUFFER 0x4
|
|
||||||
#define GR_BUFFER_TRIPLEBUFFER 0x5
|
|
||||||
|
|
||||||
typedef FxI32 GrChromakeyMode_t;
|
|
||||||
#define GR_CHROMAKEY_DISABLE 0x0
|
|
||||||
#define GR_CHROMAKEY_ENABLE 0x1
|
|
||||||
|
|
||||||
typedef FxI32 GrChromaRangeMode_t;
|
|
||||||
#define GR_CHROMARANGE_RGB_ALL_EXT 0x0
|
|
||||||
|
|
||||||
#define GR_CHROMARANGE_DISABLE_EXT 0x00
|
|
||||||
#define GR_CHROMARANGE_ENABLE_EXT 0x01
|
|
||||||
|
|
||||||
typedef FxI32 GrTexChromakeyMode_t;
|
|
||||||
#define GR_TEXCHROMA_DISABLE_EXT 0x0
|
|
||||||
#define GR_TEXCHROMA_ENABLE_EXT 0x1
|
|
||||||
|
|
||||||
#define GR_TEXCHROMARANGE_RGB_ALL_EXT 0x0
|
|
||||||
|
|
||||||
typedef FxI32 GrCmpFnc_t;
|
|
||||||
#define GR_CMP_NEVER 0x0
|
|
||||||
#define GR_CMP_LESS 0x1
|
|
||||||
#define GR_CMP_EQUAL 0x2
|
|
||||||
#define GR_CMP_LEQUAL 0x3
|
|
||||||
#define GR_CMP_GREATER 0x4
|
|
||||||
#define GR_CMP_NOTEQUAL 0x5
|
|
||||||
#define GR_CMP_GEQUAL 0x6
|
|
||||||
#define GR_CMP_ALWAYS 0x7
|
|
||||||
|
|
||||||
typedef FxI32 GrColorFormat_t;
|
|
||||||
#define GR_COLORFORMAT_ARGB 0x0
|
|
||||||
#define GR_COLORFORMAT_ABGR 0x1
|
|
||||||
|
|
||||||
#define GR_COLORFORMAT_RGBA 0x2
|
|
||||||
#define GR_COLORFORMAT_BGRA 0x3
|
|
||||||
|
|
||||||
typedef FxI32 GrCullMode_t;
|
|
||||||
#define GR_CULL_DISABLE 0x0
|
|
||||||
#define GR_CULL_NEGATIVE 0x1
|
|
||||||
#define GR_CULL_POSITIVE 0x2
|
|
||||||
|
|
||||||
typedef FxI32 GrDepthBufferMode_t;
|
|
||||||
#define GR_DEPTHBUFFER_DISABLE 0x0
|
|
||||||
#define GR_DEPTHBUFFER_ZBUFFER 0x1
|
|
||||||
#define GR_DEPTHBUFFER_WBUFFER 0x2
|
|
||||||
#define GR_DEPTHBUFFER_ZBUFFER_COMPARE_TO_BIAS 0x3
|
|
||||||
#define GR_DEPTHBUFFER_WBUFFER_COMPARE_TO_BIAS 0x4
|
|
||||||
|
|
||||||
typedef FxI32 GrDitherMode_t;
|
|
||||||
#define GR_DITHER_DISABLE 0x0
|
|
||||||
#define GR_DITHER_2x2 0x1
|
|
||||||
#define GR_DITHER_4x4 0x2
|
|
||||||
|
|
||||||
typedef FxI32 GrFogMode_t;
|
|
||||||
#define GR_FOG_DISABLE 0x0
|
|
||||||
#define GR_FOG_WITH_TABLE_ON_FOGCOORD_EXT 0x1
|
|
||||||
#define GR_FOG_WITH_TABLE_ON_Q 0x2
|
|
||||||
#define GR_FOG_WITH_TABLE_ON_W GR_FOG_WITH_TABLE_ON_Q
|
|
||||||
#define GR_FOG_WITH_ITERATED_Z 0x3
|
|
||||||
#define GR_FOG_MULT2 0x100
|
|
||||||
#define GR_FOG_ADD2 0x200
|
|
||||||
|
|
||||||
typedef FxU32 GrLock_t;
|
|
||||||
#define GR_LFB_READ_ONLY 0x00
|
|
||||||
#define GR_LFB_WRITE_ONLY 0x01
|
|
||||||
#define GR_LFB_IDLE 0x00
|
|
||||||
#define GR_LFB_NOIDLE 0x10
|
|
||||||
|
|
||||||
typedef FxI32 GrLfbBypassMode_t;
|
|
||||||
#define GR_LFBBYPASS_DISABLE 0x0
|
|
||||||
#define GR_LFBBYPASS_ENABLE 0x1
|
|
||||||
|
|
||||||
typedef FxI32 GrLfbWriteMode_t;
|
|
||||||
#define GR_LFBWRITEMODE_565 0x0 /* RGB:RGB */
|
|
||||||
#define GR_LFBWRITEMODE_555 0x1 /* RGB:RGB */
|
|
||||||
#define GR_LFBWRITEMODE_1555 0x2 /* ARGB:ARGB */
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED1 0x3
|
|
||||||
#define GR_LFBWRITEMODE_888 0x4 /* RGB */
|
|
||||||
#define GR_LFBWRITEMODE_8888 0x5 /* ARGB */
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED2 0x6
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED3 0x7
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED4 0x8
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED5 0x9
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED6 0xa
|
|
||||||
#define GR_LFBWRITEMODE_RESERVED7 0xb
|
|
||||||
#define GR_LFBWRITEMODE_565_DEPTH 0xc /* RGB:DEPTH */
|
|
||||||
#define GR_LFBWRITEMODE_555_DEPTH 0xd /* RGB:DEPTH */
|
|
||||||
#define GR_LFBWRITEMODE_1555_DEPTH 0xe /* ARGB:DEPTH */
|
|
||||||
#define GR_LFBWRITEMODE_ZA16 0xf /* DEPTH:DEPTH */
|
|
||||||
#define GR_LFBWRITEMODE_ANY 0xFF
|
|
||||||
|
|
||||||
|
|
||||||
typedef FxI32 GrOriginLocation_t;
|
|
||||||
#define GR_ORIGIN_UPPER_LEFT 0x0
|
|
||||||
#define GR_ORIGIN_LOWER_LEFT 0x1
|
|
||||||
#define GR_ORIGIN_ANY 0xFF
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int size;
|
|
||||||
void *lfbPtr;
|
|
||||||
FxU32 strideInBytes;
|
|
||||||
GrLfbWriteMode_t writeMode;
|
|
||||||
GrOriginLocation_t origin;
|
|
||||||
} GrLfbInfo_t;
|
|
||||||
|
|
||||||
typedef FxI32 GrLOD_t;
|
|
||||||
#define GR_LOD_LOG2_256 0x8
|
|
||||||
#define GR_LOD_LOG2_128 0x7
|
|
||||||
#define GR_LOD_LOG2_64 0x6
|
|
||||||
#define GR_LOD_LOG2_32 0x5
|
|
||||||
#define GR_LOD_LOG2_16 0x4
|
|
||||||
#define GR_LOD_LOG2_8 0x3
|
|
||||||
#define GR_LOD_LOG2_4 0x2
|
|
||||||
#define GR_LOD_LOG2_2 0x1
|
|
||||||
#define GR_LOD_LOG2_1 0x0
|
|
||||||
|
|
||||||
typedef FxI32 GrMipMapMode_t;
|
|
||||||
#define GR_MIPMAP_DISABLE 0x0 /* no mip mapping */
|
|
||||||
#define GR_MIPMAP_NEAREST 0x1 /* use nearest mipmap */
|
|
||||||
#define GR_MIPMAP_NEAREST_DITHER 0x2 /* GR_MIPMAP_NEAREST + LOD dith */
|
|
||||||
|
|
||||||
typedef FxI32 GrSmoothingMode_t;
|
|
||||||
#define GR_SMOOTHING_DISABLE 0x0
|
|
||||||
#define GR_SMOOTHING_ENABLE 0x1
|
|
||||||
|
|
||||||
typedef FxI32 GrTextureClampMode_t;
|
|
||||||
#define GR_TEXTURECLAMP_WRAP 0x0
|
|
||||||
#define GR_TEXTURECLAMP_CLAMP 0x1
|
|
||||||
#define GR_TEXTURECLAMP_MIRROR_EXT 0x2
|
|
||||||
|
|
||||||
typedef FxI32 GrTextureCombineFnc_t;
|
|
||||||
#define GR_TEXTURECOMBINE_ZERO 0x0 /* texout = 0 */
|
|
||||||
#define GR_TEXTURECOMBINE_DECAL 0x1 /* texout = texthis */
|
|
||||||
#define GR_TEXTURECOMBINE_OTHER 0x2 /* this TMU in passthru mode */
|
|
||||||
#define GR_TEXTURECOMBINE_ADD 0x3 /* tout = tthis + t(this+1) */
|
|
||||||
#define GR_TEXTURECOMBINE_MULTIPLY 0x4 /* texout = tthis * t(this+1) */
|
|
||||||
#define GR_TEXTURECOMBINE_SUBTRACT 0x5 /* Sutract from upstream TMU */
|
|
||||||
#define GR_TEXTURECOMBINE_DETAIL 0x6 /* detail--detail on tthis */
|
|
||||||
#define GR_TEXTURECOMBINE_DETAIL_OTHER 0x7 /* detail--detail on tthis+1 */
|
|
||||||
#define GR_TEXTURECOMBINE_TRILINEAR_ODD 0x8 /* trilinear--odd levels tthis*/
|
|
||||||
#define GR_TEXTURECOMBINE_TRILINEAR_EVEN 0x9 /*trilinear--even levels tthis*/
|
|
||||||
#define GR_TEXTURECOMBINE_ONE 0xa /* texout = 0xFFFFFFFF */
|
|
||||||
|
|
||||||
typedef FxI32 GrTextureFilterMode_t;
|
|
||||||
#define GR_TEXTUREFILTER_POINT_SAMPLED 0x0
|
|
||||||
#define GR_TEXTUREFILTER_BILINEAR 0x1
|
|
||||||
|
|
||||||
typedef FxI32 GrTextureFormat_t;
|
|
||||||
#define GR_TEXFMT_8BIT 0x0
|
|
||||||
#define GR_TEXFMT_RGB_332 GR_TEXFMT_8BIT
|
|
||||||
#define GR_TEXFMT_YIQ_422 0x1
|
|
||||||
#define GR_TEXFMT_ALPHA_8 0x2 /* (0..0xFF) alpha */
|
|
||||||
#define GR_TEXFMT_INTENSITY_8 0x3 /* (0..0xFF) intensity */
|
|
||||||
#define GR_TEXFMT_ALPHA_INTENSITY_44 0x4
|
|
||||||
#define GR_TEXFMT_P_8 0x5 /* 8-bit palette */
|
|
||||||
#define GR_TEXFMT_RSVD0 0x6
|
|
||||||
#define GR_TEXFMT_RSVD1 0x7
|
|
||||||
#define GR_TEXFMT_16BIT 0x8
|
|
||||||
#define GR_TEXFMT_ARGB_8332 GR_TEXFMT_16BIT
|
|
||||||
#define GR_TEXFMT_AYIQ_8422 0x9
|
|
||||||
#define GR_TEXFMT_RGB_565 0xa
|
|
||||||
#define GR_TEXFMT_ARGB_1555 0xb
|
|
||||||
#define GR_TEXFMT_ARGB_4444 0xc
|
|
||||||
#define GR_TEXFMT_ALPHA_INTENSITY_88 0xd
|
|
||||||
#define GR_TEXFMT_AP_88 0xe /* 8-bit alpha 8-bit palette */
|
|
||||||
#define GR_TEXFMT_RSVD2 0xf
|
|
||||||
|
|
||||||
typedef FxU32 GrTexTable_t;
|
|
||||||
#define GR_TEXTABLE_NCC0 0x0
|
|
||||||
#define GR_TEXTABLE_NCC1 0x1
|
|
||||||
#define GR_TEXTABLE_PALETTE 0x2
|
|
||||||
#define GR_TEXTABLE_PALETTE_6666_EXT 0x3
|
|
||||||
|
|
||||||
typedef FxU32 GrNCCTable_t;
|
|
||||||
#define GR_NCCTABLE_NCC0 0x0
|
|
||||||
#define GR_NCCTABLE_NCC1 0x1
|
|
||||||
|
|
||||||
typedef FxU32 GrTexBaseRange_t;
|
|
||||||
#define GR_TEXBASE_256 0x3
|
|
||||||
#define GR_TEXBASE_128 0x2
|
|
||||||
#define GR_TEXBASE_64 0x1
|
|
||||||
#define GR_TEXBASE_32_TO_1 0x0
|
|
||||||
|
|
||||||
|
|
||||||
typedef FxU32 GrEnableMode_t;
|
|
||||||
#define GR_MODE_DISABLE 0x0
|
|
||||||
#define GR_MODE_ENABLE 0x1
|
|
||||||
|
|
||||||
#define GR_AA_ORDERED 0x01
|
|
||||||
#define GR_ALLOW_MIPMAP_DITHER 0x02
|
|
||||||
#define GR_PASSTHRU 0x03
|
|
||||||
#define GR_SHAMELESS_PLUG 0x04
|
|
||||||
#define GR_VIDEO_SMOOTHING 0x05
|
|
||||||
|
|
||||||
typedef FxU32 GrCoordinateSpaceMode_t;
|
|
||||||
#define GR_WINDOW_COORDS 0x00
|
|
||||||
#define GR_CLIP_COORDS 0x01
|
|
||||||
|
|
||||||
/* Types of data in strips */
|
|
||||||
#define GR_FLOAT 0
|
|
||||||
#define GR_U8 1
|
|
||||||
|
|
||||||
/* Parameters for strips */
|
|
||||||
#define GR_PARAM_XY 0x01
|
|
||||||
#define GR_PARAM_Z 0x02
|
|
||||||
#define GR_PARAM_W 0x03
|
|
||||||
#define GR_PARAM_Q 0x04
|
|
||||||
#define GR_PARAM_FOG_EXT 0x05
|
|
||||||
|
|
||||||
#define GR_PARAM_A 0x10
|
|
||||||
|
|
||||||
#define GR_PARAM_RGB 0x20
|
|
||||||
|
|
||||||
#define GR_PARAM_PARGB 0x30
|
|
||||||
|
|
||||||
#define GR_PARAM_ST0 0x40
|
|
||||||
#define GR_PARAM_ST1 GR_PARAM_ST0+1
|
|
||||||
#define GR_PARAM_ST2 GR_PARAM_ST0+2
|
|
||||||
|
|
||||||
#define GR_PARAM_Q0 0x50
|
|
||||||
#define GR_PARAM_Q1 GR_PARAM_Q0+1
|
|
||||||
#define GR_PARAM_Q2 GR_PARAM_Q0+2
|
|
||||||
|
|
||||||
#define GR_PARAM_DISABLE 0x00
|
|
||||||
#define GR_PARAM_ENABLE 0x01
|
|
||||||
|
|
||||||
/*
|
|
||||||
** grDrawVertexArray/grDrawVertexArrayContiguous primitive type
|
|
||||||
*/
|
|
||||||
#define GR_POINTS 0
|
|
||||||
#define GR_LINE_STRIP 1
|
|
||||||
#define GR_LINES 2
|
|
||||||
#define GR_POLYGON 3
|
|
||||||
#define GR_TRIANGLE_STRIP 4
|
|
||||||
#define GR_TRIANGLE_FAN 5
|
|
||||||
#define GR_TRIANGLES 6
|
|
||||||
#define GR_TRIANGLE_STRIP_CONTINUE 7
|
|
||||||
#define GR_TRIANGLE_FAN_CONTINUE 8
|
|
||||||
|
|
||||||
/*
|
|
||||||
** grGet/grReset types
|
|
||||||
*/
|
|
||||||
#define GR_BITS_DEPTH 0x01
|
|
||||||
#define GR_BITS_RGBA 0x02
|
|
||||||
#define GR_FIFO_FULLNESS 0x03
|
|
||||||
#define GR_FOG_TABLE_ENTRIES 0x04
|
|
||||||
#define GR_GAMMA_TABLE_ENTRIES 0x05
|
|
||||||
#define GR_GLIDE_STATE_SIZE 0x06
|
|
||||||
#define GR_GLIDE_VERTEXLAYOUT_SIZE 0x07
|
|
||||||
#define GR_IS_BUSY 0x08
|
|
||||||
#define GR_LFB_PIXEL_PIPE 0x09
|
|
||||||
#define GR_MAX_TEXTURE_SIZE 0x0a
|
|
||||||
#define GR_MAX_TEXTURE_ASPECT_RATIO 0x0b
|
|
||||||
#define GR_MEMORY_FB 0x0c
|
|
||||||
#define GR_MEMORY_TMU 0x0d
|
|
||||||
#define GR_MEMORY_UMA 0x0e
|
|
||||||
#define GR_NUM_BOARDS 0x0f
|
|
||||||
#define GR_NON_POWER_OF_TWO_TEXTURES 0x10
|
|
||||||
#define GR_NUM_FB 0x11
|
|
||||||
#define GR_NUM_SWAP_HISTORY_BUFFER 0x12
|
|
||||||
#define GR_NUM_TMU 0x13
|
|
||||||
#define GR_PENDING_BUFFERSWAPS 0x14
|
|
||||||
#define GR_REVISION_FB 0x15
|
|
||||||
#define GR_REVISION_TMU 0x16
|
|
||||||
#define GR_STATS_LINES 0x17 /* grGet/grReset */
|
|
||||||
#define GR_STATS_PIXELS_AFUNC_FAIL 0x18
|
|
||||||
#define GR_STATS_PIXELS_CHROMA_FAIL 0x19
|
|
||||||
#define GR_STATS_PIXELS_DEPTHFUNC_FAIL 0x1a
|
|
||||||
#define GR_STATS_PIXELS_IN 0x1b
|
|
||||||
#define GR_STATS_PIXELS_OUT 0x1c
|
|
||||||
#define GR_STATS_PIXELS 0x1d /* grReset */
|
|
||||||
#define GR_STATS_POINTS 0x1e /* grGet/grReset */
|
|
||||||
#define GR_STATS_TRIANGLES_IN 0x1f
|
|
||||||
#define GR_STATS_TRIANGLES_OUT 0x20
|
|
||||||
#define GR_STATS_TRIANGLES 0x21 /* grReset */
|
|
||||||
#define GR_SWAP_HISTORY 0x22
|
|
||||||
#define GR_SUPPORTS_PASSTHRU 0x23
|
|
||||||
#define GR_TEXTURE_ALIGN 0x24
|
|
||||||
#define GR_VIDEO_POSITION 0x25
|
|
||||||
#define GR_VIEWPORT 0x26
|
|
||||||
#define GR_WDEPTH_MIN_MAX 0x27
|
|
||||||
#define GR_ZDEPTH_MIN_MAX 0x28
|
|
||||||
#define GR_VERTEX_PARAMETER 0x29
|
|
||||||
#define GR_BITS_GAMMA 0x2a
|
|
||||||
|
|
||||||
/*
|
|
||||||
** grGetString types
|
|
||||||
*/
|
|
||||||
#define GR_EXTENSION 0xa0
|
|
||||||
#define GR_HARDWARE 0xa1
|
|
||||||
#define GR_RENDERER 0xa2
|
|
||||||
#define GR_VENDOR 0xa3
|
|
||||||
#define GR_VERSION 0xa4
|
|
||||||
|
|
||||||
/*
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
** STRUCTURES
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GrLOD_t smallLodLog2;
|
|
||||||
GrLOD_t largeLodLog2;
|
|
||||||
GrAspectRatio_t aspectRatioLog2;
|
|
||||||
GrTextureFormat_t format;
|
|
||||||
void *data;
|
|
||||||
} GrTexInfo;
|
|
||||||
|
|
||||||
typedef struct GrSstPerfStats_s {
|
|
||||||
FxU32 pixelsIn; /* # pixels processed (minus buffer clears) */
|
|
||||||
FxU32 chromaFail; /* # pixels not drawn due to chroma key */
|
|
||||||
FxU32 zFuncFail; /* # pixels not drawn due to Z comparison */
|
|
||||||
FxU32 aFuncFail; /* # pixels not drawn due to alpha comparison */
|
|
||||||
FxU32 pixelsOut; /* # pixels drawn (including buffer clears) */
|
|
||||||
} GrSstPerfStats_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
GrScreenResolution_t resolution;
|
|
||||||
GrScreenRefresh_t refresh;
|
|
||||||
int numColorBuffers;
|
|
||||||
int numAuxBuffers;
|
|
||||||
} GrResolution;
|
|
||||||
|
|
||||||
typedef GrResolution GlideResolution;
|
|
||||||
|
|
||||||
#define GR_QUERY_ANY ((FxU32)(~0))
|
|
||||||
|
|
||||||
typedef FxU32 GrLfbSrcFmt_t;
|
|
||||||
#define GR_LFB_SRC_FMT_565 0x00
|
|
||||||
#define GR_LFB_SRC_FMT_555 0x01
|
|
||||||
#define GR_LFB_SRC_FMT_1555 0x02
|
|
||||||
#define GR_LFB_SRC_FMT_888 0x04
|
|
||||||
#define GR_LFB_SRC_FMT_8888 0x05
|
|
||||||
#define GR_LFB_SRC_FMT_565_DEPTH 0x0c
|
|
||||||
#define GR_LFB_SRC_FMT_555_DEPTH 0x0d
|
|
||||||
#define GR_LFB_SRC_FMT_1555_DEPTH 0x0e
|
|
||||||
#define GR_LFB_SRC_FMT_ZA16 0x0f
|
|
||||||
#define GR_LFB_SRC_FMT_RLE16 0x80
|
|
||||||
|
|
||||||
#ifdef H3D
|
|
||||||
#define GR_HINT_H3DENABLE 4
|
|
||||||
#undef GR_HINTTYPE_MAX
|
|
||||||
#define GR_HINTTYPE_MAX 4
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
** FUNCTION PROTOTYPES
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
#ifndef FX_GLIDE_NO_FUNC_PROTO
|
|
||||||
/*
|
|
||||||
** rendering functions
|
|
||||||
*/
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDrawPoint( const void *pt );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDrawLine( const void *v1, const void *v2 );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDrawTriangle( const void *a, const void *b, const void *c );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grVertexLayout(FxU32 param, FxI32 offset, FxU32 mode);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDrawVertexArray(FxU32 mode, FxU32 Count, void *pointers);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDrawVertexArrayContiguous(FxU32 mode, FxU32 Count, void *pointers, FxU32 stride);
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Antialiasing Functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grAADrawTriangle(
|
|
||||||
const void *a, const void *b, const void *c,
|
|
||||||
FxBool ab_antialias, FxBool bc_antialias, FxBool ca_antialias
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
** buffer management
|
|
||||||
*/
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grBufferClear( GrColor_t color, GrAlpha_t alpha, FxU32 depth );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grBufferSwap( FxU32 swap_interval );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grRenderBuffer( GrBuffer_t buffer );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** error management
|
|
||||||
*/
|
|
||||||
typedef void (*GrErrorCallbackFnc_t)( const char *string, FxBool fatal );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grErrorSetCallback( GrErrorCallbackFnc_t fnc );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** SST routines
|
|
||||||
*/
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grFinish(void);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grFlush(void);
|
|
||||||
|
|
||||||
FX_ENTRY GrContext_t FX_CALL
|
|
||||||
grSstWinOpen(
|
|
||||||
FxU32 hWnd,
|
|
||||||
GrScreenResolution_t screen_resolution,
|
|
||||||
GrScreenRefresh_t refresh_rate,
|
|
||||||
GrColorFormat_t color_format,
|
|
||||||
GrOriginLocation_t origin_location,
|
|
||||||
int nColBuffers,
|
|
||||||
int nAuxBuffers);
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grSstWinClose( GrContext_t context );
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grSelectContext( GrContext_t context );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grSstOrigin(GrOriginLocation_t origin);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grSstSelect( int which_sst );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Glide configuration and special effect maintenance functions
|
|
||||||
*/
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grAlphaBlendFunction(
|
|
||||||
GrAlphaBlendFnc_t rgb_sf, GrAlphaBlendFnc_t rgb_df,
|
|
||||||
GrAlphaBlendFnc_t alpha_sf, GrAlphaBlendFnc_t alpha_df
|
|
||||||
);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grAlphaCombine(
|
|
||||||
GrCombineFunction_t function, GrCombineFactor_t factor,
|
|
||||||
GrCombineLocal_t local, GrCombineOther_t other,
|
|
||||||
FxBool invert
|
|
||||||
);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grAlphaControlsITRGBLighting( FxBool enable );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grAlphaTestFunction( GrCmpFnc_t function );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grAlphaTestReferenceValue( GrAlpha_t value );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grChromakeyMode( GrChromakeyMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grChromakeyValue( GrColor_t value );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grClipWindow( FxU32 minx, FxU32 miny, FxU32 maxx, FxU32 maxy );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grColorCombine(
|
|
||||||
GrCombineFunction_t function, GrCombineFactor_t factor,
|
|
||||||
GrCombineLocal_t local, GrCombineOther_t other,
|
|
||||||
FxBool invert );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grColorMask( FxBool rgb, FxBool a );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grCullMode( GrCullMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grConstantColorValue( GrColor_t value );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDepthBiasLevel( FxI32 level );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDepthBufferFunction( GrCmpFnc_t function );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDepthBufferMode( GrDepthBufferMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDepthMask( FxBool mask );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDisableAllEffects( void );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDitherMode( GrDitherMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grFogColorValue( GrColor_t fogcolor );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grFogMode( GrFogMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grFogTable( const GrFog_t ft[] );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grLoadGammaTable( FxU32 nentries, FxU32 *red, FxU32 *green, FxU32 *blue);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grSplash(float x, float y, float width, float height, FxU32 frame);
|
|
||||||
|
|
||||||
FX_ENTRY FxU32 FX_CALL
|
|
||||||
grGet( FxU32 pname, FxU32 plength, FxI32 *params );
|
|
||||||
|
|
||||||
FX_ENTRY const char * FX_CALL
|
|
||||||
grGetString( FxU32 pname );
|
|
||||||
|
|
||||||
FX_ENTRY FxI32 FX_CALL
|
|
||||||
grQueryResolutions( const GrResolution *resTemplate, GrResolution *output );
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grReset( FxU32 what );
|
|
||||||
|
|
||||||
FX_ENTRY GrProc FX_CALL
|
|
||||||
grGetProcAddress( char *procName );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grEnable( GrEnableMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDisable( GrEnableMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grCoordinateSpace( GrCoordinateSpaceMode_t mode );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grDepthRange( FxFloat n, FxFloat f );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grViewport( FxI32 x, FxI32 y, FxI32 width, FxI32 height );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** texture mapping control functions
|
|
||||||
*/
|
|
||||||
FX_ENTRY FxU32 FX_CALL
|
|
||||||
grTexCalcMemRequired(
|
|
||||||
GrLOD_t lodmin, GrLOD_t lodmax,
|
|
||||||
GrAspectRatio_t aspect, GrTextureFormat_t fmt);
|
|
||||||
|
|
||||||
FX_ENTRY FxU32 FX_CALL
|
|
||||||
grTexTextureMemRequired( FxU32 evenOdd,
|
|
||||||
GrTexInfo *info );
|
|
||||||
|
|
||||||
FX_ENTRY FxU32 FX_CALL
|
|
||||||
grTexMinAddress( GrChipID_t tmu );
|
|
||||||
|
|
||||||
FX_ENTRY FxU32 FX_CALL
|
|
||||||
grTexMaxAddress( GrChipID_t tmu );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexNCCTable( GrNCCTable_t table );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexSource( GrChipID_t tmu,
|
|
||||||
FxU32 startAddress,
|
|
||||||
FxU32 evenOdd,
|
|
||||||
GrTexInfo *info );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexClampMode(
|
|
||||||
GrChipID_t tmu,
|
|
||||||
GrTextureClampMode_t s_clampmode,
|
|
||||||
GrTextureClampMode_t t_clampmode
|
|
||||||
);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexCombine(
|
|
||||||
GrChipID_t tmu,
|
|
||||||
GrCombineFunction_t rgb_function,
|
|
||||||
GrCombineFactor_t rgb_factor,
|
|
||||||
GrCombineFunction_t alpha_function,
|
|
||||||
GrCombineFactor_t alpha_factor,
|
|
||||||
FxBool rgb_invert,
|
|
||||||
FxBool alpha_invert
|
|
||||||
);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexDetailControl(
|
|
||||||
GrChipID_t tmu,
|
|
||||||
int lod_bias,
|
|
||||||
FxU8 detail_scale,
|
|
||||||
float detail_max
|
|
||||||
);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexFilterMode(
|
|
||||||
GrChipID_t tmu,
|
|
||||||
GrTextureFilterMode_t minfilter_mode,
|
|
||||||
GrTextureFilterMode_t magfilter_mode
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexLodBiasValue(GrChipID_t tmu, float bias );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexDownloadMipMap( GrChipID_t tmu,
|
|
||||||
FxU32 startAddress,
|
|
||||||
FxU32 evenOdd,
|
|
||||||
GrTexInfo *info );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexDownloadMipMapLevel( GrChipID_t tmu,
|
|
||||||
FxU32 startAddress,
|
|
||||||
GrLOD_t thisLod,
|
|
||||||
GrLOD_t largeLod,
|
|
||||||
GrAspectRatio_t aspectRatio,
|
|
||||||
GrTextureFormat_t format,
|
|
||||||
FxU32 evenOdd,
|
|
||||||
void *data );
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grTexDownloadMipMapLevelPartial( GrChipID_t tmu,
|
|
||||||
FxU32 startAddress,
|
|
||||||
GrLOD_t thisLod,
|
|
||||||
GrLOD_t largeLod,
|
|
||||||
GrAspectRatio_t aspectRatio,
|
|
||||||
GrTextureFormat_t format,
|
|
||||||
FxU32 evenOdd,
|
|
||||||
void *data,
|
|
||||||
int start,
|
|
||||||
int end );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexDownloadTable( GrTexTable_t type,
|
|
||||||
void *data );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexDownloadTablePartial( GrTexTable_t type,
|
|
||||||
void *data,
|
|
||||||
int start,
|
|
||||||
int end );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexMipMapMode( GrChipID_t tmu,
|
|
||||||
GrMipMapMode_t mode,
|
|
||||||
FxBool lodBlend );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexMultibase( GrChipID_t tmu,
|
|
||||||
FxBool enable );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grTexMultibaseAddress( GrChipID_t tmu,
|
|
||||||
GrTexBaseRange_t range,
|
|
||||||
FxU32 startAddress,
|
|
||||||
FxU32 evenOdd,
|
|
||||||
GrTexInfo *info );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** linear frame buffer functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grLfbLock( GrLock_t type, GrBuffer_t buffer, GrLfbWriteMode_t writeMode,
|
|
||||||
GrOriginLocation_t origin, FxBool pixelPipeline,
|
|
||||||
GrLfbInfo_t *info );
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grLfbUnlock( GrLock_t type, GrBuffer_t buffer );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grLfbConstantAlpha( GrAlpha_t alpha );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grLfbConstantDepth( FxU32 depth );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grLfbWriteColorSwizzle(FxBool swizzleBytes, FxBool swapWords);
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grLfbWriteColorFormat(GrColorFormat_t colorFormat);
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grLfbWriteRegion( GrBuffer_t dst_buffer,
|
|
||||||
FxU32 dst_x, FxU32 dst_y,
|
|
||||||
GrLfbSrcFmt_t src_format,
|
|
||||||
FxU32 src_width, FxU32 src_height,
|
|
||||||
FxBool pixelPipeline,
|
|
||||||
FxI32 src_stride, void *src_data );
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
grLfbReadRegion( GrBuffer_t src_buffer,
|
|
||||||
FxU32 src_x, FxU32 src_y,
|
|
||||||
FxU32 src_width, FxU32 src_height,
|
|
||||||
FxU32 dst_stride, void *dst_data );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** glide management functions
|
|
||||||
*/
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grGlideInit( void );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grGlideShutdown( void );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grGlideGetState( void *state );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grGlideSetState( const void *state );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grGlideGetVertexLayout( void *layout );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
grGlideSetVertexLayout( const void *layout );
|
|
||||||
|
|
||||||
#endif /* FX_GLIDE_NO_FUNC_PROTO */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <glideutl.h>
|
|
||||||
|
|
||||||
#endif /* __GLIDE_H__ */
|
|
|
@ -1,146 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
n** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $Header: /devel/cvg/glide3/src/glidesys.h 3 7/24/98 1:41p Hohn $
|
|
||||||
** $Log: /devel/cvg/glide3/src/glidesys.h $
|
|
||||||
**
|
|
||||||
** 3 7/24/98 1:41p Hohn
|
|
||||||
**
|
|
||||||
** 2 6/15/98 10:50a Peter
|
|
||||||
** made csim compile time option
|
|
||||||
*
|
|
||||||
* 1 1/16/98 4:29p Atai
|
|
||||||
* create glide 3 src
|
|
||||||
*
|
|
||||||
* 10 12/09/97 12:20p Peter
|
|
||||||
* mac glide port
|
|
||||||
*
|
|
||||||
* 9 11/04/97 4:00p Dow
|
|
||||||
* Banshee Mods
|
|
||||||
*
|
|
||||||
* 8 8/18/97 3:52p Peter
|
|
||||||
* pre-hw arrival fixes/cleanup
|
|
||||||
*
|
|
||||||
* 7 6/02/97 4:09p Peter
|
|
||||||
* Compile w/ gcc for Dural
|
|
||||||
*
|
|
||||||
* 6 5/27/97 1:16p Peter
|
|
||||||
* Basic cvg, w/o cmd fifo stuff.
|
|
||||||
*
|
|
||||||
* 5 5/21/97 6:05a Peter
|
|
||||||
*/
|
|
||||||
#ifndef __GLIDESYS_H__
|
|
||||||
#define __GLIDESYS_H__
|
|
||||||
|
|
||||||
/*
|
|
||||||
n** -----------------------------------------------------------------------
|
|
||||||
** COMPILER/ENVIRONMENT CONFIGURATION
|
|
||||||
** -----------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Endianness is stored in bits [30:31] */
|
|
||||||
#define GLIDE_ENDIAN_SHIFT 30
|
|
||||||
#define GLIDE_ENDIAN_LITTLE (0x1 << GLIDE_ENDIAN_SHIFT)
|
|
||||||
#define GLIDE_ENDIAN_BIG (0x2 << GLIDE_ENDIAN_SHIFT)
|
|
||||||
|
|
||||||
/* OS is stored in bits [0:6] */
|
|
||||||
#define GLIDE_OS_SHIFT 0
|
|
||||||
#define GLIDE_OS_UNIX 0x1
|
|
||||||
#define GLIDE_OS_DOS32 0x2
|
|
||||||
#define GLIDE_OS_WIN32 0x4
|
|
||||||
#define GLIDE_OS_MACOS 0x8
|
|
||||||
#define GLIDE_OS_OS2 0x10
|
|
||||||
#define GLIDE_OS_OTHER 0x40 /* For Proprietary Arcade HW */
|
|
||||||
|
|
||||||
/* Sim vs. Hardware is stored in bits [7:8] */
|
|
||||||
#define GLIDE_SST_SHIFT 7
|
|
||||||
#define GLIDE_SST_SIM (0x1 << GLIDE_SST_SHIFT)
|
|
||||||
#define GLIDE_SST_HW (0x2 << GLIDE_SST_SHIFT)
|
|
||||||
|
|
||||||
/* Hardware Type is stored in bits [9:13] */
|
|
||||||
#define GLIDE_HW_SHIFT 9
|
|
||||||
#define GLIDE_HW_SST1 (0x1 << GLIDE_HW_SHIFT)
|
|
||||||
#define GLIDE_HW_SST96 (0x2 << GLIDE_HW_SHIFT)
|
|
||||||
#define GLIDE_HW_H3 (0x4 << GLIDE_HW_SHIFT)
|
|
||||||
#define GLIDE_HW_SST2 (0x8 << GLIDE_HW_SHIFT)
|
|
||||||
#define GLIDE_HW_CVG (0x10 << GLIDE_HW_SHIFT)
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Make sure we handle all instances of WIN32
|
|
||||||
*/
|
|
||||||
#ifndef __WIN32__
|
|
||||||
# if defined (_WIN32) || defined (WIN32) || defined(__NT__)
|
|
||||||
# define __WIN32__
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* We need two checks on the OS: one for endian, the other for OS */
|
|
||||||
/* Check for endianness */
|
|
||||||
#if defined(__IRIX__) || defined(__sparc__) || defined(MACOS)
|
|
||||||
# define GLIDE_ENDIAN GLIDE_ENDIAN_BIG
|
|
||||||
#else
|
|
||||||
# define GLIDE_ENDIAN GLIDE_ENDIAN_LITTLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Check for OS */
|
|
||||||
#if defined(__IRIX__) || defined(__sparc__) || defined(__linux__)
|
|
||||||
# define GLIDE_OS GLIDE_OS_UNIX
|
|
||||||
#elif defined(__DOS__)
|
|
||||||
# define GLIDE_OS GLIDE_OS_DOS32
|
|
||||||
#elif defined(__WIN32__)
|
|
||||||
# define GLIDE_OS GLIDE_OS_WIN32
|
|
||||||
#elif defined(macintosh)
|
|
||||||
# define GLIDE_OS GLIDE_OS_MACOS
|
|
||||||
#else
|
|
||||||
#error "Unknown OS"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Check for Simulator vs. Hardware */
|
|
||||||
#if HAL_CSIM || HWC_CSIM
|
|
||||||
# define GLIDE_SST GLIDE_SST_SIM
|
|
||||||
#else
|
|
||||||
# define GLIDE_SST GLIDE_SST_HW
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Check for type of hardware */
|
|
||||||
#ifdef SST96
|
|
||||||
# define GLIDE_HW GLIDE_HW_SST96
|
|
||||||
#elif defined(H3)
|
|
||||||
# define GLIDE_HW GLIDE_HW_H3
|
|
||||||
#elif defined(SST2)
|
|
||||||
# define GLIDE_HW GLIDE_HW_SST2
|
|
||||||
#elif defined(CVG)
|
|
||||||
# define GLIDE_HW GLIDE_HW_CVG
|
|
||||||
#else /* Default to SST1 */
|
|
||||||
# define GLIDE_HW GLIDE_HW_SST1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#define GLIDE_PLATFORM (GLIDE_ENDIAN | GLIDE_OS | GLIDE_SST | GLIDE_HW)
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Control the number of TMUs
|
|
||||||
*/
|
|
||||||
#ifndef GLIDE_NUM_TMU
|
|
||||||
# define GLIDE_NUM_TMU 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if ((GLIDE_NUM_TMU < 0) && (GLIDE_NUM_TMU > 3))
|
|
||||||
# error "GLIDE_NUM_TMU set to an invalid value"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __GLIDESYS_H__ */
|
|
|
@ -1,143 +0,0 @@
|
||||||
/*
|
|
||||||
** Copyright (c) 1995, 3Dfx Interactive, Inc.
|
|
||||||
** All Rights Reserved.
|
|
||||||
**
|
|
||||||
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of 3Dfx Interactive, Inc.;
|
|
||||||
** the contents of this file may not be disclosed to third parties, copied or
|
|
||||||
** duplicated in any form, in whole or in part, without the prior written
|
|
||||||
** permission of 3Dfx Interactive, Inc.
|
|
||||||
**
|
|
||||||
** RESTRICTED RIGHTS LEGEND:
|
|
||||||
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
||||||
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
||||||
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
||||||
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
||||||
** rights reserved under the Copyright Laws of the United States.
|
|
||||||
**
|
|
||||||
** $Header: /devel/cvg/glide3/src/glideutl.h 4 7/24/98 1:41p Hohn $
|
|
||||||
** $Log: /devel/cvg/glide3/src/glideutl.h $
|
|
||||||
**
|
|
||||||
** 4 7/24/98 1:41p Hohn
|
|
||||||
**
|
|
||||||
** 3 1/30/98 4:27p Atai
|
|
||||||
** gufog* prototype
|
|
||||||
**
|
|
||||||
** 1 1/29/98 4:00p Atai
|
|
||||||
*
|
|
||||||
* 1 1/16/98 4:29p Atai
|
|
||||||
* create glide 3 src
|
|
||||||
*
|
|
||||||
* 11 1/07/98 11:18a Atai
|
|
||||||
* remove GrMipMapInfo and GrGC.mm_table in glide3
|
|
||||||
*
|
|
||||||
* 10 1/06/98 6:47p Atai
|
|
||||||
* undo grSplash and remove gu routines
|
|
||||||
*
|
|
||||||
* 9 1/05/98 6:04p Atai
|
|
||||||
* move 3df gu related data structure from glide.h to glideutl.h
|
|
||||||
*
|
|
||||||
* 8 12/18/97 2:13p Peter
|
|
||||||
* fogTable cataclysm
|
|
||||||
*
|
|
||||||
* 7 12/15/97 5:52p Atai
|
|
||||||
* disable obsolete glide2 api for glide3
|
|
||||||
*
|
|
||||||
* 6 8/14/97 5:32p Pgj
|
|
||||||
* remove dead code per GMT
|
|
||||||
*
|
|
||||||
* 5 6/12/97 5:19p Pgj
|
|
||||||
* Fix bug 578
|
|
||||||
*
|
|
||||||
* 4 3/05/97 9:36p Jdt
|
|
||||||
* Removed guFbWriteRegion added guEncodeRLE16
|
|
||||||
*
|
|
||||||
* 3 1/16/97 3:45p Dow
|
|
||||||
* Embedded fn protos in ifndef FX_GLIDE_NO_FUNC_PROTO
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Glide Utility routines */
|
|
||||||
|
|
||||||
#ifndef __GLIDEUTL_H__
|
|
||||||
#define __GLIDEUTL_H__
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
** 3DF texture file structs
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
FxU32 width, height;
|
|
||||||
int small_lod, large_lod;
|
|
||||||
GrAspectRatio_t aspect_ratio;
|
|
||||||
GrTextureFormat_t format;
|
|
||||||
} Gu3dfHeader;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
FxU8 yRGB[16];
|
|
||||||
FxI16 iRGB[4][3];
|
|
||||||
FxI16 qRGB[4][3];
|
|
||||||
FxU32 packed_data[12];
|
|
||||||
} GuNccTable;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
FxU32 data[256];
|
|
||||||
} GuTexPalette;
|
|
||||||
|
|
||||||
typedef union {
|
|
||||||
GuNccTable nccTable;
|
|
||||||
GuTexPalette palette;
|
|
||||||
} GuTexTable;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
Gu3dfHeader header;
|
|
||||||
GuTexTable table;
|
|
||||||
void *data;
|
|
||||||
FxU32 mem_required; /* memory required for mip map in bytes. */
|
|
||||||
} Gu3dfInfo;
|
|
||||||
|
|
||||||
#ifndef FX_GLIDE_NO_FUNC_PROTO
|
|
||||||
/*
|
|
||||||
** Gamma functions
|
|
||||||
*/
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
guGammaCorrectionRGB( FxFloat red, FxFloat green, FxFloat blue );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** fog stuff
|
|
||||||
*/
|
|
||||||
FX_ENTRY float FX_CALL
|
|
||||||
guFogTableIndexToW( int i );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
guFogGenerateExp( GrFog_t *fogtable, float density );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
guFogGenerateExp2( GrFog_t *fogtable, float density );
|
|
||||||
|
|
||||||
FX_ENTRY void FX_CALL
|
|
||||||
guFogGenerateLinear(GrFog_t *fogtable,
|
|
||||||
float nearZ, float farZ );
|
|
||||||
|
|
||||||
/*
|
|
||||||
** hi-level texture manipulation tools.
|
|
||||||
*/
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
gu3dfGetInfo( const char *filename, Gu3dfInfo *info );
|
|
||||||
|
|
||||||
FX_ENTRY FxBool FX_CALL
|
|
||||||
gu3dfLoad( const char *filename, Gu3dfInfo *data );
|
|
||||||
|
|
||||||
#endif /* FX_GLIDE_NO_FUNC_PROTO */
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* __GLIDEUTL_H__ */
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -1,225 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: msvc/wx/setup.h
|
|
||||||
// Purpose: wrapper around the real wx/setup.h for Visual C++
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 2004-12-12
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _MSC_VER
|
|
||||||
#error "This file should only be included when using Microsoft Visual C++"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// VC++ IDE predefines _DEBUG and _UNICODE for the new projects itself, but
|
|
||||||
// the other symbols (WXUSINGDLL, __WXUNIVERSAL__, ...) should be defined
|
|
||||||
// explicitly!
|
|
||||||
|
|
||||||
#include "wx/version.h"
|
|
||||||
#include "wx/cpp.h"
|
|
||||||
|
|
||||||
// notice that wxSUFFIX_DEBUG is a string but wxSUFFIX itself must be an
|
|
||||||
// identifier as string concatenation is not done inside #include where we
|
|
||||||
// need it
|
|
||||||
#ifdef _DEBUG
|
|
||||||
#define wxSUFFIX_DEBUG "d"
|
|
||||||
#ifdef _UNICODE
|
|
||||||
#define wxSUFFIX ud
|
|
||||||
#else // !_UNICODE
|
|
||||||
#define wxSUFFIX d
|
|
||||||
#endif // _UNICODE/!_UNICODE
|
|
||||||
#else
|
|
||||||
#define wxSUFFIX_DEBUG ""
|
|
||||||
#ifdef _UNICODE
|
|
||||||
#define wxSUFFIX u
|
|
||||||
#else // !_UNICODE
|
|
||||||
// don't define wxSUFFIX at all as preprocessor operations don't work
|
|
||||||
// with empty values so we need to check for this case specially below
|
|
||||||
#endif // _UNICODE/!_UNICODE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// compiler-specific prefix: by default it's always just "vc" for compatibility
|
|
||||||
// reasons but if you use multiple MSVC versions you probably build them with
|
|
||||||
// COMPILER_PREFIX=vcXX and in this case you may want to either predefine
|
|
||||||
// wxMSVC_VERSION as "XX" or define wxMSVC_VERSION_AUTO to use the appropriate
|
|
||||||
// version depending on the compiler used
|
|
||||||
#ifdef wxMSVC_VERSION
|
|
||||||
#define wxCOMPILER_PREFIX wxCONCAT(vc, wxMSVC_VERSION)
|
|
||||||
#elif defined(wxMSVC_VERSION_AUTO)
|
|
||||||
#if _MSC_VER == 1200
|
|
||||||
#define wxCOMPILER_PREFIX vc60
|
|
||||||
#elif _MSC_VER == 1300
|
|
||||||
#define wxCOMPILER_PREFIX vc70
|
|
||||||
#elif _MSC_VER == 1310
|
|
||||||
#define wxCOMPILER_PREFIX vc71
|
|
||||||
#elif _MSC_VER == 1400
|
|
||||||
#define wxCOMPILER_PREFIX vc80
|
|
||||||
#elif _MSC_VER == 1500
|
|
||||||
#define wxCOMPILER_PREFIX vc90
|
|
||||||
#elif _MSC_VER == 1600
|
|
||||||
#define wxCOMPILER_PREFIX vc100
|
|
||||||
#elif _MSC_VER == 1700
|
|
||||||
#define wxCOMPILER_PREFIX vc110
|
|
||||||
#else
|
|
||||||
#error "Unknown MSVC compiler version, please report to wx-dev."
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define wxCOMPILER_PREFIX vc
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// architecture-specific part: not used (again, for compatibility), for x86
|
|
||||||
#if defined(_M_X64)
|
|
||||||
#define wxARCH_SUFFIX _x64
|
|
||||||
#elif defined(_M_IA64)
|
|
||||||
#define wxARCH_SUFFIX _ia64
|
|
||||||
#else // assume _M_IX86
|
|
||||||
#define wxARCH_SUFFIX
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WXUSINGDLL
|
|
||||||
#define wxLIB_SUBDIR wxCONCAT3(wxCOMPILER_PREFIX, wxARCH_SUFFIX, _dll)
|
|
||||||
#else // !DLL
|
|
||||||
#define wxLIB_SUBDIR wxCONCAT3(wxCOMPILER_PREFIX, wxARCH_SUFFIX, _lib)
|
|
||||||
#endif // DLL/!DLL
|
|
||||||
|
|
||||||
// The user can predefine a different prefix if not using the default MSW port
|
|
||||||
// with MSVC.
|
|
||||||
#ifndef wxTOOLKIT_PREFIX
|
|
||||||
#define wxTOOLKIT_PREFIX msw
|
|
||||||
#endif // wxTOOLKIT_PREFIX
|
|
||||||
|
|
||||||
// the real setup.h header file we need is in the build-specific directory,
|
|
||||||
// construct the path to it
|
|
||||||
#ifdef wxSUFFIX
|
|
||||||
#define wxSETUPH_PATH \
|
|
||||||
wxCONCAT6(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, wxSUFFIX, /wx/setup.h)
|
|
||||||
#else // suffix is empty
|
|
||||||
#define wxSETUPH_PATH \
|
|
||||||
wxCONCAT5(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, /wx/setup.h)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define wxSETUPH_PATH_STR wxSTRINGIZE(wxSETUPH_PATH)
|
|
||||||
|
|
||||||
#include wxSETUPH_PATH_STR
|
|
||||||
|
|
||||||
|
|
||||||
// the library names depend on the build, these macro builds the correct
|
|
||||||
// library name for the given base name
|
|
||||||
#ifdef wxSUFFIX
|
|
||||||
#define wxSUFFIX_STR wxSTRINGIZE(wxSUFFIX)
|
|
||||||
#else // suffix is empty
|
|
||||||
#define wxSUFFIX_STR ""
|
|
||||||
#endif
|
|
||||||
#define wxSHORT_VERSION_STRING \
|
|
||||||
wxSTRINGIZE(wxMAJOR_VERSION) wxSTRINGIZE(wxMINOR_VERSION)
|
|
||||||
|
|
||||||
#define wxWX_LIB_NAME(name, subname) \
|
|
||||||
"wx" name wxSHORT_VERSION_STRING wxSUFFIX_STR subname
|
|
||||||
|
|
||||||
#define wxBASE_LIB_NAME(name) wxWX_LIB_NAME("base", "_" name)
|
|
||||||
#define wxTOOLKIT_LIB_NAME(name) wxWX_LIB_NAME(wxSTRINGIZE(wxTOOLKIT_PREFIX), "_" name)
|
|
||||||
|
|
||||||
// This one is for 3rd party libraries: they don't have the version number
|
|
||||||
// in their names and usually exist in ANSI version only (except for regex)
|
|
||||||
//
|
|
||||||
// 3rd party libraries are also are not linked in when using DLLs as they're
|
|
||||||
// embedded inside our own DLLs and don't need to be linked with the user code.
|
|
||||||
#define wx3RD_PARTY_LIB_NAME(name) "wx" name wxSUFFIX_DEBUG
|
|
||||||
|
|
||||||
// special version for regex as it does have a Unicode version
|
|
||||||
#define wx3RD_PARTY_LIB_NAME_U(name) "wx" name wxSUFFIX_STR
|
|
||||||
|
|
||||||
#pragma comment(lib, wxWX_LIB_NAME("base", ""))
|
|
||||||
|
|
||||||
#ifndef wxNO_NET_LIB
|
|
||||||
#pragma comment(lib, wxBASE_LIB_NAME("net"))
|
|
||||||
#endif
|
|
||||||
#ifndef wxNO_XML_LIB
|
|
||||||
#pragma comment(lib, wxBASE_LIB_NAME("xml"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_REGEX && !defined(wxNO_REGEX_LIB) && !defined(WXUSINGDLL)
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME_U("regex"))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_GUI
|
|
||||||
#if wxUSE_XML && !defined(wxNO_EXPAT_LIB) && !defined(WXUSINGDLL)
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("expat"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_LIBJPEG && !defined(wxNO_JPEG_LIB) && !defined(WXUSINGDLL)
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("jpeg"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_LIBPNG && !defined(wxNO_PNG_LIB) && !defined(WXUSINGDLL)
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("png"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_LIBTIFF && !defined(wxNO_TIFF_LIB) && !defined(WXUSINGDLL)
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("tiff"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_ZLIB && !defined(wxNO_ZLIB_LIB) && !defined(WXUSINGDLL)
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("zlib"))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("core"))
|
|
||||||
|
|
||||||
#ifndef wxNO_ADV_LIB
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("adv"))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef wxNO_HTML_LIB
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("html"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_GLCANVAS && !defined(wxNO_GL_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("gl"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_DEBUGREPORT && !defined(wxNO_QA_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("qa"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_XRC && !defined(wxNO_XRC_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("xrc"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_AUI && !defined(wxNO_AUI_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("aui"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_PROPGRID && !defined(wxNO_PROPGRID_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("propgrid"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_RIBBON && !defined(wxNO_RIBBON_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("ribbon"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_RICHTEXT && !defined(wxNO_RICHTEXT_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("richtext"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_MEDIACTRL && !defined(wxNO_MEDIA_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("media"))
|
|
||||||
#endif
|
|
||||||
#if wxUSE_STC && !defined(wxNO_STC_LIB)
|
|
||||||
#pragma comment(lib, wxTOOLKIT_LIB_NAME("stc"))
|
|
||||||
#ifndef WXUSINGDLL
|
|
||||||
#pragma comment(lib, wx3RD_PARTY_LIB_NAME("scintilla"))
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif // wxUSE_GUI
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef WXUSINGDLL
|
|
||||||
// Make sure all required system libraries are added to the linker too when
|
|
||||||
// using static libraries.
|
|
||||||
#pragma comment(lib, "kernel32")
|
|
||||||
#pragma comment(lib, "user32")
|
|
||||||
#pragma comment(lib, "gdi32")
|
|
||||||
#pragma comment(lib, "comdlg32")
|
|
||||||
#pragma comment(lib, "winspool")
|
|
||||||
#pragma comment(lib, "winmm")
|
|
||||||
#pragma comment(lib, "shell32")
|
|
||||||
#pragma comment(lib, "comctl32")
|
|
||||||
#pragma comment(lib, "ole32")
|
|
||||||
#pragma comment(lib, "oleaut32")
|
|
||||||
#pragma comment(lib, "uuid")
|
|
||||||
#pragma comment(lib, "rpcrt4")
|
|
||||||
#pragma comment(lib, "advapi32")
|
|
||||||
#pragma comment(lib, "wsock32")
|
|
||||||
#if wxUSE_URL_NATIVE
|
|
||||||
#pragma comment(lib, "wininet")
|
|
||||||
#endif
|
|
||||||
#endif // !WXUSINGDLL
|
|
|
@ -1,179 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/accel.h
|
|
||||||
// Purpose: wxAcceleratorEntry and wxAcceleratorTable classes
|
|
||||||
// Author: Julian Smart, Robert Roebling, Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 31.05.01 (extracted from other files)
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ACCEL_H_BASE_
|
|
||||||
#define _WX_ACCEL_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_ACCEL
|
|
||||||
|
|
||||||
#include "wx/object.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxAcceleratorTable;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxMenuItem;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxKeyEvent;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// constants
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// wxAcceleratorEntry flags
|
|
||||||
enum wxAcceleratorEntryFlags
|
|
||||||
{
|
|
||||||
wxACCEL_NORMAL = 0x0000, // no modifiers
|
|
||||||
wxACCEL_ALT = 0x0001, // hold Alt key down
|
|
||||||
wxACCEL_CTRL = 0x0002, // hold Ctrl key down
|
|
||||||
wxACCEL_SHIFT = 0x0004, // hold Shift key down
|
|
||||||
#if defined(__WXMAC__) || defined(__WXCOCOA__)
|
|
||||||
wxACCEL_RAW_CTRL= 0x0008, //
|
|
||||||
#else
|
|
||||||
wxACCEL_RAW_CTRL= wxACCEL_CTRL,
|
|
||||||
#endif
|
|
||||||
wxACCEL_CMD = wxACCEL_CTRL
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// an entry in wxAcceleratorTable corresponds to one accelerator
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxAcceleratorEntry
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0,
|
|
||||||
wxMenuItem *item = NULL)
|
|
||||||
: m_flags(flags)
|
|
||||||
, m_keyCode(keyCode)
|
|
||||||
, m_command(cmd)
|
|
||||||
, m_item(item)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
wxAcceleratorEntry(const wxAcceleratorEntry& entry)
|
|
||||||
: m_flags(entry.m_flags)
|
|
||||||
, m_keyCode(entry.m_keyCode)
|
|
||||||
, m_command(entry.m_command)
|
|
||||||
, m_item(entry.m_item)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
// create accelerator corresponding to the specified string, return NULL if
|
|
||||||
// string couldn't be parsed or a pointer to be deleted by the caller
|
|
||||||
static wxAcceleratorEntry *Create(const wxString& str);
|
|
||||||
|
|
||||||
wxAcceleratorEntry& operator=(const wxAcceleratorEntry& entry)
|
|
||||||
{
|
|
||||||
if (&entry != this)
|
|
||||||
Set(entry.m_flags, entry.m_keyCode, entry.m_command, entry.m_item);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Set(int flags, int keyCode, int cmd, wxMenuItem *item = NULL)
|
|
||||||
{
|
|
||||||
m_flags = flags;
|
|
||||||
m_keyCode = keyCode;
|
|
||||||
m_command = cmd;
|
|
||||||
m_item = item;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetMenuItem(wxMenuItem *item) { m_item = item; }
|
|
||||||
|
|
||||||
int GetFlags() const { return m_flags; }
|
|
||||||
int GetKeyCode() const { return m_keyCode; }
|
|
||||||
int GetCommand() const { return m_command; }
|
|
||||||
|
|
||||||
wxMenuItem *GetMenuItem() const { return m_item; }
|
|
||||||
|
|
||||||
bool operator==(const wxAcceleratorEntry& entry) const
|
|
||||||
{
|
|
||||||
return m_flags == entry.m_flags &&
|
|
||||||
m_keyCode == entry.m_keyCode &&
|
|
||||||
m_command == entry.m_command &&
|
|
||||||
m_item == entry.m_item;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!=(const wxAcceleratorEntry& entry) const
|
|
||||||
{ return !(*this == entry); }
|
|
||||||
|
|
||||||
#if defined(__WXMOTIF__)
|
|
||||||
// Implementation use only
|
|
||||||
bool MatchesEvent(const wxKeyEvent& event) const;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool IsOk() const
|
|
||||||
{
|
|
||||||
return m_keyCode != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// string <-> wxAcceleratorEntry conversion
|
|
||||||
// ----------------------------------------
|
|
||||||
|
|
||||||
// returns a wxString for the this accelerator.
|
|
||||||
// this function formats it using the <flags>-<keycode> format
|
|
||||||
// where <flags> maybe a hyphen-separated list of "shift|alt|ctrl"
|
|
||||||
wxString ToString() const { return AsPossiblyLocalizedString(true); }
|
|
||||||
|
|
||||||
// same as above but without translating, useful if the string is meant to
|
|
||||||
// be stored in a file or otherwise stored, instead of being shown to the
|
|
||||||
// user
|
|
||||||
wxString ToRawString() const { return AsPossiblyLocalizedString(false); }
|
|
||||||
|
|
||||||
// returns true if the given string correctly initialized this object
|
|
||||||
// (i.e. if IsOk() returns true after this call)
|
|
||||||
bool FromString(const wxString& str);
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxString AsPossiblyLocalizedString(bool localized) const;
|
|
||||||
|
|
||||||
// common part of Create() and FromString()
|
|
||||||
static bool ParseAccel(const wxString& str, int *flags, int *keycode);
|
|
||||||
|
|
||||||
|
|
||||||
int m_flags; // combination of wxACCEL_XXX constants
|
|
||||||
int m_keyCode; // ASCII or virtual keycode
|
|
||||||
int m_command; // Command id to generate
|
|
||||||
|
|
||||||
// the menu item this entry corresponds to, may be NULL
|
|
||||||
wxMenuItem *m_item;
|
|
||||||
|
|
||||||
// for compatibility with old code, use accessors now!
|
|
||||||
friend class WXDLLIMPEXP_FWD_CORE wxMenu;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include wxAcceleratorTable class declaration, it is only used by the library
|
|
||||||
// and so doesn't have any published user visible interface
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/generic/accel.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/accel.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/accel.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/accel.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/accel.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/accel.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/generic/accel.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/accel.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxAcceleratorTable) wxNullAcceleratorTable;
|
|
||||||
|
|
||||||
#endif // wxUSE_ACCEL
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_ACCEL_H_BASE_
|
|
|
@ -1,51 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/affinematrix2d.h
|
|
||||||
// Purpose: wxAffineMatrix2D class.
|
|
||||||
// Author: Based on wxTransformMatrix by Chris Breeze, Julian Smart
|
|
||||||
// Created: 2011-04-05
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_AFFINEMATRIX2D_H_
|
|
||||||
#define _WX_AFFINEMATRIX2D_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_GEOMETRY
|
|
||||||
|
|
||||||
#include "wx/affinematrix2dbase.h"
|
|
||||||
|
|
||||||
// A simple implementation of wxAffineMatrix2DBase interface done entirely in
|
|
||||||
// wxWidgets.
|
|
||||||
class WXDLLIMPEXP_CORE wxAffineMatrix2D : public wxAffineMatrix2DBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAffineMatrix2D() : m_11(1), m_12(0),
|
|
||||||
m_21(0), m_22(1),
|
|
||||||
m_tx(0), m_ty(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implement base class pure virtual methods.
|
|
||||||
virtual void Set(const wxMatrix2D& mat2D, const wxPoint2DDouble& tr);
|
|
||||||
virtual void Get(wxMatrix2D* mat2D, wxPoint2DDouble* tr) const;
|
|
||||||
virtual void Concat(const wxAffineMatrix2DBase& t);
|
|
||||||
virtual bool Invert();
|
|
||||||
virtual bool IsIdentity() const;
|
|
||||||
virtual bool IsEqual(const wxAffineMatrix2DBase& t) const;
|
|
||||||
virtual void Translate(wxDouble dx, wxDouble dy);
|
|
||||||
virtual void Scale(wxDouble xScale, wxDouble yScale);
|
|
||||||
virtual void Rotate(wxDouble cRadians);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual wxPoint2DDouble DoTransformPoint(const wxPoint2DDouble& p) const;
|
|
||||||
virtual wxPoint2DDouble DoTransformDistance(const wxPoint2DDouble& p) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxDouble m_11, m_12, m_21, m_22, m_tx, m_ty;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_GEOMETRY
|
|
||||||
|
|
||||||
#endif // _WX_AFFINEMATRIX2D_H_
|
|
|
@ -1,127 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/affinematrix2dbase.h
|
|
||||||
// Purpose: Common interface for 2D transformation matrices.
|
|
||||||
// Author: Catalin Raceanu
|
|
||||||
// Created: 2011-04-06
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_AFFINEMATRIX2DBASE_H_
|
|
||||||
#define _WX_AFFINEMATRIX2DBASE_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_GEOMETRY
|
|
||||||
|
|
||||||
#include "wx/geometry.h"
|
|
||||||
|
|
||||||
struct wxMatrix2D
|
|
||||||
{
|
|
||||||
wxMatrix2D(wxDouble v11 = 1,
|
|
||||||
wxDouble v12 = 0,
|
|
||||||
wxDouble v21 = 0,
|
|
||||||
wxDouble v22 = 1)
|
|
||||||
{
|
|
||||||
m_11 = v11; m_12 = v12;
|
|
||||||
m_21 = v21; m_22 = v22;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxDouble m_11, m_12, m_21, m_22;
|
|
||||||
};
|
|
||||||
|
|
||||||
// A 2x3 matrix representing an affine 2D transformation.
|
|
||||||
//
|
|
||||||
// This is an abstract base class implemented by wxAffineMatrix2D only so far,
|
|
||||||
// but in the future we also plan to derive wxGraphicsMatrix from it (it should
|
|
||||||
// also be documented then as currently only wxAffineMatrix2D itself is).
|
|
||||||
class WXDLLIMPEXP_CORE wxAffineMatrix2DBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAffineMatrix2DBase() {}
|
|
||||||
virtual ~wxAffineMatrix2DBase() {}
|
|
||||||
|
|
||||||
// sets the matrix to the respective values
|
|
||||||
virtual void Set(const wxMatrix2D& mat2D, const wxPoint2DDouble& tr) = 0;
|
|
||||||
|
|
||||||
// gets the component valuess of the matrix
|
|
||||||
virtual void Get(wxMatrix2D* mat2D, wxPoint2DDouble* tr) const = 0;
|
|
||||||
|
|
||||||
// concatenates the matrix
|
|
||||||
virtual void Concat(const wxAffineMatrix2DBase& t) = 0;
|
|
||||||
|
|
||||||
// makes this the inverse matrix
|
|
||||||
virtual bool Invert() = 0;
|
|
||||||
|
|
||||||
// return true if this is the identity matrix
|
|
||||||
virtual bool IsIdentity() const = 0;
|
|
||||||
|
|
||||||
// returns true if the elements of the transformation matrix are equal ?
|
|
||||||
virtual bool IsEqual(const wxAffineMatrix2DBase& t) const = 0;
|
|
||||||
bool operator==(const wxAffineMatrix2DBase& t) const { return IsEqual(t); }
|
|
||||||
bool operator!=(const wxAffineMatrix2DBase& t) const { return !IsEqual(t); }
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// transformations
|
|
||||||
//
|
|
||||||
|
|
||||||
// add the translation to this matrix
|
|
||||||
virtual void Translate(wxDouble dx, wxDouble dy) = 0;
|
|
||||||
|
|
||||||
// add the scale to this matrix
|
|
||||||
virtual void Scale(wxDouble xScale, wxDouble yScale) = 0;
|
|
||||||
|
|
||||||
// add the rotation to this matrix (counter clockwise, radians)
|
|
||||||
virtual void Rotate(wxDouble ccRadians) = 0;
|
|
||||||
|
|
||||||
// add mirroring to this matrix
|
|
||||||
void Mirror(int direction = wxHORIZONTAL)
|
|
||||||
{
|
|
||||||
wxDouble x = (direction & wxHORIZONTAL) ? -1 : 1;
|
|
||||||
wxDouble y = (direction & wxVERTICAL) ? -1 : 1;
|
|
||||||
Scale(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// applies that matrix to the point
|
|
||||||
wxPoint2DDouble TransformPoint(const wxPoint2DDouble& src) const
|
|
||||||
{
|
|
||||||
return DoTransformPoint(src);
|
|
||||||
}
|
|
||||||
|
|
||||||
void TransformPoint(wxDouble* x, wxDouble* y) const
|
|
||||||
{
|
|
||||||
wxCHECK_RET( x && y, "Can't be NULL" );
|
|
||||||
|
|
||||||
const wxPoint2DDouble dst = DoTransformPoint(wxPoint2DDouble(*x, *y));
|
|
||||||
*x = dst.m_x;
|
|
||||||
*y = dst.m_y;
|
|
||||||
}
|
|
||||||
|
|
||||||
// applies the matrix except for translations
|
|
||||||
wxPoint2DDouble TransformDistance(const wxPoint2DDouble& src) const
|
|
||||||
{
|
|
||||||
return DoTransformDistance(src);
|
|
||||||
}
|
|
||||||
|
|
||||||
void TransformDistance(wxDouble* dx, wxDouble* dy) const
|
|
||||||
{
|
|
||||||
wxCHECK_RET( dx && dy, "Can't be NULL" );
|
|
||||||
|
|
||||||
const wxPoint2DDouble
|
|
||||||
dst = DoTransformDistance(wxPoint2DDouble(*dx, *dy));
|
|
||||||
*dx = dst.m_x;
|
|
||||||
*dy = dst.m_y;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual
|
|
||||||
wxPoint2DDouble DoTransformPoint(const wxPoint2DDouble& p) const = 0;
|
|
||||||
virtual
|
|
||||||
wxPoint2DDouble DoTransformDistance(const wxPoint2DDouble& p) const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_GEOMETRY
|
|
||||||
|
|
||||||
#endif // _WX_AFFINEMATRIX2DBASE_H_
|
|
|
@ -1,45 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/afterstd.h
|
|
||||||
// Purpose: #include after STL headers
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 07/07/03
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2003 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/**
|
|
||||||
See the comments in beforestd.h.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__WINDOWS__)
|
|
||||||
#include "wx/msw/winundef.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// undo what we did in wx/beforestd.h
|
|
||||||
#if defined(__VISUALC__) && __VISUALC__ <= 1201
|
|
||||||
// MSVC 5 does not have this
|
|
||||||
#if _MSC_VER > 1100
|
|
||||||
#pragma warning(pop)
|
|
||||||
#else
|
|
||||||
// 'expression' : signed/unsigned mismatch
|
|
||||||
#pragma warning(default:4018)
|
|
||||||
|
|
||||||
// 'identifier' : unreferenced formal parameter
|
|
||||||
#pragma warning(default:4100)
|
|
||||||
|
|
||||||
// 'conversion' : conversion from 'type1' to 'type2',
|
|
||||||
// possible loss of data
|
|
||||||
#pragma warning(default:4244)
|
|
||||||
|
|
||||||
// C++ language change: to explicitly specialize class template
|
|
||||||
// 'identifier' use the following syntax
|
|
||||||
#pragma warning(default:4663)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// see beforestd.h for explanation
|
|
||||||
#if defined(HAVE_VISIBILITY) && defined(HAVE_BROKEN_LIBSTDCXX_VISIBILITY)
|
|
||||||
#pragma GCC visibility pop
|
|
||||||
#endif
|
|
|
@ -1,171 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/animdecod.h
|
|
||||||
// Purpose: wxAnimationDecoder
|
|
||||||
// Author: Francesco Montorsi
|
|
||||||
// CVS-ID: $Id$
|
|
||||||
// Copyright: (c) 2006 Francesco Montorsi
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ANIMDECOD_H
|
|
||||||
#define _WX_ANIMDECOD_H
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_STREAMS
|
|
||||||
|
|
||||||
#include "wx/colour.h"
|
|
||||||
#include "wx/gdicmn.h"
|
|
||||||
#include "wx/log.h"
|
|
||||||
#include "wx/stream.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxImage;
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Differences between a wxAnimationDecoder and a wxImageHandler:
|
|
||||||
|
|
||||||
1) wxImageHandlers always load an input stream directly into a given wxImage
|
|
||||||
object converting from the format-specific data representation to the
|
|
||||||
wxImage native format (RGB24).
|
|
||||||
wxAnimationDecoders always load an input stream using some optimized format
|
|
||||||
to store it which is format-depedent. This allows to store a (possibly big)
|
|
||||||
animation using a format which is a good compromise between required memory
|
|
||||||
and time required to blit it on the screen.
|
|
||||||
|
|
||||||
2) wxAnimationDecoders contain the animation data in some internal variable.
|
|
||||||
That's why they derive from wxObjectRefData: they are data which can be shared.
|
|
||||||
|
|
||||||
3) wxAnimationDecoders can be used by a wxImageHandler to retrieve a frame
|
|
||||||
in wxImage format; the viceversa cannot be done.
|
|
||||||
|
|
||||||
4) wxAnimationDecoders are decoders only, thus they do not support save features.
|
|
||||||
|
|
||||||
5) wxAnimationDecoders are directly used by wxAnimation (generic implementation)
|
|
||||||
as wxObjectRefData while they need to be 'wrapped' by a wxImageHandler for
|
|
||||||
wxImage uses.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
// Constants
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// NB: the values of these enum items are not casual but coincide with the
|
|
||||||
// GIF disposal codes. Do not change them !!
|
|
||||||
enum wxAnimationDisposal
|
|
||||||
{
|
|
||||||
// No disposal specified. The decoder is not required to take any action.
|
|
||||||
wxANIM_UNSPECIFIED = -1,
|
|
||||||
|
|
||||||
// Do not dispose. The graphic is to be left in place.
|
|
||||||
wxANIM_DONOTREMOVE = 0,
|
|
||||||
|
|
||||||
// Restore to background color. The area used by the graphic must be
|
|
||||||
// restored to the background color.
|
|
||||||
wxANIM_TOBACKGROUND = 1,
|
|
||||||
|
|
||||||
// Restore to previous. The decoder is required to restore the area
|
|
||||||
// overwritten by the graphic with what was there prior to rendering the graphic.
|
|
||||||
wxANIM_TOPREVIOUS = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
enum wxAnimationType
|
|
||||||
{
|
|
||||||
wxANIMATION_TYPE_INVALID,
|
|
||||||
wxANIMATION_TYPE_GIF,
|
|
||||||
wxANIMATION_TYPE_ANI,
|
|
||||||
|
|
||||||
wxANIMATION_TYPE_ANY
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
// wxAnimationDecoder class
|
|
||||||
// --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxAnimationDecoder : public wxObjectRefData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAnimationDecoder()
|
|
||||||
{
|
|
||||||
m_nFrames = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool Load( wxInputStream& stream ) = 0;
|
|
||||||
|
|
||||||
bool CanRead( wxInputStream& stream ) const
|
|
||||||
{
|
|
||||||
// NOTE: this code is the same of wxImageHandler::CallDoCanRead
|
|
||||||
|
|
||||||
if ( !stream.IsSeekable() )
|
|
||||||
return false; // can't test unseekable stream
|
|
||||||
|
|
||||||
wxFileOffset posOld = stream.TellI();
|
|
||||||
bool ok = DoCanRead(stream);
|
|
||||||
|
|
||||||
// restore the old position to be able to test other formats and so on
|
|
||||||
if ( stream.SeekI(posOld) == wxInvalidOffset )
|
|
||||||
{
|
|
||||||
wxLogDebug(wxT("Failed to rewind the stream in wxAnimationDecoder!"));
|
|
||||||
|
|
||||||
// reading would fail anyhow as we're not at the right position
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ok;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual wxAnimationDecoder *Clone() const = 0;
|
|
||||||
virtual wxAnimationType GetType() const = 0;
|
|
||||||
|
|
||||||
// convert given frame to wxImage
|
|
||||||
virtual bool ConvertToImage(unsigned int frame, wxImage *image) const = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// frame specific data getters
|
|
||||||
|
|
||||||
// not all frames may be of the same size; e.g. GIF allows to
|
|
||||||
// specify that between two frames only a smaller portion of the
|
|
||||||
// entire animation has changed.
|
|
||||||
virtual wxSize GetFrameSize(unsigned int frame) const = 0;
|
|
||||||
|
|
||||||
// the position of this frame in case it's not as big as m_szAnimation
|
|
||||||
// or wxPoint(0,0) otherwise.
|
|
||||||
virtual wxPoint GetFramePosition(unsigned int frame) const = 0;
|
|
||||||
|
|
||||||
// what should be done after displaying this frame.
|
|
||||||
virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const = 0;
|
|
||||||
|
|
||||||
// the number of milliseconds this frame should be displayed.
|
|
||||||
// if returns -1 then the frame must be displayed forever.
|
|
||||||
virtual long GetDelay(unsigned int frame) const = 0;
|
|
||||||
|
|
||||||
// the transparent colour for this frame if any or wxNullColour.
|
|
||||||
virtual wxColour GetTransparentColour(unsigned int frame) const = 0;
|
|
||||||
|
|
||||||
// get global data
|
|
||||||
wxSize GetAnimationSize() const { return m_szAnimation; }
|
|
||||||
wxColour GetBackgroundColour() const { return m_background; }
|
|
||||||
unsigned int GetFrameCount() const { return m_nFrames; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// checks the signature of the data in the given stream and returns true if it
|
|
||||||
// appears to be a valid animation format recognized by the animation decoder;
|
|
||||||
// this function should modify the stream current position without taking care
|
|
||||||
// of restoring it since CanRead() will do it.
|
|
||||||
virtual bool DoCanRead(wxInputStream& stream) const = 0;
|
|
||||||
|
|
||||||
wxSize m_szAnimation;
|
|
||||||
unsigned int m_nFrames;
|
|
||||||
|
|
||||||
// this is the colour to use for the wxANIM_TOBACKGROUND disposal.
|
|
||||||
// if not specified by the animation, it's set to wxNullColour
|
|
||||||
wxColour m_background;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_STREAMS
|
|
||||||
|
|
||||||
#endif // _WX_ANIMDECOD_H
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,200 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/anybutton.h
|
|
||||||
// Purpose: wxAnyButtonBase class
|
|
||||||
// Author: Vadim Zetlin
|
|
||||||
// Created: 2000-08-15 (extracted from button.h)
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Vadim Zetlin
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ANYBUTTON_H_BASE_
|
|
||||||
#define _WX_ANYBUTTON_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#ifdef wxHAS_ANY_BUTTON
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAnyButton specific flags
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// These flags affect label alignment
|
|
||||||
#define wxBU_LEFT 0x0040
|
|
||||||
#define wxBU_TOP 0x0080
|
|
||||||
#define wxBU_RIGHT 0x0100
|
|
||||||
#define wxBU_BOTTOM 0x0200
|
|
||||||
#define wxBU_ALIGN_MASK ( wxBU_LEFT | wxBU_TOP | wxBU_RIGHT | wxBU_BOTTOM )
|
|
||||||
|
|
||||||
// These two flags are obsolete
|
|
||||||
#define wxBU_NOAUTODRAW 0x0000
|
|
||||||
#define wxBU_AUTODRAW 0x0004
|
|
||||||
|
|
||||||
// by default, the buttons will be created with some (system dependent)
|
|
||||||
// minimal size to make them look nicer, giving this style will make them as
|
|
||||||
// small as possible
|
|
||||||
#define wxBU_EXACTFIT 0x0001
|
|
||||||
|
|
||||||
// this flag can be used to disable using the text label in the button: it is
|
|
||||||
// mostly useful when creating buttons showing bitmap and having stock id as
|
|
||||||
// without it both the standard label corresponding to the stock id and the
|
|
||||||
// bitmap would be shown
|
|
||||||
#define wxBU_NOTEXT 0x0002
|
|
||||||
|
|
||||||
|
|
||||||
#include "wx/bitmap.h"
|
|
||||||
#include "wx/control.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAnyButton: common button functionality
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxAnyButtonBase : public wxControl
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAnyButtonBase() { }
|
|
||||||
|
|
||||||
// show the image in the button in addition to the label: this method is
|
|
||||||
// supported on all (major) platforms
|
|
||||||
void SetBitmap(const wxBitmap& bitmap, wxDirection dir = wxLEFT)
|
|
||||||
{
|
|
||||||
SetBitmapLabel(bitmap);
|
|
||||||
SetBitmapPosition(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxBitmap GetBitmap() const { return DoGetBitmap(State_Normal); }
|
|
||||||
|
|
||||||
// Methods for setting individual images for different states: normal,
|
|
||||||
// selected (meaning pushed or pressed), focused (meaning normal state for
|
|
||||||
// a focused button), disabled or hover (a.k.a. hot or current).
|
|
||||||
//
|
|
||||||
// Remember that SetBitmap() itself must be called before any other
|
|
||||||
// SetBitmapXXX() methods (except for SetBitmapLabel() which is a synonym
|
|
||||||
// for it anyhow) and that all bitmaps passed to these functions should be
|
|
||||||
// of the same size.
|
|
||||||
void SetBitmapLabel(const wxBitmap& bitmap)
|
|
||||||
{ DoSetBitmap(bitmap, State_Normal); }
|
|
||||||
void SetBitmapPressed(const wxBitmap& bitmap)
|
|
||||||
{ DoSetBitmap(bitmap, State_Pressed); }
|
|
||||||
void SetBitmapDisabled(const wxBitmap& bitmap)
|
|
||||||
{ DoSetBitmap(bitmap, State_Disabled); }
|
|
||||||
void SetBitmapCurrent(const wxBitmap& bitmap)
|
|
||||||
{ DoSetBitmap(bitmap, State_Current); }
|
|
||||||
void SetBitmapFocus(const wxBitmap& bitmap)
|
|
||||||
{ DoSetBitmap(bitmap, State_Focused); }
|
|
||||||
|
|
||||||
wxBitmap GetBitmapLabel() const { return DoGetBitmap(State_Normal); }
|
|
||||||
wxBitmap GetBitmapPressed() const { return DoGetBitmap(State_Pressed); }
|
|
||||||
wxBitmap GetBitmapDisabled() const { return DoGetBitmap(State_Disabled); }
|
|
||||||
wxBitmap GetBitmapCurrent() const { return DoGetBitmap(State_Current); }
|
|
||||||
wxBitmap GetBitmapFocus() const { return DoGetBitmap(State_Focused); }
|
|
||||||
|
|
||||||
|
|
||||||
// set the margins around the image
|
|
||||||
void SetBitmapMargins(wxCoord x, wxCoord y) { DoSetBitmapMargins(x, y); }
|
|
||||||
void SetBitmapMargins(const wxSize& sz) { DoSetBitmapMargins(sz.x, sz.y); }
|
|
||||||
wxSize GetBitmapMargins() { return DoGetBitmapMargins(); }
|
|
||||||
|
|
||||||
// set the image position relative to the text, i.e. wxLEFT means that the
|
|
||||||
// image is to the left of the text (this is the default)
|
|
||||||
void SetBitmapPosition(wxDirection dir);
|
|
||||||
|
|
||||||
|
|
||||||
// Buttons on MSW can look bad if they are not native colours, because
|
|
||||||
// then they become owner-drawn and not theme-drawn. Disable it here
|
|
||||||
// in wxAnyButtonBase to make it consistent.
|
|
||||||
virtual bool ShouldInheritColours() const { return false; }
|
|
||||||
|
|
||||||
// wxUniv-compatible and deprecated equivalents to SetBitmapXXX()
|
|
||||||
#if WXWIN_COMPATIBILITY_2_8
|
|
||||||
void SetImageLabel(const wxBitmap& bitmap) { SetBitmap(bitmap); }
|
|
||||||
void SetImageMargins(wxCoord x, wxCoord y) { SetBitmapMargins(x, y); }
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_8
|
|
||||||
|
|
||||||
// backwards compatible names for pressed/current bitmaps: they're not
|
|
||||||
// deprecated as there is nothing really wrong with using them and no real
|
|
||||||
// advantage to using the new names but the new names are still preferred
|
|
||||||
wxBitmap GetBitmapSelected() const { return GetBitmapPressed(); }
|
|
||||||
wxBitmap GetBitmapHover() const { return GetBitmapCurrent(); }
|
|
||||||
|
|
||||||
void SetBitmapSelected(const wxBitmap& bitmap) { SetBitmapPressed(bitmap); }
|
|
||||||
void SetBitmapHover(const wxBitmap& bitmap) { SetBitmapCurrent(bitmap); }
|
|
||||||
|
|
||||||
|
|
||||||
// this enum is not part of wx public API, it is public because it is used
|
|
||||||
// in non wxAnyButton-derived classes internally
|
|
||||||
//
|
|
||||||
// also notice that MSW code relies on the values of the enum elements, do
|
|
||||||
// not change them without revising src/msw/button.cpp
|
|
||||||
enum State
|
|
||||||
{
|
|
||||||
State_Normal,
|
|
||||||
State_Current, // a.k.a. hot or "hovering"
|
|
||||||
State_Pressed, // a.k.a. "selected" in public API for some reason
|
|
||||||
State_Disabled,
|
|
||||||
State_Focused,
|
|
||||||
State_Max
|
|
||||||
};
|
|
||||||
|
|
||||||
// return true if this button shouldn't show the text label, either because
|
|
||||||
// it doesn't have it or because it was explicitly disabled with wxBU_NOTEXT
|
|
||||||
bool DontShowLabel() const
|
|
||||||
{
|
|
||||||
return HasFlag(wxBU_NOTEXT) || GetLabel().empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true if we do show the label
|
|
||||||
bool ShowsLabel() const
|
|
||||||
{
|
|
||||||
return !DontShowLabel();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// choose the default border for this window
|
|
||||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
|
||||||
|
|
||||||
virtual wxBitmap DoGetBitmap(State WXUNUSED(which)) const
|
|
||||||
{ return wxBitmap(); }
|
|
||||||
virtual void DoSetBitmap(const wxBitmap& WXUNUSED(bitmap),
|
|
||||||
State WXUNUSED(which))
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual wxSize DoGetBitmapMargins() const
|
|
||||||
{ return wxSize(0, 0); }
|
|
||||||
|
|
||||||
virtual void DoSetBitmapMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y))
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual void DoSetBitmapPosition(wxDirection WXUNUSED(dir))
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual bool DoGetAuthNeeded() const { return false; }
|
|
||||||
virtual void DoSetAuthNeeded(bool WXUNUSED(show)) { }
|
|
||||||
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxAnyButtonBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/anybutton.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/anybutton.h"
|
|
||||||
//#elif defined(__WXMOTIF__)
|
|
||||||
// #include "wx/motif/anybutton.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/anybutton.h"
|
|
||||||
//#elif defined(__WXGTK__)
|
|
||||||
// #include "wx/gtk1/anybutton.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/anybutton.h"
|
|
||||||
//#elif defined(__WXCOCOA__)
|
|
||||||
// #include "wx/cocoa/anybutton.h"
|
|
||||||
//#elif defined(__WXPM__)
|
|
||||||
// #include "wx/os2/anybutton.h"
|
|
||||||
#else
|
|
||||||
typedef wxAnyButtonBase wxAnyButton;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxHAS_ANY_BUTTON
|
|
||||||
|
|
||||||
#endif // _WX_ANYBUTTON_H_BASE_
|
|
|
@ -1,140 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/anystr.h
|
|
||||||
// Purpose: wxAnyStrPtr class declaration
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Created: 2009-03-23
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ANYSTR_H_
|
|
||||||
#define _WX_ANYSTR_H_
|
|
||||||
|
|
||||||
#include "wx/string.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAnyStrPtr
|
|
||||||
//
|
|
||||||
// Notice that this is an internal and intentionally not documented class. It
|
|
||||||
// is only used by wxWidgets itself to ensure compatibility with previous
|
|
||||||
// versions and shouldn't be used by user code. When you see a function
|
|
||||||
// returning it you should just know that you can treat it as a string pointer.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// This is a helper class convertible to either narrow or wide string pointer.
|
|
||||||
// It is similar to wxCStrData but, unlike it, can be NULL which is required to
|
|
||||||
// represent the return value of wxDateTime::ParseXXX() methods for example.
|
|
||||||
//
|
|
||||||
// NB: this class is fully inline and so doesn't need to be DLL-exported
|
|
||||||
class wxAnyStrPtr
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctors: this class must be created from the associated string or using
|
|
||||||
// its default ctor for an invalid NULL-like object; notice that it is
|
|
||||||
// immutable after creation.
|
|
||||||
|
|
||||||
// ctor for invalid pointer
|
|
||||||
wxAnyStrPtr()
|
|
||||||
: m_str(NULL)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// ctor for valid pointer into the given string (whose lifetime must be
|
|
||||||
// greater than ours and which should remain constant while we're used)
|
|
||||||
wxAnyStrPtr(const wxString& str, const wxString::const_iterator& iter)
|
|
||||||
: m_str(&str),
|
|
||||||
m_iter(iter)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// default copy ctor is ok and so is default dtor, in particular we do not
|
|
||||||
// free the string
|
|
||||||
|
|
||||||
|
|
||||||
// various operators meant to make this class look like a superposition of
|
|
||||||
// char* and wchar_t*
|
|
||||||
|
|
||||||
// this one is needed to allow boolean expressions involving these objects,
|
|
||||||
// e.g. "if ( FuncReturningAnyStrPtr() && ... )" (unfortunately using
|
|
||||||
// unspecified_bool_type here wouldn't help with ambiguity between all the
|
|
||||||
// different conversions to pointers)
|
|
||||||
operator bool() const { return m_str != NULL; }
|
|
||||||
|
|
||||||
// at least VC6 and VC7 also need this one or they complain about ambiguity
|
|
||||||
// for !anystr expressions
|
|
||||||
bool operator!() const { return !((bool)*this); }
|
|
||||||
|
|
||||||
|
|
||||||
// and these are the conversions operator which allow to assign the result
|
|
||||||
// of FuncReturningAnyStrPtr() to either char* or wxChar* (i.e. wchar_t*)
|
|
||||||
operator const char *() const
|
|
||||||
{
|
|
||||||
if ( !m_str )
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
// check if the string is convertible to char at all
|
|
||||||
//
|
|
||||||
// notice that this pointer points into wxString internal buffer
|
|
||||||
// containing its char* representation and so it can be kept for as
|
|
||||||
// long as wxString is not modified -- which is long enough for our
|
|
||||||
// needs
|
|
||||||
const char *p = m_str->c_str().AsChar();
|
|
||||||
if ( *p )
|
|
||||||
{
|
|
||||||
// find the offset of the character corresponding to this iterator
|
|
||||||
// position in bytes: we don't have any direct way to do it so we
|
|
||||||
// need to redo the conversion again for the part of the string
|
|
||||||
// before the iterator to find its length in bytes in current
|
|
||||||
// locale
|
|
||||||
//
|
|
||||||
// NB: conversion won't fail as it succeeded for the entire string
|
|
||||||
p += strlen(wxString(m_str->begin(), m_iter).mb_str());
|
|
||||||
}
|
|
||||||
//else: conversion failed, return "" as we can't do anything else
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator const wchar_t *() const
|
|
||||||
{
|
|
||||||
if ( !m_str )
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
// no complications with wide strings (as long as we discount
|
|
||||||
// surrogates as we do for now)
|
|
||||||
//
|
|
||||||
// just remember that this works as long as wxString keeps an internal
|
|
||||||
// buffer with its wide wide char representation, just as with AsChar()
|
|
||||||
// above
|
|
||||||
return m_str->c_str().AsWChar() + (m_iter - m_str->begin());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Because the objects of this class are only used as return type for
|
|
||||||
// functions which can return NULL we can skip providing dereferencing
|
|
||||||
// operators: the code using this class must test it for NULL first and if
|
|
||||||
// it does anything else with it it has to assign it to either char* or
|
|
||||||
// wchar_t* itself, before dereferencing.
|
|
||||||
//
|
|
||||||
// IOW this
|
|
||||||
//
|
|
||||||
// if ( *FuncReturningAnyStrPtr() )
|
|
||||||
//
|
|
||||||
// is invalid because it could crash. And this
|
|
||||||
//
|
|
||||||
// const char *p = FuncReturningAnyStrPtr();
|
|
||||||
// if ( p && *p )
|
|
||||||
//
|
|
||||||
// already works fine.
|
|
||||||
|
|
||||||
private:
|
|
||||||
// the original string and the position in it we correspond to, if the
|
|
||||||
// string is NULL this object is NULL pointer-like
|
|
||||||
const wxString * const m_str;
|
|
||||||
const wxString::const_iterator m_iter;
|
|
||||||
|
|
||||||
wxDECLARE_NO_ASSIGN_CLASS(wxAnyStrPtr);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _WX_ANYSTR_H_
|
|
||||||
|
|
|
@ -1,855 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/app.h
|
|
||||||
// Purpose: wxAppBase class and macros used for declaration of wxApp
|
|
||||||
// derived class in the user code
|
|
||||||
// Author: Julian Smart
|
|
||||||
// Modified by:
|
|
||||||
// Created: 01/02/97
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Julian Smart
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_APP_H_BASE_
|
|
||||||
#define _WX_APP_H_BASE_
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// headers we have to include here
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#include "wx/event.h" // for the base class
|
|
||||||
#include "wx/eventfilter.h" // (and another one)
|
|
||||||
#include "wx/build.h"
|
|
||||||
#include "wx/cmdargs.h" // for wxCmdLineArgsArray used by wxApp::argv
|
|
||||||
#include "wx/init.h" // we must declare wxEntry()
|
|
||||||
#include "wx/intl.h" // for wxLayoutDirection
|
|
||||||
#include "wx/log.h" // for wxDISABLE_DEBUG_LOGGING_IN_RELEASE_BUILD()
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxAppConsole;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxAppTraits;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxCmdLineParser;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxEventLoopBase;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxMessageOutput;
|
|
||||||
|
|
||||||
#if wxUSE_GUI
|
|
||||||
struct WXDLLIMPEXP_FWD_CORE wxVideoMode;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// this macro should be used in any main() or equivalent functions defined in wx
|
|
||||||
#define wxDISABLE_DEBUG_SUPPORT() \
|
|
||||||
wxDISABLE_ASSERTS_IN_RELEASE_BUILD(); \
|
|
||||||
wxDISABLE_DEBUG_LOGGING_IN_RELEASE_BUILD()
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// typedefs
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// the type of the function used to create a wxApp object on program start up
|
|
||||||
typedef wxAppConsole* (*wxAppInitializerFunction)();
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// constants
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
wxPRINT_WINDOWS = 1,
|
|
||||||
wxPRINT_POSTSCRIPT = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// global variables
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// use of this list is strongly deprecated, use wxApp ScheduleForDestruction()
|
|
||||||
// and IsScheduledForDestruction() methods instead of this list directly, it
|
|
||||||
// is here for compatibility purposes only
|
|
||||||
extern WXDLLIMPEXP_DATA_BASE(wxList) wxPendingDelete;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAppConsoleBase: wxApp for non-GUI applications
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxAppConsoleBase : public wxEvtHandler,
|
|
||||||
public wxEventFilter
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctor and dtor
|
|
||||||
wxAppConsoleBase();
|
|
||||||
virtual ~wxAppConsoleBase();
|
|
||||||
|
|
||||||
|
|
||||||
// the virtual functions which may/must be overridden in the derived class
|
|
||||||
// -----------------------------------------------------------------------
|
|
||||||
|
|
||||||
// This is the very first function called for a newly created wxApp object,
|
|
||||||
// it is used by the library to do the global initialization. If, for some
|
|
||||||
// reason, you must override it (instead of just overriding OnInit(), as
|
|
||||||
// usual, for app-specific initializations), do not forget to call the base
|
|
||||||
// class version!
|
|
||||||
virtual bool Initialize(int& argc, wxChar **argv);
|
|
||||||
|
|
||||||
// This gives wxCocoa a chance to call OnInit() with a memory pool in place
|
|
||||||
virtual bool CallOnInit() { return OnInit(); }
|
|
||||||
|
|
||||||
// Called before OnRun(), this is a good place to do initialization -- if
|
|
||||||
// anything fails, return false from here to prevent the program from
|
|
||||||
// continuing. The command line is normally parsed here, call the base
|
|
||||||
// class OnInit() to do it.
|
|
||||||
virtual bool OnInit();
|
|
||||||
|
|
||||||
// This is the replacement for the normal main(): all program work should
|
|
||||||
// be done here. When OnRun() returns, the programs starts shutting down.
|
|
||||||
virtual int OnRun();
|
|
||||||
|
|
||||||
// This is called by wxEventLoopBase::SetActive(): you should put the code
|
|
||||||
// which needs an active event loop here.
|
|
||||||
// Note that this function is called whenever an event loop is activated;
|
|
||||||
// you may want to use wxEventLoopBase::IsMain() to perform initialization
|
|
||||||
// specific for the app's main event loop.
|
|
||||||
virtual void OnEventLoopEnter(wxEventLoopBase* WXUNUSED(loop)) {}
|
|
||||||
|
|
||||||
// This is only called if OnInit() returned true so it's a good place to do
|
|
||||||
// any cleanup matching the initializations done there.
|
|
||||||
virtual int OnExit();
|
|
||||||
|
|
||||||
// This is called by wxEventLoopBase::OnExit() for each event loop which
|
|
||||||
// is exited.
|
|
||||||
virtual void OnEventLoopExit(wxEventLoopBase* WXUNUSED(loop)) {}
|
|
||||||
|
|
||||||
// This is the very last function called on wxApp object before it is
|
|
||||||
// destroyed. If you override it (instead of overriding OnExit() as usual)
|
|
||||||
// do not forget to call the base class version!
|
|
||||||
virtual void CleanUp();
|
|
||||||
|
|
||||||
// Called when a fatal exception occurs, this function should take care not
|
|
||||||
// to do anything which might provoke a nested exception! It may be
|
|
||||||
// overridden if you wish to react somehow in non-default way (core dump
|
|
||||||
// under Unix, application crash under Windows) to fatal program errors,
|
|
||||||
// however extreme care should be taken if you don't want this function to
|
|
||||||
// crash.
|
|
||||||
virtual void OnFatalException() { }
|
|
||||||
|
|
||||||
// Called from wxExit() function, should terminate the application a.s.a.p.
|
|
||||||
virtual void Exit();
|
|
||||||
|
|
||||||
|
|
||||||
// application info: name, description, vendor
|
|
||||||
// -------------------------------------------
|
|
||||||
|
|
||||||
// NB: all these should be set by the application itself, there are no
|
|
||||||
// reasonable default except for the application name which is taken to
|
|
||||||
// be argv[0]
|
|
||||||
|
|
||||||
// set/get the application name
|
|
||||||
wxString GetAppName() const;
|
|
||||||
void SetAppName(const wxString& name) { m_appName = name; }
|
|
||||||
|
|
||||||
// set/get the application display name: the display name is the name
|
|
||||||
// shown to the user in titles, reports, etc while the app name is
|
|
||||||
// used for paths, config, and other places the user doesn't see
|
|
||||||
//
|
|
||||||
// by default the display name is the same as app name or a capitalized
|
|
||||||
// version of the program if app name was not set neither but it's
|
|
||||||
// usually better to set it explicitly to something nicer
|
|
||||||
wxString GetAppDisplayName() const;
|
|
||||||
|
|
||||||
void SetAppDisplayName(const wxString& name) { m_appDisplayName = name; }
|
|
||||||
|
|
||||||
// set/get the app class name
|
|
||||||
wxString GetClassName() const { return m_className; }
|
|
||||||
void SetClassName(const wxString& name) { m_className = name; }
|
|
||||||
|
|
||||||
// set/get the vendor name
|
|
||||||
const wxString& GetVendorName() const { return m_vendorName; }
|
|
||||||
void SetVendorName(const wxString& name) { m_vendorName = name; }
|
|
||||||
|
|
||||||
// set/get the vendor display name: the display name is shown
|
|
||||||
// in titles/reports/dialogs to the user, while the vendor name
|
|
||||||
// is used in some areas such as wxConfig, wxStandardPaths, etc
|
|
||||||
const wxString& GetVendorDisplayName() const
|
|
||||||
{
|
|
||||||
return m_vendorDisplayName.empty() ? GetVendorName()
|
|
||||||
: m_vendorDisplayName;
|
|
||||||
}
|
|
||||||
void SetVendorDisplayName(const wxString& name)
|
|
||||||
{
|
|
||||||
m_vendorDisplayName = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// cmd line parsing stuff
|
|
||||||
// ----------------------
|
|
||||||
|
|
||||||
// all of these methods may be overridden in the derived class to
|
|
||||||
// customize the command line parsing (by default only a few standard
|
|
||||||
// options are handled)
|
|
||||||
//
|
|
||||||
// you also need to call wxApp::OnInit() from YourApp::OnInit() for all
|
|
||||||
// this to work
|
|
||||||
|
|
||||||
#if wxUSE_CMDLINE_PARSER
|
|
||||||
// this one is called from OnInit() to add all supported options
|
|
||||||
// to the given parser (don't forget to call the base class version if you
|
|
||||||
// override it!)
|
|
||||||
virtual void OnInitCmdLine(wxCmdLineParser& parser);
|
|
||||||
|
|
||||||
// called after successfully parsing the command line, return true
|
|
||||||
// to continue and false to exit (don't forget to call the base class
|
|
||||||
// version if you override it!)
|
|
||||||
virtual bool OnCmdLineParsed(wxCmdLineParser& parser);
|
|
||||||
|
|
||||||
// called if "--help" option was specified, return true to continue
|
|
||||||
// and false to exit
|
|
||||||
virtual bool OnCmdLineHelp(wxCmdLineParser& parser);
|
|
||||||
|
|
||||||
// called if incorrect command line options were given, return
|
|
||||||
// false to abort and true to continue
|
|
||||||
virtual bool OnCmdLineError(wxCmdLineParser& parser);
|
|
||||||
#endif // wxUSE_CMDLINE_PARSER
|
|
||||||
|
|
||||||
|
|
||||||
// miscellaneous customization functions
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
// create the app traits object to which we delegate for everything which
|
|
||||||
// either should be configurable by the user (then he can change the
|
|
||||||
// default behaviour simply by overriding CreateTraits() and returning his
|
|
||||||
// own traits object) or which is GUI/console dependent as then wxAppTraits
|
|
||||||
// allows us to abstract the differences behind the common facade
|
|
||||||
wxAppTraits *GetTraits();
|
|
||||||
|
|
||||||
// this function provides safer access to traits object than
|
|
||||||
// wxTheApp->GetTraits() during startup or termination when the global
|
|
||||||
// application object itself may be unavailable
|
|
||||||
//
|
|
||||||
// of course, it still returns NULL in this case and the caller must check
|
|
||||||
// for it
|
|
||||||
static wxAppTraits *GetTraitsIfExists();
|
|
||||||
|
|
||||||
// returns the main event loop instance, i.e. the event loop which is started
|
|
||||||
// by OnRun() and which dispatches all events sent from the native toolkit
|
|
||||||
// to the application (except when new event loops are temporarily set-up).
|
|
||||||
// The returned value maybe NULL. Put initialization code which needs a
|
|
||||||
// non-NULL main event loop into OnEventLoopEnter().
|
|
||||||
wxEventLoopBase* GetMainLoop() const
|
|
||||||
{ return m_mainLoop; }
|
|
||||||
|
|
||||||
|
|
||||||
// event processing functions
|
|
||||||
// --------------------------
|
|
||||||
|
|
||||||
// Implement the inherited wxEventFilter method but just return -1 from it
|
|
||||||
// to indicate that default processing should take place.
|
|
||||||
virtual int FilterEvent(wxEvent& event);
|
|
||||||
|
|
||||||
// return true if we're running event loop, i.e. if the events can
|
|
||||||
// (already) be dispatched
|
|
||||||
static bool IsMainLoopRunning();
|
|
||||||
|
|
||||||
#if wxUSE_EXCEPTIONS
|
|
||||||
// execute the functor to handle the given event
|
|
||||||
//
|
|
||||||
// this is a generalization of HandleEvent() below and the base class
|
|
||||||
// implementation of CallEventHandler() still calls HandleEvent() for
|
|
||||||
// compatibility for functors which are just wxEventFunctions (i.e. methods
|
|
||||||
// of wxEvtHandler)
|
|
||||||
virtual void CallEventHandler(wxEvtHandler *handler,
|
|
||||||
wxEventFunctor& functor,
|
|
||||||
wxEvent& event) const;
|
|
||||||
|
|
||||||
// call the specified handler on the given object with the given event
|
|
||||||
//
|
|
||||||
// this method only exists to allow catching the exceptions thrown by any
|
|
||||||
// event handler, it would lead to an extra (useless) virtual function call
|
|
||||||
// if the exceptions were not used, so it doesn't even exist in that case
|
|
||||||
virtual void HandleEvent(wxEvtHandler *handler,
|
|
||||||
wxEventFunction func,
|
|
||||||
wxEvent& event) const;
|
|
||||||
|
|
||||||
// Called when an unhandled C++ exception occurs inside OnRun(): note that
|
|
||||||
// the main event loop has already terminated by now and the program will
|
|
||||||
// exit, if you need to really handle the exceptions you need to override
|
|
||||||
// OnExceptionInMainLoop()
|
|
||||||
virtual void OnUnhandledException();
|
|
||||||
|
|
||||||
// Function called if an uncaught exception is caught inside the main
|
|
||||||
// event loop: it may return true to continue running the event loop or
|
|
||||||
// false to stop it (in the latter case it may rethrow the exception as
|
|
||||||
// well)
|
|
||||||
virtual bool OnExceptionInMainLoop();
|
|
||||||
|
|
||||||
#endif // wxUSE_EXCEPTIONS
|
|
||||||
|
|
||||||
|
|
||||||
// pending events
|
|
||||||
// --------------
|
|
||||||
|
|
||||||
// IMPORTANT: all these methods conceptually belong to wxEventLoopBase
|
|
||||||
// but for many reasons we need to allow queuing of events
|
|
||||||
// even when there's no event loop (e.g. in wxApp::OnInit);
|
|
||||||
// this feature is used e.g. to queue events on secondary threads
|
|
||||||
// or in wxPython to use wx.CallAfter before the GUI is initialized
|
|
||||||
|
|
||||||
// process all events in the m_handlersWithPendingEvents list -- it is necessary
|
|
||||||
// to call this function to process posted events. This happens during each
|
|
||||||
// event loop iteration in GUI mode but if there is no main loop, it may be
|
|
||||||
// also called directly.
|
|
||||||
virtual void ProcessPendingEvents();
|
|
||||||
|
|
||||||
// check if there are pending events on global pending event list
|
|
||||||
bool HasPendingEvents() const;
|
|
||||||
|
|
||||||
// temporary suspends processing of the pending events
|
|
||||||
void SuspendProcessingOfPendingEvents();
|
|
||||||
|
|
||||||
// resume processing of the pending events previously stopped because of a
|
|
||||||
// call to SuspendProcessingOfPendingEvents()
|
|
||||||
void ResumeProcessingOfPendingEvents();
|
|
||||||
|
|
||||||
// called by ~wxEvtHandler to (eventually) remove the handler from the list of
|
|
||||||
// the handlers with pending events
|
|
||||||
void RemovePendingEventHandler(wxEvtHandler* toRemove);
|
|
||||||
|
|
||||||
// adds an event handler to the list of the handlers with pending events
|
|
||||||
void AppendPendingEventHandler(wxEvtHandler* toAppend);
|
|
||||||
|
|
||||||
// moves the event handler from the list of the handlers with pending events
|
|
||||||
//to the list of the handlers with _delayed_ pending events
|
|
||||||
void DelayPendingEventHandler(wxEvtHandler* toDelay);
|
|
||||||
|
|
||||||
// deletes the current pending events
|
|
||||||
void DeletePendingEvents();
|
|
||||||
|
|
||||||
|
|
||||||
// delayed destruction
|
|
||||||
// -------------------
|
|
||||||
|
|
||||||
// If an object may have pending events for it, it shouldn't be deleted
|
|
||||||
// immediately as this would result in a crash when trying to handle these
|
|
||||||
// events: instead, it should be scheduled for destruction and really
|
|
||||||
// destroyed only after processing all pending events.
|
|
||||||
//
|
|
||||||
// Notice that this is only possible if we have a running event loop,
|
|
||||||
// otherwise the object is just deleted directly by ScheduleForDestruction()
|
|
||||||
// and IsScheduledForDestruction() always returns false.
|
|
||||||
|
|
||||||
// schedule the object for destruction in the near future
|
|
||||||
void ScheduleForDestruction(wxObject *object);
|
|
||||||
|
|
||||||
// return true if the object is scheduled for destruction
|
|
||||||
bool IsScheduledForDestruction(wxObject *object) const;
|
|
||||||
|
|
||||||
|
|
||||||
// wxEventLoop-related methods
|
|
||||||
// ---------------------------
|
|
||||||
|
|
||||||
// all these functions are forwarded to the corresponding methods of the
|
|
||||||
// currently active event loop -- and do nothing if there is none
|
|
||||||
virtual bool Pending();
|
|
||||||
virtual bool Dispatch();
|
|
||||||
|
|
||||||
virtual int MainLoop();
|
|
||||||
virtual void ExitMainLoop();
|
|
||||||
|
|
||||||
bool Yield(bool onlyIfNeeded = false);
|
|
||||||
|
|
||||||
virtual void WakeUpIdle();
|
|
||||||
|
|
||||||
// this method is called by the active event loop when there are no events
|
|
||||||
// to process
|
|
||||||
//
|
|
||||||
// by default it generates the idle events and if you override it in your
|
|
||||||
// derived class you should call the base class version to ensure that idle
|
|
||||||
// events are still sent out
|
|
||||||
virtual bool ProcessIdle();
|
|
||||||
|
|
||||||
// this virtual function is overridden in GUI wxApp to always return true
|
|
||||||
// as GUI applications always have an event loop -- but console ones may
|
|
||||||
// have it or not, so it simply returns true if already have an event loop
|
|
||||||
// running but false otherwise
|
|
||||||
virtual bool UsesEventLoop() const;
|
|
||||||
|
|
||||||
|
|
||||||
// debugging support
|
|
||||||
// -----------------
|
|
||||||
|
|
||||||
// this function is called when an assert failure occurs, the base class
|
|
||||||
// version does the normal processing (i.e. shows the usual assert failure
|
|
||||||
// dialog box)
|
|
||||||
//
|
|
||||||
// the arguments are the location of the failed assert (func may be empty
|
|
||||||
// if the compiler doesn't support C99 __FUNCTION__), the text of the
|
|
||||||
// assert itself and the user-specified message
|
|
||||||
virtual void OnAssertFailure(const wxChar *file,
|
|
||||||
int line,
|
|
||||||
const wxChar *func,
|
|
||||||
const wxChar *cond,
|
|
||||||
const wxChar *msg);
|
|
||||||
|
|
||||||
// old version of the function without func parameter, for compatibility
|
|
||||||
// only, override OnAssertFailure() in the new code
|
|
||||||
virtual void OnAssert(const wxChar *file,
|
|
||||||
int line,
|
|
||||||
const wxChar *cond,
|
|
||||||
const wxChar *msg);
|
|
||||||
|
|
||||||
// check that the wxBuildOptions object (constructed in the application
|
|
||||||
// itself, usually the one from wxIMPLEMENT_APP() macro) matches the build
|
|
||||||
// options of the library and abort if it doesn't
|
|
||||||
static bool CheckBuildOptions(const char *optionsSignature,
|
|
||||||
const char *componentName);
|
|
||||||
|
|
||||||
// implementation only from now on
|
|
||||||
// -------------------------------
|
|
||||||
|
|
||||||
// helpers for dynamic wxApp construction
|
|
||||||
static void SetInitializerFunction(wxAppInitializerFunction fn)
|
|
||||||
{ ms_appInitFn = fn; }
|
|
||||||
static wxAppInitializerFunction GetInitializerFunction()
|
|
||||||
{ return ms_appInitFn; }
|
|
||||||
|
|
||||||
// accessors for ms_appInstance field (external code might wish to modify
|
|
||||||
// it, this is why we provide a setter here as well, but you should really
|
|
||||||
// know what you're doing if you call it), wxTheApp is usually used instead
|
|
||||||
// of GetInstance()
|
|
||||||
static wxAppConsole *GetInstance() { return ms_appInstance; }
|
|
||||||
static void SetInstance(wxAppConsole *app) { ms_appInstance = app; }
|
|
||||||
|
|
||||||
|
|
||||||
// command line arguments (public for backwards compatibility)
|
|
||||||
int argc;
|
|
||||||
|
|
||||||
// this object is implicitly convertible to either "char**" (traditional
|
|
||||||
// type of argv parameter of main()) or to "wchar_t **" (for compatibility
|
|
||||||
// with Unicode build in previous wx versions and because the command line
|
|
||||||
// can, in pr
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
wxCmdLineArgsArray argv;
|
|
||||||
#else
|
|
||||||
char **argv;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// delete all objects in wxPendingDelete list
|
|
||||||
//
|
|
||||||
// called from ProcessPendingEvents()
|
|
||||||
void DeletePendingObjects();
|
|
||||||
|
|
||||||
// the function which creates the traits object when GetTraits() needs it
|
|
||||||
// for the first time
|
|
||||||
virtual wxAppTraits *CreateTraits();
|
|
||||||
|
|
||||||
// function used for dynamic wxApp creation
|
|
||||||
static wxAppInitializerFunction ms_appInitFn;
|
|
||||||
|
|
||||||
// the one and only global application object
|
|
||||||
static wxAppConsole *ms_appInstance;
|
|
||||||
|
|
||||||
// create main loop from AppTraits or return NULL if
|
|
||||||
// there is no main loop implementation
|
|
||||||
wxEventLoopBase *CreateMainLoop();
|
|
||||||
|
|
||||||
// application info (must be set from the user code)
|
|
||||||
wxString m_vendorName, // vendor name ("acme")
|
|
||||||
m_vendorDisplayName, // vendor display name (e.g. "ACME Inc")
|
|
||||||
m_appName, // app name ("myapp")
|
|
||||||
m_appDisplayName, // app display name ("My Application")
|
|
||||||
m_className; // class name
|
|
||||||
|
|
||||||
// the class defining the application behaviour, NULL initially and created
|
|
||||||
// by GetTraits() when first needed
|
|
||||||
wxAppTraits *m_traits;
|
|
||||||
|
|
||||||
// the main event loop of the application (may be NULL if the loop hasn't
|
|
||||||
// been started yet or has already terminated)
|
|
||||||
wxEventLoopBase *m_mainLoop;
|
|
||||||
|
|
||||||
|
|
||||||
// pending events management vars:
|
|
||||||
|
|
||||||
// the array of the handlers with pending events which needs to be processed
|
|
||||||
// inside ProcessPendingEvents()
|
|
||||||
wxEvtHandlerArray m_handlersWithPendingEvents;
|
|
||||||
|
|
||||||
// helper array used by ProcessPendingEvents() to store the event handlers
|
|
||||||
// which have pending events but of these events none can be processed right now
|
|
||||||
// (because of a call to wxEventLoop::YieldFor() which asked to selectively process
|
|
||||||
// pending events)
|
|
||||||
wxEvtHandlerArray m_handlersWithPendingDelayedEvents;
|
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
|
||||||
// this critical section protects both the lists above
|
|
||||||
wxCriticalSection m_handlersWithPendingEventsLocker;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// flag modified by Suspend/ResumeProcessingOfPendingEvents()
|
|
||||||
bool m_bDoPendingEventProcessing;
|
|
||||||
|
|
||||||
friend class WXDLLIMPEXP_FWD_BASE wxEvtHandler;
|
|
||||||
|
|
||||||
// the application object is a singleton anyhow, there is no sense in
|
|
||||||
// copying it
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxAppConsoleBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__UNIX__) && !defined(__WXMSW__)
|
|
||||||
#include "wx/unix/app.h"
|
|
||||||
#else
|
|
||||||
// this has to be a class and not a typedef as we forward declare it
|
|
||||||
class wxAppConsole : public wxAppConsoleBase { };
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAppBase: the common part of wxApp implementations for all platforms
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_GUI
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxAppBase : public wxAppConsole
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAppBase();
|
|
||||||
virtual ~wxAppBase();
|
|
||||||
|
|
||||||
// the virtual functions which may/must be overridden in the derived class
|
|
||||||
// -----------------------------------------------------------------------
|
|
||||||
|
|
||||||
// very first initialization function
|
|
||||||
//
|
|
||||||
// Override: very rarely
|
|
||||||
virtual bool Initialize(int& argc, wxChar **argv);
|
|
||||||
|
|
||||||
// a platform-dependent version of OnInit(): the code here is likely to
|
|
||||||
// depend on the toolkit. default version does nothing.
|
|
||||||
//
|
|
||||||
// Override: rarely.
|
|
||||||
virtual bool OnInitGui();
|
|
||||||
|
|
||||||
// called to start program execution - the default version just enters
|
|
||||||
// the main GUI loop in which events are received and processed until
|
|
||||||
// the last window is not deleted (if GetExitOnFrameDelete) or
|
|
||||||
// ExitMainLoop() is called. In console mode programs, the execution
|
|
||||||
// of the program really starts here
|
|
||||||
//
|
|
||||||
// Override: rarely in GUI applications, always in console ones.
|
|
||||||
virtual int OnRun();
|
|
||||||
|
|
||||||
// a matching function for OnInit()
|
|
||||||
virtual int OnExit();
|
|
||||||
|
|
||||||
// very last clean up function
|
|
||||||
//
|
|
||||||
// Override: very rarely
|
|
||||||
virtual void CleanUp();
|
|
||||||
|
|
||||||
|
|
||||||
// the worker functions - usually not used directly by the user code
|
|
||||||
// -----------------------------------------------------------------
|
|
||||||
|
|
||||||
// safer alternatives to Yield(), using wxWindowDisabler
|
|
||||||
virtual bool SafeYield(wxWindow *win, bool onlyIfNeeded);
|
|
||||||
virtual bool SafeYieldFor(wxWindow *win, long eventsToProcess);
|
|
||||||
|
|
||||||
// this virtual function is called in the GUI mode when the application
|
|
||||||
// becomes idle and normally just sends wxIdleEvent to all interested
|
|
||||||
// parties
|
|
||||||
//
|
|
||||||
// it should return true if more idle events are needed, false if not
|
|
||||||
virtual bool ProcessIdle();
|
|
||||||
|
|
||||||
// override base class version: GUI apps always use an event loop
|
|
||||||
virtual bool UsesEventLoop() const { return true; }
|
|
||||||
|
|
||||||
|
|
||||||
// top level window functions
|
|
||||||
// --------------------------
|
|
||||||
|
|
||||||
// return true if our app has focus
|
|
||||||
virtual bool IsActive() const { return m_isActive; }
|
|
||||||
|
|
||||||
// set the "main" top level window
|
|
||||||
void SetTopWindow(wxWindow *win) { m_topWindow = win; }
|
|
||||||
|
|
||||||
// return the "main" top level window (if it hadn't been set previously
|
|
||||||
// with SetTopWindow(), will return just some top level window and, if
|
|
||||||
// there are none, will return NULL)
|
|
||||||
virtual wxWindow *GetTopWindow() const;
|
|
||||||
|
|
||||||
// control the exit behaviour: by default, the program will exit the
|
|
||||||
// main loop (and so, usually, terminate) when the last top-level
|
|
||||||
// program window is deleted. Beware that if you disable this behaviour
|
|
||||||
// (with SetExitOnFrameDelete(false)), you'll have to call
|
|
||||||
// ExitMainLoop() explicitly from somewhere.
|
|
||||||
void SetExitOnFrameDelete(bool flag)
|
|
||||||
{ m_exitOnFrameDelete = flag ? Yes : No; }
|
|
||||||
bool GetExitOnFrameDelete() const
|
|
||||||
{ return m_exitOnFrameDelete == Yes; }
|
|
||||||
|
|
||||||
|
|
||||||
// display mode, visual, printing mode, ...
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Get display mode that is used use. This is only used in framebuffer
|
|
||||||
// wxWin ports such as wxDFB.
|
|
||||||
virtual wxVideoMode GetDisplayMode() const;
|
|
||||||
// Set display mode to use. This is only used in framebuffer wxWin
|
|
||||||
// ports such as wxDFB. This method should be called from
|
|
||||||
// wxApp::OnInitGui
|
|
||||||
virtual bool SetDisplayMode(const wxVideoMode& WXUNUSED(info)) { return true; }
|
|
||||||
|
|
||||||
// set use of best visual flag (see below)
|
|
||||||
void SetUseBestVisual( bool flag, bool forceTrueColour = false )
|
|
||||||
{ m_useBestVisual = flag; m_forceTrueColour = forceTrueColour; }
|
|
||||||
bool GetUseBestVisual() const { return m_useBestVisual; }
|
|
||||||
|
|
||||||
// set/get printing mode: see wxPRINT_XXX constants.
|
|
||||||
//
|
|
||||||
// default behaviour is the normal one for Unix: always use PostScript
|
|
||||||
// printing.
|
|
||||||
virtual void SetPrintMode(int WXUNUSED(mode)) { }
|
|
||||||
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
|
|
||||||
|
|
||||||
// Return the layout direction for the current locale or wxLayout_Default
|
|
||||||
// if it's unknown
|
|
||||||
virtual wxLayoutDirection GetLayoutDirection() const;
|
|
||||||
|
|
||||||
// Change the theme used by the application, return true on success.
|
|
||||||
virtual bool SetNativeTheme(const wxString& WXUNUSED(theme)) { return false; }
|
|
||||||
|
|
||||||
|
|
||||||
// command line parsing (GUI-specific)
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_CMDLINE_PARSER
|
|
||||||
virtual bool OnCmdLineParsed(wxCmdLineParser& parser);
|
|
||||||
virtual void OnInitCmdLine(wxCmdLineParser& parser);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// miscellaneous other stuff
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// called by toolkit-specific code to set the app status: active (we have
|
|
||||||
// focus) or not and also the last window which had focus before we were
|
|
||||||
// deactivated
|
|
||||||
virtual void SetActive(bool isActive, wxWindow *lastFocus);
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
// OBSOLETE: don't use, always returns true
|
|
||||||
//
|
|
||||||
// returns true if the program is successfully initialized
|
|
||||||
wxDEPRECATED( bool Initialized() );
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_6
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// override base class method to use GUI traits
|
|
||||||
virtual wxAppTraits *CreateTraits();
|
|
||||||
|
|
||||||
|
|
||||||
// the main top level window (may be NULL)
|
|
||||||
wxWindow *m_topWindow;
|
|
||||||
|
|
||||||
// if Yes, exit the main loop when the last top level window is deleted, if
|
|
||||||
// No don't do it and if Later -- only do it once we reach our OnRun()
|
|
||||||
//
|
|
||||||
// the explanation for using this strange scheme is given in appcmn.cpp
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
Later = -1,
|
|
||||||
No,
|
|
||||||
Yes
|
|
||||||
} m_exitOnFrameDelete;
|
|
||||||
|
|
||||||
// true if the app wants to use the best visual on systems where
|
|
||||||
// more than one are available (Sun, SGI, XFree86 4.0 ?)
|
|
||||||
bool m_useBestVisual;
|
|
||||||
// force TrueColour just in case "best" isn't TrueColour
|
|
||||||
bool m_forceTrueColour;
|
|
||||||
|
|
||||||
// does any of our windows have focus?
|
|
||||||
bool m_isActive;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxAppBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
inline bool wxAppBase::Initialized() { return true; }
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_6
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// now include the declaration of the real class
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
|
||||||
#include "wx/msw/app.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/app.h"
|
|
||||||
#elif defined(__WXDFB__)
|
|
||||||
#include "wx/dfb/app.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/app.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/app.h"
|
|
||||||
#elif defined(__WXX11__)
|
|
||||||
#include "wx/x11/app.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/app.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/app.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/app.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else // !GUI
|
|
||||||
|
|
||||||
// wxApp is defined in core and we cannot define another one in wxBase,
|
|
||||||
// so use the preprocessor to allow using wxApp in console programs too
|
|
||||||
#define wxApp wxAppConsole
|
|
||||||
|
|
||||||
#endif // GUI/!GUI
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// the global data
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// for compatibility, we define this macro to access the global application
|
|
||||||
// object of type wxApp
|
|
||||||
//
|
|
||||||
// note that instead of using of wxTheApp in application code you should
|
|
||||||
// consider using wxDECLARE_APP() after which you may call wxGetApp() which will
|
|
||||||
// return the object of the correct type (i.e. MyApp and not wxApp)
|
|
||||||
//
|
|
||||||
// the cast is safe as in GUI build we only use wxApp, not wxAppConsole, and in
|
|
||||||
// console mode it does nothing at all
|
|
||||||
#define wxTheApp static_cast<wxApp*>(wxApp::GetInstance())
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// global functions
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// event loop related functions only work in GUI programs
|
|
||||||
// ------------------------------------------------------
|
|
||||||
|
|
||||||
// Force an exit from main loop
|
|
||||||
WXDLLIMPEXP_BASE void wxExit();
|
|
||||||
|
|
||||||
// avoid redeclaring this function here if it had been already declared by
|
|
||||||
// wx/utils.h, this results in warnings from g++ with -Wredundant-decls
|
|
||||||
#ifndef wx_YIELD_DECLARED
|
|
||||||
#define wx_YIELD_DECLARED
|
|
||||||
|
|
||||||
// Yield to other apps/messages
|
|
||||||
WXDLLIMPEXP_CORE bool wxYield();
|
|
||||||
|
|
||||||
#endif // wx_YIELD_DECLARED
|
|
||||||
|
|
||||||
// Yield to other apps/messages
|
|
||||||
WXDLLIMPEXP_BASE void wxWakeUpIdle();
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// macros for dynamic creation of the application object
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Having a global instance of this class allows wxApp to be aware of the app
|
|
||||||
// creator function. wxApp can then call this function to create a new app
|
|
||||||
// object. Convoluted, but necessary.
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxAppInitializer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAppInitializer(wxAppInitializerFunction fn)
|
|
||||||
{ wxApp::SetInitializerFunction(fn); }
|
|
||||||
};
|
|
||||||
|
|
||||||
// the code below defines a wxIMPLEMENT_WXWIN_MAIN macro which you can use if
|
|
||||||
// your compiler really, really wants main() to be in your main program (e.g.
|
|
||||||
// hello.cpp). Now wxIMPLEMENT_APP should add this code if required.
|
|
||||||
|
|
||||||
#define wxIMPLEMENT_WXWIN_MAIN_CONSOLE \
|
|
||||||
int main(int argc, char **argv) \
|
|
||||||
{ \
|
|
||||||
wxDISABLE_DEBUG_SUPPORT(); \
|
|
||||||
\
|
|
||||||
return wxEntry(argc, argv); \
|
|
||||||
}
|
|
||||||
|
|
||||||
// port-specific header could have defined it already in some special way
|
|
||||||
#ifndef wxIMPLEMENT_WXWIN_MAIN
|
|
||||||
#define wxIMPLEMENT_WXWIN_MAIN wxIMPLEMENT_WXWIN_MAIN_CONSOLE
|
|
||||||
#endif // defined(wxIMPLEMENT_WXWIN_MAIN)
|
|
||||||
|
|
||||||
#ifdef __WXUNIVERSAL__
|
|
||||||
#include "wx/univ/theme.h"
|
|
||||||
|
|
||||||
#ifdef wxUNIV_DEFAULT_THEME
|
|
||||||
#define wxIMPLEMENT_WX_THEME_SUPPORT \
|
|
||||||
WX_USE_THEME(wxUNIV_DEFAULT_THEME);
|
|
||||||
#else
|
|
||||||
#define wxIMPLEMENT_WX_THEME_SUPPORT
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define wxIMPLEMENT_WX_THEME_SUPPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Use this macro if you want to define your own main() or WinMain() function
|
|
||||||
// and call wxEntry() from there.
|
|
||||||
#define wxIMPLEMENT_APP_NO_MAIN(appname) \
|
|
||||||
appname& wxGetApp() { return *static_cast<appname*>(wxApp::GetInstance()); } \
|
|
||||||
wxAppConsole *wxCreateApp() \
|
|
||||||
{ \
|
|
||||||
wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \
|
|
||||||
"your program"); \
|
|
||||||
return new appname; \
|
|
||||||
} \
|
|
||||||
wxAppInitializer \
|
|
||||||
wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp)
|
|
||||||
|
|
||||||
// Same as wxIMPLEMENT_APP() normally but doesn't include themes support in
|
|
||||||
// wxUniversal builds
|
|
||||||
#define wxIMPLEMENT_APP_NO_THEMES(appname) \
|
|
||||||
wxIMPLEMENT_WXWIN_MAIN \
|
|
||||||
wxIMPLEMENT_APP_NO_MAIN(appname)
|
|
||||||
|
|
||||||
// Use this macro exactly once, the argument is the name of the wxApp-derived
|
|
||||||
// class which is the class of your application.
|
|
||||||
#define wxIMPLEMENT_APP(appname) \
|
|
||||||
wxIMPLEMENT_WX_THEME_SUPPORT \
|
|
||||||
wxIMPLEMENT_APP_NO_THEMES(appname)
|
|
||||||
|
|
||||||
// Same as IMPLEMENT_APP(), but for console applications.
|
|
||||||
#define wxIMPLEMENT_APP_CONSOLE(appname) \
|
|
||||||
wxIMPLEMENT_WXWIN_MAIN_CONSOLE \
|
|
||||||
wxIMPLEMENT_APP_NO_MAIN(appname)
|
|
||||||
|
|
||||||
// this macro can be used multiple times and just allows you to use wxGetApp()
|
|
||||||
// function
|
|
||||||
#define wxDECLARE_APP(appname) \
|
|
||||||
extern appname& wxGetApp()
|
|
||||||
|
|
||||||
|
|
||||||
// declare the stuff defined by wxIMPLEMENT_APP() macro, it's not really needed
|
|
||||||
// anywhere else but at the very least it suppresses icc warnings about
|
|
||||||
// defining extern symbols without prior declaration, and it shouldn't do any
|
|
||||||
// harm
|
|
||||||
extern wxAppConsole *wxCreateApp();
|
|
||||||
extern wxAppInitializer wxTheAppInitializer;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Compatibility macro aliases
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// deprecated variants _not_ requiring a semicolon after them
|
|
||||||
// (note that also some wx-prefixed macro do _not_ require a semicolon because
|
|
||||||
// it's not always possible to force the compire to require it)
|
|
||||||
|
|
||||||
#define IMPLEMENT_WXWIN_MAIN_CONSOLE wxIMPLEMENT_WXWIN_MAIN_CONSOLE
|
|
||||||
#define IMPLEMENT_WXWIN_MAIN wxIMPLEMENT_WXWIN_MAIN
|
|
||||||
#define IMPLEMENT_WX_THEME_SUPPORT wxIMPLEMENT_WX_THEME_SUPPORT
|
|
||||||
#define IMPLEMENT_APP_NO_MAIN(app) wxIMPLEMENT_APP_NO_MAIN(app);
|
|
||||||
#define IMPLEMENT_APP_NO_THEMES(app) wxIMPLEMENT_APP_NO_THEMES(app);
|
|
||||||
#define IMPLEMENT_APP(app) wxIMPLEMENT_APP(app);
|
|
||||||
#define IMPLEMENT_APP_CONSOLE(app) wxIMPLEMENT_APP_CONSOLE(app);
|
|
||||||
#define DECLARE_APP(app) wxDECLARE_APP(app);
|
|
||||||
|
|
||||||
#endif // _WX_APP_H_BASE_
|
|
|
@ -1,295 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/apptrait.h
|
|
||||||
// Purpose: declaration of wxAppTraits and derived classes
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 19.06.2003
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_APPTRAIT_H_
|
|
||||||
#define _WX_APPTRAIT_H_
|
|
||||||
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/platinfo.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxArrayString;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxConfigBase;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxEventLoopBase;
|
|
||||||
#if wxUSE_FONTMAP
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxFontMapper;
|
|
||||||
#endif // wxUSE_FONTMAP
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxLog;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxMessageOutput;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxObject;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxRendererNative;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxStandardPaths;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxString;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxTimer;
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxTimerImpl;
|
|
||||||
|
|
||||||
class wxSocketManager;
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxAppTraits: this class defines various configurable aspects of wxApp
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxAppTraitsBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// needed since this class declares virtual members
|
|
||||||
virtual ~wxAppTraitsBase() { }
|
|
||||||
|
|
||||||
// hooks for working with the global objects, may be overridden by the user
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_CONFIG
|
|
||||||
// create the default configuration object (base class version is
|
|
||||||
// implemented in config.cpp and creates wxRegConfig for wxMSW and
|
|
||||||
// wxFileConfig for all the other platforms)
|
|
||||||
virtual wxConfigBase *CreateConfig();
|
|
||||||
#endif // wxUSE_CONFIG
|
|
||||||
|
|
||||||
#if wxUSE_LOG
|
|
||||||
// create the default log target
|
|
||||||
virtual wxLog *CreateLogTarget() = 0;
|
|
||||||
#endif // wxUSE_LOG
|
|
||||||
|
|
||||||
// create the global object used for printing out messages
|
|
||||||
virtual wxMessageOutput *CreateMessageOutput() = 0;
|
|
||||||
|
|
||||||
#if wxUSE_FONTMAP
|
|
||||||
// create the global font mapper object used for encodings/charset mapping
|
|
||||||
virtual wxFontMapper *CreateFontMapper() = 0;
|
|
||||||
#endif // wxUSE_FONTMAP
|
|
||||||
|
|
||||||
// get the renderer to use for drawing the generic controls (return value
|
|
||||||
// may be NULL in which case the default renderer for the current platform
|
|
||||||
// is used); this is used in GUI only and always returns NULL in console
|
|
||||||
//
|
|
||||||
// NB: returned pointer will be deleted by the caller
|
|
||||||
virtual wxRendererNative *CreateRenderer() = 0;
|
|
||||||
|
|
||||||
// wxStandardPaths object is normally the same for wxBase and wxGUI
|
|
||||||
// except in the case of wxMac and wxCocoa
|
|
||||||
virtual wxStandardPaths& GetStandardPaths();
|
|
||||||
|
|
||||||
#if wxUSE_INTL
|
|
||||||
// called during wxApp initialization to set the locale to correspond to
|
|
||||||
// the user default (i.e. system locale under Windows, LC_ALL under Unix)
|
|
||||||
virtual void SetLocale();
|
|
||||||
#endif // wxUSE_INTL
|
|
||||||
|
|
||||||
|
|
||||||
// functions abstracting differences between GUI and console modes
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// show the assert dialog with the specified message in GUI or just print
|
|
||||||
// the string to stderr in console mode
|
|
||||||
//
|
|
||||||
// base class version has an implementation (in spite of being pure
|
|
||||||
// virtual) in base/appbase.cpp which can be called as last resort.
|
|
||||||
//
|
|
||||||
// return true to suppress subsequent asserts, false to continue as before
|
|
||||||
virtual bool ShowAssertDialog(const wxString& msg) = 0;
|
|
||||||
|
|
||||||
// return true if fprintf(stderr) goes somewhere, false otherwise
|
|
||||||
virtual bool HasStderr() = 0;
|
|
||||||
|
|
||||||
#if wxUSE_SOCKETS
|
|
||||||
// this function is used by wxNet library to set the default socket manager
|
|
||||||
// to use: doing it like this allows us to keep all socket-related code in
|
|
||||||
// wxNet instead of having to pull it in wxBase itself as we'd have to do
|
|
||||||
// if we really implemented wxSocketManager here
|
|
||||||
//
|
|
||||||
// we don't take ownership of this pointer, it should have a lifetime
|
|
||||||
// greater than that of any socket (e.g. be a pointer to a static object)
|
|
||||||
static void SetDefaultSocketManager(wxSocketManager *manager)
|
|
||||||
{
|
|
||||||
ms_manager = manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return socket manager: this is usually different for console and GUI
|
|
||||||
// applications (although some ports use the same implementation for both)
|
|
||||||
virtual wxSocketManager *GetSocketManager() { return ms_manager; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// create a new, port specific, instance of the event loop used by wxApp
|
|
||||||
virtual wxEventLoopBase *CreateEventLoop() = 0;
|
|
||||||
|
|
||||||
#if wxUSE_TIMER
|
|
||||||
// return platform and toolkit dependent wxTimer implementation
|
|
||||||
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer) = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
|
||||||
virtual void MutexGuiEnter();
|
|
||||||
virtual void MutexGuiLeave();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// functions returning port-specific information
|
|
||||||
// ------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// return information about the (native) toolkit currently used and its
|
|
||||||
// runtime (not compile-time) version.
|
|
||||||
// returns wxPORT_BASE for console applications and one of the remaining
|
|
||||||
// wxPORT_* values for GUI applications.
|
|
||||||
virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const = 0;
|
|
||||||
|
|
||||||
// return true if the port is using wxUniversal for the GUI, false if not
|
|
||||||
virtual bool IsUsingUniversalWidgets() const = 0;
|
|
||||||
|
|
||||||
// return the name of the Desktop Environment such as
|
|
||||||
// "KDE" or "GNOME". May return an empty string.
|
|
||||||
virtual wxString GetDesktopEnvironment() const = 0;
|
|
||||||
|
|
||||||
// returns a short string to identify the block of the standard command
|
|
||||||
// line options parsed automatically by current port: if this string is
|
|
||||||
// empty, there are no such options, otherwise the function also fills
|
|
||||||
// passed arrays with the names and the descriptions of those options.
|
|
||||||
virtual wxString GetStandardCmdLineOptions(wxArrayString& names,
|
|
||||||
wxArrayString& desc) const
|
|
||||||
{
|
|
||||||
wxUnusedVar(names);
|
|
||||||
wxUnusedVar(desc);
|
|
||||||
|
|
||||||
return wxEmptyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
|
||||||
#if wxUSE_STACKWALKER
|
|
||||||
// utility function: returns the stack frame as a plain wxString
|
|
||||||
virtual wxString GetAssertStackTrace();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
|
||||||
static wxSocketManager *ms_manager;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include the platform-specific version of the class
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// NB: test for __UNIX__ before __WXMAC__ as under Darwin we want to use the
|
|
||||||
// Unix code (and otherwise __UNIX__ wouldn't be defined)
|
|
||||||
// ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port
|
|
||||||
#if defined(__WIN32__)
|
|
||||||
#include "wx/msw/apptbase.h"
|
|
||||||
#elif defined(__UNIX__) && !defined(__EMX__)
|
|
||||||
#include "wx/unix/apptbase.h"
|
|
||||||
#elif defined(__OS2__)
|
|
||||||
#include "wx/os2/apptbase.h"
|
|
||||||
#else // no platform-specific methods to add to wxAppTraits
|
|
||||||
// wxAppTraits must be a class because it was forward declared as class
|
|
||||||
class WXDLLIMPEXP_BASE wxAppTraits : public wxAppTraitsBase
|
|
||||||
{
|
|
||||||
};
|
|
||||||
#endif // platform
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// standard traits for console and GUI applications
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxConsoleAppTraitsBase: wxAppTraits implementation for the console apps
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxConsoleAppTraitsBase : public wxAppTraits
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
#if !wxUSE_CONSOLE_EVENTLOOP
|
|
||||||
virtual wxEventLoopBase *CreateEventLoop() { return NULL; }
|
|
||||||
#endif // !wxUSE_CONSOLE_EVENTLOOP
|
|
||||||
|
|
||||||
#if wxUSE_LOG
|
|
||||||
virtual wxLog *CreateLogTarget();
|
|
||||||
#endif // wxUSE_LOG
|
|
||||||
virtual wxMessageOutput *CreateMessageOutput();
|
|
||||||
#if wxUSE_FONTMAP
|
|
||||||
virtual wxFontMapper *CreateFontMapper();
|
|
||||||
#endif // wxUSE_FONTMAP
|
|
||||||
virtual wxRendererNative *CreateRenderer();
|
|
||||||
|
|
||||||
virtual bool ShowAssertDialog(const wxString& msg);
|
|
||||||
virtual bool HasStderr();
|
|
||||||
|
|
||||||
// the GetToolkitVersion for console application is always the same
|
|
||||||
virtual wxPortId GetToolkitVersion(int *verMaj = NULL, int *verMin = NULL) const
|
|
||||||
{
|
|
||||||
// no toolkits (wxBase is for console applications without GUI support)
|
|
||||||
// NB: zero means "no toolkit", -1 means "not initialized yet"
|
|
||||||
// so we must use zero here!
|
|
||||||
if (verMaj) *verMaj = 0;
|
|
||||||
if (verMin) *verMin = 0;
|
|
||||||
return wxPORT_BASE;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool IsUsingUniversalWidgets() const { return false; }
|
|
||||||
virtual wxString GetDesktopEnvironment() const { return wxEmptyString; }
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxGUIAppTraitsBase: wxAppTraits implementation for the GUI apps
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_GUI
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxGUIAppTraitsBase : public wxAppTraits
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
#if wxUSE_LOG
|
|
||||||
virtual wxLog *CreateLogTarget();
|
|
||||||
#endif // wxUSE_LOG
|
|
||||||
virtual wxMessageOutput *CreateMessageOutput();
|
|
||||||
#if wxUSE_FONTMAP
|
|
||||||
virtual wxFontMapper *CreateFontMapper();
|
|
||||||
#endif // wxUSE_FONTMAP
|
|
||||||
virtual wxRendererNative *CreateRenderer();
|
|
||||||
|
|
||||||
virtual bool ShowAssertDialog(const wxString& msg);
|
|
||||||
virtual bool HasStderr();
|
|
||||||
|
|
||||||
virtual bool IsUsingUniversalWidgets() const
|
|
||||||
{
|
|
||||||
#ifdef __WXUNIVERSAL__
|
|
||||||
return true;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual wxString GetDesktopEnvironment() const { return wxEmptyString; }
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_GUI
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include the platform-specific version of the classes above
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port
|
|
||||||
#if defined(__WIN32__)
|
|
||||||
#include "wx/msw/apptrait.h"
|
|
||||||
#elif defined(__OS2__)
|
|
||||||
#include "wx/os2/apptrait.h"
|
|
||||||
#elif defined(__UNIX__)
|
|
||||||
#include "wx/unix/apptrait.h"
|
|
||||||
#elif defined(__DOS__)
|
|
||||||
#include "wx/msdos/apptrait.h"
|
|
||||||
#else
|
|
||||||
#if wxUSE_GUI
|
|
||||||
class wxGUIAppTraits : public wxGUIAppTraitsBase
|
|
||||||
{
|
|
||||||
};
|
|
||||||
#endif // wxUSE_GUI
|
|
||||||
class wxConsoleAppTraits: public wxConsoleAppTraitsBase
|
|
||||||
{
|
|
||||||
};
|
|
||||||
#endif // platform
|
|
||||||
|
|
||||||
#endif // _WX_APPTRAIT_H_
|
|
||||||
|
|
|
@ -1,516 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/arrstr.h
|
|
||||||
// Purpose: wxArrayString class
|
|
||||||
// Author: Mattia Barbon and Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 07/07/03
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2003 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ARRSTR_H
|
|
||||||
#define _WX_ARRSTR_H
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/string.h"
|
|
||||||
|
|
||||||
// these functions are only used in STL build now but we define them in any
|
|
||||||
// case for compatibility with the existing code outside of the library which
|
|
||||||
// could be using them
|
|
||||||
inline int wxCMPFUNC_CONV wxStringSortAscending(wxString* s1, wxString* s2)
|
|
||||||
{
|
|
||||||
return s1->Cmp(*s2);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int wxCMPFUNC_CONV wxStringSortDescending(wxString* s1, wxString* s2)
|
|
||||||
{
|
|
||||||
return wxStringSortAscending(s2, s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if wxUSE_STD_CONTAINERS
|
|
||||||
|
|
||||||
#include "wx/dynarray.h"
|
|
||||||
|
|
||||||
typedef int (wxCMPFUNC_CONV *CMPFUNCwxString)(wxString*, wxString*);
|
|
||||||
typedef wxString _wxArraywxBaseArrayStringBase;
|
|
||||||
_WX_DECLARE_BASEARRAY_2(_wxArraywxBaseArrayStringBase, wxBaseArrayStringBase,
|
|
||||||
wxArray_SortFunction<wxString>,
|
|
||||||
class WXDLLIMPEXP_BASE);
|
|
||||||
WX_DEFINE_USER_EXPORTED_TYPEARRAY(wxString, wxArrayStringBase,
|
|
||||||
wxBaseArrayStringBase, WXDLLIMPEXP_BASE);
|
|
||||||
_WX_DEFINE_SORTED_TYPEARRAY_2(wxString, wxSortedArrayStringBase,
|
|
||||||
wxBaseArrayStringBase, = wxStringSortAscending,
|
|
||||||
class WXDLLIMPEXP_BASE, CMPFUNCwxString);
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxArrayString : public wxArrayStringBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// type of function used by wxArrayString::Sort()
|
|
||||||
typedef int (wxCMPFUNC_CONV *CompareFunction)(const wxString& first,
|
|
||||||
const wxString& second);
|
|
||||||
|
|
||||||
wxArrayString() { }
|
|
||||||
wxArrayString(const wxArrayString& a) : wxArrayStringBase(a) { }
|
|
||||||
wxArrayString(size_t sz, const char** a);
|
|
||||||
wxArrayString(size_t sz, const wchar_t** a);
|
|
||||||
wxArrayString(size_t sz, const wxString* a);
|
|
||||||
|
|
||||||
int Index(const wxString& str, bool bCase = true, bool bFromEnd = false) const;
|
|
||||||
|
|
||||||
void Sort(bool reverseOrder = false);
|
|
||||||
void Sort(CompareFunction function);
|
|
||||||
void Sort(CMPFUNCwxString function) { wxArrayStringBase::Sort(function); }
|
|
||||||
|
|
||||||
size_t Add(const wxString& string, size_t copies = 1)
|
|
||||||
{
|
|
||||||
wxArrayStringBase::Add(string, copies);
|
|
||||||
return size() - copies;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxSortedArrayString : public wxSortedArrayStringBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxSortedArrayString() : wxSortedArrayStringBase(wxStringSortAscending)
|
|
||||||
{ }
|
|
||||||
wxSortedArrayString(const wxSortedArrayString& array)
|
|
||||||
: wxSortedArrayStringBase(array)
|
|
||||||
{ }
|
|
||||||
wxSortedArrayString(const wxArrayString& src)
|
|
||||||
: wxSortedArrayStringBase(wxStringSortAscending)
|
|
||||||
{
|
|
||||||
reserve(src.size());
|
|
||||||
|
|
||||||
for ( size_t n = 0; n < src.size(); n++ )
|
|
||||||
Add(src[n]);
|
|
||||||
}
|
|
||||||
|
|
||||||
int Index(const wxString& str, bool bCase = true, bool bFromEnd = false) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void Insert()
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "wxSortedArrayString::Insert() is not to be used" );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Sort()
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "wxSortedArrayString::Sort() is not to be used" );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#else // if !wxUSE_STD_CONTAINERS
|
|
||||||
|
|
||||||
// this shouldn't be defined for compilers not supporting template methods or
|
|
||||||
// without std::distance()
|
|
||||||
//
|
|
||||||
// FIXME-VC6: currently it's only not defined for VC6 in DLL build as it
|
|
||||||
// doesn't export template methods from DLL correctly so even though
|
|
||||||
// it compiles them fine, we get link errors when using wxArrayString
|
|
||||||
#if !defined(__VISUALC6__) || !(defined(WXMAKINGDLL) || defined(WXUSINGDLL))
|
|
||||||
#define wxHAS_VECTOR_TEMPLATE_ASSIGN
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef wxHAS_VECTOR_TEMPLATE_ASSIGN
|
|
||||||
#include "wx/beforestd.h"
|
|
||||||
#include <iterator>
|
|
||||||
#include "wx/afterstd.h"
|
|
||||||
#endif // wxHAS_VECTOR_TEMPLATE_ASSIGN
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxArrayString
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// type of function used by wxArrayString::Sort()
|
|
||||||
typedef int (wxCMPFUNC_CONV *CompareFunction)(const wxString& first,
|
|
||||||
const wxString& second);
|
|
||||||
// type of function used by wxArrayString::Sort(), for compatibility with
|
|
||||||
// wxArray
|
|
||||||
typedef int (wxCMPFUNC_CONV *CompareFunction2)(wxString* first,
|
|
||||||
wxString* second);
|
|
||||||
|
|
||||||
// constructors and destructor
|
|
||||||
// default ctor
|
|
||||||
wxArrayString() { Init(false); }
|
|
||||||
// if autoSort is true, the array is always sorted (in alphabetical order)
|
|
||||||
//
|
|
||||||
// NB: the reason for using int and not bool is that like this we can avoid
|
|
||||||
// using this ctor for implicit conversions from "const char *" (which
|
|
||||||
// we'd like to be implicitly converted to wxString instead!). This
|
|
||||||
// wouldn't be needed if the 'explicit' keyword was supported by all
|
|
||||||
// compilers, or if this was protected ctor for wxSortedArrayString,
|
|
||||||
// but we're stuck with it now.
|
|
||||||
wxEXPLICIT wxArrayString(int autoSort) { Init(autoSort != 0); }
|
|
||||||
// C string array ctor
|
|
||||||
wxArrayString(size_t sz, const char** a);
|
|
||||||
wxArrayString(size_t sz, const wchar_t** a);
|
|
||||||
// wxString string array ctor
|
|
||||||
wxArrayString(size_t sz, const wxString* a);
|
|
||||||
// copy ctor
|
|
||||||
wxArrayString(const wxArrayString& array);
|
|
||||||
// assignment operator
|
|
||||||
wxArrayString& operator=(const wxArrayString& src);
|
|
||||||
// not virtual, this class should not be derived from
|
|
||||||
~wxArrayString();
|
|
||||||
|
|
||||||
// memory management
|
|
||||||
// empties the list, but doesn't release memory
|
|
||||||
void Empty();
|
|
||||||
// empties the list and releases memory
|
|
||||||
void Clear();
|
|
||||||
// preallocates memory for given number of items
|
|
||||||
void Alloc(size_t nCount);
|
|
||||||
// minimzes the memory usage (by freeing all extra memory)
|
|
||||||
void Shrink();
|
|
||||||
|
|
||||||
// simple accessors
|
|
||||||
// number of elements in the array
|
|
||||||
size_t GetCount() const { return m_nCount; }
|
|
||||||
// is it empty?
|
|
||||||
bool IsEmpty() const { return m_nCount == 0; }
|
|
||||||
// number of elements in the array (GetCount is preferred API)
|
|
||||||
size_t Count() const { return m_nCount; }
|
|
||||||
|
|
||||||
// items access (range checking is done in debug version)
|
|
||||||
// get item at position uiIndex
|
|
||||||
wxString& Item(size_t nIndex)
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( nIndex < m_nCount,
|
|
||||||
wxT("wxArrayString: index out of bounds") );
|
|
||||||
|
|
||||||
return m_pItems[nIndex];
|
|
||||||
}
|
|
||||||
const wxString& Item(size_t nIndex) const { return const_cast<wxArrayString*>(this)->Item(nIndex); }
|
|
||||||
|
|
||||||
// same as Item()
|
|
||||||
wxString& operator[](size_t nIndex) { return Item(nIndex); }
|
|
||||||
const wxString& operator[](size_t nIndex) const { return Item(nIndex); }
|
|
||||||
// get last item
|
|
||||||
wxString& Last()
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( !IsEmpty(),
|
|
||||||
wxT("wxArrayString: index out of bounds") );
|
|
||||||
return Item(GetCount() - 1);
|
|
||||||
}
|
|
||||||
const wxString& Last() const { return const_cast<wxArrayString*>(this)->Last(); }
|
|
||||||
|
|
||||||
|
|
||||||
// item management
|
|
||||||
// Search the element in the array, starting from the beginning if
|
|
||||||
// bFromEnd is false or from end otherwise. If bCase, comparison is case
|
|
||||||
// sensitive (default). Returns index of the first item matched or
|
|
||||||
// wxNOT_FOUND
|
|
||||||
int Index (const wxString& str, bool bCase = true, bool bFromEnd = false) const;
|
|
||||||
// add new element at the end (if the array is not sorted), return its
|
|
||||||
// index
|
|
||||||
size_t Add(const wxString& str, size_t nInsert = 1);
|
|
||||||
// add new element at given position
|
|
||||||
void Insert(const wxString& str, size_t uiIndex, size_t nInsert = 1);
|
|
||||||
// expand the array to have count elements
|
|
||||||
void SetCount(size_t count);
|
|
||||||
// remove first item matching this value
|
|
||||||
void Remove(const wxString& sz);
|
|
||||||
// remove item by index
|
|
||||||
void RemoveAt(size_t nIndex, size_t nRemove = 1);
|
|
||||||
|
|
||||||
// sorting
|
|
||||||
// sort array elements in alphabetical order (or reversed alphabetical
|
|
||||||
// order if reverseOrder parameter is true)
|
|
||||||
void Sort(bool reverseOrder = false);
|
|
||||||
// sort array elements using specified comparison function
|
|
||||||
void Sort(CompareFunction compareFunction);
|
|
||||||
void Sort(CompareFunction2 compareFunction);
|
|
||||||
|
|
||||||
// comparison
|
|
||||||
// compare two arrays case sensitively
|
|
||||||
bool operator==(const wxArrayString& a) const;
|
|
||||||
// compare two arrays case sensitively
|
|
||||||
bool operator!=(const wxArrayString& a) const { return !(*this == a); }
|
|
||||||
|
|
||||||
// STL-like interface
|
|
||||||
typedef wxString value_type;
|
|
||||||
typedef value_type* pointer;
|
|
||||||
typedef const value_type* const_pointer;
|
|
||||||
typedef value_type* iterator;
|
|
||||||
typedef const value_type* const_iterator;
|
|
||||||
typedef value_type& reference;
|
|
||||||
typedef const value_type& const_reference;
|
|
||||||
typedef int difference_type;
|
|
||||||
typedef size_t size_type;
|
|
||||||
|
|
||||||
// TODO: this code duplicates the one in dynarray.h
|
|
||||||
class reverse_iterator
|
|
||||||
{
|
|
||||||
typedef wxString value_type;
|
|
||||||
typedef value_type* pointer;
|
|
||||||
typedef value_type& reference;
|
|
||||||
typedef reverse_iterator itor;
|
|
||||||
friend itor operator+(int o, const itor& it);
|
|
||||||
friend itor operator+(const itor& it, int o);
|
|
||||||
friend itor operator-(const itor& it, int o);
|
|
||||||
friend difference_type operator -(const itor& i1, const itor& i2);
|
|
||||||
public:
|
|
||||||
pointer m_ptr;
|
|
||||||
reverse_iterator() : m_ptr(NULL) { }
|
|
||||||
wxEXPLICIT reverse_iterator(pointer ptr) : m_ptr(ptr) { }
|
|
||||||
reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { }
|
|
||||||
reference operator*() const { return *m_ptr; }
|
|
||||||
pointer operator->() const { return m_ptr; }
|
|
||||||
itor& operator++() { --m_ptr; return *this; }
|
|
||||||
const itor operator++(int)
|
|
||||||
{ reverse_iterator tmp = *this; --m_ptr; return tmp; }
|
|
||||||
itor& operator--() { ++m_ptr; return *this; }
|
|
||||||
const itor operator--(int) { itor tmp = *this; ++m_ptr; return tmp; }
|
|
||||||
bool operator ==(const itor& it) const { return m_ptr == it.m_ptr; }
|
|
||||||
bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; }
|
|
||||||
};
|
|
||||||
|
|
||||||
class const_reverse_iterator
|
|
||||||
{
|
|
||||||
typedef wxString value_type;
|
|
||||||
typedef const value_type* pointer;
|
|
||||||
typedef const value_type& reference;
|
|
||||||
typedef const_reverse_iterator itor;
|
|
||||||
friend itor operator+(int o, const itor& it);
|
|
||||||
friend itor operator+(const itor& it, int o);
|
|
||||||
friend itor operator-(const itor& it, int o);
|
|
||||||
friend difference_type operator -(const itor& i1, const itor& i2);
|
|
||||||
public:
|
|
||||||
pointer m_ptr;
|
|
||||||
const_reverse_iterator() : m_ptr(NULL) { }
|
|
||||||
wxEXPLICIT const_reverse_iterator(pointer ptr) : m_ptr(ptr) { }
|
|
||||||
const_reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { }
|
|
||||||
const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { }
|
|
||||||
reference operator*() const { return *m_ptr; }
|
|
||||||
pointer operator->() const { return m_ptr; }
|
|
||||||
itor& operator++() { --m_ptr; return *this; }
|
|
||||||
const itor operator++(int)
|
|
||||||
{ itor tmp = *this; --m_ptr; return tmp; }
|
|
||||||
itor& operator--() { ++m_ptr; return *this; }
|
|
||||||
const itor operator--(int) { itor tmp = *this; ++m_ptr; return tmp; }
|
|
||||||
bool operator ==(const itor& it) const { return m_ptr == it.m_ptr; }
|
|
||||||
bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; }
|
|
||||||
};
|
|
||||||
|
|
||||||
wxArrayString(const_iterator first, const_iterator last)
|
|
||||||
{ Init(false); assign(first, last); }
|
|
||||||
wxArrayString(size_type n, const_reference v) { Init(false); assign(n, v); }
|
|
||||||
|
|
||||||
#ifdef wxHAS_VECTOR_TEMPLATE_ASSIGN
|
|
||||||
template <class Iterator>
|
|
||||||
void assign(Iterator first, Iterator last)
|
|
||||||
{
|
|
||||||
clear();
|
|
||||||
reserve(std::distance(first, last));
|
|
||||||
for(; first != last; ++first)
|
|
||||||
push_back(*first);
|
|
||||||
}
|
|
||||||
#else // !wxHAS_VECTOR_TEMPLATE_ASSIGN
|
|
||||||
void assign(const_iterator first, const_iterator last)
|
|
||||||
{
|
|
||||||
clear();
|
|
||||||
reserve(last - first);
|
|
||||||
for(; first != last; ++first)
|
|
||||||
push_back(*first);
|
|
||||||
}
|
|
||||||
#endif // wxHAS_VECTOR_TEMPLATE_ASSIGN/!wxHAS_VECTOR_TEMPLATE_ASSIGN
|
|
||||||
|
|
||||||
void assign(size_type n, const_reference v)
|
|
||||||
{ clear(); Add(v, n); }
|
|
||||||
reference back() { return *(end() - 1); }
|
|
||||||
const_reference back() const { return *(end() - 1); }
|
|
||||||
iterator begin() { return m_pItems; }
|
|
||||||
const_iterator begin() const { return m_pItems; }
|
|
||||||
size_type capacity() const { return m_nSize; }
|
|
||||||
void clear() { Clear(); }
|
|
||||||
bool empty() const { return IsEmpty(); }
|
|
||||||
iterator end() { return begin() + GetCount(); }
|
|
||||||
const_iterator end() const { return begin() + GetCount(); }
|
|
||||||
iterator erase(iterator first, iterator last)
|
|
||||||
{
|
|
||||||
size_t idx = first - begin();
|
|
||||||
RemoveAt(idx, last - first);
|
|
||||||
return begin() + idx;
|
|
||||||
}
|
|
||||||
iterator erase(iterator it) { return erase(it, it + 1); }
|
|
||||||
reference front() { return *begin(); }
|
|
||||||
const_reference front() const { return *begin(); }
|
|
||||||
void insert(iterator it, size_type n, const_reference v)
|
|
||||||
{ Insert(v, it - begin(), n); }
|
|
||||||
iterator insert(iterator it, const_reference v = value_type())
|
|
||||||
{ size_t idx = it - begin(); Insert(v, idx); return begin() + idx; }
|
|
||||||
void insert(iterator it, const_iterator first, const_iterator last);
|
|
||||||
size_type max_size() const { return INT_MAX; }
|
|
||||||
void pop_back() { RemoveAt(GetCount() - 1); }
|
|
||||||
void push_back(const_reference v) { Add(v); }
|
|
||||||
reverse_iterator rbegin() { return reverse_iterator(end() - 1); }
|
|
||||||
const_reverse_iterator rbegin() const
|
|
||||||
{ return const_reverse_iterator(end() - 1); }
|
|
||||||
reverse_iterator rend() { return reverse_iterator(begin() - 1); }
|
|
||||||
const_reverse_iterator rend() const
|
|
||||||
{ return const_reverse_iterator(begin() - 1); }
|
|
||||||
void reserve(size_type n) /* base::reserve*/;
|
|
||||||
void resize(size_type n, value_type v = value_type());
|
|
||||||
size_type size() const { return GetCount(); }
|
|
||||||
void swap(wxArrayString& other)
|
|
||||||
{
|
|
||||||
wxSwap(m_nSize, other.m_nSize);
|
|
||||||
wxSwap(m_nCount, other.m_nCount);
|
|
||||||
wxSwap(m_pItems, other.m_pItems);
|
|
||||||
wxSwap(m_autoSort, other.m_autoSort);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void Init(bool autoSort); // common part of all ctors
|
|
||||||
void Copy(const wxArrayString& src); // copies the contents of another array
|
|
||||||
|
|
||||||
private:
|
|
||||||
void Grow(size_t nIncrement = 0); // makes array bigger if needed
|
|
||||||
|
|
||||||
size_t m_nSize, // current size of the array
|
|
||||||
m_nCount; // current number of elements
|
|
||||||
|
|
||||||
wxString *m_pItems; // pointer to data
|
|
||||||
|
|
||||||
bool m_autoSort; // if true, keep the array always sorted
|
|
||||||
};
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxSortedArrayString : public wxArrayString
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxSortedArrayString() : wxArrayString(true)
|
|
||||||
{ }
|
|
||||||
wxSortedArrayString(const wxArrayString& array) : wxArrayString(true)
|
|
||||||
{ Copy(array); }
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // !wxUSE_STD_CONTAINERS
|
|
||||||
|
|
||||||
// this class provides a temporary wxString* from a
|
|
||||||
// wxArrayString
|
|
||||||
class WXDLLIMPEXP_BASE wxCArrayString
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxCArrayString( const wxArrayString& array )
|
|
||||||
: m_array( array ), m_strings( NULL )
|
|
||||||
{ }
|
|
||||||
~wxCArrayString() { delete[] m_strings; }
|
|
||||||
|
|
||||||
size_t GetCount() const { return m_array.GetCount(); }
|
|
||||||
wxString* GetStrings()
|
|
||||||
{
|
|
||||||
if( m_strings ) return m_strings;
|
|
||||||
size_t count = m_array.GetCount();
|
|
||||||
m_strings = new wxString[count];
|
|
||||||
for( size_t i = 0; i < count; ++i )
|
|
||||||
m_strings[i] = m_array[i];
|
|
||||||
return m_strings;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString* Release()
|
|
||||||
{
|
|
||||||
wxString *r = GetStrings();
|
|
||||||
m_strings = NULL;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
const wxArrayString& m_array;
|
|
||||||
wxString* m_strings;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// helper functions for working with arrays
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// by default, these functions use the escape character to escape the
|
|
||||||
// separators occuring inside the string to be joined, this can be disabled by
|
|
||||||
// passing '\0' as escape
|
|
||||||
|
|
||||||
WXDLLIMPEXP_BASE wxString wxJoin(const wxArrayString& arr,
|
|
||||||
const wxChar sep,
|
|
||||||
const wxChar escape = wxT('\\'));
|
|
||||||
|
|
||||||
WXDLLIMPEXP_BASE wxArrayString wxSplit(const wxString& str,
|
|
||||||
const wxChar sep,
|
|
||||||
const wxChar escape = wxT('\\'));
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// This helper class allows to pass both C array of wxStrings or wxArrayString
|
|
||||||
// using the same interface.
|
|
||||||
//
|
|
||||||
// Use it when you have two methods taking wxArrayString or (int, wxString[]),
|
|
||||||
// that do the same thing. This class lets you iterate over input data in the
|
|
||||||
// same way whether it is a raw array of strings or wxArrayString.
|
|
||||||
//
|
|
||||||
// The object does not take ownership of the data -- internally it keeps
|
|
||||||
// pointers to the data, therefore the data must be disposed of by user
|
|
||||||
// and only after this object is destroyed. Usually it is not a problem as
|
|
||||||
// only temporary objects of this class are used.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class wxArrayStringsAdapter
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// construct an adapter from a wxArrayString
|
|
||||||
wxArrayStringsAdapter(const wxArrayString& strings)
|
|
||||||
: m_type(wxSTRING_ARRAY), m_size(strings.size())
|
|
||||||
{
|
|
||||||
m_data.array = &strings;
|
|
||||||
}
|
|
||||||
|
|
||||||
// construct an adapter from a wxString[]
|
|
||||||
wxArrayStringsAdapter(unsigned int n, const wxString *strings)
|
|
||||||
: m_type(wxSTRING_POINTER), m_size(n)
|
|
||||||
{
|
|
||||||
m_data.ptr = strings;
|
|
||||||
}
|
|
||||||
|
|
||||||
// construct an adapter from a single wxString
|
|
||||||
wxArrayStringsAdapter(const wxString& s)
|
|
||||||
: m_type(wxSTRING_POINTER), m_size(1)
|
|
||||||
{
|
|
||||||
m_data.ptr = &s;
|
|
||||||
}
|
|
||||||
|
|
||||||
// default copy constructor is ok
|
|
||||||
|
|
||||||
// iteration interface
|
|
||||||
size_t GetCount() const { return m_size; }
|
|
||||||
bool IsEmpty() const { return GetCount() == 0; }
|
|
||||||
const wxString& operator[] (unsigned int i) const
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( i < GetCount(), wxT("index out of bounds") );
|
|
||||||
if(m_type == wxSTRING_POINTER)
|
|
||||||
return m_data.ptr[i];
|
|
||||||
return m_data.array->Item(i);
|
|
||||||
}
|
|
||||||
wxArrayString AsArrayString() const
|
|
||||||
{
|
|
||||||
if(m_type == wxSTRING_ARRAY)
|
|
||||||
return *m_data.array;
|
|
||||||
return wxArrayString(GetCount(), m_data.ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// type of the data being held
|
|
||||||
enum wxStringContainerType
|
|
||||||
{
|
|
||||||
wxSTRING_ARRAY, // wxArrayString
|
|
||||||
wxSTRING_POINTER // wxString[]
|
|
||||||
};
|
|
||||||
|
|
||||||
wxStringContainerType m_type;
|
|
||||||
size_t m_size;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
const wxString * ptr;
|
|
||||||
const wxArrayString * array;
|
|
||||||
} m_data;
|
|
||||||
|
|
||||||
wxDECLARE_NO_ASSIGN_CLASS(wxArrayStringsAdapter);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _WX_ARRSTR_H
|
|
|
@ -1,262 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/artprov.h
|
|
||||||
// Purpose: wxArtProvider class
|
|
||||||
// Author: Vaclav Slavik
|
|
||||||
// Modified by:
|
|
||||||
// Created: 18/03/2002
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Vaclav Slavik
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ARTPROV_H_
|
|
||||||
#define _WX_ARTPROV_H_
|
|
||||||
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/bitmap.h"
|
|
||||||
#include "wx/icon.h"
|
|
||||||
#include "wx/iconbndl.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxArtProvidersList;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxArtProviderCache;
|
|
||||||
class wxArtProviderModule;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Types
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
typedef wxString wxArtClient;
|
|
||||||
typedef wxString wxArtID;
|
|
||||||
|
|
||||||
#define wxART_MAKE_CLIENT_ID_FROM_STR(id) ((id) + "_C")
|
|
||||||
#define wxART_MAKE_CLIENT_ID(id) (#id "_C")
|
|
||||||
#define wxART_MAKE_ART_ID_FROM_STR(id) (id)
|
|
||||||
#define wxART_MAKE_ART_ID(id) (#id)
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Art clients
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define wxART_TOOLBAR wxART_MAKE_CLIENT_ID(wxART_TOOLBAR)
|
|
||||||
#define wxART_MENU wxART_MAKE_CLIENT_ID(wxART_MENU)
|
|
||||||
#define wxART_FRAME_ICON wxART_MAKE_CLIENT_ID(wxART_FRAME_ICON)
|
|
||||||
|
|
||||||
#define wxART_CMN_DIALOG wxART_MAKE_CLIENT_ID(wxART_CMN_DIALOG)
|
|
||||||
#define wxART_HELP_BROWSER wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER)
|
|
||||||
#define wxART_MESSAGE_BOX wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX)
|
|
||||||
#define wxART_BUTTON wxART_MAKE_CLIENT_ID(wxART_BUTTON)
|
|
||||||
#define wxART_LIST wxART_MAKE_CLIENT_ID(wxART_LIST)
|
|
||||||
|
|
||||||
#define wxART_OTHER wxART_MAKE_CLIENT_ID(wxART_OTHER)
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Art IDs
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define wxART_ADD_BOOKMARK wxART_MAKE_ART_ID(wxART_ADD_BOOKMARK)
|
|
||||||
#define wxART_DEL_BOOKMARK wxART_MAKE_ART_ID(wxART_DEL_BOOKMARK)
|
|
||||||
#define wxART_HELP_SIDE_PANEL wxART_MAKE_ART_ID(wxART_HELP_SIDE_PANEL)
|
|
||||||
#define wxART_HELP_SETTINGS wxART_MAKE_ART_ID(wxART_HELP_SETTINGS)
|
|
||||||
#define wxART_HELP_BOOK wxART_MAKE_ART_ID(wxART_HELP_BOOK)
|
|
||||||
#define wxART_HELP_FOLDER wxART_MAKE_ART_ID(wxART_HELP_FOLDER)
|
|
||||||
#define wxART_HELP_PAGE wxART_MAKE_ART_ID(wxART_HELP_PAGE)
|
|
||||||
#define wxART_GO_BACK wxART_MAKE_ART_ID(wxART_GO_BACK)
|
|
||||||
#define wxART_GO_FORWARD wxART_MAKE_ART_ID(wxART_GO_FORWARD)
|
|
||||||
#define wxART_GO_UP wxART_MAKE_ART_ID(wxART_GO_UP)
|
|
||||||
#define wxART_GO_DOWN wxART_MAKE_ART_ID(wxART_GO_DOWN)
|
|
||||||
#define wxART_GO_TO_PARENT wxART_MAKE_ART_ID(wxART_GO_TO_PARENT)
|
|
||||||
#define wxART_GO_HOME wxART_MAKE_ART_ID(wxART_GO_HOME)
|
|
||||||
#define wxART_GOTO_FIRST wxART_MAKE_ART_ID(wxART_GOTO_FIRST)
|
|
||||||
#define wxART_GOTO_LAST wxART_MAKE_ART_ID(wxART_GOTO_LAST)
|
|
||||||
#define wxART_FILE_OPEN wxART_MAKE_ART_ID(wxART_FILE_OPEN)
|
|
||||||
#define wxART_FILE_SAVE wxART_MAKE_ART_ID(wxART_FILE_SAVE)
|
|
||||||
#define wxART_FILE_SAVE_AS wxART_MAKE_ART_ID(wxART_FILE_SAVE_AS)
|
|
||||||
#define wxART_PRINT wxART_MAKE_ART_ID(wxART_PRINT)
|
|
||||||
#define wxART_HELP wxART_MAKE_ART_ID(wxART_HELP)
|
|
||||||
#define wxART_TIP wxART_MAKE_ART_ID(wxART_TIP)
|
|
||||||
#define wxART_REPORT_VIEW wxART_MAKE_ART_ID(wxART_REPORT_VIEW)
|
|
||||||
#define wxART_LIST_VIEW wxART_MAKE_ART_ID(wxART_LIST_VIEW)
|
|
||||||
#define wxART_NEW_DIR wxART_MAKE_ART_ID(wxART_NEW_DIR)
|
|
||||||
#define wxART_HARDDISK wxART_MAKE_ART_ID(wxART_HARDDISK)
|
|
||||||
#define wxART_FLOPPY wxART_MAKE_ART_ID(wxART_FLOPPY)
|
|
||||||
#define wxART_CDROM wxART_MAKE_ART_ID(wxART_CDROM)
|
|
||||||
#define wxART_REMOVABLE wxART_MAKE_ART_ID(wxART_REMOVABLE)
|
|
||||||
#define wxART_FOLDER wxART_MAKE_ART_ID(wxART_FOLDER)
|
|
||||||
#define wxART_FOLDER_OPEN wxART_MAKE_ART_ID(wxART_FOLDER_OPEN)
|
|
||||||
#define wxART_GO_DIR_UP wxART_MAKE_ART_ID(wxART_GO_DIR_UP)
|
|
||||||
#define wxART_EXECUTABLE_FILE wxART_MAKE_ART_ID(wxART_EXECUTABLE_FILE)
|
|
||||||
#define wxART_NORMAL_FILE wxART_MAKE_ART_ID(wxART_NORMAL_FILE)
|
|
||||||
#define wxART_TICK_MARK wxART_MAKE_ART_ID(wxART_TICK_MARK)
|
|
||||||
#define wxART_CROSS_MARK wxART_MAKE_ART_ID(wxART_CROSS_MARK)
|
|
||||||
#define wxART_ERROR wxART_MAKE_ART_ID(wxART_ERROR)
|
|
||||||
#define wxART_QUESTION wxART_MAKE_ART_ID(wxART_QUESTION)
|
|
||||||
#define wxART_WARNING wxART_MAKE_ART_ID(wxART_WARNING)
|
|
||||||
#define wxART_INFORMATION wxART_MAKE_ART_ID(wxART_INFORMATION)
|
|
||||||
#define wxART_MISSING_IMAGE wxART_MAKE_ART_ID(wxART_MISSING_IMAGE)
|
|
||||||
|
|
||||||
#define wxART_COPY wxART_MAKE_ART_ID(wxART_COPY)
|
|
||||||
#define wxART_CUT wxART_MAKE_ART_ID(wxART_CUT)
|
|
||||||
#define wxART_PASTE wxART_MAKE_ART_ID(wxART_PASTE)
|
|
||||||
#define wxART_DELETE wxART_MAKE_ART_ID(wxART_DELETE)
|
|
||||||
#define wxART_NEW wxART_MAKE_ART_ID(wxART_NEW)
|
|
||||||
|
|
||||||
#define wxART_UNDO wxART_MAKE_ART_ID(wxART_UNDO)
|
|
||||||
#define wxART_REDO wxART_MAKE_ART_ID(wxART_REDO)
|
|
||||||
|
|
||||||
#define wxART_PLUS wxART_MAKE_ART_ID(wxART_PLUS)
|
|
||||||
#define wxART_MINUS wxART_MAKE_ART_ID(wxART_MINUS)
|
|
||||||
|
|
||||||
#define wxART_CLOSE wxART_MAKE_ART_ID(wxART_CLOSE)
|
|
||||||
#define wxART_QUIT wxART_MAKE_ART_ID(wxART_QUIT)
|
|
||||||
|
|
||||||
#define wxART_FIND wxART_MAKE_ART_ID(wxART_FIND)
|
|
||||||
#define wxART_FIND_AND_REPLACE wxART_MAKE_ART_ID(wxART_FIND_AND_REPLACE)
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxArtProvider class
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxArtProvider : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// Dtor removes the provider from providers stack if it's still on it
|
|
||||||
virtual ~wxArtProvider();
|
|
||||||
|
|
||||||
// Does this platform implement native icons theme?
|
|
||||||
static bool HasNativeProvider();
|
|
||||||
|
|
||||||
// Add new provider to the top of providers stack (i.e. the provider will
|
|
||||||
// be queried first of all).
|
|
||||||
static void Push(wxArtProvider *provider);
|
|
||||||
|
|
||||||
// Add new provider to the bottom of providers stack (i.e. the provider
|
|
||||||
// will be queried as the last one).
|
|
||||||
static void PushBack(wxArtProvider *provider);
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_8
|
|
||||||
// use PushBack(), it's the same thing
|
|
||||||
static wxDEPRECATED( void Insert(wxArtProvider *provider) );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Remove latest added provider and delete it.
|
|
||||||
static bool Pop();
|
|
||||||
|
|
||||||
// Remove provider from providers stack but don't delete it.
|
|
||||||
static bool Remove(wxArtProvider *provider);
|
|
||||||
|
|
||||||
// Delete the given provider and remove it from the providers stack.
|
|
||||||
static bool Delete(wxArtProvider *provider);
|
|
||||||
|
|
||||||
|
|
||||||
// Query the providers for bitmap with given ID and return it. Return
|
|
||||||
// wxNullBitmap if no provider provides it.
|
|
||||||
static wxBitmap GetBitmap(const wxArtID& id,
|
|
||||||
const wxArtClient& client = wxART_OTHER,
|
|
||||||
const wxSize& size = wxDefaultSize);
|
|
||||||
|
|
||||||
// Query the providers for icon with given ID and return it. Return
|
|
||||||
// wxNullIcon if no provider provides it.
|
|
||||||
static wxIcon GetIcon(const wxArtID& id,
|
|
||||||
const wxArtClient& client = wxART_OTHER,
|
|
||||||
const wxSize& size = wxDefaultSize);
|
|
||||||
|
|
||||||
// Helper used by GetMessageBoxIcon(): return the art id corresponding to
|
|
||||||
// the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only one
|
|
||||||
// can be set)
|
|
||||||
static wxArtID GetMessageBoxIconId(int flags);
|
|
||||||
|
|
||||||
// Helper used by several generic classes: return the icon corresponding to
|
|
||||||
// the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only one
|
|
||||||
// can be set)
|
|
||||||
static wxIcon GetMessageBoxIcon(int flags)
|
|
||||||
{
|
|
||||||
return GetIcon(GetMessageBoxIconId(flags), wxART_MESSAGE_BOX);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Query the providers for iconbundle with given ID and return it. Return
|
|
||||||
// wxNullIconBundle if no provider provides it.
|
|
||||||
static wxIconBundle GetIconBundle(const wxArtID& id,
|
|
||||||
const wxArtClient& client = wxART_OTHER);
|
|
||||||
|
|
||||||
// Gets native size for given 'client' or wxDefaultSize if it doesn't
|
|
||||||
// have native equivalent
|
|
||||||
static wxSize GetNativeSizeHint(const wxArtClient& client);
|
|
||||||
|
|
||||||
// Get the size hint of an icon from a specific wxArtClient, queries
|
|
||||||
// the topmost provider if platform_dependent = false
|
|
||||||
static wxSize GetSizeHint(const wxArtClient& client, bool platform_dependent = false);
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
// use the corresponding methods without redundant "Provider" suffix
|
|
||||||
static wxDEPRECATED( void PushProvider(wxArtProvider *provider) );
|
|
||||||
static wxDEPRECATED( void InsertProvider(wxArtProvider *provider) );
|
|
||||||
static wxDEPRECATED( bool PopProvider() );
|
|
||||||
|
|
||||||
// use Delete() if this is what you really need, or just delete the
|
|
||||||
// provider pointer, do not use Remove() as it does not delete the pointer
|
|
||||||
// unlike RemoveProvider() which does
|
|
||||||
static wxDEPRECATED( bool RemoveProvider(wxArtProvider *provider) );
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_6
|
|
||||||
|
|
||||||
protected:
|
|
||||||
friend class wxArtProviderModule;
|
|
||||||
#if wxUSE_ARTPROVIDER_STD
|
|
||||||
// Initializes default provider
|
|
||||||
static void InitStdProvider();
|
|
||||||
#endif // wxUSE_ARTPROVIDER_STD
|
|
||||||
// Initializes Tango-based icon provider
|
|
||||||
#if wxUSE_ARTPROVIDER_TANGO
|
|
||||||
static void InitTangoProvider();
|
|
||||||
#endif // wxUSE_ARTPROVIDER_TANGO
|
|
||||||
// Initializes platform's native provider, if available (e.g. GTK2)
|
|
||||||
static void InitNativeProvider();
|
|
||||||
// Destroy caches & all providers
|
|
||||||
static void CleanUpProviders();
|
|
||||||
|
|
||||||
// Get the default size of an icon for a specific client
|
|
||||||
virtual wxSize DoGetSizeHint(const wxArtClient& client)
|
|
||||||
{
|
|
||||||
return GetSizeHint(client, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Derived classes must override CreateBitmap or CreateIconBundle
|
|
||||||
// (or both) to create requested art resource. This method is called
|
|
||||||
// only once per instance's lifetime for each requested wxArtID.
|
|
||||||
virtual wxBitmap CreateBitmap(const wxArtID& WXUNUSED(id),
|
|
||||||
const wxArtClient& WXUNUSED(client),
|
|
||||||
const wxSize& WXUNUSED(size))
|
|
||||||
{
|
|
||||||
return wxNullBitmap;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual wxIconBundle CreateIconBundle(const wxArtID& WXUNUSED(id),
|
|
||||||
const wxArtClient& WXUNUSED(client))
|
|
||||||
{
|
|
||||||
return wxNullIconBundle;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
static void CommonAddingProvider();
|
|
||||||
static wxIconBundle DoGetIconBundle(const wxArtID& id,
|
|
||||||
const wxArtClient& client);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// list of providers:
|
|
||||||
static wxArtProvidersList *sm_providers;
|
|
||||||
// art resources cache (so that CreateXXX is not called that often):
|
|
||||||
static wxArtProviderCache *sm_cache;
|
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxArtProvider)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#if !defined(__WXUNIVERSAL__) && \
|
|
||||||
((defined(__WXGTK__) && defined(__WXGTK20__)) || defined(__WXMSW__) || \
|
|
||||||
defined(__WXMAC__))
|
|
||||||
// *some* (partial) native implementation of wxArtProvider exists; this is
|
|
||||||
// not the same as wxArtProvider::HasNativeProvider()!
|
|
||||||
#define wxHAS_NATIVE_ART_PROVIDER_IMPL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // _WX_ARTPROV_H_
|
|
|
@ -1,160 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/atomic.h
|
|
||||||
// Purpose: functions to manipulate atomically integers and pointers
|
|
||||||
// Author: Armel Asselin
|
|
||||||
// Created: 12/13/2006
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Armel Asselin
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_ATOMIC_H_
|
|
||||||
#define _WX_ATOMIC_H_
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// headers
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// get the value of wxUSE_THREADS configuration flag
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
// constraints on the various functions:
|
|
||||||
// - wxAtomicDec must return a zero value if the value is zero once
|
|
||||||
// decremented else it must return any non-zero value (the true value is OK
|
|
||||||
// but not necessary).
|
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
|
||||||
|
|
||||||
#if defined(HAVE_GCC_ATOMIC_BUILTINS)
|
|
||||||
|
|
||||||
// NB: we intentionally don't use Linux's asm/atomic.h header, because it's
|
|
||||||
// an internal kernel header that doesn't always work in userspace:
|
|
||||||
// http://bugs.mysql.com/bug.php?id=28456
|
|
||||||
// http://golubenco.org/blog/atomic-operations/
|
|
||||||
|
|
||||||
inline void wxAtomicInc (wxUint32 &value)
|
|
||||||
{
|
|
||||||
__sync_fetch_and_add(&value, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline wxUint32 wxAtomicDec (wxUint32 &value)
|
|
||||||
{
|
|
||||||
return __sync_sub_and_fetch(&value, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#elif defined(__WINDOWS__)
|
|
||||||
|
|
||||||
// include standard Windows headers
|
|
||||||
#include "wx/msw/wrapwin.h"
|
|
||||||
|
|
||||||
inline void wxAtomicInc (wxUint32 &value)
|
|
||||||
{
|
|
||||||
InterlockedIncrement ((LONG*)&value);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline wxUint32 wxAtomicDec (wxUint32 &value)
|
|
||||||
{
|
|
||||||
return InterlockedDecrement ((LONG*)&value);
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined(__WXMAC__) || defined(__DARWIN__)
|
|
||||||
|
|
||||||
#include "libkern/OSAtomic.h"
|
|
||||||
inline void wxAtomicInc (wxUint32 &value)
|
|
||||||
{
|
|
||||||
OSAtomicIncrement32 ((int32_t*)&value);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline wxUint32 wxAtomicDec (wxUint32 &value)
|
|
||||||
{
|
|
||||||
return OSAtomicDecrement32 ((int32_t*)&value);
|
|
||||||
}
|
|
||||||
|
|
||||||
#elif defined (__SOLARIS__)
|
|
||||||
|
|
||||||
#include <atomic.h>
|
|
||||||
|
|
||||||
inline void wxAtomicInc (wxUint32 &value)
|
|
||||||
{
|
|
||||||
atomic_add_32 ((uint32_t*)&value, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline wxUint32 wxAtomicDec (wxUint32 &value)
|
|
||||||
{
|
|
||||||
return atomic_add_32_nv ((uint32_t*)&value, (uint32_t)-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#else // unknown platform
|
|
||||||
|
|
||||||
// it will result in inclusion if the generic implementation code a bit later in this page
|
|
||||||
#define wxNEEDS_GENERIC_ATOMIC_OPS
|
|
||||||
|
|
||||||
#endif // unknown platform
|
|
||||||
|
|
||||||
#else // else of wxUSE_THREADS
|
|
||||||
// if no threads are used we can safely use simple ++/--
|
|
||||||
|
|
||||||
inline void wxAtomicInc (wxUint32 &value) { ++value; }
|
|
||||||
inline wxUint32 wxAtomicDec (wxUint32 &value) { return --value; }
|
|
||||||
|
|
||||||
#endif // !wxUSE_THREADS
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// proxies to actual implementations, but for various other types with same
|
|
||||||
// behaviour
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifdef wxNEEDS_GENERIC_ATOMIC_OPS
|
|
||||||
|
|
||||||
#include "wx/thread.h" // for wxCriticalSection
|
|
||||||
|
|
||||||
class wxAtomicInt32
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxAtomicInt32() { } // non initialized for consistency with basic int type
|
|
||||||
wxAtomicInt32(wxInt32 v) : m_value(v) { }
|
|
||||||
wxAtomicInt32(const wxAtomicInt32& a) : m_value(a.m_value) {}
|
|
||||||
|
|
||||||
operator wxInt32() const { return m_value; }
|
|
||||||
operator volatile wxInt32&() { return m_value; }
|
|
||||||
|
|
||||||
wxAtomicInt32& operator=(wxInt32 v) { m_value = v; return *this; }
|
|
||||||
|
|
||||||
void Inc()
|
|
||||||
{
|
|
||||||
wxCriticalSectionLocker lock(m_locker);
|
|
||||||
++m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxInt32 Dec()
|
|
||||||
{
|
|
||||||
wxCriticalSectionLocker lock(m_locker);
|
|
||||||
return --m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
volatile wxInt32 m_value;
|
|
||||||
wxCriticalSection m_locker;
|
|
||||||
};
|
|
||||||
|
|
||||||
inline void wxAtomicInc(wxAtomicInt32 &value) { value.Inc(); }
|
|
||||||
inline wxInt32 wxAtomicDec(wxAtomicInt32 &value) { return value.Dec(); }
|
|
||||||
|
|
||||||
#else // !wxNEEDS_GENERIC_ATOMIC_OPS
|
|
||||||
|
|
||||||
#define wxHAS_ATOMIC_OPS
|
|
||||||
|
|
||||||
inline void wxAtomicInc(wxInt32 &value) { wxAtomicInc((wxUint32&)value); }
|
|
||||||
inline wxInt32 wxAtomicDec(wxInt32 &value) { return wxAtomicDec((wxUint32&)value); }
|
|
||||||
|
|
||||||
typedef wxInt32 wxAtomicInt32;
|
|
||||||
|
|
||||||
#endif // wxNEEDS_GENERIC_ATOMIC_OPS
|
|
||||||
|
|
||||||
// all the native implementations use 32 bits currently
|
|
||||||
// for a 64 bits implementation we could use (a future) wxAtomicInt64 as
|
|
||||||
// default type
|
|
||||||
typedef wxAtomicInt32 wxAtomicInt;
|
|
||||||
|
|
||||||
#endif // _WX_ATOMIC_H_
|
|
|
@ -1,122 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/base64.h
|
|
||||||
// Purpose: declaration of BASE64 encoding/decoding functionality
|
|
||||||
// Author: Charles Reimers, Vadim Zeitlin
|
|
||||||
// Created: 2007-06-18
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BASE64_H_
|
|
||||||
#define _WX_BASE64_H_
|
|
||||||
|
|
||||||
#if wxUSE_BASE64
|
|
||||||
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/buffer.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// encoding functions
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// return the size needed for the buffer containing the encoded representation
|
|
||||||
// of a buffer of given length
|
|
||||||
inline size_t wxBase64EncodedSize(size_t len) { return 4*((len+2)/3); }
|
|
||||||
|
|
||||||
// raw base64 encoding function which encodes the contents of a buffer of the
|
|
||||||
// specified length into the buffer of the specified size
|
|
||||||
//
|
|
||||||
// returns the length of the encoded data or wxCONV_FAILED if the buffer is not
|
|
||||||
// large enough; to determine the needed size you can either allocate a buffer
|
|
||||||
// of wxBase64EncodedSize(srcLen) size or call the function with NULL buffer in
|
|
||||||
// which case the required size will be returned
|
|
||||||
WXDLLIMPEXP_BASE size_t
|
|
||||||
wxBase64Encode(char *dst, size_t dstLen, const void *src, size_t srcLen);
|
|
||||||
|
|
||||||
// encode the contents of the given buffer using base64 and return as string
|
|
||||||
// (there is no error return)
|
|
||||||
inline wxString wxBase64Encode(const void *src, size_t srcLen)
|
|
||||||
{
|
|
||||||
const size_t dstLen = wxBase64EncodedSize(srcLen);
|
|
||||||
wxCharBuffer dst(dstLen);
|
|
||||||
wxBase64Encode(dst.data(), dstLen, src, srcLen);
|
|
||||||
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline wxString wxBase64Encode(const wxMemoryBuffer& buf)
|
|
||||||
{
|
|
||||||
return wxBase64Encode(buf.GetData(), buf.GetDataLen());
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// decoding functions
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// elements of this enum specify the possible behaviours of wxBase64Decode()
|
|
||||||
// when an invalid character is encountered
|
|
||||||
enum wxBase64DecodeMode
|
|
||||||
{
|
|
||||||
// normal behaviour: stop at any invalid characters
|
|
||||||
wxBase64DecodeMode_Strict,
|
|
||||||
|
|
||||||
// skip whitespace characters
|
|
||||||
wxBase64DecodeMode_SkipWS,
|
|
||||||
|
|
||||||
// the most lenient behaviour: simply ignore all invalid characters
|
|
||||||
wxBase64DecodeMode_Relaxed
|
|
||||||
};
|
|
||||||
|
|
||||||
// return the buffer size necessary for decoding a base64 string of the given
|
|
||||||
// length
|
|
||||||
inline size_t wxBase64DecodedSize(size_t srcLen) { return 3*srcLen/4; }
|
|
||||||
|
|
||||||
// raw decoding function which decodes the contents of the string of specified
|
|
||||||
// length (or NUL-terminated by default) into the provided buffer of the given
|
|
||||||
// size
|
|
||||||
//
|
|
||||||
// the function normally stops at any character invalid inside a base64-encoded
|
|
||||||
// string (i.e. not alphanumeric nor '+' nor '/') but can be made to skip the
|
|
||||||
// whitespace or all invalid characters using its mode argument
|
|
||||||
//
|
|
||||||
// returns the length of the decoded data or wxCONV_FAILED if an error occurs
|
|
||||||
// such as the buffer is too small or the encoded string is invalid; in the
|
|
||||||
// latter case the posErr is filled with the position where the decoding
|
|
||||||
// stopped if it is not NULL
|
|
||||||
WXDLLIMPEXP_BASE size_t
|
|
||||||
wxBase64Decode(void *dst, size_t dstLen,
|
|
||||||
const char *src, size_t srcLen = wxNO_LEN,
|
|
||||||
wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
|
|
||||||
size_t *posErr = NULL);
|
|
||||||
|
|
||||||
inline size_t
|
|
||||||
wxBase64Decode(void *dst, size_t dstLen,
|
|
||||||
const wxString& src,
|
|
||||||
wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
|
|
||||||
size_t *posErr = NULL)
|
|
||||||
{
|
|
||||||
// don't use str.length() here as the ASCII buffer is shorter than it for
|
|
||||||
// strings with embedded NULs
|
|
||||||
return wxBase64Decode(dst, dstLen, src.ToAscii(), wxNO_LEN, mode, posErr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// decode the contents of the given string; the returned buffer is empty if an
|
|
||||||
// error occurs during decoding
|
|
||||||
WXDLLIMPEXP_BASE wxMemoryBuffer
|
|
||||||
wxBase64Decode(const char *src, size_t srcLen = wxNO_LEN,
|
|
||||||
wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
|
|
||||||
size_t *posErr = NULL);
|
|
||||||
|
|
||||||
inline wxMemoryBuffer
|
|
||||||
wxBase64Decode(const wxString& src,
|
|
||||||
wxBase64DecodeMode mode = wxBase64DecodeMode_Strict,
|
|
||||||
size_t *posErr = NULL)
|
|
||||||
{
|
|
||||||
// don't use str.length() here as the ASCII buffer is shorter than it for
|
|
||||||
// strings with embedded NULs
|
|
||||||
return wxBase64Decode(src.ToAscii(), wxNO_LEN, mode, posErr);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_BASE64
|
|
||||||
|
|
||||||
#endif // _WX_BASE64_H_
|
|
|
@ -1,297 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/bitmap.h
|
|
||||||
// Purpose: wxBitmap class interface
|
|
||||||
// Author: Vaclav Slavik
|
|
||||||
// Modified by:
|
|
||||||
// Created: 22.04.01
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BITMAP_H_BASE_
|
|
||||||
#define _WX_BITMAP_H_BASE_
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// headers
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/gdicmn.h" // for wxBitmapType
|
|
||||||
#include "wx/colour.h"
|
|
||||||
#include "wx/image.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxIcon;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxMask;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxPalette;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxVariant support
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_VARIANT
|
|
||||||
#include "wx/variant.h"
|
|
||||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxBitmap,WXDLLIMPEXP_CORE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxMask represents the transparent area of the bitmap
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// TODO: all implementation of wxMask, except the generic one,
|
|
||||||
// do not derive from wxMaskBase,,, they should
|
|
||||||
class WXDLLIMPEXP_CORE wxMaskBase : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// create the mask from bitmap pixels of the given colour
|
|
||||||
bool Create(const wxBitmap& bitmap, const wxColour& colour);
|
|
||||||
|
|
||||||
#if wxUSE_PALETTE
|
|
||||||
// create the mask from bitmap pixels with the given palette index
|
|
||||||
bool Create(const wxBitmap& bitmap, int paletteIndex);
|
|
||||||
#endif // wxUSE_PALETTE
|
|
||||||
|
|
||||||
// create the mask from the given mono bitmap
|
|
||||||
bool Create(const wxBitmap& bitmap);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// this function is called from Create() to free the existing mask data
|
|
||||||
virtual void FreeData() = 0;
|
|
||||||
|
|
||||||
// these functions must be overridden to implement the corresponding public
|
|
||||||
// Create() methods, they shouldn't call FreeData() as it's already called
|
|
||||||
// by the public wrappers
|
|
||||||
virtual bool InitFromColour(const wxBitmap& bitmap,
|
|
||||||
const wxColour& colour) = 0;
|
|
||||||
virtual bool InitFromMonoBitmap(const wxBitmap& bitmap) = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__WXDFB__) || \
|
|
||||||
defined(__WXMAC__) || \
|
|
||||||
defined(__WXGTK__) || \
|
|
||||||
defined(__WXCOCOA__) || \
|
|
||||||
defined(__WXMOTIF__) || \
|
|
||||||
defined(__WXX11__)
|
|
||||||
#define wxUSE_BITMAP_BASE 1
|
|
||||||
#else
|
|
||||||
#define wxUSE_BITMAP_BASE 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// a more readable way to tell
|
|
||||||
#define wxBITMAP_SCREEN_DEPTH (-1)
|
|
||||||
|
|
||||||
|
|
||||||
// All ports except wxMSW and wxOS2 use wxBitmapHandler and wxBitmapBase as
|
|
||||||
// base class for wxBitmapHandler; wxMSW and wxOS2 use wxGDIImageHandler as
|
|
||||||
// base class since it allows some code reuse there.
|
|
||||||
#if wxUSE_BITMAP_BASE
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxBitmapHandler: class which knows how to create/load/save bitmaps in
|
|
||||||
// different formats
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxBitmapHandler : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxBitmapHandler() { m_type = wxBITMAP_TYPE_INVALID; }
|
|
||||||
virtual ~wxBitmapHandler() { }
|
|
||||||
|
|
||||||
// NOTE: the following functions should be pure virtuals, but they aren't
|
|
||||||
// because otherwise almost all ports would have to implement
|
|
||||||
// them as "return false"...
|
|
||||||
|
|
||||||
virtual bool Create(wxBitmap *WXUNUSED(bitmap), const void* WXUNUSED(data),
|
|
||||||
wxBitmapType WXUNUSED(type), int WXUNUSED(width), int WXUNUSED(height),
|
|
||||||
int WXUNUSED(depth) = 1)
|
|
||||||
{ return false; }
|
|
||||||
|
|
||||||
virtual bool LoadFile(wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name),
|
|
||||||
wxBitmapType WXUNUSED(type), int WXUNUSED(desiredWidth),
|
|
||||||
int WXUNUSED(desiredHeight))
|
|
||||||
{ return false; }
|
|
||||||
|
|
||||||
virtual bool SaveFile(const wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name),
|
|
||||||
wxBitmapType WXUNUSED(type), const wxPalette *WXUNUSED(palette) = NULL) const
|
|
||||||
{ return false; }
|
|
||||||
|
|
||||||
void SetName(const wxString& name) { m_name = name; }
|
|
||||||
void SetExtension(const wxString& ext) { m_extension = ext; }
|
|
||||||
void SetType(wxBitmapType type) { m_type = type; }
|
|
||||||
const wxString& GetName() const { return m_name; }
|
|
||||||
const wxString& GetExtension() const { return m_extension; }
|
|
||||||
wxBitmapType GetType() const { return m_type; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxString m_name;
|
|
||||||
wxString m_extension;
|
|
||||||
wxBitmapType m_type;
|
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxBitmapHandler)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxBitmap: class which represents platform-dependent bitmap (unlike wxImage)
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxBitmapBase : public wxGDIObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/*
|
|
||||||
Derived class must implement these:
|
|
||||||
|
|
||||||
wxBitmap();
|
|
||||||
wxBitmap(const wxBitmap& bmp);
|
|
||||||
wxBitmap(const char bits[], int width, int height, int depth = 1);
|
|
||||||
wxBitmap(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH);
|
|
||||||
wxBitmap(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH);
|
|
||||||
wxBitmap(const char* const* bits);
|
|
||||||
wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM);
|
|
||||||
wxBitmap(const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH);
|
|
||||||
|
|
||||||
static void InitStandardHandlers();
|
|
||||||
*/
|
|
||||||
|
|
||||||
virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH) = 0;
|
|
||||||
virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH) = 0;
|
|
||||||
|
|
||||||
virtual int GetHeight() const = 0;
|
|
||||||
virtual int GetWidth() const = 0;
|
|
||||||
virtual int GetDepth() const = 0;
|
|
||||||
|
|
||||||
wxSize GetSize() const
|
|
||||||
{ return wxSize(GetWidth(), GetHeight()); }
|
|
||||||
|
|
||||||
#if wxUSE_IMAGE
|
|
||||||
virtual wxImage ConvertToImage() const = 0;
|
|
||||||
|
|
||||||
// Convert to disabled (dimmed) bitmap.
|
|
||||||
wxBitmap ConvertToDisabled(unsigned char brightness = 255) const;
|
|
||||||
#endif // wxUSE_IMAGE
|
|
||||||
|
|
||||||
virtual wxMask *GetMask() const = 0;
|
|
||||||
virtual void SetMask(wxMask *mask) = 0;
|
|
||||||
|
|
||||||
virtual wxBitmap GetSubBitmap(const wxRect& rect) const = 0;
|
|
||||||
|
|
||||||
virtual bool SaveFile(const wxString &name, wxBitmapType type,
|
|
||||||
const wxPalette *palette = NULL) const = 0;
|
|
||||||
virtual bool LoadFile(const wxString &name, wxBitmapType type) = 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
If raw bitmap access is supported (see wx/rawbmp.h), the following
|
|
||||||
methods should be implemented:
|
|
||||||
|
|
||||||
virtual bool GetRawData(wxRawBitmapData *data) = 0;
|
|
||||||
virtual void UngetRawData(wxRawBitmapData *data) = 0;
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if wxUSE_PALETTE
|
|
||||||
virtual wxPalette *GetPalette() const = 0;
|
|
||||||
virtual void SetPalette(const wxPalette& palette) = 0;
|
|
||||||
#endif // wxUSE_PALETTE
|
|
||||||
|
|
||||||
// copies the contents and mask of the given (colour) icon to the bitmap
|
|
||||||
virtual bool CopyFromIcon(const wxIcon& icon) = 0;
|
|
||||||
|
|
||||||
// implementation:
|
|
||||||
virtual void SetHeight(int height) = 0;
|
|
||||||
virtual void SetWidth(int width) = 0;
|
|
||||||
virtual void SetDepth(int depth) = 0;
|
|
||||||
|
|
||||||
// Format handling
|
|
||||||
static inline wxList& GetHandlers() { return sm_handlers; }
|
|
||||||
static void AddHandler(wxBitmapHandler *handler);
|
|
||||||
static void InsertHandler(wxBitmapHandler *handler);
|
|
||||||
static bool RemoveHandler(const wxString& name);
|
|
||||||
static wxBitmapHandler *FindHandler(const wxString& name);
|
|
||||||
static wxBitmapHandler *FindHandler(const wxString& extension, wxBitmapType bitmapType);
|
|
||||||
static wxBitmapHandler *FindHandler(wxBitmapType bitmapType);
|
|
||||||
|
|
||||||
//static void InitStandardHandlers();
|
|
||||||
// (wxBitmap must implement this one)
|
|
||||||
|
|
||||||
static void CleanUpHandlers();
|
|
||||||
|
|
||||||
// this method is only used by the generic implementation of wxMask
|
|
||||||
// currently but could be useful elsewhere in the future: it can be
|
|
||||||
// overridden to quantize the colour to correspond to bitmap colour depth
|
|
||||||
// if necessary; default implementation simply returns the colour as is
|
|
||||||
virtual wxColour QuantizeColour(const wxColour& colour) const
|
|
||||||
{
|
|
||||||
return colour;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
static wxList sm_handlers;
|
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxBitmapBase)
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_BITMAP_BASE
|
|
||||||
|
|
||||||
|
|
||||||
// the wxBITMAP_DEFAULT_TYPE constant defines the default argument value
|
|
||||||
// for wxBitmap's ctor and wxBitmap::LoadFile() functions.
|
|
||||||
#if defined(__WXMSW__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE
|
|
||||||
#include "wx/msw/bitmap.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
||||||
#include "wx/x11/bitmap.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#ifdef __WINDOWS__
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE
|
|
||||||
#else
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
||||||
#endif
|
|
||||||
#include "wx/gtk/bitmap.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
||||||
#include "wx/gtk1/bitmap.h"
|
|
||||||
#elif defined(__WXX11__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM
|
|
||||||
#include "wx/x11/bitmap.h"
|
|
||||||
#elif defined(__WXDFB__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE
|
|
||||||
#include "wx/dfb/bitmap.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_PICT_RESOURCE
|
|
||||||
#include "wx/osx/bitmap.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE
|
|
||||||
#include "wx/cocoa/bitmap.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE
|
|
||||||
#include "wx/os2/bitmap.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_IMAGE
|
|
||||||
inline
|
|
||||||
wxBitmap
|
|
||||||
#if wxUSE_BITMAP_BASE
|
|
||||||
wxBitmapBase::
|
|
||||||
#else
|
|
||||||
wxBitmap::
|
|
||||||
#endif
|
|
||||||
ConvertToDisabled(unsigned char brightness) const
|
|
||||||
{
|
|
||||||
return ConvertToImage().ConvertToDisabled(brightness);
|
|
||||||
}
|
|
||||||
#endif // wxUSE_IMAGE
|
|
||||||
|
|
||||||
// we must include generic mask.h after wxBitmap definition
|
|
||||||
#if defined(__WXDFB__)
|
|
||||||
#define wxUSE_GENERIC_MASK 1
|
|
||||||
#else
|
|
||||||
#define wxUSE_GENERIC_MASK 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_GENERIC_MASK
|
|
||||||
#include "wx/generic/mask.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // _WX_BITMAP_H_BASE_
|
|
|
@ -1,137 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/bmpbuttn.h
|
|
||||||
// Purpose: wxBitmapButton class interface
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 25.08.00
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2000 Vadim Zeitlin
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BMPBUTTON_H_BASE_
|
|
||||||
#define _WX_BMPBUTTON_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_BMPBUTTON
|
|
||||||
|
|
||||||
#include "wx/button.h"
|
|
||||||
|
|
||||||
// FIXME: right now only wxMSW, wxGTK and wxOSX implement bitmap support in wxButton
|
|
||||||
// itself, this shouldn't be used for the other platforms neither
|
|
||||||
// when all of them do it
|
|
||||||
#if (defined(__WXMSW__) || defined(__WXGTK20__) || defined(__WXOSX__)) && !defined(__WXUNIVERSAL__)
|
|
||||||
#define wxHAS_BUTTON_BITMAP
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxBitmapButton: a button which shows bitmaps instead of the usual string.
|
|
||||||
// It has different bitmaps for different states (focused/disabled/pressed)
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxBitmapButtonBase : public wxButton
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxBitmapButtonBase()
|
|
||||||
{
|
|
||||||
#ifndef wxHAS_BUTTON_BITMAP
|
|
||||||
m_marginX =
|
|
||||||
m_marginY = 0;
|
|
||||||
#endif // wxHAS_BUTTON_BITMAP
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Create(wxWindow *parent,
|
|
||||||
wxWindowID winid,
|
|
||||||
const wxPoint& pos,
|
|
||||||
const wxSize& size,
|
|
||||||
long style,
|
|
||||||
const wxValidator& validator,
|
|
||||||
const wxString& name)
|
|
||||||
{
|
|
||||||
// We use wxBU_NOTEXT to let the base class Create() know that we are
|
|
||||||
// not going to show the label: this is a hack needed for wxGTK where
|
|
||||||
// we can show both label and bitmap only with GTK 2.6+ but we always
|
|
||||||
// can show just one of them and this style allows us to choose which
|
|
||||||
// one we need.
|
|
||||||
//
|
|
||||||
// And we also use wxBU_EXACTFIT to avoid being resized up to the
|
|
||||||
// standard button size as this doesn't make sense for bitmap buttons
|
|
||||||
// which are not standard anyhow and should fit their bitmap size.
|
|
||||||
return wxButton::Create(parent, winid, "",
|
|
||||||
pos, size,
|
|
||||||
style | wxBU_NOTEXT | wxBU_EXACTFIT,
|
|
||||||
validator, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// set/get the margins around the button
|
|
||||||
virtual void SetMargins(int x, int y)
|
|
||||||
{
|
|
||||||
DoSetBitmapMargins(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
int GetMarginX() const { return DoGetBitmapMargins().x; }
|
|
||||||
int GetMarginY() const { return DoGetBitmapMargins().y; }
|
|
||||||
|
|
||||||
// deprecated synonym for SetBitmapLabel()
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
wxDEPRECATED_INLINE( void SetLabel(const wxBitmap& bitmap),
|
|
||||||
SetBitmapLabel(bitmap); )
|
|
||||||
|
|
||||||
// prevent virtual function hiding
|
|
||||||
virtual void SetLabel(const wxString& label)
|
|
||||||
{ wxWindow::SetLabel(label); }
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_6
|
|
||||||
|
|
||||||
protected:
|
|
||||||
#ifndef wxHAS_BUTTON_BITMAP
|
|
||||||
// function called when any of the bitmaps changes
|
|
||||||
virtual void OnSetBitmap() { InvalidateBestSize(); Refresh(); }
|
|
||||||
|
|
||||||
virtual wxBitmap DoGetBitmap(State which) const { return m_bitmaps[which]; }
|
|
||||||
virtual void DoSetBitmap(const wxBitmap& bitmap, State which)
|
|
||||||
{ m_bitmaps[which] = bitmap; OnSetBitmap(); }
|
|
||||||
|
|
||||||
virtual wxSize DoGetBitmapMargins() const
|
|
||||||
{
|
|
||||||
return wxSize(m_marginX, m_marginY);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void DoSetBitmapMargins(int x, int y)
|
|
||||||
{
|
|
||||||
m_marginX = x;
|
|
||||||
m_marginY = y;
|
|
||||||
}
|
|
||||||
|
|
||||||
// the bitmaps for various states
|
|
||||||
wxBitmap m_bitmaps[State_Max];
|
|
||||||
|
|
||||||
// the margins around the bitmap
|
|
||||||
int m_marginX,
|
|
||||||
m_marginY;
|
|
||||||
#endif // !wxHAS_BUTTON_BITMAP
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxBitmapButtonBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/bmpbuttn.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/bmpbuttn.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/bmpbuttn.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/bmpbuttn.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/bmpbuttn.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/bmpbuttn.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/bmpbuttn.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/bmpbuttn.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_BMPBUTTON
|
|
||||||
|
|
||||||
#endif // _WX_BMPBUTTON_H_BASE_
|
|
|
@ -1,137 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/brush.h
|
|
||||||
// Purpose: Includes platform-specific wxBrush file
|
|
||||||
// Author: Julian Smart
|
|
||||||
// Modified by:
|
|
||||||
// Created:
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: Julian Smart
|
|
||||||
// Licence: wxWindows Licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BRUSH_H_BASE_
|
|
||||||
#define _WX_BRUSH_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/object.h"
|
|
||||||
#include "wx/gdiobj.h"
|
|
||||||
#include "wx/gdicmn.h" // for wxGDIObjListBase
|
|
||||||
|
|
||||||
// NOTE: these values cannot be combined together!
|
|
||||||
enum wxBrushStyle
|
|
||||||
{
|
|
||||||
wxBRUSHSTYLE_INVALID = -1,
|
|
||||||
|
|
||||||
wxBRUSHSTYLE_SOLID = wxSOLID,
|
|
||||||
wxBRUSHSTYLE_TRANSPARENT = wxTRANSPARENT,
|
|
||||||
wxBRUSHSTYLE_STIPPLE_MASK_OPAQUE = wxSTIPPLE_MASK_OPAQUE,
|
|
||||||
wxBRUSHSTYLE_STIPPLE_MASK = wxSTIPPLE_MASK,
|
|
||||||
wxBRUSHSTYLE_STIPPLE = wxSTIPPLE,
|
|
||||||
wxBRUSHSTYLE_BDIAGONAL_HATCH = wxHATCHSTYLE_BDIAGONAL,
|
|
||||||
wxBRUSHSTYLE_CROSSDIAG_HATCH = wxHATCHSTYLE_CROSSDIAG,
|
|
||||||
wxBRUSHSTYLE_FDIAGONAL_HATCH = wxHATCHSTYLE_FDIAGONAL,
|
|
||||||
wxBRUSHSTYLE_CROSS_HATCH = wxHATCHSTYLE_CROSS,
|
|
||||||
wxBRUSHSTYLE_HORIZONTAL_HATCH = wxHATCHSTYLE_HORIZONTAL,
|
|
||||||
wxBRUSHSTYLE_VERTICAL_HATCH = wxHATCHSTYLE_VERTICAL,
|
|
||||||
wxBRUSHSTYLE_FIRST_HATCH = wxHATCHSTYLE_FIRST,
|
|
||||||
wxBRUSHSTYLE_LAST_HATCH = wxHATCHSTYLE_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// wxBrushBase
|
|
||||||
class WXDLLIMPEXP_CORE wxBrushBase: public wxGDIObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual ~wxBrushBase() { }
|
|
||||||
|
|
||||||
virtual void SetColour(const wxColour& col) = 0;
|
|
||||||
virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) = 0;
|
|
||||||
virtual void SetStyle(wxBrushStyle style) = 0;
|
|
||||||
virtual void SetStipple(const wxBitmap& stipple) = 0;
|
|
||||||
|
|
||||||
virtual wxColour GetColour() const = 0;
|
|
||||||
virtual wxBrushStyle GetStyle() const = 0;
|
|
||||||
virtual wxBitmap *GetStipple() const = 0;
|
|
||||||
|
|
||||||
virtual bool IsHatch() const
|
|
||||||
{ return (GetStyle()>=wxBRUSHSTYLE_FIRST_HATCH) && (GetStyle()<=wxBRUSHSTYLE_LAST_HATCH); }
|
|
||||||
|
|
||||||
// Convenient helpers for testing whether the brush is a transparent one:
|
|
||||||
// unlike GetStyle() == wxBRUSHSTYLE_TRANSPARENT, they work correctly even
|
|
||||||
// if the brush is invalid (they both return false in this case).
|
|
||||||
bool IsTransparent() const
|
|
||||||
{
|
|
||||||
return IsOk() && GetStyle() == wxBRUSHSTYLE_TRANSPARENT;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IsNonTransparent() const
|
|
||||||
{
|
|
||||||
return IsOk() && GetStyle() != wxBRUSHSTYLE_TRANSPARENT;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
|
||||||
#include "wx/msw/brush.h"
|
|
||||||
#elif defined(__WXMOTIF__) || defined(__WXX11__)
|
|
||||||
#include "wx/x11/brush.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/brush.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/brush.h"
|
|
||||||
#elif defined(__WXDFB__)
|
|
||||||
#include "wx/dfb/brush.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/brush.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/brush.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/brush.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxBrushList: public wxGDIObjListBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxBrush *FindOrCreateBrush(const wxColour& colour,
|
|
||||||
wxBrushStyle style = wxBRUSHSTYLE_SOLID);
|
|
||||||
|
|
||||||
#if FUTURE_WXWIN_COMPATIBILITY_3_0
|
|
||||||
wxBrush *FindOrCreateBrush(const wxColour& colour, int style)
|
|
||||||
{ return FindOrCreateBrush(colour, (wxBrushStyle)style); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
wxDEPRECATED( void AddBrush(wxBrush*) );
|
|
||||||
wxDEPRECATED( void RemoveBrush(wxBrush*) );
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(wxBrushList*) wxTheBrushList;
|
|
||||||
|
|
||||||
// provide comparison operators to allow code such as
|
|
||||||
//
|
|
||||||
// if ( brush.GetStyle() == wxTRANSPARENT )
|
|
||||||
//
|
|
||||||
// to compile without warnings which it would otherwise provoke from some
|
|
||||||
// compilers as it compares elements of different enums
|
|
||||||
#if FUTURE_WXWIN_COMPATIBILITY_3_0
|
|
||||||
|
|
||||||
// Unfortunately some compilers have ambiguity issues when enum comparisons are
|
|
||||||
// overloaded so we have to disable the overloads in this case, see
|
|
||||||
// wxCOMPILER_NO_OVERLOAD_ON_ENUM definition in wx/platform.h for more details.
|
|
||||||
#ifndef wxCOMPILER_NO_OVERLOAD_ON_ENUM
|
|
||||||
|
|
||||||
inline bool operator==(wxBrushStyle s, wxDeprecatedGUIConstants t)
|
|
||||||
{
|
|
||||||
return static_cast<int>(s) == static_cast<int>(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool operator!=(wxBrushStyle s, wxDeprecatedGUIConstants t)
|
|
||||||
{
|
|
||||||
return !(s == t);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxCOMPILER_NO_OVERLOAD_ON_ENUM
|
|
||||||
|
|
||||||
#endif // FUTURE_WXWIN_COMPATIBILITY_3_0
|
|
||||||
|
|
||||||
#endif // _WX_BRUSH_H_BASE_
|
|
|
@ -1,611 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/buffer.h
|
|
||||||
// Purpose: auto buffer classes: buffers which automatically free memory
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 12.04.99
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BUFFER_H
|
|
||||||
#define _WX_BUFFER_H
|
|
||||||
|
|
||||||
#include "wx/chartype.h"
|
|
||||||
#include "wx/wxcrtbase.h"
|
|
||||||
|
|
||||||
#include <stdlib.h> // malloc() and free()
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxCStrData;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Special classes for (wide) character strings: they use malloc/free instead
|
|
||||||
// of new/delete
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// helpers used by wxCharTypeBuffer
|
|
||||||
namespace wxPrivate
|
|
||||||
{
|
|
||||||
|
|
||||||
struct UntypedBufferData
|
|
||||||
{
|
|
||||||
enum Kind
|
|
||||||
{
|
|
||||||
Owned,
|
|
||||||
NonOwned
|
|
||||||
};
|
|
||||||
|
|
||||||
UntypedBufferData(void *str, size_t len, Kind kind = Owned)
|
|
||||||
: m_str(str), m_length(len), m_ref(1), m_owned(kind == Owned) {}
|
|
||||||
|
|
||||||
~UntypedBufferData()
|
|
||||||
{
|
|
||||||
if ( m_owned )
|
|
||||||
free(m_str);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *m_str;
|
|
||||||
size_t m_length;
|
|
||||||
|
|
||||||
// "short" to have sizeof(Data)=12 on 32bit archs
|
|
||||||
unsigned short m_ref;
|
|
||||||
|
|
||||||
bool m_owned;
|
|
||||||
};
|
|
||||||
|
|
||||||
// NB: this is defined in string.cpp and not the (non-existent) buffer.cpp
|
|
||||||
WXDLLIMPEXP_BASE UntypedBufferData * GetUntypedNullData();
|
|
||||||
|
|
||||||
} // namespace wxPrivate
|
|
||||||
|
|
||||||
|
|
||||||
// Reference-counted character buffer for storing string data. The buffer
|
|
||||||
// is only valid for as long as the "parent" object that provided the data
|
|
||||||
// is valid; see wxCharTypeBuffer<T> for persistent variant.
|
|
||||||
template <typename T>
|
|
||||||
class wxScopedCharTypeBuffer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef T CharType;
|
|
||||||
|
|
||||||
wxScopedCharTypeBuffer()
|
|
||||||
{
|
|
||||||
m_data = GetNullData();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creates "non-owned" buffer, i.e. 'str' is not owned by the buffer
|
|
||||||
// and doesn't get freed by dtor. Used e.g. to point to wxString's internal
|
|
||||||
// storage.
|
|
||||||
static
|
|
||||||
const wxScopedCharTypeBuffer CreateNonOwned(const CharType *str,
|
|
||||||
size_t len = wxNO_LEN)
|
|
||||||
{
|
|
||||||
if ( len == wxNO_LEN )
|
|
||||||
len = wxStrlen(str);
|
|
||||||
|
|
||||||
wxScopedCharTypeBuffer buf;
|
|
||||||
if ( str )
|
|
||||||
buf.m_data = new Data(const_cast<CharType*>(str), len, Data::NonOwned);
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creates "owned" buffer, i.e. takes over ownership of 'str' and frees it
|
|
||||||
// in dtor (if ref.count reaches 0).
|
|
||||||
static
|
|
||||||
const wxScopedCharTypeBuffer CreateOwned(CharType *str,
|
|
||||||
size_t len = wxNO_LEN )
|
|
||||||
{
|
|
||||||
if ( len == wxNO_LEN )
|
|
||||||
len = wxStrlen(str);
|
|
||||||
|
|
||||||
wxScopedCharTypeBuffer buf;
|
|
||||||
if ( str )
|
|
||||||
buf.m_data = new Data(str, len);
|
|
||||||
return buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxScopedCharTypeBuffer(const wxScopedCharTypeBuffer& src)
|
|
||||||
{
|
|
||||||
m_data = src.m_data;
|
|
||||||
IncRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxScopedCharTypeBuffer& operator=(const wxScopedCharTypeBuffer& src)
|
|
||||||
{
|
|
||||||
if ( &src == this )
|
|
||||||
return *this;
|
|
||||||
|
|
||||||
DecRef();
|
|
||||||
m_data = src.m_data;
|
|
||||||
IncRef();
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
~wxScopedCharTypeBuffer()
|
|
||||||
{
|
|
||||||
DecRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
// NB: this method is only const for backward compatibility. It used to
|
|
||||||
// be needed for auto_ptr-like semantics of the copy ctor, but now
|
|
||||||
// that ref-counting is used, it's not really needed.
|
|
||||||
CharType *release() const
|
|
||||||
{
|
|
||||||
if ( m_data == GetNullData() )
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
wxASSERT_MSG( m_data->m_owned, wxT("can't release non-owned buffer") );
|
|
||||||
wxASSERT_MSG( m_data->m_ref == 1, wxT("can't release shared buffer") );
|
|
||||||
|
|
||||||
CharType * const p = m_data->Get();
|
|
||||||
|
|
||||||
wxScopedCharTypeBuffer *self = const_cast<wxScopedCharTypeBuffer*>(this);
|
|
||||||
self->m_data->Set(NULL, 0);
|
|
||||||
self->DecRef();
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
void reset()
|
|
||||||
{
|
|
||||||
DecRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
CharType *data() { return m_data->Get(); }
|
|
||||||
const CharType *data() const { return m_data->Get(); }
|
|
||||||
operator const CharType *() const { return data(); }
|
|
||||||
CharType operator[](size_t n) const { return data()[n]; }
|
|
||||||
|
|
||||||
size_t length() const { return m_data->m_length; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// reference-counted data
|
|
||||||
struct Data : public wxPrivate::UntypedBufferData
|
|
||||||
{
|
|
||||||
Data(CharType *str, size_t len, Kind kind = Owned)
|
|
||||||
: wxPrivate::UntypedBufferData(str, len, kind)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
CharType *Get() const { return static_cast<CharType *>(m_str); }
|
|
||||||
void Set(CharType *str, size_t len)
|
|
||||||
{
|
|
||||||
m_str = str;
|
|
||||||
m_length = len;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// placeholder for NULL string, to simplify this code
|
|
||||||
static Data *GetNullData()
|
|
||||||
{
|
|
||||||
return static_cast<Data *>(wxPrivate::GetUntypedNullData());
|
|
||||||
}
|
|
||||||
|
|
||||||
void IncRef()
|
|
||||||
{
|
|
||||||
if ( m_data == GetNullData() ) // exception, not ref-counted
|
|
||||||
return;
|
|
||||||
m_data->m_ref++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DecRef()
|
|
||||||
{
|
|
||||||
if ( m_data == GetNullData() ) // exception, not ref-counted
|
|
||||||
return;
|
|
||||||
if ( --m_data->m_ref == 0 )
|
|
||||||
delete m_data;
|
|
||||||
m_data = GetNullData();
|
|
||||||
}
|
|
||||||
|
|
||||||
// sets this object to a be copy of 'other'; if 'src' is non-owned,
|
|
||||||
// a deep copy is made and 'this' will contain new instance of the data
|
|
||||||
void MakeOwnedCopyOf(const wxScopedCharTypeBuffer& src)
|
|
||||||
{
|
|
||||||
this->DecRef();
|
|
||||||
|
|
||||||
if ( src.m_data == this->GetNullData() )
|
|
||||||
{
|
|
||||||
this->m_data = this->GetNullData();
|
|
||||||
}
|
|
||||||
else if ( src.m_data->m_owned )
|
|
||||||
{
|
|
||||||
this->m_data = src.m_data;
|
|
||||||
this->IncRef();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// if the scoped buffer had non-owned data, we have to make
|
|
||||||
// a copy here, because src.m_data->m_str is valid only for as long
|
|
||||||
// as 'src' exists
|
|
||||||
this->m_data = new Data
|
|
||||||
(
|
|
||||||
StrCopy(src.data(), src.length()),
|
|
||||||
src.length()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static CharType *StrCopy(const CharType *src, size_t len)
|
|
||||||
{
|
|
||||||
CharType *dst = (CharType*)malloc(sizeof(CharType) * (len + 1));
|
|
||||||
memcpy(dst, src, sizeof(CharType) * (len + 1));
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
Data *m_data;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef wxScopedCharTypeBuffer<char> wxScopedCharBuffer;
|
|
||||||
typedef wxScopedCharTypeBuffer<wchar_t> wxScopedWCharBuffer;
|
|
||||||
|
|
||||||
|
|
||||||
// this buffer class always stores data in "owned" (persistent) manner
|
|
||||||
template <typename T>
|
|
||||||
class wxCharTypeBuffer : public wxScopedCharTypeBuffer<T>
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
typedef typename wxScopedCharTypeBuffer<T>::Data Data;
|
|
||||||
|
|
||||||
public:
|
|
||||||
typedef T CharType;
|
|
||||||
|
|
||||||
wxCharTypeBuffer(const CharType *str = NULL, size_t len = wxNO_LEN)
|
|
||||||
{
|
|
||||||
if ( str )
|
|
||||||
{
|
|
||||||
if ( len == wxNO_LEN )
|
|
||||||
len = wxStrlen(str);
|
|
||||||
this->m_data = new Data(this->StrCopy(str, len), len);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this->m_data = this->GetNullData();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCharTypeBuffer(size_t len)
|
|
||||||
{
|
|
||||||
this->m_data =
|
|
||||||
new Data((CharType *)malloc((len + 1)*sizeof(CharType)), len);
|
|
||||||
this->m_data->Get()[len] = (CharType)0;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCharTypeBuffer(const wxCharTypeBuffer& src)
|
|
||||||
: wxScopedCharTypeBuffer<T>(src) {}
|
|
||||||
|
|
||||||
wxCharTypeBuffer& operator=(const CharType *str)
|
|
||||||
{
|
|
||||||
this->DecRef();
|
|
||||||
|
|
||||||
if ( str )
|
|
||||||
this->m_data = new Data(wxStrdup(str), wxStrlen(str));
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCharTypeBuffer& operator=(const wxCharTypeBuffer& src)
|
|
||||||
{
|
|
||||||
wxScopedCharTypeBuffer<T>::operator=(src);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCharTypeBuffer(const wxScopedCharTypeBuffer<T>& src)
|
|
||||||
{
|
|
||||||
this->MakeOwnedCopyOf(src);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCharTypeBuffer& operator=(const wxScopedCharTypeBuffer<T>& src)
|
|
||||||
{
|
|
||||||
MakeOwnedCopyOf(src);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool extend(size_t len)
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( this->m_data->m_owned, "cannot extend non-owned buffer" );
|
|
||||||
wxASSERT_MSG( this->m_data->m_ref == 1, "can't extend shared buffer" );
|
|
||||||
|
|
||||||
CharType *str =
|
|
||||||
(CharType *)realloc(this->data(), (len + 1) * sizeof(CharType));
|
|
||||||
if ( !str )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// For consistency with the ctor taking just the length, NUL-terminate
|
|
||||||
// the buffer.
|
|
||||||
str[len] = (CharType)0;
|
|
||||||
|
|
||||||
if ( this->m_data == this->GetNullData() )
|
|
||||||
{
|
|
||||||
this->m_data = new Data(str, len);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this->m_data->Set(str, len);
|
|
||||||
this->m_data->m_owned = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void shrink(size_t len)
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( this->m_data->m_owned, "cannot shrink non-owned buffer" );
|
|
||||||
wxASSERT_MSG( this->m_data->m_ref == 1, "can't shrink shared buffer" );
|
|
||||||
|
|
||||||
wxASSERT( len <= this->length() );
|
|
||||||
|
|
||||||
this->m_data->m_length = len;
|
|
||||||
this->data()[len] = 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE( wxScopedCharTypeBuffer<char> )
|
|
||||||
WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE( wxCharTypeBuffer<char> )
|
|
||||||
|
|
||||||
class wxCharBuffer : public wxCharTypeBuffer<char>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef wxCharTypeBuffer<char> wxCharTypeBufferBase;
|
|
||||||
typedef wxScopedCharTypeBuffer<char> wxScopedCharTypeBufferBase;
|
|
||||||
|
|
||||||
wxCharBuffer(const wxCharTypeBufferBase& buf)
|
|
||||||
: wxCharTypeBufferBase(buf) {}
|
|
||||||
wxCharBuffer(const wxScopedCharTypeBufferBase& buf)
|
|
||||||
: wxCharTypeBufferBase(buf) {}
|
|
||||||
|
|
||||||
wxCharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {}
|
|
||||||
wxCharBuffer(size_t len) : wxCharTypeBufferBase(len) {}
|
|
||||||
|
|
||||||
wxCharBuffer(const wxCStrData& cstr);
|
|
||||||
};
|
|
||||||
|
|
||||||
WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE( wxScopedCharTypeBuffer<wchar_t> )
|
|
||||||
WXDLLIMPEXP_TEMPLATE_INSTANCE_BASE( wxCharTypeBuffer<wchar_t> )
|
|
||||||
|
|
||||||
class wxWCharBuffer : public wxCharTypeBuffer<wchar_t>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef wxCharTypeBuffer<wchar_t> wxCharTypeBufferBase;
|
|
||||||
typedef wxScopedCharTypeBuffer<wchar_t> wxScopedCharTypeBufferBase;
|
|
||||||
|
|
||||||
wxWCharBuffer(const wxCharTypeBufferBase& buf)
|
|
||||||
: wxCharTypeBufferBase(buf) {}
|
|
||||||
wxWCharBuffer(const wxScopedCharTypeBufferBase& buf)
|
|
||||||
: wxCharTypeBufferBase(buf) {}
|
|
||||||
|
|
||||||
wxWCharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {}
|
|
||||||
wxWCharBuffer(size_t len) : wxCharTypeBufferBase(len) {}
|
|
||||||
|
|
||||||
wxWCharBuffer(const wxCStrData& cstr);
|
|
||||||
};
|
|
||||||
|
|
||||||
// wxCharTypeBuffer<T> implicitly convertible to T*
|
|
||||||
template <typename T>
|
|
||||||
class wxWritableCharTypeBuffer : public wxCharTypeBuffer<T>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef typename wxScopedCharTypeBuffer<T>::CharType CharType;
|
|
||||||
|
|
||||||
wxWritableCharTypeBuffer(const wxScopedCharTypeBuffer<T>& src)
|
|
||||||
: wxCharTypeBuffer<T>(src) {}
|
|
||||||
// FIXME-UTF8: this won't be needed after converting mb_str()/wc_str() to
|
|
||||||
// always return a buffer
|
|
||||||
// + we should derive this class from wxScopedCharTypeBuffer
|
|
||||||
// then
|
|
||||||
wxWritableCharTypeBuffer(const CharType *str = NULL)
|
|
||||||
: wxCharTypeBuffer<T>(str) {}
|
|
||||||
|
|
||||||
operator CharType*() { return this->data(); }
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef wxWritableCharTypeBuffer<char> wxWritableCharBuffer;
|
|
||||||
typedef wxWritableCharTypeBuffer<wchar_t> wxWritableWCharBuffer;
|
|
||||||
|
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
#define wxWxCharBuffer wxWCharBuffer
|
|
||||||
|
|
||||||
#define wxMB2WXbuf wxWCharBuffer
|
|
||||||
#define wxWX2MBbuf wxCharBuffer
|
|
||||||
#if wxUSE_UNICODE_WCHAR
|
|
||||||
#define wxWC2WXbuf wxChar*
|
|
||||||
#define wxWX2WCbuf wxChar*
|
|
||||||
#elif wxUSE_UNICODE_UTF8
|
|
||||||
#define wxWC2WXbuf wxWCharBuffer
|
|
||||||
#define wxWX2WCbuf wxWCharBuffer
|
|
||||||
#endif
|
|
||||||
#else // ANSI
|
|
||||||
#define wxWxCharBuffer wxCharBuffer
|
|
||||||
|
|
||||||
#define wxMB2WXbuf wxChar*
|
|
||||||
#define wxWX2MBbuf wxChar*
|
|
||||||
#define wxWC2WXbuf wxCharBuffer
|
|
||||||
#define wxWX2WCbuf wxWCharBuffer
|
|
||||||
#endif // Unicode/ANSI
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// A class for holding growable data buffers (not necessarily strings)
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// This class manages the actual data buffer pointer and is ref-counted.
|
|
||||||
class wxMemoryBufferData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// the initial size and also the size added by ResizeIfNeeded()
|
|
||||||
enum { DefBufSize = 1024 };
|
|
||||||
|
|
||||||
friend class wxMemoryBuffer;
|
|
||||||
|
|
||||||
// everyting is private as it can only be used by wxMemoryBuffer
|
|
||||||
private:
|
|
||||||
wxMemoryBufferData(size_t size = wxMemoryBufferData::DefBufSize)
|
|
||||||
: m_data(size ? malloc(size) : NULL), m_size(size), m_len(0), m_ref(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
~wxMemoryBufferData() { free(m_data); }
|
|
||||||
|
|
||||||
|
|
||||||
void ResizeIfNeeded(size_t newSize)
|
|
||||||
{
|
|
||||||
if (newSize > m_size)
|
|
||||||
{
|
|
||||||
void *dataOld = m_data;
|
|
||||||
m_data = realloc(m_data, newSize + wxMemoryBufferData::DefBufSize);
|
|
||||||
if ( !m_data )
|
|
||||||
{
|
|
||||||
free(dataOld);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_size = newSize + wxMemoryBufferData::DefBufSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void IncRef() { m_ref += 1; }
|
|
||||||
void DecRef()
|
|
||||||
{
|
|
||||||
m_ref -= 1;
|
|
||||||
if (m_ref == 0) // are there no more references?
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *release()
|
|
||||||
{
|
|
||||||
if ( m_data == NULL )
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
wxASSERT_MSG( m_ref == 1, "can't release shared buffer" );
|
|
||||||
|
|
||||||
void *p = m_data;
|
|
||||||
m_data = NULL;
|
|
||||||
m_len =
|
|
||||||
m_size = 0;
|
|
||||||
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// the buffer containing the data
|
|
||||||
void *m_data;
|
|
||||||
|
|
||||||
// the size of the buffer
|
|
||||||
size_t m_size;
|
|
||||||
|
|
||||||
// the amount of data currently in the buffer
|
|
||||||
size_t m_len;
|
|
||||||
|
|
||||||
// the reference count
|
|
||||||
size_t m_ref;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxMemoryBufferData);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class wxMemoryBuffer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctor and dtor
|
|
||||||
wxMemoryBuffer(size_t size = wxMemoryBufferData::DefBufSize)
|
|
||||||
{
|
|
||||||
m_bufdata = new wxMemoryBufferData(size);
|
|
||||||
m_bufdata->IncRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
~wxMemoryBuffer() { m_bufdata->DecRef(); }
|
|
||||||
|
|
||||||
|
|
||||||
// copy and assignment
|
|
||||||
wxMemoryBuffer(const wxMemoryBuffer& src)
|
|
||||||
: m_bufdata(src.m_bufdata)
|
|
||||||
{
|
|
||||||
m_bufdata->IncRef();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxMemoryBuffer& operator=(const wxMemoryBuffer& src)
|
|
||||||
{
|
|
||||||
if (&src != this)
|
|
||||||
{
|
|
||||||
m_bufdata->DecRef();
|
|
||||||
m_bufdata = src.m_bufdata;
|
|
||||||
m_bufdata->IncRef();
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Accessors
|
|
||||||
void *GetData() const { return m_bufdata->m_data; }
|
|
||||||
size_t GetBufSize() const { return m_bufdata->m_size; }
|
|
||||||
size_t GetDataLen() const { return m_bufdata->m_len; }
|
|
||||||
|
|
||||||
bool IsEmpty() const { return GetDataLen() == 0; }
|
|
||||||
|
|
||||||
void SetBufSize(size_t size) { m_bufdata->ResizeIfNeeded(size); }
|
|
||||||
void SetDataLen(size_t len)
|
|
||||||
{
|
|
||||||
wxASSERT(len <= m_bufdata->m_size);
|
|
||||||
m_bufdata->m_len = len;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Clear() { SetDataLen(0); }
|
|
||||||
|
|
||||||
// Ensure the buffer is big enough and return a pointer to it
|
|
||||||
void *GetWriteBuf(size_t sizeNeeded)
|
|
||||||
{
|
|
||||||
m_bufdata->ResizeIfNeeded(sizeNeeded);
|
|
||||||
return m_bufdata->m_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update the length after the write
|
|
||||||
void UngetWriteBuf(size_t sizeUsed) { SetDataLen(sizeUsed); }
|
|
||||||
|
|
||||||
// Like the above, but appends to the buffer
|
|
||||||
void *GetAppendBuf(size_t sizeNeeded)
|
|
||||||
{
|
|
||||||
m_bufdata->ResizeIfNeeded(m_bufdata->m_len + sizeNeeded);
|
|
||||||
return (char*)m_bufdata->m_data + m_bufdata->m_len;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update the length after the append
|
|
||||||
void UngetAppendBuf(size_t sizeUsed)
|
|
||||||
{
|
|
||||||
SetDataLen(m_bufdata->m_len + sizeUsed);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Other ways to append to the buffer
|
|
||||||
void AppendByte(char data)
|
|
||||||
{
|
|
||||||
wxCHECK_RET( m_bufdata->m_data, wxT("invalid wxMemoryBuffer") );
|
|
||||||
|
|
||||||
m_bufdata->ResizeIfNeeded(m_bufdata->m_len + 1);
|
|
||||||
*(((char*)m_bufdata->m_data) + m_bufdata->m_len) = data;
|
|
||||||
m_bufdata->m_len += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AppendData(const void *data, size_t len)
|
|
||||||
{
|
|
||||||
memcpy(GetAppendBuf(len), data, len);
|
|
||||||
UngetAppendBuf(len);
|
|
||||||
}
|
|
||||||
|
|
||||||
operator const char *() const { return (const char*)GetData(); }
|
|
||||||
|
|
||||||
// gives up ownership of data, returns the pointer; after this call,
|
|
||||||
// data isn't freed by the buffer and its content is resent to empty
|
|
||||||
void *release()
|
|
||||||
{
|
|
||||||
return m_bufdata->release();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxMemoryBufferData* m_bufdata;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// template class for any kind of data
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
#endif // _WX_BUFFER_H
|
|
|
@ -1,121 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/build.h
|
|
||||||
// Purpose: Runtime build options checking
|
|
||||||
// Author: Vadim Zeitlin, Vaclav Slavik
|
|
||||||
// Modified by:
|
|
||||||
// Created: 07.05.02
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BUILD_H_
|
|
||||||
#define _WX_BUILD_H_
|
|
||||||
|
|
||||||
#include "wx/version.h"
|
|
||||||
|
|
||||||
// NB: This file contains macros for checking binary compatibility of libraries
|
|
||||||
// in multilib builds, plugins and user components.
|
|
||||||
// The WX_BUILD_OPTIONS_SIGNATURE macro expands into string that should
|
|
||||||
// uniquely identify binary compatible builds: i.e. if two builds of the
|
|
||||||
// library are binary compatible, their signature string should be the
|
|
||||||
// same; if two builds are binary incompatible, their signatures should
|
|
||||||
// be different.
|
|
||||||
//
|
|
||||||
// Therefore, wxUSE_XXX flags that affect binary compatibility (vtables,
|
|
||||||
// function signatures) should be accounted for here. So should compilers
|
|
||||||
// and compiler versions (but note that binary compatible compiler versions
|
|
||||||
// such as gcc-2.95.2 and gcc-2.95.3 should have same signature!).
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// WX_BUILD_OPTIONS_SIGNATURE
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define __WX_BO_STRINGIZE(x) __WX_BO_STRINGIZE0(x)
|
|
||||||
#define __WX_BO_STRINGIZE0(x) #x
|
|
||||||
|
|
||||||
#if (wxMINOR_VERSION % 2) == 0
|
|
||||||
#define __WX_BO_VERSION(x,y,z) \
|
|
||||||
__WX_BO_STRINGIZE(x) "." __WX_BO_STRINGIZE(y)
|
|
||||||
#else
|
|
||||||
#define __WX_BO_VERSION(x,y,z) \
|
|
||||||
__WX_BO_STRINGIZE(x) "." __WX_BO_STRINGIZE(y) "." __WX_BO_STRINGIZE(z)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_UNICODE_UTF8
|
|
||||||
#define __WX_BO_UNICODE "UTF-8"
|
|
||||||
#elif wxUSE_UNICODE_WCHAR
|
|
||||||
#define __WX_BO_UNICODE "wchar_t"
|
|
||||||
#else
|
|
||||||
#define __WX_BO_UNICODE "ANSI"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// GCC and Intel C++ share same C++ ABI (and possibly others in the future),
|
|
||||||
// check if compiler versions are compatible:
|
|
||||||
#if defined(__GXX_ABI_VERSION)
|
|
||||||
#define __WX_BO_COMPILER \
|
|
||||||
",compiler with C++ ABI " __WX_BO_STRINGIZE(__GXX_ABI_VERSION)
|
|
||||||
#elif defined(__INTEL_COMPILER)
|
|
||||||
#define __WX_BO_COMPILER ",Intel C++"
|
|
||||||
#elif defined(__GNUG__)
|
|
||||||
#define __WX_BO_COMPILER ",GCC " \
|
|
||||||
__WX_BO_STRINGIZE(__GNUC__) "." __WX_BO_STRINGIZE(__GNUC_MINOR__)
|
|
||||||
#elif defined(__VISUALC__)
|
|
||||||
#define __WX_BO_COMPILER ",Visual C++ " __WX_BO_STRINGIZE(_MSC_VER)
|
|
||||||
#elif defined(__BORLANDC__)
|
|
||||||
#define __WX_BO_COMPILER ",Borland C++"
|
|
||||||
#elif defined(__DIGITALMARS__)
|
|
||||||
#define __WX_BO_COMPILER ",DigitalMars"
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
#define __WX_BO_COMPILER ",Watcom C++"
|
|
||||||
#else
|
|
||||||
#define __WX_BO_COMPILER
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// WXWIN_COMPATIBILITY macros affect presence of virtual functions
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
#define __WX_BO_WXWIN_COMPAT_2_6 ",compatible with 2.6"
|
|
||||||
#else
|
|
||||||
#define __WX_BO_WXWIN_COMPAT_2_6
|
|
||||||
#endif
|
|
||||||
#if WXWIN_COMPATIBILITY_2_8
|
|
||||||
#define __WX_BO_WXWIN_COMPAT_2_8 ",compatible with 2.8"
|
|
||||||
#else
|
|
||||||
#define __WX_BO_WXWIN_COMPAT_2_8
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// deriving wxWin containers from STL ones changes them completely:
|
|
||||||
#if wxUSE_STD_CONTAINERS
|
|
||||||
#define __WX_BO_STL ",STL containers"
|
|
||||||
#else
|
|
||||||
#define __WX_BO_STL ",wx containers"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This macro is passed as argument to wxConsoleApp::CheckBuildOptions()
|
|
||||||
#define WX_BUILD_OPTIONS_SIGNATURE \
|
|
||||||
__WX_BO_VERSION(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) \
|
|
||||||
" (" __WX_BO_UNICODE \
|
|
||||||
__WX_BO_COMPILER \
|
|
||||||
__WX_BO_STL \
|
|
||||||
__WX_BO_WXWIN_COMPAT_2_6 __WX_BO_WXWIN_COMPAT_2_8 \
|
|
||||||
")"
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// WX_CHECK_BUILD_OPTIONS
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Use this macro to check build options. Adding it to a file in DLL will
|
|
||||||
// ensure that the DLL checks build options in same way wxIMPLEMENT_APP() does.
|
|
||||||
#define WX_CHECK_BUILD_OPTIONS(libName) \
|
|
||||||
static struct wxBuildOptionsChecker \
|
|
||||||
{ \
|
|
||||||
wxBuildOptionsChecker() \
|
|
||||||
{ \
|
|
||||||
wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \
|
|
||||||
libName); \
|
|
||||||
} \
|
|
||||||
} gs_buildOptionsCheck;
|
|
||||||
|
|
||||||
|
|
||||||
#endif // _WX_BUILD_H_
|
|
|
@ -1,21 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/busyinfo.h
|
|
||||||
// Purpose: Information window (when app is busy)
|
|
||||||
// Author: Vaclav Slavik
|
|
||||||
// Copyright: (c) 1999 Vaclav Slavik
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef __BUSYINFO_H_BASE__
|
|
||||||
#define __BUSYINFO_H_BASE__
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_BUSYINFO
|
|
||||||
|
|
||||||
#include "wx/generic/busyinfo.h"
|
|
||||||
|
|
||||||
#endif // wxUSE_BUSYINFO
|
|
||||||
|
|
||||||
#endif // __BUSYINFO_H_BASE__
|
|
|
@ -1,70 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/button.h
|
|
||||||
// Purpose: wxButtonBase class
|
|
||||||
// Author: Vadim Zetlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 15.08.00
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Vadim Zetlin
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_BUTTON_H_BASE_
|
|
||||||
#define _WX_BUTTON_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_BUTTON
|
|
||||||
|
|
||||||
#include "wx/anybutton.h"
|
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(const char) wxButtonNameStr[];
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxButton: a push button
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxButtonBase : public wxAnyButton
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxButtonBase() { }
|
|
||||||
|
|
||||||
// show the authentication needed symbol on the button: this is currently
|
|
||||||
// only implemented on Windows Vista and newer (on which it shows the UAC
|
|
||||||
// shield symbol)
|
|
||||||
void SetAuthNeeded(bool show = true) { DoSetAuthNeeded(show); }
|
|
||||||
bool GetAuthNeeded() const { return DoGetAuthNeeded(); }
|
|
||||||
|
|
||||||
// make this button the default button in its top level window
|
|
||||||
//
|
|
||||||
// returns the old default item (possibly NULL)
|
|
||||||
virtual wxWindow *SetDefault();
|
|
||||||
|
|
||||||
// returns the default button size for this platform
|
|
||||||
static wxSize GetDefaultSize();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxButtonBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/button.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/button.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/button.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/button.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/button.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/button.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/button.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/button.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_BUTTON
|
|
||||||
|
|
||||||
#endif // _WX_BUTTON_H_BASE_
|
|
|
@ -1,29 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/cairo.h
|
|
||||||
// Purpose: Cairo library
|
|
||||||
// Author: Anthony Bretaudeau
|
|
||||||
// Created: 2007-08-25
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Anthony Bretaudeau
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CAIRO_H_BASE_
|
|
||||||
#define _WX_CAIRO_H_BASE_
|
|
||||||
|
|
||||||
#if wxUSE_CAIRO
|
|
||||||
|
|
||||||
#include "wx/dynlib.h"
|
|
||||||
#include <cairo.h>
|
|
||||||
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
|
|
||||||
bool wxCairoInit();
|
|
||||||
void wxCairoCleanUp();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_CAIRO
|
|
||||||
|
|
||||||
#endif // _WX_CAIRO_H_BASE_
|
|
|
@ -1,252 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/caret.h
|
|
||||||
// Purpose: wxCaretBase class - the interface of wxCaret
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 23.05.99
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CARET_H_BASE_
|
|
||||||
#define _WX_CARET_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_CARET
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
// forward declarations
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindowBase;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// headers we have to include
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#include "wx/gdicmn.h" // for wxPoint, wxSize
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// A caret is a blinking cursor showing the position where the typed text will
|
|
||||||
// appear. It can be either a solid block or a custom bitmap (TODO)
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxCaretBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctors
|
|
||||||
// -----
|
|
||||||
// default - use Create
|
|
||||||
wxCaretBase() { Init(); }
|
|
||||||
// create the caret of given (in pixels) width and height and associate
|
|
||||||
// with the given window
|
|
||||||
wxCaretBase(wxWindowBase *window, int width, int height)
|
|
||||||
{
|
|
||||||
Init();
|
|
||||||
|
|
||||||
(void)Create(window, width, height);
|
|
||||||
}
|
|
||||||
// same as above
|
|
||||||
wxCaretBase(wxWindowBase *window, const wxSize& size)
|
|
||||||
{
|
|
||||||
Init();
|
|
||||||
|
|
||||||
(void)Create(window, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// a virtual dtor has been provided since this class has virtual members
|
|
||||||
virtual ~wxCaretBase() { }
|
|
||||||
|
|
||||||
// Create() functions - same as ctor but returns the success code
|
|
||||||
// --------------------------------------------------------------
|
|
||||||
|
|
||||||
// same as ctor
|
|
||||||
bool Create(wxWindowBase *window, int width, int height)
|
|
||||||
{ return DoCreate(window, width, height); }
|
|
||||||
// same as ctor
|
|
||||||
bool Create(wxWindowBase *window, const wxSize& size)
|
|
||||||
{ return DoCreate(window, size.x, size.y); }
|
|
||||||
|
|
||||||
// accessors
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
// is the caret valid?
|
|
||||||
bool IsOk() const { return m_width != 0 && m_height != 0; }
|
|
||||||
|
|
||||||
// is the caret currently shown?
|
|
||||||
bool IsVisible() const { return m_countVisible > 0; }
|
|
||||||
|
|
||||||
// get the caret position
|
|
||||||
void GetPosition(int *x, int *y) const
|
|
||||||
{
|
|
||||||
if ( x ) *x = m_x;
|
|
||||||
if ( y ) *y = m_y;
|
|
||||||
}
|
|
||||||
wxPoint GetPosition() const { return wxPoint(m_x, m_y); }
|
|
||||||
|
|
||||||
// get the caret size
|
|
||||||
void GetSize(int *width, int *height) const
|
|
||||||
{
|
|
||||||
if ( width ) *width = m_width;
|
|
||||||
if ( height ) *height = m_height;
|
|
||||||
}
|
|
||||||
wxSize GetSize() const { return wxSize(m_width, m_height); }
|
|
||||||
|
|
||||||
// get the window we're associated with
|
|
||||||
wxWindow *GetWindow() const { return (wxWindow *)m_window; }
|
|
||||||
|
|
||||||
// change the size of the caret
|
|
||||||
void SetSize(int width, int height) {
|
|
||||||
m_width = width;
|
|
||||||
m_height = height;
|
|
||||||
DoSize();
|
|
||||||
}
|
|
||||||
void SetSize(const wxSize& size) { SetSize(size.x, size.y); }
|
|
||||||
|
|
||||||
|
|
||||||
// operations
|
|
||||||
// ----------
|
|
||||||
|
|
||||||
// move the caret to given position (in logical coords)
|
|
||||||
void Move(int x, int y) { m_x = x; m_y = y; DoMove(); }
|
|
||||||
void Move(const wxPoint& pt) { m_x = pt.x; m_y = pt.y; DoMove(); }
|
|
||||||
|
|
||||||
// show/hide the caret (should be called by wxWindow when needed):
|
|
||||||
// Show() must be called as many times as Hide() + 1 to make the caret
|
|
||||||
// visible
|
|
||||||
virtual void Show(bool show = true)
|
|
||||||
{
|
|
||||||
if ( show )
|
|
||||||
{
|
|
||||||
if ( m_countVisible++ == 0 )
|
|
||||||
DoShow();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( --m_countVisible == 0 )
|
|
||||||
DoHide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
virtual void Hide() { Show(false); }
|
|
||||||
|
|
||||||
// blink time is measured in milliseconds and is the time elapsed
|
|
||||||
// between 2 inversions of the caret (blink time of the caret is common
|
|
||||||
// to all carets in the Universe, so these functions are static)
|
|
||||||
static int GetBlinkTime();
|
|
||||||
static void SetBlinkTime(int milliseconds);
|
|
||||||
|
|
||||||
// implementation from now on
|
|
||||||
// --------------------------
|
|
||||||
|
|
||||||
// these functions should be called by wxWindow when the window gets/loses
|
|
||||||
// the focus - we create/show and hide/destroy the caret here
|
|
||||||
virtual void OnSetFocus() { }
|
|
||||||
virtual void OnKillFocus() { }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// these functions may be overridden in the derived classes, but they
|
|
||||||
// should call the base class version first
|
|
||||||
virtual bool DoCreate(wxWindowBase *window, int width, int height)
|
|
||||||
{
|
|
||||||
m_window = window;
|
|
||||||
m_width = width;
|
|
||||||
m_height = height;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// pure virtuals to implement in the derived class
|
|
||||||
virtual void DoShow() = 0;
|
|
||||||
virtual void DoHide() = 0;
|
|
||||||
virtual void DoMove() = 0;
|
|
||||||
virtual void DoSize() { }
|
|
||||||
|
|
||||||
// the common initialization
|
|
||||||
void Init()
|
|
||||||
{
|
|
||||||
m_window = NULL;
|
|
||||||
m_x = m_y = 0;
|
|
||||||
m_width = m_height = 0;
|
|
||||||
m_countVisible = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// the size of the caret
|
|
||||||
int m_width, m_height;
|
|
||||||
|
|
||||||
// the position of the caret
|
|
||||||
int m_x, m_y;
|
|
||||||
|
|
||||||
// the window we're associated with
|
|
||||||
wxWindowBase *m_window;
|
|
||||||
|
|
||||||
// visibility count: the caret is visible only if it's positive
|
|
||||||
int m_countVisible;
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCaretBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
// now include the real thing
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
|
||||||
#include "wx/msw/caret.h"
|
|
||||||
#else
|
|
||||||
#include "wx/generic/caret.h"
|
|
||||||
#endif // platform
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCaretSuspend: a simple class which hides the caret in its ctor and
|
|
||||||
// restores it in the dtor, this should be used when drawing on the screen to
|
|
||||||
// avoid overdrawing the caret
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#ifdef wxHAS_CARET_USING_OVERLAYS
|
|
||||||
|
|
||||||
// we don't need to hide the caret if it's rendered using overlays
|
|
||||||
class WXDLLIMPEXP_CORE wxCaretSuspend
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxCaretSuspend(wxWindow *WXUNUSED(win)) {}
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCaretSuspend);
|
|
||||||
};
|
|
||||||
|
|
||||||
#else // !wxHAS_CARET_USING_OVERLAYS
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxCaretSuspend
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxCaretSuspend(wxWindow *win)
|
|
||||||
{
|
|
||||||
m_caret = win->GetCaret();
|
|
||||||
m_show = false;
|
|
||||||
if ( m_caret && m_caret->IsVisible() )
|
|
||||||
{
|
|
||||||
m_caret->Hide();
|
|
||||||
m_show = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
~wxCaretSuspend()
|
|
||||||
{
|
|
||||||
if ( m_caret && m_show )
|
|
||||||
m_caret->Show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxCaret *m_caret;
|
|
||||||
bool m_show;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCaretSuspend);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxHAS_CARET_USING_OVERLAYS/!wxHAS_CARET_USING_OVERLAYS
|
|
||||||
|
|
||||||
#endif // wxUSE_CARET
|
|
||||||
|
|
||||||
#endif // _WX_CARET_H_BASE_
|
|
|
@ -1,305 +0,0 @@
|
||||||
/*
|
|
||||||
* Name: wx/chartype.h
|
|
||||||
* Purpose: Declarations of wxChar and related types
|
|
||||||
* Author: Joel Farley, Ove Kåven
|
|
||||||
* Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee
|
|
||||||
* Created: 1998/06/12
|
|
||||||
* RCS-ID: $Id$
|
|
||||||
* Copyright: (c) 1998-2006 wxWidgets dev team
|
|
||||||
* Licence: wxWindows licence
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
|
|
||||||
|
|
||||||
#ifndef _WX_WXCHARTYPE_H_
|
|
||||||
#define _WX_WXCHARTYPE_H_
|
|
||||||
|
|
||||||
/* defs.h indirectly includes this file, so don't include it here */
|
|
||||||
#include "wx/platform.h"
|
|
||||||
|
|
||||||
/* check whether we have wchar_t and which size it is if we do */
|
|
||||||
#if !defined(wxUSE_WCHAR_T)
|
|
||||||
#if defined(__UNIX__)
|
|
||||||
#if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || defined(__DARWIN__)
|
|
||||||
#define wxUSE_WCHAR_T 1
|
|
||||||
#else
|
|
||||||
#define wxUSE_WCHAR_T 0
|
|
||||||
#endif
|
|
||||||
#elif defined(__GNUWIN32__) && !defined(__MINGW32__)
|
|
||||||
#define wxUSE_WCHAR_T 0
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
#define wxUSE_WCHAR_T 0
|
|
||||||
#elif defined(__VISAGECPP__) && (__IBMCPP__ < 400)
|
|
||||||
#define wxUSE_WCHAR_T 0
|
|
||||||
#else
|
|
||||||
/* add additional compiler checks if this fails */
|
|
||||||
#define wxUSE_WCHAR_T 1
|
|
||||||
#endif
|
|
||||||
#endif /* !defined(wxUSE_WCHAR_T) */
|
|
||||||
|
|
||||||
/* Unicode support requires wchar_t */
|
|
||||||
#if !wxUSE_WCHAR_T
|
|
||||||
#error "wchar_t must be available"
|
|
||||||
#endif /* Unicode */
|
|
||||||
|
|
||||||
/*
|
|
||||||
non Unix compilers which do have wchar.h (but not tchar.h which is included
|
|
||||||
below and which includes wchar.h anyhow).
|
|
||||||
|
|
||||||
Actually MinGW has tchar.h, but it does not include wchar.h
|
|
||||||
*/
|
|
||||||
#if defined(__VISAGECPP__) || defined(__MINGW32__) || defined(__WATCOMC__)
|
|
||||||
#ifndef HAVE_WCHAR_H
|
|
||||||
#define HAVE_WCHAR_H
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_WCHAR_H
|
|
||||||
/* the current (as of Nov 2002) version of cygwin has a bug in its */
|
|
||||||
/* wchar.h -- there is no extern "C" around the declarations in it */
|
|
||||||
/* and this results in linking errors later; also, at least on some */
|
|
||||||
/* Cygwin versions, wchar.h requires sys/types.h */
|
|
||||||
#ifdef __CYGWIN__
|
|
||||||
#include <sys/types.h>
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
#endif /* Cygwin */
|
|
||||||
|
|
||||||
#include <wchar.h>
|
|
||||||
|
|
||||||
#if defined(__CYGWIN__) && defined(__cplusplus)
|
|
||||||
}
|
|
||||||
#endif /* Cygwin and C++ */
|
|
||||||
|
|
||||||
#elif defined(HAVE_WCSTR_H)
|
|
||||||
/* old compilers have relevant declarations here */
|
|
||||||
#include <wcstr.h>
|
|
||||||
#elif defined(__FreeBSD__) || defined(__DARWIN__) || defined(__EMX__)
|
|
||||||
/* include stdlib.h for wchar_t */
|
|
||||||
#include <stdlib.h>
|
|
||||||
#endif /* HAVE_WCHAR_H */
|
|
||||||
|
|
||||||
#ifdef HAVE_WIDEC_H
|
|
||||||
#include <widec.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
/* define wxHAVE_TCHAR_SUPPORT for the compilers which support the TCHAR type */
|
|
||||||
/* mapped to either char or wchar_t depending on the ASCII/Unicode mode and */
|
|
||||||
/* have the function mapping _tfoo() -> foo() or wfoo() */
|
|
||||||
/* -------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/* VC++ and BC++ starting with 5.2 have TCHAR support */
|
|
||||||
#ifdef __VISUALC__
|
|
||||||
#define wxHAVE_TCHAR_SUPPORT
|
|
||||||
#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x520)
|
|
||||||
#define wxHAVE_TCHAR_SUPPORT
|
|
||||||
#include <ctype.h>
|
|
||||||
#elif defined(__WATCOMC__)
|
|
||||||
#define wxHAVE_TCHAR_SUPPORT
|
|
||||||
#elif defined(__DMC__)
|
|
||||||
#define wxHAVE_TCHAR_SUPPORT
|
|
||||||
#elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 )
|
|
||||||
#define wxHAVE_TCHAR_SUPPORT
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#elif 0 && defined(__VISAGECPP__) && (__IBMCPP__ >= 400)
|
|
||||||
/* VZ: the old VisualAge definitions were completely wrong and had no */
|
|
||||||
/* chance at all to work in Unicode build anyhow so let's pretend */
|
|
||||||
/* that VisualAge does _not_ support TCHAR for the moment (as */
|
|
||||||
/* indicated by "0 &&" above) until someone really has time to delve */
|
|
||||||
/* into Unicode issues under OS/2 */
|
|
||||||
|
|
||||||
/* VisualAge 4.0+ supports TCHAR */
|
|
||||||
#define wxHAVE_TCHAR_SUPPORT
|
|
||||||
#endif /* compilers with (good) TCHAR support */
|
|
||||||
|
|
||||||
#ifdef wxHAVE_TCHAR_SUPPORT
|
|
||||||
/* get TCHAR definition if we've got it */
|
|
||||||
#include <tchar.h>
|
|
||||||
|
|
||||||
/* we surely do have wchar_t if we have TCHAR */
|
|
||||||
#ifndef wxUSE_WCHAR_T
|
|
||||||
#define wxUSE_WCHAR_T 1
|
|
||||||
#endif /* !defined(wxUSE_WCHAR_T) */
|
|
||||||
#endif /* wxHAVE_TCHAR_SUPPORT */
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
/* define wxChar type */
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/* TODO: define wxCharInt to be equal to either int or wint_t? */
|
|
||||||
|
|
||||||
#if !wxUSE_UNICODE
|
|
||||||
typedef char wxChar;
|
|
||||||
typedef signed char wxSChar;
|
|
||||||
typedef unsigned char wxUChar;
|
|
||||||
#else
|
|
||||||
/* VZ: note that VC++ defines _T[SU]CHAR simply as wchar_t and not as */
|
|
||||||
/* signed/unsigned version of it which (a) makes sense to me (unlike */
|
|
||||||
/* char wchar_t is always unsigned) and (b) was how the previous */
|
|
||||||
/* definitions worked so keep it like this */
|
|
||||||
|
|
||||||
/* Sun's SunPro compiler supports the wchar_t type and wide character */
|
|
||||||
/* functions, but does not define __WCHAR_TYPE__. Define it here to */
|
|
||||||
/* allow unicode enabled builds. */
|
|
||||||
#if (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && !defined(__WCHAR_TYPE__)
|
|
||||||
#define __WCHAR_TYPE__ wxchar_t
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* GNU libc has __WCHAR_TYPE__ which requires special treatment, see */
|
|
||||||
/* comment below */
|
|
||||||
#if !defined(__WCHAR_TYPE__) || \
|
|
||||||
(!defined(__GNUC__) || wxCHECK_GCC_VERSION(2, 96))
|
|
||||||
/* standard case */
|
|
||||||
typedef wchar_t wxChar;
|
|
||||||
typedef wchar_t wxSChar;
|
|
||||||
typedef wchar_t wxUChar;
|
|
||||||
#else /* __WCHAR_TYPE__ and gcc < 2.96 */
|
|
||||||
/* VS: wxWidgets used to define wxChar as __WCHAR_TYPE__ here. */
|
|
||||||
/* However, this doesn't work with new GCC 3.x compilers because */
|
|
||||||
/* wchar_t is C++'s builtin type in the new standard. OTOH, old */
|
|
||||||
/* compilers (GCC 2.x) won't accept new definition of */
|
|
||||||
/* wx{S,U}CharType, so we have to define wxChar */
|
|
||||||
/* conditionally depending on detected compiler & compiler */
|
|
||||||
/* version. */
|
|
||||||
|
|
||||||
/* with old definition of wxChar. */
|
|
||||||
#define wchar_t __WCHAR_TYPE__
|
|
||||||
typedef __WCHAR_TYPE__ wxChar;
|
|
||||||
typedef __WCHAR_TYPE__ wxSChar;
|
|
||||||
typedef __WCHAR_TYPE__ wxUChar;
|
|
||||||
#endif /* __WCHAR_TYPE__ */
|
|
||||||
#endif /* ASCII/Unicode */
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
/* define wxStringCharType */
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/* depending on the platform, Unicode build can either store wxStrings as
|
|
||||||
wchar_t* or UTF-8 encoded char*: */
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
/* FIXME-UTF8: what would be better place for this? */
|
|
||||||
#if defined(wxUSE_UTF8_LOCALE_ONLY) && !defined(wxUSE_UNICODE_UTF8)
|
|
||||||
#error "wxUSE_UTF8_LOCALE_ONLY only makes sense with wxUSE_UNICODE_UTF8"
|
|
||||||
#endif
|
|
||||||
#ifndef wxUSE_UTF8_LOCALE_ONLY
|
|
||||||
#define wxUSE_UTF8_LOCALE_ONLY 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef wxUSE_UNICODE_UTF8
|
|
||||||
#define wxUSE_UNICODE_UTF8 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_UNICODE_UTF8
|
|
||||||
#define wxUSE_UNICODE_WCHAR 0
|
|
||||||
#else
|
|
||||||
#define wxUSE_UNICODE_WCHAR 1
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define wxUSE_UNICODE_WCHAR 0
|
|
||||||
#define wxUSE_UNICODE_UTF8 0
|
|
||||||
#define wxUSE_UTF8_LOCALE_ONLY 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* define char type used by wxString internal representation: */
|
|
||||||
#if wxUSE_UNICODE_WCHAR
|
|
||||||
typedef wchar_t wxStringCharType;
|
|
||||||
#else /* wxUSE_UNICODE_UTF8 || ANSI */
|
|
||||||
typedef char wxStringCharType;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
/* define wxT() and related macros */
|
|
||||||
/* ------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
/* BSD systems define _T() to be something different in ctype.h, override it */
|
|
||||||
#if defined(__FreeBSD__) || defined(__DARWIN__)
|
|
||||||
#include <ctype.h>
|
|
||||||
#undef _T
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
wxT ("wx text") macro turns a literal string constant into a wide char
|
|
||||||
constant. It is mostly unnecessary with wx 2.9 but defined for
|
|
||||||
compatibility.
|
|
||||||
*/
|
|
||||||
#ifndef wxT
|
|
||||||
#if !wxUSE_UNICODE
|
|
||||||
#define wxT(x) x
|
|
||||||
#else /* Unicode */
|
|
||||||
/*
|
|
||||||
Notice that we use an intermediate macro to allow x to be expanded
|
|
||||||
if it's a macro itself.
|
|
||||||
*/
|
|
||||||
#ifndef wxCOMPILER_BROKEN_CONCAT_OPER
|
|
||||||
#define wxT(x) wxCONCAT_HELPER(L, x)
|
|
||||||
#else
|
|
||||||
#define wxT(x) wxPREPEND_L(x)
|
|
||||||
#endif
|
|
||||||
#endif /* ASCII/Unicode */
|
|
||||||
#endif /* !defined(wxT) */
|
|
||||||
|
|
||||||
/*
|
|
||||||
wxT_2 exists only for compatibility with wx 2.x and is the same as wxT() in
|
|
||||||
that version but nothing in the newer ones.
|
|
||||||
*/
|
|
||||||
#define wxT_2(x) x
|
|
||||||
|
|
||||||
/*
|
|
||||||
wxS ("wx string") macro can be used to create literals using the same
|
|
||||||
representation as wxString does internally, i.e. wchar_t in Unicode build
|
|
||||||
under Windows or char in UTF-8-based Unicode builds and (deprecated) ANSI
|
|
||||||
builds everywhere (see wxStringCharType definition above).
|
|
||||||
*/
|
|
||||||
#if wxUSE_UNICODE_WCHAR
|
|
||||||
/*
|
|
||||||
As above with wxT(), wxS() argument is expanded if it's a macro.
|
|
||||||
*/
|
|
||||||
#ifndef wxCOMPILER_BROKEN_CONCAT_OPER
|
|
||||||
#define wxS(x) wxCONCAT_HELPER(L, x)
|
|
||||||
#else
|
|
||||||
#define wxS(x) wxPREPEND_L(x)
|
|
||||||
#endif
|
|
||||||
#else /* wxUSE_UNICODE_UTF8 || ANSI */
|
|
||||||
#define wxS(x) x
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
_T() is a synonym for wxT() familiar to Windows programmers. As this macro
|
|
||||||
has even higher risk of conflicting with system headers, its use is
|
|
||||||
discouraged and you may predefine wxNO__T to disable it. Additionally, we
|
|
||||||
do it ourselves for Sun CC which is known to use it in its standard headers
|
|
||||||
(see #10660).
|
|
||||||
*/
|
|
||||||
#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
||||||
#ifndef wxNO__T
|
|
||||||
#define wxNO__T
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(_T) && !defined(wxNO__T)
|
|
||||||
#define _T(x) wxT(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* a helper macro allowing to make another macro Unicode-friendly, see below */
|
|
||||||
#define wxAPPLY_T(x) wxT(x)
|
|
||||||
|
|
||||||
/* Unicode-friendly __FILE__, __DATE__ and __TIME__ analogs */
|
|
||||||
#ifndef __TFILE__
|
|
||||||
#define __TFILE__ wxAPPLY_T(__FILE__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __TDATE__
|
|
||||||
#define __TDATE__ wxAPPLY_T(__DATE__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __TTIME__
|
|
||||||
#define __TTIME__ wxAPPLY_T(__TIME__)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* _WX_WXCHARTYPE_H_ */
|
|
||||||
|
|
|
@ -1,191 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/checkbox.h
|
|
||||||
// Purpose: wxCheckBox class interface
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 07.09.00
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CHECKBOX_H_BASE_
|
|
||||||
#define _WX_CHECKBOX_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_CHECKBOX
|
|
||||||
|
|
||||||
#include "wx/control.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* wxCheckBox style flags
|
|
||||||
* (Using wxCHK_* because wxCB_* is used by wxComboBox).
|
|
||||||
* Determine whether to use a 3-state or 2-state
|
|
||||||
* checkbox. 3-state enables to differentiate
|
|
||||||
* between 'unchecked', 'checked' and 'undetermined'.
|
|
||||||
*
|
|
||||||
* In addition to the styles here it is also possible to specify just 0 which
|
|
||||||
* is treated the same as wxCHK_2STATE for compatibility (but using explicit
|
|
||||||
* flag is preferred).
|
|
||||||
*/
|
|
||||||
#define wxCHK_2STATE 0x4000
|
|
||||||
#define wxCHK_3STATE 0x1000
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If this style is set the user can set the checkbox to the
|
|
||||||
* undetermined state. If not set the undetermined set can only
|
|
||||||
* be set programmatically.
|
|
||||||
* This style can only be used with 3 state checkboxes.
|
|
||||||
*/
|
|
||||||
#define wxCHK_ALLOW_3RD_STATE_FOR_USER 0x2000
|
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[];
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCheckBox: a control which shows a label and a box which may be checked
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxCheckBoxBase : public wxControl
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxCheckBoxBase() { }
|
|
||||||
|
|
||||||
// set/get the checked status of the listbox
|
|
||||||
virtual void SetValue(bool value) = 0;
|
|
||||||
virtual bool GetValue() const = 0;
|
|
||||||
|
|
||||||
bool IsChecked() const
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( !Is3State(), wxT("Calling IsChecked() doesn't make sense for")
|
|
||||||
wxT(" a three state checkbox, Use Get3StateValue() instead") );
|
|
||||||
|
|
||||||
return GetValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxCheckBoxState Get3StateValue() const
|
|
||||||
{
|
|
||||||
wxCheckBoxState state = DoGet3StateValue();
|
|
||||||
|
|
||||||
if ( state == wxCHK_UNDETERMINED && !Is3State() )
|
|
||||||
{
|
|
||||||
// Undetermined state with a 2-state checkbox??
|
|
||||||
wxFAIL_MSG( wxT("DoGet3StateValue() says the 2-state checkbox is ")
|
|
||||||
wxT("in an undetermined/third state") );
|
|
||||||
|
|
||||||
state = wxCHK_UNCHECKED;
|
|
||||||
}
|
|
||||||
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Set3StateValue(wxCheckBoxState state)
|
|
||||||
{
|
|
||||||
if ( state == wxCHK_UNDETERMINED && !Is3State() )
|
|
||||||
{
|
|
||||||
wxFAIL_MSG(wxT("Setting a 2-state checkbox to undetermined state"));
|
|
||||||
state = wxCHK_UNCHECKED;
|
|
||||||
}
|
|
||||||
|
|
||||||
DoSet3StateValue(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Is3State() const { return HasFlag(wxCHK_3STATE); }
|
|
||||||
|
|
||||||
bool Is3rdStateAllowedForUser() const
|
|
||||||
{
|
|
||||||
return HasFlag(wxCHK_ALLOW_3RD_STATE_FOR_USER);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool HasTransparentBackground() { return true; }
|
|
||||||
|
|
||||||
// wxCheckBox-specific processing after processing the update event
|
|
||||||
virtual void DoUpdateWindowUI(wxUpdateUIEvent& event)
|
|
||||||
{
|
|
||||||
wxControl::DoUpdateWindowUI(event);
|
|
||||||
|
|
||||||
if ( event.GetSetChecked() )
|
|
||||||
SetValue(event.GetChecked());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// choose the default border for this window
|
|
||||||
virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; }
|
|
||||||
|
|
||||||
virtual void DoSet3StateValue(wxCheckBoxState WXUNUSED(state)) { wxFAIL; }
|
|
||||||
|
|
||||||
virtual wxCheckBoxState DoGet3StateValue() const
|
|
||||||
{
|
|
||||||
wxFAIL;
|
|
||||||
return wxCHK_UNCHECKED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper function to be called from derived classes Create()
|
|
||||||
// implementations: it checks that the style doesn't contain any
|
|
||||||
// incompatible bits and modifies it to be sane if it does.
|
|
||||||
static void WXValidateStyle(long *stylePtr)
|
|
||||||
{
|
|
||||||
long& style = *stylePtr;
|
|
||||||
|
|
||||||
if ( !(style & (wxCHK_2STATE | wxCHK_3STATE)) )
|
|
||||||
{
|
|
||||||
// For compatibility we use absence of style flags as wxCHK_2STATE
|
|
||||||
// because wxCHK_2STATE used to have the value of 0 and some
|
|
||||||
// existing code uses 0 instead of it. Moreover, some code even
|
|
||||||
// uses some non-0 style, e.g. wxBORDER_XXX, but doesn't specify
|
|
||||||
// neither wxCHK_2STATE nor wxCHK_3STATE -- to avoid breaking it,
|
|
||||||
// assume (much more common) 2 state checkbox by default.
|
|
||||||
style |= wxCHK_2STATE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( style & wxCHK_3STATE )
|
|
||||||
{
|
|
||||||
if ( style & wxCHK_2STATE )
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "wxCHK_2STATE and wxCHK_3STATE can't be used "
|
|
||||||
"together" );
|
|
||||||
style &= ~wxCHK_3STATE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else // No wxCHK_3STATE
|
|
||||||
{
|
|
||||||
if ( style & wxCHK_ALLOW_3RD_STATE_FOR_USER )
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "wxCHK_ALLOW_3RD_STATE_FOR_USER doesn't make sense "
|
|
||||||
"without wxCHK_3STATE" );
|
|
||||||
style &= ~wxCHK_ALLOW_3RD_STATE_FOR_USER;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCheckBoxBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Most ports support 3 state checkboxes so define this by default.
|
|
||||||
#define wxHAS_3STATE_CHECKBOX
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/checkbox.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/checkbox.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/checkbox.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/checkbox.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#undef wxHAS_3STATE_CHECKBOX
|
|
||||||
#include "wx/gtk1/checkbox.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/checkbox.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/checkbox.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#undef wxHAS_3STATE_CHECKBOX
|
|
||||||
#include "wx/os2/checkbox.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_CHECKBOX
|
|
||||||
|
|
||||||
#endif // _WX_CHECKBOX_H_BASE_
|
|
|
@ -1,54 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/checkeddelete.h
|
|
||||||
// Purpose: wxCHECKED_DELETE() macro
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Created: 2009-02-03
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2002-2009 wxWidgets dev team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CHECKEDDELETE_H_
|
|
||||||
#define _WX_CHECKEDDELETE_H_
|
|
||||||
|
|
||||||
// TODO: provide wxCheckedDelete[Array]() template functions too
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCHECKED_DELETE and wxCHECKED_DELETE_ARRAY macros
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/*
|
|
||||||
checked deleters are used to make sure that the type being deleted is really
|
|
||||||
a complete type.: otherwise sizeof() would result in a compile-time error
|
|
||||||
|
|
||||||
do { ... } while ( 0 ) construct is used to have an anonymous scope
|
|
||||||
(otherwise we could have name clashes between different "complete"s) but
|
|
||||||
still force a semicolon after the macro
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef __WATCOMC__
|
|
||||||
#define wxFOR_ONCE(name) for(int name=0; name<1; name++)
|
|
||||||
#define wxPRE_NO_WARNING_SCOPE(name) wxFOR_ONCE(wxMAKE_UNIQUE_NAME(name))
|
|
||||||
#define wxPOST_NO_WARNING_SCOPE(name)
|
|
||||||
#else
|
|
||||||
#define wxPRE_NO_WARNING_SCOPE(name) do
|
|
||||||
#define wxPOST_NO_WARNING_SCOPE(name) while ( wxFalse )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define wxCHECKED_DELETE(ptr) \
|
|
||||||
wxPRE_NO_WARNING_SCOPE(scope_var1) \
|
|
||||||
{ \
|
|
||||||
typedef char complete[sizeof(*ptr)]; \
|
|
||||||
delete ptr; \
|
|
||||||
} wxPOST_NO_WARNING_SCOPE(scope_var1)
|
|
||||||
|
|
||||||
#define wxCHECKED_DELETE_ARRAY(ptr) \
|
|
||||||
wxPRE_NO_WARNING_SCOPE(scope_var2) \
|
|
||||||
{ \
|
|
||||||
typedef char complete[sizeof(*ptr)]; \
|
|
||||||
delete [] ptr; \
|
|
||||||
} wxPOST_NO_WARNING_SCOPE(scope_var2)
|
|
||||||
|
|
||||||
|
|
||||||
#endif // _WX_CHECKEDDELETE_H_
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/checklst.h
|
|
||||||
// Purpose: wxCheckListBox class interface
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 12.09.00
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Vadim Zeitlin
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CHECKLST_H_BASE_
|
|
||||||
#define _WX_CHECKLST_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_CHECKLISTBOX
|
|
||||||
|
|
||||||
#include "wx/listbox.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCheckListBox: a listbox whose items may be checked
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxCheckListBoxBase : public
|
|
||||||
#ifdef __WXWINCE__
|
|
||||||
// keep virtuals synchronised
|
|
||||||
wxListBoxBase
|
|
||||||
#else
|
|
||||||
wxListBox
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxCheckListBoxBase() { }
|
|
||||||
|
|
||||||
// check list box specific methods
|
|
||||||
virtual bool IsChecked(unsigned int item) const = 0;
|
|
||||||
virtual void Check(unsigned int item, bool check = true) = 0;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCheckListBoxBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/checklst.h"
|
|
||||||
#elif defined(__WXWINCE__)
|
|
||||||
#include "wx/msw/wince/checklst.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/checklst.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/checklst.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/checklst.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/checklst.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/checklst.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/checklst.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/checklst.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_CHECKLISTBOX
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_CHECKLST_H_BASE_
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,91 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/choice.h
|
|
||||||
// Purpose: wxChoice class interface
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 26.07.99
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CHOICE_H_BASE_
|
|
||||||
#define _WX_CHOICE_H_BASE_
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// headers
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_CHOICE
|
|
||||||
|
|
||||||
#include "wx/ctrlsub.h" // the base class
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// global data
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(const char) wxChoiceNameStr[];
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxChoice allows to select one of a non-modifiable list of strings
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxChoiceBase : public wxControlWithItems
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxChoiceBase() { }
|
|
||||||
virtual ~wxChoiceBase();
|
|
||||||
|
|
||||||
// all generic methods are in wxControlWithItems
|
|
||||||
|
|
||||||
// get the current selection: this can only be different from the normal
|
|
||||||
// selection if the popup items list is currently opened and the user
|
|
||||||
// selected some item in it but didn't close the list yet; otherwise (and
|
|
||||||
// currently always on platforms other than MSW) this is the same as
|
|
||||||
// GetSelection()
|
|
||||||
virtual int GetCurrentSelection() const { return GetSelection(); }
|
|
||||||
|
|
||||||
// set/get the number of columns in the control (as they're not supported on
|
|
||||||
// most platforms, they do nothing by default)
|
|
||||||
virtual void SetColumns(int WXUNUSED(n) = 1 ) { }
|
|
||||||
virtual int GetColumns() const { return 1 ; }
|
|
||||||
|
|
||||||
// emulate selecting the item event.GetInt()
|
|
||||||
void Command(wxCommandEvent& event);
|
|
||||||
|
|
||||||
// override wxItemContainer::IsSorted
|
|
||||||
virtual bool IsSorted() const { return HasFlag(wxCB_SORT); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxChoiceBase);
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include the platform-dependent class definition
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/choice.h"
|
|
||||||
#elif defined(__SMARTPHONE__) && defined(__WXWINCE__)
|
|
||||||
#include "wx/msw/wince/choicece.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/choice.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/choice.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/choice.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/choice.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/choice.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/choice.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/choice.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_CHOICE
|
|
||||||
|
|
||||||
#endif // _WX_CHOICE_H_BASE_
|
|
|
@ -1,127 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/choicebk.h
|
|
||||||
// Purpose: wxChoicebook: wxChoice and wxNotebook combination
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by: Wlodzimierz ABX Skiba from wx/listbook.h
|
|
||||||
// Created: 15.09.04
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Vadim Zeitlin, Wlodzimierz Skiba
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CHOICEBOOK_H_
|
|
||||||
#define _WX_CHOICEBOOK_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_CHOICEBOOK
|
|
||||||
|
|
||||||
#include "wx/bookctrl.h"
|
|
||||||
#include "wx/choice.h"
|
|
||||||
#include "wx/containr.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxChoice;
|
|
||||||
|
|
||||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, wxBookCtrlEvent );
|
|
||||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, wxBookCtrlEvent );
|
|
||||||
|
|
||||||
// wxChoicebook flags
|
|
||||||
#define wxCHB_DEFAULT wxBK_DEFAULT
|
|
||||||
#define wxCHB_TOP wxBK_TOP
|
|
||||||
#define wxCHB_BOTTOM wxBK_BOTTOM
|
|
||||||
#define wxCHB_LEFT wxBK_LEFT
|
|
||||||
#define wxCHB_RIGHT wxBK_RIGHT
|
|
||||||
#define wxCHB_ALIGN_MASK wxBK_ALIGN_MASK
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxChoicebook
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxChoicebook : public wxNavigationEnabled<wxBookCtrlBase>
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxChoicebook() { }
|
|
||||||
|
|
||||||
wxChoicebook(wxWindow *parent,
|
|
||||||
wxWindowID id,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
|
||||||
const wxSize& size = wxDefaultSize,
|
|
||||||
long style = 0,
|
|
||||||
const wxString& name = wxEmptyString)
|
|
||||||
{
|
|
||||||
(void)Create(parent, id, pos, size, style, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// quasi ctor
|
|
||||||
bool Create(wxWindow *parent,
|
|
||||||
wxWindowID id,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
|
||||||
const wxSize& size = wxDefaultSize,
|
|
||||||
long style = 0,
|
|
||||||
const wxString& name = wxEmptyString);
|
|
||||||
|
|
||||||
|
|
||||||
virtual bool SetPageText(size_t n, const wxString& strText);
|
|
||||||
virtual wxString GetPageText(size_t n) const;
|
|
||||||
virtual int GetPageImage(size_t n) const;
|
|
||||||
virtual bool SetPageImage(size_t n, int imageId);
|
|
||||||
virtual bool InsertPage(size_t n,
|
|
||||||
wxWindow *page,
|
|
||||||
const wxString& text,
|
|
||||||
bool bSelect = false,
|
|
||||||
int imageId = NO_IMAGE);
|
|
||||||
virtual int SetSelection(size_t n)
|
|
||||||
{ return DoSetSelection(n, SetSelection_SendEvent); }
|
|
||||||
virtual int ChangeSelection(size_t n) { return DoSetSelection(n); }
|
|
||||||
virtual void SetImageList(wxImageList *imageList);
|
|
||||||
|
|
||||||
virtual bool DeleteAllPages();
|
|
||||||
|
|
||||||
// returns the choice control
|
|
||||||
wxChoice* GetChoiceCtrl() const { return (wxChoice*)m_bookctrl; }
|
|
||||||
|
|
||||||
// Override this to return true because the part of parent window
|
|
||||||
// background between our controlling wxChoice and the page area should
|
|
||||||
// show through.
|
|
||||||
virtual bool HasTransparentBackground() { return true; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual void DoSetWindowVariant(wxWindowVariant variant);
|
|
||||||
|
|
||||||
virtual wxWindow *DoRemovePage(size_t page);
|
|
||||||
|
|
||||||
void UpdateSelectedPage(size_t newsel)
|
|
||||||
{
|
|
||||||
m_selection = static_cast<int>(newsel);
|
|
||||||
GetChoiceCtrl()->Select(m_selection);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxBookCtrlEvent* CreatePageChangingEvent() const;
|
|
||||||
void MakeChangedEvent(wxBookCtrlEvent &event);
|
|
||||||
|
|
||||||
// event handlers
|
|
||||||
void OnChoiceSelected(wxCommandEvent& event);
|
|
||||||
|
|
||||||
private:
|
|
||||||
DECLARE_EVENT_TABLE()
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxChoicebook)
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// choicebook event class and related stuff
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// wxChoicebookEvent is obsolete and defined for compatibility only
|
|
||||||
#define wxChoicebookEvent wxBookCtrlEvent
|
|
||||||
typedef wxBookCtrlEventFunction wxChoicebookEventFunction;
|
|
||||||
#define wxChoicebookEventHandler(func) wxBookCtrlEventHandler(func)
|
|
||||||
|
|
||||||
#define EVT_CHOICEBOOK_PAGE_CHANGED(winid, fn) \
|
|
||||||
wx__DECLARE_EVT1(wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn))
|
|
||||||
|
|
||||||
#define EVT_CHOICEBOOK_PAGE_CHANGING(winid, fn) \
|
|
||||||
wx__DECLARE_EVT1(wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn))
|
|
||||||
|
|
||||||
#endif // wxUSE_CHOICEBOOK
|
|
||||||
|
|
||||||
#endif // _WX_CHOICEBOOK_H_
|
|
|
@ -1,205 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/clipbrd.h
|
|
||||||
// Purpose: wxClipboad class and clipboard functions
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 19.10.99
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets Team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CLIPBRD_H_BASE_
|
|
||||||
#define _WX_CLIPBRD_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_CLIPBOARD
|
|
||||||
|
|
||||||
|
|
||||||
#include "wx/event.h"
|
|
||||||
#include "wx/chartype.h"
|
|
||||||
#include "wx/dataobj.h" // for wxDataFormat
|
|
||||||
#include "wx/vector.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxClipboard;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxClipboard represents the system clipboard. Normally, you should use
|
|
||||||
// wxTheClipboard which is a global pointer to the (unique) clipboard.
|
|
||||||
//
|
|
||||||
// Clipboard can be used to copy data to/paste data from. It works together
|
|
||||||
// with wxDataObject.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxClipboardBase : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxClipboardBase() { m_usePrimary = false; }
|
|
||||||
|
|
||||||
// open the clipboard before Add/SetData() and GetData()
|
|
||||||
virtual bool Open() = 0;
|
|
||||||
|
|
||||||
// close the clipboard after Add/SetData() and GetData()
|
|
||||||
virtual void Close() = 0;
|
|
||||||
|
|
||||||
// query whether the clipboard is opened
|
|
||||||
virtual bool IsOpened() const = 0;
|
|
||||||
|
|
||||||
// add to the clipboard data
|
|
||||||
//
|
|
||||||
// NB: the clipboard owns the pointer and will delete it, so data must be
|
|
||||||
// allocated on the heap
|
|
||||||
virtual bool AddData( wxDataObject *data ) = 0;
|
|
||||||
|
|
||||||
// set the clipboard data, this is the same as Clear() followed by
|
|
||||||
// AddData()
|
|
||||||
virtual bool SetData( wxDataObject *data ) = 0;
|
|
||||||
|
|
||||||
// ask if data in correct format is available
|
|
||||||
virtual bool IsSupported( const wxDataFormat& format ) = 0;
|
|
||||||
|
|
||||||
// ask if data in correct format is available
|
|
||||||
virtual bool IsSupportedAsync( wxEvtHandler *sink );
|
|
||||||
|
|
||||||
// fill data with data on the clipboard (if available)
|
|
||||||
virtual bool GetData( wxDataObject& data ) = 0;
|
|
||||||
|
|
||||||
// clears wxTheClipboard and the system's clipboard if possible
|
|
||||||
virtual void Clear() = 0;
|
|
||||||
|
|
||||||
// flushes the clipboard: this means that the data which is currently on
|
|
||||||
// clipboard will stay available even after the application exits (possibly
|
|
||||||
// eating memory), otherwise the clipboard will be emptied on exit
|
|
||||||
virtual bool Flush() { return false; }
|
|
||||||
|
|
||||||
// this allows to choose whether we work with CLIPBOARD (default) or
|
|
||||||
// PRIMARY selection on X11-based systems
|
|
||||||
//
|
|
||||||
// on the other ones, working with primary selection does nothing: this
|
|
||||||
// allows to write code which sets the primary selection when something is
|
|
||||||
// selected without any ill effects (i.e. without overwriting the
|
|
||||||
// clipboard which would be wrong on the platforms without X11 PRIMARY)
|
|
||||||
virtual void UsePrimarySelection(bool usePrimary = false)
|
|
||||||
{
|
|
||||||
m_usePrimary = usePrimary;
|
|
||||||
}
|
|
||||||
|
|
||||||
// return true if we're using primary selection
|
|
||||||
bool IsUsingPrimarySelection() const { return m_usePrimary; }
|
|
||||||
|
|
||||||
// Returns global instance (wxTheClipboard) of the object:
|
|
||||||
static wxClipboard *Get();
|
|
||||||
|
|
||||||
|
|
||||||
// don't use this directly, it is public for compatibility with some ports
|
|
||||||
// (wxX11, wxMotif, ...) only
|
|
||||||
bool m_usePrimary;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// asynchronous clipboard event
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxClipboardEvent : public wxEvent
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxClipboardEvent(wxEventType evtType = wxEVT_NULL)
|
|
||||||
: wxEvent(0, evtType)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxClipboardEvent(const wxClipboardEvent& event)
|
|
||||||
: wxEvent(event),
|
|
||||||
m_formats(event.m_formats)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
bool SupportsFormat(const wxDataFormat& format) const;
|
|
||||||
void AddFormat(const wxDataFormat& format);
|
|
||||||
|
|
||||||
virtual wxEvent *Clone() const
|
|
||||||
{
|
|
||||||
return new wxClipboardEvent(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
|
||||||
wxVector<wxDataFormat> m_formats;
|
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxClipboardEvent)
|
|
||||||
};
|
|
||||||
|
|
||||||
wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_CLIPBOARD_CHANGED, wxClipboardEvent );
|
|
||||||
|
|
||||||
typedef void (wxEvtHandler::*wxClipboardEventFunction)(wxClipboardEvent&);
|
|
||||||
|
|
||||||
#define wxClipboardEventHandler(func) \
|
|
||||||
wxEVENT_HANDLER_CAST(wxClipboardEventFunction, func)
|
|
||||||
|
|
||||||
#define EVT_CLIPBOARD_CHANGED(func) wx__DECLARE_EVT0(wxEVT_CLIPBOARD_CHANGED, wxClipboardEventHandler(func))
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// globals
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// The global clipboard object - backward compatible access macro:
|
|
||||||
#define wxTheClipboard (wxClipboard::Get())
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include platform-specific class declaration
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
|
||||||
#include "wx/msw/clipbrd.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/clipbrd.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/clipbrd.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/clipbrd.h"
|
|
||||||
#elif defined(__WXX11__)
|
|
||||||
#include "wx/x11/clipbrd.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/clipbrd.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/clipbrd.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/clipbrd.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// helpful class for opening the clipboard and automatically closing it
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxClipboardLocker
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxClipboardLocker(wxClipboard *clipboard = NULL)
|
|
||||||
{
|
|
||||||
m_clipboard = clipboard ? clipboard : wxTheClipboard;
|
|
||||||
if ( m_clipboard )
|
|
||||||
{
|
|
||||||
m_clipboard->Open();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!() const { return !m_clipboard->IsOpened(); }
|
|
||||||
|
|
||||||
~wxClipboardLocker()
|
|
||||||
{
|
|
||||||
if ( m_clipboard )
|
|
||||||
{
|
|
||||||
m_clipboard->Close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxClipboard *m_clipboard;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxClipboardLocker);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_CLIPBOARD
|
|
||||||
|
|
||||||
#endif // _WX_CLIPBRD_H_BASE_
|
|
|
@ -1,163 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/clntdata.h
|
|
||||||
// Purpose: A mixin class for holding a wxClientData or void pointer
|
|
||||||
// Author: Robin Dunn
|
|
||||||
// Modified by:
|
|
||||||
// Created: 9-Oct-2001
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CLNTDATAH__
|
|
||||||
#define _WX_CLNTDATAH__
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/hashmap.h"
|
|
||||||
|
|
||||||
typedef int (*wxShadowObjectMethod)(void*, void*);
|
|
||||||
WX_DECLARE_STRING_HASH_MAP_WITH_DECL(
|
|
||||||
wxShadowObjectMethod,
|
|
||||||
wxShadowObjectMethods,
|
|
||||||
class WXDLLIMPEXP_BASE
|
|
||||||
);
|
|
||||||
WX_DECLARE_STRING_HASH_MAP_WITH_DECL(
|
|
||||||
void *,
|
|
||||||
wxShadowObjectFields,
|
|
||||||
class WXDLLIMPEXP_BASE
|
|
||||||
);
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxShadowObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxShadowObject() { }
|
|
||||||
|
|
||||||
void AddMethod( const wxString &name, wxShadowObjectMethod method )
|
|
||||||
{
|
|
||||||
wxShadowObjectMethods::iterator it = m_methods.find( name );
|
|
||||||
if (it == m_methods.end())
|
|
||||||
m_methods[ name ] = method;
|
|
||||||
else
|
|
||||||
it->second = method;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool InvokeMethod( const wxString &name, void* window, void* param, int* returnValue )
|
|
||||||
{
|
|
||||||
wxShadowObjectMethods::iterator it = m_methods.find( name );
|
|
||||||
if (it == m_methods.end())
|
|
||||||
return false;
|
|
||||||
wxShadowObjectMethod method = it->second;
|
|
||||||
int ret = (*method)(window, param);
|
|
||||||
if (returnValue)
|
|
||||||
*returnValue = ret;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddField( const wxString &name, void* initialValue = NULL )
|
|
||||||
{
|
|
||||||
wxShadowObjectFields::iterator it = m_fields.find( name );
|
|
||||||
if (it == m_fields.end())
|
|
||||||
m_fields[ name ] = initialValue;
|
|
||||||
else
|
|
||||||
it->second = initialValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetField( const wxString &name, void* value )
|
|
||||||
{
|
|
||||||
wxShadowObjectFields::iterator it = m_fields.find( name );
|
|
||||||
if (it == m_fields.end())
|
|
||||||
return;
|
|
||||||
it->second = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void* GetField( const wxString &name, void *defaultValue = NULL )
|
|
||||||
{
|
|
||||||
wxShadowObjectFields::iterator it = m_fields.find( name );
|
|
||||||
if (it == m_fields.end())
|
|
||||||
return defaultValue;
|
|
||||||
return it->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxShadowObjectMethods m_methods;
|
|
||||||
wxShadowObjectFields m_fields;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// what kind of client data do we have?
|
|
||||||
enum wxClientDataType
|
|
||||||
{
|
|
||||||
wxClientData_None, // we don't know yet because we don't have it at all
|
|
||||||
wxClientData_Object, // our client data is typed and we own it
|
|
||||||
wxClientData_Void // client data is untyped and we don't own it
|
|
||||||
};
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxClientData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxClientData() { }
|
|
||||||
virtual ~wxClientData() { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxStringClientData : public wxClientData
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxStringClientData() : m_data() { }
|
|
||||||
wxStringClientData( const wxString &data ) : m_data(data) { }
|
|
||||||
void SetData( const wxString &data ) { m_data = data; }
|
|
||||||
const wxString& GetData() const { return m_data; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxString m_data;
|
|
||||||
};
|
|
||||||
|
|
||||||
// This class is a mixin that provides storage and management of "client
|
|
||||||
// data." The client data stored can either be a pointer to a wxClientData
|
|
||||||
// object in which case it is managed by the container (i.e. it will delete
|
|
||||||
// the data when it's destroyed) or an untyped pointer which won't be deleted
|
|
||||||
// by the container - but not both of them
|
|
||||||
//
|
|
||||||
// NOTE: This functionality is currently duplicated in wxEvtHandler in order
|
|
||||||
// to avoid having more than one vtable in that class hierarchy.
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxClientDataContainer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxClientDataContainer();
|
|
||||||
virtual ~wxClientDataContainer();
|
|
||||||
|
|
||||||
void SetClientObject( wxClientData *data ) { DoSetClientObject(data); }
|
|
||||||
wxClientData *GetClientObject() const { return DoGetClientObject(); }
|
|
||||||
|
|
||||||
void SetClientData( void *data ) { DoSetClientData(data); }
|
|
||||||
void *GetClientData() const { return DoGetClientData(); }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// The user data: either an object which will be deleted by the container
|
|
||||||
// when it's deleted or some raw pointer which we do nothing with. Only
|
|
||||||
// one type of data can be used with the given window, i.e. you cannot set
|
|
||||||
// the void data and then associate the container with wxClientData or vice
|
|
||||||
// versa.
|
|
||||||
union
|
|
||||||
{
|
|
||||||
wxClientData *m_clientObject;
|
|
||||||
void *m_clientData;
|
|
||||||
};
|
|
||||||
|
|
||||||
// client data accessors
|
|
||||||
virtual void DoSetClientObject( wxClientData *data );
|
|
||||||
virtual wxClientData *DoGetClientObject() const;
|
|
||||||
|
|
||||||
virtual void DoSetClientData( void *data );
|
|
||||||
virtual void *DoGetClientData() const;
|
|
||||||
|
|
||||||
// what kind of data do we have?
|
|
||||||
wxClientDataType m_clientDataType;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _WX_CLNTDATAH__
|
|
||||||
|
|
|
@ -1,152 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/cmdargs.h
|
|
||||||
// Purpose: declaration of wxCmdLineArgsArray helper class
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Created: 2007-11-12
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CMDARGS_H_
|
|
||||||
#define _WX_CMDARGS_H_
|
|
||||||
|
|
||||||
#include "wx/arrstr.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCmdLineArgsArray: helper class used by wxApp::argv
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
|
|
||||||
// this class is used instead of either "char **" or "wchar_t **" (neither of
|
|
||||||
// which would be backwards compatible with all the existing code) for argv
|
|
||||||
// field of wxApp
|
|
||||||
//
|
|
||||||
// as it's used for compatibility, it tries to look as much as traditional
|
|
||||||
// (char **) argv as possible, in particular it provides implicit conversions
|
|
||||||
// to "char **" and also array-like operator[]
|
|
||||||
class WXDLLIMPEXP_BASE wxCmdLineArgsArray
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxCmdLineArgsArray() { m_argsA = NULL; m_argsW = NULL; }
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
wxCmdLineArgsArray& operator=(T **argv)
|
|
||||||
{
|
|
||||||
FreeArgs();
|
|
||||||
|
|
||||||
m_args.clear();
|
|
||||||
|
|
||||||
if ( argv )
|
|
||||||
{
|
|
||||||
while ( *argv )
|
|
||||||
m_args.push_back(*argv++);
|
|
||||||
}
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator char**() const
|
|
||||||
{
|
|
||||||
if ( !m_argsA )
|
|
||||||
{
|
|
||||||
const size_t count = m_args.size();
|
|
||||||
m_argsA = new char *[count];
|
|
||||||
for ( size_t n = 0; n < count; n++ )
|
|
||||||
m_argsA[n] = wxStrdup(m_args[n].ToAscii());
|
|
||||||
}
|
|
||||||
|
|
||||||
return m_argsA;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator wchar_t**() const
|
|
||||||
{
|
|
||||||
if ( !m_argsW )
|
|
||||||
{
|
|
||||||
const size_t count = m_args.size();
|
|
||||||
m_argsW = new wchar_t *[count];
|
|
||||||
for ( size_t n = 0; n < count; n++ )
|
|
||||||
m_argsW[n] = wxStrdup(m_args[n].wc_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
return m_argsW;
|
|
||||||
}
|
|
||||||
|
|
||||||
// existing code does checks like "if ( argv )" and we want it to continue
|
|
||||||
// to compile, so provide this conversion even if it is pretty dangerous
|
|
||||||
operator bool() const
|
|
||||||
{
|
|
||||||
return !m_args.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
// and the same for "if ( !argv )" checks
|
|
||||||
bool operator!() const
|
|
||||||
{
|
|
||||||
return m_args.empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString operator[](size_t n) const
|
|
||||||
{
|
|
||||||
return m_args[n];
|
|
||||||
}
|
|
||||||
|
|
||||||
// we must provide this overload for g++ 3.4 which can't choose between
|
|
||||||
// our operator[](size_t) and ::operator[](char**, int) otherwise
|
|
||||||
wxString operator[](int n) const
|
|
||||||
{
|
|
||||||
return m_args[n];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// convenience methods, i.e. not existing only for backwards compatibility
|
|
||||||
|
|
||||||
// do we have any arguments at all?
|
|
||||||
bool IsEmpty() const { return m_args.empty(); }
|
|
||||||
|
|
||||||
// access the arguments as a convenient array of wxStrings
|
|
||||||
const wxArrayString& GetArguments() const { return m_args; }
|
|
||||||
|
|
||||||
~wxCmdLineArgsArray()
|
|
||||||
{
|
|
||||||
FreeArgs();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
template <typename T>
|
|
||||||
void Free(T **args)
|
|
||||||
{
|
|
||||||
if ( !args )
|
|
||||||
return;
|
|
||||||
|
|
||||||
const size_t count = m_args.size();
|
|
||||||
for ( size_t n = 0; n < count; n++ )
|
|
||||||
free(args[n]);
|
|
||||||
|
|
||||||
delete [] args;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FreeArgs()
|
|
||||||
{
|
|
||||||
Free(m_argsA);
|
|
||||||
Free(m_argsW);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxArrayString m_args;
|
|
||||||
mutable char **m_argsA;
|
|
||||||
mutable wchar_t **m_argsW;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCmdLineArgsArray);
|
|
||||||
};
|
|
||||||
|
|
||||||
// provide global operator overload for compatibility with the existing code
|
|
||||||
// doing things like "if ( condition && argv )"
|
|
||||||
inline bool operator&&(bool cond, const wxCmdLineArgsArray& array)
|
|
||||||
{
|
|
||||||
return cond && !array.IsEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_UNICODE
|
|
||||||
|
|
||||||
#endif // _WX_CMDARGS_H_
|
|
||||||
|
|
|
@ -1,298 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/cmdline.h
|
|
||||||
// Purpose: wxCmdLineParser and related classes for parsing the command
|
|
||||||
// line options
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 04.01.00
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CMDLINE_H_
|
|
||||||
#define _WX_CMDLINE_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/arrstr.h"
|
|
||||||
#include "wx/cmdargs.h"
|
|
||||||
|
|
||||||
// determines ConvertStringToArgs() behaviour
|
|
||||||
enum wxCmdLineSplitType
|
|
||||||
{
|
|
||||||
wxCMD_LINE_SPLIT_DOS,
|
|
||||||
wxCMD_LINE_SPLIT_UNIX
|
|
||||||
};
|
|
||||||
|
|
||||||
#if wxUSE_CMDLINE_PARSER
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxDateTime;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// constants
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// by default, options are optional (sic) and each call to AddParam() allows
|
|
||||||
// one more parameter - this may be changed by giving non-default flags to it
|
|
||||||
enum wxCmdLineEntryFlags
|
|
||||||
{
|
|
||||||
wxCMD_LINE_OPTION_MANDATORY = 0x01, // this option must be given
|
|
||||||
wxCMD_LINE_PARAM_OPTIONAL = 0x02, // the parameter may be omitted
|
|
||||||
wxCMD_LINE_PARAM_MULTIPLE = 0x04, // the parameter may be repeated
|
|
||||||
wxCMD_LINE_OPTION_HELP = 0x08, // this option is a help request
|
|
||||||
wxCMD_LINE_NEEDS_SEPARATOR = 0x10, // must have sep before the value
|
|
||||||
wxCMD_LINE_SWITCH_NEGATABLE = 0x20 // this switch can be negated (e.g. /S-)
|
|
||||||
};
|
|
||||||
|
|
||||||
// an option value or parameter may be a string (the most common case), a
|
|
||||||
// number or a date
|
|
||||||
enum wxCmdLineParamType
|
|
||||||
{
|
|
||||||
wxCMD_LINE_VAL_STRING, // should be 0 (default)
|
|
||||||
wxCMD_LINE_VAL_NUMBER,
|
|
||||||
wxCMD_LINE_VAL_DATE,
|
|
||||||
wxCMD_LINE_VAL_DOUBLE,
|
|
||||||
wxCMD_LINE_VAL_NONE
|
|
||||||
};
|
|
||||||
|
|
||||||
// for constructing the cmd line description using Init()
|
|
||||||
enum wxCmdLineEntryType
|
|
||||||
{
|
|
||||||
wxCMD_LINE_SWITCH,
|
|
||||||
wxCMD_LINE_OPTION,
|
|
||||||
wxCMD_LINE_PARAM,
|
|
||||||
wxCMD_LINE_USAGE_TEXT,
|
|
||||||
wxCMD_LINE_NONE // to terminate the list
|
|
||||||
};
|
|
||||||
|
|
||||||
// Possible return values of wxCmdLineParser::FoundSwitch()
|
|
||||||
enum wxCmdLineSwitchState
|
|
||||||
{
|
|
||||||
wxCMD_SWITCH_OFF = -1, // Found but turned off/negated.
|
|
||||||
wxCMD_SWITCH_NOT_FOUND, // Not found at all.
|
|
||||||
wxCMD_SWITCH_ON // Found in normal state.
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCmdLineEntryDesc is a description of one command line
|
|
||||||
// switch/option/parameter
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
struct wxCmdLineEntryDesc
|
|
||||||
{
|
|
||||||
wxCmdLineEntryType kind;
|
|
||||||
const char *shortName;
|
|
||||||
const char *longName;
|
|
||||||
const char *description;
|
|
||||||
wxCmdLineParamType type;
|
|
||||||
int flags;
|
|
||||||
};
|
|
||||||
|
|
||||||
// the list of wxCmdLineEntryDesc objects should be terminated with this one
|
|
||||||
#define wxCMD_LINE_DESC_END \
|
|
||||||
{ wxCMD_LINE_NONE, NULL, NULL, NULL, wxCMD_LINE_VAL_NONE, 0x0 }
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCmdLineParser is a class for parsing command line.
|
|
||||||
//
|
|
||||||
// It has the following features:
|
|
||||||
//
|
|
||||||
// 1. distinguishes options, switches and parameters; allows option grouping
|
|
||||||
// 2. allows both short and long options
|
|
||||||
// 3. automatically generates the usage message from the cmd line description
|
|
||||||
// 4. does type checks on the options values (number, date, ...)
|
|
||||||
//
|
|
||||||
// To use it you should:
|
|
||||||
//
|
|
||||||
// 1. construct it giving it the cmd line to parse and optionally its desc
|
|
||||||
// 2. construct the cmd line description using AddXXX() if not done in (1)
|
|
||||||
// 3. call Parse()
|
|
||||||
// 4. use GetXXX() to retrieve the parsed info
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxCmdLineParser
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctors and initializers
|
|
||||||
// ----------------------
|
|
||||||
|
|
||||||
// default ctor or ctor giving the cmd line in either Unix or Win form
|
|
||||||
wxCmdLineParser() { Init(); }
|
|
||||||
wxCmdLineParser(int argc, char **argv) { Init(); SetCmdLine(argc, argv); }
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
wxCmdLineParser(int argc, wxChar **argv) { Init(); SetCmdLine(argc, argv); }
|
|
||||||
wxCmdLineParser(int argc, const wxCmdLineArgsArray& argv)
|
|
||||||
{ Init(); SetCmdLine(argc, argv); }
|
|
||||||
#endif // wxUSE_UNICODE
|
|
||||||
wxCmdLineParser(const wxString& cmdline) { Init(); SetCmdLine(cmdline); }
|
|
||||||
|
|
||||||
// the same as above, but also gives the cmd line description - otherwise,
|
|
||||||
// use AddXXX() later
|
|
||||||
wxCmdLineParser(const wxCmdLineEntryDesc *desc)
|
|
||||||
{ Init(); SetDesc(desc); }
|
|
||||||
wxCmdLineParser(const wxCmdLineEntryDesc *desc, int argc, char **argv)
|
|
||||||
{ Init(); SetCmdLine(argc, argv); SetDesc(desc); }
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
wxCmdLineParser(const wxCmdLineEntryDesc *desc, int argc, wxChar **argv)
|
|
||||||
{ Init(); SetCmdLine(argc, argv); SetDesc(desc); }
|
|
||||||
wxCmdLineParser(const wxCmdLineEntryDesc *desc,
|
|
||||||
int argc,
|
|
||||||
const wxCmdLineArgsArray& argv)
|
|
||||||
{ Init(); SetCmdLine(argc, argv); SetDesc(desc); }
|
|
||||||
#endif // wxUSE_UNICODE
|
|
||||||
wxCmdLineParser(const wxCmdLineEntryDesc *desc, const wxString& cmdline)
|
|
||||||
{ Init(); SetCmdLine(cmdline); SetDesc(desc); }
|
|
||||||
|
|
||||||
// set cmd line to parse after using one of the ctors which don't do it
|
|
||||||
void SetCmdLine(int argc, char **argv);
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
void SetCmdLine(int argc, wxChar **argv);
|
|
||||||
void SetCmdLine(int argc, const wxCmdLineArgsArray& argv);
|
|
||||||
#endif // wxUSE_UNICODE
|
|
||||||
void SetCmdLine(const wxString& cmdline);
|
|
||||||
|
|
||||||
// not virtual, don't use this class polymorphically
|
|
||||||
~wxCmdLineParser();
|
|
||||||
|
|
||||||
// set different parser options
|
|
||||||
// ----------------------------
|
|
||||||
|
|
||||||
// by default, '-' is switch char under Unix, '-' or '/' under Win:
|
|
||||||
// switchChars contains all characters with which an option or switch may
|
|
||||||
// start
|
|
||||||
void SetSwitchChars(const wxString& switchChars);
|
|
||||||
|
|
||||||
// long options are not POSIX-compliant, this option allows to disable them
|
|
||||||
void EnableLongOptions(bool enable = true);
|
|
||||||
void DisableLongOptions() { EnableLongOptions(false); }
|
|
||||||
|
|
||||||
bool AreLongOptionsEnabled() const;
|
|
||||||
|
|
||||||
// extra text may be shown by Usage() method if set by this function
|
|
||||||
void SetLogo(const wxString& logo);
|
|
||||||
|
|
||||||
// construct the cmd line description
|
|
||||||
// ----------------------------------
|
|
||||||
|
|
||||||
// take the cmd line description from the wxCMD_LINE_NONE terminated table
|
|
||||||
void SetDesc(const wxCmdLineEntryDesc *desc);
|
|
||||||
|
|
||||||
// a switch: i.e. an option without value
|
|
||||||
void AddSwitch(const wxString& name, const wxString& lng = wxEmptyString,
|
|
||||||
const wxString& desc = wxEmptyString,
|
|
||||||
int flags = 0);
|
|
||||||
void AddLongSwitch(const wxString& lng,
|
|
||||||
const wxString& desc = wxEmptyString,
|
|
||||||
int flags = 0)
|
|
||||||
{
|
|
||||||
AddSwitch(wxString(), lng, desc, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
// an option taking a value of the given type
|
|
||||||
void AddOption(const wxString& name, const wxString& lng = wxEmptyString,
|
|
||||||
const wxString& desc = wxEmptyString,
|
|
||||||
wxCmdLineParamType type = wxCMD_LINE_VAL_STRING,
|
|
||||||
int flags = 0);
|
|
||||||
void AddLongOption(const wxString& lng,
|
|
||||||
const wxString& desc = wxEmptyString,
|
|
||||||
wxCmdLineParamType type = wxCMD_LINE_VAL_STRING,
|
|
||||||
int flags = 0)
|
|
||||||
{
|
|
||||||
AddOption(wxString(), lng, desc, type, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
// a parameter
|
|
||||||
void AddParam(const wxString& desc = wxEmptyString,
|
|
||||||
wxCmdLineParamType type = wxCMD_LINE_VAL_STRING,
|
|
||||||
int flags = 0);
|
|
||||||
|
|
||||||
// add an explanatory text to be shown to the user in help
|
|
||||||
void AddUsageText(const wxString& text);
|
|
||||||
|
|
||||||
// actions
|
|
||||||
// -------
|
|
||||||
|
|
||||||
// parse the command line, return 0 if ok, -1 if "-h" or "--help" option
|
|
||||||
// was encountered and the help message was given or a positive value if a
|
|
||||||
// syntax error occurred
|
|
||||||
//
|
|
||||||
// if showUsage is true, Usage() is called in case of syntax error or if
|
|
||||||
// help was requested
|
|
||||||
int Parse(bool showUsage = true);
|
|
||||||
|
|
||||||
// give the usage message describing all program options
|
|
||||||
void Usage() const;
|
|
||||||
|
|
||||||
// return the usage string, call Usage() to directly show it to the user
|
|
||||||
wxString GetUsageString() const;
|
|
||||||
|
|
||||||
// get the command line arguments
|
|
||||||
// ------------------------------
|
|
||||||
|
|
||||||
// returns true if the given switch was found
|
|
||||||
bool Found(const wxString& name) const;
|
|
||||||
|
|
||||||
// Returns wxCMD_SWITCH_NOT_FOUND if the switch was not found at all,
|
|
||||||
// wxCMD_SWITCH_ON if it was found in normal state and wxCMD_SWITCH_OFF if
|
|
||||||
// it was found but negated (i.e. followed by "-", this can only happen for
|
|
||||||
// the switches with wxCMD_LINE_SWITCH_NEGATABLE flag).
|
|
||||||
wxCmdLineSwitchState FoundSwitch(const wxString& name) const;
|
|
||||||
|
|
||||||
// returns true if an option taking a string value was found and stores the
|
|
||||||
// value in the provided pointer
|
|
||||||
bool Found(const wxString& name, wxString *value) const;
|
|
||||||
|
|
||||||
// returns true if an option taking an integer value was found and stores
|
|
||||||
// the value in the provided pointer
|
|
||||||
bool Found(const wxString& name, long *value) const;
|
|
||||||
|
|
||||||
// returns true if an option taking a double value was found and stores
|
|
||||||
// the value in the provided pointer
|
|
||||||
bool Found(const wxString& name, double *value) const;
|
|
||||||
|
|
||||||
#if wxUSE_DATETIME
|
|
||||||
// returns true if an option taking a date value was found and stores the
|
|
||||||
// value in the provided pointer
|
|
||||||
bool Found(const wxString& name, wxDateTime *value) const;
|
|
||||||
#endif // wxUSE_DATETIME
|
|
||||||
|
|
||||||
// gets the number of parameters found
|
|
||||||
size_t GetParamCount() const;
|
|
||||||
|
|
||||||
// gets the value of Nth parameter (as string only for now)
|
|
||||||
wxString GetParam(size_t n = 0u) const;
|
|
||||||
|
|
||||||
// Resets switches and options
|
|
||||||
void Reset();
|
|
||||||
|
|
||||||
// break down the command line in arguments
|
|
||||||
static wxArrayString
|
|
||||||
ConvertStringToArgs(const wxString& cmdline,
|
|
||||||
wxCmdLineSplitType type = wxCMD_LINE_SPLIT_DOS);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// common part of all ctors
|
|
||||||
void Init();
|
|
||||||
|
|
||||||
struct wxCmdLineParserData *m_data;
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxCmdLineParser);
|
|
||||||
};
|
|
||||||
|
|
||||||
#else // !wxUSE_CMDLINE_PARSER
|
|
||||||
|
|
||||||
// this function is always available (even if !wxUSE_CMDLINE_PARSER) because it
|
|
||||||
// is used by wxWin itself under Windows
|
|
||||||
class WXDLLIMPEXP_BASE wxCmdLineParser
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
static wxArrayString
|
|
||||||
ConvertStringToArgs(const wxString& cmdline,
|
|
||||||
wxCmdLineSplitType type = wxCMD_LINE_SPLIT_DOS);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_CMDLINE_PARSER/!wxUSE_CMDLINE_PARSER
|
|
||||||
|
|
||||||
#endif // _WX_CMDLINE_H_
|
|
|
@ -1,312 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/cmndata.h
|
|
||||||
// Purpose: Common GDI data classes
|
|
||||||
// Author: Julian Smart and others
|
|
||||||
// Modified by:
|
|
||||||
// Created: 01/02/97
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c)
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CMNDATA_H_BASE_
|
|
||||||
#define _WX_CMNDATA_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_PRINTING_ARCHITECTURE
|
|
||||||
|
|
||||||
#include "wx/gdicmn.h"
|
|
||||||
|
|
||||||
#if wxUSE_STREAMS
|
|
||||||
#include "wx/stream.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* wxPrintData
|
|
||||||
* Encapsulates printer information (not printer dialog information)
|
|
||||||
*/
|
|
||||||
|
|
||||||
enum wxPrintBin
|
|
||||||
{
|
|
||||||
wxPRINTBIN_DEFAULT,
|
|
||||||
|
|
||||||
wxPRINTBIN_ONLYONE,
|
|
||||||
wxPRINTBIN_LOWER,
|
|
||||||
wxPRINTBIN_MIDDLE,
|
|
||||||
wxPRINTBIN_MANUAL,
|
|
||||||
wxPRINTBIN_ENVELOPE,
|
|
||||||
wxPRINTBIN_ENVMANUAL,
|
|
||||||
wxPRINTBIN_AUTO,
|
|
||||||
wxPRINTBIN_TRACTOR,
|
|
||||||
wxPRINTBIN_SMALLFMT,
|
|
||||||
wxPRINTBIN_LARGEFMT,
|
|
||||||
wxPRINTBIN_LARGECAPACITY,
|
|
||||||
wxPRINTBIN_CASSETTE,
|
|
||||||
wxPRINTBIN_FORMSOURCE,
|
|
||||||
|
|
||||||
wxPRINTBIN_USER
|
|
||||||
};
|
|
||||||
|
|
||||||
const int wxPRINTMEDIA_DEFAULT = 0;
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxPrintData: public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxPrintData();
|
|
||||||
wxPrintData(const wxPrintData& printData);
|
|
||||||
virtual ~wxPrintData();
|
|
||||||
|
|
||||||
int GetNoCopies() const { return m_printNoCopies; }
|
|
||||||
bool GetCollate() const { return m_printCollate; }
|
|
||||||
wxPrintOrientation GetOrientation() const { return m_printOrientation; }
|
|
||||||
bool IsOrientationReversed() const { return m_printOrientationReversed; }
|
|
||||||
|
|
||||||
// Is this data OK for showing the print dialog?
|
|
||||||
bool Ok() const { return IsOk(); }
|
|
||||||
bool IsOk() const ;
|
|
||||||
|
|
||||||
const wxString& GetPrinterName() const { return m_printerName; }
|
|
||||||
bool GetColour() const { return m_colour; }
|
|
||||||
wxDuplexMode GetDuplex() const { return m_duplexMode; }
|
|
||||||
wxPaperSize GetPaperId() const { return m_paperId; }
|
|
||||||
const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size
|
|
||||||
// in wxPageSetupDialogData
|
|
||||||
wxPrintQuality GetQuality() const { return m_printQuality; }
|
|
||||||
wxPrintBin GetBin() const { return m_bin; }
|
|
||||||
wxPrintMode GetPrintMode() const { return m_printMode; }
|
|
||||||
int GetMedia() const { return m_media; }
|
|
||||||
|
|
||||||
void SetNoCopies(int v) { m_printNoCopies = v; }
|
|
||||||
void SetCollate(bool flag) { m_printCollate = flag; }
|
|
||||||
|
|
||||||
// Please use the overloaded method below
|
|
||||||
wxDEPRECATED_INLINE(void SetOrientation(int orient),
|
|
||||||
m_printOrientation = (wxPrintOrientation)orient; )
|
|
||||||
void SetOrientation(wxPrintOrientation orient) { m_printOrientation = orient; }
|
|
||||||
void SetOrientationReversed(bool reversed) { m_printOrientationReversed = reversed; }
|
|
||||||
|
|
||||||
void SetPrinterName(const wxString& name) { m_printerName = name; }
|
|
||||||
void SetColour(bool colour) { m_colour = colour; }
|
|
||||||
void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; }
|
|
||||||
void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; }
|
|
||||||
void SetPaperSize(const wxSize& sz) { m_paperSize = sz; }
|
|
||||||
void SetQuality(wxPrintQuality quality) { m_printQuality = quality; }
|
|
||||||
void SetBin(wxPrintBin bin) { m_bin = bin; }
|
|
||||||
void SetMedia(int media) { m_media = media; }
|
|
||||||
void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; }
|
|
||||||
|
|
||||||
wxString GetFilename() const { return m_filename; }
|
|
||||||
void SetFilename( const wxString &filename ) { m_filename = filename; }
|
|
||||||
|
|
||||||
wxPrintData& operator=(const wxPrintData& data);
|
|
||||||
|
|
||||||
char* GetPrivData() const { return m_privData; }
|
|
||||||
int GetPrivDataLen() const { return m_privDataLen; }
|
|
||||||
void SetPrivData( char *privData, int len );
|
|
||||||
|
|
||||||
|
|
||||||
// Convert between wxPrintData and native data
|
|
||||||
void ConvertToNative();
|
|
||||||
void ConvertFromNative();
|
|
||||||
// Holds the native print data
|
|
||||||
wxPrintNativeDataBase *GetNativeData() const { return m_nativeData; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxPrintBin m_bin;
|
|
||||||
int m_media;
|
|
||||||
wxPrintMode m_printMode;
|
|
||||||
|
|
||||||
int m_printNoCopies;
|
|
||||||
wxPrintOrientation m_printOrientation;
|
|
||||||
bool m_printOrientationReversed;
|
|
||||||
bool m_printCollate;
|
|
||||||
|
|
||||||
wxString m_printerName;
|
|
||||||
bool m_colour;
|
|
||||||
wxDuplexMode m_duplexMode;
|
|
||||||
wxPrintQuality m_printQuality;
|
|
||||||
wxPaperSize m_paperId;
|
|
||||||
wxSize m_paperSize;
|
|
||||||
|
|
||||||
wxString m_filename;
|
|
||||||
|
|
||||||
char* m_privData;
|
|
||||||
int m_privDataLen;
|
|
||||||
|
|
||||||
wxPrintNativeDataBase *m_nativeData;
|
|
||||||
|
|
||||||
private:
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPrintData)
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* wxPrintDialogData
|
|
||||||
* Encapsulates information displayed and edited in the printer dialog box.
|
|
||||||
* Contains a wxPrintData object which is filled in according to the values retrieved
|
|
||||||
* from the dialog.
|
|
||||||
*/
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxPrintDialogData: public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxPrintDialogData();
|
|
||||||
wxPrintDialogData(const wxPrintDialogData& dialogData);
|
|
||||||
wxPrintDialogData(const wxPrintData& printData);
|
|
||||||
virtual ~wxPrintDialogData();
|
|
||||||
|
|
||||||
int GetFromPage() const { return m_printFromPage; }
|
|
||||||
int GetToPage() const { return m_printToPage; }
|
|
||||||
int GetMinPage() const { return m_printMinPage; }
|
|
||||||
int GetMaxPage() const { return m_printMaxPage; }
|
|
||||||
int GetNoCopies() const { return m_printNoCopies; }
|
|
||||||
bool GetAllPages() const { return m_printAllPages; }
|
|
||||||
bool GetSelection() const { return m_printSelection; }
|
|
||||||
bool GetCollate() const { return m_printCollate; }
|
|
||||||
bool GetPrintToFile() const { return m_printToFile; }
|
|
||||||
|
|
||||||
void SetFromPage(int v) { m_printFromPage = v; }
|
|
||||||
void SetToPage(int v) { m_printToPage = v; }
|
|
||||||
void SetMinPage(int v) { m_printMinPage = v; }
|
|
||||||
void SetMaxPage(int v) { m_printMaxPage = v; }
|
|
||||||
void SetNoCopies(int v) { m_printNoCopies = v; }
|
|
||||||
void SetAllPages(bool flag) { m_printAllPages = flag; }
|
|
||||||
void SetSelection(bool flag) { m_printSelection = flag; }
|
|
||||||
void SetCollate(bool flag) { m_printCollate = flag; }
|
|
||||||
void SetPrintToFile(bool flag) { m_printToFile = flag; }
|
|
||||||
|
|
||||||
void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; }
|
|
||||||
void EnableSelection(bool flag) { m_printEnableSelection = flag; }
|
|
||||||
void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; }
|
|
||||||
void EnableHelp(bool flag) { m_printEnableHelp = flag; }
|
|
||||||
|
|
||||||
bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; }
|
|
||||||
bool GetEnableSelection() const { return m_printEnableSelection; }
|
|
||||||
bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; }
|
|
||||||
bool GetEnableHelp() const { return m_printEnableHelp; }
|
|
||||||
|
|
||||||
// Is this data OK for showing the print dialog?
|
|
||||||
bool Ok() const { return IsOk(); }
|
|
||||||
bool IsOk() const { return m_printData.IsOk() ; }
|
|
||||||
|
|
||||||
wxPrintData& GetPrintData() { return m_printData; }
|
|
||||||
void SetPrintData(const wxPrintData& printData) { m_printData = printData; }
|
|
||||||
|
|
||||||
void operator=(const wxPrintDialogData& data);
|
|
||||||
void operator=(const wxPrintData& data); // Sets internal m_printData member
|
|
||||||
|
|
||||||
private:
|
|
||||||
int m_printFromPage;
|
|
||||||
int m_printToPage;
|
|
||||||
int m_printMinPage;
|
|
||||||
int m_printMaxPage;
|
|
||||||
int m_printNoCopies;
|
|
||||||
bool m_printAllPages;
|
|
||||||
bool m_printCollate;
|
|
||||||
bool m_printToFile;
|
|
||||||
bool m_printSelection;
|
|
||||||
bool m_printEnableSelection;
|
|
||||||
bool m_printEnablePageNumbers;
|
|
||||||
bool m_printEnableHelp;
|
|
||||||
bool m_printEnablePrintToFile;
|
|
||||||
wxPrintData m_printData;
|
|
||||||
|
|
||||||
private:
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPrintDialogData)
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the data used (and returned) by the wxPageSetupDialog.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Compatibility with old name
|
|
||||||
#define wxPageSetupData wxPageSetupDialogData
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxPageSetupDialogData: public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
wxPageSetupDialogData();
|
|
||||||
wxPageSetupDialogData(const wxPageSetupDialogData& dialogData);
|
|
||||||
wxPageSetupDialogData(const wxPrintData& printData);
|
|
||||||
virtual ~wxPageSetupDialogData();
|
|
||||||
|
|
||||||
wxSize GetPaperSize() const { return m_paperSize; }
|
|
||||||
wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); }
|
|
||||||
wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; }
|
|
||||||
wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; }
|
|
||||||
wxPoint GetMarginTopLeft() const { return m_marginTopLeft; }
|
|
||||||
wxPoint GetMarginBottomRight() const { return m_marginBottomRight; }
|
|
||||||
|
|
||||||
bool GetDefaultMinMargins() const { return m_defaultMinMargins; }
|
|
||||||
bool GetEnableMargins() const { return m_enableMargins; }
|
|
||||||
bool GetEnableOrientation() const { return m_enableOrientation; }
|
|
||||||
bool GetEnablePaper() const { return m_enablePaper; }
|
|
||||||
bool GetEnablePrinter() const { return m_enablePrinter; }
|
|
||||||
bool GetDefaultInfo() const { return m_getDefaultInfo; }
|
|
||||||
bool GetEnableHelp() const { return m_enableHelp; }
|
|
||||||
|
|
||||||
// Is this data OK for showing the page setup dialog?
|
|
||||||
bool Ok() const { return IsOk(); }
|
|
||||||
bool IsOk() const { return m_printData.IsOk() ; }
|
|
||||||
|
|
||||||
// If a corresponding paper type is found in the paper database, will set the m_printData
|
|
||||||
// paper size id member as well.
|
|
||||||
void SetPaperSize(const wxSize& sz);
|
|
||||||
|
|
||||||
void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); }
|
|
||||||
|
|
||||||
// Sets the wxPrintData id, plus the paper width/height if found in the paper database.
|
|
||||||
void SetPaperSize(wxPaperSize id);
|
|
||||||
|
|
||||||
void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; }
|
|
||||||
void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; }
|
|
||||||
void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; }
|
|
||||||
void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; }
|
|
||||||
void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; }
|
|
||||||
void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; }
|
|
||||||
|
|
||||||
void EnableMargins(bool flag) { m_enableMargins = flag; }
|
|
||||||
void EnableOrientation(bool flag) { m_enableOrientation = flag; }
|
|
||||||
void EnablePaper(bool flag) { m_enablePaper = flag; }
|
|
||||||
void EnablePrinter(bool flag) { m_enablePrinter = flag; }
|
|
||||||
void EnableHelp(bool flag) { m_enableHelp = flag; }
|
|
||||||
|
|
||||||
// Use paper size defined in this object to set the wxPrintData
|
|
||||||
// paper id
|
|
||||||
void CalculateIdFromPaperSize();
|
|
||||||
|
|
||||||
// Use paper id in wxPrintData to set this object's paper size
|
|
||||||
void CalculatePaperSizeFromId();
|
|
||||||
|
|
||||||
wxPageSetupDialogData& operator=(const wxPageSetupDialogData& data);
|
|
||||||
wxPageSetupDialogData& operator=(const wxPrintData& data);
|
|
||||||
|
|
||||||
wxPrintData& GetPrintData() { return m_printData; }
|
|
||||||
const wxPrintData& GetPrintData() const { return m_printData; }
|
|
||||||
void SetPrintData(const wxPrintData& printData);
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?)
|
|
||||||
wxPoint m_minMarginTopLeft;
|
|
||||||
wxPoint m_minMarginBottomRight;
|
|
||||||
wxPoint m_marginTopLeft;
|
|
||||||
wxPoint m_marginBottomRight;
|
|
||||||
bool m_defaultMinMargins;
|
|
||||||
bool m_enableMargins;
|
|
||||||
bool m_enableOrientation;
|
|
||||||
bool m_enablePaper;
|
|
||||||
bool m_enablePrinter;
|
|
||||||
bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT
|
|
||||||
bool m_enableHelp;
|
|
||||||
wxPrintData m_printData;
|
|
||||||
|
|
||||||
private:
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData)
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxUSE_PRINTING_ARCHITECTURE
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_CMNDATA_H_BASE_
|
|
|
@ -1,42 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/colordlg.h
|
|
||||||
// Purpose: wxColourDialog
|
|
||||||
// Author: Vadim Zeitiln
|
|
||||||
// Modified by:
|
|
||||||
// Created: 01/02/97
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_COLORDLG_H_BASE_
|
|
||||||
#define _WX_COLORDLG_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_COLOURDLG
|
|
||||||
|
|
||||||
#include "wx/colourdata.h"
|
|
||||||
|
|
||||||
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/msw/colordlg.h"
|
|
||||||
#elif defined(__WXMAC__) && !defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/osx/colordlg.h"
|
|
||||||
#elif defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/gtk/colordlg.h"
|
|
||||||
#else
|
|
||||||
#include "wx/generic/colrdlgg.h"
|
|
||||||
|
|
||||||
#define wxColourDialog wxGenericColourDialog
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// get the colour from user and return it
|
|
||||||
WXDLLIMPEXP_CORE wxColour wxGetColourFromUser(wxWindow *parent = NULL,
|
|
||||||
const wxColour& colInit = wxNullColour,
|
|
||||||
const wxString& caption = wxEmptyString,
|
|
||||||
wxColourData *data = NULL);
|
|
||||||
|
|
||||||
#endif // wxUSE_COLOURDLG
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_COLORDLG_H_BASE_
|
|
|
@ -1,238 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/colour.h
|
|
||||||
// Purpose: wxColourBase definition
|
|
||||||
// Author: Julian Smart
|
|
||||||
// Modified by: Francesco Montorsi
|
|
||||||
// Created:
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: Julian Smart
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_COLOUR_H_BASE_
|
|
||||||
#define _WX_COLOUR_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/gdiobj.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxColour;
|
|
||||||
|
|
||||||
// A macro to define the standard wxColour constructors:
|
|
||||||
//
|
|
||||||
// It avoids the need to repeat these lines across all colour.h files, since
|
|
||||||
// Set() is a virtual function and thus cannot be called by wxColourBase ctors
|
|
||||||
#define DEFINE_STD_WXCOLOUR_CONSTRUCTORS \
|
|
||||||
wxColour() { Init(); } \
|
|
||||||
wxColour(ChannelType red, \
|
|
||||||
ChannelType green, \
|
|
||||||
ChannelType blue, \
|
|
||||||
ChannelType alpha = wxALPHA_OPAQUE) \
|
|
||||||
{ Init(); Set(red, green, blue, alpha); } \
|
|
||||||
wxColour(unsigned long colRGB) { Init(); Set(colRGB ); } \
|
|
||||||
wxColour(const wxString& colourName) { Init(); Set(colourName); } \
|
|
||||||
wxColour(const char *colourName) { Init(); Set(colourName); } \
|
|
||||||
wxColour(const wchar_t *colourName) { Init(); Set(colourName); }
|
|
||||||
|
|
||||||
|
|
||||||
// flags for wxColour -> wxString conversion (see wxColour::GetAsString)
|
|
||||||
enum {
|
|
||||||
wxC2S_NAME = 1, // return colour name, when possible
|
|
||||||
wxC2S_CSS_SYNTAX = 2, // return colour in rgb(r,g,b) syntax
|
|
||||||
wxC2S_HTML_SYNTAX = 4 // return colour in #rrggbb syntax
|
|
||||||
};
|
|
||||||
|
|
||||||
const unsigned char wxALPHA_TRANSPARENT = 0;
|
|
||||||
const unsigned char wxALPHA_OPAQUE = 0xff;
|
|
||||||
|
|
||||||
// a valid but fully transparent colour
|
|
||||||
#define wxTransparentColour wxColour(0, 0, 0, wxALPHA_TRANSPARENT)
|
|
||||||
#define wxTransparentColor wxTransparentColour
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxVariant support
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if wxUSE_VARIANT
|
|
||||||
#include "wx/variant.h"
|
|
||||||
DECLARE_VARIANT_OBJECT_EXPORTED(wxColour,WXDLLIMPEXP_CORE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
// wxColourBase: this class has no data members, just some functions to avoid
|
|
||||||
// code redundancy in all native wxColour implementations
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/* Transition from wxGDIObject to wxObject is incomplete. If your port does
|
|
||||||
not need the wxGDIObject machinery to handle colors, please add it to the
|
|
||||||
list of ports which do not need it.
|
|
||||||
*/
|
|
||||||
#if defined( __WXMAC__ ) || defined( __WXMSW__ ) || defined( __WXPM__ ) || defined( __WXCOCOA__ )
|
|
||||||
#define wxCOLOUR_IS_GDIOBJECT 0
|
|
||||||
#else
|
|
||||||
#define wxCOLOUR_IS_GDIOBJECT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxColourBase : public
|
|
||||||
#if wxCOLOUR_IS_GDIOBJECT
|
|
||||||
wxGDIObject
|
|
||||||
#else
|
|
||||||
wxObject
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// type of a single colour component
|
|
||||||
typedef unsigned char ChannelType;
|
|
||||||
|
|
||||||
wxColourBase() {}
|
|
||||||
virtual ~wxColourBase() {}
|
|
||||||
|
|
||||||
|
|
||||||
// Set() functions
|
|
||||||
// ---------------
|
|
||||||
|
|
||||||
void Set(ChannelType red,
|
|
||||||
ChannelType green,
|
|
||||||
ChannelType blue,
|
|
||||||
ChannelType alpha = wxALPHA_OPAQUE)
|
|
||||||
{ InitRGBA(red, green, blue, alpha); }
|
|
||||||
|
|
||||||
// implemented in colourcmn.cpp
|
|
||||||
bool Set(const wxString &str)
|
|
||||||
{ return FromString(str); }
|
|
||||||
|
|
||||||
void Set(unsigned long colRGB)
|
|
||||||
{
|
|
||||||
// we don't need to know sizeof(long) here because we assume that the three
|
|
||||||
// least significant bytes contain the R, G and B values
|
|
||||||
Set((ChannelType)(0xFF & colRGB),
|
|
||||||
(ChannelType)(0xFF & (colRGB >> 8)),
|
|
||||||
(ChannelType)(0xFF & (colRGB >> 16)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// accessors
|
|
||||||
// ---------
|
|
||||||
|
|
||||||
virtual ChannelType Red() const = 0;
|
|
||||||
virtual ChannelType Green() const = 0;
|
|
||||||
virtual ChannelType Blue() const = 0;
|
|
||||||
virtual ChannelType Alpha() const
|
|
||||||
{ return wxALPHA_OPAQUE ; }
|
|
||||||
|
|
||||||
// implemented in colourcmn.cpp
|
|
||||||
virtual wxString GetAsString(long flags = wxC2S_NAME | wxC2S_CSS_SYNTAX) const;
|
|
||||||
|
|
||||||
void SetRGB(wxUint32 colRGB)
|
|
||||||
{
|
|
||||||
Set((ChannelType)(0xFF & colRGB),
|
|
||||||
(ChannelType)(0xFF & (colRGB >> 8)),
|
|
||||||
(ChannelType)(0xFF & (colRGB >> 16)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetRGBA(wxUint32 colRGBA)
|
|
||||||
{
|
|
||||||
Set((ChannelType)(0xFF & colRGBA),
|
|
||||||
(ChannelType)(0xFF & (colRGBA >> 8)),
|
|
||||||
(ChannelType)(0xFF & (colRGBA >> 16)),
|
|
||||||
(ChannelType)(0xFF & (colRGBA >> 24)));
|
|
||||||
}
|
|
||||||
|
|
||||||
wxUint32 GetRGB() const
|
|
||||||
{ return Red() | (Green() << 8) | (Blue() << 16); }
|
|
||||||
|
|
||||||
wxUint32 GetRGBA() const
|
|
||||||
{ return Red() | (Green() << 8) | (Blue() << 16) | (Alpha() << 24); }
|
|
||||||
|
|
||||||
#if !wxCOLOUR_IS_GDIOBJECT
|
|
||||||
virtual bool IsOk() const= 0;
|
|
||||||
|
|
||||||
// older version, for backwards compatibility only (but not deprecated
|
|
||||||
// because it's still widely used)
|
|
||||||
bool Ok() const { return IsOk(); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// manipulation
|
|
||||||
// ------------
|
|
||||||
|
|
||||||
// These methods are static because they are mostly used
|
|
||||||
// within tight loops (where we don't want to instantiate wxColour's)
|
|
||||||
|
|
||||||
static void MakeMono (unsigned char* r, unsigned char* g, unsigned char* b, bool on);
|
|
||||||
static void MakeDisabled(unsigned char* r, unsigned char* g, unsigned char* b, unsigned char brightness = 255);
|
|
||||||
static void MakeGrey (unsigned char* r, unsigned char* g, unsigned char* b); // integer version
|
|
||||||
static void MakeGrey (unsigned char* r, unsigned char* g, unsigned char* b,
|
|
||||||
double weight_r, double weight_g, double weight_b); // floating point version
|
|
||||||
static unsigned char AlphaBlend (unsigned char fg, unsigned char bg, double alpha);
|
|
||||||
static void ChangeLightness(unsigned char* r, unsigned char* g, unsigned char* b, int ialpha);
|
|
||||||
|
|
||||||
wxColour ChangeLightness(int ialpha) const;
|
|
||||||
|
|
||||||
// old, deprecated
|
|
||||||
// ---------------
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_6
|
|
||||||
static wxDEPRECATED( wxColour CreateByName(const wxString& name) );
|
|
||||||
wxDEPRECATED( void InitFromName(const wxString& col) );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// Some ports need Init() and while we don't, provide a stub so that the
|
|
||||||
// ports which don't need it are not forced to define it
|
|
||||||
void Init() { }
|
|
||||||
|
|
||||||
virtual void
|
|
||||||
InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a) = 0;
|
|
||||||
|
|
||||||
virtual bool FromString(const wxString& s);
|
|
||||||
|
|
||||||
#if wxCOLOUR_IS_GDIOBJECT
|
|
||||||
// wxColour doesn't use reference counted data (at least not in all ports)
|
|
||||||
// so provide stubs for the functions which need to be defined if we do use
|
|
||||||
// them
|
|
||||||
virtual wxGDIRefData *CreateGDIRefData() const
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "must be overridden if used" );
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *WXUNUSED(data)) const
|
|
||||||
{
|
|
||||||
wxFAIL_MSG( "must be overridden if used" );
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// wxColour <-> wxString utilities, used by wxConfig, defined in colourcmn.cpp
|
|
||||||
WXDLLIMPEXP_CORE wxString wxToString(const wxColourBase& col);
|
|
||||||
WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxColourBase* col);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
|
||||||
#include "wx/msw/colour.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/colour.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/colour.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/colour.h"
|
|
||||||
#elif defined(__WXDFB__)
|
|
||||||
#include "wx/generic/colour.h"
|
|
||||||
#elif defined(__WXX11__)
|
|
||||||
#include "wx/x11/colour.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/colour.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/colour.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/colour.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define wxColor wxColour
|
|
||||||
|
|
||||||
#endif // _WX_COLOUR_H_BASE_
|
|
|
@ -1,52 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/colourdata.h
|
|
||||||
// Author: Julian Smart
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Julian Smart
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_COLOURDATA_H_
|
|
||||||
#define _WX_COLOURDATA_H_
|
|
||||||
|
|
||||||
#include "wx/colour.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxColourData : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// number of custom colours we store
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
NUM_CUSTOM = 16
|
|
||||||
};
|
|
||||||
|
|
||||||
wxColourData();
|
|
||||||
wxColourData(const wxColourData& data);
|
|
||||||
wxColourData& operator=(const wxColourData& data);
|
|
||||||
virtual ~wxColourData();
|
|
||||||
|
|
||||||
void SetChooseFull(bool flag) { m_chooseFull = flag; }
|
|
||||||
bool GetChooseFull() const { return m_chooseFull; }
|
|
||||||
void SetColour(const wxColour& colour) { m_dataColour = colour; }
|
|
||||||
const wxColour& GetColour() const { return m_dataColour; }
|
|
||||||
wxColour& GetColour() { return m_dataColour; }
|
|
||||||
|
|
||||||
// SetCustomColour() modifies colours in an internal array of NUM_CUSTOM
|
|
||||||
// custom colours;
|
|
||||||
void SetCustomColour(int i, const wxColour& colour);
|
|
||||||
wxColour GetCustomColour(int i) const;
|
|
||||||
|
|
||||||
// Serialize the object to a string and restore it from it
|
|
||||||
wxString ToString() const;
|
|
||||||
bool FromString(const wxString& str);
|
|
||||||
|
|
||||||
|
|
||||||
// public for backwards compatibility only: don't use directly
|
|
||||||
wxColour m_dataColour;
|
|
||||||
wxColour m_custColours[NUM_CUSTOM];
|
|
||||||
bool m_chooseFull;
|
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxColourData)
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _WX_COLOURDATA_H_
|
|
|
@ -1,880 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/combo.h
|
|
||||||
// Purpose: wxComboCtrl declaration
|
|
||||||
// Author: Jaakko Salli
|
|
||||||
// Modified by:
|
|
||||||
// Created: Apr-30-2006
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) Jaakko Salli
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_COMBOCONTROL_H_BASE_
|
|
||||||
#define _WX_COMBOCONTROL_H_BASE_
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
A few words about all the classes defined in this file are probably in
|
|
||||||
order: why do we need extra wxComboCtrl and wxComboPopup classes?
|
|
||||||
|
|
||||||
This is because a traditional combobox is a combination of a text control
|
|
||||||
(with a button allowing to open the pop down list) with a listbox and
|
|
||||||
wxComboBox class is exactly such control, however we want to also have other
|
|
||||||
combinations - in fact, we want to allow anything at all to be used as pop
|
|
||||||
down list, not just a wxListBox.
|
|
||||||
|
|
||||||
So we define a base wxComboCtrl which can use any control as pop down
|
|
||||||
list and wxComboBox deriving from it which implements the standard wxWidgets
|
|
||||||
combobox API. wxComboCtrl needs to be told somehow which control to use
|
|
||||||
and this is done by SetPopupControl(). However, we need something more than
|
|
||||||
just a wxControl in this method as, for example, we need to call
|
|
||||||
SetSelection("initial text value") and wxControl doesn't have such method.
|
|
||||||
So we also need a wxComboPopup which is just a very simple interface which
|
|
||||||
must be implemented by a control to be usable as a popup.
|
|
||||||
|
|
||||||
We couldn't derive wxComboPopup from wxControl as this would make it
|
|
||||||
impossible to have a class deriving from both wxListBx and from it, so
|
|
||||||
instead it is just a mix-in.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_COMBOCTRL
|
|
||||||
|
|
||||||
#include "wx/control.h"
|
|
||||||
#include "wx/renderer.h" // this is needed for wxCONTROL_XXX flags
|
|
||||||
#include "wx/bitmap.h" // wxBitmap used by-value
|
|
||||||
#include "wx/textentry.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxComboPopup;
|
|
||||||
|
|
||||||
//
|
|
||||||
// New window styles for wxComboCtrlBase
|
|
||||||
//
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
// Double-clicking a read-only combo triggers call to popup's OnComboPopup.
|
|
||||||
// In wxOwnerDrawnComboBox, for instance, it cycles item.
|
|
||||||
wxCC_SPECIAL_DCLICK = 0x0100,
|
|
||||||
|
|
||||||
// Dropbutton acts like standard push button.
|
|
||||||
wxCC_STD_BUTTON = 0x0200
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// wxComboCtrl internal flags
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
// First those that can be passed to Customize.
|
|
||||||
// It is Windows style for all flags to be clear.
|
|
||||||
|
|
||||||
// Button is preferred outside the border (GTK style)
|
|
||||||
wxCC_BUTTON_OUTSIDE_BORDER = 0x0001,
|
|
||||||
// Show popup on mouse up instead of mouse down (which is the Windows style)
|
|
||||||
wxCC_POPUP_ON_MOUSE_UP = 0x0002,
|
|
||||||
// All text is not automatically selected on click
|
|
||||||
wxCC_NO_TEXT_AUTO_SELECT = 0x0004,
|
|
||||||
// Drop-button stays down as long as popup is displayed.
|
|
||||||
wxCC_BUTTON_STAYS_DOWN = 0x0008,
|
|
||||||
// Drop-button covers the entire control.
|
|
||||||
wxCC_FULL_BUTTON = 0x0010,
|
|
||||||
// Drop-button goes over the custom-border (used under WinVista).
|
|
||||||
wxCC_BUTTON_COVERS_BORDER = 0x0020,
|
|
||||||
|
|
||||||
// Internal use: signals creation is complete
|
|
||||||
wxCC_IFLAG_CREATED = 0x0100,
|
|
||||||
// Internal use: really put button outside
|
|
||||||
wxCC_IFLAG_BUTTON_OUTSIDE = 0x0200,
|
|
||||||
// Internal use: SetMargins has been successfully called
|
|
||||||
wxCC_IFLAG_LEFT_MARGIN_SET = 0x0400,
|
|
||||||
// Internal use: Set wxTAB_TRAVERSAL to parent when popup is dismissed
|
|
||||||
wxCC_IFLAG_PARENT_TAB_TRAVERSAL = 0x0800,
|
|
||||||
// Internal use: Secondary popup window type should be used (if available).
|
|
||||||
wxCC_IFLAG_USE_ALT_POPUP = 0x1000,
|
|
||||||
// Internal use: Skip popup animation.
|
|
||||||
wxCC_IFLAG_DISABLE_POPUP_ANIM = 0x2000,
|
|
||||||
// Internal use: Drop-button is a bitmap button or has non-default size
|
|
||||||
// (but can still be on either side of the control), regardless whether
|
|
||||||
// specified by the platform or the application.
|
|
||||||
wxCC_IFLAG_HAS_NONSTANDARD_BUTTON = 0x4000
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// Flags used by PreprocessMouseEvent and HandleButtonMouseEvent
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
wxCC_MF_ON_BUTTON = 0x0001, // cursor is on dropbutton area
|
|
||||||
wxCC_MF_ON_CLICK_AREA = 0x0002 // cursor is on dropbutton or other area
|
|
||||||
// that can be clicked to show the popup.
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// Namespace for wxComboCtrl feature flags
|
|
||||||
struct wxComboCtrlFeatures
|
|
||||||
{
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
MovableButton = 0x0001, // Button can be on either side of control
|
|
||||||
BitmapButton = 0x0002, // Button may be replaced with bitmap
|
|
||||||
ButtonSpacing = 0x0004, // Button can have spacing from the edge
|
|
||||||
// of the control
|
|
||||||
TextIndent = 0x0008, // SetMargins can be used to control
|
|
||||||
// left margin.
|
|
||||||
PaintControl = 0x0010, // Combo control itself can be custom painted
|
|
||||||
PaintWritable = 0x0020, // A variable-width area in front of writable
|
|
||||||
// combo control's textctrl can be custom
|
|
||||||
// painted
|
|
||||||
Borderless = 0x0040, // wxNO_BORDER window style works
|
|
||||||
|
|
||||||
// There are no feature flags for...
|
|
||||||
// PushButtonBitmapBackground - if its in wxRendererNative, then it should be
|
|
||||||
// not an issue to have it automatically under the bitmap.
|
|
||||||
|
|
||||||
All = MovableButton|BitmapButton|
|
|
||||||
ButtonSpacing|TextIndent|
|
|
||||||
PaintControl|PaintWritable|
|
|
||||||
Borderless
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxComboCtrlBase : public wxControl,
|
|
||||||
public wxTextEntry
|
|
||||||
{
|
|
||||||
friend class wxComboPopup;
|
|
||||||
friend class wxComboPopupEvtHandler;
|
|
||||||
public:
|
|
||||||
// ctors and such
|
|
||||||
wxComboCtrlBase() : wxControl(), wxTextEntry() { Init(); }
|
|
||||||
|
|
||||||
bool Create(wxWindow *parent,
|
|
||||||
wxWindowID id,
|
|
||||||
const wxString& value,
|
|
||||||
const wxPoint& pos,
|
|
||||||
const wxSize& size,
|
|
||||||
long style,
|
|
||||||
const wxValidator& validator,
|
|
||||||
const wxString& name);
|
|
||||||
|
|
||||||
virtual ~wxComboCtrlBase();
|
|
||||||
|
|
||||||
// Show/hide popup window (wxComboBox-compatible methods)
|
|
||||||
virtual void Popup();
|
|
||||||
virtual void Dismiss()
|
|
||||||
{
|
|
||||||
HidePopup(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show/hide popup window.
|
|
||||||
// TODO: Maybe deprecate in favor of Popup()/Dismiss().
|
|
||||||
// However, these functions are still called internally
|
|
||||||
// so it is not straightforward.
|
|
||||||
virtual void ShowPopup();
|
|
||||||
virtual void HidePopup(bool generateEvent=false);
|
|
||||||
|
|
||||||
// Override for totally custom combo action
|
|
||||||
virtual void OnButtonClick();
|
|
||||||
|
|
||||||
// return true if the popup is currently shown
|
|
||||||
bool IsPopupShown() const { return m_popupWinState == Visible; }
|
|
||||||
|
|
||||||
// set interface class instance derived from wxComboPopup
|
|
||||||
// NULL popup can be used to indicate default in a derived class
|
|
||||||
void SetPopupControl( wxComboPopup* popup )
|
|
||||||
{
|
|
||||||
DoSetPopupControl(popup);
|
|
||||||
}
|
|
||||||
|
|
||||||
// get interface class instance derived from wxComboPopup
|
|
||||||
wxComboPopup* GetPopupControl()
|
|
||||||
{
|
|
||||||
EnsurePopupControl();
|
|
||||||
return m_popupInterface;
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the popup window containing the popup control
|
|
||||||
wxWindow *GetPopupWindow() const { return m_winPopup; }
|
|
||||||
|
|
||||||
// Get the text control which is part of the combobox.
|
|
||||||
wxTextCtrl *GetTextCtrl() const { return m_text; }
|
|
||||||
|
|
||||||
// get the dropdown button which is part of the combobox
|
|
||||||
// note: its not necessarily a wxButton or wxBitmapButton
|
|
||||||
wxWindow *GetButton() const { return m_btn; }
|
|
||||||
|
|
||||||
// forward these methods to all subcontrols
|
|
||||||
virtual bool Enable(bool enable = true);
|
|
||||||
virtual bool Show(bool show = true);
|
|
||||||
virtual bool SetFont(const wxFont& font);
|
|
||||||
|
|
||||||
//
|
|
||||||
// wxTextEntry methods
|
|
||||||
//
|
|
||||||
// NB: We basically need to override all of them because there is
|
|
||||||
// no guarantee how platform-specific wxTextEntry is implemented.
|
|
||||||
//
|
|
||||||
virtual void SetValue(const wxString& value)
|
|
||||||
{ wxTextEntryBase::SetValue(value); }
|
|
||||||
virtual void ChangeValue(const wxString& value)
|
|
||||||
{ wxTextEntryBase::ChangeValue(value); }
|
|
||||||
|
|
||||||
virtual void WriteText(const wxString& text);
|
|
||||||
virtual void AppendText(const wxString& text)
|
|
||||||
{ wxTextEntryBase::AppendText(text); }
|
|
||||||
|
|
||||||
virtual wxString GetValue() const
|
|
||||||
{ return wxTextEntryBase::GetValue(); }
|
|
||||||
|
|
||||||
virtual wxString GetRange(long from, long to) const
|
|
||||||
{ return wxTextEntryBase::GetRange(from, to); }
|
|
||||||
|
|
||||||
// Replace() and DoSetValue() need to be fully re-implemented since
|
|
||||||
// EventSuppressor utility class does not work with the way
|
|
||||||
// wxComboCtrl is implemented.
|
|
||||||
virtual void Replace(long from, long to, const wxString& value);
|
|
||||||
|
|
||||||
virtual void Remove(long from, long to);
|
|
||||||
|
|
||||||
virtual void Copy();
|
|
||||||
virtual void Cut();
|
|
||||||
virtual void Paste();
|
|
||||||
|
|
||||||
virtual void Undo();
|
|
||||||
virtual void Redo();
|
|
||||||
virtual bool CanUndo() const;
|
|
||||||
virtual bool CanRedo() const;
|
|
||||||
|
|
||||||
virtual void SetInsertionPoint(long pos);
|
|
||||||
virtual long GetInsertionPoint() const;
|
|
||||||
virtual long GetLastPosition() const;
|
|
||||||
|
|
||||||
virtual void SetSelection(long from, long to);
|
|
||||||
virtual void GetSelection(long *from, long *to) const;
|
|
||||||
|
|
||||||
virtual bool IsEditable() const;
|
|
||||||
virtual void SetEditable(bool editable);
|
|
||||||
|
|
||||||
virtual bool SetHint(const wxString& hint);
|
|
||||||
virtual wxString GetHint() const;
|
|
||||||
|
|
||||||
// This method sets the text without affecting list selection
|
|
||||||
// (ie. wxComboPopup::SetStringValue doesn't get called).
|
|
||||||
void SetText(const wxString& value);
|
|
||||||
|
|
||||||
// This method sets value and also optionally sends EVT_TEXT
|
|
||||||
// (needed by combo popups)
|
|
||||||
wxDEPRECATED( void SetValueWithEvent(const wxString& value,
|
|
||||||
bool withEvent = true) );
|
|
||||||
|
|
||||||
// Changes value of the control as if user had done it by selecting an
|
|
||||||
// item from a combo box drop-down list. Needs to be public so that
|
|
||||||
// derived popup classes can call it.
|
|
||||||
void SetValueByUser(const wxString& value);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Popup customization methods
|
|
||||||
//
|
|
||||||
|
|
||||||
// Sets minimum width of the popup. If wider than combo control, it will extend to the left.
|
|
||||||
// Remarks:
|
|
||||||
// * Value -1 indicates the default.
|
|
||||||
// * Custom popup may choose to ignore this (wxOwnerDrawnComboBox does not).
|
|
||||||
void SetPopupMinWidth( int width )
|
|
||||||
{
|
|
||||||
m_widthMinPopup = width;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sets preferred maximum height of the popup.
|
|
||||||
// Remarks:
|
|
||||||
// * Value -1 indicates the default.
|
|
||||||
// * Custom popup may choose to ignore this (wxOwnerDrawnComboBox does not).
|
|
||||||
void SetPopupMaxHeight( int height )
|
|
||||||
{
|
|
||||||
m_heightPopup = height;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extends popup size horizontally, relative to the edges of the combo control.
|
|
||||||
// Remarks:
|
|
||||||
// * Popup minimum width may override extLeft (ie. it has higher precedence).
|
|
||||||
// * Values 0 indicate default.
|
|
||||||
// * Custom popup may not take this fully into account (wxOwnerDrawnComboBox takes).
|
|
||||||
void SetPopupExtents( int extLeft, int extRight )
|
|
||||||
{
|
|
||||||
m_extLeft = extLeft;
|
|
||||||
m_extRight = extRight;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set width, in pixels, of custom paint area in writable combo.
|
|
||||||
// In read-only, used to indicate area that is not covered by the
|
|
||||||
// focus rectangle (which may or may not be drawn, depending on the
|
|
||||||
// popup type).
|
|
||||||
void SetCustomPaintWidth( int width );
|
|
||||||
int GetCustomPaintWidth() const { return m_widthCustomPaint; }
|
|
||||||
|
|
||||||
// Set side of the control to which the popup will align itself.
|
|
||||||
// Valid values are wxLEFT, wxRIGHT and 0. The default value 0 wmeans
|
|
||||||
// that the side of the button will be used.
|
|
||||||
void SetPopupAnchor( int anchorSide )
|
|
||||||
{
|
|
||||||
m_anchorSide = anchorSide;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set position of dropdown button.
|
|
||||||
// width: button width. <= 0 for default.
|
|
||||||
// height: button height. <= 0 for default.
|
|
||||||
// side: wxLEFT or wxRIGHT, indicates on which side the button will be placed.
|
|
||||||
// spacingX: empty space on sides of the button. Default is 0.
|
|
||||||
// Remarks:
|
|
||||||
// There is no spacingY - the button will be centered vertically.
|
|
||||||
void SetButtonPosition( int width = -1,
|
|
||||||
int height = -1,
|
|
||||||
int side = wxRIGHT,
|
|
||||||
int spacingX = 0 );
|
|
||||||
|
|
||||||
// Returns current size of the dropdown button.
|
|
||||||
wxSize GetButtonSize();
|
|
||||||
|
|
||||||
//
|
|
||||||
// Sets dropbutton to be drawn with custom bitmaps.
|
|
||||||
//
|
|
||||||
// bmpNormal: drawn when cursor is not on button
|
|
||||||
// pushButtonBg: Draw push button background below the image.
|
|
||||||
// NOTE! This is usually only properly supported on platforms with appropriate
|
|
||||||
// method in wxRendererNative.
|
|
||||||
// bmpPressed: drawn when button is depressed
|
|
||||||
// bmpHover: drawn when cursor hovers on button. This is ignored on platforms
|
|
||||||
// that do not generally display hover differently.
|
|
||||||
// bmpDisabled: drawn when combobox is disabled.
|
|
||||||
void SetButtonBitmaps( const wxBitmap& bmpNormal,
|
|
||||||
bool pushButtonBg = false,
|
|
||||||
const wxBitmap& bmpPressed = wxNullBitmap,
|
|
||||||
const wxBitmap& bmpHover = wxNullBitmap,
|
|
||||||
const wxBitmap& bmpDisabled = wxNullBitmap );
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_8
|
|
||||||
//
|
|
||||||
// This will set the space in pixels between left edge of the control and the
|
|
||||||
// text, regardless whether control is read-only (ie. no wxTextCtrl) or not.
|
|
||||||
// Platform-specific default can be set with value-1.
|
|
||||||
// Remarks
|
|
||||||
// * This method may do nothing on some native implementations.
|
|
||||||
wxDEPRECATED( void SetTextIndent( int indent ) );
|
|
||||||
|
|
||||||
// Returns actual indentation in pixels.
|
|
||||||
wxDEPRECATED( wxCoord GetTextIndent() const );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Returns area covered by the text field.
|
|
||||||
const wxRect& GetTextRect() const
|
|
||||||
{
|
|
||||||
return m_tcArea;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call with enable as true to use a type of popup window that guarantees ability
|
|
||||||
// to focus the popup control, and normal function of common native controls.
|
|
||||||
// This alternative popup window is usually a wxDialog, and as such it's parent
|
|
||||||
// frame will appear as if the focus has been lost from it.
|
|
||||||
void UseAltPopupWindow( bool enable = true )
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( !m_winPopup,
|
|
||||||
wxT("call this only before SetPopupControl") );
|
|
||||||
|
|
||||||
if ( enable )
|
|
||||||
m_iFlags |= wxCC_IFLAG_USE_ALT_POPUP;
|
|
||||||
else
|
|
||||||
m_iFlags &= ~wxCC_IFLAG_USE_ALT_POPUP;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Call with false to disable popup animation, if any.
|
|
||||||
void EnablePopupAnimation( bool enable = true )
|
|
||||||
{
|
|
||||||
if ( enable )
|
|
||||||
m_iFlags &= ~wxCC_IFLAG_DISABLE_POPUP_ANIM;
|
|
||||||
else
|
|
||||||
m_iFlags |= wxCC_IFLAG_DISABLE_POPUP_ANIM;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Utilies needed by the popups or native implementations
|
|
||||||
//
|
|
||||||
|
|
||||||
// Returns true if given key combination should toggle the popup.
|
|
||||||
// NB: This is a separate from other keyboard handling because:
|
|
||||||
// 1) Replaceability.
|
|
||||||
// 2) Centralized code (otherwise it'd be split up between
|
|
||||||
// wxComboCtrl key handler and wxVListBoxComboPopup's
|
|
||||||
// key handler).
|
|
||||||
virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const = 0;
|
|
||||||
|
|
||||||
// Prepare background of combo control or an item in a dropdown list
|
|
||||||
// in a way typical on platform. This includes painting the focus/disabled
|
|
||||||
// background and setting the clipping region.
|
|
||||||
// Unless you plan to paint your own focus indicator, you should always call this
|
|
||||||
// in your wxComboPopup::PaintComboControl implementation.
|
|
||||||
// In addition, it sets pen and text colour to what looks good and proper
|
|
||||||
// against the background.
|
|
||||||
// flags: wxRendererNative flags: wxCONTROL_ISSUBMENU: is drawing a list item instead of combo control
|
|
||||||
// wxCONTROL_SELECTED: list item is selected
|
|
||||||
// wxCONTROL_DISABLED: control/item is disabled
|
|
||||||
virtual void PrepareBackground( wxDC& dc, const wxRect& rect, int flags ) const;
|
|
||||||
|
|
||||||
// Returns true if focus indicator should be drawn in the control.
|
|
||||||
bool ShouldDrawFocus() const
|
|
||||||
{
|
|
||||||
const wxWindow* curFocus = FindFocus();
|
|
||||||
return ( IsPopupWindowState(Hidden) &&
|
|
||||||
(curFocus == m_mainCtrlWnd || (m_btn && curFocus == m_btn)) &&
|
|
||||||
(m_windowStyle & wxCB_READONLY) );
|
|
||||||
}
|
|
||||||
|
|
||||||
// These methods return references to appropriate dropbutton bitmaps
|
|
||||||
const wxBitmap& GetBitmapNormal() const { return m_bmpNormal; }
|
|
||||||
const wxBitmap& GetBitmapPressed() const { return m_bmpPressed; }
|
|
||||||
const wxBitmap& GetBitmapHover() const { return m_bmpHover; }
|
|
||||||
const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; }
|
|
||||||
|
|
||||||
// Set custom style flags for embedded wxTextCtrl. Usually must be used
|
|
||||||
// with two-step creation, before Create() call.
|
|
||||||
void SetTextCtrlStyle( int style );
|
|
||||||
|
|
||||||
// Return internal flags
|
|
||||||
wxUint32 GetInternalFlags() const { return m_iFlags; }
|
|
||||||
|
|
||||||
// Return true if Create has finished
|
|
||||||
bool IsCreated() const { return m_iFlags & wxCC_IFLAG_CREATED ? true : false; }
|
|
||||||
|
|
||||||
// Need to override to return text area background colour
|
|
||||||
wxColour GetBackgroundColour() const;
|
|
||||||
|
|
||||||
// common code to be called on popup hide/dismiss
|
|
||||||
void OnPopupDismiss(bool generateEvent);
|
|
||||||
|
|
||||||
// PopupShown states
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
Hidden = 0,
|
|
||||||
//Closing = 1,
|
|
||||||
Animating = 2,
|
|
||||||
Visible = 3
|
|
||||||
};
|
|
||||||
|
|
||||||
bool IsPopupWindowState( int state ) const { return (state == m_popupWinState) ? true : false; }
|
|
||||||
|
|
||||||
wxByte GetPopupWindowState() const { return m_popupWinState; }
|
|
||||||
|
|
||||||
// Set value returned by GetMainWindowOfCompositeControl
|
|
||||||
void SetCtrlMainWnd( wxWindow* wnd ) { m_mainCtrlWnd = wnd; }
|
|
||||||
|
|
||||||
// This is public so we can access it from wxComboCtrlTextCtrl
|
|
||||||
virtual wxWindow *GetMainWindowOfCompositeControl()
|
|
||||||
{ return m_mainCtrlWnd; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
// Returns true if hint text should be drawn in the control
|
|
||||||
bool ShouldUseHintText(int flags = 0) const
|
|
||||||
{
|
|
||||||
return ( !m_text &&
|
|
||||||
!(flags & wxCONTROL_ISSUBMENU) &&
|
|
||||||
!m_valueString.length() &&
|
|
||||||
m_hintText.length() &&
|
|
||||||
!ShouldDrawFocus() );
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Override these for customization purposes
|
|
||||||
//
|
|
||||||
|
|
||||||
// called from wxSizeEvent handler
|
|
||||||
virtual void OnResize() = 0;
|
|
||||||
|
|
||||||
// Return native text identation
|
|
||||||
// (i.e. text margin, for pure text, not textctrl)
|
|
||||||
virtual wxCoord GetNativeTextIndent() const;
|
|
||||||
|
|
||||||
// Called in syscolourchanged handler and base create
|
|
||||||
virtual void OnThemeChange();
|
|
||||||
|
|
||||||
// Creates wxTextCtrl.
|
|
||||||
// extraStyle: Extra style parameters
|
|
||||||
void CreateTextCtrl( int extraStyle );
|
|
||||||
|
|
||||||
// Called when text was changed programmatically
|
|
||||||
// (e.g. from WriteText())
|
|
||||||
void OnSetValue(const wxString& value);
|
|
||||||
|
|
||||||
// Installs standard input handler to combo (and optionally to the textctrl)
|
|
||||||
void InstallInputHandlers();
|
|
||||||
|
|
||||||
// Flags for DrawButton
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
Button_PaintBackground = 0x0001, // Paints control background below the button
|
|
||||||
Button_BitmapOnly = 0x0002 // Only paints the bitmap
|
|
||||||
};
|
|
||||||
|
|
||||||
// Draws dropbutton. Using wxRenderer or bitmaps, as appropriate.
|
|
||||||
// Flags are defined above.
|
|
||||||
virtual void DrawButton( wxDC& dc, const wxRect& rect, int flags = Button_PaintBackground );
|
|
||||||
|
|
||||||
// Call if cursor is on button area or mouse is captured for the button.
|
|
||||||
//bool HandleButtonMouseEvent( wxMouseEvent& event, bool isInside );
|
|
||||||
bool HandleButtonMouseEvent( wxMouseEvent& event, int flags );
|
|
||||||
|
|
||||||
// returns true if event was consumed or filtered (event type is also set to 0 in this case)
|
|
||||||
bool PreprocessMouseEvent( wxMouseEvent& event, int flags );
|
|
||||||
|
|
||||||
//
|
|
||||||
// This will handle left_down and left_dclick events outside button in a Windows-like manner.
|
|
||||||
// If you need alternate behaviour, it is recommended you manipulate and filter events to it
|
|
||||||
// instead of building your own handling routine (for reference, on wxEVT_LEFT_DOWN it will
|
|
||||||
// toggle popup and on wxEVT_LEFT_DCLICK it will do the same or run the popup's dclick method,
|
|
||||||
// if defined - you should pass events of other types of it for common processing).
|
|
||||||
void HandleNormalMouseEvent( wxMouseEvent& event );
|
|
||||||
|
|
||||||
// Creates popup window, calls interface->Create(), etc
|
|
||||||
void CreatePopup();
|
|
||||||
|
|
||||||
// Destroy popup window and all related constructs
|
|
||||||
void DestroyPopup();
|
|
||||||
|
|
||||||
// override the base class virtuals involved in geometry calculations
|
|
||||||
virtual wxSize DoGetBestSize() const;
|
|
||||||
|
|
||||||
// also set the embedded wxTextCtrl colours
|
|
||||||
virtual bool SetForegroundColour(const wxColour& colour);
|
|
||||||
virtual bool SetBackgroundColour(const wxColour& colour);
|
|
||||||
|
|
||||||
// NULL popup can be used to indicate default in a derived class
|
|
||||||
virtual void DoSetPopupControl(wxComboPopup* popup);
|
|
||||||
|
|
||||||
// ensures there is atleast the default popup
|
|
||||||
void EnsurePopupControl();
|
|
||||||
|
|
||||||
// Recalculates button and textctrl areas. Called when size or button setup change.
|
|
||||||
// btnWidth: default/calculated width of the dropbutton. 0 means unchanged,
|
|
||||||
// just recalculate.
|
|
||||||
void CalculateAreas( int btnWidth = 0 );
|
|
||||||
|
|
||||||
// Standard textctrl positioning routine. Just give it platform-dependant
|
|
||||||
// textctrl coordinate adjustment.
|
|
||||||
virtual void PositionTextCtrl( int textCtrlXAdjust = 0,
|
|
||||||
int textCtrlYAdjust = 0);
|
|
||||||
|
|
||||||
// event handlers
|
|
||||||
void OnSizeEvent( wxSizeEvent& event );
|
|
||||||
void OnFocusEvent(wxFocusEvent& event);
|
|
||||||
void OnIdleEvent(wxIdleEvent& event);
|
|
||||||
void OnTextCtrlEvent(wxCommandEvent& event);
|
|
||||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
|
||||||
void OnKeyEvent(wxKeyEvent& event);
|
|
||||||
void OnCharEvent(wxKeyEvent& event);
|
|
||||||
|
|
||||||
// Set customization flags (directs how wxComboCtrlBase helpers behave)
|
|
||||||
void Customize( wxUint32 flags ) { m_iFlags |= flags; }
|
|
||||||
|
|
||||||
// Dispatches size event and refreshes
|
|
||||||
void RecalcAndRefresh();
|
|
||||||
|
|
||||||
// Flags for DoShowPopup and AnimateShow
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
ShowBelow = 0x0000, // Showing popup below the control
|
|
||||||
ShowAbove = 0x0001, // Showing popup above the control
|
|
||||||
CanDeferShow = 0x0002 // Can only return true from AnimateShow if this is set
|
|
||||||
};
|
|
||||||
|
|
||||||
// Shows and positions the popup.
|
|
||||||
virtual void DoShowPopup( const wxRect& rect, int flags );
|
|
||||||
|
|
||||||
// Implement in derived class to create a drop-down animation.
|
|
||||||
// Return true if finished immediately. Otherwise popup is only
|
|
||||||
// shown when the derived class call DoShowPopup.
|
|
||||||
// Flags are same as for DoShowPopup.
|
|
||||||
virtual bool AnimateShow( const wxRect& rect, int flags );
|
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
|
||||||
virtual void DoSetToolTip( wxToolTip *tip );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// protected wxTextEntry methods
|
|
||||||
virtual void DoSetValue(const wxString& value, int flags);
|
|
||||||
virtual wxString DoGetValue() const;
|
|
||||||
virtual wxWindow *GetEditableWindow() { return this; }
|
|
||||||
|
|
||||||
// margins functions
|
|
||||||
virtual bool DoSetMargins(const wxPoint& pt);
|
|
||||||
virtual wxPoint DoGetMargins() const;
|
|
||||||
|
|
||||||
// This is used when m_text is hidden (readonly).
|
|
||||||
wxString m_valueString;
|
|
||||||
|
|
||||||
// This is used when control is unfocused and m_valueString is empty
|
|
||||||
wxString m_hintText;
|
|
||||||
|
|
||||||
// the text control and button we show all the time
|
|
||||||
wxTextCtrl* m_text;
|
|
||||||
wxWindow* m_btn;
|
|
||||||
|
|
||||||
// wxPopupWindow or similar containing the window managed by the interface.
|
|
||||||
wxWindow* m_winPopup;
|
|
||||||
|
|
||||||
// the popup control/panel
|
|
||||||
wxWindow* m_popup;
|
|
||||||
|
|
||||||
// popup interface
|
|
||||||
wxComboPopup* m_popupInterface;
|
|
||||||
|
|
||||||
// this is input etc. handler for the text control
|
|
||||||
wxEvtHandler* m_textEvtHandler;
|
|
||||||
|
|
||||||
// this is for the top level window
|
|
||||||
wxEvtHandler* m_toplevEvtHandler;
|
|
||||||
|
|
||||||
// this is for the control in popup
|
|
||||||
wxEvtHandler* m_popupEvtHandler;
|
|
||||||
|
|
||||||
// this is for the popup window
|
|
||||||
wxEvtHandler* m_popupWinEvtHandler;
|
|
||||||
|
|
||||||
// main (ie. topmost) window of a composite control (default = this)
|
|
||||||
wxWindow* m_mainCtrlWnd;
|
|
||||||
|
|
||||||
// used to prevent immediate re-popupping in case closed popup
|
|
||||||
// by clicking on the combo control (needed because of inconsistent
|
|
||||||
// transient implementation across platforms).
|
|
||||||
wxLongLong m_timeCanAcceptClick;
|
|
||||||
|
|
||||||
// how much popup should expand to the left/right of the control
|
|
||||||
wxCoord m_extLeft;
|
|
||||||
wxCoord m_extRight;
|
|
||||||
|
|
||||||
// minimum popup width
|
|
||||||
wxCoord m_widthMinPopup;
|
|
||||||
|
|
||||||
// preferred popup height
|
|
||||||
wxCoord m_heightPopup;
|
|
||||||
|
|
||||||
// how much of writable combo is custom-paint by callback?
|
|
||||||
// also used to indicate area that is not covered by "blue"
|
|
||||||
// selection indicator.
|
|
||||||
wxCoord m_widthCustomPaint;
|
|
||||||
|
|
||||||
// left margin, in pixels
|
|
||||||
wxCoord m_marginLeft;
|
|
||||||
|
|
||||||
// side on which the popup is aligned
|
|
||||||
int m_anchorSide;
|
|
||||||
|
|
||||||
// Width of the "fake" border
|
|
||||||
wxCoord m_widthCustomBorder;
|
|
||||||
|
|
||||||
// The button and textctrl click/paint areas
|
|
||||||
wxRect m_tcArea;
|
|
||||||
wxRect m_btnArea;
|
|
||||||
|
|
||||||
// Colour of the text area, in case m_text is NULL
|
|
||||||
wxColour m_tcBgCol;
|
|
||||||
|
|
||||||
// current button state (uses renderer flags)
|
|
||||||
int m_btnState;
|
|
||||||
|
|
||||||
// button position
|
|
||||||
int m_btnWid;
|
|
||||||
int m_btnHei;
|
|
||||||
int m_btnSide;
|
|
||||||
int m_btnSpacingX;
|
|
||||||
|
|
||||||
// last default button width
|
|
||||||
int m_btnWidDefault;
|
|
||||||
|
|
||||||
// custom dropbutton bitmaps
|
|
||||||
wxBitmap m_bmpNormal;
|
|
||||||
wxBitmap m_bmpPressed;
|
|
||||||
wxBitmap m_bmpHover;
|
|
||||||
wxBitmap m_bmpDisabled;
|
|
||||||
|
|
||||||
// area used by the button
|
|
||||||
wxSize m_btnSize;
|
|
||||||
|
|
||||||
// platform-dependant customization and other flags
|
|
||||||
wxUint32 m_iFlags;
|
|
||||||
|
|
||||||
// custom style for m_text
|
|
||||||
int m_textCtrlStyle;
|
|
||||||
|
|
||||||
// draw blank button background under bitmap?
|
|
||||||
bool m_blankButtonBg;
|
|
||||||
|
|
||||||
// is the popup window currenty shown?
|
|
||||||
wxByte m_popupWinState;
|
|
||||||
|
|
||||||
// should the focus be reset to the textctrl in idle time?
|
|
||||||
bool m_resetFocus;
|
|
||||||
|
|
||||||
// is the text-area background colour overridden?
|
|
||||||
bool m_hasTcBgCol;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void Init();
|
|
||||||
|
|
||||||
wxByte m_ignoreEvtText; // Number of next EVT_TEXTs to ignore
|
|
||||||
|
|
||||||
// Is popup window wxPopupTransientWindow, wxPopupWindow or wxDialog?
|
|
||||||
wxByte m_popupWinType;
|
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxComboCtrlBase)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxComboPopup is the interface which must be implemented by a control to be
|
|
||||||
// used as a popup by wxComboCtrl
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
// wxComboPopup internal flags
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
wxCP_IFLAG_CREATED = 0x0001 // Set by wxComboCtrlBase after Create is called
|
|
||||||
};
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxComboCtrl;
|
|
||||||
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxComboPopup
|
|
||||||
{
|
|
||||||
friend class wxComboCtrlBase;
|
|
||||||
public:
|
|
||||||
wxComboPopup()
|
|
||||||
{
|
|
||||||
m_combo = NULL;
|
|
||||||
m_iFlags = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is called immediately after construction finishes. m_combo member
|
|
||||||
// variable has been initialized before the call.
|
|
||||||
// NOTE: It is not in constructor so the derived class doesn't need to redefine
|
|
||||||
// a default constructor of its own.
|
|
||||||
virtual void Init() { }
|
|
||||||
|
|
||||||
virtual ~wxComboPopup();
|
|
||||||
|
|
||||||
// Create the popup child control.
|
|
||||||
// Return true for success.
|
|
||||||
virtual bool Create(wxWindow* parent) = 0;
|
|
||||||
|
|
||||||
// Calls Destroy() for the popup control (i.e. one returned by
|
|
||||||
// GetControl()) and makes sure that 'this' is deleted at the end.
|
|
||||||
// Default implementation works for both cases where popup control
|
|
||||||
// class is multiple inherited or created on heap as a separate
|
|
||||||
// object.
|
|
||||||
virtual void DestroyPopup();
|
|
||||||
|
|
||||||
// We must have an associated control which is subclassed by the combobox.
|
|
||||||
virtual wxWindow *GetControl() = 0;
|
|
||||||
|
|
||||||
// Called immediately after the popup is shown
|
|
||||||
virtual void OnPopup();
|
|
||||||
|
|
||||||
// Called when popup is dismissed
|
|
||||||
virtual void OnDismiss();
|
|
||||||
|
|
||||||
// Called just prior to displaying popup.
|
|
||||||
// Default implementation does nothing.
|
|
||||||
virtual void SetStringValue( const wxString& value );
|
|
||||||
|
|
||||||
// Gets displayed string representation of the value.
|
|
||||||
virtual wxString GetStringValue() const = 0;
|
|
||||||
|
|
||||||
// Called to check if the popup - when an item container - actually
|
|
||||||
// has matching item. Case-sensitivity checking etc. is up to the
|
|
||||||
// implementation. If the found item matched the string, but is
|
|
||||||
// different, it should be written back to pItem. Default implementation
|
|
||||||
// always return true and does not alter trueItem.
|
|
||||||
virtual bool FindItem(const wxString& item, wxString* trueItem=NULL);
|
|
||||||
|
|
||||||
// This is called to custom paint in the combo control itself (ie. not the popup).
|
|
||||||
// Default implementation draws value as string.
|
|
||||||
virtual void PaintComboControl( wxDC& dc, const wxRect& rect );
|
|
||||||
|
|
||||||
// Receives wxEVT_KEY_DOWN key events from the parent wxComboCtrl.
|
|
||||||
// Events not handled should be skipped, as usual.
|
|
||||||
virtual void OnComboKeyEvent( wxKeyEvent& event );
|
|
||||||
|
|
||||||
// Receives wxEVT_CHAR key events from the parent wxComboCtrl.
|
|
||||||
// Events not handled should be skipped, as usual.
|
|
||||||
virtual void OnComboCharEvent( wxKeyEvent& event );
|
|
||||||
|
|
||||||
// Implement if you need to support special action when user
|
|
||||||
// double-clicks on the parent wxComboCtrl.
|
|
||||||
virtual void OnComboDoubleClick();
|
|
||||||
|
|
||||||
// Return final size of popup. Called on every popup, just prior to OnShow.
|
|
||||||
// minWidth = preferred minimum width for window
|
|
||||||
// prefHeight = preferred height. Only applies if > 0,
|
|
||||||
// maxHeight = max height for window, as limited by screen size
|
|
||||||
// and should only be rounded down, if necessary.
|
|
||||||
virtual wxSize GetAdjustedSize( int minWidth, int prefHeight, int maxHeight );
|
|
||||||
|
|
||||||
// Return true if you want delay call to Create until the popup is shown
|
|
||||||
// for the first time. It is more efficient, but note that it is often
|
|
||||||
// more convenient to have the control created immediately.
|
|
||||||
// Default returns false.
|
|
||||||
virtual bool LazyCreate();
|
|
||||||
|
|
||||||
//
|
|
||||||
// Utilies
|
|
||||||
//
|
|
||||||
|
|
||||||
// Hides the popup
|
|
||||||
void Dismiss();
|
|
||||||
|
|
||||||
// Returns true if Create has been called.
|
|
||||||
bool IsCreated() const
|
|
||||||
{
|
|
||||||
return (m_iFlags & wxCP_IFLAG_CREATED) ? true : false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns pointer to the associated parent wxComboCtrl.
|
|
||||||
wxComboCtrl* GetComboCtrl() const;
|
|
||||||
|
|
||||||
// Default PaintComboControl behaviour
|
|
||||||
static void DefaultPaintComboControl( wxComboCtrlBase* combo,
|
|
||||||
wxDC& dc,
|
|
||||||
const wxRect& rect );
|
|
||||||
|
|
||||||
protected:
|
|
||||||
wxComboCtrlBase* m_combo;
|
|
||||||
wxUint32 m_iFlags;
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Called in wxComboCtrlBase::SetPopupControl
|
|
||||||
void InitBase(wxComboCtrlBase *combo)
|
|
||||||
{
|
|
||||||
m_combo = combo;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include the platform-dependent header defining the real class
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
// No native universal (but it must still be first in the list)
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/combo.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Any ports may need generic as an alternative
|
|
||||||
#include "wx/generic/combo.h"
|
|
||||||
|
|
||||||
#endif // wxUSE_COMBOCTRL
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_COMBOCONTROL_H_BASE_
|
|
|
@ -1,93 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/combobox.h
|
|
||||||
// Purpose: wxComboBox declaration
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 24.12.00
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 1996-2000 wxWidgets team
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_COMBOBOX_H_BASE_
|
|
||||||
#define _WX_COMBOBOX_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#if wxUSE_COMBOBOX
|
|
||||||
|
|
||||||
// For compatibility with 2.8 include this header to allow using wxTE_XXX
|
|
||||||
// styles with wxComboBox without explicitly including it in the user code.
|
|
||||||
#include "wx/textctrl.h"
|
|
||||||
|
|
||||||
extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[];
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxComboBoxBase: this interface defines the methods wxComboBox must implement
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#include "wx/ctrlsub.h"
|
|
||||||
#include "wx/textentry.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxComboBoxBase : public wxItemContainer,
|
|
||||||
public wxTextEntry
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// override these methods to disambiguate between two base classes versions
|
|
||||||
virtual void Clear()
|
|
||||||
{
|
|
||||||
wxTextEntry::Clear();
|
|
||||||
wxItemContainer::Clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsEmpty() is ambiguous because we inherit it from both wxItemContainer
|
|
||||||
// and wxTextEntry, and even if defined it here to help the compiler with
|
|
||||||
// choosing one of them, it would still be confusing for the human users of
|
|
||||||
// this class. So instead define the clearly named methods below and leave
|
|
||||||
// IsEmpty() ambiguous to trigger a compilation error if it's used.
|
|
||||||
bool IsListEmpty() const { return wxItemContainer::IsEmpty(); }
|
|
||||||
bool IsTextEmpty() const { return wxTextEntry::IsEmpty(); }
|
|
||||||
|
|
||||||
// also bring in GetSelection() versions of both base classes in scope
|
|
||||||
//
|
|
||||||
// NB: GetSelection(from, to) could be already implemented in wxTextEntry
|
|
||||||
// but still make it pure virtual because for some platforms it's not
|
|
||||||
// implemented there and also because the derived class has to override
|
|
||||||
// it anyhow to avoid ambiguity with the other GetSelection()
|
|
||||||
virtual int GetSelection() const = 0;
|
|
||||||
virtual void GetSelection(long *from, long *to) const = 0;
|
|
||||||
|
|
||||||
virtual void Popup() { wxFAIL_MSG( wxT("Not implemented") ); }
|
|
||||||
virtual void Dismiss() { wxFAIL_MSG( wxT("Not implemented") ); }
|
|
||||||
|
|
||||||
// may return value different from GetSelection() when the combobox
|
|
||||||
// dropdown is shown and the user selected, but not yet accepted, a value
|
|
||||||
// different from the old one in it
|
|
||||||
virtual int GetCurrentSelection() const { return GetSelection(); }
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// include the platform-dependent header defining the real class
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(__WXUNIVERSAL__)
|
|
||||||
#include "wx/univ/combobox.h"
|
|
||||||
#elif defined(__WXMSW__)
|
|
||||||
#include "wx/msw/combobox.h"
|
|
||||||
#elif defined(__WXMOTIF__)
|
|
||||||
#include "wx/motif/combobox.h"
|
|
||||||
#elif defined(__WXGTK20__)
|
|
||||||
#include "wx/gtk/combobox.h"
|
|
||||||
#elif defined(__WXGTK__)
|
|
||||||
#include "wx/gtk1/combobox.h"
|
|
||||||
#elif defined(__WXMAC__)
|
|
||||||
#include "wx/osx/combobox.h"
|
|
||||||
#elif defined(__WXCOCOA__)
|
|
||||||
#include "wx/cocoa/combobox.h"
|
|
||||||
#elif defined(__WXPM__)
|
|
||||||
#include "wx/os2/combobox.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_COMBOBOX
|
|
||||||
|
|
||||||
#endif // _WX_COMBOBOX_H_BASE_
|
|
|
@ -1,230 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/compositewin.h
|
|
||||||
// Purpose: wxCompositeWindow<> declaration
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Created: 2011-01-02
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_COMPOSITEWIN_H_
|
|
||||||
#define _WX_COMPOSITEWIN_H_
|
|
||||||
|
|
||||||
#include "wx/window.h"
|
|
||||||
#include "wx/containr.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxToolTip;
|
|
||||||
|
|
||||||
// NB: This is an experimental and, as for now, undocumented class used only by
|
|
||||||
// wxWidgets itself internally. Don't use it in your code until its API is
|
|
||||||
// officially stabilized unless you are ready to change it with the next
|
|
||||||
// wxWidgets release.
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxCompositeWindow is a helper for implementing composite windows: to define
|
|
||||||
// a class using subwindows, simply inherit from it specialized with the real
|
|
||||||
// base class name and implement GetCompositeWindowParts() pure virtual method.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// The template parameter W must be a wxWindow-derived class.
|
|
||||||
template <class W>
|
|
||||||
class wxCompositeWindow : public W
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef W BaseWindowClass;
|
|
||||||
|
|
||||||
// Default ctor doesn't do anything.
|
|
||||||
wxCompositeWindow()
|
|
||||||
{
|
|
||||||
this->Connect
|
|
||||||
(
|
|
||||||
wxEVT_CREATE,
|
|
||||||
wxWindowCreateEventHandler(wxCompositeWindow::OnWindowCreate)
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef __VISUALC6__
|
|
||||||
// FIXME-VC6: This compiler can't compile DoSetForAllParts() template function,
|
|
||||||
// it can't determine whether the deduced type should be "T" or "const T&". And
|
|
||||||
// without this function wxCompositeWindow is pretty useless so simply disable
|
|
||||||
// this code for it, this does mean that setting colours/fonts/... for
|
|
||||||
// composite controls won't work in the library compiled with it but so far
|
|
||||||
// this only affects the generic wxDatePickerCtrl which is not used by default
|
|
||||||
// under MSW anyhow so it doesn't seem to be worth it to spend time and uglify
|
|
||||||
// the code to fix it.
|
|
||||||
|
|
||||||
// Override all wxWindow methods which must be forwarded to the composite
|
|
||||||
// window parts.
|
|
||||||
|
|
||||||
// Attribute setters group.
|
|
||||||
//
|
|
||||||
// NB: Unfortunately we can't factor out the call for the setter itself
|
|
||||||
// into DoSetForAllParts() because we can't call the function passed to
|
|
||||||
// it non-virtually and we need to do this to avoid infinite recursion,
|
|
||||||
// so we work around this by calling the method of this object itself
|
|
||||||
// manually in each function.
|
|
||||||
virtual bool SetForegroundColour(const wxColour& colour)
|
|
||||||
{
|
|
||||||
if ( !BaseWindowClass::SetForegroundColour(colour) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
SetForAllParts(&wxWindowBase::SetForegroundColour, colour);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool SetBackgroundColour(const wxColour& colour)
|
|
||||||
{
|
|
||||||
if ( !BaseWindowClass::SetBackgroundColour(colour) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
SetForAllParts(&wxWindowBase::SetBackgroundColour, colour);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool SetFont(const wxFont& font)
|
|
||||||
{
|
|
||||||
if ( !BaseWindowClass::SetFont(font) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
SetForAllParts(&wxWindowBase::SetFont, font);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual bool SetCursor(const wxCursor& cursor)
|
|
||||||
{
|
|
||||||
if ( !BaseWindowClass::SetCursor(cursor) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
SetForAllParts(&wxWindowBase::SetCursor, cursor);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
|
||||||
virtual void DoSetToolTip(wxToolTip *tip)
|
|
||||||
{
|
|
||||||
BaseWindowClass::DoSetToolTip(tip);
|
|
||||||
|
|
||||||
SetForAllParts(&wxWindowBase::CopyToolTip, tip);
|
|
||||||
}
|
|
||||||
#endif // wxUSE_TOOLTIPS
|
|
||||||
|
|
||||||
#endif // !__VISUALC6__
|
|
||||||
|
|
||||||
virtual void SetFocus()
|
|
||||||
{
|
|
||||||
wxSetFocusToChild(this, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Must be implemented by the derived class to return all children to which
|
|
||||||
// the public methods we override should forward to.
|
|
||||||
virtual wxWindowList GetCompositeWindowParts() const = 0;
|
|
||||||
|
|
||||||
void OnWindowCreate(wxWindowCreateEvent& event)
|
|
||||||
{
|
|
||||||
event.Skip();
|
|
||||||
|
|
||||||
// Attach a few event handlers to all parts of the composite window.
|
|
||||||
// This makes the composite window behave more like a simple control
|
|
||||||
// and allows other code (such as wxDataViewCtrl's inline editing
|
|
||||||
// support) to hook into its event processing.
|
|
||||||
|
|
||||||
wxWindow *child = event.GetWindow();
|
|
||||||
if ( child == this )
|
|
||||||
return; // not a child, we don't want to Connect() to ourselves
|
|
||||||
|
|
||||||
// Always capture wxEVT_KILL_FOCUS:
|
|
||||||
child->Connect(wxEVT_KILL_FOCUS,
|
|
||||||
wxFocusEventHandler(wxCompositeWindow::OnKillFocus),
|
|
||||||
NULL, this);
|
|
||||||
|
|
||||||
// Some events should be only handled for non-toplevel children. For
|
|
||||||
// example, we want to close the control in wxDataViewCtrl when Enter
|
|
||||||
// is pressed in the inline editor, but not when it's pressed in a
|
|
||||||
// popup dialog it opens.
|
|
||||||
wxWindow *win = child;
|
|
||||||
while ( win && win != this )
|
|
||||||
{
|
|
||||||
if ( win->IsTopLevel() )
|
|
||||||
return;
|
|
||||||
win = win->GetParent();
|
|
||||||
}
|
|
||||||
|
|
||||||
child->Connect(wxEVT_CHAR,
|
|
||||||
wxKeyEventHandler(wxCompositeWindow::OnChar),
|
|
||||||
NULL, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnChar(wxKeyEvent& event)
|
|
||||||
{
|
|
||||||
if ( !this->ProcessWindowEvent(event) )
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnKillFocus(wxFocusEvent& event)
|
|
||||||
{
|
|
||||||
// Ignore focus changes within the composite control:
|
|
||||||
wxWindow *win = event.GetWindow();
|
|
||||||
while ( win )
|
|
||||||
{
|
|
||||||
if ( win == this )
|
|
||||||
{
|
|
||||||
event.Skip();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Note that we don't use IsTopLevel() check here, because we do
|
|
||||||
// want to ignore focus changes going to toplevel window that have
|
|
||||||
// the composite control as its parent; these would typically be
|
|
||||||
// some kind of control's popup window.
|
|
||||||
win = win->GetParent();
|
|
||||||
}
|
|
||||||
|
|
||||||
// The event shouldn't be ignored, forward it to the main control:
|
|
||||||
if ( !this->ProcessWindowEvent(event) )
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef __VISUALC6__
|
|
||||||
template <class T>
|
|
||||||
void SetForAllParts(bool (wxWindowBase::*func)(const T&), const T& arg)
|
|
||||||
{
|
|
||||||
DoSetForAllParts<const T&>(func, arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
void SetForAllParts(bool (wxWindowBase::*func)(T*), T* arg)
|
|
||||||
{
|
|
||||||
DoSetForAllParts<T*>(func, arg);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
void DoSetForAllParts(bool (wxWindowBase::*func)(T), T arg)
|
|
||||||
{
|
|
||||||
// Simply call the setters for all parts of this composite window.
|
|
||||||
const wxWindowList parts = GetCompositeWindowParts();
|
|
||||||
for ( wxWindowList::const_iterator i = parts.begin();
|
|
||||||
i != parts.end();
|
|
||||||
++i )
|
|
||||||
{
|
|
||||||
wxWindow * const child = *i;
|
|
||||||
|
|
||||||
// Allow NULL elements in the list, this makes the code of derived
|
|
||||||
// composite controls which may have optionally shown children
|
|
||||||
// simpler and it doesn't cost us much here.
|
|
||||||
if ( child )
|
|
||||||
(child->*func)(arg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // !__VISUALC6__
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCompositeWindow, W);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _WX_COMPOSITEWIN_H_
|
|
|
@ -1,459 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/confbase.h
|
|
||||||
// Purpose: declaration of the base class of all config implementations
|
|
||||||
// (see also: fileconf.h and msw/regconf.h and iniconf.h)
|
|
||||||
// Author: Karsten Ballueder & Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 07.04.98 (adapted from appconf.h)
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 1997 Karsten Ballueder Ballueder@usa.net
|
|
||||||
// Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CONFBASE_H_
|
|
||||||
#define _WX_CONFBASE_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/object.h"
|
|
||||||
#include "wx/base64.h"
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_BASE wxArrayString;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// constants
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/// shall we be case sensitive in parsing variable names?
|
|
||||||
#ifndef wxCONFIG_CASE_SENSITIVE
|
|
||||||
#define wxCONFIG_CASE_SENSITIVE 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// separates group and entry names (probably shouldn't be changed)
|
|
||||||
#ifndef wxCONFIG_PATH_SEPARATOR
|
|
||||||
#define wxCONFIG_PATH_SEPARATOR wxT('/')
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/// introduces immutable entries
|
|
||||||
// (i.e. the ones which can't be changed from the local config file)
|
|
||||||
#ifndef wxCONFIG_IMMUTABLE_PREFIX
|
|
||||||
#define wxCONFIG_IMMUTABLE_PREFIX wxT('!')
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if wxUSE_CONFIG
|
|
||||||
|
|
||||||
/// should we use registry instead of configuration files under Windows?
|
|
||||||
// (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's
|
|
||||||
// false) or wxRegConfig (if it's true and we're under Win32))
|
|
||||||
#ifndef wxUSE_CONFIG_NATIVE
|
|
||||||
#define wxUSE_CONFIG_NATIVE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// not all compilers can deal with template Read/Write() methods, define this
|
|
||||||
// symbol if the template functions are available
|
|
||||||
#if (!defined(__VISUALC__) || __VISUALC__ > 1200) && \
|
|
||||||
!defined( __VMS ) && \
|
|
||||||
!(defined(__HP_aCC) && defined(__hppa)) && \
|
|
||||||
!defined (__DMC__)
|
|
||||||
#define wxHAS_CONFIG_TEMPLATE_RW
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Style flags for constructor style parameter
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
wxCONFIG_USE_LOCAL_FILE = 1,
|
|
||||||
wxCONFIG_USE_GLOBAL_FILE = 2,
|
|
||||||
wxCONFIG_USE_RELATIVE_PATH = 4,
|
|
||||||
wxCONFIG_USE_NO_ESCAPE_CHARACTERS = 8,
|
|
||||||
wxCONFIG_USE_SUBDIR = 16
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// abstract base class wxConfigBase which defines the interface for derived
|
|
||||||
// classes
|
|
||||||
//
|
|
||||||
// wxConfig organizes the items in a tree-like structure (modeled after the
|
|
||||||
// Unix/Dos filesystem). There are groups (directories) and keys (files).
|
|
||||||
// There is always one current group given by the current path.
|
|
||||||
//
|
|
||||||
// Keys are pairs "key_name = value" where value may be of string or integer
|
|
||||||
// (long) type (TODO doubles and other types such as wxDate coming soon).
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxConfigBase : public wxObject
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// constants
|
|
||||||
// the type of an entry
|
|
||||||
enum EntryType
|
|
||||||
{
|
|
||||||
Type_Unknown,
|
|
||||||
Type_String,
|
|
||||||
Type_Boolean,
|
|
||||||
Type_Integer, // use Read(long *)
|
|
||||||
Type_Float // use Read(double *)
|
|
||||||
};
|
|
||||||
|
|
||||||
// static functions
|
|
||||||
// sets the config object, returns the previous pointer
|
|
||||||
static wxConfigBase *Set(wxConfigBase *pConfig);
|
|
||||||
// get the config object, creates it on demand unless DontCreateOnDemand
|
|
||||||
// was called
|
|
||||||
static wxConfigBase *Get(bool createOnDemand = true)
|
|
||||||
{ if ( createOnDemand && (!ms_pConfig) ) Create(); return ms_pConfig; }
|
|
||||||
// create a new config object: this function will create the "best"
|
|
||||||
// implementation of wxConfig available for the current platform, see
|
|
||||||
// comments near definition wxUSE_CONFIG_NATIVE for details. It returns
|
|
||||||
// the created object and also sets it as ms_pConfig.
|
|
||||||
static wxConfigBase *Create();
|
|
||||||
// should Get() try to create a new log object if the current one is NULL?
|
|
||||||
static void DontCreateOnDemand() { ms_bAutoCreate = false; }
|
|
||||||
|
|
||||||
// ctor & virtual dtor
|
|
||||||
// ctor (can be used as default ctor too)
|
|
||||||
//
|
|
||||||
// Not all args will always be used by derived classes, but including
|
|
||||||
// them all in each class ensures compatibility. If appName is empty,
|
|
||||||
// uses wxApp name
|
|
||||||
wxConfigBase(const wxString& appName = wxEmptyString,
|
|
||||||
const wxString& vendorName = wxEmptyString,
|
|
||||||
const wxString& localFilename = wxEmptyString,
|
|
||||||
const wxString& globalFilename = wxEmptyString,
|
|
||||||
long style = 0);
|
|
||||||
|
|
||||||
// empty but ensures that dtor of all derived classes is virtual
|
|
||||||
virtual ~wxConfigBase();
|
|
||||||
|
|
||||||
// path management
|
|
||||||
// set current path: if the first character is '/', it's the absolute path,
|
|
||||||
// otherwise it's a relative path. '..' is supported. If the strPath
|
|
||||||
// doesn't exist it is created.
|
|
||||||
virtual void SetPath(const wxString& strPath) = 0;
|
|
||||||
// retrieve the current path (always as absolute path)
|
|
||||||
virtual const wxString& GetPath() const = 0;
|
|
||||||
|
|
||||||
// enumeration: all functions here return false when there are no more items.
|
|
||||||
// you must pass the same lIndex to GetNext and GetFirst (don't modify it)
|
|
||||||
// enumerate subgroups
|
|
||||||
virtual bool GetFirstGroup(wxString& str, long& lIndex) const = 0;
|
|
||||||
virtual bool GetNextGroup (wxString& str, long& lIndex) const = 0;
|
|
||||||
// enumerate entries
|
|
||||||
virtual bool GetFirstEntry(wxString& str, long& lIndex) const = 0;
|
|
||||||
virtual bool GetNextEntry (wxString& str, long& lIndex) const = 0;
|
|
||||||
// get number of entries/subgroups in the current group, with or without
|
|
||||||
// it's subgroups
|
|
||||||
virtual size_t GetNumberOfEntries(bool bRecursive = false) const = 0;
|
|
||||||
virtual size_t GetNumberOfGroups(bool bRecursive = false) const = 0;
|
|
||||||
|
|
||||||
// tests of existence
|
|
||||||
// returns true if the group by this name exists
|
|
||||||
virtual bool HasGroup(const wxString& strName) const = 0;
|
|
||||||
// same as above, but for an entry
|
|
||||||
virtual bool HasEntry(const wxString& strName) const = 0;
|
|
||||||
// returns true if either a group or an entry with a given name exist
|
|
||||||
bool Exists(const wxString& strName) const
|
|
||||||
{ return HasGroup(strName) || HasEntry(strName); }
|
|
||||||
|
|
||||||
// get the entry type
|
|
||||||
virtual EntryType GetEntryType(const wxString& name) const
|
|
||||||
{
|
|
||||||
// by default all entries are strings
|
|
||||||
return HasEntry(name) ? Type_String : Type_Unknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
// key access: returns true if value was really read, false if default used
|
|
||||||
// (and if the key is not found the default value is returned.)
|
|
||||||
|
|
||||||
// read a string from the key
|
|
||||||
bool Read(const wxString& key, wxString *pStr) const;
|
|
||||||
bool Read(const wxString& key, wxString *pStr, const wxString& defVal) const;
|
|
||||||
|
|
||||||
// read a number (long)
|
|
||||||
bool Read(const wxString& key, long *pl) const;
|
|
||||||
bool Read(const wxString& key, long *pl, long defVal) const;
|
|
||||||
|
|
||||||
// read an int (wrapper around `long' version)
|
|
||||||
bool Read(const wxString& key, int *pi) const;
|
|
||||||
bool Read(const wxString& key, int *pi, int defVal) const;
|
|
||||||
|
|
||||||
// read a double
|
|
||||||
bool Read(const wxString& key, double* val) const;
|
|
||||||
bool Read(const wxString& key, double* val, double defVal) const;
|
|
||||||
|
|
||||||
// read a float
|
|
||||||
bool Read(const wxString& key, float* val) const;
|
|
||||||
bool Read(const wxString& key, float* val, float defVal) const;
|
|
||||||
|
|
||||||
// read a bool
|
|
||||||
bool Read(const wxString& key, bool* val) const;
|
|
||||||
bool Read(const wxString& key, bool* val, bool defVal) const;
|
|
||||||
|
|
||||||
#if wxUSE_BASE64
|
|
||||||
// read a binary data block
|
|
||||||
bool Read(const wxString& key, wxMemoryBuffer* data) const
|
|
||||||
{ return DoReadBinary(key, data); }
|
|
||||||
// no default version since it does not make sense for binary data
|
|
||||||
#endif // wxUSE_BASE64
|
|
||||||
|
|
||||||
#ifdef wxHAS_CONFIG_TEMPLATE_RW
|
|
||||||
// read other types, for which wxFromString is defined
|
|
||||||
template <typename T>
|
|
||||||
bool Read(const wxString& key, T* value) const
|
|
||||||
{
|
|
||||||
wxString s;
|
|
||||||
if ( !Read(key, &s) )
|
|
||||||
return false;
|
|
||||||
return wxFromString(s, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
bool Read(const wxString& key, T* value, const T& defVal) const
|
|
||||||
{
|
|
||||||
const bool found = Read(key, value);
|
|
||||||
if ( !found )
|
|
||||||
{
|
|
||||||
if (IsRecordingDefaults())
|
|
||||||
((wxConfigBase *)this)->Write(key, defVal);
|
|
||||||
*value = defVal;
|
|
||||||
}
|
|
||||||
return found;
|
|
||||||
}
|
|
||||||
#endif // wxHAS_CONFIG_TEMPLATE_RW
|
|
||||||
|
|
||||||
// convenience functions returning directly the value
|
|
||||||
wxString Read(const wxString& key,
|
|
||||||
const wxString& defVal = wxEmptyString) const
|
|
||||||
{ wxString s; (void)Read(key, &s, defVal); return s; }
|
|
||||||
|
|
||||||
// we have to provide a separate version for C strings as otherwise the
|
|
||||||
// template Read() would be used
|
|
||||||
wxString Read(const wxString& key, const char* defVal) const
|
|
||||||
{ return Read(key, wxString(defVal)); }
|
|
||||||
wxString Read(const wxString& key, const wchar_t* defVal) const
|
|
||||||
{ return Read(key, wxString(defVal)); }
|
|
||||||
|
|
||||||
long ReadLong(const wxString& key, long defVal) const
|
|
||||||
{ long l; (void)Read(key, &l, defVal); return l; }
|
|
||||||
|
|
||||||
double ReadDouble(const wxString& key, double defVal) const
|
|
||||||
{ double d; (void)Read(key, &d, defVal); return d; }
|
|
||||||
|
|
||||||
bool ReadBool(const wxString& key, bool defVal) const
|
|
||||||
{ bool b; (void)Read(key, &b, defVal); return b; }
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
T ReadObject(const wxString& key, T const& defVal) const
|
|
||||||
{ T t; (void)Read(key, &t, defVal); return t; }
|
|
||||||
|
|
||||||
// for compatibility with wx 2.8
|
|
||||||
long Read(const wxString& key, long defVal) const
|
|
||||||
{ return ReadLong(key, defVal); }
|
|
||||||
|
|
||||||
|
|
||||||
// write the value (return true on success)
|
|
||||||
bool Write(const wxString& key, const wxString& value)
|
|
||||||
{ return DoWriteString(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, long value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, double value)
|
|
||||||
{ return DoWriteDouble(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, bool value)
|
|
||||||
{ return DoWriteBool(key, value); }
|
|
||||||
|
|
||||||
#if wxUSE_BASE64
|
|
||||||
bool Write(const wxString& key, const wxMemoryBuffer& buf)
|
|
||||||
{ return DoWriteBinary(key, buf); }
|
|
||||||
#endif // wxUSE_BASE64
|
|
||||||
|
|
||||||
// we have to provide a separate version for C strings as otherwise they
|
|
||||||
// would be converted to bool and not to wxString as expected!
|
|
||||||
bool Write(const wxString& key, const char *value)
|
|
||||||
{ return Write(key, wxString(value)); }
|
|
||||||
bool Write(const wxString& key, const unsigned char *value)
|
|
||||||
{ return Write(key, wxString(value)); }
|
|
||||||
bool Write(const wxString& key, const wchar_t *value)
|
|
||||||
{ return Write(key, wxString(value)); }
|
|
||||||
|
|
||||||
|
|
||||||
// we also have to provide specializations for other types which we want to
|
|
||||||
// handle using the specialized DoWriteXXX() instead of the generic template
|
|
||||||
// version below
|
|
||||||
bool Write(const wxString& key, char value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, unsigned char value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, short value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, unsigned short value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, unsigned int value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, int value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, unsigned long value)
|
|
||||||
{ return DoWriteLong(key, value); }
|
|
||||||
|
|
||||||
bool Write(const wxString& key, float value)
|
|
||||||
{ return DoWriteDouble(key, value); }
|
|
||||||
|
|
||||||
// Causes ambiguities in VC++ 6 and OpenVMS (at least)
|
|
||||||
#if ( (!defined(__VISUALC__) || __VISUALC__ > 1200) && !defined( __VMS ) && !defined (__DMC__))
|
|
||||||
// for other types, use wxToString()
|
|
||||||
template <typename T>
|
|
||||||
bool Write(const wxString& key, T const& value)
|
|
||||||
{ return Write(key, wxToString(value)); }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// permanently writes all changes
|
|
||||||
virtual bool Flush(bool bCurrentOnly = false) = 0;
|
|
||||||
|
|
||||||
// renaming, all functions return false on failure (probably because the new
|
|
||||||
// name is already taken by an existing entry)
|
|
||||||
// rename an entry
|
|
||||||
virtual bool RenameEntry(const wxString& oldName,
|
|
||||||
const wxString& newName) = 0;
|
|
||||||
// rename a group
|
|
||||||
virtual bool RenameGroup(const wxString& oldName,
|
|
||||||
const wxString& newName) = 0;
|
|
||||||
|
|
||||||
// delete entries/groups
|
|
||||||
// deletes the specified entry and the group it belongs to if
|
|
||||||
// it was the last key in it and the second parameter is true
|
|
||||||
virtual bool DeleteEntry(const wxString& key,
|
|
||||||
bool bDeleteGroupIfEmpty = true) = 0;
|
|
||||||
// delete the group (with all subgroups)
|
|
||||||
virtual bool DeleteGroup(const wxString& key) = 0;
|
|
||||||
// delete the whole underlying object (disk file, registry key, ...)
|
|
||||||
// primarily for use by uninstallation routine.
|
|
||||||
virtual bool DeleteAll() = 0;
|
|
||||||
|
|
||||||
// options
|
|
||||||
// we can automatically expand environment variables in the config entries
|
|
||||||
// (this option is on by default, you can turn it on/off at any time)
|
|
||||||
bool IsExpandingEnvVars() const { return m_bExpandEnvVars; }
|
|
||||||
void SetExpandEnvVars(bool bDoIt = true) { m_bExpandEnvVars = bDoIt; }
|
|
||||||
// recording of default values
|
|
||||||
void SetRecordDefaults(bool bDoIt = true) { m_bRecordDefaults = bDoIt; }
|
|
||||||
bool IsRecordingDefaults() const { return m_bRecordDefaults; }
|
|
||||||
// does expansion only if needed
|
|
||||||
wxString ExpandEnvVars(const wxString& str) const;
|
|
||||||
|
|
||||||
// misc accessors
|
|
||||||
wxString GetAppName() const { return m_appName; }
|
|
||||||
wxString GetVendorName() const { return m_vendorName; }
|
|
||||||
|
|
||||||
// Used wxIniConfig to set members in constructor
|
|
||||||
void SetAppName(const wxString& appName) { m_appName = appName; }
|
|
||||||
void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; }
|
|
||||||
|
|
||||||
void SetStyle(long style) { m_style = style; }
|
|
||||||
long GetStyle() const { return m_style; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
static bool IsImmutable(const wxString& key)
|
|
||||||
{ return !key.IsEmpty() && key[0] == wxCONFIG_IMMUTABLE_PREFIX; }
|
|
||||||
|
|
||||||
// return the path without trailing separator, if any: this should be called
|
|
||||||
// to sanitize paths referring to the group names before passing them to
|
|
||||||
// wxConfigPathChanger as "/foo/bar/" should be the same as "/foo/bar" and it
|
|
||||||
// isn't interpreted in the same way by it (and this can't be changed there
|
|
||||||
// as it's not the same for the entries names)
|
|
||||||
static wxString RemoveTrailingSeparator(const wxString& key);
|
|
||||||
|
|
||||||
// do read/write the values of different types
|
|
||||||
virtual bool DoReadString(const wxString& key, wxString *pStr) const = 0;
|
|
||||||
virtual bool DoReadLong(const wxString& key, long *pl) const = 0;
|
|
||||||
virtual bool DoReadDouble(const wxString& key, double* val) const;
|
|
||||||
virtual bool DoReadBool(const wxString& key, bool* val) const;
|
|
||||||
#if wxUSE_BASE64
|
|
||||||
virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const = 0;
|
|
||||||
#endif // wxUSE_BASE64
|
|
||||||
|
|
||||||
virtual bool DoWriteString(const wxString& key, const wxString& value) = 0;
|
|
||||||
virtual bool DoWriteLong(const wxString& key, long value) = 0;
|
|
||||||
virtual bool DoWriteDouble(const wxString& key, double value);
|
|
||||||
virtual bool DoWriteBool(const wxString& key, bool value);
|
|
||||||
#if wxUSE_BASE64
|
|
||||||
virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) = 0;
|
|
||||||
#endif // wxUSE_BASE64
|
|
||||||
|
|
||||||
private:
|
|
||||||
// are we doing automatic environment variable expansion?
|
|
||||||
bool m_bExpandEnvVars;
|
|
||||||
// do we record default values?
|
|
||||||
bool m_bRecordDefaults;
|
|
||||||
|
|
||||||
// static variables
|
|
||||||
static wxConfigBase *ms_pConfig;
|
|
||||||
static bool ms_bAutoCreate;
|
|
||||||
|
|
||||||
// Application name and organisation name
|
|
||||||
wxString m_appName;
|
|
||||||
wxString m_vendorName;
|
|
||||||
|
|
||||||
// Style flag
|
|
||||||
long m_style;
|
|
||||||
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxConfigBase)
|
|
||||||
};
|
|
||||||
|
|
||||||
// a handy little class which changes current path to the path of given entry
|
|
||||||
// and restores it in dtor: so if you declare a local variable of this type,
|
|
||||||
// you work in the entry directory and the path is automatically restored
|
|
||||||
// when the function returns
|
|
||||||
// Taken out of wxConfig since not all compilers can cope with nested classes.
|
|
||||||
class WXDLLIMPEXP_BASE wxConfigPathChanger
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctor/dtor do path changing/restoring of the path
|
|
||||||
wxConfigPathChanger(const wxConfigBase *pContainer, const wxString& strEntry);
|
|
||||||
~wxConfigPathChanger();
|
|
||||||
|
|
||||||
// get the key name
|
|
||||||
const wxString& Name() const { return m_strName; }
|
|
||||||
|
|
||||||
// this method must be called if the original path (i.e. the current path at
|
|
||||||
// the moment of creation of this object) could have been deleted to prevent
|
|
||||||
// us from restoring the not existing (any more) path
|
|
||||||
//
|
|
||||||
// if the original path doesn't exist any more, the path will be restored to
|
|
||||||
// the deepest still existing component of the old path
|
|
||||||
void UpdateIfDeleted();
|
|
||||||
|
|
||||||
private:
|
|
||||||
wxConfigBase *m_pContainer; // object we live in
|
|
||||||
wxString m_strName, // name of entry (i.e. name only)
|
|
||||||
m_strOldPath; // saved path
|
|
||||||
bool m_bChanged; // was the path changed?
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxConfigPathChanger);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // wxUSE_CONFIG
|
|
||||||
|
|
||||||
/*
|
|
||||||
Replace environment variables ($SOMETHING) with their values. The format is
|
|
||||||
$VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and
|
|
||||||
'_' only. '$' must be escaped ('\$') in order to be taken literally.
|
|
||||||
*/
|
|
||||||
|
|
||||||
WXDLLIMPEXP_BASE wxString wxExpandEnvVars(const wxString &sz);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Split path into parts removing '..' in progress
|
|
||||||
*/
|
|
||||||
WXDLLIMPEXP_BASE void wxSplitPath(wxArrayString& aParts, const wxString& path);
|
|
||||||
|
|
||||||
#endif // _WX_CONFBASE_H_
|
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/config.h
|
|
||||||
// Purpose: wxConfig base header
|
|
||||||
// Author: Julian Smart
|
|
||||||
// Modified by:
|
|
||||||
// Created:
|
|
||||||
// Copyright: (c) Julian Smart
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CONFIG_H_BASE_
|
|
||||||
#define _WX_CONFIG_H_BASE_
|
|
||||||
|
|
||||||
#include "wx/confbase.h"
|
|
||||||
|
|
||||||
#if wxUSE_CONFIG
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// define the native wxConfigBase implementation
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// under Windows we prefer to use the native implementation but can be forced
|
|
||||||
// to use the file-based one
|
|
||||||
#if defined(__WINDOWS__) && wxUSE_CONFIG_NATIVE
|
|
||||||
#include "wx/msw/regconf.h"
|
|
||||||
#define wxConfig wxRegConfig
|
|
||||||
#elif defined(__WXOS2__) && wxUSE_CONFIG_NATIVE
|
|
||||||
#include "wx/os2/iniconf.h"
|
|
||||||
#define wxConfig wxIniConfig
|
|
||||||
#else // either we're under Unix or wish to always use config files
|
|
||||||
#include "wx/fileconf.h"
|
|
||||||
#define wxConfig wxFileConfig
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // wxUSE_CONFIG
|
|
||||||
|
|
||||||
#endif // _WX_CONFIG_H_BASE_
|
|
|
@ -1,394 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/containr.h
|
|
||||||
// Purpose: wxControlContainer and wxNavigationEnabled declarations
|
|
||||||
// Author: Vadim Zeitlin
|
|
||||||
// Modified by:
|
|
||||||
// Created: 06.08.01
|
|
||||||
// RCS-ID: $Id$
|
|
||||||
// Copyright: (c) 2001, 2011 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_CONTAINR_H_
|
|
||||||
#define _WX_CONTAINR_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
|
|
||||||
#ifndef wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
// We need wxEVT_XXX declarations in this case.
|
|
||||||
#include "wx/event.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxWindowBase;
|
|
||||||
|
|
||||||
/*
|
|
||||||
This header declares wxControlContainer class however it's not a real
|
|
||||||
container of controls but rather just a helper used to implement TAB
|
|
||||||
navigation among the window children. You should rarely need to use it
|
|
||||||
directly, derive from the documented public wxNavigationEnabled<> class to
|
|
||||||
implement TAB navigation in a custom composite window.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxControlContainerBase: common part used in both native and generic cases
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxControlContainerBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// default ctor, SetContainerWindow() must be called later
|
|
||||||
wxControlContainerBase()
|
|
||||||
{
|
|
||||||
m_winParent = NULL;
|
|
||||||
|
|
||||||
// do accept focus initially, we'll stop doing it if/when any children
|
|
||||||
// are added
|
|
||||||
m_acceptsFocus = true;
|
|
||||||
m_inSetFocus = false;
|
|
||||||
m_winLastFocused = NULL;
|
|
||||||
}
|
|
||||||
virtual ~wxControlContainerBase() {}
|
|
||||||
|
|
||||||
void SetContainerWindow(wxWindow *winParent)
|
|
||||||
{
|
|
||||||
wxASSERT_MSG( !m_winParent, wxT("shouldn't be called twice") );
|
|
||||||
|
|
||||||
m_winParent = winParent;
|
|
||||||
}
|
|
||||||
|
|
||||||
// should be called from SetFocus(), returns false if we did nothing with
|
|
||||||
// the focus and the default processing should take place
|
|
||||||
bool DoSetFocus();
|
|
||||||
|
|
||||||
// should be called when we decide that we should [stop] accepting focus
|
|
||||||
void SetCanFocus(bool acceptsFocus);
|
|
||||||
|
|
||||||
// returns whether we should accept focus ourselves or not
|
|
||||||
bool AcceptsFocus() const { return m_acceptsFocus; }
|
|
||||||
|
|
||||||
// returns whether we or one of our children accepts focus: we always do
|
|
||||||
// because if we don't have any focusable children it probably means that
|
|
||||||
// we're not being used as a container at all (think of wxGrid or generic
|
|
||||||
// wxListCtrl) and so should get focus for ourselves
|
|
||||||
bool AcceptsFocusRecursively() const { return true; }
|
|
||||||
|
|
||||||
// this is used to determine whether we can accept focus when Tab or
|
|
||||||
// another navigation key is pressed -- we alsways can, for the same reason
|
|
||||||
// as mentioned above for AcceptsFocusRecursively()
|
|
||||||
bool AcceptsFocusFromKeyboard() const { return true; }
|
|
||||||
|
|
||||||
// Call this when the number of children of the window changes.
|
|
||||||
// If we have any children, this panel (used just as container for
|
|
||||||
// them) shouldn't get focus for itself.
|
|
||||||
void UpdateCanFocus() { SetCanFocus(!HasAnyFocusableChildren()); }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// set the focus to the child which had it the last time
|
|
||||||
virtual bool SetFocusToChild();
|
|
||||||
|
|
||||||
// return true if we have any children accepting focus
|
|
||||||
bool HasAnyFocusableChildren() const;
|
|
||||||
|
|
||||||
// the parent window we manage the children for
|
|
||||||
wxWindow *m_winParent;
|
|
||||||
|
|
||||||
// the child which had the focus last time this panel was activated
|
|
||||||
wxWindow *m_winLastFocused;
|
|
||||||
|
|
||||||
private:
|
|
||||||
// value returned by AcceptsFocus(), should be changed using SetCanFocus()
|
|
||||||
// only
|
|
||||||
bool m_acceptsFocus;
|
|
||||||
|
|
||||||
// a guard against infinite recursion
|
|
||||||
bool m_inSetFocus;
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxControlContainer for native TAB navigation
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// this must be a real class as we forward-declare it elsewhere
|
|
||||||
class WXDLLIMPEXP_CORE wxControlContainer : public wxControlContainerBase
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
// set the focus to the child which had it the last time
|
|
||||||
virtual bool SetFocusToChild();
|
|
||||||
};
|
|
||||||
|
|
||||||
#else // !wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxControlContainer for TAB navigation implemented in wx itself
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxControlContainer : public wxControlContainerBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// default ctor, SetContainerWindow() must be called later
|
|
||||||
wxControlContainer();
|
|
||||||
|
|
||||||
// the methods to be called from the window event handlers
|
|
||||||
void HandleOnNavigationKey(wxNavigationKeyEvent& event);
|
|
||||||
void HandleOnFocus(wxFocusEvent& event);
|
|
||||||
void HandleOnWindowDestroy(wxWindowBase *child);
|
|
||||||
|
|
||||||
// called from OnChildFocus() handler, i.e. when one of our (grand)
|
|
||||||
// children gets the focus
|
|
||||||
void SetLastFocus(wxWindow *win);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(wxControlContainer);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // wxHAS_NATIVE_TAB_TRAVERSAL/!wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
// this function is for wxWidgets internal use only
|
|
||||||
extern WXDLLIMPEXP_CORE bool wxSetFocusToChild(wxWindow *win, wxWindow **child);
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxNavigationEnabled: Derive from this class to support keyboard navigation
|
|
||||||
// among window children in a wxWindow-derived class. The details of this class
|
|
||||||
// don't matter, you just need to derive from it to make navigation work.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// The template parameter W must be a wxWindow-derived class.
|
|
||||||
template <class W>
|
|
||||||
class wxNavigationEnabled : public W
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
typedef W BaseWindowClass;
|
|
||||||
|
|
||||||
wxNavigationEnabled()
|
|
||||||
{
|
|
||||||
m_container.SetContainerWindow(this);
|
|
||||||
|
|
||||||
#ifndef wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
BaseWindowClass::Connect(wxEVT_NAVIGATION_KEY,
|
|
||||||
wxNavigationKeyEventHandler(wxNavigationEnabled::OnNavigationKey));
|
|
||||||
|
|
||||||
BaseWindowClass::Connect(wxEVT_SET_FOCUS,
|
|
||||||
wxFocusEventHandler(wxNavigationEnabled::OnFocus));
|
|
||||||
|
|
||||||
BaseWindowClass::Connect(wxEVT_CHILD_FOCUS,
|
|
||||||
wxChildFocusEventHandler(wxNavigationEnabled::OnChildFocus));
|
|
||||||
#endif // !wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
}
|
|
||||||
|
|
||||||
WXDLLIMPEXP_INLINE_CORE virtual bool AcceptsFocus() const
|
|
||||||
{
|
|
||||||
return m_container.AcceptsFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
WXDLLIMPEXP_INLINE_CORE virtual bool AcceptsFocusRecursively() const
|
|
||||||
{
|
|
||||||
return m_container.AcceptsFocusRecursively();
|
|
||||||
}
|
|
||||||
|
|
||||||
WXDLLIMPEXP_INLINE_CORE virtual bool AcceptsFocusFromKeyboard() const
|
|
||||||
{
|
|
||||||
return m_container.AcceptsFocusFromKeyboard();
|
|
||||||
}
|
|
||||||
|
|
||||||
WXDLLIMPEXP_INLINE_CORE virtual void AddChild(wxWindowBase *child)
|
|
||||||
{
|
|
||||||
BaseWindowClass::AddChild(child);
|
|
||||||
|
|
||||||
m_container.UpdateCanFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
WXDLLIMPEXP_INLINE_CORE virtual void RemoveChild(wxWindowBase *child)
|
|
||||||
{
|
|
||||||
#ifndef wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
m_container.HandleOnWindowDestroy(child);
|
|
||||||
#endif // !wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
BaseWindowClass::RemoveChild(child);
|
|
||||||
|
|
||||||
m_container.UpdateCanFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
WXDLLIMPEXP_INLINE_CORE virtual void SetFocus()
|
|
||||||
{
|
|
||||||
if ( !m_container.DoSetFocus() )
|
|
||||||
BaseWindowClass::SetFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetFocusIgnoringChildren()
|
|
||||||
{
|
|
||||||
BaseWindowClass::SetFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
void AcceptFocus(bool acceptFocus)
|
|
||||||
{
|
|
||||||
m_container.SetCanFocus(acceptFocus);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
#ifndef wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
void OnNavigationKey(wxNavigationKeyEvent& event)
|
|
||||||
{
|
|
||||||
m_container.HandleOnNavigationKey(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnFocus(wxFocusEvent& event)
|
|
||||||
{
|
|
||||||
m_container.HandleOnFocus(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnChildFocus(wxChildFocusEvent& event)
|
|
||||||
{
|
|
||||||
m_container.SetLastFocus(event.GetWindow());
|
|
||||||
event.Skip();
|
|
||||||
}
|
|
||||||
#endif // !wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
wxControlContainer m_container;
|
|
||||||
|
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxNavigationEnabled, W);
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// Compatibility macros from now on, do NOT use them and preferably do not even
|
|
||||||
// look at them.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if WXWIN_COMPATIBILITY_2_8
|
|
||||||
|
|
||||||
// common part of WX_DECLARE_CONTROL_CONTAINER in the native and generic cases,
|
|
||||||
// it should be used in the wxWindow-derived class declaration
|
|
||||||
#define WX_DECLARE_CONTROL_CONTAINER_BASE() \
|
|
||||||
public: \
|
|
||||||
virtual bool AcceptsFocus() const; \
|
|
||||||
virtual bool AcceptsFocusRecursively() const; \
|
|
||||||
virtual bool AcceptsFocusFromKeyboard() const; \
|
|
||||||
virtual void AddChild(wxWindowBase *child); \
|
|
||||||
virtual void RemoveChild(wxWindowBase *child); \
|
|
||||||
virtual void SetFocus(); \
|
|
||||||
void SetFocusIgnoringChildren(); \
|
|
||||||
void AcceptFocus(bool acceptFocus) \
|
|
||||||
{ \
|
|
||||||
m_container.SetCanFocus(acceptFocus); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
protected: \
|
|
||||||
wxControlContainer m_container
|
|
||||||
|
|
||||||
// this macro must be used in the derived class ctor
|
|
||||||
#define WX_INIT_CONTROL_CONTAINER() \
|
|
||||||
m_container.SetContainerWindow(this)
|
|
||||||
|
|
||||||
// common part of WX_DELEGATE_TO_CONTROL_CONTAINER in the native and generic
|
|
||||||
// cases, must be used in the wxWindow-derived class implementation
|
|
||||||
#define WX_DELEGATE_TO_CONTROL_CONTAINER_BASE(classname, basename) \
|
|
||||||
void classname::AddChild(wxWindowBase *child) \
|
|
||||||
{ \
|
|
||||||
basename::AddChild(child); \
|
|
||||||
\
|
|
||||||
m_container.UpdateCanFocus(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
bool classname::AcceptsFocusRecursively() const \
|
|
||||||
{ \
|
|
||||||
return m_container.AcceptsFocusRecursively(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void classname::SetFocus() \
|
|
||||||
{ \
|
|
||||||
if ( !m_container.DoSetFocus() ) \
|
|
||||||
basename::SetFocus(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
bool classname::AcceptsFocus() const \
|
|
||||||
{ \
|
|
||||||
return m_container.AcceptsFocus(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
bool classname::AcceptsFocusFromKeyboard() const \
|
|
||||||
{ \
|
|
||||||
return m_container.AcceptsFocusFromKeyboard(); \
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
#define WX_EVENT_TABLE_CONTROL_CONTAINER(classname)
|
|
||||||
|
|
||||||
#define WX_DECLARE_CONTROL_CONTAINER WX_DECLARE_CONTROL_CONTAINER_BASE
|
|
||||||
|
|
||||||
#define WX_DELEGATE_TO_CONTROL_CONTAINER(classname, basename) \
|
|
||||||
WX_DELEGATE_TO_CONTROL_CONTAINER_BASE(classname, basename) \
|
|
||||||
\
|
|
||||||
void classname::RemoveChild(wxWindowBase *child) \
|
|
||||||
{ \
|
|
||||||
basename::RemoveChild(child); \
|
|
||||||
\
|
|
||||||
m_container.UpdateCanFocus(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void classname::SetFocusIgnoringChildren() \
|
|
||||||
{ \
|
|
||||||
basename::SetFocus(); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#else // !wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
// declare the methods to be forwarded
|
|
||||||
#define WX_DECLARE_CONTROL_CONTAINER() \
|
|
||||||
WX_DECLARE_CONTROL_CONTAINER_BASE(); \
|
|
||||||
\
|
|
||||||
public: \
|
|
||||||
void OnNavigationKey(wxNavigationKeyEvent& event); \
|
|
||||||
void OnFocus(wxFocusEvent& event); \
|
|
||||||
virtual void OnChildFocus(wxChildFocusEvent& event)
|
|
||||||
|
|
||||||
// implement the event table entries for wxControlContainer
|
|
||||||
#define WX_EVENT_TABLE_CONTROL_CONTAINER(classname) \
|
|
||||||
EVT_SET_FOCUS(classname::OnFocus) \
|
|
||||||
EVT_CHILD_FOCUS(classname::OnChildFocus) \
|
|
||||||
EVT_NAVIGATION_KEY(classname::OnNavigationKey)
|
|
||||||
|
|
||||||
// implement the methods forwarding to the wxControlContainer
|
|
||||||
#define WX_DELEGATE_TO_CONTROL_CONTAINER(classname, basename) \
|
|
||||||
WX_DELEGATE_TO_CONTROL_CONTAINER_BASE(classname, basename) \
|
|
||||||
\
|
|
||||||
void classname::RemoveChild(wxWindowBase *child) \
|
|
||||||
{ \
|
|
||||||
m_container.HandleOnWindowDestroy(child); \
|
|
||||||
\
|
|
||||||
basename::RemoveChild(child); \
|
|
||||||
\
|
|
||||||
m_container.UpdateCanFocus(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \
|
|
||||||
{ \
|
|
||||||
m_container.HandleOnNavigationKey(event); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void classname::SetFocusIgnoringChildren() \
|
|
||||||
{ \
|
|
||||||
basename::SetFocus(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void classname::OnChildFocus(wxChildFocusEvent& event) \
|
|
||||||
{ \
|
|
||||||
m_container.SetLastFocus(event.GetWindow()); \
|
|
||||||
event.Skip(); \
|
|
||||||
} \
|
|
||||||
\
|
|
||||||
void classname::OnFocus(wxFocusEvent& event) \
|
|
||||||
{ \
|
|
||||||
m_container.HandleOnFocus(event); \
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxHAS_NATIVE_TAB_TRAVERSAL/!wxHAS_NATIVE_TAB_TRAVERSAL
|
|
||||||
|
|
||||||
#endif // WXWIN_COMPATIBILITY_2_8
|
|
||||||
|
|
||||||
#endif // _WX_CONTAINR_H_
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue