mirror of https://github.com/PCSX2/pcsx2.git
Pcsx2-wxGui: Initial commit of "non-functional" gui (WIP). It compiles but doesn't do anything yet (none of the menus have been bound to actions, except for the GameHacks dialog). Initial wxWidgets project additions and prepwork are courtesy of Feat87.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@732 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
f4c9d63521
commit
0bf5d1c43b
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * addbookm_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 3 1",
|
||||||
|
". c Black",
|
||||||
|
"X c #00C000",
|
||||||
|
" c None",
|
||||||
|
/* pixels */
|
||||||
|
" ....... ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .. .XXXXX. ",
|
||||||
|
" .. .XXXXX. ",
|
||||||
|
" ...... .XXXXX. ",
|
||||||
|
" ...... .XXXXX. ",
|
||||||
|
" .. .XXXXX. ",
|
||||||
|
" .. .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XX.XX. ",
|
||||||
|
" .X. .X. ",
|
||||||
|
" .. .. "
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * back_xpm[] = {
|
||||||
|
"16 15 3 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c Gray100",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" .X. ",
|
||||||
|
" .XX........ ",
|
||||||
|
" .XXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXX. ",
|
||||||
|
" .XX........ ",
|
||||||
|
" .X. ",
|
||||||
|
" .. ",
|
||||||
|
" . ",
|
||||||
|
" "};
|
|
@ -0,0 +1,57 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * cdrom_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 36 1",
|
||||||
|
"= c #9BACC2",
|
||||||
|
"y c #547B99",
|
||||||
|
"$ c #FFFFFF",
|
||||||
|
"@ c #839CB5",
|
||||||
|
"o c #547897",
|
||||||
|
"4 c #4D7492",
|
||||||
|
"% c #F1F4F7",
|
||||||
|
"X c #5A809C",
|
||||||
|
"< c #8497A5",
|
||||||
|
"0 c #7898AD",
|
||||||
|
"+ c #CAD2DC",
|
||||||
|
"r c #ACAEB2",
|
||||||
|
"2 c #BECAD9",
|
||||||
|
"* c #65839D",
|
||||||
|
"e c #DCE2EA",
|
||||||
|
"- c #ADBED2",
|
||||||
|
"t c #597B9A",
|
||||||
|
" c None",
|
||||||
|
"1 c #467291",
|
||||||
|
"9 c #D6DFE7",
|
||||||
|
"O c #7393AB",
|
||||||
|
"u c #49708B",
|
||||||
|
"5 c #A0BACB",
|
||||||
|
"& c #AABFCD",
|
||||||
|
"8 c #B9CBD5",
|
||||||
|
"; c #B4C4D3",
|
||||||
|
": c #6F90A6",
|
||||||
|
"3 c #A8B6CA",
|
||||||
|
"# c #ADBACE",
|
||||||
|
"w c #E4E9ED",
|
||||||
|
". c #8EA9BC",
|
||||||
|
"> c #B3BFD1",
|
||||||
|
", c #C2CBDB",
|
||||||
|
"6 c #C0D1DC",
|
||||||
|
"7 c #A2B3C5",
|
||||||
|
"q c #5D7C93",
|
||||||
|
/* pixels */
|
||||||
|
" .XooOo+ ",
|
||||||
|
" X@#$$$%o& ",
|
||||||
|
" *=-;$$$$$o+ ",
|
||||||
|
" +O#;-$$$$$$: ",
|
||||||
|
" o=>,-<1<$2-o ",
|
||||||
|
" o3>--1$122-* ",
|
||||||
|
" o=--$<4<22-X ",
|
||||||
|
" o5$$$$$26;7* ",
|
||||||
|
" X%$$$$2;-X8 ",
|
||||||
|
" 90*9$$$-7Xqo ",
|
||||||
|
" wXwe@O44X4<r<o ",
|
||||||
|
" X8628>22222<<*4",
|
||||||
|
" ttyyyoo4441uuuo",
|
||||||
|
" t>$$$$$$$$$$$>o",
|
||||||
|
" XXXtyyyoo44411u"
|
||||||
|
};
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * copy_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 23 1",
|
||||||
|
"o c #97C4E7",
|
||||||
|
"* c #FFFFFF",
|
||||||
|
"@ c #60A9DA",
|
||||||
|
"= c #D1E5F5",
|
||||||
|
"& c #C3DDF1",
|
||||||
|
". c #7EA6C0",
|
||||||
|
" c None",
|
||||||
|
"X c #2F93CD",
|
||||||
|
"O c #85BBE2",
|
||||||
|
", c #EFF6FC",
|
||||||
|
"; c #DEEDF8",
|
||||||
|
"+ c #72B2DD",
|
||||||
|
"3 c #F7FBFD",
|
||||||
|
"4 c #FAFCFE",
|
||||||
|
": c #DAEAF7",
|
||||||
|
"< c #E9F3FA",
|
||||||
|
"1 c #E2EFF8",
|
||||||
|
"- c #FDFDFE",
|
||||||
|
"% c #B6D5EE",
|
||||||
|
"$ c #A5CCEA",
|
||||||
|
"> c #E5F0F9",
|
||||||
|
"# c #AFD1EC",
|
||||||
|
"2 c #F4F9FD",
|
||||||
|
/* pixels */
|
||||||
|
" .....XX ",
|
||||||
|
" .oO+@X#X ",
|
||||||
|
" .$oO+X##X ",
|
||||||
|
" .%$o........ ",
|
||||||
|
" .&%$.*=&#o.-. ",
|
||||||
|
" .=&%.*;=&#.--. ",
|
||||||
|
" .:=&.*>;=&.... ",
|
||||||
|
" .>:=.*,>;=&#o. ",
|
||||||
|
" .<1:.*2,>:=&#. ",
|
||||||
|
" .2<1.*32,>:=&. ",
|
||||||
|
" .32<.*432,>:=. ",
|
||||||
|
" .32<.*-432,>:. ",
|
||||||
|
" .....**-432,>. ",
|
||||||
|
" .***-432,. ",
|
||||||
|
" .......... "
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * cross_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"10 10 2 1",
|
||||||
|
" c Gray0",
|
||||||
|
"# c None",
|
||||||
|
/* pixels */
|
||||||
|
" ######## ",
|
||||||
|
" #### ",
|
||||||
|
"# ## #",
|
||||||
|
"## ##",
|
||||||
|
"### ###",
|
||||||
|
"### ###",
|
||||||
|
"## ##",
|
||||||
|
"# ## #",
|
||||||
|
" #### ",
|
||||||
|
" ###### "};
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * cut_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 25 1",
|
||||||
|
"6 c #D8BDC0",
|
||||||
|
": c #C3C3C4",
|
||||||
|
"- c #FFFFFF",
|
||||||
|
". c #6C6D70",
|
||||||
|
"2 c #AD3A45",
|
||||||
|
"o c #DBDBDB",
|
||||||
|
"# c #939495",
|
||||||
|
"< c #E42234",
|
||||||
|
"& c #C3C5C8",
|
||||||
|
"; c #C6CCD3",
|
||||||
|
"% c #B7B7B8",
|
||||||
|
" c None",
|
||||||
|
"* c #DFE0E2",
|
||||||
|
"5 c #B69596",
|
||||||
|
"3 c #9C2A35",
|
||||||
|
"1 c #CFCFD0",
|
||||||
|
", c #AB5C64",
|
||||||
|
"+ c #D2D3D4",
|
||||||
|
"$ c #BCBDBE",
|
||||||
|
"@ c #C6C8CA",
|
||||||
|
"> c #CDC0C1",
|
||||||
|
"O c #826F72",
|
||||||
|
"X c #979BA0",
|
||||||
|
"4 c #9B8687",
|
||||||
|
"= c #9FA0A0",
|
||||||
|
/* pixels */
|
||||||
|
" .X .o ",
|
||||||
|
" O.+ @. ",
|
||||||
|
" O. .. ",
|
||||||
|
" O#$ %.& ",
|
||||||
|
" O.*.. ",
|
||||||
|
" #%#.. ",
|
||||||
|
" O=-.. ",
|
||||||
|
" #%#;. ",
|
||||||
|
" OO:=O ",
|
||||||
|
" >,,<, ,<,,1 ",
|
||||||
|
" ><23<1 1<32<1 ",
|
||||||
|
" ,2 4< <5 2, ",
|
||||||
|
" <, ,2 2, ,< ",
|
||||||
|
" 23,<5 5<,32 ",
|
||||||
|
" 6225 522> "
|
||||||
|
};
|
|
@ -0,0 +1,54 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * deffile_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 16 32 1",
|
||||||
|
"= c #97C4E7",
|
||||||
|
": c #72A8D2",
|
||||||
|
"1 c #FFFFFF",
|
||||||
|
"w c #839CB5",
|
||||||
|
"X c #6B98B8",
|
||||||
|
". c #5A89A6",
|
||||||
|
"@ c #3A749C",
|
||||||
|
", c #D1E5F5",
|
||||||
|
"< c #67A1CF",
|
||||||
|
"> c #F1F4F7",
|
||||||
|
"e c #85A7BC",
|
||||||
|
"% c #C3DDF1",
|
||||||
|
"0 c #749BB4",
|
||||||
|
"2 c #7EA6C0",
|
||||||
|
"; c #5F9BC8",
|
||||||
|
" c None",
|
||||||
|
"O c #538DB3",
|
||||||
|
"- c #85BBE2",
|
||||||
|
"$ c #D6DFE7",
|
||||||
|
"9 c #EFF6FC",
|
||||||
|
"o c #6591AE",
|
||||||
|
"4 c #F7FBFD",
|
||||||
|
"8 c #FAFCFE",
|
||||||
|
"6 c #DAEAF7",
|
||||||
|
"7 c #E9F3FA",
|
||||||
|
"q c #FDFDFE",
|
||||||
|
"3 c #E2EFF8",
|
||||||
|
"# c #8EA9BC",
|
||||||
|
"& c #B6D5EE",
|
||||||
|
"* c #A5CCEA",
|
||||||
|
"5 c #F4F9FD",
|
||||||
|
"+ c #4581AA",
|
||||||
|
/* pixels */
|
||||||
|
" ..XooO+@#$ ",
|
||||||
|
" .%%&*=-;:;> ",
|
||||||
|
" .,,%&*=<1=X> ",
|
||||||
|
" #%%%%&*211=X ",
|
||||||
|
" #3-----<oXoO ",
|
||||||
|
" #3456,%&*=-O ",
|
||||||
|
" #3--------=O ",
|
||||||
|
" #355736,%&*o ",
|
||||||
|
" #3--------&o ",
|
||||||
|
" #38459736,%X ",
|
||||||
|
" #3--------,0 ",
|
||||||
|
" #31q84597360 ",
|
||||||
|
" #3--------3w ",
|
||||||
|
" #3111q84597e ",
|
||||||
|
" ##########e# ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * delbookm_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 3 1",
|
||||||
|
". c Black",
|
||||||
|
" c None",
|
||||||
|
"X c #FF4040",
|
||||||
|
/* pixels */
|
||||||
|
" ....... ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" . . .XXXXX. ",
|
||||||
|
" .. .. .XXXXX. ",
|
||||||
|
" ... .XXXXX. ",
|
||||||
|
" . .XXXXX. ",
|
||||||
|
" ... .XXXXX. ",
|
||||||
|
" .. .. .XXXXX. ",
|
||||||
|
" . . .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .XX.XX. ",
|
||||||
|
" .X. .X. ",
|
||||||
|
" .. .. "
|
||||||
|
};
|
|
@ -0,0 +1,42 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * delete_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 21 1",
|
||||||
|
"2 c #A5AEBD",
|
||||||
|
"* c #5478B4",
|
||||||
|
"< c #95A3BB",
|
||||||
|
"O c #9AA7BC",
|
||||||
|
"; c #758EB7",
|
||||||
|
"$ c #6986B6",
|
||||||
|
"# c #4971B2",
|
||||||
|
"& c #8A9CBA",
|
||||||
|
"X c #8598B9",
|
||||||
|
" c None",
|
||||||
|
"o c #ABB2BE",
|
||||||
|
"- c #7F95B9",
|
||||||
|
"= c #4E74B3",
|
||||||
|
"1 c #A0ABBC",
|
||||||
|
"+ c #6F8AB7",
|
||||||
|
". c #B5B9BF",
|
||||||
|
"@ c #3E69B1",
|
||||||
|
", c #90A0BA",
|
||||||
|
": c #6483B5",
|
||||||
|
"> c #5A7BB4",
|
||||||
|
"% c #5F7FB5",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" .Xo OO ",
|
||||||
|
" +@#. $@% ",
|
||||||
|
" &@@X .*@*o ",
|
||||||
|
" =@= .*@*. ",
|
||||||
|
" -@@X*@*. ",
|
||||||
|
" .#@@@$. ",
|
||||||
|
" ;@@: ",
|
||||||
|
" ;@@@+ ",
|
||||||
|
" .>@#%@@. ",
|
||||||
|
" o*@*oO@@, ",
|
||||||
|
" <#@*. .@@= ",
|
||||||
|
"&@@$ :@@1 ",
|
||||||
|
";#& 2#>. ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,52 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * dir_up_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 31 1",
|
||||||
|
"6 c #9BACC2",
|
||||||
|
"o c #9AEA53",
|
||||||
|
"7 c #94A5BD",
|
||||||
|
"8 c #547897",
|
||||||
|
"5 c #839CB5",
|
||||||
|
"@ c #376485",
|
||||||
|
"$ c #5A809C",
|
||||||
|
"# c #7F99B4",
|
||||||
|
": c #D1D9E5",
|
||||||
|
"< c #EAEDF3",
|
||||||
|
"& c #446A8C",
|
||||||
|
"q c #65839D",
|
||||||
|
"> c #DCE2EA",
|
||||||
|
", c #E1E6EE",
|
||||||
|
"2 c #F5F6F7",
|
||||||
|
"O c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"% c #467291",
|
||||||
|
". c #305F81",
|
||||||
|
"X c #7393AB",
|
||||||
|
"+ c #6A89A2",
|
||||||
|
"4 c #A8B6CA",
|
||||||
|
"1 c #EEF1F3",
|
||||||
|
"3 c #F8F9FA",
|
||||||
|
"0 c #215579",
|
||||||
|
"9 c #7F97B0",
|
||||||
|
"* c #B3BFD1",
|
||||||
|
"w c #7A90AC",
|
||||||
|
"- c #C2CBDB",
|
||||||
|
"; c #CAD6E1",
|
||||||
|
"= c #BBC4D6",
|
||||||
|
/* pixels */
|
||||||
|
" .. ",
|
||||||
|
" X.o. ",
|
||||||
|
".... X.ooo. ",
|
||||||
|
".OO+....ooooo. ",
|
||||||
|
".OOOOOO@@ooo.. ",
|
||||||
|
".OOOO#OO@ooo.$ ",
|
||||||
|
".OOOOOOO@ooo.$ ",
|
||||||
|
".O%............&",
|
||||||
|
".O&*=-;:>,<1231.",
|
||||||
|
".+.4*=-;:>,<12$.",
|
||||||
|
"..564*=-;:>,<1. ",
|
||||||
|
".@O764*=-;:>,<. ",
|
||||||
|
".89O764*=-;:>$$ ",
|
||||||
|
"0qw9O764*=-;:. ",
|
||||||
|
"0............. "
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * down_xpm[] = {
|
||||||
|
"16 15 3 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c Gray100",
|
||||||
|
" ",
|
||||||
|
" ...... ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" ....XXXX.... ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" .XXXXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XX. ",
|
||||||
|
" .. ",
|
||||||
|
" "};
|
|
@ -0,0 +1,73 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * exefile_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 16 51 1",
|
||||||
|
"% c #E8E8EC",
|
||||||
|
"= c #E8E8ED",
|
||||||
|
"z c #CACAD4",
|
||||||
|
"8 c #D9D9E1",
|
||||||
|
"p c #D2D2DA",
|
||||||
|
"u c #E1E1E7",
|
||||||
|
"a c #D2D2DB",
|
||||||
|
"< c #E9E9ED",
|
||||||
|
"q c #DADAE1",
|
||||||
|
"+ c #F1F1F4",
|
||||||
|
"g c #D3D3DB",
|
||||||
|
"1 c #E2E2E8",
|
||||||
|
"x c #D3D3DC",
|
||||||
|
"5 c #00A5FF",
|
||||||
|
"$ c #EAEAEE",
|
||||||
|
"4 c #DBDBE2",
|
||||||
|
"h c #CCCCD6",
|
||||||
|
"y c #D4D4DC",
|
||||||
|
"r c #E3E3E9",
|
||||||
|
"d c #D4D4DD",
|
||||||
|
"7 c #DCDCE2",
|
||||||
|
": c #EBEBEF",
|
||||||
|
"0 c #DCDCE3",
|
||||||
|
" c None",
|
||||||
|
"O c #F3F3F5",
|
||||||
|
"> c #E4E4E9",
|
||||||
|
"& c #F3F3F6",
|
||||||
|
"j c #D5D5DD",
|
||||||
|
"6 c #E4E4EA",
|
||||||
|
". c #C6C6D5",
|
||||||
|
"# c #ECECF0",
|
||||||
|
"f c #CECED7",
|
||||||
|
"l c #CECED8",
|
||||||
|
"e c #D6D6DE",
|
||||||
|
"; c #EDEDF0",
|
||||||
|
"3 c #DEDEE4",
|
||||||
|
", c #EDEDF1",
|
||||||
|
"c c #CFCFD8",
|
||||||
|
"o c #F5F5F7",
|
||||||
|
"- c #E6E6EB",
|
||||||
|
"w c #D7D7DF",
|
||||||
|
"v c #C8C8D3",
|
||||||
|
"i c #DFDFE5",
|
||||||
|
"@ c #EEEEF2",
|
||||||
|
"s c #D0D0D9",
|
||||||
|
"X c #9494AD",
|
||||||
|
"9 c #D8D8DF",
|
||||||
|
"t c #D8D8E0",
|
||||||
|
"* c #EFEFF2",
|
||||||
|
"2 c #E0E0E6",
|
||||||
|
"k c #D1D1DA",
|
||||||
|
/* pixels */
|
||||||
|
" ........X ",
|
||||||
|
" .oO+@#$%XX ",
|
||||||
|
" .&+*#$=-XXX ",
|
||||||
|
" .+*;:=->XXXX ",
|
||||||
|
" .*,:<->1234X ",
|
||||||
|
" .,5:5612378X ",
|
||||||
|
" 5,5559530qwX ",
|
||||||
|
" 55555550q9eX ",
|
||||||
|
" 5555r5555teyX ",
|
||||||
|
" 55rui559eypX ",
|
||||||
|
" 5555i5555yasX ",
|
||||||
|
" 5555555dasfX ",
|
||||||
|
" 5355595gsfhX ",
|
||||||
|
" .3595jgklhzX ",
|
||||||
|
" .0qwjxkchzvX ",
|
||||||
|
" XXXXXXXXXXXX "
|
||||||
|
};
|
|
@ -0,0 +1,57 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * fileopen_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 36 1",
|
||||||
|
"6 c #9BACC2",
|
||||||
|
"< c #9AEA53",
|
||||||
|
"9 c #94A5BD",
|
||||||
|
"5 c #839CB5",
|
||||||
|
"; c #4D7492",
|
||||||
|
". c #376485",
|
||||||
|
"$ c #7F99B4",
|
||||||
|
"r c #D1D9E5",
|
||||||
|
"7 c #EAEDF3",
|
||||||
|
"@ c #CAD2DC",
|
||||||
|
"% c #718BA7",
|
||||||
|
"t c #BECAD9",
|
||||||
|
"& c #65839D",
|
||||||
|
"0 c #DCE2EA",
|
||||||
|
"4 c #F5F6F7",
|
||||||
|
"w c #597B9A",
|
||||||
|
"O c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"+ c #467291",
|
||||||
|
"u c #305F81",
|
||||||
|
"= c #B4C4D3",
|
||||||
|
"# c #CAE2AA",
|
||||||
|
"1 c #FAFCFE",
|
||||||
|
"3 c #A8B6CA",
|
||||||
|
"q c #E4E9ED",
|
||||||
|
"8 c #EEF1F3",
|
||||||
|
"X c #215579",
|
||||||
|
"2 c #7F97B0",
|
||||||
|
": c #B3BFD1",
|
||||||
|
"y c #7A90AC",
|
||||||
|
", c #C2CBDB",
|
||||||
|
"- c #ADD668",
|
||||||
|
"* c #B6D791",
|
||||||
|
"e c #CAD6E1",
|
||||||
|
"o c #DFF0D0",
|
||||||
|
"> c #BBC4D6",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" .... ",
|
||||||
|
"XXXXX .oo. ",
|
||||||
|
"XOOOO+@.#o. ",
|
||||||
|
"XOOOO$%&.*oXXX ",
|
||||||
|
"XOOOOOOO.*oX=X ",
|
||||||
|
"XOXXXX...-oXXXX;",
|
||||||
|
"XOX:>,.<<<<<oX1;",
|
||||||
|
"X2X3:>,.<<<oX4=;",
|
||||||
|
"XX563:>>.<oX78; ",
|
||||||
|
"XXO963:>>.X0q7; ",
|
||||||
|
"Xw2O963:>>er0t; ",
|
||||||
|
"X&y2O963:>,er; ",
|
||||||
|
"uXXXXXXXXXXXX; ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,42 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * filesave_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 21 1",
|
||||||
|
"O c #FFFFFF",
|
||||||
|
"> c #D5D6D8",
|
||||||
|
"; c #446A8C",
|
||||||
|
"1 c #CAD2DC",
|
||||||
|
": c #C0C7D1",
|
||||||
|
" c #5F666D",
|
||||||
|
"% c #A5B0BA",
|
||||||
|
"o c #65839D",
|
||||||
|
", c #DCE2EA",
|
||||||
|
"< c #C3C5C8",
|
||||||
|
"- c #E1E6EE",
|
||||||
|
"* c #C6CCD3",
|
||||||
|
". c None",
|
||||||
|
"$ c #305F81",
|
||||||
|
"2 c #D6DFE7",
|
||||||
|
"= c #D2D9E0",
|
||||||
|
"& c #B7BFC7",
|
||||||
|
"X c #1B4467",
|
||||||
|
"# c #BCBDBE",
|
||||||
|
"@ c #7A90AC",
|
||||||
|
"+ c #5D7C93",
|
||||||
|
/* pixels */
|
||||||
|
" .",
|
||||||
|
" XoOOOOOOOOO+X .",
|
||||||
|
" @oO#######O+@ .",
|
||||||
|
" @oOOOOOOOOO+@ .",
|
||||||
|
" @oO#######O+@ .",
|
||||||
|
" @oOOOOOOOOO+@ .",
|
||||||
|
" @@+++++++++@@ .",
|
||||||
|
" @@@@@@@@@@@@@ .",
|
||||||
|
" @@@$$$$$$$$@@ .",
|
||||||
|
" @@$%%%&*=-O$@ .",
|
||||||
|
" @@$%X;;*=-O$@ .",
|
||||||
|
" @@$%X;;:>,O$@ .",
|
||||||
|
" @@$%X;;<12O$@ .",
|
||||||
|
" @@$<<2OOOOO$@ .",
|
||||||
|
". .."
|
||||||
|
};
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * filesaveas_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 23 1",
|
||||||
|
"X c Black",
|
||||||
|
"+ c #FFFFFF",
|
||||||
|
"< c #D5D6D8",
|
||||||
|
"> c #446A8C",
|
||||||
|
"3 c #CAD2DC",
|
||||||
|
", c #C0C7D1",
|
||||||
|
" c #5F666D",
|
||||||
|
"* c #A5B0BA",
|
||||||
|
"O c #65839D",
|
||||||
|
"1 c #DCE2EA",
|
||||||
|
"2 c #C3C5C8",
|
||||||
|
": c #E1E6EE",
|
||||||
|
". c #FFFF00",
|
||||||
|
"- c #C6CCD3",
|
||||||
|
"@ c None",
|
||||||
|
"& c #305F81",
|
||||||
|
"4 c #D6DFE7",
|
||||||
|
"; c #D2D9E0",
|
||||||
|
"= c #B7BFC7",
|
||||||
|
"o c #1B4467",
|
||||||
|
"$ c #BCBDBE",
|
||||||
|
"# c #7A90AC",
|
||||||
|
"% c #5D7C93",
|
||||||
|
/* pixels */
|
||||||
|
" .X .XX.",
|
||||||
|
" oO+++++++.X.X.@",
|
||||||
|
" #O+$$$$$XX...XX",
|
||||||
|
" #O++++++.......",
|
||||||
|
" #O+$$$$$XX...XX",
|
||||||
|
" #O+++++++.X.X.@",
|
||||||
|
" ##%%%%%%.X%.X .",
|
||||||
|
" ############# @",
|
||||||
|
" ###&&&&&&&&## @",
|
||||||
|
" ##&***=-;:+&# @",
|
||||||
|
" ##&*o>>-;:+&# @",
|
||||||
|
" ##&*o>>,<1+&# @",
|
||||||
|
" ##&*o>>234+&# @",
|
||||||
|
" ##&224+++++&# @",
|
||||||
|
"@ @@"
|
||||||
|
};
|
|
@ -0,0 +1,62 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * find_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 41 1",
|
||||||
|
"y c #A06959",
|
||||||
|
"9 c #A7DAF2",
|
||||||
|
"$ c #B5CAD7",
|
||||||
|
"> c #35B4E1",
|
||||||
|
"t c #6B98B8",
|
||||||
|
"w c #B6E0F4",
|
||||||
|
"q c #AEC9D7",
|
||||||
|
"1 c #5A89A6",
|
||||||
|
"+ c #98B3C6",
|
||||||
|
"4 c #EAF6FC",
|
||||||
|
"3 c #DEF1FA",
|
||||||
|
"= c #4CBCE3",
|
||||||
|
"d c #DB916B",
|
||||||
|
"X c #85A7BC",
|
||||||
|
"s c #D8BCA4",
|
||||||
|
"o c #749BB4",
|
||||||
|
"e c #BCD9EF",
|
||||||
|
"* c #62B4DD",
|
||||||
|
"< c #91D2EF",
|
||||||
|
"a c #E6DED2",
|
||||||
|
"0 c #E9F4FB",
|
||||||
|
" c None",
|
||||||
|
"@ c #A0BACB",
|
||||||
|
"O c #AABFCD",
|
||||||
|
"i c #6591AE",
|
||||||
|
": c #B9CBD5",
|
||||||
|
"- c #71C5E7",
|
||||||
|
"5 c #D3ECF8",
|
||||||
|
"% c #81A3B9",
|
||||||
|
"6 c #8AD0EE",
|
||||||
|
"8 c #FDFDFE",
|
||||||
|
"p c #8EA9BC",
|
||||||
|
"r c #B6D5EE",
|
||||||
|
", c #81CCEB",
|
||||||
|
". c #ACC4D3",
|
||||||
|
"; c #AFD1DE",
|
||||||
|
"7 c #EFF8FC",
|
||||||
|
"u c #C2CBDB",
|
||||||
|
"# c #C0D1DC",
|
||||||
|
"2 c #CAD6E1",
|
||||||
|
"& c #8FB0C3",
|
||||||
|
/* pixels */
|
||||||
|
" .XooXO ",
|
||||||
|
" +@###$+% ",
|
||||||
|
" .&#*==-;@@ ",
|
||||||
|
" o:*>,<--:X ",
|
||||||
|
" 12>-345-#% ",
|
||||||
|
" 12>678392% ",
|
||||||
|
" %$*,3059q& ",
|
||||||
|
" @Oq,wwer@@ ",
|
||||||
|
" t@q22q&+ ",
|
||||||
|
" yyui+%o%p ",
|
||||||
|
" yasy ",
|
||||||
|
" yasdy ",
|
||||||
|
" yasdy ",
|
||||||
|
" ysdy ",
|
||||||
|
" yy "
|
||||||
|
};
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * findrepl_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 42 1",
|
||||||
|
"y c #A06959",
|
||||||
|
"9 c #A7DAF2",
|
||||||
|
"$ c #B5CAD7",
|
||||||
|
"> c #35B4E1",
|
||||||
|
"t c #6B98B8",
|
||||||
|
"w c #B6E0F4",
|
||||||
|
"q c #AEC9D7",
|
||||||
|
"1 c #5A89A6",
|
||||||
|
"+ c #98B3C6",
|
||||||
|
"4 c #EAF6FC",
|
||||||
|
"d c #008000",
|
||||||
|
"3 c #DEF1FA",
|
||||||
|
"= c #4CBCE3",
|
||||||
|
"f c #DB916B",
|
||||||
|
"X c #85A7BC",
|
||||||
|
"s c #D8BCA4",
|
||||||
|
"o c #749BB4",
|
||||||
|
"e c #BCD9EF",
|
||||||
|
"* c #62B4DD",
|
||||||
|
"< c #91D2EF",
|
||||||
|
"a c #E6DED2",
|
||||||
|
"0 c #E9F4FB",
|
||||||
|
" c None",
|
||||||
|
"@ c #A0BACB",
|
||||||
|
"O c #AABFCD",
|
||||||
|
"i c #6591AE",
|
||||||
|
": c #B9CBD5",
|
||||||
|
"- c #71C5E7",
|
||||||
|
"5 c #D3ECF8",
|
||||||
|
"% c #81A3B9",
|
||||||
|
"6 c #8AD0EE",
|
||||||
|
"8 c #FDFDFE",
|
||||||
|
"p c #8EA9BC",
|
||||||
|
"r c #B6D5EE",
|
||||||
|
", c #81CCEB",
|
||||||
|
". c #ACC4D3",
|
||||||
|
"; c #AFD1DE",
|
||||||
|
"7 c #EFF8FC",
|
||||||
|
"u c #C2CBDB",
|
||||||
|
"# c #C0D1DC",
|
||||||
|
"2 c #CAD6E1",
|
||||||
|
"& c #8FB0C3",
|
||||||
|
/* pixels */
|
||||||
|
" .XooXO ",
|
||||||
|
" +@###$+% ",
|
||||||
|
" .&#*==-;@@ ",
|
||||||
|
" o:*>,<--:X ",
|
||||||
|
" 12>-345-#% ",
|
||||||
|
" 12>678392% ",
|
||||||
|
" %$*,3059q& ",
|
||||||
|
" @Oq,wwer@@ ",
|
||||||
|
" t@q22q&+ ",
|
||||||
|
" yyui+%o%p ",
|
||||||
|
" yasy d d ",
|
||||||
|
" yasfy dd dd ",
|
||||||
|
"yasfy ddddddddd",
|
||||||
|
"ysfy dd dd ",
|
||||||
|
" yy d d "
|
||||||
|
};
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * floppy_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 18 1",
|
||||||
|
"& c #E3E4E6",
|
||||||
|
"+ c #FFFFFF",
|
||||||
|
". c #446A8C",
|
||||||
|
"o c #697787",
|
||||||
|
"> c #5F666D",
|
||||||
|
"* c #B2B3B3",
|
||||||
|
" c None",
|
||||||
|
", c #4B4C4D",
|
||||||
|
"= c #DCDBDA",
|
||||||
|
"$ c #1B4467",
|
||||||
|
": c #E4E9ED",
|
||||||
|
"@ c #979BA0",
|
||||||
|
"X c #203646",
|
||||||
|
"O c #215579",
|
||||||
|
"- c #545B63",
|
||||||
|
"; c #636465",
|
||||||
|
"# c #CAD6E1",
|
||||||
|
"% c #7F8286",
|
||||||
|
/* pixels */
|
||||||
|
" .XoooooooXO ",
|
||||||
|
" .o+++++++.O ",
|
||||||
|
" .o+OOOOO+.O ",
|
||||||
|
" .o+++++++.O ",
|
||||||
|
" .o@@@@@@@.O ",
|
||||||
|
" ..........O ",
|
||||||
|
" ..#+++++#.O ",
|
||||||
|
" ..+$O+++#.O ",
|
||||||
|
" ..+$O+++#.O ",
|
||||||
|
" %&.........*% ",
|
||||||
|
"%=+++++++++++&% ",
|
||||||
|
"--------------; ",
|
||||||
|
"-:::::::::::::- ",
|
||||||
|
"-:X:XXXXXXXXX:> ",
|
||||||
|
"-*************, "
|
||||||
|
};
|
|
@ -0,0 +1,43 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * folder_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 22 1",
|
||||||
|
"> c #9BACC2",
|
||||||
|
". c #547897",
|
||||||
|
"1 c #7F99B4",
|
||||||
|
"X c #D1D9E5",
|
||||||
|
"< c #EAEDF3",
|
||||||
|
"+ c #CAD2DC",
|
||||||
|
"3 c #718BA7",
|
||||||
|
"O c #BECAD9",
|
||||||
|
"$ c #E1E6EE",
|
||||||
|
"* c #F5F6F7",
|
||||||
|
", c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"# c #D6DFE7",
|
||||||
|
"@ c #D2D9E0",
|
||||||
|
"- c #FAFCFE",
|
||||||
|
"; c #ADBACE",
|
||||||
|
"& c #EEF1F3",
|
||||||
|
"= c #F8F9FA",
|
||||||
|
"o c #B3BFD1",
|
||||||
|
"2 c #7A90AC",
|
||||||
|
": c #A2B3C5",
|
||||||
|
"% c #E5EAF1",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" ............. ",
|
||||||
|
" .oO+@#$%&*=-. ",
|
||||||
|
" .oO+@#$%&*=-. ",
|
||||||
|
" .;oO+X#$%&*=. ",
|
||||||
|
" .:;oO+X#$%&*. ",
|
||||||
|
" .>:;oO+X#$%&. ",
|
||||||
|
" .,>:;oO+X#$<. ",
|
||||||
|
" .1,>:;oO+X#$. ",
|
||||||
|
" .21,>:;oO+X#. ",
|
||||||
|
" .321,>:;oO+X. ",
|
||||||
|
" ............. ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,52 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * folder_open_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 31 1",
|
||||||
|
"6 c #9BACC2",
|
||||||
|
"w c #547B99",
|
||||||
|
"5 c #94A5BD",
|
||||||
|
". c #376485",
|
||||||
|
"; c #F1F4F7",
|
||||||
|
"o c #7F99B4",
|
||||||
|
"2 c #D1D9E5",
|
||||||
|
"- c #EAEDF3",
|
||||||
|
"O c #718BA7",
|
||||||
|
"0 c #65839D",
|
||||||
|
"* c #DCE2EA",
|
||||||
|
": c #F5F6F7",
|
||||||
|
"7 c #597B9A",
|
||||||
|
"X c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"+ c #467291",
|
||||||
|
"q c #305F81",
|
||||||
|
"& c #D6DFE7",
|
||||||
|
"3 c #6A89A2",
|
||||||
|
"1 c #A8B6CA",
|
||||||
|
"= c #E4E9ED",
|
||||||
|
"> c #F8F9FA",
|
||||||
|
", c #FDFDFE",
|
||||||
|
"9 c #215579",
|
||||||
|
"8 c #7F97B0",
|
||||||
|
"@ c #B3BFD1",
|
||||||
|
"< c #7A90AC",
|
||||||
|
"$ c #C2CBDB",
|
||||||
|
"4 c #A2B3C5",
|
||||||
|
"% c #CAD6E1",
|
||||||
|
"# c #BBC4D6",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
"..... ",
|
||||||
|
".XXXo. ",
|
||||||
|
".XXXXO........ ",
|
||||||
|
".XXXXXXXXXXXX. ",
|
||||||
|
".XXXXXXXXXXXX. ",
|
||||||
|
".X++++++++++++++",
|
||||||
|
".X+@#$%&*=-;:>,+",
|
||||||
|
".<.1@#$%2*=-;:23",
|
||||||
|
"..X41@#$%2*=-;3 ",
|
||||||
|
"..X561@#$%2*=-3 ",
|
||||||
|
".78X561@#$%2*%3 ",
|
||||||
|
"90<8X561@#$%23 ",
|
||||||
|
"q++++++++++++w ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * forward_xpm[] = {
|
||||||
|
"16 15 3 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c Gray100",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" .. ",
|
||||||
|
" .X. ",
|
||||||
|
" ........XX. ",
|
||||||
|
" .XXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXX. ",
|
||||||
|
" ........XX. ",
|
||||||
|
" .X. ",
|
||||||
|
" .. ",
|
||||||
|
" . ",
|
||||||
|
" "};
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * error_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 4 1",
|
||||||
|
" c None",
|
||||||
|
"X c #242424",
|
||||||
|
"o c #DCDF00",
|
||||||
|
". c #C00000",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" ............. ",
|
||||||
|
" ................. ",
|
||||||
|
" ................... ",
|
||||||
|
" ....................... ",
|
||||||
|
" ......................... ",
|
||||||
|
" ........................... ",
|
||||||
|
" ...........................X ",
|
||||||
|
" .............................X ",
|
||||||
|
" ............................... ",
|
||||||
|
" ...............................X ",
|
||||||
|
" .................................X ",
|
||||||
|
" .................................X ",
|
||||||
|
" .................................XX ",
|
||||||
|
" ...ooooooooooooooooooooooooooo...XX ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....X ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....X ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....XX ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....XX ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....XX ",
|
||||||
|
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||||
|
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||||
|
" .................................XX ",
|
||||||
|
" .................................XX ",
|
||||||
|
" ...............................XXX ",
|
||||||
|
" ...............................XXX ",
|
||||||
|
" .............................XXX ",
|
||||||
|
" ...........................XXXX ",
|
||||||
|
" ...........................XXX ",
|
||||||
|
" .........................XXX ",
|
||||||
|
" .......................XXXX ",
|
||||||
|
" X...................XXXXX ",
|
||||||
|
" X.................XXXXX ",
|
||||||
|
" X.............XXXXX ",
|
||||||
|
" XXXX.....XXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXX ",
|
||||||
|
" XXXXX ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * info_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 9 1",
|
||||||
|
"$ c Black",
|
||||||
|
"O c #FFFFFF",
|
||||||
|
"@ c #808080",
|
||||||
|
"+ c #000080",
|
||||||
|
"o c #E8EB01",
|
||||||
|
" c None",
|
||||||
|
"X c #FFFF40",
|
||||||
|
"# c #C0C0C0",
|
||||||
|
". c #ABAD01",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXXXXXXXo.. ",
|
||||||
|
" .XXXOXXXXXXXoo. ",
|
||||||
|
" .XOOXXX+XXXXXo. ",
|
||||||
|
" .XOOOXX+++XXXXoo. ",
|
||||||
|
" .XOOXXX+++XXXXXo. ",
|
||||||
|
" .XOOOXXX+++XXXXXXo. ",
|
||||||
|
" .XOOXXXX+++XXXXXXo. ",
|
||||||
|
" .XXXXXXX+++XXXXXXX. ",
|
||||||
|
" .XXXXXXX+++XXXXXXo. ",
|
||||||
|
" .XXXXXXX+++XXXXXoo. ",
|
||||||
|
" .XXXXXX+++XXXXXo. ",
|
||||||
|
" .XXXXXXX+XXXXXXo. ",
|
||||||
|
" .XXXXXXXXXXXXo. ",
|
||||||
|
" .XXXXX+++XXXoo. ",
|
||||||
|
" .XXXX+++XXoo. ",
|
||||||
|
" .XXXXXXXXo. ",
|
||||||
|
" ..XXXXXXo.. ",
|
||||||
|
" .XXXXXo.. ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@@@ ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@@@ ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@ ",
|
||||||
|
" ### ",
|
||||||
|
" $$$ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,75 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * question_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 21 1",
|
||||||
|
". c Black",
|
||||||
|
"> c #696969",
|
||||||
|
"O c #1F1F00",
|
||||||
|
"+ c #181818",
|
||||||
|
"o c #F6F900",
|
||||||
|
"; c #3F3F00",
|
||||||
|
"$ c #111111",
|
||||||
|
" c None",
|
||||||
|
"& c #202020",
|
||||||
|
"X c #AAAA00",
|
||||||
|
"@ c #949400",
|
||||||
|
": c #303030",
|
||||||
|
"1 c #383838",
|
||||||
|
"% c #2A2A00",
|
||||||
|
", c #404040",
|
||||||
|
"= c #B4B400",
|
||||||
|
"- c #484848",
|
||||||
|
"# c #151500",
|
||||||
|
"< c #9F9F00",
|
||||||
|
"2 c #6A6A00",
|
||||||
|
"* c #353500",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ......... ",
|
||||||
|
" ...XXXXXXX.. ",
|
||||||
|
" ..XXXXoooooXXXO+ ",
|
||||||
|
" ..XXooooooooooooX@.. ",
|
||||||
|
" ..XoooooooooooooooXX#. ",
|
||||||
|
" $%XoooooooooooooooooXX#. ",
|
||||||
|
" &.XoooooooXXXXXXooooooXX.. ",
|
||||||
|
" .XooooooXX.$...$XXoooooX*. ",
|
||||||
|
" $.XoooooX%.$ .*oooooo=.. ",
|
||||||
|
" .XooooooX.. -.XoooooX.. ",
|
||||||
|
" .XoooooX..+ .XoooooX;. ",
|
||||||
|
" ...XXXX..: .XoooooX;. ",
|
||||||
|
" ........ >.XoooooX;. ",
|
||||||
|
" +.XoooooX.. ",
|
||||||
|
" ,.Xoooooo<.. ",
|
||||||
|
" 1#XooooooXO.. ",
|
||||||
|
" &#XooooooX2.. ",
|
||||||
|
" $%XooooooXX.. ",
|
||||||
|
" $%XooooooXX.. ",
|
||||||
|
" $%XooooooXX.. ",
|
||||||
|
" &.XooooooXX.. ",
|
||||||
|
" .XooooooXX.. ",
|
||||||
|
" &.XoooooXX.. ",
|
||||||
|
" ..XooooXX.. ",
|
||||||
|
" ..XooooX... ",
|
||||||
|
" ..XXooXX..& ",
|
||||||
|
" ...XXXXX.. ",
|
||||||
|
" ........ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ....... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXoooXX.. ",
|
||||||
|
" ..XoooooX.. ",
|
||||||
|
" ..XoooooX.. ",
|
||||||
|
" ..XXoooXX.. ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ....... ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * warning_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 9 1",
|
||||||
|
"@ c Black",
|
||||||
|
"o c #A6A800",
|
||||||
|
"+ c #8A8C00",
|
||||||
|
"$ c #B8BA00",
|
||||||
|
" c None",
|
||||||
|
"O c #6E7000",
|
||||||
|
"X c #DCDF00",
|
||||||
|
". c #C00000",
|
||||||
|
"# c #373800",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ..... ",
|
||||||
|
" ...X.. ",
|
||||||
|
" ..XXX.. ",
|
||||||
|
" ...XXX... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXXXXX... ",
|
||||||
|
" ...XXoO+XX.. ",
|
||||||
|
" ..XXXO@#XXX.. ",
|
||||||
|
" ..XXXXO@#XXX... ",
|
||||||
|
" ...XXXXO@#XXXX.. ",
|
||||||
|
" ..XXXXXO@#XXXX... ",
|
||||||
|
" ...XXXXXo@OXXXXX.. ",
|
||||||
|
" ...XXXXXXo@OXXXXXX.. ",
|
||||||
|
" ..XXXXXXX$@OXXXXXX... ",
|
||||||
|
" ...XXXXXXXX@XXXXXXXX.. ",
|
||||||
|
" ...XXXXXXXXXXXXXXXXXX... ",
|
||||||
|
" ..XXXXXXXXXXOXXXXXXXXX.. ",
|
||||||
|
" ...XXXXXXXXXO@#XXXXXXXXX.. ",
|
||||||
|
" ..XXXXXXXXXXX#XXXXXXXXXX... ",
|
||||||
|
" ...XXXXXXXXXXXXXXXXXXXXXXX.. ",
|
||||||
|
" ...XXXXXXXXXXXXXXXXXXXXXXXX... ",
|
||||||
|
" .............................. ",
|
||||||
|
" .............................. ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,60 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * harddisk_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 39 1",
|
||||||
|
"7 c #E3E4E6",
|
||||||
|
"4 c #FFFFFF",
|
||||||
|
"5 c #839CB5",
|
||||||
|
". c #547897",
|
||||||
|
"1 c #4D7492",
|
||||||
|
"@ c #376485",
|
||||||
|
"o c #7A92A3",
|
||||||
|
"u c #D1D9E5",
|
||||||
|
"y c #446A8C",
|
||||||
|
"i c #51B03D",
|
||||||
|
"> c #CAD2DC",
|
||||||
|
"O c #718BA7",
|
||||||
|
"2 c #65839D",
|
||||||
|
"6 c #DCE2EA",
|
||||||
|
"0 c #C3C5C8",
|
||||||
|
"9 c #F5F6F7",
|
||||||
|
": c #EBEBEC",
|
||||||
|
"< c #597B9A",
|
||||||
|
"t c #C6CCD3",
|
||||||
|
" c None",
|
||||||
|
"* c #DFE0E2",
|
||||||
|
"e c #467291",
|
||||||
|
"a c #526E8B",
|
||||||
|
", c #7393AB",
|
||||||
|
"p c #130A0B",
|
||||||
|
"# c #AABFCD",
|
||||||
|
"r c #B4C4D3",
|
||||||
|
"; c #CFCFD0",
|
||||||
|
"X c #6F90A6",
|
||||||
|
"+ c #6A89A2",
|
||||||
|
"- c #D2D3D4",
|
||||||
|
"= c #DCDBDA",
|
||||||
|
"w c #E4E9ED",
|
||||||
|
"q c #C6C8CA",
|
||||||
|
"% c #215579",
|
||||||
|
"$ c #E7E7E7",
|
||||||
|
"3 c #7F97B0",
|
||||||
|
"8 c #C0D1DC",
|
||||||
|
"& c #5D7C93",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" .XoooXO+@ ",
|
||||||
|
" #$$%%%%$$$X ",
|
||||||
|
" &$*==-;$$$& ",
|
||||||
|
" &:>+,<1234o5 ",
|
||||||
|
" ###+67;;78242 ",
|
||||||
|
" &4,49*0q*9we4. ",
|
||||||
|
" &4+49*,,*9wo4. ",
|
||||||
|
"&4%r,67;;782t%4.",
|
||||||
|
"&44468rrrr84444,",
|
||||||
|
"y11111111111111e",
|
||||||
|
"1uu1:::::::::::1",
|
||||||
|
"1uu1::::::::ip:1",
|
||||||
|
"auu&:::::::::::1",
|
||||||
|
"1111111111111111"
|
||||||
|
};
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * helpicon_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"32 32 6 1",
|
||||||
|
" c Gray0",
|
||||||
|
". c Blue",
|
||||||
|
"X c #808080808080",
|
||||||
|
"o c #c0c0c0c0c0c0",
|
||||||
|
"O c Gray100",
|
||||||
|
"+ c None",
|
||||||
|
/* pixels */
|
||||||
|
"+++++++++++XXXXXXXX+++++++++++++",
|
||||||
|
"++++++++XXXoOOOOOOoXXX++++++++++",
|
||||||
|
"++++++XXoOOOOOOOOOOOOoXX++++++++",
|
||||||
|
"+++++XoOOOOOOOOOOOOOOOOoX+++++++",
|
||||||
|
"++++XOOOOOOOOOOOOOOOOOOOO ++++++",
|
||||||
|
"+++XOOOOOOOo......oOOOOOOO +++++",
|
||||||
|
"++XOOOOOOOo.oOO....oOOOOOOO ++++",
|
||||||
|
"+XoOOOOOOO..OOOO....OOOOOOOo +++",
|
||||||
|
"+XOOOOOOOO....OO....OOOOOOOO X++",
|
||||||
|
"XoOOOOOOOO....Oo....OOOOOOOOo X+",
|
||||||
|
"XOOOOOOOOOo..oO....OOOOOOOOOO X+",
|
||||||
|
"XOOOOOOOOOOOOOo...OOOOOOOOOOO XX",
|
||||||
|
"XOOOOOOOOOOOOO...OOOOOOOOOOOO XX",
|
||||||
|
"XOOOOOOOOOOOOO..oOOOOOOOOOOOO XX",
|
||||||
|
"XOOOOOOOOOOOOO..OOOOOOOOOOOOO XX",
|
||||||
|
"XoOOOOOOOOOOOOOOOOOOOOOOOOOOo XX",
|
||||||
|
"+XOOOOOOOOOOOo..oOOOOOOOOOOO XXX",
|
||||||
|
"+XoOOOOOOOOOO....OOOOOOOOOOo XXX",
|
||||||
|
"++XOOOOOOOOOO....OOOOOOOOOO XXX+",
|
||||||
|
"+++ OOOOOOOOOo..oOOOOOOOOO XXXX+",
|
||||||
|
"++++ OOOOOOOOOOOOOOOOOOOO XXXX++",
|
||||||
|
"+++++ oOOOOOOOOOOOOOOOOo XXXX+++",
|
||||||
|
"++++++ oOOOOOOOOOOOOo XXXX++++",
|
||||||
|
"+++++++X oOOOOOOo XXXXX+++++",
|
||||||
|
"++++++++XXX oOOO XXXXXXX++++++",
|
||||||
|
"++++++++++XXXX OOO XXXXX++++++++",
|
||||||
|
"+++++++++++++X OOO XX+++++++++++",
|
||||||
|
"+++++++++++++++ OO XX+++++++++++",
|
||||||
|
"++++++++++++++++ O XX+++++++++++",
|
||||||
|
"+++++++++++++++++ XX+++++++++++",
|
||||||
|
"++++++++++++++++++XXX+++++++++++",
|
||||||
|
"+++++++++++++++++++XX+++++++++++"
|
||||||
|
};
|
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * home_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 3 1",
|
||||||
|
". c Black",
|
||||||
|
"X c #FFFFFF",
|
||||||
|
" c None",
|
||||||
|
/* pixels */
|
||||||
|
" .... ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXXXX. ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXX. ",
|
||||||
|
" .............. ",
|
||||||
|
" .XXXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXXX. ",
|
||||||
|
" .X.....X....X. ",
|
||||||
|
" .X. .X. .X. ",
|
||||||
|
" .X. .X. .X. ",
|
||||||
|
" .X.....X. .X. ",
|
||||||
|
" .XXXXXXX. .X. ",
|
||||||
|
" ......... ... "
|
||||||
|
};
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * htmbook_xpm[] = {
|
||||||
|
"16 16 6 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c #000080",
|
||||||
|
"o c #c0c0c0",
|
||||||
|
"O c #808080",
|
||||||
|
"+ c Gray100",
|
||||||
|
" ",
|
||||||
|
" .. ",
|
||||||
|
" ..XX. ",
|
||||||
|
" ..XXXXX. ",
|
||||||
|
" ..XXXXXXXX. ",
|
||||||
|
".oXXXXXXXXXX. ",
|
||||||
|
".XoXXXXXXXXXX. ",
|
||||||
|
".XXoXXXXXXXXXX. ",
|
||||||
|
".XXXoXXXXXXXXX..",
|
||||||
|
".XXXXoXXXXXX..O ",
|
||||||
|
" .XXXXoXXX..O+O ",
|
||||||
|
" .XXXXo..O++o..",
|
||||||
|
" .XXX.O+++o.. ",
|
||||||
|
" .XX.o+o.. ",
|
||||||
|
" .X.o.. ",
|
||||||
|
" ... "};
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * htmfoldr_xpm[] = {
|
||||||
|
"16 16 6 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c #000080",
|
||||||
|
"o c #c0c0c0",
|
||||||
|
"O c #808080",
|
||||||
|
"+ c Gray100",
|
||||||
|
" ",
|
||||||
|
" .. ",
|
||||||
|
" ..XX. ",
|
||||||
|
" ..XXXXX. ",
|
||||||
|
" ..XXXXXXXX. ",
|
||||||
|
".oXXXXXXXXXX. ",
|
||||||
|
".XoXXXXXXXXXX. ",
|
||||||
|
".XXoXXXXXXXXXX. ",
|
||||||
|
".XXXoXXXXXXXXX..",
|
||||||
|
".XXXXoXXXXXX..O ",
|
||||||
|
" .XXXXoXXX..O+O ",
|
||||||
|
" .XXXXo..O++o..",
|
||||||
|
" .XXX.O+++o.. ",
|
||||||
|
" .XX.o+o.. ",
|
||||||
|
" .X.o.. ",
|
||||||
|
" ... "};
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * htmoptns_xpm[] = {
|
||||||
|
"16 15 2 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
" ",
|
||||||
|
" .. ",
|
||||||
|
" ... ",
|
||||||
|
" .... ",
|
||||||
|
" . ... ",
|
||||||
|
" .. ... ",
|
||||||
|
" . .. ",
|
||||||
|
" .. ... ",
|
||||||
|
" . .. ",
|
||||||
|
" ......... ",
|
||||||
|
" .. ... ",
|
||||||
|
" . ... ",
|
||||||
|
" .. ... ",
|
||||||
|
" .... ....... ",
|
||||||
|
" "};
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * htmpage_xpm[] = {
|
||||||
|
"16 16 4 1",
|
||||||
|
" c None",
|
||||||
|
". c #808080",
|
||||||
|
"X c Gray100",
|
||||||
|
"o c Black",
|
||||||
|
" ",
|
||||||
|
" .......... ",
|
||||||
|
" .XXXXXXXX.. ",
|
||||||
|
" .XXXXXXXXooo ",
|
||||||
|
" .X......XXXo ",
|
||||||
|
" .XXXXXXXXXXo ",
|
||||||
|
" .X........Xo ",
|
||||||
|
" .XXXXXXXXXXo ",
|
||||||
|
" .X........Xo ",
|
||||||
|
" .XXXXXXXXXXo ",
|
||||||
|
" .X........Xo ",
|
||||||
|
" .XXXXXXXXXXo ",
|
||||||
|
" .X........Xo ",
|
||||||
|
" .XXXXXXXXXXo ",
|
||||||
|
" .XXXXXXXXXXo ",
|
||||||
|
" oooooooooooo "};
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * htmsidep_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 6 1",
|
||||||
|
". c Black",
|
||||||
|
"X c #FFFFFF",
|
||||||
|
"+ c #808080",
|
||||||
|
" c None",
|
||||||
|
"O c #0000C0",
|
||||||
|
"o c #C0C0C0",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" .............. ",
|
||||||
|
" .XXXX.ooooooo. ",
|
||||||
|
" .XOXX.oo...oo. ",
|
||||||
|
" .XXOX.ooooooo. ",
|
||||||
|
" .OOOO.o...+.o. ",
|
||||||
|
" .XXOX.ooooooo. ",
|
||||||
|
" .XOXX.ooooooo. ",
|
||||||
|
" .XXXX.o..+ooo. ",
|
||||||
|
" .XXOX.ooooooo. ",
|
||||||
|
" .XOXX.o...+.o. ",
|
||||||
|
" .OOOO.ooooooo. ",
|
||||||
|
" .XOXX.o.+...o. ",
|
||||||
|
" .XXOX.ooooooo. ",
|
||||||
|
" .............. "
|
||||||
|
};
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * listview_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 4 1",
|
||||||
|
" c Black",
|
||||||
|
". c #FFFFFF",
|
||||||
|
"X c #000084",
|
||||||
|
"o c #848484",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" .............. ",
|
||||||
|
" .XXX.......... ",
|
||||||
|
" .XXX. o o . ",
|
||||||
|
" .XXX.......... ",
|
||||||
|
" .............. ",
|
||||||
|
" .XXX.......... ",
|
||||||
|
" .XXX. o . ",
|
||||||
|
" .XXX.......... ",
|
||||||
|
" .............. ",
|
||||||
|
" .XXX.......... ",
|
||||||
|
" .XXX. o o . ",
|
||||||
|
" .XXX.......... ",
|
||||||
|
" .............. ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,43 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * missimg_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"32 32 5 1",
|
||||||
|
"X c Black",
|
||||||
|
"o c #FFFFFF",
|
||||||
|
" c None",
|
||||||
|
". c #C0C0C0",
|
||||||
|
"O c #E0E0E0",
|
||||||
|
/* pixels */
|
||||||
|
" .............................X ",
|
||||||
|
" .ooooooooooooooooooooooooooooX ",
|
||||||
|
" .ooooooooooooooooooooooooooooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOXOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" XXXOOOOOXX XOOOOOOOOOOOOOOOooX ",
|
||||||
|
" XXXXX XOOOOOOOOOOOOOOooX ",
|
||||||
|
" XOOOXXXOOOOOOOooX ",
|
||||||
|
" XXX XXOOOOOooX ",
|
||||||
|
" XOOOOooX ",
|
||||||
|
" . XOOOooX ",
|
||||||
|
" .. XXOooX ",
|
||||||
|
" .o.. XooX ",
|
||||||
|
" .ooO... XXX ",
|
||||||
|
" .ooOOOO.......... ",
|
||||||
|
" .ooOOOOOOOOOOOOOO.. ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOO.. ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOO......... ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooOOOOOOOOOOOOOOOOOOOOOOOOooX ",
|
||||||
|
" .ooooooooooooooooooooooooooooX ",
|
||||||
|
" .ooooooooooooooooooooooooooooX ",
|
||||||
|
" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "
|
||||||
|
};
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * error_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 4 1",
|
||||||
|
" c None",
|
||||||
|
"X c #242424",
|
||||||
|
"o c #DCDF00",
|
||||||
|
". c #C00000",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" ............. ",
|
||||||
|
" ................. ",
|
||||||
|
" ................... ",
|
||||||
|
" ....................... ",
|
||||||
|
" ......................... ",
|
||||||
|
" ........................... ",
|
||||||
|
" ...........................X ",
|
||||||
|
" .............................X ",
|
||||||
|
" ............................... ",
|
||||||
|
" ...............................X ",
|
||||||
|
" .................................X ",
|
||||||
|
" .................................X ",
|
||||||
|
" .................................XX ",
|
||||||
|
" ...ooooooooooooooooooooooooooo...XX ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....X ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....X ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....XX ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....XX ",
|
||||||
|
" ....ooooooooooooooooooooooooooo....XX ",
|
||||||
|
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||||
|
" ...ooooooooooooooooooooooooooo...XXX ",
|
||||||
|
" .................................XX ",
|
||||||
|
" .................................XX ",
|
||||||
|
" ...............................XXX ",
|
||||||
|
" ...............................XXX ",
|
||||||
|
" .............................XXX ",
|
||||||
|
" ...........................XXXX ",
|
||||||
|
" ...........................XXX ",
|
||||||
|
" .........................XXX ",
|
||||||
|
" .......................XXXX ",
|
||||||
|
" X...................XXXXX ",
|
||||||
|
" X.................XXXXX ",
|
||||||
|
" X.............XXXXX ",
|
||||||
|
" XXXX.....XXXXXXXX ",
|
||||||
|
" XXXXXXXXXXXXX ",
|
||||||
|
" XXXXX ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * info_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 9 1",
|
||||||
|
"$ c Black",
|
||||||
|
"O c #FFFFFF",
|
||||||
|
"@ c #808080",
|
||||||
|
"+ c #000080",
|
||||||
|
"o c #E8EB01",
|
||||||
|
" c None",
|
||||||
|
"X c #FFFF40",
|
||||||
|
"# c #C0C0C0",
|
||||||
|
". c #ABAD01",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXXXXXXXo.. ",
|
||||||
|
" .XXXOXXXXXXXoo. ",
|
||||||
|
" .XOOXXX+XXXXXo. ",
|
||||||
|
" .XOOOXX+++XXXXoo. ",
|
||||||
|
" .XOOXXX+++XXXXXo. ",
|
||||||
|
" .XOOOXXX+++XXXXXXo. ",
|
||||||
|
" .XOOXXXX+++XXXXXXo. ",
|
||||||
|
" .XXXXXXX+++XXXXXXX. ",
|
||||||
|
" .XXXXXXX+++XXXXXXo. ",
|
||||||
|
" .XXXXXXX+++XXXXXoo. ",
|
||||||
|
" .XXXXXX+++XXXXXo. ",
|
||||||
|
" .XXXXXXX+XXXXXXo. ",
|
||||||
|
" .XXXXXXXXXXXXo. ",
|
||||||
|
" .XXXXX+++XXXoo. ",
|
||||||
|
" .XXXX+++XXoo. ",
|
||||||
|
" .XXXXXXXXo. ",
|
||||||
|
" ..XXXXXXo.. ",
|
||||||
|
" .XXXXXo.. ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@@@ ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@@@ ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@ ",
|
||||||
|
" ### ",
|
||||||
|
" $$$ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,75 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * question_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 21 1",
|
||||||
|
". c Black",
|
||||||
|
"> c #696969",
|
||||||
|
"O c #1F1F00",
|
||||||
|
"+ c #181818",
|
||||||
|
"o c #F6F900",
|
||||||
|
"; c #3F3F00",
|
||||||
|
"$ c #111111",
|
||||||
|
" c None",
|
||||||
|
"& c #202020",
|
||||||
|
"X c #AAAA00",
|
||||||
|
"@ c #949400",
|
||||||
|
": c #303030",
|
||||||
|
"1 c #383838",
|
||||||
|
"% c #2A2A00",
|
||||||
|
", c #404040",
|
||||||
|
"= c #B4B400",
|
||||||
|
"- c #484848",
|
||||||
|
"# c #151500",
|
||||||
|
"< c #9F9F00",
|
||||||
|
"2 c #6A6A00",
|
||||||
|
"* c #353500",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ......... ",
|
||||||
|
" ...XXXXXXX.. ",
|
||||||
|
" ..XXXXoooooXXXO+ ",
|
||||||
|
" ..XXooooooooooooX@.. ",
|
||||||
|
" ..XoooooooooooooooXX#. ",
|
||||||
|
" $%XoooooooooooooooooXX#. ",
|
||||||
|
" &.XoooooooXXXXXXooooooXX.. ",
|
||||||
|
" .XooooooXX.$...$XXoooooX*. ",
|
||||||
|
" $.XoooooX%.$ .*oooooo=.. ",
|
||||||
|
" .XooooooX.. -.XoooooX.. ",
|
||||||
|
" .XoooooX..+ .XoooooX;. ",
|
||||||
|
" ...XXXX..: .XoooooX;. ",
|
||||||
|
" ........ >.XoooooX;. ",
|
||||||
|
" +.XoooooX.. ",
|
||||||
|
" ,.Xoooooo<.. ",
|
||||||
|
" 1#XooooooXO.. ",
|
||||||
|
" &#XooooooX2.. ",
|
||||||
|
" $%XooooooXX.. ",
|
||||||
|
" $%XooooooXX.. ",
|
||||||
|
" $%XooooooXX.. ",
|
||||||
|
" &.XooooooXX.. ",
|
||||||
|
" .XooooooXX.. ",
|
||||||
|
" &.XoooooXX.. ",
|
||||||
|
" ..XooooXX.. ",
|
||||||
|
" ..XooooX... ",
|
||||||
|
" ..XXooXX..& ",
|
||||||
|
" ...XXXXX.. ",
|
||||||
|
" ........ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ....... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXoooXX.. ",
|
||||||
|
" ..XoooooX.. ",
|
||||||
|
" ..XoooooX.. ",
|
||||||
|
" ..XXoooXX.. ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ....... ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,63 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * warning_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"48 48 9 1",
|
||||||
|
"@ c Black",
|
||||||
|
"o c #A6A800",
|
||||||
|
"+ c #8A8C00",
|
||||||
|
"$ c #B8BA00",
|
||||||
|
" c None",
|
||||||
|
"O c #6E7000",
|
||||||
|
"X c #DCDF00",
|
||||||
|
". c #C00000",
|
||||||
|
"# c #373800",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" . ",
|
||||||
|
" ... ",
|
||||||
|
" ... ",
|
||||||
|
" ..... ",
|
||||||
|
" ...X.. ",
|
||||||
|
" ..XXX.. ",
|
||||||
|
" ...XXX... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXXXXX... ",
|
||||||
|
" ...XXoO+XX.. ",
|
||||||
|
" ..XXXO@#XXX.. ",
|
||||||
|
" ..XXXXO@#XXX... ",
|
||||||
|
" ...XXXXO@#XXXX.. ",
|
||||||
|
" ..XXXXXO@#XXXX... ",
|
||||||
|
" ...XXXXXo@OXXXXX.. ",
|
||||||
|
" ...XXXXXXo@OXXXXXX.. ",
|
||||||
|
" ..XXXXXXX$@OXXXXXX... ",
|
||||||
|
" ...XXXXXXXX@XXXXXXXX.. ",
|
||||||
|
" ...XXXXXXXXXXXXXXXXXX... ",
|
||||||
|
" ..XXXXXXXXXXOXXXXXXXXX.. ",
|
||||||
|
" ...XXXXXXXXXO@#XXXXXXXXX.. ",
|
||||||
|
" ..XXXXXXXXXXX#XXXXXXXXXX... ",
|
||||||
|
" ...XXXXXXXXXXXXXXXXXXXXXXX.. ",
|
||||||
|
" ...XXXXXXXXXXXXXXXXXXXXXXXX... ",
|
||||||
|
" .............................. ",
|
||||||
|
" .............................. ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * new_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 29 1",
|
||||||
|
"* c #97C4E7",
|
||||||
|
"- c #72A8D2",
|
||||||
|
": c #FFFFFF",
|
||||||
|
"9 c #839CB5",
|
||||||
|
"o c #6B98B8",
|
||||||
|
"X c #5A89A6",
|
||||||
|
"# c #3A749C",
|
||||||
|
", c #D1E5F5",
|
||||||
|
"0 c #85A7BC",
|
||||||
|
"$ c #C3DDF1",
|
||||||
|
"8 c #749BB4",
|
||||||
|
"; c #5F9BC8",
|
||||||
|
" c None",
|
||||||
|
"+ c #538DB3",
|
||||||
|
"= c #85BBE2",
|
||||||
|
"3 c #EFF6FC",
|
||||||
|
"O c #6591AE",
|
||||||
|
"5 c #F7FBFD",
|
||||||
|
"7 c #FAFCFE",
|
||||||
|
"< c #DAEAF7",
|
||||||
|
"4 c #E9F3FA",
|
||||||
|
"6 c #FDFDFE",
|
||||||
|
"1 c #E2EFF8",
|
||||||
|
". c #8EA9BC",
|
||||||
|
"% c #B6D5EE",
|
||||||
|
"& c #A5CCEA",
|
||||||
|
"> c #ACE95B",
|
||||||
|
"2 c #F4F9FD",
|
||||||
|
"@ c #4581AA",
|
||||||
|
/* pixels */
|
||||||
|
" .XoOO+@#. ",
|
||||||
|
" .$$%&*=O-; ",
|
||||||
|
" @@@@$%&*O:*o ",
|
||||||
|
" @>>@$$%&O::*o ",
|
||||||
|
"@@@>>@@@$%OOoO+ ",
|
||||||
|
"@>>>>>>@,$%&*=+ ",
|
||||||
|
"@>>>>>>@<,$%&*+ ",
|
||||||
|
"@@@>>@@@1<,$%&O ",
|
||||||
|
" @>>@2341<,$%O ",
|
||||||
|
" @@@@52341<,$o ",
|
||||||
|
" .:6752341<,8 ",
|
||||||
|
" .::6752341<8 ",
|
||||||
|
" .:::67523419 ",
|
||||||
|
" .::::6752340 ",
|
||||||
|
" ............ "
|
||||||
|
};
|
|
@ -0,0 +1,43 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * new_dir_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 22 1",
|
||||||
|
"X c Black",
|
||||||
|
"> c #9BACC2",
|
||||||
|
"o c #547897",
|
||||||
|
"1 c #7F99B4",
|
||||||
|
"O c #D1D9E5",
|
||||||
|
"< c #EAEDF3",
|
||||||
|
"# c #CAD2DC",
|
||||||
|
"3 c #718BA7",
|
||||||
|
"@ c #BECAD9",
|
||||||
|
"& c #E1E6EE",
|
||||||
|
"; c #F5F6F7",
|
||||||
|
". c #FFFF00",
|
||||||
|
", c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"% c #D6DFE7",
|
||||||
|
"$ c #D2D9E0",
|
||||||
|
"- c #ADBACE",
|
||||||
|
"= c #EEF1F3",
|
||||||
|
"+ c #B3BFD1",
|
||||||
|
"2 c #7A90AC",
|
||||||
|
": c #A2B3C5",
|
||||||
|
"* c #E5EAF1",
|
||||||
|
/* pixels */
|
||||||
|
" .X .XX.",
|
||||||
|
" ooooo .X.X. ",
|
||||||
|
" oOOOOo XX...XX",
|
||||||
|
" oooooooo.......",
|
||||||
|
" o+@#$%&*XX...XX",
|
||||||
|
" o+@#$%&*=.X.X. ",
|
||||||
|
" o-+@#O%&.X;.X .",
|
||||||
|
" o:-+@#O%&*=;o ",
|
||||||
|
" o>:-+@#O%&*=o ",
|
||||||
|
" o,>:-+@#O%&<o ",
|
||||||
|
" o1,>:-+@#O%&o ",
|
||||||
|
" o21,>:-+@#O%o ",
|
||||||
|
" o321,>:-+@#Oo ",
|
||||||
|
" ooooooooooooo ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,46 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * paste_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 25 1",
|
||||||
|
"< c #FEECE4",
|
||||||
|
"> c #FEE3D7",
|
||||||
|
"O c #FFFFFF",
|
||||||
|
"o c #7B767D",
|
||||||
|
"% c #F79586",
|
||||||
|
"& c #CAE1F3",
|
||||||
|
"@ c #F08B62",
|
||||||
|
"# c #FCCBB8",
|
||||||
|
"- c #FDD8C9",
|
||||||
|
"4 c #FFF8F4",
|
||||||
|
"5 c #FFF5F0",
|
||||||
|
" c None",
|
||||||
|
"$ c #F8AA8F",
|
||||||
|
", c #EFF6FC",
|
||||||
|
"1 c #F7FBFD",
|
||||||
|
"2 c #FAFCFE",
|
||||||
|
"; c #DAEAF7",
|
||||||
|
": c #E9F3FA",
|
||||||
|
"6 c #FFFAF8",
|
||||||
|
". c #3C78A6",
|
||||||
|
"3 c #FFF1ED",
|
||||||
|
"X c #9B8687",
|
||||||
|
"+ c #FBBCA4",
|
||||||
|
"* c #B6D5EE",
|
||||||
|
"= c #F4F9FD",
|
||||||
|
/* pixels */
|
||||||
|
" ...... ",
|
||||||
|
" .XoOOOOoo. ",
|
||||||
|
".+XOOOOOOX@. ",
|
||||||
|
".+XXXXXXXX@. ",
|
||||||
|
".#++$$%@..... ",
|
||||||
|
".##++$$%.&*.=. ",
|
||||||
|
".-##++$$.;&.==. ",
|
||||||
|
".--##++$.:;.... ",
|
||||||
|
".>--##++.,:;&*. ",
|
||||||
|
".<>--##+.1,:;&. ",
|
||||||
|
".<<>--##.21,:;. ",
|
||||||
|
".3<<>--#.O21=:. ",
|
||||||
|
".45<<>--....... ",
|
||||||
|
".6453<>----. ",
|
||||||
|
"............ "
|
||||||
|
};
|
|
@ -0,0 +1,60 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * print_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 39 1",
|
||||||
|
"< c #E3E4E6",
|
||||||
|
"+ c #C3C3C4",
|
||||||
|
"i c #FFFFFF",
|
||||||
|
": c #74879B",
|
||||||
|
"# c #5A89A6",
|
||||||
|
"a c #F1F4F7",
|
||||||
|
"r c #5A809C",
|
||||||
|
"@ c #BDCCD9",
|
||||||
|
"e c #7A92A4",
|
||||||
|
"% c #3F6F93",
|
||||||
|
"t c #9FA2A6",
|
||||||
|
"3 c #939495",
|
||||||
|
"w c #5F666D",
|
||||||
|
"9 c #65839E",
|
||||||
|
"5 c #4A7291",
|
||||||
|
"$ c #4B7F9E",
|
||||||
|
" c None",
|
||||||
|
"O c #DFE0E2",
|
||||||
|
"o c #F3F3F3",
|
||||||
|
"; c #84A5BB",
|
||||||
|
"& c #467291",
|
||||||
|
". c #7897AD",
|
||||||
|
"* c #407598",
|
||||||
|
"4 c #CFCFD0",
|
||||||
|
"7 c #6F90A6",
|
||||||
|
"y c #6A89A2",
|
||||||
|
"0 c #AAADB2",
|
||||||
|
"1 c #D2D3D4",
|
||||||
|
"u c #4F7592",
|
||||||
|
", c #BCBDBE",
|
||||||
|
"p c #57778E",
|
||||||
|
"q c #979BA0",
|
||||||
|
"2 c #ABABAC",
|
||||||
|
"- c #E7E7E7",
|
||||||
|
"= c #D6DEE6",
|
||||||
|
"> c #9FA0A0",
|
||||||
|
"8 c #829EB5",
|
||||||
|
"X c #8FB0C3",
|
||||||
|
"6 c #5D7C93",
|
||||||
|
/* pixels */
|
||||||
|
" .XXXXXXXX ",
|
||||||
|
" .oooooooX ",
|
||||||
|
" .OOOOOOOX ",
|
||||||
|
" .+++++++X ",
|
||||||
|
"@##$%&&&&&%*##@ ",
|
||||||
|
"$=-;:>,<123$-=$ ",
|
||||||
|
".44.5678.96$44. ",
|
||||||
|
"7,,,,,,,,,,,,,7 ",
|
||||||
|
"900qwwwwwwwe009 ",
|
||||||
|
"rtt9ryyyyyyuttr ",
|
||||||
|
"6qq6iiiiiii%qq6 ",
|
||||||
|
"633paiiiiii%336 ",
|
||||||
|
"XXX*iiiiiii%XXX ",
|
||||||
|
" 6iiiiiii% ",
|
||||||
|
" $XXXXXXX# "
|
||||||
|
};
|
|
@ -0,0 +1,90 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * quit_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 69 1",
|
||||||
|
"@ c Black",
|
||||||
|
"i c #9AEA53",
|
||||||
|
"D c #7E9BB1",
|
||||||
|
"H c #839FB4",
|
||||||
|
", c #B7C7D3",
|
||||||
|
"8 c #BCCBD6",
|
||||||
|
"7 c #C1CFDA",
|
||||||
|
"v c #92ABBD",
|
||||||
|
"- c #D0DBE2",
|
||||||
|
"O c #547897",
|
||||||
|
"+ c #376485",
|
||||||
|
"L c #7090A8",
|
||||||
|
"t c #AEC0CE",
|
||||||
|
"g c #B3C4D1",
|
||||||
|
"S c #84A0B4",
|
||||||
|
"G c #89A4B8",
|
||||||
|
"> c #BDCCD7",
|
||||||
|
"F c #5A809C",
|
||||||
|
"2 c #C2D0DA",
|
||||||
|
"k c #93ACBE",
|
||||||
|
"= c #D6E0E6",
|
||||||
|
"* c #446A8C",
|
||||||
|
"z c #A5B9C8",
|
||||||
|
"# c #DEE5EB",
|
||||||
|
"0 c #AFC1CE",
|
||||||
|
"r c #B4C5D2",
|
||||||
|
"p c #B9C9D5",
|
||||||
|
"A c #8AA5B8",
|
||||||
|
"M c #92AABD",
|
||||||
|
"j c #A6BAC9",
|
||||||
|
"K c #7796AC",
|
||||||
|
"l c #ABBECC",
|
||||||
|
"o c #E4EAEF",
|
||||||
|
"9 c #B5C6D2",
|
||||||
|
" c None",
|
||||||
|
"; c #C9D6DF",
|
||||||
|
"X c #305F81",
|
||||||
|
"m c #98AFC0",
|
||||||
|
"V c #9DB3C3",
|
||||||
|
"% c #D1DBE3",
|
||||||
|
"u c #A2B7C6",
|
||||||
|
"y c #A7BBCA",
|
||||||
|
"h c #ACBFCD",
|
||||||
|
"4 c #B6C7D3",
|
||||||
|
"w c #C0CFD9",
|
||||||
|
"d c #982106",
|
||||||
|
"B c #85A0B5",
|
||||||
|
"6 c #C8D4DE",
|
||||||
|
"c c #99B0C1",
|
||||||
|
"x c #9EB4C4",
|
||||||
|
"$ c #D7E0E7",
|
||||||
|
"q c #A8BCCA",
|
||||||
|
"s c #ADC0CD",
|
||||||
|
"3 c #BCCCD7",
|
||||||
|
"N c #8BA5B9",
|
||||||
|
": c #C4D1DB",
|
||||||
|
"1 c #C9D5DE",
|
||||||
|
"f c #9AB1C2",
|
||||||
|
"n c #A4B9C8",
|
||||||
|
"a c #B3C5D1",
|
||||||
|
". c #215579",
|
||||||
|
"J c #7D9AB0",
|
||||||
|
"& c #829EB5",
|
||||||
|
"e c #BBCAD6",
|
||||||
|
"b c #8CA6B9",
|
||||||
|
"Z c #91AABC",
|
||||||
|
"C c #96AEC0",
|
||||||
|
"< c #CFDAE2",
|
||||||
|
"5 c #AFC2CF",
|
||||||
|
/* pixels */
|
||||||
|
" ..XXXXXXXXXX ",
|
||||||
|
" XoO+X@@@@@@X ",
|
||||||
|
" X#$%&X*@@@@X ",
|
||||||
|
" X=-;:>,X@@@X ",
|
||||||
|
" X<12345X@@@X ",
|
||||||
|
" X67890qX@XXX ",
|
||||||
|
" XwertyuX@XiX ",
|
||||||
|
" XpasddfX++iiX ",
|
||||||
|
" XghjddkXiiiiiX ",
|
||||||
|
" XlzxcvbXiiiiiiX",
|
||||||
|
" XnxmMNBXiiiiiX ",
|
||||||
|
" XVCZASDXXXiiX ",
|
||||||
|
" XXFGHJKX XiX ",
|
||||||
|
" FXXFLX XX ",
|
||||||
|
" XX* "
|
||||||
|
};
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * redo_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 37 1",
|
||||||
|
"4 c #9BACC2",
|
||||||
|
"; c #4C7398",
|
||||||
|
"3 c #547B99",
|
||||||
|
"* c #547897",
|
||||||
|
"# c #5A89A6",
|
||||||
|
"8 c #3A749C",
|
||||||
|
"5 c #5A809C",
|
||||||
|
", c #7F99B4",
|
||||||
|
"& c #3F6F93",
|
||||||
|
"9 c #85A7BC",
|
||||||
|
"+ c #749BB4",
|
||||||
|
"> c #718BA7",
|
||||||
|
"e c #A5B3C8",
|
||||||
|
"w c #BECAD9",
|
||||||
|
": c #65839D",
|
||||||
|
"u c #E1E6EE",
|
||||||
|
"o c #236289",
|
||||||
|
"r c #ADBED2",
|
||||||
|
"= c #597B9A",
|
||||||
|
"2 c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"% c #467291",
|
||||||
|
"1 c #7393AB",
|
||||||
|
"i c #4C809F",
|
||||||
|
"- c #A0BACB",
|
||||||
|
"O c #6591AE",
|
||||||
|
"X c #407598",
|
||||||
|
"6 c #6F90A6",
|
||||||
|
"t c #D2D9E0",
|
||||||
|
"7 c #ADBACE",
|
||||||
|
"@ c #326A8F",
|
||||||
|
"0 c #467A9C",
|
||||||
|
". c #ACC4D3",
|
||||||
|
"< c #7F97B0",
|
||||||
|
"y c #B3BFD1",
|
||||||
|
"q c #A2B3C5",
|
||||||
|
"$ c #8FB0C3",
|
||||||
|
/* pixels */
|
||||||
|
" .XoooO ",
|
||||||
|
" +o@@@@@o# +",
|
||||||
|
" $@%%&@&%%&@ +o",
|
||||||
|
" X*=@+-+@*=;@#&@",
|
||||||
|
" @:=+ @=:=*:@",
|
||||||
|
" &>:$ @:>>>@",
|
||||||
|
" &,<X X>,,,&",
|
||||||
|
" +123 @<2222&",
|
||||||
|
" X44X #@56<44X",
|
||||||
|
" O1748 .9#&o",
|
||||||
|
" 0qwe8 ",
|
||||||
|
" 8rty8 ",
|
||||||
|
" 8wu+ ",
|
||||||
|
" i## ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,44 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * removable_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 23 1",
|
||||||
|
"@ c #C3C3C4",
|
||||||
|
"4 c #FFFFFF",
|
||||||
|
"o c #D5D6D8",
|
||||||
|
"> c #7A92A3",
|
||||||
|
". c #8497A5",
|
||||||
|
"% c #ACAEB2",
|
||||||
|
"2 c #4A7898",
|
||||||
|
": c #DCE2EA",
|
||||||
|
", c #F5F6F7",
|
||||||
|
"= c #EBEBEC",
|
||||||
|
"$ c #B7B7B8",
|
||||||
|
" c None",
|
||||||
|
"X c #DFE0E2",
|
||||||
|
"* c #A6A8AD",
|
||||||
|
"1 c #4C809F",
|
||||||
|
"3 c #407598",
|
||||||
|
"O c #CFCFD0",
|
||||||
|
"; c #9EA2A8",
|
||||||
|
"# c #BCBDBE",
|
||||||
|
"+ c #C6C8CA",
|
||||||
|
"- c #979BA0",
|
||||||
|
"& c #E7E7E7",
|
||||||
|
"< c #8FB0C3",
|
||||||
|
/* pixels */
|
||||||
|
" ......... ",
|
||||||
|
" .XoO+@#$%. ",
|
||||||
|
" .XoO+@#$%. ",
|
||||||
|
" .&XoO+@#$%*. ",
|
||||||
|
" .&XoO+@#$%*. ",
|
||||||
|
" .=&XoO+@#$%*-. ",
|
||||||
|
" .=&XoO+@#$%*;. ",
|
||||||
|
".:=&XoO+@#$%*;>.",
|
||||||
|
".,=&XoO+@#$%*;-.",
|
||||||
|
"<..............<",
|
||||||
|
"<,=&XoO+@#$%%%%.",
|
||||||
|
"<O1111122233*4*.",
|
||||||
|
"<OOOOOOOOOOO***.",
|
||||||
|
" <<<<<<<<<<<<<< ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,24 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * repview_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 3 1",
|
||||||
|
" c Black",
|
||||||
|
"X c #FFFFFF",
|
||||||
|
". c #C0C0C0",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" .............. ",
|
||||||
|
" . . . . ",
|
||||||
|
" .............. ",
|
||||||
|
" .............. ",
|
||||||
|
" XXXXXXXXXXXXXX ",
|
||||||
|
" X X X X ",
|
||||||
|
" XXXXXXXXXXXXXX ",
|
||||||
|
" X X X X ",
|
||||||
|
" XXXXXXXXXXXXXX ",
|
||||||
|
" X X X X ",
|
||||||
|
" XXXXXXXXXXXXXX ",
|
||||||
|
" X X X X ",
|
||||||
|
" XXXXXXXXXXXXXX ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * tick_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"10 10 2 1",
|
||||||
|
". c Gray0",
|
||||||
|
" c None",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ..",
|
||||||
|
" ...",
|
||||||
|
" ... ",
|
||||||
|
".. ... ",
|
||||||
|
"... ... ",
|
||||||
|
" ..... ",
|
||||||
|
" ... ",
|
||||||
|
" . ",
|
||||||
|
" "};
|
|
@ -0,0 +1,47 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * tipicon_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"32 32 9 1",
|
||||||
|
"$ c Black",
|
||||||
|
"O c #FFFFFF",
|
||||||
|
"@ c #808080",
|
||||||
|
"+ c #000080",
|
||||||
|
"o c #E8EB01",
|
||||||
|
" c None",
|
||||||
|
"X c #FFFF40",
|
||||||
|
"# c #C0C0C0",
|
||||||
|
". c #ABAD01",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" ..... ",
|
||||||
|
" ..XXXXX.. ",
|
||||||
|
" ..XXXXXXXXo.. ",
|
||||||
|
" .XXXOXXXXXXXoo. ",
|
||||||
|
" .XOOXXX+XXXXXo. ",
|
||||||
|
" .XOOOXX+++XXXXoo. ",
|
||||||
|
" .XOOXXX+++XXXXXo. ",
|
||||||
|
" .XOOOXXX+++XXXXXXo. ",
|
||||||
|
" .XOOXXXX+++XXXXXXo. ",
|
||||||
|
" .XXXXXXX+++XXXXXXX. ",
|
||||||
|
" .XXXXXXX+++XXXXXXo. ",
|
||||||
|
" .XXXXXXX+++XXXXXoo. ",
|
||||||
|
" .XXXXXX+++XXXXXo. ",
|
||||||
|
" .XXXXXXX+XXXXXXo. ",
|
||||||
|
" .XXXXXXXXXXXXo. ",
|
||||||
|
" .XXXXX+++XXXoo. ",
|
||||||
|
" .XXXX+++XXoo. ",
|
||||||
|
" .XXXXXXXXo. ",
|
||||||
|
" ..XXXXXXo.. ",
|
||||||
|
" .XXXXXo.. ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@@@ ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@@@ ",
|
||||||
|
" @#######@ ",
|
||||||
|
" @@@@@@@ ",
|
||||||
|
" ### ",
|
||||||
|
" $$$ ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * toparent_xpm[] = {
|
||||||
|
"16 15 3 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c Gray100",
|
||||||
|
" ",
|
||||||
|
" .. ",
|
||||||
|
" .XX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXXXX. ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" ....XXXX.... ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX..... ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" .......... ",
|
||||||
|
" "};
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * undo_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"16 15 37 1",
|
||||||
|
"4 c #9BACC2",
|
||||||
|
"* c #4C7398",
|
||||||
|
"2 c #547B99",
|
||||||
|
"- c #547897",
|
||||||
|
"@ c #5A89A6",
|
||||||
|
"8 c #3A749C",
|
||||||
|
"6 c #5A809C",
|
||||||
|
", c #7F99B4",
|
||||||
|
"$ c #3F6F93",
|
||||||
|
"7 c #85A7BC",
|
||||||
|
"+ c #749BB4",
|
||||||
|
"> c #718BA7",
|
||||||
|
"0 c #A5B3C8",
|
||||||
|
"q c #BECAD9",
|
||||||
|
": c #65839D",
|
||||||
|
"u c #E1E6EE",
|
||||||
|
"X c #236289",
|
||||||
|
"y c #ADBED2",
|
||||||
|
"= c #597B9A",
|
||||||
|
"1 c #8DA0B9",
|
||||||
|
" c None",
|
||||||
|
"% c #467291",
|
||||||
|
"3 c #7393AB",
|
||||||
|
"i c #4C809F",
|
||||||
|
"; c #A0BACB",
|
||||||
|
". c #6591AE",
|
||||||
|
"o c #407598",
|
||||||
|
"5 c #6F90A6",
|
||||||
|
"t c #D2D9E0",
|
||||||
|
"9 c #ADBACE",
|
||||||
|
"# c #326A8F",
|
||||||
|
"e c #467A9C",
|
||||||
|
"O c #ACC4D3",
|
||||||
|
"< c #7F97B0",
|
||||||
|
"r c #B3BFD1",
|
||||||
|
"w c #A2B3C5",
|
||||||
|
"& c #8FB0C3",
|
||||||
|
/* pixels */
|
||||||
|
" .XXXoO ",
|
||||||
|
"+ @X#####X+ ",
|
||||||
|
"X+ #$%%$#$%%#& ",
|
||||||
|
"#$@#*=-#+;+#=-o ",
|
||||||
|
"#:-=:=# +=:# ",
|
||||||
|
"#>>>:# &:>$ ",
|
||||||
|
"$,,,>o o<,$ ",
|
||||||
|
"$1111<# 213+ ",
|
||||||
|
"o44<56#@ o44o ",
|
||||||
|
"X$@7O 8493. ",
|
||||||
|
" 80qwe ",
|
||||||
|
" 8rty8 ",
|
||||||
|
" +uq8 ",
|
||||||
|
" @@i ",
|
||||||
|
" "
|
||||||
|
};
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * up_xpm[] = {
|
||||||
|
"16 15 3 1",
|
||||||
|
" c None",
|
||||||
|
". c Black",
|
||||||
|
"X c Gray100",
|
||||||
|
" ",
|
||||||
|
" .. ",
|
||||||
|
" .XX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXXXX. ",
|
||||||
|
" .XXXXXXXX. ",
|
||||||
|
" ....XXXX.... ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" .XXXX. ",
|
||||||
|
" ...... ",
|
||||||
|
" "};
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * wxwin16x16_xpm[] = {
|
||||||
|
"16 16 6 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"X c #000084",
|
||||||
|
"o c #FFFFFF",
|
||||||
|
"O c #FFFF00",
|
||||||
|
"+ c #FF0000",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ....... ",
|
||||||
|
" .XXXXX. ",
|
||||||
|
" .oXXXX. ",
|
||||||
|
" .oXXX.......",
|
||||||
|
".....oXXX.OOOOO.",
|
||||||
|
".+++.XXXX.oOOOO.",
|
||||||
|
".o++......oOOOO.",
|
||||||
|
".o++++. .oOOOO.",
|
||||||
|
".o++++. .OOOOO.",
|
||||||
|
".+++++. .......",
|
||||||
|
"....... ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
|
@ -0,0 +1,41 @@
|
||||||
|
/* XPM */
|
||||||
|
static const char * wxwin32x32_xpm[] = {
|
||||||
|
"32 32 6 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"X c #000084",
|
||||||
|
"o c #FFFFFF",
|
||||||
|
"O c #FFFF00",
|
||||||
|
"+ c #FF0000",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" .............. ",
|
||||||
|
" .XXXXXXXXXXXX. ",
|
||||||
|
" .XXXXXXXXXXXX. ",
|
||||||
|
" .XooXXXXXXXXX. ",
|
||||||
|
" .XooXXXXXXXXX. ",
|
||||||
|
" .XooXXXXXXXXX. ",
|
||||||
|
" .XooXXXXXX..............",
|
||||||
|
" .XooXXXXXX.OOOOOOOOOOOO.",
|
||||||
|
".........XooXXXXXX.OOOOOOOOOOOO.",
|
||||||
|
".+++++++.XooXXXXXX.OooOOOOOOOOO.",
|
||||||
|
".+++++++.XooXXXXXX.OooOOOOOOOOO.",
|
||||||
|
".+oo++++.XXXXXXXXX.OooOOOOOOOOO.",
|
||||||
|
".+oo++++.XXXXXXXXX.OooOOOOOOOOO.",
|
||||||
|
".+oo++++...........OooOOOOOOOOO.",
|
||||||
|
".+oo+++++++++. .OooOOOOOOOOO.",
|
||||||
|
".+oo+++++++++. .OooOOOOOOOOO.",
|
||||||
|
".+oo+++++++++. .OooOOOOOOOOO.",
|
||||||
|
".+oo+++++++++. .OOOOOOOOOOOO.",
|
||||||
|
".+oo+++++++++. .OOOOOOOOOOOO.",
|
||||||
|
".++++++++++++. ..............",
|
||||||
|
".++++++++++++. ",
|
||||||
|
".............. ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" ",
|
||||||
|
" "};
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,177 @@
|
||||||
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
|
<VisualStudioUserFile
|
||||||
|
ProjectType="Visual C++"
|
||||||
|
Version="9,00"
|
||||||
|
ShowAllFiles="false"
|
||||||
|
>
|
||||||
|
<Configurations>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
>
|
||||||
|
<DebugSettings
|
||||||
|
Command=""
|
||||||
|
WorkingDirectory=""
|
||||||
|
CommandArguments=""
|
||||||
|
Attach="false"
|
||||||
|
DebuggerType="3"
|
||||||
|
Remote="1"
|
||||||
|
RemoteMachine="PORTATILE"
|
||||||
|
RemoteCommand=""
|
||||||
|
HttpUrl=""
|
||||||
|
PDBPath=""
|
||||||
|
SQLDebugging=""
|
||||||
|
Environment=""
|
||||||
|
EnvironmentMerge="true"
|
||||||
|
DebuggerFlavor=""
|
||||||
|
MPIRunCommand=""
|
||||||
|
MPIRunArguments=""
|
||||||
|
MPIRunWorkingDirectory=""
|
||||||
|
ApplicationCommand=""
|
||||||
|
ApplicationArguments=""
|
||||||
|
ShimCommand=""
|
||||||
|
MPIAcceptMode=""
|
||||||
|
MPIAcceptFilter=""
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<DebugSettings
|
||||||
|
Command=""
|
||||||
|
WorkingDirectory=""
|
||||||
|
CommandArguments=""
|
||||||
|
Attach="false"
|
||||||
|
DebuggerType="3"
|
||||||
|
Remote="1"
|
||||||
|
RemoteMachine="PORTATILE"
|
||||||
|
RemoteCommand=""
|
||||||
|
HttpUrl=""
|
||||||
|
PDBPath=""
|
||||||
|
SQLDebugging=""
|
||||||
|
Environment=""
|
||||||
|
EnvironmentMerge="true"
|
||||||
|
DebuggerFlavor=""
|
||||||
|
MPIRunCommand=""
|
||||||
|
MPIRunArguments=""
|
||||||
|
MPIRunWorkingDirectory=""
|
||||||
|
ApplicationCommand=""
|
||||||
|
ApplicationArguments=""
|
||||||
|
ShimCommand=""
|
||||||
|
MPIAcceptMode=""
|
||||||
|
MPIAcceptFilter=""
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
>
|
||||||
|
<DebugSettings
|
||||||
|
Command=""
|
||||||
|
WorkingDirectory=""
|
||||||
|
CommandArguments=""
|
||||||
|
Attach="false"
|
||||||
|
DebuggerType="3"
|
||||||
|
Remote="1"
|
||||||
|
RemoteMachine="PORTATILE"
|
||||||
|
RemoteCommand=""
|
||||||
|
HttpUrl=""
|
||||||
|
PDBPath=""
|
||||||
|
SQLDebugging=""
|
||||||
|
Environment=""
|
||||||
|
EnvironmentMerge="true"
|
||||||
|
DebuggerFlavor=""
|
||||||
|
MPIRunCommand=""
|
||||||
|
MPIRunArguments=""
|
||||||
|
MPIRunWorkingDirectory=""
|
||||||
|
ApplicationCommand=""
|
||||||
|
ApplicationArguments=""
|
||||||
|
ShimCommand=""
|
||||||
|
MPIAcceptMode=""
|
||||||
|
MPIAcceptFilter=""
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|x64"
|
||||||
|
>
|
||||||
|
<DebugSettings
|
||||||
|
Command=""
|
||||||
|
WorkingDirectory=""
|
||||||
|
CommandArguments=""
|
||||||
|
Attach="false"
|
||||||
|
DebuggerType="3"
|
||||||
|
Remote="1"
|
||||||
|
RemoteMachine="PORTATILE"
|
||||||
|
RemoteCommand=""
|
||||||
|
HttpUrl=""
|
||||||
|
PDBPath=""
|
||||||
|
SQLDebugging=""
|
||||||
|
Environment=""
|
||||||
|
EnvironmentMerge="true"
|
||||||
|
DebuggerFlavor=""
|
||||||
|
MPIRunCommand=""
|
||||||
|
MPIRunArguments=""
|
||||||
|
MPIRunWorkingDirectory=""
|
||||||
|
ApplicationCommand=""
|
||||||
|
ApplicationArguments=""
|
||||||
|
ShimCommand=""
|
||||||
|
MPIAcceptMode=""
|
||||||
|
MPIAcceptFilter=""
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|Win32"
|
||||||
|
>
|
||||||
|
<DebugSettings
|
||||||
|
Command=""
|
||||||
|
WorkingDirectory=""
|
||||||
|
CommandArguments=""
|
||||||
|
Attach="false"
|
||||||
|
DebuggerType="3"
|
||||||
|
Remote="1"
|
||||||
|
RemoteMachine="PORTATILE"
|
||||||
|
RemoteCommand=""
|
||||||
|
HttpUrl=""
|
||||||
|
PDBPath=""
|
||||||
|
SQLDebugging=""
|
||||||
|
Environment=""
|
||||||
|
EnvironmentMerge="true"
|
||||||
|
DebuggerFlavor=""
|
||||||
|
MPIRunCommand=""
|
||||||
|
MPIRunArguments=""
|
||||||
|
MPIRunWorkingDirectory=""
|
||||||
|
ApplicationCommand=""
|
||||||
|
ApplicationArguments=""
|
||||||
|
ShimCommand=""
|
||||||
|
MPIAcceptMode=""
|
||||||
|
MPIAcceptFilter=""
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="DebugFast|x64"
|
||||||
|
>
|
||||||
|
<DebugSettings
|
||||||
|
Command=""
|
||||||
|
WorkingDirectory=""
|
||||||
|
CommandArguments=""
|
||||||
|
Attach="false"
|
||||||
|
DebuggerType="3"
|
||||||
|
Remote="1"
|
||||||
|
RemoteMachine="PORTATILE"
|
||||||
|
RemoteCommand=""
|
||||||
|
HttpUrl=""
|
||||||
|
PDBPath=""
|
||||||
|
SQLDebugging=""
|
||||||
|
Environment=""
|
||||||
|
EnvironmentMerge="true"
|
||||||
|
DebuggerFlavor=""
|
||||||
|
MPIRunCommand=""
|
||||||
|
MPIRunArguments=""
|
||||||
|
MPIRunWorkingDirectory=""
|
||||||
|
ApplicationCommand=""
|
||||||
|
ApplicationArguments=""
|
||||||
|
ShimCommand=""
|
||||||
|
MPIAcceptMode=""
|
||||||
|
MPIAcceptFilter=""
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
</Configurations>
|
||||||
|
</VisualStudioUserFile>
|
|
@ -0,0 +1,291 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: msvc/wx/msw/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: setup.h 43687 2006-11-27 15:03:59Z VZ $
|
||||||
|
// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// =======================================================
|
||||||
|
// A guide to all the setup.h versions
|
||||||
|
// -------------
|
||||||
|
/* The included setup files are:
|
||||||
|
|
||||||
|
include\msvc\wx\setup.h + This file
|
||||||
|
include\wx\msw\wince\setup.h - Not used in regular builds
|
||||||
|
lib\vc_lib\msw\wx\setup.h + Library configuration, Release and DebugFast builds
|
||||||
|
lib\vc_lib\mswd\wx\setup.h + Library configuration, Debug builds
|
||||||
|
lib\vc_dll\msw\wx\setup.h - Not used, dll version only
|
||||||
|
lib\vc_dll\mswd\wx\setup.h - Not used, dll version only
|
||||||
|
|
||||||
|
These are identical or almost identical and I'm not sure which one that applies
|
||||||
|
in case they are different:
|
||||||
|
|
||||||
|
include\wx\setup.h ?
|
||||||
|
include\wx\msw\setup.h ?
|
||||||
|
include\wx\univ\setup.h ?
|
||||||
|
include\wx\msw\setup0.h - The original msw file, not used
|
||||||
|
include\wx\univ\setup0.h - The original univ file, not used
|
||||||
|
|
||||||
|
The configuration consistency check files:
|
||||||
|
|
||||||
|
include\wx\chkconf.h ?
|
||||||
|
include\wx\msw\chkconf.h ?
|
||||||
|
include\wx\univ\chkconf.h ?
|
||||||
|
include\wx\msw\wince\chkconf.h - Not used in regular builds
|
||||||
|
|
||||||
|
Issues:
|
||||||
|
|
||||||
|
The Debug build will break in CFrame::InitBitmaps() at the ConvertToImage() line
|
||||||
|
with a "assert "wxWidgets Debug Alert, bmp.Ok()" error message, the cause is unknown,
|
||||||
|
to me at least.
|
||||||
|
*/
|
||||||
|
// =============
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// VC++ IDE predefines _DEBUG and _UNICODE for the new projects itself, but
|
||||||
|
// the other symbols (WXUSINGDLL, __WXUNIVERSAL__, ...) should be defined
|
||||||
|
// explicitly!
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#ifdef _UNICODE
|
||||||
|
#ifdef WXUSINGDLL
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#include "../../../lib/vc_dll/mswud/wx/setup.h"
|
||||||
|
#else
|
||||||
|
#include "../../../lib/vc_dll/mswu/wx/setup.h"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#include "../../../lib/vc_lib/mswud/wx/setup.h"
|
||||||
|
#else
|
||||||
|
#include "../../../lib/vc_lib/mswu/wx/setup.h"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#pragma comment(lib,"wxbase28ud")
|
||||||
|
#pragma comment(lib,"wxbase28ud_net")
|
||||||
|
#pragma comment(lib,"wxbase28ud_xml")
|
||||||
|
#if wxUSE_REGEX
|
||||||
|
#pragma comment(lib,"wxregexud")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
#if wxUSE_XML
|
||||||
|
#pragma comment(lib,"wxexpatd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBJPEG
|
||||||
|
#pragma comment(lib,"wxjpegd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBPNG
|
||||||
|
#pragma comment(lib,"wxpngd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBTIFF
|
||||||
|
#pragma comment(lib,"wxtiffd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ZLIB
|
||||||
|
#pragma comment(lib,"wxzlibd")
|
||||||
|
#endif
|
||||||
|
#pragma comment(lib,"wxmsw28ud_adv")
|
||||||
|
#pragma comment(lib,"wxmsw28ud_core")
|
||||||
|
#pragma comment(lib,"wxmsw28ud_html")
|
||||||
|
#if wxUSE_GLCANVAS
|
||||||
|
#pragma comment(lib,"wxmsw28ud_gl")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_DEBUGREPORT
|
||||||
|
#pragma comment(lib,"wxmsw28ud_qa")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_XRC
|
||||||
|
#pragma comment(lib,"wxmsw28ud_xrc")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_AUI
|
||||||
|
#pragma comment(lib,"wxmsw28ud_aui")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_RICHTEXT
|
||||||
|
#pragma comment(lib,"wxmsw28ud_richtext")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_MEDIACTRL
|
||||||
|
#pragma comment(lib,"wxmsw28ud_media")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ODBC
|
||||||
|
#pragma comment(lib,"wxbase28ud_odbc")
|
||||||
|
#endif
|
||||||
|
#endif // wxUSE_GUI
|
||||||
|
#else // release
|
||||||
|
#pragma comment(lib,"wxbase28u")
|
||||||
|
#pragma comment(lib,"wxbase28u_net")
|
||||||
|
#pragma comment(lib,"wxbase28u_xml")
|
||||||
|
#if wxUSE_REGEX
|
||||||
|
#pragma comment(lib,"wxregexu")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
#if wxUSE_XML
|
||||||
|
#pragma comment(lib,"wxexpat")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBJPEG
|
||||||
|
#pragma comment(lib,"wxjpeg")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBPNG
|
||||||
|
#pragma comment(lib,"wxpng")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBTIFF
|
||||||
|
#pragma comment(lib,"wxtiff")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ZLIB
|
||||||
|
#pragma comment(lib,"wxzlib")
|
||||||
|
#endif
|
||||||
|
#pragma comment(lib,"wxmsw28u_adv")
|
||||||
|
#pragma comment(lib,"wxmsw28u_core")
|
||||||
|
#pragma comment(lib,"wxmsw28u_html")
|
||||||
|
#if wxUSE_GLCANVAS
|
||||||
|
#pragma comment(lib,"wxmsw28u_gl")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_DEBUGREPORT
|
||||||
|
#pragma comment(lib,"wxmsw28u_qa")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_XRC
|
||||||
|
#pragma comment(lib,"wxmsw28u_xrc")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_AUI
|
||||||
|
#pragma comment(lib,"wxmsw28u_aui")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_RICHTEXT
|
||||||
|
#pragma comment(lib,"wxmsw28u_richtext")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_MEDIACTRL
|
||||||
|
#pragma comment(lib,"wxmsw28u_media")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ODBC
|
||||||
|
#pragma comment(lib,"wxbase28u_odbc")
|
||||||
|
#endif
|
||||||
|
#endif // wxUSE_GUI
|
||||||
|
#endif // debug/release
|
||||||
|
#else // !_UNICODE
|
||||||
|
#ifdef WXUSINGDLL
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#include "../../../lib/vc_dll/mswd/wx/setup.h"
|
||||||
|
#else
|
||||||
|
#include "../../../lib/vc_dll/msw/wx/setup.h"
|
||||||
|
#endif
|
||||||
|
#else // static lib
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#include "../../../lib/vc_lib/mswd/wx/setup.h"
|
||||||
|
#else
|
||||||
|
#include "../../../lib/vc_lib/msw/wx/setup.h"
|
||||||
|
#endif
|
||||||
|
#endif // shared/static
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#pragma comment(lib,"wxbase28d")
|
||||||
|
#pragma comment(lib,"wxbase28d_net")
|
||||||
|
#pragma comment(lib,"wxbase28d_xml")
|
||||||
|
#if wxUSE_REGEX
|
||||||
|
#pragma comment(lib,"wxregexd")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
#if wxUSE_XML
|
||||||
|
#pragma comment(lib,"wxexpatd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBJPEG
|
||||||
|
#pragma comment(lib,"wxjpegd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBPNG
|
||||||
|
#pragma comment(lib,"wxpngd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBTIFF
|
||||||
|
#pragma comment(lib,"wxtiffd")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ZLIB
|
||||||
|
#pragma comment(lib,"wxzlibd")
|
||||||
|
#endif
|
||||||
|
#pragma comment(lib,"wxmsw28d_adv")
|
||||||
|
#pragma comment(lib,"wxmsw28d_core")
|
||||||
|
#pragma comment(lib,"wxmsw28d_html")
|
||||||
|
#if wxUSE_GLCANVAS
|
||||||
|
#pragma comment(lib,"wxmsw28d_gl")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_DEBUGREPORT
|
||||||
|
#pragma comment(lib,"wxmsw28d_qa")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_XRC
|
||||||
|
#pragma comment(lib,"wxmsw28d_xrc")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_AUI
|
||||||
|
#pragma comment(lib,"wxmsw28d_aui")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_RICHTEXT
|
||||||
|
#pragma comment(lib,"wxmsw28d_richtext")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_MEDIACTRL
|
||||||
|
#pragma comment(lib,"wxmsw28d_media")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ODBC
|
||||||
|
#pragma comment(lib,"wxbase28d_odbc")
|
||||||
|
#endif
|
||||||
|
#endif // wxUSE_GUI
|
||||||
|
#else // release
|
||||||
|
#pragma comment(lib,"wxbase28")
|
||||||
|
#pragma comment(lib,"wxbase28_net")
|
||||||
|
#pragma comment(lib,"wxbase28_xml")
|
||||||
|
#if wxUSE_REGEX
|
||||||
|
#pragma comment(lib,"wxregex")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
#if wxUSE_XML
|
||||||
|
#pragma comment(lib,"wxexpat")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBJPEG
|
||||||
|
#pragma comment(lib,"wxjpeg")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBPNG
|
||||||
|
#pragma comment(lib,"wxpng")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_LIBTIFF
|
||||||
|
#pragma comment(lib,"wxtiff")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ZLIB
|
||||||
|
#pragma comment(lib,"wxzlib")
|
||||||
|
#endif
|
||||||
|
#pragma comment(lib,"wxmsw28_adv")
|
||||||
|
#pragma comment(lib,"wxmsw28_core")
|
||||||
|
#pragma comment(lib,"wxmsw28_html")
|
||||||
|
#if wxUSE_GLCANVAS
|
||||||
|
#pragma comment(lib,"wxmsw28_gl")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_DEBUGREPORT
|
||||||
|
#pragma comment(lib,"wxmsw28_qa")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_XRC
|
||||||
|
#pragma comment(lib,"wxmsw28_xrc")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_AUI
|
||||||
|
#pragma comment(lib,"wxmsw28_aui")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_RICHTEXT
|
||||||
|
#pragma comment(lib,"wxmsw28_richtext")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_MEDIACTRL
|
||||||
|
#pragma comment(lib,"wxmsw28_media")
|
||||||
|
#endif
|
||||||
|
#if wxUSE_ODBC
|
||||||
|
#pragma comment(lib,"wxbase28_odbc")
|
||||||
|
#endif
|
||||||
|
#endif // wxUSE_GUI
|
||||||
|
#endif // debug/release
|
||||||
|
#endif // _UNICODE/!_UNICODE
|
||||||
|
#else
|
||||||
|
#error "This file should only be included when using Microsoft Visual C++"
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,155 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/aboutdlg.h
|
||||||
|
// Purpose: declaration of wxAboutDialog class
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Created: 2006-10-07
|
||||||
|
// RCS-ID: $Id: aboutdlg.h 41813 2006-10-09 16:56:18Z RD $
|
||||||
|
// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_ABOUTDLG_H_
|
||||||
|
#define _WX_ABOUTDLG_H_
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_ABOUTDLG
|
||||||
|
|
||||||
|
#include "wx/app.h"
|
||||||
|
#include "wx/icon.h"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAboutDialogInfo: information shown by the standard "About" dialog
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxAboutDialogInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// all fields are initially uninitialized
|
||||||
|
wxAboutDialogInfo() { }
|
||||||
|
|
||||||
|
// accessors for various simply fields
|
||||||
|
// -----------------------------------
|
||||||
|
|
||||||
|
// name of the program, if not used defaults wxApp::GetAppName()
|
||||||
|
void SetName(const wxString& name) { m_name = name; }
|
||||||
|
wxString GetName() const
|
||||||
|
{ return m_name.empty() ? wxTheApp->GetAppName() : m_name; }
|
||||||
|
|
||||||
|
// version of the program, in free format (but without "version" word)
|
||||||
|
void SetVersion(const wxString& version) { m_version = version; }
|
||||||
|
bool HasVersion() const { return !m_version.empty(); }
|
||||||
|
wxString GetVersion() const { return m_version; }
|
||||||
|
|
||||||
|
// brief, but possibly multiline, description of the program
|
||||||
|
void SetDescription(const wxString& desc) { m_description = desc; }
|
||||||
|
bool HasDescription() const { return !m_description.empty(); }
|
||||||
|
wxString GetDescription() const { return m_description; }
|
||||||
|
|
||||||
|
// short string containing the program copyright information
|
||||||
|
void SetCopyright(const wxString& copyright) { m_copyright = copyright; }
|
||||||
|
bool HasCopyright() const { return !m_copyright.empty(); }
|
||||||
|
wxString GetCopyright() const { return m_copyright; }
|
||||||
|
|
||||||
|
// long, multiline string containing the text of the program licence
|
||||||
|
void SetLicence(const wxString& licence) { m_licence = licence; }
|
||||||
|
void SetLicense(const wxString& licence) { m_licence = licence; }
|
||||||
|
bool HasLicence() const { return !m_licence.empty(); }
|
||||||
|
wxString GetLicence() const { return m_licence; }
|
||||||
|
|
||||||
|
// icon to be shown in the dialog, defaults to the main frame icon
|
||||||
|
void SetIcon(const wxIcon& icon) { m_icon = icon; }
|
||||||
|
bool HasIcon() const { return m_icon.Ok(); }
|
||||||
|
wxIcon GetIcon() const;
|
||||||
|
|
||||||
|
// web site for the program and its description (defaults to URL itself if
|
||||||
|
// empty)
|
||||||
|
void SetWebSite(const wxString& url, const wxString& desc = wxEmptyString)
|
||||||
|
{
|
||||||
|
m_url = url;
|
||||||
|
m_urlDesc = desc.empty() ? url : desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HasWebSite() const { return !m_url.empty(); }
|
||||||
|
|
||||||
|
wxString GetWebSiteURL() const { return m_url; }
|
||||||
|
wxString GetWebSiteDescription() const { return m_urlDesc; }
|
||||||
|
|
||||||
|
// accessors for the arrays
|
||||||
|
// ------------------------
|
||||||
|
|
||||||
|
// the list of developers of the program
|
||||||
|
void SetDevelopers(const wxArrayString& developers)
|
||||||
|
{ m_developers = developers; }
|
||||||
|
void AddDeveloper(const wxString& developer)
|
||||||
|
{ m_developers.push_back(developer); }
|
||||||
|
|
||||||
|
bool HasDevelopers() const { return !m_developers.empty(); }
|
||||||
|
const wxArrayString& GetDevelopers() const { return m_developers; }
|
||||||
|
|
||||||
|
// the list of documentation writers
|
||||||
|
void SetDocWriters(const wxArrayString& docwriters)
|
||||||
|
{ m_docwriters = docwriters; }
|
||||||
|
void AddDocWriter(const wxString& docwriter)
|
||||||
|
{ m_docwriters.push_back(docwriter); }
|
||||||
|
|
||||||
|
bool HasDocWriters() const { return !m_docwriters.empty(); }
|
||||||
|
const wxArrayString& GetDocWriters() const { return m_docwriters; }
|
||||||
|
|
||||||
|
// the list of artists for the program art
|
||||||
|
void SetArtists(const wxArrayString& artists)
|
||||||
|
{ m_artists = artists; }
|
||||||
|
void AddArtist(const wxString& artist)
|
||||||
|
{ m_artists.push_back(artist); }
|
||||||
|
|
||||||
|
bool HasArtists() const { return !m_artists.empty(); }
|
||||||
|
const wxArrayString& GetArtists() const { return m_artists; }
|
||||||
|
|
||||||
|
// the list of translators
|
||||||
|
void SetTranslators(const wxArrayString& translators)
|
||||||
|
{ m_translators = translators; }
|
||||||
|
void AddTranslator(const wxString& translator)
|
||||||
|
{ m_translators.push_back(translator); }
|
||||||
|
|
||||||
|
bool HasTranslators() const { return !m_translators.empty(); }
|
||||||
|
const wxArrayString& GetTranslators() const { return m_translators; }
|
||||||
|
|
||||||
|
|
||||||
|
// implementation only
|
||||||
|
// -------------------
|
||||||
|
|
||||||
|
// "simple" about dialog shows only textual information (with possibly
|
||||||
|
// default icon but without hyperlink nor any long texts such as the
|
||||||
|
// licence text)
|
||||||
|
bool IsSimple() const
|
||||||
|
{ return !HasWebSite() && !HasIcon() && !HasLicence(); }
|
||||||
|
|
||||||
|
// get the description and credits (i.e. all of developers, doc writers,
|
||||||
|
// artists and translators) as a one long multiline string
|
||||||
|
wxString GetDescriptionAndCredits() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxString m_name,
|
||||||
|
m_version,
|
||||||
|
m_description,
|
||||||
|
m_copyright,
|
||||||
|
m_licence;
|
||||||
|
|
||||||
|
wxIcon m_icon;
|
||||||
|
|
||||||
|
wxString m_url,
|
||||||
|
m_urlDesc;
|
||||||
|
|
||||||
|
wxArrayString m_developers,
|
||||||
|
m_docwriters,
|
||||||
|
m_artists,
|
||||||
|
m_translators;
|
||||||
|
};
|
||||||
|
|
||||||
|
// functions to show the about dialog box
|
||||||
|
WXDLLIMPEXP_ADV void wxAboutBox(const wxAboutDialogInfo& info);
|
||||||
|
|
||||||
|
#endif // wxUSE_ABOUTDLG
|
||||||
|
|
||||||
|
#endif // _WX_ABOUTDLG_H_
|
||||||
|
|
|
@ -0,0 +1,171 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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: accel.h 53135 2008-04-12 02:31:04Z VZ $
|
||||||
|
// 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
|
||||||
|
{
|
||||||
|
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_CMD = 0x0008 // Command key on OS X
|
||||||
|
#else
|
||||||
|
wxACCEL_CMD = wxACCEL_CTRL
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// an entry in wxAcceleratorTable corresponds to one accelerator
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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)
|
||||||
|
{
|
||||||
|
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_flags != 0 &&
|
||||||
|
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-separed list of "shift|alt|ctrl"
|
||||||
|
wxString ToString() const;
|
||||||
|
|
||||||
|
// 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:
|
||||||
|
// 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/mac/accel.h"
|
||||||
|
#elif defined(__WXCOCOA__)
|
||||||
|
#include "wx/generic/accel.h"
|
||||||
|
#elif defined(__WXPM__)
|
||||||
|
#include "wx/os2/accel.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern WXDLLEXPORT_DATA(wxAcceleratorTable) wxNullAcceleratorTable;
|
||||||
|
|
||||||
|
#endif // wxUSE_ACCEL
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_ACCEL_H_BASE_
|
|
@ -0,0 +1,377 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/access.h
|
||||||
|
// Purpose: Accessibility classes
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created: 2003-02-12
|
||||||
|
// RCS-ID: $Id: access.h 51246 2008-01-16 12:56:37Z VZ $
|
||||||
|
// Copyright: (c) Julian Smart
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_ACCESSBASE_H_
|
||||||
|
#define _WX_ACCESSBASE_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers we have to include here
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_ACCESSIBILITY
|
||||||
|
|
||||||
|
#include "wx/variant.h"
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
wxACC_FAIL,
|
||||||
|
wxACC_FALSE,
|
||||||
|
wxACC_OK,
|
||||||
|
wxACC_NOT_IMPLEMENTED,
|
||||||
|
wxACC_NOT_SUPPORTED
|
||||||
|
} wxAccStatus;
|
||||||
|
|
||||||
|
// Child ids are integer identifiers from 1 up.
|
||||||
|
// So zero represents 'this' object.
|
||||||
|
#define wxACC_SELF 0
|
||||||
|
|
||||||
|
// Navigation constants
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
wxNAVDIR_DOWN,
|
||||||
|
wxNAVDIR_FIRSTCHILD,
|
||||||
|
wxNAVDIR_LASTCHILD,
|
||||||
|
wxNAVDIR_LEFT,
|
||||||
|
wxNAVDIR_NEXT,
|
||||||
|
wxNAVDIR_PREVIOUS,
|
||||||
|
wxNAVDIR_RIGHT,
|
||||||
|
wxNAVDIR_UP
|
||||||
|
} wxNavDir;
|
||||||
|
|
||||||
|
// Role constants
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
wxROLE_NONE,
|
||||||
|
wxROLE_SYSTEM_ALERT,
|
||||||
|
wxROLE_SYSTEM_ANIMATION,
|
||||||
|
wxROLE_SYSTEM_APPLICATION,
|
||||||
|
wxROLE_SYSTEM_BORDER,
|
||||||
|
wxROLE_SYSTEM_BUTTONDROPDOWN,
|
||||||
|
wxROLE_SYSTEM_BUTTONDROPDOWNGRID,
|
||||||
|
wxROLE_SYSTEM_BUTTONMENU,
|
||||||
|
wxROLE_SYSTEM_CARET,
|
||||||
|
wxROLE_SYSTEM_CELL,
|
||||||
|
wxROLE_SYSTEM_CHARACTER,
|
||||||
|
wxROLE_SYSTEM_CHART,
|
||||||
|
wxROLE_SYSTEM_CHECKBUTTON,
|
||||||
|
wxROLE_SYSTEM_CLIENT,
|
||||||
|
wxROLE_SYSTEM_CLOCK,
|
||||||
|
wxROLE_SYSTEM_COLUMN,
|
||||||
|
wxROLE_SYSTEM_COLUMNHEADER,
|
||||||
|
wxROLE_SYSTEM_COMBOBOX,
|
||||||
|
wxROLE_SYSTEM_CURSOR,
|
||||||
|
wxROLE_SYSTEM_DIAGRAM,
|
||||||
|
wxROLE_SYSTEM_DIAL,
|
||||||
|
wxROLE_SYSTEM_DIALOG,
|
||||||
|
wxROLE_SYSTEM_DOCUMENT,
|
||||||
|
wxROLE_SYSTEM_DROPLIST,
|
||||||
|
wxROLE_SYSTEM_EQUATION,
|
||||||
|
wxROLE_SYSTEM_GRAPHIC,
|
||||||
|
wxROLE_SYSTEM_GRIP,
|
||||||
|
wxROLE_SYSTEM_GROUPING,
|
||||||
|
wxROLE_SYSTEM_HELPBALLOON,
|
||||||
|
wxROLE_SYSTEM_HOTKEYFIELD,
|
||||||
|
wxROLE_SYSTEM_INDICATOR,
|
||||||
|
wxROLE_SYSTEM_LINK,
|
||||||
|
wxROLE_SYSTEM_LIST,
|
||||||
|
wxROLE_SYSTEM_LISTITEM,
|
||||||
|
wxROLE_SYSTEM_MENUBAR,
|
||||||
|
wxROLE_SYSTEM_MENUITEM,
|
||||||
|
wxROLE_SYSTEM_MENUPOPUP,
|
||||||
|
wxROLE_SYSTEM_OUTLINE,
|
||||||
|
wxROLE_SYSTEM_OUTLINEITEM,
|
||||||
|
wxROLE_SYSTEM_PAGETAB,
|
||||||
|
wxROLE_SYSTEM_PAGETABLIST,
|
||||||
|
wxROLE_SYSTEM_PANE,
|
||||||
|
wxROLE_SYSTEM_PROGRESSBAR,
|
||||||
|
wxROLE_SYSTEM_PROPERTYPAGE,
|
||||||
|
wxROLE_SYSTEM_PUSHBUTTON,
|
||||||
|
wxROLE_SYSTEM_RADIOBUTTON,
|
||||||
|
wxROLE_SYSTEM_ROW,
|
||||||
|
wxROLE_SYSTEM_ROWHEADER,
|
||||||
|
wxROLE_SYSTEM_SCROLLBAR,
|
||||||
|
wxROLE_SYSTEM_SEPARATOR,
|
||||||
|
wxROLE_SYSTEM_SLIDER,
|
||||||
|
wxROLE_SYSTEM_SOUND,
|
||||||
|
wxROLE_SYSTEM_SPINBUTTON,
|
||||||
|
wxROLE_SYSTEM_STATICTEXT,
|
||||||
|
wxROLE_SYSTEM_STATUSBAR,
|
||||||
|
wxROLE_SYSTEM_TABLE,
|
||||||
|
wxROLE_SYSTEM_TEXT,
|
||||||
|
wxROLE_SYSTEM_TITLEBAR,
|
||||||
|
wxROLE_SYSTEM_TOOLBAR,
|
||||||
|
wxROLE_SYSTEM_TOOLTIP,
|
||||||
|
wxROLE_SYSTEM_WHITESPACE,
|
||||||
|
wxROLE_SYSTEM_WINDOW
|
||||||
|
} wxAccRole;
|
||||||
|
|
||||||
|
// Object types
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
wxOBJID_WINDOW = 0x00000000,
|
||||||
|
wxOBJID_SYSMENU = 0xFFFFFFFF,
|
||||||
|
wxOBJID_TITLEBAR = 0xFFFFFFFE,
|
||||||
|
wxOBJID_MENU = 0xFFFFFFFD,
|
||||||
|
wxOBJID_CLIENT = 0xFFFFFFFC,
|
||||||
|
wxOBJID_VSCROLL = 0xFFFFFFFB,
|
||||||
|
wxOBJID_HSCROLL = 0xFFFFFFFA,
|
||||||
|
wxOBJID_SIZEGRIP = 0xFFFFFFF9,
|
||||||
|
wxOBJID_CARET = 0xFFFFFFF8,
|
||||||
|
wxOBJID_CURSOR = 0xFFFFFFF7,
|
||||||
|
wxOBJID_ALERT = 0xFFFFFFF6,
|
||||||
|
wxOBJID_SOUND = 0xFFFFFFF5
|
||||||
|
} wxAccObject;
|
||||||
|
|
||||||
|
// Accessible states
|
||||||
|
|
||||||
|
#define wxACC_STATE_SYSTEM_ALERT_HIGH 0x00000001
|
||||||
|
#define wxACC_STATE_SYSTEM_ALERT_MEDIUM 0x00000002
|
||||||
|
#define wxACC_STATE_SYSTEM_ALERT_LOW 0x00000004
|
||||||
|
#define wxACC_STATE_SYSTEM_ANIMATED 0x00000008
|
||||||
|
#define wxACC_STATE_SYSTEM_BUSY 0x00000010
|
||||||
|
#define wxACC_STATE_SYSTEM_CHECKED 0x00000020
|
||||||
|
#define wxACC_STATE_SYSTEM_COLLAPSED 0x00000040
|
||||||
|
#define wxACC_STATE_SYSTEM_DEFAULT 0x00000080
|
||||||
|
#define wxACC_STATE_SYSTEM_EXPANDED 0x00000100
|
||||||
|
#define wxACC_STATE_SYSTEM_EXTSELECTABLE 0x00000200
|
||||||
|
#define wxACC_STATE_SYSTEM_FLOATING 0x00000400
|
||||||
|
#define wxACC_STATE_SYSTEM_FOCUSABLE 0x00000800
|
||||||
|
#define wxACC_STATE_SYSTEM_FOCUSED 0x00001000
|
||||||
|
#define wxACC_STATE_SYSTEM_HOTTRACKED 0x00002000
|
||||||
|
#define wxACC_STATE_SYSTEM_INVISIBLE 0x00004000
|
||||||
|
#define wxACC_STATE_SYSTEM_MARQUEED 0x00008000
|
||||||
|
#define wxACC_STATE_SYSTEM_MIXED 0x00010000
|
||||||
|
#define wxACC_STATE_SYSTEM_MULTISELECTABLE 0x00020000
|
||||||
|
#define wxACC_STATE_SYSTEM_OFFSCREEN 0x00040000
|
||||||
|
#define wxACC_STATE_SYSTEM_PRESSED 0x00080000
|
||||||
|
#define wxACC_STATE_SYSTEM_PROTECTED 0x00100000
|
||||||
|
#define wxACC_STATE_SYSTEM_READONLY 0x00200000
|
||||||
|
#define wxACC_STATE_SYSTEM_SELECTABLE 0x00400000
|
||||||
|
#define wxACC_STATE_SYSTEM_SELECTED 0x00800000
|
||||||
|
#define wxACC_STATE_SYSTEM_SELFVOICING 0x01000000
|
||||||
|
#define wxACC_STATE_SYSTEM_UNAVAILABLE 0x02000000
|
||||||
|
|
||||||
|
// Selection flag
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
wxACC_SEL_NONE = 0,
|
||||||
|
wxACC_SEL_TAKEFOCUS = 1,
|
||||||
|
wxACC_SEL_TAKESELECTION = 2,
|
||||||
|
wxACC_SEL_EXTENDSELECTION = 4,
|
||||||
|
wxACC_SEL_ADDSELECTION = 8,
|
||||||
|
wxACC_SEL_REMOVESELECTION = 16
|
||||||
|
} wxAccSelectionFlags;
|
||||||
|
|
||||||
|
// Accessibility event identifiers
|
||||||
|
|
||||||
|
#define wxACC_EVENT_SYSTEM_SOUND 0x0001
|
||||||
|
#define wxACC_EVENT_SYSTEM_ALERT 0x0002
|
||||||
|
#define wxACC_EVENT_SYSTEM_FOREGROUND 0x0003
|
||||||
|
#define wxACC_EVENT_SYSTEM_MENUSTART 0x0004
|
||||||
|
#define wxACC_EVENT_SYSTEM_MENUEND 0x0005
|
||||||
|
#define wxACC_EVENT_SYSTEM_MENUPOPUPSTART 0x0006
|
||||||
|
#define wxACC_EVENT_SYSTEM_MENUPOPUPEND 0x0007
|
||||||
|
#define wxACC_EVENT_SYSTEM_CAPTURESTART 0x0008
|
||||||
|
#define wxACC_EVENT_SYSTEM_CAPTUREEND 0x0009
|
||||||
|
#define wxACC_EVENT_SYSTEM_MOVESIZESTART 0x000A
|
||||||
|
#define wxACC_EVENT_SYSTEM_MOVESIZEEND 0x000B
|
||||||
|
#define wxACC_EVENT_SYSTEM_CONTEXTHELPSTART 0x000C
|
||||||
|
#define wxACC_EVENT_SYSTEM_CONTEXTHELPEND 0x000D
|
||||||
|
#define wxACC_EVENT_SYSTEM_DRAGDROPSTART 0x000E
|
||||||
|
#define wxACC_EVENT_SYSTEM_DRAGDROPEND 0x000F
|
||||||
|
#define wxACC_EVENT_SYSTEM_DIALOGSTART 0x0010
|
||||||
|
#define wxACC_EVENT_SYSTEM_DIALOGEND 0x0011
|
||||||
|
#define wxACC_EVENT_SYSTEM_SCROLLINGSTART 0x0012
|
||||||
|
#define wxACC_EVENT_SYSTEM_SCROLLINGEND 0x0013
|
||||||
|
#define wxACC_EVENT_SYSTEM_SWITCHSTART 0x0014
|
||||||
|
#define wxACC_EVENT_SYSTEM_SWITCHEND 0x0015
|
||||||
|
#define wxACC_EVENT_SYSTEM_MINIMIZESTART 0x0016
|
||||||
|
#define wxACC_EVENT_SYSTEM_MINIMIZEEND 0x0017
|
||||||
|
#define wxACC_EVENT_OBJECT_CREATE 0x8000
|
||||||
|
#define wxACC_EVENT_OBJECT_DESTROY 0x8001
|
||||||
|
#define wxACC_EVENT_OBJECT_SHOW 0x8002
|
||||||
|
#define wxACC_EVENT_OBJECT_HIDE 0x8003
|
||||||
|
#define wxACC_EVENT_OBJECT_REORDER 0x8004
|
||||||
|
#define wxACC_EVENT_OBJECT_FOCUS 0x8005
|
||||||
|
#define wxACC_EVENT_OBJECT_SELECTION 0x8006
|
||||||
|
#define wxACC_EVENT_OBJECT_SELECTIONADD 0x8007
|
||||||
|
#define wxACC_EVENT_OBJECT_SELECTIONREMOVE 0x8008
|
||||||
|
#define wxACC_EVENT_OBJECT_SELECTIONWITHIN 0x8009
|
||||||
|
#define wxACC_EVENT_OBJECT_STATECHANGE 0x800A
|
||||||
|
#define wxACC_EVENT_OBJECT_LOCATIONCHANGE 0x800B
|
||||||
|
#define wxACC_EVENT_OBJECT_NAMECHANGE 0x800C
|
||||||
|
#define wxACC_EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D
|
||||||
|
#define wxACC_EVENT_OBJECT_VALUECHANGE 0x800E
|
||||||
|
#define wxACC_EVENT_OBJECT_PARENTCHANGE 0x800F
|
||||||
|
#define wxACC_EVENT_OBJECT_HELPCHANGE 0x8010
|
||||||
|
#define wxACC_EVENT_OBJECT_DEFACTIONCHANGE 0x8011
|
||||||
|
#define wxACC_EVENT_OBJECT_ACCELERATORCHANGE 0x8012
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAccessible
|
||||||
|
// All functions return an indication of success, failure, or not implemented.
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxAccessible;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxWindow;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxPoint;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxRect;
|
||||||
|
class WXDLLEXPORT wxAccessibleBase : public wxObject
|
||||||
|
{
|
||||||
|
DECLARE_NO_COPY_CLASS(wxAccessibleBase)
|
||||||
|
|
||||||
|
public:
|
||||||
|
wxAccessibleBase(wxWindow* win): m_window(win) {}
|
||||||
|
virtual ~wxAccessibleBase() {}
|
||||||
|
|
||||||
|
// Overridables
|
||||||
|
|
||||||
|
// Can return either a child object, or an integer
|
||||||
|
// representing the child element, starting from 1.
|
||||||
|
// pt is in screen coordinates.
|
||||||
|
virtual wxAccStatus HitTest(const wxPoint& WXUNUSED(pt), int* WXUNUSED(childId), wxAccessible** WXUNUSED(childObject))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns the rectangle for this object (id = 0) or a child element (id > 0).
|
||||||
|
// rect is in screen coordinates.
|
||||||
|
virtual wxAccStatus GetLocation(wxRect& WXUNUSED(rect), int WXUNUSED(elementId))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Navigates from fromId to toId/toObject.
|
||||||
|
virtual wxAccStatus Navigate(wxNavDir WXUNUSED(navDir), int WXUNUSED(fromId),
|
||||||
|
int* WXUNUSED(toId), wxAccessible** WXUNUSED(toObject))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Gets the name of the specified object.
|
||||||
|
virtual wxAccStatus GetName(int WXUNUSED(childId), wxString* WXUNUSED(name))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Gets the number of children.
|
||||||
|
virtual wxAccStatus GetChildCount(int* WXUNUSED(childCount))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Gets the specified child (starting from 1).
|
||||||
|
// If *child is NULL and return value is wxACC_OK,
|
||||||
|
// this means that the child is a simple element and
|
||||||
|
// not an accessible object.
|
||||||
|
virtual wxAccStatus GetChild(int WXUNUSED(childId), wxAccessible** WXUNUSED(child))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Gets the parent, or NULL.
|
||||||
|
virtual wxAccStatus GetParent(wxAccessible** WXUNUSED(parent))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Performs the default action. childId is 0 (the action for this object)
|
||||||
|
// or > 0 (the action for a child).
|
||||||
|
// Return wxACC_NOT_SUPPORTED if there is no default action for this
|
||||||
|
// window (e.g. an edit control).
|
||||||
|
virtual wxAccStatus DoDefaultAction(int WXUNUSED(childId))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Gets the default action for this object (0) or > 0 (the action for a child).
|
||||||
|
// Return wxACC_OK even if there is no action. actionName is the action, or the empty
|
||||||
|
// string if there is no action.
|
||||||
|
// The retrieved string describes the action that is performed on an object,
|
||||||
|
// not what the object does as a result. For example, a toolbar button that prints
|
||||||
|
// a document has a default action of "Press" rather than "Prints the current document."
|
||||||
|
virtual wxAccStatus GetDefaultAction(int WXUNUSED(childId), wxString* WXUNUSED(actionName))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns the description for this object or a child.
|
||||||
|
virtual wxAccStatus GetDescription(int WXUNUSED(childId), wxString* WXUNUSED(description))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns help text for this object or a child, similar to tooltip text.
|
||||||
|
virtual wxAccStatus GetHelpText(int WXUNUSED(childId), wxString* WXUNUSED(helpText))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns the keyboard shortcut for this object or child.
|
||||||
|
// Return e.g. ALT+K
|
||||||
|
virtual wxAccStatus GetKeyboardShortcut(int WXUNUSED(childId), wxString* WXUNUSED(shortcut))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns a role constant.
|
||||||
|
virtual wxAccStatus GetRole(int WXUNUSED(childId), wxAccRole* WXUNUSED(role))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns a state constant.
|
||||||
|
virtual wxAccStatus GetState(int WXUNUSED(childId), long* WXUNUSED(state))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Returns a localized string representing the value for the object
|
||||||
|
// or child.
|
||||||
|
virtual wxAccStatus GetValue(int WXUNUSED(childId), wxString* WXUNUSED(strValue))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Selects the object or child.
|
||||||
|
virtual wxAccStatus Select(int WXUNUSED(childId), wxAccSelectionFlags WXUNUSED(selectFlags))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
// Gets the window with the keyboard focus.
|
||||||
|
// If childId is 0 and child is NULL, no object in
|
||||||
|
// this subhierarchy has the focus.
|
||||||
|
// If this object has the focus, child should be 'this'.
|
||||||
|
virtual wxAccStatus GetFocus(int* WXUNUSED(childId), wxAccessible** WXUNUSED(child))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
|
||||||
|
#if wxUSE_VARIANT
|
||||||
|
// Gets a variant representing the selected children
|
||||||
|
// of this object.
|
||||||
|
// Acceptable values:
|
||||||
|
// - a null variant (IsNull() returns TRUE)
|
||||||
|
// - a list variant (GetType() == wxT("list"))
|
||||||
|
// - an integer representing the selected child element,
|
||||||
|
// or 0 if this object is selected (GetType() == wxT("long"))
|
||||||
|
// - a "void*" pointer to a wxAccessible child object
|
||||||
|
virtual wxAccStatus GetSelections(wxVariant* WXUNUSED(selections))
|
||||||
|
{ return wxACC_NOT_IMPLEMENTED; }
|
||||||
|
#endif // wxUSE_VARIANT
|
||||||
|
|
||||||
|
// Accessors
|
||||||
|
|
||||||
|
// Returns the window associated with this object.
|
||||||
|
|
||||||
|
wxWindow* GetWindow() { return m_window; }
|
||||||
|
|
||||||
|
// Sets the window associated with this object.
|
||||||
|
|
||||||
|
void SetWindow(wxWindow* window) { m_window = window; }
|
||||||
|
|
||||||
|
// Operations
|
||||||
|
|
||||||
|
// Each platform's implementation must define this
|
||||||
|
// static void NotifyEvent(int eventType, wxWindow* window, wxAccObject objectType,
|
||||||
|
// int objectId);
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
// Data members
|
||||||
|
|
||||||
|
wxWindow* m_window;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// now include the declaration of the real class
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if defined(__WXMSW__)
|
||||||
|
#include "wx/msw/ole/access.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_ACCESSIBILITY
|
||||||
|
|
||||||
|
#endif // _WX_ACCESSBASE_H_
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: include/wx/afterstd.h
|
||||||
|
// Purpose: #include after STL headers
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 07/07/03
|
||||||
|
// RCS-ID: $Id: afterstd.h 42906 2006-11-01 14:16:42Z VZ $
|
||||||
|
// Copyright: (c) 2003 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
See the comments in beforestd.h.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(__WXMSW__)
|
||||||
|
#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
|
||||||
|
// don't restore this one for VC6, it gives it in each try/catch which is a
|
||||||
|
// bit annoying to say the least
|
||||||
|
#if _MSC_VER >= 0x1300
|
||||||
|
// unreachable code
|
||||||
|
#pragma warning(default:4702)
|
||||||
|
#endif // VC++ >= 7
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/anidecod.h
|
||||||
|
// Purpose: wxANIDecoder, ANI reader for wxImage and wxAnimation
|
||||||
|
// Author: Francesco Montorsi
|
||||||
|
// CVS-ID: $Id: anidecod.h 45563 2007-04-21 18:17:50Z VZ $
|
||||||
|
// Copyright: (c) 2006 Francesco Montorsi
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_ANIDECOD_H
|
||||||
|
#define _WX_ANIDECOD_H
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_STREAMS && wxUSE_ICO_CUR
|
||||||
|
|
||||||
|
#include "wx/stream.h"
|
||||||
|
#include "wx/image.h"
|
||||||
|
#include "wx/animdecod.h"
|
||||||
|
#include "wx/dynarray.h"
|
||||||
|
|
||||||
|
|
||||||
|
class /*WXDLLEXPORT*/ wxANIFrameInfo;
|
||||||
|
|
||||||
|
WX_DECLARE_EXPORTED_OBJARRAY(wxANIFrameInfo, wxANIFrameInfoArray);
|
||||||
|
WX_DECLARE_EXPORTED_OBJARRAY(wxImage, wxImageArray);
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
// wxANIDecoder class
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxANIDecoder : public wxAnimationDecoder
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// constructor, destructor, etc.
|
||||||
|
wxANIDecoder();
|
||||||
|
~wxANIDecoder();
|
||||||
|
|
||||||
|
|
||||||
|
virtual wxSize GetFrameSize(unsigned int frame) const;
|
||||||
|
virtual wxPoint GetFramePosition(unsigned int frame) const;
|
||||||
|
virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const;
|
||||||
|
virtual long GetDelay(unsigned int frame) const;
|
||||||
|
virtual wxColour GetTransparentColour(unsigned int frame) const;
|
||||||
|
|
||||||
|
// implementation of wxAnimationDecoder's pure virtuals
|
||||||
|
virtual bool CanRead( wxInputStream& stream ) const;
|
||||||
|
virtual bool Load( wxInputStream& stream );
|
||||||
|
|
||||||
|
bool ConvertToImage(unsigned int frame, wxImage *image) const;
|
||||||
|
|
||||||
|
wxAnimationDecoder *Clone() const
|
||||||
|
{ return new wxANIDecoder; }
|
||||||
|
wxAnimationType GetType() const
|
||||||
|
{ return wxANIMATION_TYPE_ANI; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
// frames stored as wxImage(s): ANI files are meant to be used mostly for animated
|
||||||
|
// cursors and thus they do not use any optimization to encode differences between
|
||||||
|
// two frames: they are just a list of images to display sequentially.
|
||||||
|
wxImageArray m_images;
|
||||||
|
|
||||||
|
// the info about each image stored in m_images.
|
||||||
|
// NB: m_info.GetCount() may differ from m_images.GetCount()!
|
||||||
|
wxANIFrameInfoArray m_info;
|
||||||
|
|
||||||
|
// this is the wxCURHandler used to load the ICON chunk of the ANI files
|
||||||
|
static wxCURHandler sm_handler;
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxANIDecoder)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // wxUSE_STREAM && wxUSE_ICO_CUR
|
||||||
|
|
||||||
|
#endif // _WX_ANIDECOD_H
|
|
@ -0,0 +1,124 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/animate.h
|
||||||
|
// Purpose: wxAnimation and wxAnimationCtrl
|
||||||
|
// Author: Julian Smart and Guillermo Rodriguez Garcia
|
||||||
|
// Modified by: Francesco Montorsi
|
||||||
|
// Created: 13/8/99
|
||||||
|
// RCS-ID: $Id: animate.h 53135 2008-04-12 02:31:04Z VZ $
|
||||||
|
// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_ANIMATE_H_
|
||||||
|
#define _WX_ANIMATE_H_
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_ANIMATIONCTRL
|
||||||
|
|
||||||
|
#include "wx/animdecod.h"
|
||||||
|
#include "wx/control.h"
|
||||||
|
#include "wx/timer.h"
|
||||||
|
#include "wx/bitmap.h"
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_ADV wxAnimation;
|
||||||
|
|
||||||
|
extern WXDLLIMPEXP_DATA_ADV(wxAnimation) wxNullAnimation;
|
||||||
|
extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxAnimationCtrlNameStr[];
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAnimationBase
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxAnimationBase : public wxGDIObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAnimationBase() {}
|
||||||
|
|
||||||
|
virtual bool IsOk() const = 0;
|
||||||
|
|
||||||
|
// can be -1
|
||||||
|
virtual int GetDelay(unsigned int frame) const = 0;
|
||||||
|
|
||||||
|
virtual unsigned int GetFrameCount() const = 0;
|
||||||
|
virtual wxImage GetFrame(unsigned int frame) const = 0;
|
||||||
|
virtual wxSize GetSize() const = 0;
|
||||||
|
|
||||||
|
virtual bool LoadFile(const wxString& name,
|
||||||
|
wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
|
||||||
|
virtual bool Load(wxInputStream& stream,
|
||||||
|
wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
DECLARE_ABSTRACT_CLASS(wxAnimationBase)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAnimationCtrlBase
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// do not autoresize to the animation's size when SetAnimation() is called
|
||||||
|
#define wxAC_NO_AUTORESIZE (0x0010)
|
||||||
|
|
||||||
|
// default style does not include wxAC_NO_AUTORESIZE, that is, the control
|
||||||
|
// auto-resizes by default to fit the new animation when SetAnimation() is called
|
||||||
|
#define wxAC_DEFAULT_STYLE (wxNO_BORDER)
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxAnimationCtrlBase : public wxControl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAnimationCtrlBase() { }
|
||||||
|
|
||||||
|
// public API
|
||||||
|
virtual bool LoadFile(const wxString& filename,
|
||||||
|
wxAnimationType type = wxANIMATION_TYPE_ANY) = 0;
|
||||||
|
|
||||||
|
virtual void SetAnimation(const wxAnimation &anim) = 0;
|
||||||
|
virtual wxAnimation GetAnimation() const = 0;
|
||||||
|
|
||||||
|
virtual bool Play() = 0;
|
||||||
|
virtual void Stop() = 0;
|
||||||
|
|
||||||
|
virtual bool IsPlaying() const = 0;
|
||||||
|
|
||||||
|
virtual void SetInactiveBitmap(const wxBitmap &bmp);
|
||||||
|
|
||||||
|
// always return the original bitmap set in this control
|
||||||
|
wxBitmap GetInactiveBitmap() const
|
||||||
|
{ return m_bmpStatic; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// the inactive bitmap as it was set by the user
|
||||||
|
wxBitmap m_bmpStatic;
|
||||||
|
|
||||||
|
// the inactive bitmap currently shown in the control
|
||||||
|
// (may differ in the size from m_bmpStatic)
|
||||||
|
wxBitmap m_bmpStaticReal;
|
||||||
|
|
||||||
|
// updates m_bmpStaticReal from m_bmpStatic if needed
|
||||||
|
virtual void UpdateStaticImage();
|
||||||
|
|
||||||
|
// called by SetInactiveBitmap
|
||||||
|
virtual void DisplayStaticImage() = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_ABSTRACT_CLASS(wxAnimationCtrlBase)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// include the platform-specific version of the wxAnimationCtrl class
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__)
|
||||||
|
#include "wx/gtk/animate.h"
|
||||||
|
#else
|
||||||
|
#include "wx/generic/animate.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_ANIMATIONCTRL
|
||||||
|
|
||||||
|
#endif // _WX_ANIMATE_H_
|
|
@ -0,0 +1,146 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/animdecod.h
|
||||||
|
// Purpose: wxAnimationDecoder
|
||||||
|
// Author: Francesco Montorsi
|
||||||
|
// CVS-ID: $Id: animdecod.h 49563 2007-10-31 20:46:21Z VZ $
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxInputStream;
|
||||||
|
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 in on the screen.
|
||||||
|
|
||||||
|
2) wxAnimationDecoders contain the animation data in some internal var.
|
||||||
|
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 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 WXDLLEXPORT wxAnimationDecoder : public wxObjectRefData
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAnimationDecoder()
|
||||||
|
{
|
||||||
|
m_background = wxNullColour;
|
||||||
|
m_nFrames = 0;
|
||||||
|
}
|
||||||
|
virtual ~wxAnimationDecoder() { }
|
||||||
|
|
||||||
|
|
||||||
|
virtual bool Load( wxInputStream& stream ) = 0;
|
||||||
|
virtual bool CanRead( wxInputStream& stream ) const = 0;
|
||||||
|
|
||||||
|
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:
|
||||||
|
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_STREAM
|
||||||
|
#endif // _WX_ANIMDECOD_H
|
||||||
|
|
|
@ -0,0 +1,708 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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: app.h 51592 2008-02-08 08:17:41Z VZ $
|
||||||
|
// 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/build.h"
|
||||||
|
#include "wx/init.h" // we must declare wxEntry()
|
||||||
|
#include "wx/intl.h" // for wxLayoutDirection
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxAppConsole;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxAppTraits;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxCmdLineParser;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxLog;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxMessageOutput;
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxEventLoop;
|
||||||
|
struct WXDLLIMPEXP_FWD_CORE wxVideoMode;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// 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
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAppConsole: wxApp for non-GUI applications
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxAppConsole : public wxEvtHandler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// ctor and dtor
|
||||||
|
wxAppConsole();
|
||||||
|
virtual ~wxAppConsole();
|
||||||
|
|
||||||
|
|
||||||
|
// 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 here only temporary hopefully (FIXME)
|
||||||
|
virtual bool OnInitGui() { return true; }
|
||||||
|
|
||||||
|
// 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() = 0;
|
||||||
|
|
||||||
|
// 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 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
|
||||||
|
{
|
||||||
|
return m_appName.empty() ? m_className : m_appName;
|
||||||
|
}
|
||||||
|
void SetAppName(const wxString& name) { m_appName = 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; }
|
||||||
|
|
||||||
|
|
||||||
|
// 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 façade
|
||||||
|
wxAppTraits *GetTraits();
|
||||||
|
|
||||||
|
// the functions below shouldn't be used now that we have wxAppTraits
|
||||||
|
#if WXWIN_COMPATIBILITY_2_4
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
|
// override this function to create default log target of arbitrary
|
||||||
|
// user-defined class (default implementation creates a wxLogGui
|
||||||
|
// object) -- this log object is used by default by all wxLogXXX()
|
||||||
|
// functions.
|
||||||
|
wxDEPRECATED( virtual wxLog *CreateLogTarget() );
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
|
// similar to CreateLogTarget() but for the global wxMessageOutput
|
||||||
|
// object
|
||||||
|
wxDEPRECATED( virtual wxMessageOutput *CreateMessageOutput() );
|
||||||
|
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_4
|
||||||
|
|
||||||
|
|
||||||
|
// event processing functions
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
// this method allows to filter all the events processed by the program, so
|
||||||
|
// you should try to return quickly from it to avoid slowing down the
|
||||||
|
// program to the crawl
|
||||||
|
//
|
||||||
|
// return value should be -1 to continue with the normal event processing,
|
||||||
|
// or TRUE or FALSE to stop further processing and pretend that the event
|
||||||
|
// had been already processed or won't be processed at all, respectively
|
||||||
|
virtual int FilterEvent(wxEvent& event);
|
||||||
|
|
||||||
|
#if wxUSE_EXCEPTIONS
|
||||||
|
// 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 exception type is lost by now, so if you really want to handle the
|
||||||
|
// exception you should override OnRun() and put a try/catch around
|
||||||
|
// MainLoop() call there or use OnExceptionInMainLoop()
|
||||||
|
virtual void OnUnhandledException() { }
|
||||||
|
#endif // wxUSE_EXCEPTIONS
|
||||||
|
|
||||||
|
// process all events in the wxPendingEvents 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();
|
||||||
|
|
||||||
|
// doesn't do anything in this class, just a hook for GUI wxApp
|
||||||
|
virtual bool Yield(bool WXUNUSED(onlyIfNeeded) = false) { return true; }
|
||||||
|
|
||||||
|
// make sure that idle events are sent again
|
||||||
|
virtual void WakeUpIdle() { }
|
||||||
|
|
||||||
|
// this is just a convenience: by providing its implementation here we
|
||||||
|
// avoid #ifdefs in the code using it
|
||||||
|
static bool IsMainLoopRunning() { return false; }
|
||||||
|
|
||||||
|
|
||||||
|
// debugging support
|
||||||
|
// -----------------
|
||||||
|
|
||||||
|
#ifdef __WXDEBUG__
|
||||||
|
// 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);
|
||||||
|
#endif // __WXDEBUG__
|
||||||
|
|
||||||
|
// check that the wxBuildOptions object (constructed in the application
|
||||||
|
// itself, usually the one from IMPLEMENT_APP() macro) matches the build
|
||||||
|
// options of the library and abort if it doesn't
|
||||||
|
static bool CheckBuildOptions(const char *optionsSignature,
|
||||||
|
const char *componentName);
|
||||||
|
#if WXWIN_COMPATIBILITY_2_4
|
||||||
|
wxDEPRECATED( static bool CheckBuildOptions(const wxBuildOptions& buildOptions) );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
wxChar **argv;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
|
||||||
|
// application info (must be set from the user code)
|
||||||
|
wxString m_vendorName, // vendor name (ACME Inc)
|
||||||
|
m_appName, // app name
|
||||||
|
m_className; // class name
|
||||||
|
|
||||||
|
// the class defining the application behaviour, NULL initially and created
|
||||||
|
// by GetTraits() when first needed
|
||||||
|
wxAppTraits *m_traits;
|
||||||
|
|
||||||
|
|
||||||
|
// the application object is a singleton anyhow, there is no sense in
|
||||||
|
// copying it
|
||||||
|
DECLARE_NO_COPY_CLASS(wxAppConsole)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// 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
|
||||||
|
// -----------------------------------------------------------------
|
||||||
|
|
||||||
|
// return true if we're running main loop, i.e. if the events can
|
||||||
|
// (already) be dispatched
|
||||||
|
static bool IsMainLoopRunning()
|
||||||
|
{
|
||||||
|
wxAppBase *app = wx_static_cast(wxAppBase *, GetInstance());
|
||||||
|
return app && app->m_mainLoop != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// execute the main GUI loop, the function returns when the loop ends
|
||||||
|
virtual int MainLoop();
|
||||||
|
|
||||||
|
// exit the main loop thus terminating the application
|
||||||
|
virtual void Exit();
|
||||||
|
|
||||||
|
// exit the main GUI loop during the next iteration (i.e. it does not
|
||||||
|
// stop the program immediately!)
|
||||||
|
virtual void ExitMainLoop();
|
||||||
|
|
||||||
|
// returns true if there are unprocessed events in the event queue
|
||||||
|
virtual bool Pending();
|
||||||
|
|
||||||
|
// process the first event in the event queue (blocks until an event
|
||||||
|
// appears if there are none currently, use Pending() if this is not
|
||||||
|
// wanted), returns false if the event loop should stop and true
|
||||||
|
// otherwise
|
||||||
|
virtual bool Dispatch();
|
||||||
|
|
||||||
|
// process all currently pending events right now
|
||||||
|
//
|
||||||
|
// it is an error to call Yield() recursively unless the value of
|
||||||
|
// onlyIfNeeded is true
|
||||||
|
//
|
||||||
|
// WARNING: this function is dangerous as it can lead to unexpected
|
||||||
|
// reentrancies (i.e. when called from an event handler it
|
||||||
|
// may result in calling the same event handler again), use
|
||||||
|
// with _extreme_ care or, better, don't use at all!
|
||||||
|
virtual bool Yield(bool onlyIfNeeded = false) = 0;
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
|
||||||
|
// Send idle event to window and all subwindows
|
||||||
|
// Returns true if more idle time is requested.
|
||||||
|
virtual bool SendIdleEvents(wxWindow* win, wxIdleEvent& event);
|
||||||
|
|
||||||
|
|
||||||
|
#if wxUSE_EXCEPTIONS
|
||||||
|
// 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
|
||||||
|
|
||||||
|
|
||||||
|
// 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 wxMGL or wxDFB).
|
||||||
|
virtual wxVideoMode GetDisplayMode() const;
|
||||||
|
// Set display mode to use. This is only used in framebuffer wxWin
|
||||||
|
// ports (such as wxMGL or 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;
|
||||||
|
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// perform standard OnIdle behaviour, ensure that this is always called
|
||||||
|
void OnIdle(wxIdleEvent& event);
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// delete all objects in wxPendingDelete list
|
||||||
|
void DeletePendingObjects();
|
||||||
|
|
||||||
|
// override base class method to use GUI traits
|
||||||
|
virtual wxAppTraits *CreateTraits();
|
||||||
|
|
||||||
|
|
||||||
|
// the main event loop of the application (may be NULL if the loop hasn't
|
||||||
|
// been started yet or has already terminated)
|
||||||
|
wxEventLoop *m_mainLoop;
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxAppBase)
|
||||||
|
};
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
inline bool wxAppBase::Initialized() { return true; }
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
|
#endif // wxUSE_GUI
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// now include the declaration of the real class
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
#if defined(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/app.h"
|
||||||
|
#elif defined(__WXMSW__)
|
||||||
|
#include "wx/msw/app.h"
|
||||||
|
#elif defined(__WXMOTIF__)
|
||||||
|
#include "wx/motif/app.h"
|
||||||
|
#elif defined(__WXMGL__)
|
||||||
|
#include "wx/mgl/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/mac/app.h"
|
||||||
|
#elif defined(__WXCOCOA__)
|
||||||
|
#include "wx/cocoa/app.h"
|
||||||
|
#elif defined(__WXPM__)
|
||||||
|
#include "wx/os2/app.h"
|
||||||
|
#endif
|
||||||
|
#else // !GUI
|
||||||
|
// allow using just wxApp (instead of wxAppConsole) in console programs
|
||||||
|
typedef wxAppConsole wxApp;
|
||||||
|
#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 DECLARE_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 wx_static_cast(wxApp*, wxApp::GetInstance())
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// global functions
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// event loop related functions only work in GUI programs
|
||||||
|
// ------------------------------------------------------
|
||||||
|
|
||||||
|
// Force an exit from main loop
|
||||||
|
extern void WXDLLIMPEXP_BASE wxExit();
|
||||||
|
|
||||||
|
// avoid redeclaring this function here if it had been already declated 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
|
||||||
|
extern bool WXDLLIMPEXP_BASE wxYield();
|
||||||
|
|
||||||
|
#endif // wx_YIELD_DECLARED
|
||||||
|
|
||||||
|
// Yield to other apps/messages
|
||||||
|
extern void WXDLLIMPEXP_BASE 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 IMPLEMENT_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 IMPLEMENT_APP should add this code if required.
|
||||||
|
|
||||||
|
#define IMPLEMENT_WXWIN_MAIN_CONSOLE \
|
||||||
|
int main(int argc, char **argv) { return wxEntry(argc, argv); }
|
||||||
|
|
||||||
|
// port-specific header could have defined it already in some special way
|
||||||
|
#ifndef IMPLEMENT_WXWIN_MAIN
|
||||||
|
#define IMPLEMENT_WXWIN_MAIN IMPLEMENT_WXWIN_MAIN_CONSOLE
|
||||||
|
#endif // defined(IMPLEMENT_WXWIN_MAIN)
|
||||||
|
|
||||||
|
#ifdef __WXUNIVERSAL__
|
||||||
|
#include "wx/univ/theme.h"
|
||||||
|
|
||||||
|
#ifdef wxUNIV_DEFAULT_THEME
|
||||||
|
#define IMPLEMENT_WX_THEME_SUPPORT \
|
||||||
|
WX_USE_THEME(wxUNIV_DEFAULT_THEME);
|
||||||
|
#else
|
||||||
|
#define IMPLEMENT_WX_THEME_SUPPORT
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define IMPLEMENT_WX_THEME_SUPPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Use this macro if you want to define your own main() or WinMain() function
|
||||||
|
// and call wxEntry() from there.
|
||||||
|
#define IMPLEMENT_APP_NO_MAIN(appname) \
|
||||||
|
wxAppConsole *wxCreateApp() \
|
||||||
|
{ \
|
||||||
|
wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \
|
||||||
|
"your program"); \
|
||||||
|
return new appname; \
|
||||||
|
} \
|
||||||
|
wxAppInitializer \
|
||||||
|
wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
|
||||||
|
DECLARE_APP(appname) \
|
||||||
|
appname& wxGetApp() { return *wx_static_cast(appname*, wxApp::GetInstance()); }
|
||||||
|
|
||||||
|
// Same as IMPLEMENT_APP() normally but doesn't include themes support in
|
||||||
|
// wxUniversal builds
|
||||||
|
#define IMPLEMENT_APP_NO_THEMES(appname) \
|
||||||
|
IMPLEMENT_APP_NO_MAIN(appname) \
|
||||||
|
IMPLEMENT_WXWIN_MAIN
|
||||||
|
|
||||||
|
// Use this macro exactly once, the argument is the name of the wxApp-derived
|
||||||
|
// class which is the class of your application.
|
||||||
|
#define IMPLEMENT_APP(appname) \
|
||||||
|
IMPLEMENT_APP_NO_THEMES(appname) \
|
||||||
|
IMPLEMENT_WX_THEME_SUPPORT
|
||||||
|
|
||||||
|
// Same as IMPLEMENT_APP(), but for console applications.
|
||||||
|
#define IMPLEMENT_APP_CONSOLE(appname) \
|
||||||
|
IMPLEMENT_APP_NO_MAIN(appname) \
|
||||||
|
IMPLEMENT_WXWIN_MAIN_CONSOLE
|
||||||
|
|
||||||
|
// this macro can be used multiple times and just allows you to use wxGetApp()
|
||||||
|
// function
|
||||||
|
#define DECLARE_APP(appname) extern appname& wxGetApp();
|
||||||
|
|
||||||
|
|
||||||
|
// declare the stuff defined by IMPLEMENT_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;
|
||||||
|
|
||||||
|
#endif // _WX_APP_H_BASE_
|
|
@ -0,0 +1,272 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/apptrait.h
|
||||||
|
// Purpose: declaration of wxAppTraits and derived classes
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 19.06.2003
|
||||||
|
// RCS-ID: $Id: apptrait.h 49804 2007-11-10 01:09:42Z VZ $
|
||||||
|
// 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 wxObject;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxAppTraits;
|
||||||
|
#if wxUSE_FONTMAP
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxFontMapper;
|
||||||
|
#endif // wxUSE_FONTMAP
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxLog;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxMessageOutput;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxRendererNative;
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxString;
|
||||||
|
|
||||||
|
class GSocketGUIFunctionsTable;
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxAppTraits: this class defines various configurable aspects of wxApp
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_BASE wxStandardPathsBase;
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxAppTraitsBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// needed since this class declares virtual members
|
||||||
|
virtual ~wxAppTraitsBase() { }
|
||||||
|
|
||||||
|
// hooks for creating the global objects, may be overridden by the user
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#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;
|
||||||
|
|
||||||
|
#if wxUSE_STDPATHS
|
||||||
|
// wxStandardPaths object is normally the same for wxBase and wxGUI
|
||||||
|
// except in the case of wxMac and wxCocoa
|
||||||
|
virtual wxStandardPathsBase& GetStandardPaths();
|
||||||
|
#endif // wxUSE_STDPATHS
|
||||||
|
|
||||||
|
// functions abstracting differences between GUI and console modes
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#ifdef __WXDEBUG__
|
||||||
|
// 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;
|
||||||
|
#endif // __WXDEBUG__
|
||||||
|
|
||||||
|
// return true if fprintf(stderr) goes somewhere, false otherwise
|
||||||
|
virtual bool HasStderr() = 0;
|
||||||
|
|
||||||
|
// managing "pending delete" list: in GUI mode we can't immediately delete
|
||||||
|
// some objects because there may be unprocessed events for them and so we
|
||||||
|
// only do it during the next idle loop iteration while this is, of course,
|
||||||
|
// unnecessary in wxBase, so we have a few functions to abstract these
|
||||||
|
// operations
|
||||||
|
|
||||||
|
// add the object to the pending delete list in GUI, delete it immediately
|
||||||
|
// in wxBase
|
||||||
|
virtual void ScheduleForDestroy(wxObject *object) = 0;
|
||||||
|
|
||||||
|
// remove this object from the pending delete list in GUI, do nothing in
|
||||||
|
// wxBase
|
||||||
|
virtual void RemoveFromPendingDelete(wxObject *object) = 0;
|
||||||
|
|
||||||
|
#if wxUSE_SOCKETS
|
||||||
|
// return table of GUI callbacks for GSocket code or NULL in wxBase. This
|
||||||
|
// is needed because networking classes are in their own library and so
|
||||||
|
// they can't directly call GUI functions (the same net library can be
|
||||||
|
// used in both GUI and base apps). To complicate it further, GUI library
|
||||||
|
// ("wxCore") doesn't depend on networking library and so only a functions
|
||||||
|
// table can be passed around
|
||||||
|
virtual GSocketGUIFunctionsTable* GetSocketGUIFunctionsTable() = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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, int *minVer) 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 { return wxEmptyString; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
#if wxUSE_STACKWALKER && defined( __WXDEBUG__ )
|
||||||
|
// utility function: returns the stack frame as a plain wxString
|
||||||
|
virtual wxString GetAssertStackTrace();
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// 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(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/apptbase.h"
|
||||||
|
#elif defined(__WIN32__)
|
||||||
|
#include "wx/msw/apptbase.h"
|
||||||
|
#elif defined(__UNIX__) && !defined(__EMX__)
|
||||||
|
#include "wx/unix/apptbase.h"
|
||||||
|
#elif defined(__WXMAC__)
|
||||||
|
#include "wx/mac/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_LOG
|
||||||
|
virtual wxLog *CreateLogTarget();
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
virtual wxMessageOutput *CreateMessageOutput();
|
||||||
|
#if wxUSE_FONTMAP
|
||||||
|
virtual wxFontMapper *CreateFontMapper();
|
||||||
|
#endif // wxUSE_FONTMAP
|
||||||
|
virtual wxRendererNative *CreateRenderer();
|
||||||
|
#if wxUSE_SOCKETS
|
||||||
|
virtual GSocketGUIFunctionsTable* GetSocketGUIFunctionsTable();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __WXDEBUG__
|
||||||
|
virtual bool ShowAssertDialog(const wxString& msg);
|
||||||
|
#endif // __WXDEBUG__
|
||||||
|
virtual bool HasStderr();
|
||||||
|
|
||||||
|
virtual void ScheduleForDestroy(wxObject *object);
|
||||||
|
virtual void RemoveFromPendingDelete(wxObject *object);
|
||||||
|
|
||||||
|
// the GetToolkitVersion for console application is always the same
|
||||||
|
virtual wxPortId GetToolkitVersion(int *verMaj, int *verMin) 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; }
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxGUIAppTraitsBase: wxAppTraits implementation for the GUI apps
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_GUI
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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();
|
||||||
|
#if wxUSE_SOCKETS
|
||||||
|
virtual GSocketGUIFunctionsTable* GetSocketGUIFunctionsTable();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __WXDEBUG__
|
||||||
|
virtual bool ShowAssertDialog(const wxString& msg);
|
||||||
|
#endif // __WXDEBUG__
|
||||||
|
virtual bool HasStderr();
|
||||||
|
|
||||||
|
virtual void ScheduleForDestroy(wxObject *object);
|
||||||
|
virtual void RemoveFromPendingDelete(wxObject *object);
|
||||||
|
|
||||||
|
virtual bool IsUsingUniversalWidgets() const
|
||||||
|
{
|
||||||
|
#ifdef __WXUNIVERSAL__
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#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(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/apptrait.h"
|
||||||
|
#elif 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(__WXMAC__)
|
||||||
|
#include "wx/mac/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_
|
||||||
|
|
|
@ -0,0 +1,381 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/archive.h
|
||||||
|
// Purpose: Streams for archive formats
|
||||||
|
// Author: Mike Wetherell
|
||||||
|
// RCS-ID: $Id: archive.h 43445 2006-11-16 14:30:20Z MW $
|
||||||
|
// Copyright: (c) 2004 Mike Wetherell
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_ARCHIVE_H__
|
||||||
|
#define _WX_ARCHIVE_H__
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS
|
||||||
|
|
||||||
|
#include "wx/stream.h"
|
||||||
|
#include "wx/filename.h"
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxArchiveNotifier
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxArchiveNotifier
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~wxArchiveNotifier() { }
|
||||||
|
|
||||||
|
virtual void OnEntryUpdated(class wxArchiveEntry& entry) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxArchiveEntry
|
||||||
|
//
|
||||||
|
// Holds an entry's meta data, such as filename and timestamp.
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxArchiveEntry : public wxObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~wxArchiveEntry() { }
|
||||||
|
|
||||||
|
virtual wxDateTime GetDateTime() const = 0;
|
||||||
|
virtual wxFileOffset GetSize() const = 0;
|
||||||
|
virtual wxFileOffset GetOffset() const = 0;
|
||||||
|
virtual bool IsDir() const = 0;
|
||||||
|
virtual bool IsReadOnly() const = 0;
|
||||||
|
virtual wxString GetInternalName() const = 0;
|
||||||
|
virtual wxPathFormat GetInternalFormat() const = 0;
|
||||||
|
virtual wxString GetName(wxPathFormat format = wxPATH_NATIVE) const = 0;
|
||||||
|
|
||||||
|
virtual void SetDateTime(const wxDateTime& dt) = 0;
|
||||||
|
virtual void SetSize(wxFileOffset size) = 0;
|
||||||
|
virtual void SetIsDir(bool isDir = true) = 0;
|
||||||
|
virtual void SetIsReadOnly(bool isReadOnly = true) = 0;
|
||||||
|
virtual void SetName(const wxString& name,
|
||||||
|
wxPathFormat format = wxPATH_NATIVE) = 0;
|
||||||
|
|
||||||
|
wxArchiveEntry *Clone() const { return DoClone(); }
|
||||||
|
|
||||||
|
void SetNotifier(wxArchiveNotifier& notifier);
|
||||||
|
virtual void UnsetNotifier() { m_notifier = NULL; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxArchiveEntry() : m_notifier(NULL) { }
|
||||||
|
wxArchiveEntry(const wxArchiveEntry& e) : wxObject(e), m_notifier(NULL) { }
|
||||||
|
|
||||||
|
virtual void SetOffset(wxFileOffset offset) = 0;
|
||||||
|
virtual wxArchiveEntry* DoClone() const = 0;
|
||||||
|
|
||||||
|
wxArchiveNotifier *GetNotifier() const { return m_notifier; }
|
||||||
|
wxArchiveEntry& operator=(const wxArchiveEntry& entry);
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxArchiveNotifier *m_notifier;
|
||||||
|
|
||||||
|
DECLARE_ABSTRACT_CLASS(wxArchiveEntry)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxArchiveInputStream
|
||||||
|
//
|
||||||
|
// GetNextEntry() returns an wxArchiveEntry object containing the meta-data
|
||||||
|
// for the next entry in the archive (and gives away ownership). Reading from
|
||||||
|
// the wxArchiveInputStream then returns the entry's data. Eof() becomes true
|
||||||
|
// after an attempt has been made to read past the end of the entry's data.
|
||||||
|
//
|
||||||
|
// When there are no more entries, GetNextEntry() returns NULL and sets Eof().
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxArchiveInputStream : public wxFilterInputStream
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef wxArchiveEntry entry_type;
|
||||||
|
|
||||||
|
virtual ~wxArchiveInputStream() { }
|
||||||
|
|
||||||
|
virtual bool OpenEntry(wxArchiveEntry& entry) = 0;
|
||||||
|
virtual bool CloseEntry() = 0;
|
||||||
|
|
||||||
|
wxArchiveEntry *GetNextEntry() { return DoGetNextEntry(); }
|
||||||
|
|
||||||
|
virtual char Peek() { return wxInputStream::Peek(); }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxArchiveInputStream(wxInputStream& stream, wxMBConv& conv);
|
||||||
|
wxArchiveInputStream(wxInputStream *stream, wxMBConv& conv);
|
||||||
|
|
||||||
|
virtual wxArchiveEntry *DoGetNextEntry() = 0;
|
||||||
|
|
||||||
|
wxMBConv& GetConv() const { return m_conv; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxMBConv& m_conv;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxArchiveOutputStream
|
||||||
|
//
|
||||||
|
// PutNextEntry is used to create a new entry in the output archive, then
|
||||||
|
// the entry's data is written to the wxArchiveOutputStream.
|
||||||
|
//
|
||||||
|
// Only one entry can be open for output at a time; another call to
|
||||||
|
// PutNextEntry closes the current entry and begins the next.
|
||||||
|
//
|
||||||
|
// The overload 'bool PutNextEntry(wxArchiveEntry *entry)' takes ownership
|
||||||
|
// of the entry object.
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxArchiveOutputStream : public wxFilterOutputStream
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~wxArchiveOutputStream() { }
|
||||||
|
|
||||||
|
virtual bool PutNextEntry(wxArchiveEntry *entry) = 0;
|
||||||
|
|
||||||
|
virtual bool PutNextEntry(const wxString& name,
|
||||||
|
const wxDateTime& dt = wxDateTime::Now(),
|
||||||
|
wxFileOffset size = wxInvalidOffset) = 0;
|
||||||
|
|
||||||
|
virtual bool PutNextDirEntry(const wxString& name,
|
||||||
|
const wxDateTime& dt = wxDateTime::Now()) = 0;
|
||||||
|
|
||||||
|
virtual bool CopyEntry(wxArchiveEntry *entry,
|
||||||
|
wxArchiveInputStream& stream) = 0;
|
||||||
|
|
||||||
|
virtual bool CopyArchiveMetaData(wxArchiveInputStream& stream) = 0;
|
||||||
|
|
||||||
|
virtual bool CloseEntry() = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxArchiveOutputStream(wxOutputStream& stream, wxMBConv& conv);
|
||||||
|
wxArchiveOutputStream(wxOutputStream *stream, wxMBConv& conv);
|
||||||
|
|
||||||
|
wxMBConv& GetConv() const { return m_conv; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxMBConv& m_conv;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxArchiveIterator
|
||||||
|
//
|
||||||
|
// An input iterator that can be used to transfer an archive's catalog to
|
||||||
|
// a container.
|
||||||
|
|
||||||
|
#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR
|
||||||
|
#include <iterator>
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
template <class X, class Y> inline
|
||||||
|
void _wxSetArchiveIteratorValue(
|
||||||
|
X& val, Y entry, void *WXUNUSED(d))
|
||||||
|
{
|
||||||
|
val = X(entry);
|
||||||
|
}
|
||||||
|
template <class X, class Y, class Z> inline
|
||||||
|
void _wxSetArchiveIteratorValue(
|
||||||
|
std::pair<X, Y>& val, Z entry, Z WXUNUSED(d))
|
||||||
|
{
|
||||||
|
val = std::make_pair(X(entry->GetInternalName()), Y(entry));
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined _MSC_VER && _MSC_VER < 1300
|
||||||
|
template <class Arc, class T = Arc::entry_type*>
|
||||||
|
#else
|
||||||
|
template <class Arc, class T = typename Arc::entry_type*>
|
||||||
|
#endif
|
||||||
|
class wxArchiveIterator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef std::input_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef ptrdiff_t difference_type;
|
||||||
|
typedef T* pointer;
|
||||||
|
typedef T& reference;
|
||||||
|
|
||||||
|
wxArchiveIterator() : m_rep(NULL) { }
|
||||||
|
|
||||||
|
wxArchiveIterator(Arc& arc) {
|
||||||
|
typename Arc::entry_type* entry = arc.GetNextEntry();
|
||||||
|
m_rep = entry ? new Rep(arc, entry) : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxArchiveIterator(const wxArchiveIterator& it) : m_rep(it.m_rep) {
|
||||||
|
if (m_rep)
|
||||||
|
m_rep->AddRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
~wxArchiveIterator() {
|
||||||
|
if (m_rep)
|
||||||
|
m_rep->UnRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
const T& operator *() const {
|
||||||
|
return m_rep->GetValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
const T* operator ->() const {
|
||||||
|
return &**this;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxArchiveIterator& operator =(const wxArchiveIterator& it) {
|
||||||
|
if (it.m_rep)
|
||||||
|
it.m_rep.AddRef();
|
||||||
|
if (m_rep)
|
||||||
|
m_rep.UnRef();
|
||||||
|
m_rep = it.m_rep;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxArchiveIterator& operator ++() {
|
||||||
|
m_rep = m_rep->Next();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxArchiveIterator operator ++(int) {
|
||||||
|
wxArchiveIterator it(*this);
|
||||||
|
++(*this);
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator ==(const wxArchiveIterator& j) const {
|
||||||
|
return m_rep == j.m_rep;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator !=(const wxArchiveIterator& j) const {
|
||||||
|
return !(*this == j);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
class Rep {
|
||||||
|
Arc& m_arc;
|
||||||
|
typename Arc::entry_type* m_entry;
|
||||||
|
T m_value;
|
||||||
|
int m_ref;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Rep(Arc& arc, typename Arc::entry_type* entry)
|
||||||
|
: m_arc(arc), m_entry(entry), m_value(), m_ref(1) { }
|
||||||
|
~Rep()
|
||||||
|
{ delete m_entry; }
|
||||||
|
|
||||||
|
void AddRef() {
|
||||||
|
m_ref++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnRef() {
|
||||||
|
if (--m_ref == 0)
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
|
||||||
|
Rep *Next() {
|
||||||
|
typename Arc::entry_type* entry = m_arc.GetNextEntry();
|
||||||
|
if (!entry) {
|
||||||
|
UnRef();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (m_ref > 1) {
|
||||||
|
m_ref--;
|
||||||
|
return new Rep(m_arc, entry);
|
||||||
|
}
|
||||||
|
delete m_entry;
|
||||||
|
m_entry = entry;
|
||||||
|
m_value = T();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
const T& GetValue() {
|
||||||
|
if (m_entry) {
|
||||||
|
_wxSetArchiveIteratorValue(m_value, m_entry, m_entry);
|
||||||
|
m_entry = NULL;
|
||||||
|
}
|
||||||
|
return m_value;
|
||||||
|
}
|
||||||
|
} *m_rep;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef wxArchiveIterator<wxArchiveInputStream> wxArchiveIter;
|
||||||
|
typedef wxArchiveIterator<wxArchiveInputStream,
|
||||||
|
std::pair<wxString, wxArchiveEntry*> > wxArchivePairIter;
|
||||||
|
|
||||||
|
#endif // wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// wxArchiveClassFactory
|
||||||
|
//
|
||||||
|
// A wxArchiveClassFactory instance for a particular archive type allows
|
||||||
|
// the creation of the other classes that may be needed.
|
||||||
|
|
||||||
|
void WXDLLIMPEXP_BASE wxUseArchiveClasses();
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_BASE wxArchiveClassFactory : public wxFilterClassFactoryBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef wxArchiveEntry entry_type;
|
||||||
|
typedef wxArchiveInputStream instream_type;
|
||||||
|
typedef wxArchiveOutputStream outstream_type;
|
||||||
|
typedef wxArchiveNotifier notifier_type;
|
||||||
|
#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR
|
||||||
|
typedef wxArchiveIter iter_type;
|
||||||
|
typedef wxArchivePairIter pairiter_type;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
virtual ~wxArchiveClassFactory() { }
|
||||||
|
|
||||||
|
wxArchiveEntry *NewEntry() const
|
||||||
|
{ return DoNewEntry(); }
|
||||||
|
wxArchiveInputStream *NewStream(wxInputStream& stream) const
|
||||||
|
{ return DoNewStream(stream); }
|
||||||
|
wxArchiveOutputStream *NewStream(wxOutputStream& stream) const
|
||||||
|
{ return DoNewStream(stream); }
|
||||||
|
wxArchiveInputStream *NewStream(wxInputStream *stream) const
|
||||||
|
{ return DoNewStream(stream); }
|
||||||
|
wxArchiveOutputStream *NewStream(wxOutputStream *stream) const
|
||||||
|
{ return DoNewStream(stream); }
|
||||||
|
|
||||||
|
virtual wxString GetInternalName(
|
||||||
|
const wxString& name,
|
||||||
|
wxPathFormat format = wxPATH_NATIVE) const = 0;
|
||||||
|
|
||||||
|
void SetConv(wxMBConv& conv) { m_pConv = &conv; }
|
||||||
|
wxMBConv& GetConv() const
|
||||||
|
{ if (m_pConv) return *m_pConv; else return wxConvLocal; }
|
||||||
|
|
||||||
|
static const wxArchiveClassFactory *Find(const wxChar *protocol,
|
||||||
|
wxStreamProtocolType type
|
||||||
|
= wxSTREAM_PROTOCOL);
|
||||||
|
|
||||||
|
static const wxArchiveClassFactory *GetFirst();
|
||||||
|
const wxArchiveClassFactory *GetNext() const { return m_next; }
|
||||||
|
|
||||||
|
void PushFront() { Remove(); m_next = sm_first; sm_first = this; }
|
||||||
|
void Remove();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// old compilers don't support covarient returns, so 'Do' methods are
|
||||||
|
// used to simulate them
|
||||||
|
virtual wxArchiveEntry *DoNewEntry() const = 0;
|
||||||
|
virtual wxArchiveInputStream *DoNewStream(wxInputStream& stream) const = 0;
|
||||||
|
virtual wxArchiveOutputStream *DoNewStream(wxOutputStream& stream) const = 0;
|
||||||
|
virtual wxArchiveInputStream *DoNewStream(wxInputStream *stream) const = 0;
|
||||||
|
virtual wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const = 0;
|
||||||
|
|
||||||
|
wxArchiveClassFactory() : m_pConv(NULL), m_next(this) { }
|
||||||
|
wxArchiveClassFactory& operator=(const wxArchiveClassFactory& WXUNUSED(f))
|
||||||
|
{ return *this; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxMBConv *m_pConv;
|
||||||
|
static wxArchiveClassFactory *sm_first;
|
||||||
|
wxArchiveClassFactory *m_next;
|
||||||
|
|
||||||
|
DECLARE_ABSTRACT_CLASS(wxArchiveClassFactory)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS
|
||||||
|
|
||||||
|
#endif // _WX_ARCHIVE_H__
|
|
@ -0,0 +1,120 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/arrimpl.cpp
|
||||||
|
// Purpose: helper file for implementation of dynamic lists
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 16.10.97
|
||||||
|
// RCS-ID: $Id: arrimpl.cpp 34241 2005-05-22 12:10:55Z JS $
|
||||||
|
// Copyright: (c) 1997 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||||
|
// Licence: wxWindows license
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
* Purpose: implements methods of "template" class declared in *
|
||||||
|
* DECLARE_OBJARRAY macro and which couldn't be implemented inline *
|
||||||
|
* (because they need the full definition of type T in scope) *
|
||||||
|
* *
|
||||||
|
* Usage: 1) #include dynarray.h *
|
||||||
|
* 2) WX_DECLARE_OBJARRAY *
|
||||||
|
* 3) #include arrimpl.cpp *
|
||||||
|
* 4) WX_DEFINE_OBJARRAY *
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
// needed to resolve the conflict between global T and macro parameter T
|
||||||
|
|
||||||
|
#define _WX_ERROR_REMOVE2(x) wxT("bad index in ") wxT(#x) wxT("::RemoveAt()")
|
||||||
|
|
||||||
|
// macro implements remaining (not inline) methods of template list
|
||||||
|
// (it's private to this file)
|
||||||
|
#undef _DEFINE_OBJARRAY
|
||||||
|
#define _DEFINE_OBJARRAY(T, name) \
|
||||||
|
name::~name() \
|
||||||
|
{ \
|
||||||
|
Empty(); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
void name::DoCopy(const name& src) \
|
||||||
|
{ \
|
||||||
|
for ( size_t ui = 0; ui < src.size(); ui++ ) \
|
||||||
|
Add(src[ui]); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
name& name::operator=(const name& src) \
|
||||||
|
{ \
|
||||||
|
Empty(); \
|
||||||
|
DoCopy(src); \
|
||||||
|
\
|
||||||
|
return *this; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
name::name(const name& src) : wxArrayPtrVoid() \
|
||||||
|
{ \
|
||||||
|
DoCopy(src); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
void name::DoEmpty() \
|
||||||
|
{ \
|
||||||
|
for ( size_t ui = 0; ui < size(); ui++ ) \
|
||||||
|
delete (T*)base_array::operator[](ui); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
void name::RemoveAt(size_t uiIndex, size_t nRemove) \
|
||||||
|
{ \
|
||||||
|
wxCHECK_RET( uiIndex < size(), _WX_ERROR_REMOVE2(name) ); \
|
||||||
|
\
|
||||||
|
for (size_t i = 0; i < nRemove; i++ ) \
|
||||||
|
delete (T*)base_array::operator[](uiIndex + i); \
|
||||||
|
\
|
||||||
|
base_array::erase(begin() + uiIndex, begin() + uiIndex + nRemove); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
void name::Add(const T& item, size_t nInsert) \
|
||||||
|
{ \
|
||||||
|
if (nInsert == 0) \
|
||||||
|
return; \
|
||||||
|
T* pItem = new T(item); \
|
||||||
|
size_t nOldSize = size(); \
|
||||||
|
if ( pItem != NULL ) \
|
||||||
|
base_array::insert(end(), nInsert, pItem); \
|
||||||
|
for (size_t i = 1; i < nInsert; i++) \
|
||||||
|
base_array::operator[](nOldSize + i) = new T(item); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
void name::Insert(const T& item, size_t uiIndex, size_t nInsert) \
|
||||||
|
{ \
|
||||||
|
if (nInsert == 0) \
|
||||||
|
return; \
|
||||||
|
T* pItem = new T(item); \
|
||||||
|
if ( pItem != NULL ) \
|
||||||
|
base_array::insert(begin() + uiIndex, nInsert, pItem); \
|
||||||
|
for (size_t i = 1; i < nInsert; i++) \
|
||||||
|
base_array::operator[](uiIndex + i) = new T(item); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
int name::Index(const T& Item, bool bFromEnd) const \
|
||||||
|
{ \
|
||||||
|
if ( bFromEnd ) { \
|
||||||
|
if ( size() > 0 ) { \
|
||||||
|
size_t ui = size() - 1; \
|
||||||
|
do { \
|
||||||
|
if ( (T*)base_array::operator[](ui) == &Item ) \
|
||||||
|
return wx_static_cast(int, ui); \
|
||||||
|
ui--; \
|
||||||
|
} \
|
||||||
|
while ( ui != 0 ); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
else { \
|
||||||
|
for( size_t ui = 0; ui < size(); ui++ ) { \
|
||||||
|
if( (T*)base_array::operator[](ui) == &Item ) \
|
||||||
|
return wx_static_cast(int, ui); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
return wxNOT_FOUND; \
|
||||||
|
}
|
||||||
|
|
||||||
|
// redefine the macro so that now it will generate the class implementation
|
||||||
|
// old value would provoke a compile-time error if this file is not included
|
||||||
|
#undef WX_DEFINE_OBJARRAY
|
||||||
|
#define WX_DEFINE_OBJARRAY(name) _DEFINE_OBJARRAY(_wxObjArray##name, name)
|
|
@ -0,0 +1,372 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: include/wx/arrstr.h
|
||||||
|
// Purpose: wxArrayString class
|
||||||
|
// Author: Mattia Barbon and Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 07/07/03
|
||||||
|
// RCS-ID: $Id: arrstr.h 33888 2005-04-26 19:24:12Z MBN $
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
WXDLLIMPEXP_BASE int wxCMPFUNC_CONV wxStringSortAscending(wxString*, wxString*);
|
||||||
|
WXDLLIMPEXP_BASE int wxCMPFUNC_CONV wxStringSortDescending(wxString*, wxString*);
|
||||||
|
|
||||||
|
#if wxUSE_STL
|
||||||
|
|
||||||
|
#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 wxChar** a);
|
||||||
|
wxArrayString(size_t sz, const wxString* a);
|
||||||
|
|
||||||
|
int Index(const wxChar* sz, 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 wxChar* sz, bool bCase = true, bool bFromEnd = false) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
#else // if !wxUSE_STL
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// The string array uses it's knowledge of internal structure of the wxString
|
||||||
|
// class to optimize string storage. Normally, we would store pointers to
|
||||||
|
// string, but as wxString is, in fact, itself a pointer (sizeof(wxString) is
|
||||||
|
// sizeof(char *)) we store these pointers instead. The cast to "wxString *" is
|
||||||
|
// really all we need to turn such pointer into a string!
|
||||||
|
//
|
||||||
|
// Of course, it can be called a dirty hack, but we use twice less memory and
|
||||||
|
// this approach is also more speed efficient, so it's probably worth it.
|
||||||
|
//
|
||||||
|
// Usage notes: when a string is added/inserted, a new copy of it is created,
|
||||||
|
// so the original string may be safely deleted. When a string is retrieved
|
||||||
|
// from the array (operator[] or Item() method), a reference is returned.
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
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!)
|
||||||
|
//
|
||||||
|
// of course, using explicit would be even better - if all compilers
|
||||||
|
// supported it...
|
||||||
|
wxArrayString(int autoSort) { Init(autoSort != 0); }
|
||||||
|
// C string array ctor
|
||||||
|
wxArrayString(size_t sz, const wxChar** 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) const
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( nIndex < m_nCount,
|
||||||
|
_T("wxArrayString: index out of bounds") );
|
||||||
|
|
||||||
|
return *(wxString *)&(m_pItems[nIndex]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// same as Item()
|
||||||
|
wxString& operator[](size_t nIndex) const { return Item(nIndex); }
|
||||||
|
// get last item
|
||||||
|
wxString& Last() const
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( !IsEmpty(),
|
||||||
|
_T("wxArrayString: index out of bounds") );
|
||||||
|
return Item(Count() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// return a wxString[], useful for the controls which
|
||||||
|
// take one in their ctor. You must delete[] it yourself
|
||||||
|
// once you are done with it. Will return NULL if the
|
||||||
|
// ArrayString was empty.
|
||||||
|
#if WXWIN_COMPATIBILITY_2_4
|
||||||
|
wxDEPRECATED( wxString* GetStringArray() const );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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 wxChar *sz, 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 wxChar *sz);
|
||||||
|
// remove item by index
|
||||||
|
#if WXWIN_COMPATIBILITY_2_4
|
||||||
|
wxDEPRECATED( void Remove(size_t nIndex, size_t nRemove = 1) );
|
||||||
|
#endif
|
||||||
|
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 comparaison 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) { }
|
||||||
|
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) { }
|
||||||
|
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); }
|
||||||
|
void assign(const_iterator first, const_iterator last);
|
||||||
|
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 (wxString *)&(m_pItems[0]); }
|
||||||
|
const_iterator begin() const { return (wxString *)&(m_pItems[0]); }
|
||||||
|
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;
|
||||||
|
reverse_iterator rend() { return reverse_iterator(begin() - 1); }
|
||||||
|
const_reverse_iterator rend() const;
|
||||||
|
void reserve(size_type n) /* base::reserve*/;
|
||||||
|
void resize(size_type n, value_type v = value_type());
|
||||||
|
size_type size() const { return GetCount(); }
|
||||||
|
|
||||||
|
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
|
||||||
|
void Free(); // free all the strings stored
|
||||||
|
|
||||||
|
void DoSort(); // common part of all Sort() variants
|
||||||
|
|
||||||
|
size_t m_nSize, // current size of the array
|
||||||
|
m_nCount; // current number of elements
|
||||||
|
|
||||||
|
wxChar **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_STL
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
const wxArrayString& m_array;
|
||||||
|
wxString* m_strings;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,200 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/artprov.h
|
||||||
|
// Purpose: wxArtProvider class
|
||||||
|
// Author: Vaclav Slavik
|
||||||
|
// Modified by:
|
||||||
|
// Created: 18/03/2002
|
||||||
|
// RCS-ID: $Id: artprov.h 53135 2008-04-12 02:31:04Z VZ $
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
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 + _T("_C"))
|
||||||
|
#define wxART_MAKE_CLIENT_ID(id) _T(#id) _T("_C")
|
||||||
|
#define wxART_MAKE_ART_ID_FROM_STR(id) (id)
|
||||||
|
#define wxART_MAKE_ART_ID(id) _T(#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_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_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_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 WXDLLEXPORT wxArtProvider : public wxObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Dtor removes the provider from providers stack if it's still on it
|
||||||
|
virtual ~wxArtProvider();
|
||||||
|
|
||||||
|
|
||||||
|
// 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 Insert(wxArtProvider *provider);
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
|
||||||
|
// 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
|
||||||
|
wxDEPRECATED( static void PushProvider(wxArtProvider *provider) );
|
||||||
|
wxDEPRECATED( static void InsertProvider(wxArtProvider *provider) );
|
||||||
|
wxDEPRECATED( static 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
|
||||||
|
wxDEPRECATED( static bool RemoveProvider(wxArtProvider *provider) );
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
|
protected:
|
||||||
|
friend class wxArtProviderModule;
|
||||||
|
// Initializes default provider
|
||||||
|
static void InitStdProvider();
|
||||||
|
// 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 this method 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)) = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static void CommonAddingProvider();
|
||||||
|
|
||||||
|
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)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // _WX_ARTPROV_H_
|
|
@ -0,0 +1,22 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/aui/aui.h
|
||||||
|
// Purpose: wxaui: wx advanced user interface - docking window manager
|
||||||
|
// Author: Benjamin I. Williams
|
||||||
|
// Modified by:
|
||||||
|
// Created: 2005-05-17
|
||||||
|
// RCS-ID: $Id: aui.h 40232 2006-07-22 13:14:07Z BIW $
|
||||||
|
// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved.
|
||||||
|
// Licence: wxWindows Library Licence, Version 3.1
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_AUI_H_
|
||||||
|
#define _WX_AUI_H_
|
||||||
|
|
||||||
|
#include "wx/aui/framemanager.h"
|
||||||
|
#include "wx/aui/dockart.h"
|
||||||
|
#include "wx/aui/floatpane.h"
|
||||||
|
#include "wx/aui/auibook.h"
|
||||||
|
#include "wx/aui/tabmdi.h"
|
||||||
|
|
||||||
|
#endif // _WX_AUI_H_
|
||||||
|
|
|
@ -0,0 +1,751 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/aui/auibook.h
|
||||||
|
// Purpose: wxaui: wx advanced user interface - notebook
|
||||||
|
// Author: Benjamin I. Williams
|
||||||
|
// Modified by:
|
||||||
|
// Created: 2006-06-28
|
||||||
|
// Copyright: (C) Copyright 2006, Kirix Corporation, All Rights Reserved.
|
||||||
|
// Licence: wxWindows Library Licence, Version 3.1
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _WX_AUINOTEBOOK_H_
|
||||||
|
#define _WX_AUINOTEBOOK_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_AUI
|
||||||
|
|
||||||
|
#include "wx/aui/framemanager.h"
|
||||||
|
#include "wx/aui/dockart.h"
|
||||||
|
#include "wx/aui/floatpane.h"
|
||||||
|
#include "wx/control.h"
|
||||||
|
|
||||||
|
|
||||||
|
class wxAuiNotebook;
|
||||||
|
|
||||||
|
|
||||||
|
enum wxAuiNotebookOption
|
||||||
|
{
|
||||||
|
wxAUI_NB_TOP = 1 << 0,
|
||||||
|
wxAUI_NB_LEFT = 1 << 1, // not implemented yet
|
||||||
|
wxAUI_NB_RIGHT = 1 << 2, // not implemented yet
|
||||||
|
wxAUI_NB_BOTTOM = 1 << 3,
|
||||||
|
wxAUI_NB_TAB_SPLIT = 1 << 4,
|
||||||
|
wxAUI_NB_TAB_MOVE = 1 << 5,
|
||||||
|
wxAUI_NB_TAB_EXTERNAL_MOVE = 1 << 6,
|
||||||
|
wxAUI_NB_TAB_FIXED_WIDTH = 1 << 7,
|
||||||
|
wxAUI_NB_SCROLL_BUTTONS = 1 << 8,
|
||||||
|
wxAUI_NB_WINDOWLIST_BUTTON = 1 << 9,
|
||||||
|
wxAUI_NB_CLOSE_BUTTON = 1 << 10,
|
||||||
|
wxAUI_NB_CLOSE_ON_ACTIVE_TAB = 1 << 11,
|
||||||
|
wxAUI_NB_CLOSE_ON_ALL_TABS = 1 << 12,
|
||||||
|
wxAUI_NB_MIDDLE_CLICK_CLOSE = 1 << 13,
|
||||||
|
|
||||||
|
wxAUI_NB_DEFAULT_STYLE = wxAUI_NB_TOP |
|
||||||
|
wxAUI_NB_TAB_SPLIT |
|
||||||
|
wxAUI_NB_TAB_MOVE |
|
||||||
|
wxAUI_NB_SCROLL_BUTTONS |
|
||||||
|
wxAUI_NB_CLOSE_ON_ACTIVE_TAB |
|
||||||
|
wxAUI_NB_MIDDLE_CLICK_CLOSE
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// aui notebook event class
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiNotebookEvent : public wxNotifyEvent
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiNotebookEvent(wxEventType command_type = wxEVT_NULL,
|
||||||
|
int win_id = 0)
|
||||||
|
: wxNotifyEvent(command_type, win_id)
|
||||||
|
{
|
||||||
|
old_selection = -1;
|
||||||
|
selection = -1;
|
||||||
|
drag_source = NULL;
|
||||||
|
}
|
||||||
|
#ifndef SWIG
|
||||||
|
wxAuiNotebookEvent(const wxAuiNotebookEvent& c) : wxNotifyEvent(c)
|
||||||
|
{
|
||||||
|
old_selection = c.old_selection;
|
||||||
|
selection = c.selection;
|
||||||
|
drag_source = c.drag_source;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
wxEvent *Clone() const { return new wxAuiNotebookEvent(*this); }
|
||||||
|
|
||||||
|
void SetSelection(int s) { selection = s; m_commandInt = s; }
|
||||||
|
int GetSelection() const { return selection; }
|
||||||
|
|
||||||
|
void SetOldSelection(int s) { old_selection = s; }
|
||||||
|
int GetOldSelection() const { return old_selection; }
|
||||||
|
|
||||||
|
void SetDragSource(wxAuiNotebook* s) { drag_source = s; }
|
||||||
|
wxAuiNotebook* GetDragSource() const { return drag_source; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
int old_selection;
|
||||||
|
int selection;
|
||||||
|
wxAuiNotebook* drag_source;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
private:
|
||||||
|
DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxAuiNotebookEvent)
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiNotebookPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxWindow* window; // page's associated window
|
||||||
|
wxString caption; // caption displayed on the tab
|
||||||
|
wxBitmap bitmap; // tab's bitmap
|
||||||
|
wxRect rect; // tab's hit rectangle
|
||||||
|
bool active; // true if the page is currently active
|
||||||
|
};
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiTabContainerButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
int id; // button's id
|
||||||
|
int cur_state; // current state (normal, hover, pressed, etc.)
|
||||||
|
int location; // buttons location (wxLEFT, wxRIGHT, or wxCENTER)
|
||||||
|
wxBitmap bitmap; // button's hover bitmap
|
||||||
|
wxBitmap dis_bitmap; // button's disabled bitmap
|
||||||
|
wxRect rect; // button's hit rectangle
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiNotebookPage, wxAuiNotebookPageArray, WXDLLIMPEXP_AUI);
|
||||||
|
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiTabContainerButton, wxAuiTabContainerButtonArray, WXDLLIMPEXP_AUI);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// tab art class
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiTabArt
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiTabArt() { }
|
||||||
|
virtual ~wxAuiTabArt() { }
|
||||||
|
|
||||||
|
virtual wxAuiTabArt* Clone() = 0;
|
||||||
|
virtual void SetFlags(unsigned int flags) = 0;
|
||||||
|
|
||||||
|
virtual void SetSizingInfo(const wxSize& tab_ctrl_size,
|
||||||
|
size_t tab_count) = 0;
|
||||||
|
|
||||||
|
virtual void SetNormalFont(const wxFont& font) = 0;
|
||||||
|
virtual void SetSelectedFont(const wxFont& font) = 0;
|
||||||
|
virtual void SetMeasuringFont(const wxFont& font) = 0;
|
||||||
|
|
||||||
|
virtual void DrawBackground(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxRect& rect) = 0;
|
||||||
|
|
||||||
|
virtual void DrawTab(wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPage& pane,
|
||||||
|
const wxRect& in_rect,
|
||||||
|
int close_button_state,
|
||||||
|
wxRect* out_tab_rect,
|
||||||
|
wxRect* out_button_rect,
|
||||||
|
int* x_extent) = 0;
|
||||||
|
|
||||||
|
virtual void DrawButton(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxRect& in_rect,
|
||||||
|
int bitmap_id,
|
||||||
|
int button_state,
|
||||||
|
int orientation,
|
||||||
|
wxRect* out_rect) = 0;
|
||||||
|
|
||||||
|
virtual wxSize GetTabSize(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxString& caption,
|
||||||
|
const wxBitmap& bitmap,
|
||||||
|
bool active,
|
||||||
|
int close_button_state,
|
||||||
|
int* x_extent) = 0;
|
||||||
|
|
||||||
|
virtual int ShowDropDown(
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPageArray& items,
|
||||||
|
int active_idx) = 0;
|
||||||
|
|
||||||
|
virtual int GetIndentSize() = 0;
|
||||||
|
|
||||||
|
virtual int GetBestTabCtrlSize(
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPageArray& pages,
|
||||||
|
const wxSize& required_bmp_size) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiDefaultTabArt : public wxAuiTabArt
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiDefaultTabArt();
|
||||||
|
virtual ~wxAuiDefaultTabArt();
|
||||||
|
|
||||||
|
wxAuiTabArt* Clone();
|
||||||
|
void SetFlags(unsigned int flags);
|
||||||
|
void SetSizingInfo(const wxSize& tab_ctrl_size,
|
||||||
|
size_t tab_count);
|
||||||
|
|
||||||
|
void SetNormalFont(const wxFont& font);
|
||||||
|
void SetSelectedFont(const wxFont& font);
|
||||||
|
void SetMeasuringFont(const wxFont& font);
|
||||||
|
|
||||||
|
void DrawBackground(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxRect& rect);
|
||||||
|
|
||||||
|
void DrawTab(wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPage& pane,
|
||||||
|
const wxRect& in_rect,
|
||||||
|
int close_button_state,
|
||||||
|
wxRect* out_tab_rect,
|
||||||
|
wxRect* out_button_rect,
|
||||||
|
int* x_extent);
|
||||||
|
|
||||||
|
void DrawButton(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxRect& in_rect,
|
||||||
|
int bitmap_id,
|
||||||
|
int button_state,
|
||||||
|
int orientation,
|
||||||
|
wxRect* out_rect);
|
||||||
|
|
||||||
|
int GetIndentSize();
|
||||||
|
|
||||||
|
wxSize GetTabSize(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxString& caption,
|
||||||
|
const wxBitmap& bitmap,
|
||||||
|
bool active,
|
||||||
|
int close_button_state,
|
||||||
|
int* x_extent);
|
||||||
|
|
||||||
|
int ShowDropDown(
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPageArray& items,
|
||||||
|
int active_idx);
|
||||||
|
|
||||||
|
int GetBestTabCtrlSize(wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPageArray& pages,
|
||||||
|
const wxSize& required_bmp_size);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxFont m_normal_font;
|
||||||
|
wxFont m_selected_font;
|
||||||
|
wxFont m_measuring_font;
|
||||||
|
wxColour m_base_colour;
|
||||||
|
wxPen m_base_colour_pen;
|
||||||
|
wxPen m_border_pen;
|
||||||
|
wxBrush m_base_colour_brush;
|
||||||
|
wxBitmap m_active_close_bmp;
|
||||||
|
wxBitmap m_disabled_close_bmp;
|
||||||
|
wxBitmap m_active_left_bmp;
|
||||||
|
wxBitmap m_disabled_left_bmp;
|
||||||
|
wxBitmap m_active_right_bmp;
|
||||||
|
wxBitmap m_disabled_right_bmp;
|
||||||
|
wxBitmap m_active_windowlist_bmp;
|
||||||
|
wxBitmap m_disabled_windowlist_bmp;
|
||||||
|
|
||||||
|
int m_fixed_tab_width;
|
||||||
|
int m_tab_ctrl_height;
|
||||||
|
unsigned int m_flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiSimpleTabArt : public wxAuiTabArt
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiSimpleTabArt();
|
||||||
|
virtual ~wxAuiSimpleTabArt();
|
||||||
|
|
||||||
|
wxAuiTabArt* Clone();
|
||||||
|
void SetFlags(unsigned int flags);
|
||||||
|
|
||||||
|
void SetSizingInfo(const wxSize& tab_ctrl_size,
|
||||||
|
size_t tab_count);
|
||||||
|
|
||||||
|
void SetNormalFont(const wxFont& font);
|
||||||
|
void SetSelectedFont(const wxFont& font);
|
||||||
|
void SetMeasuringFont(const wxFont& font);
|
||||||
|
|
||||||
|
void DrawBackground(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxRect& rect);
|
||||||
|
|
||||||
|
void DrawTab(wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPage& pane,
|
||||||
|
const wxRect& in_rect,
|
||||||
|
int close_button_state,
|
||||||
|
wxRect* out_tab_rect,
|
||||||
|
wxRect* out_button_rect,
|
||||||
|
int* x_extent);
|
||||||
|
|
||||||
|
void DrawButton(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxRect& in_rect,
|
||||||
|
int bitmap_id,
|
||||||
|
int button_state,
|
||||||
|
int orientation,
|
||||||
|
wxRect* out_rect);
|
||||||
|
|
||||||
|
int GetIndentSize();
|
||||||
|
|
||||||
|
wxSize GetTabSize(
|
||||||
|
wxDC& dc,
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxString& caption,
|
||||||
|
const wxBitmap& bitmap,
|
||||||
|
bool active,
|
||||||
|
int close_button_state,
|
||||||
|
int* x_extent);
|
||||||
|
|
||||||
|
int ShowDropDown(
|
||||||
|
wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPageArray& items,
|
||||||
|
int active_idx);
|
||||||
|
|
||||||
|
int GetBestTabCtrlSize(wxWindow* wnd,
|
||||||
|
const wxAuiNotebookPageArray& pages,
|
||||||
|
const wxSize& required_bmp_size);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxFont m_normal_font;
|
||||||
|
wxFont m_selected_font;
|
||||||
|
wxFont m_measuring_font;
|
||||||
|
wxPen m_normal_bkpen;
|
||||||
|
wxPen m_selected_bkpen;
|
||||||
|
wxBrush m_normal_bkbrush;
|
||||||
|
wxBrush m_selected_bkbrush;
|
||||||
|
wxBrush m_bkbrush;
|
||||||
|
wxBitmap m_active_close_bmp;
|
||||||
|
wxBitmap m_disabled_close_bmp;
|
||||||
|
wxBitmap m_active_left_bmp;
|
||||||
|
wxBitmap m_disabled_left_bmp;
|
||||||
|
wxBitmap m_active_right_bmp;
|
||||||
|
wxBitmap m_disabled_right_bmp;
|
||||||
|
wxBitmap m_active_windowlist_bmp;
|
||||||
|
wxBitmap m_disabled_windowlist_bmp;
|
||||||
|
|
||||||
|
int m_fixed_tab_width;
|
||||||
|
unsigned int m_flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiTabContainer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiTabContainer();
|
||||||
|
virtual ~wxAuiTabContainer();
|
||||||
|
|
||||||
|
void SetArtProvider(wxAuiTabArt* art);
|
||||||
|
wxAuiTabArt* GetArtProvider() const;
|
||||||
|
|
||||||
|
void SetFlags(unsigned int flags);
|
||||||
|
unsigned int GetFlags() const;
|
||||||
|
|
||||||
|
bool AddPage(wxWindow* page, const wxAuiNotebookPage& info);
|
||||||
|
bool InsertPage(wxWindow* page, const wxAuiNotebookPage& info, size_t idx);
|
||||||
|
bool MovePage(wxWindow* page, size_t new_idx);
|
||||||
|
bool RemovePage(wxWindow* page);
|
||||||
|
bool SetActivePage(wxWindow* page);
|
||||||
|
bool SetActivePage(size_t page);
|
||||||
|
void SetNoneActive();
|
||||||
|
int GetActivePage() const;
|
||||||
|
bool TabHitTest(int x, int y, wxWindow** hit) const;
|
||||||
|
bool ButtonHitTest(int x, int y, wxAuiTabContainerButton** hit) const;
|
||||||
|
wxWindow* GetWindowFromIdx(size_t idx) const;
|
||||||
|
int GetIdxFromWindow(wxWindow* page) const;
|
||||||
|
size_t GetPageCount() const;
|
||||||
|
wxAuiNotebookPage& GetPage(size_t idx);
|
||||||
|
const wxAuiNotebookPage& GetPage(size_t idx) const;
|
||||||
|
wxAuiNotebookPageArray& GetPages();
|
||||||
|
void SetNormalFont(const wxFont& normal_font);
|
||||||
|
void SetSelectedFont(const wxFont& selected_font);
|
||||||
|
void SetMeasuringFont(const wxFont& measuring_font);
|
||||||
|
void DoShowHide();
|
||||||
|
void SetRect(const wxRect& rect);
|
||||||
|
|
||||||
|
void RemoveButton(int id);
|
||||||
|
void AddButton(int id,
|
||||||
|
int location,
|
||||||
|
const wxBitmap& normal_bitmap = wxNullBitmap,
|
||||||
|
const wxBitmap& disabled_bitmap = wxNullBitmap);
|
||||||
|
|
||||||
|
size_t GetTabOffset() const;
|
||||||
|
void SetTabOffset(size_t offset);
|
||||||
|
|
||||||
|
// Is the tab visible?
|
||||||
|
bool IsTabVisible(int tabPage, int tabOffset, wxDC* dc, wxWindow* wnd);
|
||||||
|
|
||||||
|
// Make the tab visible if it wasn't already
|
||||||
|
void MakeTabVisible(int tabPage, wxWindow* win);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
virtual void Render(wxDC* dc, wxWindow* wnd);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxAuiTabArt* m_art;
|
||||||
|
wxAuiNotebookPageArray m_pages;
|
||||||
|
wxAuiTabContainerButtonArray m_buttons;
|
||||||
|
wxAuiTabContainerButtonArray m_tab_close_buttons;
|
||||||
|
wxRect m_rect;
|
||||||
|
size_t m_tab_offset;
|
||||||
|
unsigned int m_flags;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiTabCtrl : public wxControl,
|
||||||
|
public wxAuiTabContainer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiTabCtrl(wxWindow* parent,
|
||||||
|
wxWindowID id = wxID_ANY,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0);
|
||||||
|
|
||||||
|
~wxAuiTabCtrl();
|
||||||
|
|
||||||
|
#if wxABI_VERSION >= 20805
|
||||||
|
bool IsDragging() const { return m_is_dragging; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void OnPaint(wxPaintEvent& evt);
|
||||||
|
void OnEraseBackground(wxEraseEvent& evt);
|
||||||
|
void OnSize(wxSizeEvent& evt);
|
||||||
|
void OnLeftDown(wxMouseEvent& evt);
|
||||||
|
void OnLeftUp(wxMouseEvent& evt);
|
||||||
|
#if wxABI_VERSION >= 20805
|
||||||
|
void OnMiddleDown(wxMouseEvent& evt);
|
||||||
|
void OnMiddleUp(wxMouseEvent& evt);
|
||||||
|
void OnRightDown(wxMouseEvent& evt);
|
||||||
|
void OnRightUp(wxMouseEvent& evt);
|
||||||
|
void OnLeftDClick(wxMouseEvent& evt);
|
||||||
|
void OnSetFocus(wxFocusEvent& event);
|
||||||
|
void OnKillFocus(wxFocusEvent& event);
|
||||||
|
void OnChar(wxKeyEvent& event);
|
||||||
|
#endif
|
||||||
|
void OnMotion(wxMouseEvent& evt);
|
||||||
|
void OnLeaveWindow(wxMouseEvent& evt);
|
||||||
|
void OnButton(wxAuiNotebookEvent& evt);
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxPoint m_click_pt;
|
||||||
|
wxWindow* m_click_tab;
|
||||||
|
bool m_is_dragging;
|
||||||
|
wxAuiTabContainerButton* m_hover_button;
|
||||||
|
wxAuiTabContainerButton* m_pressed_button;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
DECLARE_CLASS(wxAuiTabCtrl)
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiNotebook : public wxControl
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiNotebook();
|
||||||
|
|
||||||
|
wxAuiNotebook(wxWindow* parent,
|
||||||
|
wxWindowID id = wxID_ANY,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxAUI_NB_DEFAULT_STYLE);
|
||||||
|
|
||||||
|
virtual ~wxAuiNotebook();
|
||||||
|
|
||||||
|
bool Create(wxWindow* parent,
|
||||||
|
wxWindowID id = wxID_ANY,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0);
|
||||||
|
|
||||||
|
void SetWindowStyleFlag(long style);
|
||||||
|
void SetArtProvider(wxAuiTabArt* art);
|
||||||
|
wxAuiTabArt* GetArtProvider() const;
|
||||||
|
|
||||||
|
virtual void SetUniformBitmapSize(const wxSize& size);
|
||||||
|
virtual void SetTabCtrlHeight(int height);
|
||||||
|
|
||||||
|
bool AddPage(wxWindow* page,
|
||||||
|
const wxString& caption,
|
||||||
|
bool select = false,
|
||||||
|
const wxBitmap& bitmap = wxNullBitmap);
|
||||||
|
|
||||||
|
bool InsertPage(size_t page_idx,
|
||||||
|
wxWindow* page,
|
||||||
|
const wxString& caption,
|
||||||
|
bool select = false,
|
||||||
|
const wxBitmap& bitmap = wxNullBitmap);
|
||||||
|
|
||||||
|
bool DeletePage(size_t page);
|
||||||
|
bool RemovePage(size_t page);
|
||||||
|
|
||||||
|
size_t GetPageCount() const;
|
||||||
|
wxWindow* GetPage(size_t page_idx) const;
|
||||||
|
int GetPageIndex(wxWindow* page_wnd) const;
|
||||||
|
|
||||||
|
bool SetPageText(size_t page, const wxString& text);
|
||||||
|
wxString GetPageText(size_t page_idx) const;
|
||||||
|
|
||||||
|
bool SetPageBitmap(size_t page, const wxBitmap& bitmap);
|
||||||
|
wxBitmap GetPageBitmap(size_t page_idx) const;
|
||||||
|
|
||||||
|
size_t SetSelection(size_t new_page);
|
||||||
|
int GetSelection() const;
|
||||||
|
|
||||||
|
virtual void Split(size_t page, int direction);
|
||||||
|
|
||||||
|
#if wxABI_VERSION >= 20801
|
||||||
|
const wxAuiManager& GetAuiManager() const { return m_mgr; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxABI_VERSION >= 20805
|
||||||
|
// Sets the normal font
|
||||||
|
void SetNormalFont(const wxFont& font);
|
||||||
|
|
||||||
|
// Sets the selected tab font
|
||||||
|
void SetSelectedFont(const wxFont& font);
|
||||||
|
|
||||||
|
// Sets the measuring font
|
||||||
|
void SetMeasuringFont(const wxFont& font);
|
||||||
|
|
||||||
|
// Sets the tab font
|
||||||
|
virtual bool SetFont(const wxFont& font);
|
||||||
|
|
||||||
|
// Gets the tab control height
|
||||||
|
int GetTabCtrlHeight() const;
|
||||||
|
|
||||||
|
// Gets the height of the notebook for a given page height
|
||||||
|
int GetHeightForPageHeight(int pageHeight);
|
||||||
|
|
||||||
|
// Advances the selection, generation page selection events
|
||||||
|
void AdvanceSelection(bool forward = true);
|
||||||
|
|
||||||
|
// Shows the window menu
|
||||||
|
bool ShowWindowMenu();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// these can be overridden
|
||||||
|
virtual void UpdateTabCtrlHeight();
|
||||||
|
virtual int CalculateTabCtrlHeight();
|
||||||
|
virtual wxSize CalculateNewSplitSize();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void DoSizing();
|
||||||
|
void InitNotebook(long style);
|
||||||
|
wxAuiTabCtrl* GetTabCtrlFromPoint(const wxPoint& pt);
|
||||||
|
wxWindow* GetTabFrameFromTabCtrl(wxWindow* tab_ctrl);
|
||||||
|
wxAuiTabCtrl* GetActiveTabCtrl();
|
||||||
|
bool FindTab(wxWindow* page, wxAuiTabCtrl** ctrl, int* idx);
|
||||||
|
void RemoveEmptyTabFrames();
|
||||||
|
void UpdateHintWindowSize();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void OnChildFocus(wxChildFocusEvent& evt);
|
||||||
|
void OnRender(wxAuiManagerEvent& evt);
|
||||||
|
void OnSize(wxSizeEvent& evt);
|
||||||
|
void OnTabClicked(wxCommandEvent& evt);
|
||||||
|
void OnTabBeginDrag(wxCommandEvent& evt);
|
||||||
|
void OnTabDragMotion(wxCommandEvent& evt);
|
||||||
|
void OnTabEndDrag(wxCommandEvent& evt);
|
||||||
|
void OnTabButton(wxCommandEvent& evt);
|
||||||
|
#if wxABI_VERSION >= 20805
|
||||||
|
void OnTabMiddleDown(wxCommandEvent& evt);
|
||||||
|
void OnTabMiddleUp(wxCommandEvent& evt);
|
||||||
|
void OnTabRightDown(wxCommandEvent& evt);
|
||||||
|
void OnTabRightUp(wxCommandEvent& evt);
|
||||||
|
void OnNavigationKey(wxNavigationKeyEvent& event);
|
||||||
|
void OnTabBgDClick(wxCommandEvent& evt);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxAuiManager m_mgr;
|
||||||
|
wxAuiTabContainer m_tabs;
|
||||||
|
int m_curpage;
|
||||||
|
int m_tab_id_counter;
|
||||||
|
wxWindow* m_dummy_wnd;
|
||||||
|
|
||||||
|
wxSize m_requested_bmp_size;
|
||||||
|
int m_requested_tabctrl_height;
|
||||||
|
wxFont m_selected_font;
|
||||||
|
wxFont m_normal_font;
|
||||||
|
int m_tab_ctrl_height;
|
||||||
|
|
||||||
|
int m_last_drag_x;
|
||||||
|
unsigned int m_flags;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
DECLARE_CLASS(wxAuiNotebook)
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// wx event machinery
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
|
||||||
|
BEGIN_DECLARE_EVENT_TYPES()
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 0)
|
||||||
|
#if wxABI_VERSION >= 20805
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 0)
|
||||||
|
#endif
|
||||||
|
END_DECLARE_EVENT_TYPES()
|
||||||
|
|
||||||
|
typedef void (wxEvtHandler::*wxAuiNotebookEventFunction)(wxAuiNotebookEvent&);
|
||||||
|
|
||||||
|
#define wxAuiNotebookEventHandler(func) \
|
||||||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxAuiNotebookEventFunction, &func)
|
||||||
|
|
||||||
|
#define EVT_AUINOTEBOOK_PAGE_CLOSE(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_PAGE_CLOSED(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_PAGE_CHANGED(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_PAGE_CHANGING(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_BUTTON(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_BEGIN_DRAG(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_END_DRAG(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_DRAG_MOTION(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_ALLOW_DND(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
|
||||||
|
#if wxABI_VERSION >= 20805
|
||||||
|
#define EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_TAB_MIDDLE_UP(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_TAB_RIGHT_DOWN(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_TAB_RIGHT_UP(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_DRAG_DONE(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#define EVT_AUINOTEBOOK_BG_DCLICK(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, winid, wxAuiNotebookEventHandler(fn))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// wxpython/swig event work
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_BUTTON;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_END_DRAG;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN;
|
||||||
|
%constant wxEventType wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP;
|
||||||
|
|
||||||
|
%pythoncode {
|
||||||
|
EVT_AUINOTEBOOK_PAGE_CLOSE = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, 1 )
|
||||||
|
EVT_AUINOTEBOOK_PAGE_CLOSED = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, 1 )
|
||||||
|
EVT_AUINOTEBOOK_PAGE_CHANGED = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, 1 )
|
||||||
|
EVT_AUINOTEBOOK_PAGE_CHANGING = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, 1 )
|
||||||
|
EVT_AUINOTEBOOK_BUTTON = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_BUTTON, 1 )
|
||||||
|
EVT_AUINOTEBOOK_BEGIN_DRAG = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG, 1 )
|
||||||
|
EVT_AUINOTEBOOK_END_DRAG = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, 1 )
|
||||||
|
EVT_AUINOTEBOOK_DRAG_MOTION = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION, 1 )
|
||||||
|
EVT_AUINOTEBOOK_ALLOW_DND = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND, 1 )
|
||||||
|
EVT_AUINOTEBOOK_DRAG_DONE = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE, 1 )
|
||||||
|
EVT_AUINOTEBOOK_BG_DCLICK = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK, 1 )
|
||||||
|
EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN, 1 )
|
||||||
|
EVT_AUINOTEBOOK_TAB_MIDDLE_UP = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP , 1 )
|
||||||
|
EVT_AUINOTEBOOK_TAB_RIGHT_DOWN = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, 1 )
|
||||||
|
EVT_AUINOTEBOOK_TAB_RIGHT_UP = wx.PyEventBinder( wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, 1 )
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif // wxUSE_AUI
|
||||||
|
#endif // _WX_AUINOTEBOOK_H_
|
|
@ -0,0 +1,173 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/aui/dockart.h
|
||||||
|
// Purpose: wxaui: wx advanced user interface - docking window manager
|
||||||
|
// Author: Benjamin I. Williams
|
||||||
|
// Modified by:
|
||||||
|
// Created: 2005-05-17
|
||||||
|
// RCS-ID: $Id: dockart.h 43154 2006-11-07 10:29:02Z BIW $
|
||||||
|
// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved.
|
||||||
|
// Licence: wxWindows Library Licence, Version 3.1
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_DOCKART_H_
|
||||||
|
#define _WX_DOCKART_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_AUI
|
||||||
|
|
||||||
|
#include "wx/pen.h"
|
||||||
|
#include "wx/brush.h"
|
||||||
|
#include "wx/bitmap.h"
|
||||||
|
#include "wx/colour.h"
|
||||||
|
|
||||||
|
// dock art provider code - a dock provider provides all drawing
|
||||||
|
// functionality to the wxAui dock manager. This allows the dock
|
||||||
|
// manager to have plugable look-and-feels
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiDockArt
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiDockArt() { }
|
||||||
|
virtual ~wxAuiDockArt() { }
|
||||||
|
|
||||||
|
virtual int GetMetric(int id) = 0;
|
||||||
|
virtual void SetMetric(int id, int new_val) = 0;
|
||||||
|
virtual void SetFont(int id, const wxFont& font) = 0;
|
||||||
|
virtual wxFont GetFont(int id) = 0;
|
||||||
|
virtual wxColour GetColour(int id) = 0;
|
||||||
|
virtual void SetColour(int id, const wxColor& colour) = 0;
|
||||||
|
wxColour GetColor(int id) { return GetColour(id); }
|
||||||
|
void SetColor(int id, const wxColour& color) { SetColour(id, color); }
|
||||||
|
|
||||||
|
virtual void DrawSash(wxDC& dc,
|
||||||
|
wxWindow* window,
|
||||||
|
int orientation,
|
||||||
|
const wxRect& rect) = 0;
|
||||||
|
|
||||||
|
virtual void DrawBackground(wxDC& dc,
|
||||||
|
wxWindow* window,
|
||||||
|
int orientation,
|
||||||
|
const wxRect& rect) = 0;
|
||||||
|
|
||||||
|
virtual void DrawCaption(wxDC& dc,
|
||||||
|
wxWindow* window,
|
||||||
|
const wxString& text,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane) = 0;
|
||||||
|
|
||||||
|
virtual void DrawGripper(wxDC& dc,
|
||||||
|
wxWindow* window,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane) = 0;
|
||||||
|
|
||||||
|
virtual void DrawBorder(wxDC& dc,
|
||||||
|
wxWindow* window,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane) = 0;
|
||||||
|
|
||||||
|
virtual void DrawPaneButton(wxDC& dc,
|
||||||
|
wxWindow* window,
|
||||||
|
int button,
|
||||||
|
int button_state,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// this is the default art provider for wxAuiManager. Dock art
|
||||||
|
// can be customized by creating a class derived from this one,
|
||||||
|
// or replacing this class entirely
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiDefaultDockArt : public wxAuiDockArt
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiDefaultDockArt();
|
||||||
|
|
||||||
|
int GetMetric(int metric_id);
|
||||||
|
void SetMetric(int metric_id, int new_val);
|
||||||
|
wxColour GetColour(int id);
|
||||||
|
void SetColour(int id, const wxColor& colour);
|
||||||
|
void SetFont(int id, const wxFont& font);
|
||||||
|
wxFont GetFont(int id);
|
||||||
|
|
||||||
|
void DrawSash(wxDC& dc,
|
||||||
|
wxWindow *window,
|
||||||
|
int orientation,
|
||||||
|
const wxRect& rect);
|
||||||
|
|
||||||
|
void DrawBackground(wxDC& dc,
|
||||||
|
wxWindow *window,
|
||||||
|
int orientation,
|
||||||
|
const wxRect& rect);
|
||||||
|
|
||||||
|
void DrawCaption(wxDC& dc,
|
||||||
|
wxWindow *window,
|
||||||
|
const wxString& text,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane);
|
||||||
|
|
||||||
|
void DrawGripper(wxDC& dc,
|
||||||
|
wxWindow *window,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane);
|
||||||
|
|
||||||
|
void DrawBorder(wxDC& dc,
|
||||||
|
wxWindow *window,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane);
|
||||||
|
|
||||||
|
void DrawPaneButton(wxDC& dc,
|
||||||
|
wxWindow *window,
|
||||||
|
int button,
|
||||||
|
int button_state,
|
||||||
|
const wxRect& rect,
|
||||||
|
wxAuiPaneInfo& pane);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void DrawCaptionBackground(wxDC& dc, const wxRect& rect, bool active);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxPen m_border_pen;
|
||||||
|
wxBrush m_sash_brush;
|
||||||
|
wxBrush m_background_brush;
|
||||||
|
wxBrush m_gripper_brush;
|
||||||
|
wxFont m_caption_font;
|
||||||
|
wxBitmap m_inactive_close_bitmap;
|
||||||
|
wxBitmap m_inactive_pin_bitmap;
|
||||||
|
wxBitmap m_inactive_maximize_bitmap;
|
||||||
|
wxBitmap m_inactive_restore_bitmap;
|
||||||
|
wxBitmap m_active_close_bitmap;
|
||||||
|
wxBitmap m_active_pin_bitmap;
|
||||||
|
wxBitmap m_active_maximize_bitmap;
|
||||||
|
wxBitmap m_active_restore_bitmap;
|
||||||
|
wxPen m_gripper_pen1;
|
||||||
|
wxPen m_gripper_pen2;
|
||||||
|
wxPen m_gripper_pen3;
|
||||||
|
wxColour m_base_colour;
|
||||||
|
wxColour m_active_caption_colour;
|
||||||
|
wxColour m_active_caption_gradient_colour;
|
||||||
|
wxColour m_active_caption_text_colour;
|
||||||
|
wxColour m_inactive_caption_colour;
|
||||||
|
wxColour m_inactive_caption_gradient_colour;
|
||||||
|
wxColour m_inactive_caption_text_colour;
|
||||||
|
int m_border_size;
|
||||||
|
int m_caption_size;
|
||||||
|
int m_sash_size;
|
||||||
|
int m_button_size;
|
||||||
|
int m_gripper_size;
|
||||||
|
int m_gradient_type;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // wxUSE_AUI
|
||||||
|
#endif //_WX_DOCKART_H_
|
|
@ -0,0 +1,81 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/aui/floatpane.h
|
||||||
|
// Purpose: wxaui: wx advanced user interface - docking window manager
|
||||||
|
// Author: Benjamin I. Williams
|
||||||
|
// Modified by:
|
||||||
|
// Created: 2005-05-17
|
||||||
|
// RCS-ID: $Id: floatpane.h 43467 2006-11-17 13:07:01Z BIW $
|
||||||
|
// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved.
|
||||||
|
// Licence: wxWindows Library Licence, Version 3.1
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_FLOATPANE_H_
|
||||||
|
#define _WX_FLOATPANE_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_AUI
|
||||||
|
|
||||||
|
#include "wx/frame.h"
|
||||||
|
|
||||||
|
#if defined( __WXMSW__ ) || defined( __WXMAC__ ) || defined( __WXGTK__ )
|
||||||
|
#include "wx/minifram.h"
|
||||||
|
#define wxAuiFloatingFrameBaseClass wxMiniFrame
|
||||||
|
#else
|
||||||
|
#define wxAuiFloatingFrameBaseClass wxFrame
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiFloatingFrame : public wxAuiFloatingFrameBaseClass
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiFloatingFrame(wxWindow* parent,
|
||||||
|
wxAuiManager* owner_mgr,
|
||||||
|
const wxAuiPaneInfo& pane,
|
||||||
|
wxWindowID id = wxID_ANY,
|
||||||
|
long style = wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION |
|
||||||
|
wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT |
|
||||||
|
wxCLIP_CHILDREN
|
||||||
|
);
|
||||||
|
virtual ~wxAuiFloatingFrame();
|
||||||
|
void SetPaneWindow(const wxAuiPaneInfo& pane);
|
||||||
|
wxAuiManager* GetOwnerManager() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void OnMoveStart();
|
||||||
|
virtual void OnMoving(const wxRect& window_rect, wxDirection dir);
|
||||||
|
virtual void OnMoveFinished();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void OnSize(wxSizeEvent& event);
|
||||||
|
void OnClose(wxCloseEvent& event);
|
||||||
|
void OnMoveEvent(wxMoveEvent& event);
|
||||||
|
void OnIdle(wxIdleEvent& event);
|
||||||
|
void OnActivate(wxActivateEvent& event);
|
||||||
|
static bool isMouseDown();
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxWindow* m_pane_window; // pane window being managed
|
||||||
|
bool m_solid_drag; // true if system uses solid window drag
|
||||||
|
bool m_moving;
|
||||||
|
wxRect m_last_rect;
|
||||||
|
wxRect m_last2_rect;
|
||||||
|
wxRect m_last3_rect;
|
||||||
|
wxSize m_last_size;
|
||||||
|
wxDirection m_lastDirection;
|
||||||
|
|
||||||
|
wxAuiManager* m_owner_mgr;
|
||||||
|
wxAuiManager m_mgr;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_CLASS(wxAuiFloatingFrame)
|
||||||
|
#endif // SWIG
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // wxUSE_AUI
|
||||||
|
#endif //_WX_FLOATPANE_H_
|
||||||
|
|
|
@ -0,0 +1,851 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/aui/framemanager.h
|
||||||
|
// Purpose: wxaui: wx advanced user interface - docking window manager
|
||||||
|
// Author: Benjamin I. Williams
|
||||||
|
// Modified by:
|
||||||
|
// Created: 2005-05-17
|
||||||
|
// RCS-ID: $Id: framemanager.h 53135 2008-04-12 02:31:04Z VZ $
|
||||||
|
// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved.
|
||||||
|
// Licence: wxWindows Library Licence, Version 3.1
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_FRAMEMANAGER_H_
|
||||||
|
#define _WX_FRAMEMANAGER_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_AUI
|
||||||
|
|
||||||
|
#include "wx/dynarray.h"
|
||||||
|
#include "wx/gdicmn.h"
|
||||||
|
#include "wx/window.h"
|
||||||
|
#include "wx/timer.h"
|
||||||
|
#include "wx/sizer.h"
|
||||||
|
|
||||||
|
enum wxAuiManagerDock
|
||||||
|
{
|
||||||
|
wxAUI_DOCK_NONE = 0,
|
||||||
|
wxAUI_DOCK_TOP = 1,
|
||||||
|
wxAUI_DOCK_RIGHT = 2,
|
||||||
|
wxAUI_DOCK_BOTTOM = 3,
|
||||||
|
wxAUI_DOCK_LEFT = 4,
|
||||||
|
wxAUI_DOCK_CENTER = 5,
|
||||||
|
wxAUI_DOCK_CENTRE = wxAUI_DOCK_CENTER
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wxAuiManagerOption
|
||||||
|
{
|
||||||
|
wxAUI_MGR_ALLOW_FLOATING = 1 << 0,
|
||||||
|
wxAUI_MGR_ALLOW_ACTIVE_PANE = 1 << 1,
|
||||||
|
wxAUI_MGR_TRANSPARENT_DRAG = 1 << 2,
|
||||||
|
wxAUI_MGR_TRANSPARENT_HINT = 1 << 3,
|
||||||
|
wxAUI_MGR_VENETIAN_BLINDS_HINT = 1 << 4,
|
||||||
|
wxAUI_MGR_RECTANGLE_HINT = 1 << 5,
|
||||||
|
wxAUI_MGR_HINT_FADE = 1 << 6,
|
||||||
|
wxAUI_MGR_NO_VENETIAN_BLINDS_FADE = 1 << 7,
|
||||||
|
|
||||||
|
wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING |
|
||||||
|
wxAUI_MGR_TRANSPARENT_HINT |
|
||||||
|
wxAUI_MGR_HINT_FADE |
|
||||||
|
wxAUI_MGR_NO_VENETIAN_BLINDS_FADE
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
enum wxAuiPaneDockArtSetting
|
||||||
|
{
|
||||||
|
wxAUI_DOCKART_SASH_SIZE = 0,
|
||||||
|
wxAUI_DOCKART_CAPTION_SIZE = 1,
|
||||||
|
wxAUI_DOCKART_GRIPPER_SIZE = 2,
|
||||||
|
wxAUI_DOCKART_PANE_BORDER_SIZE = 3,
|
||||||
|
wxAUI_DOCKART_PANE_BUTTON_SIZE = 4,
|
||||||
|
wxAUI_DOCKART_BACKGROUND_COLOUR = 5,
|
||||||
|
wxAUI_DOCKART_SASH_COLOUR = 6,
|
||||||
|
wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR = 7,
|
||||||
|
wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR = 8,
|
||||||
|
wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR = 9,
|
||||||
|
wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR = 10,
|
||||||
|
wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR = 11,
|
||||||
|
wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR = 12,
|
||||||
|
wxAUI_DOCKART_BORDER_COLOUR = 13,
|
||||||
|
wxAUI_DOCKART_GRIPPER_COLOUR = 14,
|
||||||
|
wxAUI_DOCKART_CAPTION_FONT = 15,
|
||||||
|
wxAUI_DOCKART_GRADIENT_TYPE = 16
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wxAuiPaneDockArtGradients
|
||||||
|
{
|
||||||
|
wxAUI_GRADIENT_NONE = 0,
|
||||||
|
wxAUI_GRADIENT_VERTICAL = 1,
|
||||||
|
wxAUI_GRADIENT_HORIZONTAL = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wxAuiPaneButtonState
|
||||||
|
{
|
||||||
|
wxAUI_BUTTON_STATE_NORMAL = 0,
|
||||||
|
wxAUI_BUTTON_STATE_HOVER = 1 << 1,
|
||||||
|
wxAUI_BUTTON_STATE_PRESSED = 1 << 2,
|
||||||
|
wxAUI_BUTTON_STATE_DISABLED = 1 << 3,
|
||||||
|
wxAUI_BUTTON_STATE_HIDDEN = 1 << 4,
|
||||||
|
wxAUI_BUTTON_STATE_CHECKED = 1 << 5
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wxAuiButtonId
|
||||||
|
{
|
||||||
|
wxAUI_BUTTON_CLOSE = 101,
|
||||||
|
wxAUI_BUTTON_MAXIMIZE_RESTORE = 102,
|
||||||
|
wxAUI_BUTTON_MINIMIZE = 103,
|
||||||
|
wxAUI_BUTTON_PIN = 104,
|
||||||
|
wxAUI_BUTTON_OPTIONS = 105,
|
||||||
|
wxAUI_BUTTON_WINDOWLIST = 106,
|
||||||
|
wxAUI_BUTTON_LEFT = 107,
|
||||||
|
wxAUI_BUTTON_RIGHT = 108,
|
||||||
|
wxAUI_BUTTON_UP = 109,
|
||||||
|
wxAUI_BUTTON_DOWN = 110,
|
||||||
|
wxAUI_BUTTON_CUSTOM1 = 201,
|
||||||
|
wxAUI_BUTTON_CUSTOM2 = 202,
|
||||||
|
wxAUI_BUTTON_CUSTOM3 = 203
|
||||||
|
};
|
||||||
|
|
||||||
|
enum wxAuiPaneInsertLevel
|
||||||
|
{
|
||||||
|
wxAUI_INSERT_PANE = 0,
|
||||||
|
wxAUI_INSERT_ROW = 1,
|
||||||
|
wxAUI_INSERT_DOCK = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// forwards and array declarations
|
||||||
|
class wxAuiDockUIPart;
|
||||||
|
class wxAuiPaneButton;
|
||||||
|
class wxAuiPaneInfo;
|
||||||
|
class wxAuiDockInfo;
|
||||||
|
class wxAuiDockArt;
|
||||||
|
class wxAuiManagerEvent;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockInfo, wxAuiDockInfoArray, WXDLLIMPEXP_AUI);
|
||||||
|
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockUIPart, wxAuiDockUIPartArray, WXDLLIMPEXP_AUI);
|
||||||
|
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneButton, wxAuiPaneButtonArray, WXDLLIMPEXP_AUI);
|
||||||
|
WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneInfo, wxAuiPaneInfoArray, WXDLLIMPEXP_AUI);
|
||||||
|
WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiPaneInfo*, wxAuiPaneInfoPtrArray, class WXDLLIMPEXP_AUI);
|
||||||
|
WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiDockInfo*, wxAuiDockInfoPtrArray, class WXDLLIMPEXP_AUI);
|
||||||
|
#endif // SWIG
|
||||||
|
|
||||||
|
extern WXDLLIMPEXP_AUI wxAuiDockInfo wxAuiNullDockInfo;
|
||||||
|
extern WXDLLIMPEXP_AUI wxAuiPaneInfo wxAuiNullPaneInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiPaneInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiPaneInfo()
|
||||||
|
{
|
||||||
|
window = NULL;
|
||||||
|
frame = NULL;
|
||||||
|
state = 0;
|
||||||
|
dock_direction = wxAUI_DOCK_LEFT;
|
||||||
|
dock_layer = 0;
|
||||||
|
dock_row = 0;
|
||||||
|
dock_pos = 0;
|
||||||
|
floating_pos = wxDefaultPosition;
|
||||||
|
floating_size = wxDefaultSize;
|
||||||
|
best_size = wxDefaultSize;
|
||||||
|
min_size = wxDefaultSize;
|
||||||
|
max_size = wxDefaultSize;
|
||||||
|
dock_proportion = 0;
|
||||||
|
|
||||||
|
DefaultPane();
|
||||||
|
}
|
||||||
|
|
||||||
|
~wxAuiPaneInfo() {}
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
wxAuiPaneInfo(const wxAuiPaneInfo& c)
|
||||||
|
{
|
||||||
|
name = c.name;
|
||||||
|
caption = c.caption;
|
||||||
|
window = c.window;
|
||||||
|
frame = c.frame;
|
||||||
|
state = c.state;
|
||||||
|
dock_direction = c.dock_direction;
|
||||||
|
dock_layer = c.dock_layer;
|
||||||
|
dock_row = c.dock_row;
|
||||||
|
dock_pos = c.dock_pos;
|
||||||
|
best_size = c.best_size;
|
||||||
|
min_size = c.min_size;
|
||||||
|
max_size = c.max_size;
|
||||||
|
floating_pos = c.floating_pos;
|
||||||
|
floating_size = c.floating_size;
|
||||||
|
dock_proportion = c.dock_proportion;
|
||||||
|
buttons = c.buttons;
|
||||||
|
rect = c.rect;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c)
|
||||||
|
{
|
||||||
|
name = c.name;
|
||||||
|
caption = c.caption;
|
||||||
|
window = c.window;
|
||||||
|
frame = c.frame;
|
||||||
|
state = c.state;
|
||||||
|
dock_direction = c.dock_direction;
|
||||||
|
dock_layer = c.dock_layer;
|
||||||
|
dock_row = c.dock_row;
|
||||||
|
dock_pos = c.dock_pos;
|
||||||
|
best_size = c.best_size;
|
||||||
|
min_size = c.min_size;
|
||||||
|
max_size = c.max_size;
|
||||||
|
floating_pos = c.floating_pos;
|
||||||
|
floating_size = c.floating_size;
|
||||||
|
dock_proportion = c.dock_proportion;
|
||||||
|
buttons = c.buttons;
|
||||||
|
rect = c.rect;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
#endif // SWIG
|
||||||
|
|
||||||
|
// Write the safe parts of a newly loaded PaneInfo structure "source" into "this"
|
||||||
|
// used on loading perspectives etc.
|
||||||
|
void SafeSet(wxAuiPaneInfo source)
|
||||||
|
{
|
||||||
|
// note source is not passed by reference so we can overwrite, to keep the
|
||||||
|
// unsafe bits of "dest"
|
||||||
|
source.window = window;
|
||||||
|
source.frame = frame;
|
||||||
|
source.buttons = buttons;
|
||||||
|
// now assign
|
||||||
|
*this = source;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IsOk() const { return (window != NULL) ? true : false; }
|
||||||
|
bool IsFixed() const { return !HasFlag(optionResizable); }
|
||||||
|
bool IsResizable() const { return HasFlag(optionResizable); }
|
||||||
|
bool IsShown() const { return !HasFlag(optionHidden); }
|
||||||
|
bool IsFloating() const { return HasFlag(optionFloating); }
|
||||||
|
bool IsDocked() const { return !HasFlag(optionFloating); }
|
||||||
|
bool IsToolbar() const { return HasFlag(optionToolbar); }
|
||||||
|
bool IsTopDockable() const { return HasFlag(optionTopDockable); }
|
||||||
|
bool IsBottomDockable() const { return HasFlag(optionBottomDockable); }
|
||||||
|
bool IsLeftDockable() const { return HasFlag(optionLeftDockable); }
|
||||||
|
bool IsRightDockable() const { return HasFlag(optionRightDockable); }
|
||||||
|
bool IsFloatable() const { return HasFlag(optionFloatable); }
|
||||||
|
bool IsMovable() const { return HasFlag(optionMovable); }
|
||||||
|
bool IsDestroyOnClose() const { return HasFlag(optionDestroyOnClose); }
|
||||||
|
bool IsMaximized() const { return HasFlag(optionMaximized); }
|
||||||
|
bool HasCaption() const { return HasFlag(optionCaption); }
|
||||||
|
bool HasGripper() const { return HasFlag(optionGripper); }
|
||||||
|
bool HasBorder() const { return HasFlag(optionPaneBorder); }
|
||||||
|
bool HasCloseButton() const { return HasFlag(buttonClose); }
|
||||||
|
bool HasMaximizeButton() const { return HasFlag(buttonMaximize); }
|
||||||
|
bool HasMinimizeButton() const { return HasFlag(buttonMinimize); }
|
||||||
|
bool HasPinButton() const { return HasFlag(buttonPin); }
|
||||||
|
bool HasGripperTop() const { return HasFlag(optionGripperTop); }
|
||||||
|
|
||||||
|
#ifdef SWIG
|
||||||
|
%typemap(out) wxAuiPaneInfo& { $result = $self; Py_INCREF($result); }
|
||||||
|
#endif
|
||||||
|
wxAuiPaneInfo& Window(wxWindow* w) { window = w; return *this; }
|
||||||
|
wxAuiPaneInfo& Name(const wxString& n) { name = n; return *this; }
|
||||||
|
wxAuiPaneInfo& Caption(const wxString& c) { caption = c; return *this; }
|
||||||
|
wxAuiPaneInfo& Left() { dock_direction = wxAUI_DOCK_LEFT; return *this; }
|
||||||
|
wxAuiPaneInfo& Right() { dock_direction = wxAUI_DOCK_RIGHT; return *this; }
|
||||||
|
wxAuiPaneInfo& Top() { dock_direction = wxAUI_DOCK_TOP; return *this; }
|
||||||
|
wxAuiPaneInfo& Bottom() { dock_direction = wxAUI_DOCK_BOTTOM; return *this; }
|
||||||
|
wxAuiPaneInfo& Center() { dock_direction = wxAUI_DOCK_CENTER; return *this; }
|
||||||
|
wxAuiPaneInfo& Centre() { dock_direction = wxAUI_DOCK_CENTRE; return *this; }
|
||||||
|
wxAuiPaneInfo& Direction(int direction) { dock_direction = direction; return *this; }
|
||||||
|
wxAuiPaneInfo& Layer(int layer) { dock_layer = layer; return *this; }
|
||||||
|
wxAuiPaneInfo& Row(int row) { dock_row = row; return *this; }
|
||||||
|
wxAuiPaneInfo& Position(int pos) { dock_pos = pos; return *this; }
|
||||||
|
wxAuiPaneInfo& BestSize(const wxSize& size) { best_size = size; return *this; }
|
||||||
|
wxAuiPaneInfo& MinSize(const wxSize& size) { min_size = size; return *this; }
|
||||||
|
wxAuiPaneInfo& MaxSize(const wxSize& size) { max_size = size; return *this; }
|
||||||
|
wxAuiPaneInfo& BestSize(int x, int y) { best_size.Set(x,y); return *this; }
|
||||||
|
wxAuiPaneInfo& MinSize(int x, int y) { min_size.Set(x,y); return *this; }
|
||||||
|
wxAuiPaneInfo& MaxSize(int x, int y) { max_size.Set(x,y); return *this; }
|
||||||
|
wxAuiPaneInfo& FloatingPosition(const wxPoint& pos) { floating_pos = pos; return *this; }
|
||||||
|
wxAuiPaneInfo& FloatingPosition(int x, int y) { floating_pos.x = x; floating_pos.y = y; return *this; }
|
||||||
|
wxAuiPaneInfo& FloatingSize(const wxSize& size) { floating_size = size; return *this; }
|
||||||
|
wxAuiPaneInfo& FloatingSize(int x, int y) { floating_size.Set(x,y); return *this; }
|
||||||
|
wxAuiPaneInfo& Fixed() { return SetFlag(optionResizable, false); }
|
||||||
|
wxAuiPaneInfo& Resizable(bool resizable = true) { return SetFlag(optionResizable, resizable); }
|
||||||
|
wxAuiPaneInfo& Dock() { return SetFlag(optionFloating, false); }
|
||||||
|
wxAuiPaneInfo& Float() { return SetFlag(optionFloating, true); }
|
||||||
|
wxAuiPaneInfo& Hide() { return SetFlag(optionHidden, true); }
|
||||||
|
wxAuiPaneInfo& Show(bool show = true) { return SetFlag(optionHidden, !show); }
|
||||||
|
wxAuiPaneInfo& CaptionVisible(bool visible = true) { return SetFlag(optionCaption, visible); }
|
||||||
|
wxAuiPaneInfo& Maximize() { return SetFlag(optionMaximized, true); }
|
||||||
|
wxAuiPaneInfo& Restore() { return SetFlag(optionMaximized, false); }
|
||||||
|
wxAuiPaneInfo& PaneBorder(bool visible = true) { return SetFlag(optionPaneBorder, visible); }
|
||||||
|
wxAuiPaneInfo& Gripper(bool visible = true) { return SetFlag(optionGripper, visible); }
|
||||||
|
wxAuiPaneInfo& GripperTop(bool attop = true) { return SetFlag(optionGripperTop, attop); }
|
||||||
|
wxAuiPaneInfo& CloseButton(bool visible = true) { return SetFlag(buttonClose, visible); }
|
||||||
|
wxAuiPaneInfo& MaximizeButton(bool visible = true) { return SetFlag(buttonMaximize, visible); }
|
||||||
|
wxAuiPaneInfo& MinimizeButton(bool visible = true) { return SetFlag(buttonMinimize, visible); }
|
||||||
|
wxAuiPaneInfo& PinButton(bool visible = true) { return SetFlag(buttonPin, visible); }
|
||||||
|
wxAuiPaneInfo& DestroyOnClose(bool b = true) { return SetFlag(optionDestroyOnClose, b); }
|
||||||
|
wxAuiPaneInfo& TopDockable(bool b = true) { return SetFlag(optionTopDockable, b); }
|
||||||
|
wxAuiPaneInfo& BottomDockable(bool b = true) { return SetFlag(optionBottomDockable, b); }
|
||||||
|
wxAuiPaneInfo& LeftDockable(bool b = true) { return SetFlag(optionLeftDockable, b); }
|
||||||
|
wxAuiPaneInfo& RightDockable(bool b = true) { return SetFlag(optionRightDockable, b); }
|
||||||
|
wxAuiPaneInfo& Floatable(bool b = true) { return SetFlag(optionFloatable, b); }
|
||||||
|
wxAuiPaneInfo& Movable(bool b = true) { return SetFlag(optionMovable, b); }
|
||||||
|
#if wxABI_VERSION >= 20807
|
||||||
|
wxAuiPaneInfo& DockFixed(bool b = true) { return SetFlag(optionDockFixed, b); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
wxAuiPaneInfo& Dockable(bool b = true)
|
||||||
|
{
|
||||||
|
return TopDockable(b).BottomDockable(b).LeftDockable(b).RightDockable(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxAuiPaneInfo& DefaultPane()
|
||||||
|
{
|
||||||
|
state |= optionTopDockable | optionBottomDockable |
|
||||||
|
optionLeftDockable | optionRightDockable |
|
||||||
|
optionFloatable | optionMovable | optionResizable |
|
||||||
|
optionCaption | optionPaneBorder | buttonClose;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxAuiPaneInfo& CentrePane() { return CenterPane(); }
|
||||||
|
wxAuiPaneInfo& CenterPane()
|
||||||
|
{
|
||||||
|
state = 0;
|
||||||
|
return Center().PaneBorder().Resizable();
|
||||||
|
}
|
||||||
|
|
||||||
|
wxAuiPaneInfo& ToolbarPane()
|
||||||
|
{
|
||||||
|
DefaultPane();
|
||||||
|
state |= (optionToolbar | optionGripper);
|
||||||
|
state &= ~(optionResizable | optionCaption);
|
||||||
|
if (dock_layer == 0)
|
||||||
|
dock_layer = 10;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxAuiPaneInfo& SetFlag(unsigned int flag, bool option_state)
|
||||||
|
{
|
||||||
|
if (option_state)
|
||||||
|
state |= flag;
|
||||||
|
else
|
||||||
|
state &= ~flag;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HasFlag(unsigned int flag) const
|
||||||
|
{
|
||||||
|
return (state & flag) ? true:false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef SWIG
|
||||||
|
%typemap(out) wxAuiPaneInfo& ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// NOTE: You can add and subtract flags from this list,
|
||||||
|
// but do not change the values of the flags, because
|
||||||
|
// they are stored in a binary integer format in the
|
||||||
|
// perspective string. If you really need to change the
|
||||||
|
// values around, you'll have to ensure backwards-compatibility
|
||||||
|
// in the perspective loading code.
|
||||||
|
enum wxAuiPaneState
|
||||||
|
{
|
||||||
|
optionFloating = 1 << 0,
|
||||||
|
optionHidden = 1 << 1,
|
||||||
|
optionLeftDockable = 1 << 2,
|
||||||
|
optionRightDockable = 1 << 3,
|
||||||
|
optionTopDockable = 1 << 4,
|
||||||
|
optionBottomDockable = 1 << 5,
|
||||||
|
optionFloatable = 1 << 6,
|
||||||
|
optionMovable = 1 << 7,
|
||||||
|
optionResizable = 1 << 8,
|
||||||
|
optionPaneBorder = 1 << 9,
|
||||||
|
optionCaption = 1 << 10,
|
||||||
|
optionGripper = 1 << 11,
|
||||||
|
optionDestroyOnClose = 1 << 12,
|
||||||
|
optionToolbar = 1 << 13,
|
||||||
|
optionActive = 1 << 14,
|
||||||
|
optionGripperTop = 1 << 15,
|
||||||
|
optionMaximized = 1 << 16,
|
||||||
|
optionDockFixed = 1 << 17,
|
||||||
|
|
||||||
|
buttonClose = 1 << 21,
|
||||||
|
buttonMaximize = 1 << 22,
|
||||||
|
buttonMinimize = 1 << 23,
|
||||||
|
buttonPin = 1 << 24,
|
||||||
|
|
||||||
|
buttonCustom1 = 1 << 26,
|
||||||
|
buttonCustom2 = 1 << 27,
|
||||||
|
buttonCustom3 = 1 << 28,
|
||||||
|
|
||||||
|
savedHiddenState = 1 << 30, // used internally
|
||||||
|
actionPane = 1 << 31 // used internally
|
||||||
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
wxString name; // name of the pane
|
||||||
|
wxString caption; // caption displayed on the window
|
||||||
|
|
||||||
|
wxWindow* window; // window that is in this pane
|
||||||
|
wxFrame* frame; // floating frame window that holds the pane
|
||||||
|
unsigned int state; // a combination of wxPaneState values
|
||||||
|
|
||||||
|
int dock_direction; // dock direction (top, bottom, left, right, center)
|
||||||
|
int dock_layer; // layer number (0 = innermost layer)
|
||||||
|
int dock_row; // row number on the docking bar (0 = first row)
|
||||||
|
int dock_pos; // position inside the row (0 = first position)
|
||||||
|
|
||||||
|
wxSize best_size; // size that the layout engine will prefer
|
||||||
|
wxSize min_size; // minimum size the pane window can tolerate
|
||||||
|
wxSize max_size; // maximum size the pane window can tolerate
|
||||||
|
|
||||||
|
wxPoint floating_pos; // position while floating
|
||||||
|
wxSize floating_size; // size while floating
|
||||||
|
int dock_proportion; // proportion while docked
|
||||||
|
|
||||||
|
wxAuiPaneButtonArray buttons; // buttons on the pane
|
||||||
|
|
||||||
|
wxRect rect; // current rectangle (populated by wxAUI)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_AUI wxAuiFloatingFrame;
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiManager : public wxEvtHandler
|
||||||
|
{
|
||||||
|
friend class wxAuiFloatingFrame;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
wxAuiManager(wxWindow* managed_wnd = NULL,
|
||||||
|
unsigned int flags = wxAUI_MGR_DEFAULT);
|
||||||
|
virtual ~wxAuiManager();
|
||||||
|
void UnInit();
|
||||||
|
|
||||||
|
void SetFlags(unsigned int flags);
|
||||||
|
unsigned int GetFlags() const;
|
||||||
|
|
||||||
|
void SetManagedWindow(wxWindow* managed_wnd);
|
||||||
|
wxWindow* GetManagedWindow() const;
|
||||||
|
|
||||||
|
static wxAuiManager* GetManager(wxWindow* window);
|
||||||
|
|
||||||
|
void SetArtProvider(wxAuiDockArt* art_provider);
|
||||||
|
wxAuiDockArt* GetArtProvider() const;
|
||||||
|
|
||||||
|
wxAuiPaneInfo& GetPane(wxWindow* window);
|
||||||
|
wxAuiPaneInfo& GetPane(const wxString& name);
|
||||||
|
wxAuiPaneInfoArray& GetAllPanes();
|
||||||
|
|
||||||
|
bool AddPane(wxWindow* window,
|
||||||
|
const wxAuiPaneInfo& pane_info);
|
||||||
|
|
||||||
|
bool AddPane(wxWindow* window,
|
||||||
|
const wxAuiPaneInfo& pane_info,
|
||||||
|
const wxPoint& drop_pos);
|
||||||
|
|
||||||
|
bool AddPane(wxWindow* window,
|
||||||
|
int direction = wxLEFT,
|
||||||
|
const wxString& caption = wxEmptyString);
|
||||||
|
|
||||||
|
bool InsertPane(wxWindow* window,
|
||||||
|
const wxAuiPaneInfo& insert_location,
|
||||||
|
int insert_level = wxAUI_INSERT_PANE);
|
||||||
|
|
||||||
|
bool DetachPane(wxWindow* window);
|
||||||
|
|
||||||
|
void Update();
|
||||||
|
|
||||||
|
wxString SavePaneInfo(wxAuiPaneInfo& pane);
|
||||||
|
void LoadPaneInfo(wxString pane_part, wxAuiPaneInfo &pane);
|
||||||
|
wxString SavePerspective();
|
||||||
|
bool LoadPerspective(const wxString& perspective, bool update = true);
|
||||||
|
|
||||||
|
void SetDockSizeConstraint(double width_pct, double height_pct);
|
||||||
|
void GetDockSizeConstraint(double* width_pct, double* height_pct) const;
|
||||||
|
|
||||||
|
void ClosePane(wxAuiPaneInfo& pane_info);
|
||||||
|
void MaximizePane(wxAuiPaneInfo& pane_info);
|
||||||
|
void RestorePane(wxAuiPaneInfo& pane_info);
|
||||||
|
void RestoreMaximizedPane();
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual wxAuiFloatingFrame* CreateFloatingFrame(wxWindow* parent, const wxAuiPaneInfo& p);
|
||||||
|
|
||||||
|
void StartPaneDrag(
|
||||||
|
wxWindow* pane_window,
|
||||||
|
const wxPoint& offset);
|
||||||
|
|
||||||
|
wxRect CalculateHintRect(
|
||||||
|
wxWindow* pane_window,
|
||||||
|
const wxPoint& pt,
|
||||||
|
const wxPoint& offset);
|
||||||
|
|
||||||
|
void DrawHintRect(
|
||||||
|
wxWindow* pane_window,
|
||||||
|
const wxPoint& pt,
|
||||||
|
const wxPoint& offset);
|
||||||
|
|
||||||
|
virtual void ShowHint(const wxRect& rect);
|
||||||
|
virtual void HideHint();
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// deprecated -- please use SetManagedWindow() and
|
||||||
|
// and GetManagedWindow() instead
|
||||||
|
|
||||||
|
wxDEPRECATED( void SetFrame(wxFrame* frame) );
|
||||||
|
wxDEPRECATED( wxFrame* GetFrame() const );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void UpdateHintWindowConfig();
|
||||||
|
|
||||||
|
void DoFrameLayout();
|
||||||
|
|
||||||
|
void LayoutAddPane(wxSizer* container,
|
||||||
|
wxAuiDockInfo& dock,
|
||||||
|
wxAuiPaneInfo& pane,
|
||||||
|
wxAuiDockUIPartArray& uiparts,
|
||||||
|
bool spacer_only);
|
||||||
|
|
||||||
|
void LayoutAddDock(wxSizer* container,
|
||||||
|
wxAuiDockInfo& dock,
|
||||||
|
wxAuiDockUIPartArray& uiparts,
|
||||||
|
bool spacer_only);
|
||||||
|
|
||||||
|
wxSizer* LayoutAll(wxAuiPaneInfoArray& panes,
|
||||||
|
wxAuiDockInfoArray& docks,
|
||||||
|
wxAuiDockUIPartArray& uiparts,
|
||||||
|
bool spacer_only = false);
|
||||||
|
|
||||||
|
virtual bool ProcessDockResult(wxAuiPaneInfo& target,
|
||||||
|
const wxAuiPaneInfo& new_pos);
|
||||||
|
|
||||||
|
bool DoDrop(wxAuiDockInfoArray& docks,
|
||||||
|
wxAuiPaneInfoArray& panes,
|
||||||
|
wxAuiPaneInfo& drop,
|
||||||
|
const wxPoint& pt,
|
||||||
|
const wxPoint& action_offset = wxPoint(0,0));
|
||||||
|
|
||||||
|
wxAuiDockUIPart* HitTest(int x, int y);
|
||||||
|
wxAuiDockUIPart* GetPanePart(wxWindow* pane);
|
||||||
|
int GetDockPixelOffset(wxAuiPaneInfo& test);
|
||||||
|
void OnFloatingPaneMoveStart(wxWindow* window);
|
||||||
|
void OnFloatingPaneMoving(wxWindow* window, wxDirection dir );
|
||||||
|
void OnFloatingPaneMoved(wxWindow* window, wxDirection dir);
|
||||||
|
void OnFloatingPaneActivated(wxWindow* window);
|
||||||
|
void OnFloatingPaneClosed(wxWindow* window, wxCloseEvent& evt);
|
||||||
|
void OnFloatingPaneResized(wxWindow* window, const wxSize& size);
|
||||||
|
void Render(wxDC* dc);
|
||||||
|
void Repaint(wxDC* dc = NULL);
|
||||||
|
void ProcessMgrEvent(wxAuiManagerEvent& event);
|
||||||
|
void UpdateButtonOnScreen(wxAuiDockUIPart* button_ui_part,
|
||||||
|
const wxMouseEvent& event);
|
||||||
|
void GetPanePositionsAndSizes(wxAuiDockInfo& dock,
|
||||||
|
wxArrayInt& positions,
|
||||||
|
wxArrayInt& sizes);
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// public events (which can be invoked externally)
|
||||||
|
void OnRender(wxAuiManagerEvent& evt);
|
||||||
|
void OnPaneButton(wxAuiManagerEvent& evt);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// protected events
|
||||||
|
void OnPaint(wxPaintEvent& evt);
|
||||||
|
void OnEraseBackground(wxEraseEvent& evt);
|
||||||
|
void OnSize(wxSizeEvent& evt);
|
||||||
|
void OnSetCursor(wxSetCursorEvent& evt);
|
||||||
|
void OnLeftDown(wxMouseEvent& evt);
|
||||||
|
void OnLeftUp(wxMouseEvent& evt);
|
||||||
|
void OnMotion(wxMouseEvent& evt);
|
||||||
|
void OnLeaveWindow(wxMouseEvent& evt);
|
||||||
|
void OnChildFocus(wxChildFocusEvent& evt);
|
||||||
|
void OnHintFadeTimer(wxTimerEvent& evt);
|
||||||
|
void OnFindManager(wxAuiManagerEvent& evt);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
actionNone = 0,
|
||||||
|
actionResize,
|
||||||
|
actionClickButton,
|
||||||
|
actionClickCaption,
|
||||||
|
actionDragToolbarPane,
|
||||||
|
actionDragFloatingPane
|
||||||
|
};
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
wxWindow* m_frame; // the window being managed
|
||||||
|
wxAuiDockArt* m_art; // dock art object which does all drawing
|
||||||
|
unsigned int m_flags; // manager flags wxAUI_MGR_*
|
||||||
|
|
||||||
|
wxAuiPaneInfoArray m_panes; // array of panes structures
|
||||||
|
wxAuiDockInfoArray m_docks; // array of docks structures
|
||||||
|
wxAuiDockUIPartArray m_uiparts; // array of UI parts (captions, buttons, etc)
|
||||||
|
|
||||||
|
int m_action; // current mouse action
|
||||||
|
wxPoint m_action_start; // position where the action click started
|
||||||
|
wxPoint m_action_offset; // offset from upper left of the item clicked
|
||||||
|
wxAuiDockUIPart* m_action_part; // ptr to the part the action happened to
|
||||||
|
wxWindow* m_action_window; // action frame or window (NULL if none)
|
||||||
|
wxRect m_action_hintrect; // hint rectangle for the action
|
||||||
|
wxRect m_last_rect;
|
||||||
|
wxAuiDockUIPart* m_hover_button;// button uipart being hovered over
|
||||||
|
wxRect m_last_hint; // last hint rectangle
|
||||||
|
wxPoint m_last_mouse_move; // last mouse move position (see OnMotion)
|
||||||
|
bool m_skipping;
|
||||||
|
bool m_has_maximized;
|
||||||
|
|
||||||
|
double m_dock_constraint_x; // 0.0 .. 1.0; max pct of window width a dock can consume
|
||||||
|
double m_dock_constraint_y; // 0.0 .. 1.0; max pct of window height a dock can consume
|
||||||
|
|
||||||
|
wxFrame* m_hint_wnd; // transparent hint window, if supported by platform
|
||||||
|
wxTimer m_hint_fadetimer; // transparent fade timer
|
||||||
|
wxByte m_hint_fadeamt; // transparent fade amount
|
||||||
|
wxByte m_hint_fademax; // maximum value of hint fade
|
||||||
|
|
||||||
|
void* m_reserved;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_CLASS(wxAuiManager)
|
||||||
|
#endif // SWIG
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// event declarations/classes
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiManagerEvent : public wxEvent
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiManagerEvent(wxEventType type=wxEVT_NULL) : wxEvent(0, type)
|
||||||
|
{
|
||||||
|
manager = NULL;
|
||||||
|
pane = NULL;
|
||||||
|
button = 0;
|
||||||
|
veto_flag = false;
|
||||||
|
canveto_flag = true;
|
||||||
|
dc = NULL;
|
||||||
|
}
|
||||||
|
#ifndef SWIG
|
||||||
|
wxAuiManagerEvent(const wxAuiManagerEvent& c) : wxEvent(c)
|
||||||
|
{
|
||||||
|
manager = c.manager;
|
||||||
|
pane = c.pane;
|
||||||
|
button = c.button;
|
||||||
|
veto_flag = c.veto_flag;
|
||||||
|
canveto_flag = c.canveto_flag;
|
||||||
|
dc = c.dc;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
wxEvent *Clone() const { return new wxAuiManagerEvent(*this); }
|
||||||
|
|
||||||
|
void SetManager(wxAuiManager* mgr) { manager = mgr; }
|
||||||
|
void SetPane(wxAuiPaneInfo* p) { pane = p; }
|
||||||
|
void SetButton(int b) { button = b; }
|
||||||
|
void SetDC(wxDC* pdc) { dc = pdc; }
|
||||||
|
|
||||||
|
wxAuiManager* GetManager() const { return manager; }
|
||||||
|
wxAuiPaneInfo* GetPane() const { return pane; }
|
||||||
|
int GetButton() const { return button; }
|
||||||
|
wxDC* GetDC() const { return dc; }
|
||||||
|
|
||||||
|
void Veto(bool veto = true) { veto_flag = veto; }
|
||||||
|
bool GetVeto() const { return veto_flag; }
|
||||||
|
void SetCanVeto(bool can_veto) { canveto_flag = can_veto; }
|
||||||
|
bool CanVeto() const { return canveto_flag && veto_flag; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
wxAuiManager* manager;
|
||||||
|
wxAuiPaneInfo* pane;
|
||||||
|
int button;
|
||||||
|
bool veto_flag;
|
||||||
|
bool canveto_flag;
|
||||||
|
wxDC* dc;
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
private:
|
||||||
|
DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxAuiManagerEvent)
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiDockInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiDockInfo()
|
||||||
|
{
|
||||||
|
dock_direction = 0;
|
||||||
|
dock_layer = 0;
|
||||||
|
dock_row = 0;
|
||||||
|
size = 0;
|
||||||
|
min_size = 0;
|
||||||
|
resizable = true;
|
||||||
|
fixed = false;
|
||||||
|
toolbar = false;
|
||||||
|
reserved1 = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
wxAuiDockInfo(const wxAuiDockInfo& c)
|
||||||
|
{
|
||||||
|
dock_direction = c.dock_direction;
|
||||||
|
dock_layer = c.dock_layer;
|
||||||
|
dock_row = c.dock_row;
|
||||||
|
size = c.size;
|
||||||
|
min_size = c.min_size;
|
||||||
|
resizable = c.resizable;
|
||||||
|
fixed = c.fixed;
|
||||||
|
toolbar = c.toolbar;
|
||||||
|
panes = c.panes;
|
||||||
|
rect = c.rect;
|
||||||
|
reserved1 = c.reserved1;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxAuiDockInfo& operator=(const wxAuiDockInfo& c)
|
||||||
|
{
|
||||||
|
dock_direction = c.dock_direction;
|
||||||
|
dock_layer = c.dock_layer;
|
||||||
|
dock_row = c.dock_row;
|
||||||
|
size = c.size;
|
||||||
|
min_size = c.min_size;
|
||||||
|
resizable = c.resizable;
|
||||||
|
fixed = c.fixed;
|
||||||
|
toolbar = c.toolbar;
|
||||||
|
panes = c.panes;
|
||||||
|
rect = c.rect;
|
||||||
|
reserved1 = c.reserved1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
#endif // SWIG
|
||||||
|
|
||||||
|
bool IsOk() const { return (dock_direction != 0) ? true : false; }
|
||||||
|
bool IsHorizontal() const { return (dock_direction == wxAUI_DOCK_TOP ||
|
||||||
|
dock_direction == wxAUI_DOCK_BOTTOM) ? true:false; }
|
||||||
|
bool IsVertical() const { return (dock_direction == wxAUI_DOCK_LEFT ||
|
||||||
|
dock_direction == wxAUI_DOCK_RIGHT ||
|
||||||
|
dock_direction == wxAUI_DOCK_CENTER) ? true:false; }
|
||||||
|
public:
|
||||||
|
wxAuiPaneInfoPtrArray panes; // array of panes
|
||||||
|
wxRect rect; // current rectangle
|
||||||
|
int dock_direction; // dock direction (top, bottom, left, right, center)
|
||||||
|
int dock_layer; // layer number (0 = innermost layer)
|
||||||
|
int dock_row; // row number on the docking bar (0 = first row)
|
||||||
|
int size; // size of the dock
|
||||||
|
int min_size; // minimum size of a dock (0 if there is no min)
|
||||||
|
bool resizable; // flag indicating whether the dock is resizable
|
||||||
|
bool toolbar; // flag indicating dock contains only toolbars
|
||||||
|
bool fixed; // flag indicating that the dock operates on
|
||||||
|
// absolute coordinates as opposed to proportional
|
||||||
|
bool reserved1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiDockUIPart
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
typeCaption,
|
||||||
|
typeGripper,
|
||||||
|
typeDock,
|
||||||
|
typeDockSizer,
|
||||||
|
typePane,
|
||||||
|
typePaneSizer,
|
||||||
|
typeBackground,
|
||||||
|
typePaneBorder,
|
||||||
|
typePaneButton
|
||||||
|
};
|
||||||
|
|
||||||
|
int type; // ui part type (see enum above)
|
||||||
|
int orientation; // orientation (either wxHORIZONTAL or wxVERTICAL)
|
||||||
|
wxAuiDockInfo* dock; // which dock the item is associated with
|
||||||
|
wxAuiPaneInfo* pane; // which pane the item is associated with
|
||||||
|
wxAuiPaneButton* button; // which pane button the item is associated with
|
||||||
|
wxSizer* cont_sizer; // the part's containing sizer
|
||||||
|
wxSizerItem* sizer_item; // the sizer item of the part
|
||||||
|
wxRect rect; // client coord rectangle of the part itself
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiPaneButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
int button_id; // id of the button (e.g. buttonClose)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
// wx event machinery
|
||||||
|
|
||||||
|
BEGIN_DECLARE_EVENT_TYPES()
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_BUTTON, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_CLOSE, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_MAXIMIZE, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_RESTORE, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_RENDER, 0)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_AUI_FIND_MANAGER, 0)
|
||||||
|
END_DECLARE_EVENT_TYPES()
|
||||||
|
|
||||||
|
typedef void (wxEvtHandler::*wxAuiManagerEventFunction)(wxAuiManagerEvent&);
|
||||||
|
|
||||||
|
#define wxAuiManagerEventHandler(func) \
|
||||||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxAuiManagerEventFunction, &func)
|
||||||
|
|
||||||
|
#define EVT_AUI_PANE_BUTTON(func) \
|
||||||
|
wx__DECLARE_EVT0(wxEVT_AUI_PANE_BUTTON, wxAuiManagerEventHandler(func))
|
||||||
|
#define EVT_AUI_PANE_CLOSE(func) \
|
||||||
|
wx__DECLARE_EVT0(wxEVT_AUI_PANE_CLOSE, wxAuiManagerEventHandler(func))
|
||||||
|
#define EVT_AUI_PANE_MAXIMIZE(func) \
|
||||||
|
wx__DECLARE_EVT0(wxEVT_AUI_PANE_MAXIMIZE, wxAuiManagerEventHandler(func))
|
||||||
|
#define EVT_AUI_PANE_RESTORE(func) \
|
||||||
|
wx__DECLARE_EVT0(wxEVT_AUI_PANE_RESTORE, wxAuiManagerEventHandler(func))
|
||||||
|
#define EVT_AUI_RENDER(func) \
|
||||||
|
wx__DECLARE_EVT0(wxEVT_AUI_RENDER, wxAuiManagerEventHandler(func))
|
||||||
|
#define EVT_AUI_FIND_MANAGER(func) \
|
||||||
|
wx__DECLARE_EVT0(wxEVT_AUI_FIND_MANAGER, wxAuiManagerEventHandler(func))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
%constant wxEventType wxEVT_AUI_PANE_BUTTON;
|
||||||
|
%constant wxEventType wxEVT_AUI_PANE_CLOSE;
|
||||||
|
%constant wxEventType wxEVT_AUI_PANE_MAXIMIZE;
|
||||||
|
%constant wxEventType wxEVT_AUI_PANE_RESTORE;
|
||||||
|
%constant wxEventType wxEVT_AUI_RENDER;
|
||||||
|
%constant wxEventType wxEVT_AUI_FIND_MANAGER;
|
||||||
|
|
||||||
|
%pythoncode {
|
||||||
|
EVT_AUI_PANE_BUTTON = wx.PyEventBinder( wxEVT_AUI_PANE_BUTTON )
|
||||||
|
EVT_AUI_PANE_CLOSE = wx.PyEventBinder( wxEVT_AUI_PANE_CLOSE )
|
||||||
|
EVT_AUI_PANE_MAXIMIZE = wx.PyEventBinder( wxEVT_AUI_PANE_MAXIMIZE )
|
||||||
|
EVT_AUI_PANE_RESTORE = wx.PyEventBinder( wxEVT_AUI_PANE_RESTORE )
|
||||||
|
EVT_AUI_RENDER = wx.PyEventBinder( wxEVT_AUI_RENDER )
|
||||||
|
EVT_AUI_FIND_MANAGER = wx.PyEventBinder( wxEVT_AUI_FIND_MANAGER )
|
||||||
|
}
|
||||||
|
#endif // SWIG
|
||||||
|
|
||||||
|
#endif // wxUSE_AUI
|
||||||
|
#endif //_WX_FRAMEMANAGER_H_
|
||||||
|
|
|
@ -0,0 +1,269 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/generic/tabmdi.h
|
||||||
|
// Purpose: Generic MDI (Multiple Document Interface) classes
|
||||||
|
// Author: Hans Van Leemputten
|
||||||
|
// Modified by: Benjamin I. Williams / Kirix Corporation
|
||||||
|
// Created: 29/07/2002
|
||||||
|
// RCS-ID: $Id: tabmdi.h 53135 2008-04-12 02:31:04Z VZ $
|
||||||
|
// Copyright: (c) Hans Van Leemputten
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_AUITABMDI_H_
|
||||||
|
#define _WX_AUITABMDI_H_
|
||||||
|
|
||||||
|
#if wxUSE_AUI
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/frame.h"
|
||||||
|
#include "wx/panel.h"
|
||||||
|
#include "wx/notebook.h"
|
||||||
|
#include "wx/icon.h"
|
||||||
|
#include "wx/aui/auibook.h"
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// classes
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_AUI wxAuiMDIParentFrame;
|
||||||
|
class WXDLLIMPEXP_FWD_AUI wxAuiMDIClientWindow;
|
||||||
|
class WXDLLIMPEXP_FWD_AUI wxAuiMDIChildFrame;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// wxAuiMDIParentFrame
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiMDIParentFrame : public wxFrame
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiMDIParentFrame();
|
||||||
|
wxAuiMDIParentFrame(wxWindow *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
|
||||||
|
const wxString& name = wxFrameNameStr);
|
||||||
|
|
||||||
|
~wxAuiMDIParentFrame();
|
||||||
|
|
||||||
|
bool Create(wxWindow *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL,
|
||||||
|
const wxString& name = wxFrameNameStr );
|
||||||
|
|
||||||
|
void SetArtProvider(wxAuiTabArt* provider);
|
||||||
|
wxAuiTabArt* GetArtProvider();
|
||||||
|
wxAuiNotebook* GetNotebook() const;
|
||||||
|
|
||||||
|
#if wxUSE_MENUS
|
||||||
|
wxMenu* GetWindowMenu() const { return m_pWindowMenu; }
|
||||||
|
void SetWindowMenu(wxMenu* pMenu);
|
||||||
|
|
||||||
|
virtual void SetMenuBar(wxMenuBar *pMenuBar);
|
||||||
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
|
void SetChildMenuBar(wxAuiMDIChildFrame *pChild);
|
||||||
|
|
||||||
|
virtual bool ProcessEvent(wxEvent& event);
|
||||||
|
|
||||||
|
wxAuiMDIChildFrame *GetActiveChild() const;
|
||||||
|
void SetActiveChild(wxAuiMDIChildFrame* pChildFrame);
|
||||||
|
|
||||||
|
wxAuiMDIClientWindow *GetClientWindow() const;
|
||||||
|
virtual wxAuiMDIClientWindow *OnCreateClient();
|
||||||
|
|
||||||
|
virtual void Cascade() { /* Has no effect */ }
|
||||||
|
virtual void Tile(wxOrientation orient = wxHORIZONTAL);
|
||||||
|
virtual void ArrangeIcons() { /* Has no effect */ }
|
||||||
|
virtual void ActivateNext();
|
||||||
|
virtual void ActivatePrevious();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxAuiMDIClientWindow* m_pClientWindow;
|
||||||
|
wxAuiMDIChildFrame* m_pActiveChild;
|
||||||
|
wxEvent* m_pLastEvt;
|
||||||
|
|
||||||
|
#if wxUSE_MENUS
|
||||||
|
wxMenu *m_pWindowMenu;
|
||||||
|
wxMenuBar *m_pMyMenuBar;
|
||||||
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
#if wxUSE_MENUS
|
||||||
|
void RemoveWindowMenu(wxMenuBar *pMenuBar);
|
||||||
|
void AddWindowMenu(wxMenuBar *pMenuBar);
|
||||||
|
|
||||||
|
void DoHandleMenu(wxCommandEvent &event);
|
||||||
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
|
virtual void DoGetClientSize(int *width, int *height) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxAuiMDIParentFrame)
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// wxAuiMDIChildFrame
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiMDIChildFrame : public wxPanel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiMDIChildFrame();
|
||||||
|
wxAuiMDIChildFrame(wxAuiMDIParentFrame *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME_STYLE,
|
||||||
|
const wxString& name = wxFrameNameStr);
|
||||||
|
|
||||||
|
virtual ~wxAuiMDIChildFrame();
|
||||||
|
bool Create(wxAuiMDIParentFrame *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxString& title,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = wxDEFAULT_FRAME_STYLE,
|
||||||
|
const wxString& name = wxFrameNameStr);
|
||||||
|
|
||||||
|
#if wxUSE_MENUS
|
||||||
|
virtual void SetMenuBar(wxMenuBar *menu_bar);
|
||||||
|
virtual wxMenuBar *GetMenuBar() const;
|
||||||
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
|
virtual void SetTitle(const wxString& title);
|
||||||
|
virtual wxString GetTitle() const;
|
||||||
|
|
||||||
|
virtual void SetIcons(const wxIconBundle& icons);
|
||||||
|
virtual const wxIconBundle& GetIcons() const;
|
||||||
|
|
||||||
|
virtual void SetIcon(const wxIcon& icon);
|
||||||
|
virtual const wxIcon& GetIcon() const;
|
||||||
|
|
||||||
|
virtual void Activate();
|
||||||
|
virtual bool Destroy();
|
||||||
|
|
||||||
|
#if wxUSE_STATUSBAR
|
||||||
|
// no status bars
|
||||||
|
virtual wxStatusBar* CreateStatusBar(int WXUNUSED(number) = 1,
|
||||||
|
long WXUNUSED(style) = 1,
|
||||||
|
wxWindowID WXUNUSED(winid) = 1,
|
||||||
|
const wxString& WXUNUSED(name) = wxEmptyString)
|
||||||
|
{ return (wxStatusBar*)NULL; }
|
||||||
|
|
||||||
|
virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; }
|
||||||
|
virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {}
|
||||||
|
virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// no size hints
|
||||||
|
virtual void DoSetSizeHints(int WXUNUSED(minW),
|
||||||
|
int WXUNUSED(minH),
|
||||||
|
int WXUNUSED(maxW) = wxDefaultCoord,
|
||||||
|
int WXUNUSED(maxH) = wxDefaultCoord,
|
||||||
|
int WXUNUSED(incW) = wxDefaultCoord,
|
||||||
|
int WXUNUSED(incH) = wxDefaultCoord) {}
|
||||||
|
#if wxUSE_TOOLBAR
|
||||||
|
// no toolbar bars
|
||||||
|
virtual wxToolBar* CreateToolBar(long WXUNUSED(style),
|
||||||
|
wxWindowID WXUNUSED(winid),
|
||||||
|
const wxString& WXUNUSED(name))
|
||||||
|
{ return (wxToolBar*)NULL; }
|
||||||
|
virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// no maximize etc
|
||||||
|
virtual void Maximize(bool WXUNUSED(maximize) = true) { /* Has no effect */ }
|
||||||
|
virtual void Restore() { /* Has no effect */ }
|
||||||
|
virtual void Iconize(bool WXUNUSED(iconize) = true) { /* Has no effect */ }
|
||||||
|
virtual bool IsMaximized() const { return true; }
|
||||||
|
virtual bool IsIconized() const { return false; }
|
||||||
|
virtual bool ShowFullScreen(bool WXUNUSED(show), long WXUNUSED(style)) { return false; }
|
||||||
|
virtual bool IsFullScreen() const { return false; }
|
||||||
|
|
||||||
|
virtual bool IsTopLevel() const { return false; }
|
||||||
|
|
||||||
|
void OnMenuHighlight(wxMenuEvent& evt);
|
||||||
|
void OnActivate(wxActivateEvent& evt);
|
||||||
|
void OnCloseWindow(wxCloseEvent& evt);
|
||||||
|
|
||||||
|
void SetMDIParentFrame(wxAuiMDIParentFrame* parent);
|
||||||
|
wxAuiMDIParentFrame* GetMDIParentFrame() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void Init();
|
||||||
|
virtual bool Show(bool show = true);
|
||||||
|
virtual void DoSetSize(int x, int y, int width, int height, int size_flags);
|
||||||
|
virtual void DoMoveWindow(int x, int y, int width, int height);
|
||||||
|
|
||||||
|
public:
|
||||||
|
// This function needs to be called when a size change is confirmed,
|
||||||
|
// we needed this function to prevent anybody from the outside
|
||||||
|
// changing the panel... it messes the UI layout when we would allow it.
|
||||||
|
void ApplyMDIChildFrameRect();
|
||||||
|
void DoShow(bool show);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxAuiMDIParentFrame* m_pMDIParentFrame;
|
||||||
|
wxRect m_mdi_newrect;
|
||||||
|
wxRect m_mdi_currect;
|
||||||
|
wxString m_title;
|
||||||
|
wxIcon m_icon;
|
||||||
|
wxIconBundle m_icon_bundle;
|
||||||
|
bool m_activate_on_create;
|
||||||
|
|
||||||
|
#if wxUSE_MENUS
|
||||||
|
wxMenuBar* m_pMenuBar;
|
||||||
|
#endif // wxUSE_MENUS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxAuiMDIChildFrame)
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
friend class wxAuiMDIClientWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// wxAuiMDIClientWindow
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_AUI wxAuiMDIClientWindow : public wxAuiNotebook
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxAuiMDIClientWindow();
|
||||||
|
wxAuiMDIClientWindow(wxAuiMDIParentFrame *parent, long style = 0);
|
||||||
|
~wxAuiMDIClientWindow();
|
||||||
|
|
||||||
|
virtual bool CreateClient(wxAuiMDIParentFrame *parent,
|
||||||
|
long style = wxVSCROLL | wxHSCROLL);
|
||||||
|
|
||||||
|
virtual int SetSelection(size_t page);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
void PageChanged(int old_selection, int new_selection);
|
||||||
|
void OnPageClose(wxAuiNotebookEvent& evt);
|
||||||
|
void OnPageChanged(wxAuiNotebookEvent& evt);
|
||||||
|
void OnSize(wxSizeEvent& evt);
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_DYNAMIC_CLASS(wxAuiMDIClientWindow)
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
#endif // wxUSE_AUI
|
||||||
|
|
||||||
|
#endif // _WX_AUITABMDI_H_
|
|
@ -0,0 +1,65 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: include/wx/beforestd.h
|
||||||
|
// Purpose: #include before STL headers
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 07/07/03
|
||||||
|
// RCS-ID: $Id: beforestd.h 42906 2006-11-01 14:16:42Z VZ $
|
||||||
|
// Copyright: (c) 2003 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/**
|
||||||
|
Unfortunately, when compiling at maximum warning level, the standard
|
||||||
|
headers themselves may generate warnings -- and really lots of them. So
|
||||||
|
before including them, this header should be included to temporarily
|
||||||
|
suppress the warnings and after this the header afterstd.h should be
|
||||||
|
included to enable them back again.
|
||||||
|
|
||||||
|
Note that there are intentionally no inclusion guards in this file, because
|
||||||
|
it can be included several times.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// VC 7.x isn't as bad as VC6 and doesn't give these warnings but eVC (which
|
||||||
|
// defines _MSC_VER as 1201) does need to be included as it's VC6-like
|
||||||
|
#if defined(__VISUALC__) && __VISUALC__ <= 1201
|
||||||
|
// MSVC 5 does not have this
|
||||||
|
#if __VISUALC__ > 1100
|
||||||
|
// we have to disable (and reenable in afterstd.h) this one because,
|
||||||
|
// even though it is of level 4, it is not disabled by warning(push, 1)
|
||||||
|
// below for VC7.1!
|
||||||
|
|
||||||
|
// unreachable code
|
||||||
|
#pragma warning(disable:4702)
|
||||||
|
|
||||||
|
#pragma warning(push, 1)
|
||||||
|
#else // VC 5
|
||||||
|
// 'expression' : signed/unsigned mismatch
|
||||||
|
#pragma warning(disable:4018)
|
||||||
|
|
||||||
|
// 'identifier' : unreferenced formal parameter
|
||||||
|
#pragma warning(disable:4100)
|
||||||
|
|
||||||
|
// 'conversion' : conversion from 'type1' to 'type2',
|
||||||
|
// possible loss of data
|
||||||
|
#pragma warning(disable:4244)
|
||||||
|
|
||||||
|
// C++ language change: to explicitly specialize class template
|
||||||
|
// 'identifier' use the following syntax
|
||||||
|
#pragma warning(disable:4663)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// these warning have to be disabled and not just temporarily disabled
|
||||||
|
// because they will be given at the end of the compilation of the
|
||||||
|
// current source and there is absolutely nothing we can do about them
|
||||||
|
|
||||||
|
// 'foo': unreferenced inline function has been removed
|
||||||
|
#pragma warning(disable:4514)
|
||||||
|
|
||||||
|
// 'function' : function not inlined
|
||||||
|
#pragma warning(disable:4710)
|
||||||
|
|
||||||
|
// 'id': identifier was truncated to 'num' characters in the debug info
|
||||||
|
#pragma warning(disable:4786)
|
||||||
|
#endif // VC++ < 7
|
||||||
|
|
|
@ -0,0 +1,241 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/bitmap.h
|
||||||
|
// Purpose: wxBitmap class interface
|
||||||
|
// Author: Vaclav Slavik
|
||||||
|
// Modified by:
|
||||||
|
// Created: 22.04.01
|
||||||
|
// RCS-ID: $Id: bitmap.h 49563 2007-10-31 20:46:21Z VZ $
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxBitmapHandler;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxIcon;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxImage;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxMask;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxPalette;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxVariant support
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_VARIANT
|
||||||
|
#include "wx/variant.h"
|
||||||
|
DECLARE_VARIANT_OBJECT_EXPORTED(wxBitmap,WXDLLEXPORT)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxMask represents the transparent area of the bitmap
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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(__WXMGL__) || \
|
||||||
|
defined(__WXDFB__) || \
|
||||||
|
defined(__WXMAC__) || \
|
||||||
|
defined(__WXGTK__) || \
|
||||||
|
defined(__WXCOCOA__) || \
|
||||||
|
defined(__WXMOTIF__) || \
|
||||||
|
defined(__WXX11__)
|
||||||
|
#define wxUSE_BITMAP_BASE 1
|
||||||
|
#else
|
||||||
|
#define wxUSE_BITMAP_BASE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Only used by some ports
|
||||||
|
// FIXME -- make all ports (but MSW which uses wxGDIImage) use these base classes
|
||||||
|
#if wxUSE_BITMAP_BASE
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxBitmapHandler: class which knows how to create/load/save bitmaps in
|
||||||
|
// different formats
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxBitmapHandlerBase : public wxObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxBitmapHandlerBase() { m_type = wxBITMAP_TYPE_INVALID; }
|
||||||
|
virtual ~wxBitmapHandlerBase() { }
|
||||||
|
|
||||||
|
virtual bool Create(wxBitmap *bitmap, const void* data, long flags,
|
||||||
|
int width, int height, int depth = 1);
|
||||||
|
virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
|
||||||
|
int desiredWidth, int desiredHeight);
|
||||||
|
virtual bool SaveFile(const wxBitmap *bitmap, const wxString& name,
|
||||||
|
int type, const wxPalette *palette = NULL);
|
||||||
|
|
||||||
|
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(wxBitmapHandlerBase)
|
||||||
|
};
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxBitmapBase : public wxGDIObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*
|
||||||
|
Derived class must implement these:
|
||||||
|
|
||||||
|
wxBitmap();
|
||||||
|
wxBitmap(int width, int height, int depth = -1);
|
||||||
|
wxBitmap(const char bits[], int width, int height, int depth = 1);
|
||||||
|
wxBitmap(const char* const* bits);
|
||||||
|
wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM);
|
||||||
|
wxBitmap(const wxImage& image, int depth = -1);
|
||||||
|
|
||||||
|
bool Create(int width, int height, int depth = -1);
|
||||||
|
|
||||||
|
static void InitStandardHandlers();
|
||||||
|
*/
|
||||||
|
|
||||||
|
virtual bool Ok() const { return IsOk(); }
|
||||||
|
virtual bool IsOk() const = 0;
|
||||||
|
|
||||||
|
virtual int GetHeight() const = 0;
|
||||||
|
virtual int GetWidth() const = 0;
|
||||||
|
virtual int GetDepth() const = 0;
|
||||||
|
|
||||||
|
virtual wxImage ConvertToImage() const = 0;
|
||||||
|
|
||||||
|
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 = (wxPalette *)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(wxBitmapHandlerBase *handler);
|
||||||
|
static void InsertHandler(wxBitmapHandlerBase *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
|
||||||
|
|
||||||
|
#if defined(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/bitmap.h"
|
||||||
|
#elif defined(__WXMSW__)
|
||||||
|
#include "wx/msw/bitmap.h"
|
||||||
|
#elif defined(__WXMOTIF__)
|
||||||
|
#include "wx/x11/bitmap.h"
|
||||||
|
#elif defined(__WXGTK20__)
|
||||||
|
#include "wx/gtk/bitmap.h"
|
||||||
|
#elif defined(__WXGTK__)
|
||||||
|
#include "wx/gtk1/bitmap.h"
|
||||||
|
#elif defined(__WXX11__)
|
||||||
|
#include "wx/x11/bitmap.h"
|
||||||
|
#elif defined(__WXMGL__)
|
||||||
|
#include "wx/mgl/bitmap.h"
|
||||||
|
#elif defined(__WXDFB__)
|
||||||
|
#include "wx/dfb/bitmap.h"
|
||||||
|
#elif defined(__WXMAC__)
|
||||||
|
#include "wx/mac/bitmap.h"
|
||||||
|
#elif defined(__WXCOCOA__)
|
||||||
|
#include "wx/cocoa/bitmap.h"
|
||||||
|
#elif defined(__WXPM__)
|
||||||
|
#include "wx/os2/bitmap.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// we must include generic mask.h after wxBitmap definition
|
||||||
|
#if defined(__WXMGL__) || 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_
|
|
@ -0,0 +1,122 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/bmpbutton.h
|
||||||
|
// Purpose: wxBitmapButton class interface
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 25.08.00
|
||||||
|
// RCS-ID: $Id: bmpbuttn.h 45498 2007-04-16 13:03:05Z VZ $
|
||||||
|
// 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/bitmap.h"
|
||||||
|
#include "wx/button.h"
|
||||||
|
|
||||||
|
extern WXDLLEXPORT_DATA(const wxChar) wxButtonNameStr[];
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxBitmapButton: a button which shows bitmaps instead of the usual string.
|
||||||
|
// It has different bitmaps for different states (focused/disabled/pressed)
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxBitmapButtonBase : public wxButton
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxBitmapButtonBase()
|
||||||
|
{
|
||||||
|
m_marginX =
|
||||||
|
m_marginY = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// set the bitmaps
|
||||||
|
void SetBitmapLabel(const wxBitmap& bitmap)
|
||||||
|
{ m_bmpNormal = bitmap; OnSetBitmap(); }
|
||||||
|
void SetBitmapSelected(const wxBitmap& sel)
|
||||||
|
{ m_bmpSelected = sel; OnSetBitmap(); }
|
||||||
|
void SetBitmapFocus(const wxBitmap& focus)
|
||||||
|
{ m_bmpFocus = focus; OnSetBitmap(); }
|
||||||
|
void SetBitmapDisabled(const wxBitmap& disabled)
|
||||||
|
{ m_bmpDisabled = disabled; OnSetBitmap(); }
|
||||||
|
void SetBitmapHover(const wxBitmap& hover)
|
||||||
|
{ m_bmpHover = hover; OnSetBitmap(); }
|
||||||
|
|
||||||
|
// retrieve the bitmaps
|
||||||
|
const wxBitmap& GetBitmapLabel() const { return m_bmpNormal; }
|
||||||
|
const wxBitmap& GetBitmapSelected() const { return m_bmpSelected; }
|
||||||
|
const wxBitmap& GetBitmapFocus() const { return m_bmpFocus; }
|
||||||
|
const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; }
|
||||||
|
const wxBitmap& GetBitmapHover() const { return m_bmpHover; }
|
||||||
|
wxBitmap& GetBitmapLabel() { return m_bmpNormal; }
|
||||||
|
wxBitmap& GetBitmapSelected() { return m_bmpSelected; }
|
||||||
|
wxBitmap& GetBitmapFocus() { return m_bmpFocus; }
|
||||||
|
wxBitmap& GetBitmapDisabled() { return m_bmpDisabled; }
|
||||||
|
wxBitmap& GetBitmapHover() { return m_bmpHover; }
|
||||||
|
|
||||||
|
// set/get the margins around the button
|
||||||
|
virtual void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; }
|
||||||
|
int GetMarginX() const { return m_marginX; }
|
||||||
|
int GetMarginY() const { return m_marginY; }
|
||||||
|
|
||||||
|
// deprecated synonym for SetBitmapLabel()
|
||||||
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
wxDEPRECATED( void SetLabel(const wxBitmap& bitmap) );
|
||||||
|
|
||||||
|
// prevent virtual function hiding
|
||||||
|
virtual void SetLabel(const wxString& label)
|
||||||
|
{ wxWindow::SetLabel(label); }
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// function called when any of the bitmaps changes
|
||||||
|
virtual void OnSetBitmap() { InvalidateBestSize(); Refresh(); }
|
||||||
|
|
||||||
|
// the bitmaps for various states
|
||||||
|
wxBitmap m_bmpNormal,
|
||||||
|
m_bmpSelected,
|
||||||
|
m_bmpFocus,
|
||||||
|
m_bmpDisabled,
|
||||||
|
m_bmpHover;
|
||||||
|
|
||||||
|
// the margins around the bitmap
|
||||||
|
int m_marginX,
|
||||||
|
m_marginY;
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxBitmapButtonBase)
|
||||||
|
};
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
inline void wxBitmapButtonBase::SetLabel(const wxBitmap& bitmap)
|
||||||
|
{
|
||||||
|
SetBitmapLabel(bitmap);
|
||||||
|
}
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_6
|
||||||
|
|
||||||
|
#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/mac/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_
|
|
@ -0,0 +1,49 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/bmpcbox.h
|
||||||
|
// Purpose: wxBitmapComboBox base header
|
||||||
|
// Author: Jaakko Salli
|
||||||
|
// Modified by:
|
||||||
|
// Created: Aug-31-2006
|
||||||
|
// Copyright: (c) Jaakko Salli
|
||||||
|
// RCS-ID: $Id: bmpcbox.h 42046 2006-10-16 09:30:01Z ABX $
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_BMPCBOX_H_BASE_
|
||||||
|
#define _WX_BMPCBOX_H_BASE_
|
||||||
|
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_BITMAPCOMBOBOX
|
||||||
|
|
||||||
|
#include "wx/bitmap.h"
|
||||||
|
|
||||||
|
|
||||||
|
extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxBitmapComboBoxNameStr[];
|
||||||
|
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxBitmapComboBoxBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// ctors and such
|
||||||
|
wxBitmapComboBoxBase() { }
|
||||||
|
|
||||||
|
virtual ~wxBitmapComboBoxBase() { }
|
||||||
|
|
||||||
|
// Returns the image of the item with the given index.
|
||||||
|
virtual wxBitmap GetItemBitmap(unsigned int n) const = 0;
|
||||||
|
|
||||||
|
// Sets the image for the given item.
|
||||||
|
virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap) = 0;
|
||||||
|
|
||||||
|
// Returns size of the image used in list
|
||||||
|
virtual wxSize GetBitmapSize() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#include "wx/generic/bmpcbox.h"
|
||||||
|
|
||||||
|
#endif // wxUSE_BITMAPCOMBOBOX
|
||||||
|
|
||||||
|
#endif // _WX_BMPCBOX_H_BASE_
|
|
@ -0,0 +1,403 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/bookctrl.h
|
||||||
|
// Purpose: wxBookCtrlBase: common base class for wxList/Tree/Notebook
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 19.08.03
|
||||||
|
// RCS-ID: $Id: bookctrl.h 49563 2007-10-31 20:46:21Z VZ $
|
||||||
|
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_BOOKCTRL_H_
|
||||||
|
#define _WX_BOOKCTRL_H_
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// headers
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_BOOKCTRL
|
||||||
|
|
||||||
|
#include "wx/control.h"
|
||||||
|
#include "wx/dynarray.h"
|
||||||
|
|
||||||
|
WX_DEFINE_EXPORTED_ARRAY_PTR(wxWindow *, wxArrayPages);
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxImageList;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxBookCtrlBaseEvent;
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// constants
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// wxBookCtrl hit results
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
wxBK_HITTEST_NOWHERE = 1, // not on tab
|
||||||
|
wxBK_HITTEST_ONICON = 2, // on icon
|
||||||
|
wxBK_HITTEST_ONLABEL = 4, // on label
|
||||||
|
wxBK_HITTEST_ONITEM = wxBK_HITTEST_ONICON | wxBK_HITTEST_ONLABEL,
|
||||||
|
wxBK_HITTEST_ONPAGE = 8 // not on tab control, but over the selected page
|
||||||
|
};
|
||||||
|
|
||||||
|
// wxBookCtrl flags (common for wxNotebook, wxListbook, wxChoicebook, wxTreebook)
|
||||||
|
#define wxBK_DEFAULT 0x0000
|
||||||
|
#define wxBK_TOP 0x0010
|
||||||
|
#define wxBK_BOTTOM 0x0020
|
||||||
|
#define wxBK_LEFT 0x0040
|
||||||
|
#define wxBK_RIGHT 0x0080
|
||||||
|
#define wxBK_ALIGN_MASK (wxBK_TOP | wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT)
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxBookCtrlBase
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxBookCtrlBase : public wxControl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// construction
|
||||||
|
// ------------
|
||||||
|
|
||||||
|
wxBookCtrlBase()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
wxBookCtrlBase(wxWindow *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0,
|
||||||
|
const wxString& name = wxEmptyString)
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
|
||||||
|
(void)Create(parent, winid, pos, size, style, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// quasi ctor
|
||||||
|
bool Create(wxWindow *parent,
|
||||||
|
wxWindowID winid,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0,
|
||||||
|
const wxString& name = wxEmptyString);
|
||||||
|
|
||||||
|
// dtor
|
||||||
|
virtual ~wxBookCtrlBase();
|
||||||
|
|
||||||
|
|
||||||
|
// accessors
|
||||||
|
// ---------
|
||||||
|
|
||||||
|
// get number of pages in the dialog
|
||||||
|
virtual size_t GetPageCount() const { return m_pages.size(); }
|
||||||
|
|
||||||
|
// get the panel which represents the given page
|
||||||
|
wxWindow *GetPage(size_t n) { return m_pages[n]; }
|
||||||
|
wxWindow *GetPage(size_t n) const { return m_pages[n]; }
|
||||||
|
|
||||||
|
// get the current page or NULL if none
|
||||||
|
wxWindow *GetCurrentPage() const
|
||||||
|
{
|
||||||
|
const int n = GetSelection();
|
||||||
|
return n == wxNOT_FOUND ? NULL : GetPage(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the currently selected page or wxNOT_FOUND if none
|
||||||
|
virtual int GetSelection() const = 0;
|
||||||
|
|
||||||
|
// set/get the title of a page
|
||||||
|
virtual bool SetPageText(size_t n, const wxString& strText) = 0;
|
||||||
|
virtual wxString GetPageText(size_t n) const = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// image list stuff: each page may have an image associated with it (all
|
||||||
|
// images belong to the same image list)
|
||||||
|
// ---------------------------------------------------------------------
|
||||||
|
|
||||||
|
// sets the image list to use, it is *not* deleted by the control
|
||||||
|
virtual void SetImageList(wxImageList *imageList);
|
||||||
|
|
||||||
|
// as SetImageList() but we will delete the image list ourselves
|
||||||
|
void AssignImageList(wxImageList *imageList);
|
||||||
|
|
||||||
|
// get pointer (may be NULL) to the associated image list
|
||||||
|
wxImageList* GetImageList() const { return m_imageList; }
|
||||||
|
|
||||||
|
// sets/returns item's image index in the current image list
|
||||||
|
virtual int GetPageImage(size_t n) const = 0;
|
||||||
|
virtual bool SetPageImage(size_t n, int imageId) = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// geometry
|
||||||
|
// --------
|
||||||
|
|
||||||
|
// resize the notebook so that all pages will have the specified size
|
||||||
|
virtual void SetPageSize(const wxSize& size);
|
||||||
|
|
||||||
|
// calculate the size of the control from the size of its page
|
||||||
|
virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const = 0;
|
||||||
|
|
||||||
|
// get/set size of area between book control area and page area
|
||||||
|
unsigned int GetInternalBorder() const { return m_internalBorder; }
|
||||||
|
void SetInternalBorder(unsigned int border) { m_internalBorder = border; }
|
||||||
|
|
||||||
|
// Sets/gets the margin around the controller
|
||||||
|
void SetControlMargin(int margin) { m_controlMargin = margin; }
|
||||||
|
int GetControlMargin() const { return m_controlMargin; }
|
||||||
|
|
||||||
|
// returns true if we have wxBK_TOP or wxBK_BOTTOM style
|
||||||
|
bool IsVertical() const { return HasFlag(wxBK_BOTTOM | wxBK_TOP); }
|
||||||
|
|
||||||
|
// set/get option to shrink to fit current page
|
||||||
|
void SetFitToCurrentPage(bool fit) { m_fitToCurrentPage = fit; }
|
||||||
|
bool GetFitToCurrentPage() const { return m_fitToCurrentPage; }
|
||||||
|
|
||||||
|
// returns the sizer containing the control, if any
|
||||||
|
wxSizer* GetControlSizer() const { return m_controlSizer; }
|
||||||
|
|
||||||
|
// operations
|
||||||
|
// ----------
|
||||||
|
|
||||||
|
// remove one page from the control and delete it
|
||||||
|
virtual bool DeletePage(size_t n);
|
||||||
|
|
||||||
|
// remove one page from the notebook, without deleting it
|
||||||
|
virtual bool RemovePage(size_t n)
|
||||||
|
{
|
||||||
|
DoInvalidateBestSize();
|
||||||
|
return DoRemovePage(n) != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove all pages and delete them
|
||||||
|
virtual bool DeleteAllPages()
|
||||||
|
{
|
||||||
|
DoInvalidateBestSize();
|
||||||
|
WX_CLEAR_ARRAY(m_pages);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// adds a new page to the control
|
||||||
|
virtual bool AddPage(wxWindow *page,
|
||||||
|
const wxString& text,
|
||||||
|
bool bSelect = false,
|
||||||
|
int imageId = -1)
|
||||||
|
{
|
||||||
|
DoInvalidateBestSize();
|
||||||
|
return InsertPage(GetPageCount(), page, text, bSelect, imageId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// the same as AddPage(), but adds the page at the specified position
|
||||||
|
virtual bool InsertPage(size_t n,
|
||||||
|
wxWindow *page,
|
||||||
|
const wxString& text,
|
||||||
|
bool bSelect = false,
|
||||||
|
int imageId = -1) = 0;
|
||||||
|
|
||||||
|
// set the currently selected page, return the index of the previously
|
||||||
|
// selected one (or -1 on error)
|
||||||
|
//
|
||||||
|
// NB: this function will generate PAGE_CHANGING/ED events
|
||||||
|
virtual int SetSelection(size_t n) = 0;
|
||||||
|
|
||||||
|
// acts as SetSelection but does not generate events
|
||||||
|
virtual int ChangeSelection(size_t n) = 0;
|
||||||
|
|
||||||
|
|
||||||
|
// cycle thru the pages
|
||||||
|
void AdvanceSelection(bool forward = true)
|
||||||
|
{
|
||||||
|
int nPage = GetNextPage(forward);
|
||||||
|
if ( nPage != -1 )
|
||||||
|
{
|
||||||
|
// cast is safe because of the check above
|
||||||
|
SetSelection((size_t)nPage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// hit test: returns which page is hit and, optionally, where (icon, label)
|
||||||
|
virtual int HitTest(const wxPoint& WXUNUSED(pt),
|
||||||
|
long * WXUNUSED(flags) = NULL) const
|
||||||
|
{
|
||||||
|
return wxNOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// we do have multiple pages
|
||||||
|
virtual bool HasMultiplePages() const { return true; }
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// flags for DoSetSelection()
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
SetSelection_SendEvent = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
// set the selection to the given page, sending the events (which can
|
||||||
|
// possibly prevent the page change from taking place) if SendEvent flag is
|
||||||
|
// included
|
||||||
|
virtual int DoSetSelection(size_t nPage, int flags = 0);
|
||||||
|
|
||||||
|
// if the derived class uses DoSetSelection() for implementing
|
||||||
|
// [Set|Change]Selection, it must override UpdateSelectedPage(),
|
||||||
|
// CreatePageChangingEvent() and MakeChangedEvent(), but as it might not
|
||||||
|
// use it, these functions are not pure virtual
|
||||||
|
|
||||||
|
// called to notify the control about a new current page
|
||||||
|
virtual void UpdateSelectedPage(size_t WXUNUSED(newsel))
|
||||||
|
{ wxFAIL_MSG(wxT("Override this function!")); }
|
||||||
|
|
||||||
|
// create a new "page changing" event
|
||||||
|
virtual wxBookCtrlBaseEvent* CreatePageChangingEvent() const
|
||||||
|
{ wxFAIL_MSG(wxT("Override this function!")); return NULL; }
|
||||||
|
|
||||||
|
// modify the event created by CreatePageChangingEvent() to "page changed"
|
||||||
|
// event, usually by just calling SetEventType() on it
|
||||||
|
virtual void MakeChangedEvent(wxBookCtrlBaseEvent& WXUNUSED(event))
|
||||||
|
{ wxFAIL_MSG(wxT("Override this function!")); }
|
||||||
|
|
||||||
|
|
||||||
|
// Should we accept NULL page pointers in Add/InsertPage()?
|
||||||
|
//
|
||||||
|
// Default is no but derived classes may override it if they can treat NULL
|
||||||
|
// pages in some sensible way (e.g. wxTreebook overrides this to allow
|
||||||
|
// having nodes without any associated page)
|
||||||
|
virtual bool AllowNullPage() const { return false; }
|
||||||
|
|
||||||
|
// remove the page and return a pointer to it
|
||||||
|
virtual wxWindow *DoRemovePage(size_t page) = 0;
|
||||||
|
|
||||||
|
// our best size is the size which fits all our pages
|
||||||
|
virtual wxSize DoGetBestSize() const;
|
||||||
|
|
||||||
|
// helper: get the next page wrapping if we reached the end
|
||||||
|
int GetNextPage(bool forward) const;
|
||||||
|
|
||||||
|
// Lay out controls
|
||||||
|
void DoSize();
|
||||||
|
|
||||||
|
// This method also invalidates the size of the controller and should be
|
||||||
|
// called instead of just InvalidateBestSize() whenever pages are added or
|
||||||
|
// removed as this also affects the controller
|
||||||
|
void DoInvalidateBestSize();
|
||||||
|
|
||||||
|
#if wxUSE_HELP
|
||||||
|
// Show the help for the corresponding page
|
||||||
|
void OnHelp(wxHelpEvent& event);
|
||||||
|
#endif // wxUSE_HELP
|
||||||
|
|
||||||
|
|
||||||
|
// the array of all pages of this control
|
||||||
|
wxArrayPages m_pages;
|
||||||
|
|
||||||
|
// the associated image list or NULL
|
||||||
|
wxImageList *m_imageList;
|
||||||
|
|
||||||
|
// true if we must delete m_imageList
|
||||||
|
bool m_ownsImageList;
|
||||||
|
|
||||||
|
// get the page area
|
||||||
|
wxRect GetPageRect() const;
|
||||||
|
|
||||||
|
// event handlers
|
||||||
|
virtual wxSize GetControllerSize() const;
|
||||||
|
void OnSize(wxSizeEvent& event);
|
||||||
|
|
||||||
|
// controller buddy if available, NULL otherwise (usually for native book controls like wxNotebook)
|
||||||
|
wxControl *m_bookctrl;
|
||||||
|
|
||||||
|
// Whether to shrink to fit current page
|
||||||
|
bool m_fitToCurrentPage;
|
||||||
|
|
||||||
|
// the sizer containing the choice control
|
||||||
|
wxSizer *m_controlSizer;
|
||||||
|
|
||||||
|
// the margin around the choice control
|
||||||
|
int m_controlMargin;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
// common part of all ctors
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
// internal border
|
||||||
|
unsigned int m_internalBorder;
|
||||||
|
|
||||||
|
DECLARE_ABSTRACT_CLASS(wxBookCtrlBase)
|
||||||
|
DECLARE_NO_COPY_CLASS(wxBookCtrlBase)
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxBookCtrlBaseEvent: page changing events generated by derived classes
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxBookCtrlBaseEvent : public wxNotifyEvent
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxBookCtrlBaseEvent(wxEventType commandType = wxEVT_NULL, int winid = 0,
|
||||||
|
int nSel = -1, int nOldSel = -1)
|
||||||
|
: wxNotifyEvent(commandType, winid)
|
||||||
|
{
|
||||||
|
m_nSel = nSel;
|
||||||
|
m_nOldSel = nOldSel;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxBookCtrlBaseEvent(const wxBookCtrlBaseEvent& event)
|
||||||
|
: wxNotifyEvent(event)
|
||||||
|
{
|
||||||
|
m_nSel = event.m_nSel;
|
||||||
|
m_nOldSel = event.m_nOldSel;
|
||||||
|
}
|
||||||
|
|
||||||
|
// accessors
|
||||||
|
// the currently selected page (-1 if none)
|
||||||
|
int GetSelection() const { return m_nSel; }
|
||||||
|
void SetSelection(int nSel) { m_nSel = nSel; }
|
||||||
|
// the page that was selected before the change (-1 if none)
|
||||||
|
int GetOldSelection() const { return m_nOldSel; }
|
||||||
|
void SetOldSelection(int nOldSel) { m_nOldSel = nOldSel; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int m_nSel, // currently selected page
|
||||||
|
m_nOldSel; // previously selected page
|
||||||
|
};
|
||||||
|
|
||||||
|
// make a default book control for given platform
|
||||||
|
#if wxUSE_NOTEBOOK
|
||||||
|
// dedicated to majority of desktops
|
||||||
|
#include "wx/notebook.h"
|
||||||
|
#define wxBookCtrl wxNotebook
|
||||||
|
#define wxBookCtrlEvent wxNotebookEvent
|
||||||
|
#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED
|
||||||
|
#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING
|
||||||
|
#define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_NOTEBOOK_PAGE_CHANGED(id, fn)
|
||||||
|
#define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_NOTEBOOK_PAGE_CHANGING(id, fn)
|
||||||
|
#define wxBookctrlEventHandler(func) wxNotebookEventHandler(func)
|
||||||
|
#else
|
||||||
|
// dedicated to Smartphones
|
||||||
|
#include "wx/choicebk.h"
|
||||||
|
#define wxBookCtrl wxChoicebook
|
||||||
|
#define wxBookCtrlEvent wxChoicebookEvent
|
||||||
|
#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED
|
||||||
|
#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING
|
||||||
|
#define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_CHOICEBOOK_PAGE_CHANGED(id, fn)
|
||||||
|
#define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_CHOICEBOOK_PAGE_CHANGING(id, fn)
|
||||||
|
#define wxBookctrlEventHandler(func) wxChoicebookEventHandler(func)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY_2_6
|
||||||
|
#define wxBC_TOP wxBK_TOP
|
||||||
|
#define wxBC_BOTTOM wxBK_BOTTOM
|
||||||
|
#define wxBC_LEFT wxBK_LEFT
|
||||||
|
#define wxBC_RIGHT wxBK_RIGHT
|
||||||
|
#define wxBC_DEFAULT wxBK_DEFAULT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_BOOKCTRL
|
||||||
|
|
||||||
|
#endif // _WX_BOOKCTRL_H_
|
|
@ -0,0 +1,54 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/brush.h
|
||||||
|
// Purpose: Includes platform-specific wxBrush file
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created:
|
||||||
|
// RCS-ID: $Id: brush.h 40865 2006-08-27 09:42:42Z VS $
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
// wxBrushBase
|
||||||
|
class WXDLLEXPORT wxBrushBase: public wxGDIObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~wxBrushBase() { }
|
||||||
|
|
||||||
|
virtual int GetStyle() const = 0;
|
||||||
|
|
||||||
|
virtual bool IsHatch() const
|
||||||
|
{ return (GetStyle()>=wxFIRST_HATCH) && (GetStyle()<=wxLAST_HATCH); }
|
||||||
|
};
|
||||||
|
|
||||||
|
#if defined(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/brush.h"
|
||||||
|
#elif 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(__WXMGL__)
|
||||||
|
#include "wx/mgl/brush.h"
|
||||||
|
#elif defined(__WXDFB__)
|
||||||
|
#include "wx/dfb/brush.h"
|
||||||
|
#elif defined(__WXMAC__)
|
||||||
|
#include "wx/mac/brush.h"
|
||||||
|
#elif defined(__WXCOCOA__)
|
||||||
|
#include "wx/cocoa/brush.h"
|
||||||
|
#elif defined(__WXPM__)
|
||||||
|
#include "wx/os2/brush.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_BRUSH_H_BASE_
|
|
@ -0,0 +1,314 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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: buffer.h 45761 2007-05-02 17:09:30Z VS $
|
||||||
|
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_BUFFER_H
|
||||||
|
#define _WX_BUFFER_H
|
||||||
|
|
||||||
|
#include "wx/wxchar.h"
|
||||||
|
|
||||||
|
#include <stdlib.h> // malloc() and free()
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Special classes for (wide) character strings: they use malloc/free instead
|
||||||
|
// of new/delete
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define DEFINE_BUFFER(classname, chartype, strdupfunc) \
|
||||||
|
class WXDLLIMPEXP_BASE classname \
|
||||||
|
{ \
|
||||||
|
public: \
|
||||||
|
classname(const chartype *str = NULL) \
|
||||||
|
: m_str(str ? strdupfunc(str) : NULL) \
|
||||||
|
{ \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
classname(size_t len) \
|
||||||
|
: m_str((chartype *)malloc((len + 1)*sizeof(chartype))) \
|
||||||
|
{ \
|
||||||
|
m_str[len] = (chartype)0; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
/* no need to check for NULL, free() does it */ \
|
||||||
|
~classname() { free(m_str); } \
|
||||||
|
\
|
||||||
|
/* \
|
||||||
|
WARNING: \
|
||||||
|
\
|
||||||
|
the copy ctor and assignment operators change the passed in object \
|
||||||
|
even although it is declared as "const", so: \
|
||||||
|
\
|
||||||
|
a) it shouldn't be really const \
|
||||||
|
b) you shouldn't use it afterwards (or know that it was reset) \
|
||||||
|
\
|
||||||
|
This is very ugly but is unfortunately needed to make the normal use\
|
||||||
|
of classname buffer objects possible and is very similar to what \
|
||||||
|
std::auto_ptr<> does (as if it were an excuse...) \
|
||||||
|
*/ \
|
||||||
|
\
|
||||||
|
/* \
|
||||||
|
because of the remark above, release() is declared const even if it \
|
||||||
|
isn't really const \
|
||||||
|
*/ \
|
||||||
|
chartype *release() const \
|
||||||
|
{ \
|
||||||
|
chartype *p = m_str; \
|
||||||
|
((classname *)this)->m_str = NULL; \
|
||||||
|
return p; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
void reset() \
|
||||||
|
{ \
|
||||||
|
free(m_str); \
|
||||||
|
m_str = NULL; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
classname(const classname& src) \
|
||||||
|
: m_str(src.release()) \
|
||||||
|
{ \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
classname& operator=(const chartype *str) \
|
||||||
|
{ \
|
||||||
|
free(m_str); \
|
||||||
|
m_str = str ? strdupfunc(str) : NULL; \
|
||||||
|
return *this; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
classname& operator=(const classname& src) \
|
||||||
|
{ \
|
||||||
|
free(m_str); \
|
||||||
|
m_str = src.release(); \
|
||||||
|
\
|
||||||
|
return *this; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
bool extend(size_t len) \
|
||||||
|
{ \
|
||||||
|
chartype * \
|
||||||
|
str = (chartype *)realloc(m_str, (len + 1)*sizeof(chartype)); \
|
||||||
|
if ( !str ) \
|
||||||
|
return false; \
|
||||||
|
\
|
||||||
|
m_str = str; \
|
||||||
|
\
|
||||||
|
return true; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
|
chartype *data() { return m_str; } \
|
||||||
|
const chartype *data() const { return m_str; } \
|
||||||
|
operator const chartype *() const { return m_str; } \
|
||||||
|
chartype operator[](size_t n) const { return m_str[n]; } \
|
||||||
|
\
|
||||||
|
private: \
|
||||||
|
chartype *m_str; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#if wxABI_VERSION >= 20804
|
||||||
|
// needed for wxString::char_str() and wchar_str()
|
||||||
|
#define DEFINE_WRITABLE_BUFFER(classname, baseclass, chartype) \
|
||||||
|
class WXDLLIMPEXP_BASE classname : public baseclass \
|
||||||
|
{ \
|
||||||
|
public: \
|
||||||
|
classname(const baseclass& src) : baseclass(src) {} \
|
||||||
|
classname(const chartype *str = NULL) : baseclass(str) {} \
|
||||||
|
\
|
||||||
|
operator chartype*() { return this->data(); } \
|
||||||
|
}
|
||||||
|
#endif // wxABI_VERSION >= 20804
|
||||||
|
|
||||||
|
DEFINE_BUFFER(wxCharBuffer, char, wxStrdupA);
|
||||||
|
#if wxABI_VERSION >= 20804
|
||||||
|
DEFINE_WRITABLE_BUFFER(wxWritableCharBuffer, wxCharBuffer, char);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_WCHAR_T
|
||||||
|
|
||||||
|
DEFINE_BUFFER(wxWCharBuffer, wchar_t, wxStrdupW);
|
||||||
|
#if wxABI_VERSION >= 20804
|
||||||
|
DEFINE_WRITABLE_BUFFER(wxWritableWCharBuffer, wxWCharBuffer, wchar_t);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_WCHAR_T
|
||||||
|
|
||||||
|
#undef DEFINE_BUFFER
|
||||||
|
#undef DEFINE_WRITABLE_BUFFER
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
|
typedef wxWCharBuffer wxWxCharBuffer;
|
||||||
|
|
||||||
|
#define wxMB2WXbuf wxWCharBuffer
|
||||||
|
#define wxWX2MBbuf wxCharBuffer
|
||||||
|
#define wxWC2WXbuf wxChar*
|
||||||
|
#define wxWX2WCbuf wxChar*
|
||||||
|
#else // ANSI
|
||||||
|
typedef wxCharBuffer wxWxCharBuffer;
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
DECLARE_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)
|
||||||
|
{
|
||||||
|
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; }
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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, _T("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(); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxMemoryBufferData* m_bufdata;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// template class for any kind of data
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
|
||||||
|
#endif // _WX_BUFFER_H
|
|
@ -0,0 +1,149 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/build.h
|
||||||
|
// Purpose: Runtime build options checking
|
||||||
|
// Author: Vadim Zeitlin, Vaclav Slavik
|
||||||
|
// Modified by:
|
||||||
|
// Created: 07.05.02
|
||||||
|
// RCS-ID: $Id: build.h 35858 2005-10-09 15:48:42Z MBN $
|
||||||
|
// 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 buildm, 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
|
||||||
|
|
||||||
|
#ifdef __WXDEBUG__
|
||||||
|
#define __WX_BO_DEBUG "debug"
|
||||||
|
#else
|
||||||
|
#define __WX_BO_DEBUG "no debug"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_UNICODE
|
||||||
|
#define __WX_BO_UNICODE "Unicode"
|
||||||
|
#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++"
|
||||||
|
#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_4
|
||||||
|
#define __WX_BO_WXWIN_COMPAT_2_4 ",compatible with 2.4"
|
||||||
|
#else
|
||||||
|
#define __WX_BO_WXWIN_COMPAT_2_4
|
||||||
|
#endif
|
||||||
|
#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
|
||||||
|
|
||||||
|
// deriving wxWin containers from STL ones changes them completely:
|
||||||
|
#if wxUSE_STL
|
||||||
|
#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_DEBUG "," __WX_BO_UNICODE \
|
||||||
|
__WX_BO_COMPILER \
|
||||||
|
__WX_BO_STL \
|
||||||
|
__WX_BO_WXWIN_COMPAT_2_4 __WX_BO_WXWIN_COMPAT_2_6 \
|
||||||
|
")"
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// 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 IMPLEMENT_APP() does.
|
||||||
|
#define WX_CHECK_BUILD_OPTIONS(libName) \
|
||||||
|
static struct wxBuildOptionsChecker \
|
||||||
|
{ \
|
||||||
|
wxBuildOptionsChecker() \
|
||||||
|
{ \
|
||||||
|
wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \
|
||||||
|
libName); \
|
||||||
|
} \
|
||||||
|
} gs_buildOptionsCheck;
|
||||||
|
|
||||||
|
|
||||||
|
#if WXWIN_COMPATIBILITY_2_4
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxBuildOptions
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// NB: Don't use this class in new code, it relies on the ctor being always
|
||||||
|
// inlined. WX_BUILD_OPTIONS_SIGNATURE always works.
|
||||||
|
class wxBuildOptions
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// the ctor must be inline to get the compilation settings of the code
|
||||||
|
// which included this header
|
||||||
|
wxBuildOptions() : m_signature(WX_BUILD_OPTIONS_SIGNATURE) {}
|
||||||
|
|
||||||
|
private:
|
||||||
|
const char *m_signature;
|
||||||
|
|
||||||
|
// actually only CheckBuildOptions() should be our friend but well...
|
||||||
|
friend class wxAppConsole;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // WXWIN_COMPATIBILITY_2_4
|
||||||
|
|
||||||
|
#endif // _WX_BUILD_H_
|
|
@ -0,0 +1,21 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/busyinfo.h
|
||||||
|
// Purpose: Information window (when app is busy)
|
||||||
|
// Author: Vaclav Slavik
|
||||||
|
// Copyright: (c) 1999 Vaclav Slavik
|
||||||
|
// RCS-ID: $Id: busyinfo.h 37158 2006-01-26 15:40:46Z ABX $
|
||||||
|
// 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__
|
|
@ -0,0 +1,106 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/button.h
|
||||||
|
// Purpose: wxButtonBase class
|
||||||
|
// Author: Vadim Zetlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 15.08.00
|
||||||
|
// RCS-ID: $Id: button.h 49563 2007-10-31 20:46:21Z VZ $
|
||||||
|
// Copyright: (c) Vadim Zetlin
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_BUTTON_H_BASE_
|
||||||
|
#define _WX_BUTTON_H_BASE_
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxButton flags shared with other classes
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_TOGGLEBTN || wxUSE_BUTTON
|
||||||
|
|
||||||
|
// 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 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_BUTTON
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxButton specific flags
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
#include "wx/control.h"
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxBitmap;
|
||||||
|
|
||||||
|
extern WXDLLEXPORT_DATA(const wxChar) wxButtonNameStr[];
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxButton: a push button
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxButtonBase : public wxControl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxButtonBase() { }
|
||||||
|
|
||||||
|
// show the image in the button in addition to the label
|
||||||
|
virtual void SetImageLabel(const wxBitmap& WXUNUSED(bitmap)) { }
|
||||||
|
|
||||||
|
// set the margins around the image
|
||||||
|
virtual void SetImageMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) { }
|
||||||
|
|
||||||
|
// this wxButton method is called when the button becomes the default one
|
||||||
|
// on its panel
|
||||||
|
virtual void SetDefault() { }
|
||||||
|
|
||||||
|
// 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 wxButtonBase to make it consistent.
|
||||||
|
virtual bool ShouldInheritColours() const { return false; }
|
||||||
|
|
||||||
|
// returns the default button size for this platform
|
||||||
|
static wxSize GetDefaultSize();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
DECLARE_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/mac/button.h"
|
||||||
|
#elif defined(__WXCOCOA__)
|
||||||
|
#include "wx/cocoa/button.h"
|
||||||
|
#elif defined(__WXPM__)
|
||||||
|
#include "wx/os2/button.h"
|
||||||
|
#elif defined(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/button.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_BUTTON
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_BUTTON_H_BASE_
|
|
@ -0,0 +1,232 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/calctrl.h
|
||||||
|
// Purpose: date-picker control
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 29.12.99
|
||||||
|
// RCS-ID: $Id: calctrl.h 53135 2008-04-12 02:31:04Z VZ $
|
||||||
|
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO
|
||||||
|
|
||||||
|
1. implement multiple selections for date ranges
|
||||||
|
2. background bitmap for the calendar?
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _WX_CALCTRL_H_
|
||||||
|
#define _WX_CALCTRL_H_
|
||||||
|
|
||||||
|
#include "wx/defs.h"
|
||||||
|
|
||||||
|
#if wxUSE_CALENDARCTRL
|
||||||
|
|
||||||
|
#include "wx/dateevt.h"
|
||||||
|
#include "wx/colour.h"
|
||||||
|
#include "wx/font.h"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxCalendarCtrl flags
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
// show Sunday as the first day of the week (default)
|
||||||
|
wxCAL_SUNDAY_FIRST = 0x0000,
|
||||||
|
|
||||||
|
// show Monder as the first day of the week
|
||||||
|
wxCAL_MONDAY_FIRST = 0x0001,
|
||||||
|
|
||||||
|
// highlight holidays
|
||||||
|
wxCAL_SHOW_HOLIDAYS = 0x0002,
|
||||||
|
|
||||||
|
// disable the year change control, show only the month change one
|
||||||
|
wxCAL_NO_YEAR_CHANGE = 0x0004,
|
||||||
|
|
||||||
|
// don't allow changing neither month nor year (implies
|
||||||
|
// wxCAL_NO_YEAR_CHANGE)
|
||||||
|
wxCAL_NO_MONTH_CHANGE = 0x000c,
|
||||||
|
|
||||||
|
// use MS-style month-selection instead of combo-spin combination
|
||||||
|
wxCAL_SEQUENTIAL_MONTH_SELECTION = 0x0010,
|
||||||
|
|
||||||
|
// show the neighbouring weeks in the previous and next month
|
||||||
|
wxCAL_SHOW_SURROUNDING_WEEKS = 0x0020
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// constants
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// return values for the HitTest() method
|
||||||
|
enum wxCalendarHitTestResult
|
||||||
|
{
|
||||||
|
wxCAL_HITTEST_NOWHERE, // outside of anything
|
||||||
|
wxCAL_HITTEST_HEADER, // on the header (weekdays)
|
||||||
|
wxCAL_HITTEST_DAY, // on a day in the calendar
|
||||||
|
wxCAL_HITTEST_INCMONTH,
|
||||||
|
wxCAL_HITTEST_DECMONTH,
|
||||||
|
wxCAL_HITTEST_SURROUNDING_WEEK
|
||||||
|
};
|
||||||
|
|
||||||
|
// border types for a date
|
||||||
|
enum wxCalendarDateBorder
|
||||||
|
{
|
||||||
|
wxCAL_BORDER_NONE, // no border (default)
|
||||||
|
wxCAL_BORDER_SQUARE, // a rectangular border
|
||||||
|
wxCAL_BORDER_ROUND // a round border
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxCalendarDateAttr: custom attributes for a calendar date
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxCalendarDateAttr
|
||||||
|
{
|
||||||
|
#if !defined(__VISAGECPP__)
|
||||||
|
protected:
|
||||||
|
// This has to be before the use of Init(), for MSVC++ 1.5
|
||||||
|
// But dorks up Visualage!
|
||||||
|
void Init(wxCalendarDateBorder border = wxCAL_BORDER_NONE)
|
||||||
|
{
|
||||||
|
m_border = border;
|
||||||
|
m_holiday = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
public:
|
||||||
|
// ctors
|
||||||
|
wxCalendarDateAttr() { Init(); }
|
||||||
|
wxCalendarDateAttr(const wxColour& colText,
|
||||||
|
const wxColour& colBack = wxNullColour,
|
||||||
|
const wxColour& colBorder = wxNullColour,
|
||||||
|
const wxFont& font = wxNullFont,
|
||||||
|
wxCalendarDateBorder border = wxCAL_BORDER_NONE)
|
||||||
|
: m_colText(colText), m_colBack(colBack),
|
||||||
|
m_colBorder(colBorder), m_font(font)
|
||||||
|
{
|
||||||
|
Init(border);
|
||||||
|
}
|
||||||
|
wxCalendarDateAttr(wxCalendarDateBorder border,
|
||||||
|
const wxColour& colBorder = wxNullColour)
|
||||||
|
: m_colBorder(colBorder)
|
||||||
|
{
|
||||||
|
Init(border);
|
||||||
|
}
|
||||||
|
|
||||||
|
// setters
|
||||||
|
void SetTextColour(const wxColour& colText) { m_colText = colText; }
|
||||||
|
void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; }
|
||||||
|
void SetBorderColour(const wxColour& col) { m_colBorder = col; }
|
||||||
|
void SetFont(const wxFont& font) { m_font = font; }
|
||||||
|
void SetBorder(wxCalendarDateBorder border) { m_border = border; }
|
||||||
|
void SetHoliday(bool holiday) { m_holiday = holiday; }
|
||||||
|
|
||||||
|
// accessors
|
||||||
|
bool HasTextColour() const { return m_colText.Ok(); }
|
||||||
|
bool HasBackgroundColour() const { return m_colBack.Ok(); }
|
||||||
|
bool HasBorderColour() const { return m_colBorder.Ok(); }
|
||||||
|
bool HasFont() const { return m_font.Ok(); }
|
||||||
|
bool HasBorder() const { return m_border != wxCAL_BORDER_NONE; }
|
||||||
|
|
||||||
|
bool IsHoliday() const { return m_holiday; }
|
||||||
|
|
||||||
|
const wxColour& GetTextColour() const { return m_colText; }
|
||||||
|
const wxColour& GetBackgroundColour() const { return m_colBack; }
|
||||||
|
const wxColour& GetBorderColour() const { return m_colBorder; }
|
||||||
|
const wxFont& GetFont() const { return m_font; }
|
||||||
|
wxCalendarDateBorder GetBorder() const { return m_border; }
|
||||||
|
#if defined(__VISAGECPP__)
|
||||||
|
protected:
|
||||||
|
// This has to be here for VisualAge
|
||||||
|
void Init(wxCalendarDateBorder border = wxCAL_BORDER_NONE)
|
||||||
|
{
|
||||||
|
m_border = border;
|
||||||
|
m_holiday = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
private:
|
||||||
|
wxColour m_colText,
|
||||||
|
m_colBack,
|
||||||
|
m_colBorder;
|
||||||
|
wxFont m_font;
|
||||||
|
wxCalendarDateBorder m_border;
|
||||||
|
bool m_holiday;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxCalendarCtrl events
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_ADV wxCalendarCtrl;
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_ADV wxCalendarEvent : public wxDateEvent
|
||||||
|
{
|
||||||
|
friend class wxCalendarCtrl;
|
||||||
|
public:
|
||||||
|
wxCalendarEvent() { Init(); }
|
||||||
|
inline wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type);
|
||||||
|
|
||||||
|
void SetWeekDay(const wxDateTime::WeekDay wd) { m_wday = wd; }
|
||||||
|
wxDateTime::WeekDay GetWeekDay() const { return m_wday; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
m_wday = wxDateTime::Inv_WeekDay;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxDateTime::WeekDay m_wday;
|
||||||
|
|
||||||
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCalendarEvent)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxCalendarCtrl
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// so far we only have a generic version, so keep it simple
|
||||||
|
#include "wx/generic/calctrl.h"
|
||||||
|
|
||||||
|
|
||||||
|
// now we can define the inline ctor using wxCalendarCtrl
|
||||||
|
inline
|
||||||
|
wxCalendarEvent::wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type)
|
||||||
|
: wxDateEvent(cal, cal->GetDate(), type)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// calendar event types and macros for handling them
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
BEGIN_DECLARE_EVENT_TYPES()
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_CALENDAR_SEL_CHANGED, 950)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_CALENDAR_DAY_CHANGED, 951)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_CALENDAR_MONTH_CHANGED, 952)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_CALENDAR_YEAR_CHANGED, 953)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_CALENDAR_DOUBLECLICKED, 954)
|
||||||
|
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_CALENDAR_WEEKDAY_CLICKED, 955)
|
||||||
|
END_DECLARE_EVENT_TYPES()
|
||||||
|
|
||||||
|
typedef void (wxEvtHandler::*wxCalendarEventFunction)(wxCalendarEvent&);
|
||||||
|
|
||||||
|
#define wxCalendarEventHandler(func) \
|
||||||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxCalendarEventFunction, &func)
|
||||||
|
|
||||||
|
#define wx__DECLARE_CALEVT(evt, id, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_CALENDAR_ ## evt, id, wxCalendarEventHandler(fn))
|
||||||
|
|
||||||
|
#define EVT_CALENDAR(id, fn) wx__DECLARE_CALEVT(DOUBLECLICKED, id, fn)
|
||||||
|
#define EVT_CALENDAR_SEL_CHANGED(id, fn) wx__DECLARE_CALEVT(SEL_CHANGED, id, fn)
|
||||||
|
#define EVT_CALENDAR_DAY(id, fn) wx__DECLARE_CALEVT(DAY_CHANGED, id, fn)
|
||||||
|
#define EVT_CALENDAR_MONTH(id, fn) wx__DECLARE_CALEVT(MONTH_CHANGED, id, fn)
|
||||||
|
#define EVT_CALENDAR_YEAR(id, fn) wx__DECLARE_CALEVT(YEAR_CHANGED, id, fn)
|
||||||
|
#define EVT_CALENDAR_WEEKDAY_CLICKED(id, fn) wx__DECLARE_CALEVT(WEEKDAY_CLICKED, id, fn)
|
||||||
|
|
||||||
|
#endif // wxUSE_CALENDARCTRL
|
||||||
|
|
||||||
|
#endif // _WX_CALCTRL_H_
|
||||||
|
|
|
@ -0,0 +1,252 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/caret.h
|
||||||
|
// Purpose: wxCaretBase class - the interface of wxCaret
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 23.05.99
|
||||||
|
// RCS-ID: $Id: caret.h 49804 2007-11-10 01:09:42Z VZ $
|
||||||
|
// 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 WXDLLEXPORT 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 overriden 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 = (wxWindowBase *)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:
|
||||||
|
DECLARE_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 WXDLLEXPORT wxCaretSuspend
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxCaretSuspend(wxWindow *WXUNUSED(win)) {}
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxCaretSuspend)
|
||||||
|
};
|
||||||
|
|
||||||
|
#else // !wxHAS_CARET_USING_OVERLAYS
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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;
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxCaretSuspend)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // wxHAS_CARET_USING_OVERLAYS/!wxHAS_CARET_USING_OVERLAYS
|
||||||
|
|
||||||
|
#endif // wxUSE_CARET
|
||||||
|
|
||||||
|
#endif // _WX_CARET_H_BASE_
|
|
@ -0,0 +1,156 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/checkbox.h
|
||||||
|
// Purpose: wxCheckBox class interface
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 07.09.00
|
||||||
|
// RCS-ID: $Id: checkbox.h 39901 2006-06-30 10:51:44Z VS $
|
||||||
|
// 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'.
|
||||||
|
*/
|
||||||
|
#define wxCHK_2STATE 0x0000
|
||||||
|
#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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The possible states of a 3-state checkbox (Compatible
|
||||||
|
* with the 2-state checkbox).
|
||||||
|
*/
|
||||||
|
enum wxCheckBoxState
|
||||||
|
{
|
||||||
|
wxCHK_UNCHECKED,
|
||||||
|
wxCHK_CHECKED,
|
||||||
|
wxCHK_UNDETERMINED /* 3-state checkbox only */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern WXDLLEXPORT_DATA(const wxChar) wxCheckBoxNameStr[];
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxCheckBox: a control which shows a label and a box which may be checked
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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:
|
||||||
|
virtual void DoSet3StateValue(wxCheckBoxState WXUNUSED(state)) { wxFAIL; }
|
||||||
|
|
||||||
|
virtual wxCheckBoxState DoGet3StateValue() const
|
||||||
|
{
|
||||||
|
wxFAIL;
|
||||||
|
return wxCHK_UNCHECKED;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_NO_COPY_CLASS(wxCheckBoxBase)
|
||||||
|
};
|
||||||
|
|
||||||
|
#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__)
|
||||||
|
#include "wx/gtk1/checkbox.h"
|
||||||
|
#elif defined(__WXMAC__)
|
||||||
|
#include "wx/mac/checkbox.h"
|
||||||
|
#elif defined(__WXCOCOA__)
|
||||||
|
#include "wx/cocoa/checkbox.h"
|
||||||
|
#elif defined(__WXPM__)
|
||||||
|
#include "wx/os2/checkbox.h"
|
||||||
|
#elif defined(__WXPALMOS__)
|
||||||
|
#include "wx/palmos/checkbox.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_CHECKBOX
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_CHECKBOX_H_BASE_
|
|
@ -0,0 +1,64 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/checklst.h
|
||||||
|
// Purpose: wxCheckListBox class interface
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 12.09.00
|
||||||
|
// RCS-ID: $Id: checklst.h 38319 2006-03-23 22:05:23Z VZ $
|
||||||
|
// Copyright: (c) Vadim Zeitlin
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_CHECKLST_H_BASE_
|
||||||
|
#define _WX_CHECKLST_H_BASE_
|
||||||
|
|
||||||
|
#if wxUSE_CHECKLISTBOX
|
||||||
|
|
||||||
|
#include "wx/listbox.h"
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxCheckListBox: a listbox whose items may be checked
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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;
|
||||||
|
|
||||||
|
DECLARE_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/mac/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
|
@ -0,0 +1,22 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/choicdgg.h
|
||||||
|
// Purpose: Includes generic choice dialog file
|
||||||
|
// Author: Julian Smart
|
||||||
|
// Modified by:
|
||||||
|
// Created:
|
||||||
|
// RCS-ID: $Id: choicdlg.h 33948 2005-05-04 18:57:50Z JS $
|
||||||
|
// Copyright: Julian Smart
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef _WX_CHOICDLG_H_BASE_
|
||||||
|
#define _WX_CHOICDLG_H_BASE_
|
||||||
|
|
||||||
|
#if wxUSE_CHOICEDLG
|
||||||
|
|
||||||
|
#include "wx/generic/choicdgg.h"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WX_CHOICDLG_H_BASE_
|
|
@ -0,0 +1,88 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/choice.h
|
||||||
|
// Purpose: wxChoice class interface
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 26.07.99
|
||||||
|
// RCS-ID: $Id: choice.h 42727 2006-10-30 16:04:27Z VZ $
|
||||||
|
// 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 WXDLLEXPORT_DATA(const wxChar) wxChoiceNameStr[];
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxChoice allows to select one of a non-modifiable list of strings
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT 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);
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_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/mac/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_
|
|
@ -0,0 +1,154 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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: choicebk.h 49804 2007-11-10 01:09:42Z VZ $
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxChoice;
|
||||||
|
|
||||||
|
extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED;
|
||||||
|
extern WXDLLIMPEXP_CORE const wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING;
|
||||||
|
|
||||||
|
// 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 WXDLLEXPORT wxChoicebook : public wxBookCtrlBase
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxChoicebook()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
wxChoicebook(wxWindow *parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
long style = 0,
|
||||||
|
const wxString& name = wxEmptyString)
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
|
||||||
|
(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 int GetSelection() const;
|
||||||
|
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 wxSize CalcSizeFromPage(const wxSize& sizePage) const;
|
||||||
|
virtual bool InsertPage(size_t n,
|
||||||
|
wxWindow *page,
|
||||||
|
const wxString& text,
|
||||||
|
bool bSelect = false,
|
||||||
|
int imageId = -1);
|
||||||
|
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; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual wxWindow *DoRemovePage(size_t page);
|
||||||
|
|
||||||
|
// get the size which the choice control should have
|
||||||
|
virtual wxSize GetControllerSize() const;
|
||||||
|
|
||||||
|
void UpdateSelectedPage(size_t newsel)
|
||||||
|
{
|
||||||
|
m_selection = newsel;
|
||||||
|
GetChoiceCtrl()->Select(newsel);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxBookCtrlBaseEvent* CreatePageChangingEvent() const;
|
||||||
|
void MakeChangedEvent(wxBookCtrlBaseEvent &event);
|
||||||
|
|
||||||
|
// event handlers
|
||||||
|
void OnChoiceSelected(wxCommandEvent& event);
|
||||||
|
|
||||||
|
// the currently selected page or wxNOT_FOUND if none
|
||||||
|
int m_selection;
|
||||||
|
|
||||||
|
private:
|
||||||
|
// common part of all constructors
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxChoicebook)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// choicebook event class and related stuff
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxChoicebookEvent : public wxBookCtrlBaseEvent
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxChoicebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
|
||||||
|
int nSel = -1, int nOldSel = -1)
|
||||||
|
: wxBookCtrlBaseEvent(commandType, id, nSel, nOldSel)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
wxChoicebookEvent(const wxChoicebookEvent& event)
|
||||||
|
: wxBookCtrlBaseEvent(event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual wxEvent *Clone() const { return new wxChoicebookEvent(*this); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxChoicebookEvent)
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef void (wxEvtHandler::*wxChoicebookEventFunction)(wxChoicebookEvent&);
|
||||||
|
|
||||||
|
#define wxChoicebookEventHandler(func) \
|
||||||
|
(wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxChoicebookEventFunction, &func)
|
||||||
|
|
||||||
|
#define EVT_CHOICEBOOK_PAGE_CHANGED(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, winid, wxChoicebookEventHandler(fn))
|
||||||
|
|
||||||
|
#define EVT_CHOICEBOOK_PAGE_CHANGING(winid, fn) \
|
||||||
|
wx__DECLARE_EVT1(wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, winid, wxChoicebookEventHandler(fn))
|
||||||
|
|
||||||
|
#endif // wxUSE_CHOICEBOOK
|
||||||
|
|
||||||
|
#endif // _WX_CHOICEBOOK_H_
|
|
@ -0,0 +1,145 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/clipbrd.h
|
||||||
|
// Purpose: wxClipboad class and clipboard functions
|
||||||
|
// Author: Vadim Zeitlin
|
||||||
|
// Modified by:
|
||||||
|
// Created: 19.10.99
|
||||||
|
// RCS-ID: $Id: clipbrd.h 49563 2007-10-31 20:46:21Z VZ $
|
||||||
|
// 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/object.h"
|
||||||
|
#include "wx/wxchar.h"
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxDataFormat;
|
||||||
|
class WXDLLIMPEXP_FWD_CORE wxDataObject;
|
||||||
|
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 WXDLLEXPORT wxClipboardBase : public wxObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxClipboardBase() {}
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
// 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; }
|
||||||
|
|
||||||
|
// X11 has two clipboards which get selected by this call. Empty on MSW.
|
||||||
|
virtual void UsePrimarySelection( bool WXUNUSED(primary) = false ) { }
|
||||||
|
|
||||||
|
// Returns global instance (wxTheClipboard) of the object:
|
||||||
|
static wxClipboard *Get();
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// 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(__WXMGL__)
|
||||||
|
#include "wx/mgl/clipbrd.h"
|
||||||
|
#elif defined(__WXMAC__)
|
||||||
|
#include "wx/mac/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 WXDLLEXPORT wxClipboardLocker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxClipboardLocker(wxClipboard *clipboard = (wxClipboard *)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;
|
||||||
|
|
||||||
|
DECLARE_NO_COPY_CLASS(wxClipboardLocker)
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
|
||||||
|
#endif // _WX_CLIPBRD_H_BASE_
|
|
@ -0,0 +1,273 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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: clntdata.h 36973 2006-01-18 16:45:41Z JS $
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "wx/vector.h"
|
||||||
|
|
||||||
|
struct WXDLLIMPEXP_BASE wxClientDataDictionaryPair
|
||||||
|
{
|
||||||
|
wxClientDataDictionaryPair( size_t idx ) : index( idx ), data( 0 ) { }
|
||||||
|
|
||||||
|
size_t index;
|
||||||
|
wxClientData* data;
|
||||||
|
};
|
||||||
|
|
||||||
|
_WX_DECLARE_VECTOR(
|
||||||
|
wxClientDataDictionaryPair,
|
||||||
|
wxClientDataDictionaryPairVector,
|
||||||
|
WXDLLIMPEXP_BASE
|
||||||
|
);
|
||||||
|
|
||||||
|
// this class is used internally to maintain the association between items
|
||||||
|
// of (some subclasses of) wxControlWithItems and their client data
|
||||||
|
// NOTE: this class does not keep track of whether it contains
|
||||||
|
// wxClientData or void*. The client must ensure that
|
||||||
|
// it does not contain a mix of the two, and that
|
||||||
|
// DestroyData is called if it contains wxClientData
|
||||||
|
class WXDLLIMPEXP_BASE wxClientDataDictionary
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxClientDataDictionary() {}
|
||||||
|
|
||||||
|
// deletes all the data
|
||||||
|
void DestroyData()
|
||||||
|
{
|
||||||
|
for( size_t i = 0, end = m_vec.size(); i != end; ++i )
|
||||||
|
delete m_vec[i].data;
|
||||||
|
m_vec.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
// if data for the given index is not present, add it,
|
||||||
|
// if it is present, delete the old data and replace it with
|
||||||
|
// the new one
|
||||||
|
void Set( size_t index, wxClientData* data, bool doDelete )
|
||||||
|
{
|
||||||
|
size_t ptr = Find( index );
|
||||||
|
|
||||||
|
if( !data )
|
||||||
|
{
|
||||||
|
if( ptr == m_vec.size() ) return;
|
||||||
|
if( doDelete )
|
||||||
|
delete m_vec[ptr].data;
|
||||||
|
m_vec.erase( ptr );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if( ptr == m_vec.size() )
|
||||||
|
{
|
||||||
|
m_vec.push_back( wxClientDataDictionaryPair( index ) );
|
||||||
|
ptr = m_vec.size() - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( doDelete )
|
||||||
|
delete m_vec[ptr].data;
|
||||||
|
m_vec[ptr].data = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the data associated with the given index,
|
||||||
|
// return 0 if not found
|
||||||
|
wxClientData* Get( size_t index ) const
|
||||||
|
{
|
||||||
|
size_t it = Find( index );
|
||||||
|
if( it == m_vec.size() ) return 0;
|
||||||
|
return (wxClientData*)m_vec[it].data; // const cast
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete the data associated with the given index
|
||||||
|
// it also decreases by one the indices of all the elements
|
||||||
|
// with an index greater than the given index
|
||||||
|
void Delete( size_t index, bool doDelete )
|
||||||
|
{
|
||||||
|
size_t todel = m_vec.size();
|
||||||
|
|
||||||
|
for( size_t i = 0, end = m_vec.size(); i != end; ++i )
|
||||||
|
{
|
||||||
|
if( m_vec[i].index == index )
|
||||||
|
todel = i;
|
||||||
|
else if( m_vec[i].index > index )
|
||||||
|
--(m_vec[i].index);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( todel != m_vec.size() )
|
||||||
|
{
|
||||||
|
if( doDelete )
|
||||||
|
delete m_vec[todel].data;
|
||||||
|
m_vec.erase( todel );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
// returns MyVec.size() if not found
|
||||||
|
size_t Find( size_t index ) const
|
||||||
|
{
|
||||||
|
for( size_t i = 0, end = m_vec.size(); i != end; ++i )
|
||||||
|
{
|
||||||
|
if( m_vec[i].index == index )
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return m_vec.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
wxClientDataDictionaryPairVector m_vec;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _WX_CLNTDATAH__
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue